/* Two Sugars - Studio build. Shared across all five pages. */

:root{
  --board:#23282A;
  --chalk:#F4F0E6; --chalk-dim:#F4F0E6b3; --chalk-warm:#E9C97C;
  --paper:#EFE7D8; --paper-2:#F7F2E7; --ink:#3B2E24; --ink-2:#7A6553; --rule:#D6C8B2;
  --brick:#B4552F;
  --chalkfont:"Chalkduster","Bradley Hand","Segoe Script",cursive;
  --head:"Avenir Next Condensed","Futura","Haettenschweiler",system-ui,sans-serif;
  --body:"Iowan Old Style","Palatino",Georgia,ui-serif,serif;
  --util:"Avenir Next",Avenir,"Segoe UI",system-ui,sans-serif;
  --w:1040px;
}
@media (prefers-color-scheme:dark){
  :root{--paper:#211C17;--paper-2:#2A231C;--ink:#EFE7D8;--ink-2:#B09C86;--rule:#453729;--brick:#D9764E;}
}
:root[data-theme="dark"]{--paper:#211C17;--paper-2:#2A231C;--ink:#EFE7D8;--ink-2:#B09C86;--rule:#453729;--brick:#D9764E;}
:root[data-theme="light"]{--paper:#EFE7D8;--paper-2:#F7F2E7;--ink:#3B2E24;--ink-2:#7A6553;--rule:#D6C8B2;--brick:#B4552F;}

*{box-sizing:border-box;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:17.5px;line-height:1.65;-webkit-font-smoothing:antialiased;}
.wrap{max-width:var(--w);margin:0 auto;padding:0 24px;}
a{color:inherit;}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--brick);outline-offset:3px;}
img,svg{max-width:100%;}

/* ---------- nav (chalkboard strip) ---------- */
.nav{position:relative;background:var(--board);color:var(--chalk);border-bottom:7px solid #46352A;}
.nav:before{content:"";position:absolute;inset:0;opacity:.45;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");}
.nav .wrap{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 24px;flex-wrap:wrap;}
.brand{font-family:var(--chalkfont);font-size:31px;line-height:1;color:var(--chalk);text-decoration:none;}
.nav ul{list-style:none;display:flex;gap:22px;margin:0;padding:0;font-family:var(--util);font-size:13px;letter-spacing:.13em;text-transform:uppercase;}
.nav a{color:var(--chalk-dim);text-decoration:none;padding:4px 0;}
.nav a:hover{color:var(--chalk-warm);}
.nav a[aria-current="page"]{color:var(--chalk);border-bottom:2px solid var(--chalk-warm);}

/* ---------- page furniture ---------- */
main{position:relative;}
main:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.32;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23p)' opacity='.16'/%3E%3C/svg%3E");}
main .wrap{position:relative;z-index:2;}
.sec{padding:54px 0;}
.sec + .sec{border-top:1px solid var(--rule);}
.eyebrow{font-family:var(--util);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--brick);margin:0 0 10px;}
h1{font-family:var(--head);font-size:clamp(34px,5.4vw,54px);font-weight:600;text-transform:uppercase;letter-spacing:.01em;line-height:1.06;margin:0 0 8px;text-wrap:balance;}
h2{font-family:var(--head);font-size:30px;font-weight:600;text-transform:uppercase;letter-spacing:.01em;margin:0 0 6px;}
h3{font-family:var(--head);font-size:19px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;margin:0 0 10px;}
.lede{color:var(--ink-2);margin:0 0 30px;max-width:56ch;}
.small{font-family:var(--util);font-size:14px;color:var(--ink-2);}

.btn{display:inline-block;background:var(--brick);color:#FFF6EC;text-decoration:none;border:0;border-radius:3px;
     padding:14px 28px;font-family:var(--head);font-size:16px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;cursor:pointer;}
.btn:hover{filter:brightness(1.08);}
.btn.ghost{background:transparent;color:var(--ink);border:2px solid var(--rule);}
.btn.ghost:hover{border-color:var(--brick);color:var(--brick);filter:none;}
.btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px;}

/* ---------- home ---------- */
.hero{position:relative;background:var(--board);color:var(--chalk);overflow:hidden;}
.hero:before{content:"";position:absolute;inset:0;opacity:.5;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n2'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n2)' opacity='.35'/%3E%3C/svg%3E");}
.hero:after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse at 28% 18%,#ffffff14,transparent 60%);}
.hero .wrap{position:relative;z-index:2;padding:52px 24px 58px;display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:40px;align-items:center;}
.hero h1{font-family:var(--chalkfont);font-size:clamp(46px,8vw,86px);text-transform:none;font-weight:400;line-height:1;color:var(--chalk);}
.hero .tag{font-family:var(--head);font-size:clamp(17px,2.3vw,23px);font-weight:600;text-transform:uppercase;color:var(--chalk-warm);margin:14px 0 0;}
.hero p.blurb{max-width:46ch;color:var(--chalk-dim);margin:14px 0 0;font-size:17px;}
.openchip{display:inline-flex;align-items:center;gap:9px;border:1.5px solid var(--chalk-dim);border-radius:999px;padding:7px 15px;font-family:var(--util);font-size:13px;margin-top:20px;}
.openchip i{width:8px;height:8px;border-radius:50%;background:var(--chalk-warm);display:block;}
@keyframes rise{0%{opacity:0;transform:translateY(6px) scaleX(.9);}35%{opacity:.75;}100%{opacity:0;transform:translateY(-26px) scaleX(1.25);}}
.steam path{animation:rise 3.6s ease-out infinite;transform-origin:center bottom;}
.steam path:nth-child(2){animation-delay:1.2s;}
.steam path:nth-child(3){animation-delay:2.4s;}
@media (prefers-reduced-motion:reduce){.steam path{animation:none;opacity:.5;}}

/* ---------- page header (interior pages) ---------- */
.phead{position:relative;background:var(--board);color:var(--chalk);overflow:hidden;}
.phead:before{content:"";position:absolute;inset:0;opacity:.45;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n3'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n3)' opacity='.35'/%3E%3C/svg%3E");}
.phead .wrap{position:relative;z-index:2;padding:44px 24px 46px;}
.phead h1{color:var(--chalk);margin:0;}
.phead p{color:var(--chalk-dim);max-width:52ch;margin:12px 0 0;}
.phead .eyebrow{color:var(--chalk-warm);}

/* ---------- cards / lists ---------- */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.card{background:var(--paper-2);border:1px solid var(--rule);border-radius:3px;padding:24px 26px;}
.card.dark{background:var(--board);color:var(--chalk);border-color:var(--board);}
.card.dark h3{color:var(--chalk-warm);}
.card.dark .small{color:var(--chalk-dim);}
.li{display:flex;align-items:baseline;gap:10px;padding:7px 0;}
.li .n{flex:none;}
.li .d{flex:1;border-bottom:1.5px dotted var(--rule);transform:translateY(-4px);}
.li .p{font-family:var(--util);font-size:15px;font-variant-numeric:tabular-nums;color:var(--ink-2);}
.li em{display:block;font-style:normal;font-family:var(--util);font-size:13.5px;color:var(--ink-2);line-height:1.45;}
.aside{font-family:var(--util);font-size:14px;color:var(--ink-2);margin:14px 0 0;}

/* ---------- functions page ---------- */
.pkg{border:1px solid var(--rule);background:var(--paper-2);border-radius:3px;padding:26px 28px;display:flex;flex-direction:column;}
.pkg .price{font-family:var(--head);font-size:34px;font-weight:600;color:var(--brick);font-variant-numeric:tabular-nums;margin:2px 0 4px;}
.pkg .per{font-family:var(--util);font-size:13px;color:var(--ink-2);}
.pkg ul{list-style:none;margin:16px 0 0;padding:0;font-family:var(--util);font-size:15px;}
.pkg li{padding:6px 0 6px 22px;position:relative;color:var(--ink-2);}
.pkg li:before{content:"\2713";position:absolute;left:0;color:var(--brick);}
.spec{display:flex;justify-content:space-between;gap:14px;font-family:var(--util);font-size:14.5px;padding:11px 0;border-bottom:1px solid var(--rule);}
.spec span:first-child{color:var(--ink-2);}
.spec span:last-child{font-variant-numeric:tabular-nums;}

/* ---------- forms ---------- */
form{display:grid;gap:15px;max-width:560px;}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:15px;}
label{font-family:var(--util);font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-2);display:block;margin-bottom:6px;}
input,textarea,select{width:100%;background:var(--paper-2);border:1px solid var(--rule);color:var(--ink);font-family:var(--body);font-size:16.5px;padding:12px 14px;border-radius:3px;}
textarea{min-height:112px;resize:vertical;}
.note{font-family:var(--util);font-size:13.5px;color:var(--ink-2);margin:0;}
.sent{color:var(--brick);font-weight:600;}

/* ---------- booking widget ---------- */
.booking{border:1px solid var(--rule);background:var(--paper-2);border-radius:3px;padding:24px 26px;}
.slots{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px;}
.slot{font-family:var(--util);font-size:14px;border:1px solid var(--rule);background:var(--paper);border-radius:999px;padding:8px 15px;cursor:pointer;color:var(--ink);}
.slot:hover{border-color:var(--brick);color:var(--brick);}
.slot[aria-pressed="true"]{background:var(--brick);border-color:var(--brick);color:#FFF6EC;}
.slot:disabled{opacity:.4;cursor:not-allowed;text-decoration:line-through;}

/* ---------- visit ---------- */
.visit{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start;}
.addr{font-family:var(--head);font-size:23px;font-weight:600;text-transform:uppercase;line-height:1.5;margin:0 0 20px;}
table.hours{width:100%;border-collapse:collapse;font-family:var(--util);font-size:15.5px;}
table.hours td{padding:10px 0;border-bottom:1px solid var(--rule);}
table.hours td:last-child{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink-2);}
.map{width:100%;height:auto;border:1px solid var(--rule);border-radius:3px;display:block;}

/* ---------- cta strip + footer ---------- */
.cta{background:var(--board);color:var(--chalk);}
.cta .wrap{padding:44px 24px;display:flex;justify-content:space-between;align-items:center;gap:26px;flex-wrap:wrap;}
.cta h2{color:var(--chalk);margin:0 0 6px;}
.cta p{color:var(--chalk-dim);margin:0;max-width:48ch;}
footer{background:var(--board);color:var(--chalk-dim);font-family:var(--util);font-size:13.5px;border-top:1px solid #ffffff1a;}
footer .wrap{display:flex;justify-content:space-between;gap:18px;padding:26px 24px 40px;flex-wrap:wrap;}
footer a{color:var(--chalk-dim);}

@media (max-width:860px){
  .hero .wrap{grid-template-columns:1fr;gap:24px;padding:34px 24px 44px;}
  .hero .cup{max-width:140px;}
  .grid2,.grid3,.visit,.row2{grid-template-columns:1fr;}
  .visit{gap:32px;}
  .nav .wrap{padding:14px 24px;}
  .nav ul{gap:16px;font-size:12px;width:100%;}
}


/* ================= SIGNATURE ================= */
:root{--accent:var(--brick);--surface:var(--paper-2);--deep:var(--board);--onDeep:var(--chalk);--onAccent:#FFF6EC;}

/* --- ordering --- */
.order{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:28px;align-items:start;}
.ocat{margin:0 0 26px;}
.ocat h3{margin:0 0 12px;}
.oitem{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--rule);}
.oitem .oi{flex:1;min-width:0;}
.oitem .oi strong{display:block;font-weight:600;}
.oitem .oi span{display:block;font-size:13.5px;color:var(--ink-2);line-height:1.45;}
.oitem .op{font-variant-numeric:tabular-nums;color:var(--ink-2);white-space:nowrap;}
.add{appearance:none;border:1.5px solid var(--accent);background:transparent;color:var(--accent);
     width:34px;height:34px;border-radius:50%;font-size:19px;line-height:1;cursor:pointer;flex:none;}
.add:hover{background:var(--accent);color:var(--onAccent);}
.add:disabled{opacity:.35;cursor:not-allowed;border-color:var(--rule);color:var(--ink-2);background:transparent;}
.oitem.gone{opacity:.5;}
.oitem.gone .oi strong{text-decoration:line-through;text-decoration-color:var(--accent);}

.basket{position:sticky;top:16px;border:1.5px solid var(--rule);background:var(--surface);border-radius:5px;padding:22px 24px;}
.basket h3{margin:0 0 4px;}
.basket .empty{color:var(--ink-2);font-size:14.5px;margin:10px 0 0;}
.bline{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--rule);font-size:15px;}
.bline .bn{flex:1;min-width:0;}
.bline .bp{font-variant-numeric:tabular-nums;color:var(--ink-2);}
.qty{display:flex;align-items:center;gap:7px;}
.qty button{appearance:none;border:1px solid var(--rule);background:transparent;color:var(--ink);
            width:24px;height:24px;border-radius:4px;cursor:pointer;font-size:14px;line-height:1;}
.qty button:hover{border-color:var(--accent);color:var(--accent);}
.qty span{min-width:16px;text-align:center;font-variant-numeric:tabular-nums;font-size:14px;}
.btot{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0 4px;font-size:17px;}
.btot strong{font-size:23px;font-variant-numeric:tabular-nums;}
.saving{font-size:13px;color:var(--accent);margin:2px 0 0;}
.basket .btn{width:100%;text-align:center;margin-top:14px;}
.pill{display:inline-block;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
      border:1px solid var(--rule);border-radius:999px;padding:3px 10px;color:var(--ink-2);margin:0 0 14px;}

/* --- gift cards --- */
.gcard{border-radius:9px;padding:26px 28px;background:var(--deep);color:var(--onDeep);
       display:flex;flex-direction:column;justify-content:space-between;min-height:172px;
       box-shadow:0 16px 34px -26px rgba(0,0,0,.6);}
.gcard .gv{font-size:40px;font-variant-numeric:tabular-nums;line-height:1;}
.gcard .gl{font-size:12px;letter-spacing:.22em;text-transform:uppercase;opacity:.75;}
.denoms{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px;}
.denom{appearance:none;border:1.5px solid var(--rule);background:var(--surface);color:var(--ink);
       border-radius:999px;padding:9px 18px;font:inherit;font-size:15px;cursor:pointer;font-variant-numeric:tabular-nums;}
.denom:hover{border-color:var(--accent);color:var(--accent);}
.denom[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--onAccent);}

/* --- story --- */
.story{max-width:62ch;}
.story p{margin:0 0 18px;}
.story p.big{font-size:20px;line-height:1.55;}
.tl{border-left:2px solid var(--rule);padding-left:24px;margin:0;}
.tl li{list-style:none;padding:0 0 26px;position:relative;}
.tl li:before{content:"";position:absolute;left:-31px;top:7px;width:11px;height:11px;border-radius:50%;
              background:var(--accent);border:2px solid var(--surface);}
.tl .yr{font-variant-numeric:tabular-nums;font-weight:600;display:block;margin-bottom:3px;}
.tl p{margin:0;color:var(--ink-2);font-size:15.5px;}

/* --- cms marker --- */
.cms{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink-2);margin-top:14px;}
.cms b{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);}

@media (max-width:860px){
  .order{grid-template-columns:1fr;}
  .basket{position:static;}
}

/* ---------- single-page build: sticky nav, anchors, scroll reveal ---------- */
html{scroll-behavior:smooth;}
.nav{position:sticky;top:0;z-index:60;}
.sec{scroll-margin-top:88px;padding:76px 0;}
.sec-lead{max-width:62ch;}
.nav a.is-active{color:var(--chalk);opacity:1;border-bottom:2px solid var(--chalk-warm);}
.nav .navcta{color:var(--chalk);opacity:1;border:1.5px solid #ffffff26;border-radius:999px;padding:6px 15px;}
.nav .navcta:hover{background:var(--chalk-warm);border-color:var(--chalk-warm);color:var(--board);}
.nav .navcta.is-active{border-bottom:1.5px solid #ffffff26;}

/* Full-bleed bands break up the scroll. */
.band{position:relative;background:var(--board);color:var(--chalk);overflow:hidden;}
.band .wrap{position:relative;z-index:3;padding-top:76px;padding-bottom:76px;}
.band h2,.band h3{color:var(--chalk-warm);}
.band .lede,.band .small,.band .aside,.band p{color:var(--chalk-dim);}
.band .eyebrow{color:var(--chalk-warm);}
.band .card{background:#ffffff0d;border-color:#ffffff26;color:var(--chalk);}
.band .card h3{color:var(--chalk-warm);}
.band .spec{border-bottom-color:#ffffff26;}
.band .spec span{color:var(--chalk-dim);}
.band .spec span:last-child{color:var(--chalk);}

/* Big pull-quote statement. */
.statement{text-align:center;}
.statement p{font-family:var(--chalkfont);font-size:clamp(26px,4.4vw,44px);line-height:1.28;color:var(--chalk);margin:0 auto;max-width:20ch;}
.statement .small{font-family:var(--body);font-size:14.5px;line-height:1.6;max-width:46ch;margin:22px auto 0;color:var(--chalk-dim);}

/* Scroll reveal. Gated on html.js so it fails open when the script never runs. */
html.js .rise{opacity:0;transform:translateY(14px);transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1);}
html.js .rise.is-in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  html.js .rise{opacity:1;transform:none;transition:none;}
  html{scroll-behavior:auto;}
}

/* ---------- responsive: a tablet step between 3-up and 1-up ---------- */
body{overflow-wrap:break-word;}
.spec span:last-child{overflow-wrap:anywhere;min-width:0;}
.spec{gap:12px;}
.spec span:first-child{flex:none;}
@media (max-width:1000px){
  .grid3{grid-template-columns:repeat(2,minmax(0,1fr));}
  .grid3 > :last-child:nth-child(odd){grid-column:1/-1;}
  .visit{gap:32px;}
}
@media (max-width:760px){
  .sec{padding:56px 0;}
  .band .wrap{padding-top:56px;padding-bottom:56px;}
}
@media (max-width:460px){
  .wrap{padding-left:18px;padding-right:18px;}
  .sec{padding:44px 0;}
  .spec{flex-wrap:wrap;}
  .spec span:last-child{text-align:left;}
  .slots{gap:7px;}
  .slot{padding:7px 12px;font-size:13.5px;}
}

/* ================= plan features added: gallery, reviews, events,
   email signup, checkout, CMS markers ================= */

/* --- photo gallery (optimised, lightbox) --- */
.gal{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
.gal button{position:relative;padding:0;border:0;cursor:pointer;overflow:hidden;
            aspect-ratio:4/3;display:block;width:100%;border-radius:3px;}
.gal button:nth-child(1),.gal button:nth-child(8){grid-column:span 2;grid-row:span 2;aspect-ratio:1/1;}
.gal .ph{position:absolute;inset:0;display:flex;align-items:flex-end;padding:12px 14px;}
.gal .cap{position:relative;z-index:2;font-size:12.5px;line-height:1.3;text-align:left;}
.gal button:focus-visible{outline:2px solid var(--accent,currentColor);outline-offset:2px;}
.galnote{font-size:13.5px;margin:16px 0 0;opacity:.8;}
.lb{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;
    background:rgba(0,0,0,.82);padding:24px;}
.lb.on{display:flex;}
.lb figure{margin:0;max-width:900px;width:100%;}
.lb .frame{aspect-ratio:3/2;border-radius:4px;position:relative;overflow:hidden;}
.lb figcaption{color:#fff;font-size:14px;margin-top:12px;display:flex;
               justify-content:space-between;gap:16px;flex-wrap:wrap;}
.lb .x{position:absolute;top:16px;right:20px;background:none;border:0;color:#fff;
       font-size:30px;line-height:1;cursor:pointer;padding:6px 10px;}
.lb .nav{background:none;border:1px solid rgba(255,255,255,.5);color:#fff;border-radius:3px;
         padding:7px 14px;cursor:pointer;font:inherit;font-size:13px;}

/* --- google reviews --- */
.revhead{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 22px;}
.revscore{font-size:40px;line-height:1;font-variant-numeric:tabular-nums;}
.stars{letter-spacing:2px;}
.revmeta{font-size:13.5px;opacity:.75;}
.revs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.rev{border:1px solid var(--rule);border-radius:3px;padding:18px 20px;}
.rev .s{font-size:14px;letter-spacing:2px;margin-bottom:8px;}
.rev p{font-size:14.5px;margin:0 0 12px;}
.rev .who{display:flex;align-items:center;gap:9px;font-size:13px;opacity:.8;}
.rev .av{width:26px;height:26px;border-radius:50%;flex:none;
         display:flex;align-items:center;justify-content:center;font-size:12px;}

/* --- events & seasonal offers --- */
.evs{display:grid;gap:0;}
.ev{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:20px;
    padding:16px 0;border-bottom:1px solid var(--rule);align-items:baseline;}
.ev .when{font-size:13px;letter-spacing:.1em;text-transform:uppercase;opacity:.75;}
.ev b{display:block;font-size:16.5px;}
.ev span.d{font-size:14px;opacity:.8;}
.ev .tag{font-size:11px;letter-spacing:.13em;text-transform:uppercase;
         border:1px solid var(--rule);border-radius:999px;padding:4px 10px;white-space:nowrap;}

/* --- email signup --- */
.signup{border:1px solid var(--rule);border-radius:3px;padding:24px 26px;}
.signup form{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;}
.signup input{flex:1;min-width:200px;}
.signup .note{margin-top:10px;}

/* --- stripe checkout --- */
.pay{border-top:1px solid var(--rule);margin-top:14px;padding-top:14px;}
.paylabel{display:flex;align-items:center;gap:8px;font-size:12.5px;opacity:.8;margin-top:10px;}
.cardrow{display:flex;gap:6px;align-items:center;}
.cardrow i{display:block;width:30px;height:19px;border-radius:3px;border:1px solid var(--rule);}

/* --- CMS "staff can edit this" markers --- */
.cms{display:inline-flex;align-items:center;gap:7px;font-size:12px;opacity:.75;margin-top:12px;}
.cms b{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent,currentColor);}

@media (max-width:1000px){
  .gal{grid-template-columns:repeat(3,minmax(0,1fr));}
  .revs{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:700px){
  .gal{grid-template-columns:repeat(2,minmax(0,1fr));}
  .gal button:nth-child(1),.gal button:nth-child(8){grid-column:span 2;grid-row:auto;aspect-ratio:3/2;}
  .revs{grid-template-columns:1fr;}
  .ev{grid-template-columns:1fr;gap:6px;}
  .ev .tag{justify-self:start;}
}

/* --- interior page header --- */
.phead{position:relative;overflow:hidden;}
.phead .wrap{position:relative;z-index:3;padding-top:40px;padding-bottom:40px;}
.phead h1{margin:0;}
.phead p{margin:12px 0 0;max-width:56ch;opacity:.85;}
/* --- generic fact rows, used by the contact block in every brand --- */
.tight{margin:0;}
.tr{display:flex;justify-content:space-between;gap:12px;padding:9px 0;
    border-bottom:1px solid var(--rule);font-size:15px;}
.tr span:first-child{opacity:.75;flex:none;}
.tr span:last-child{text-align:right;min-width:0;overflow-wrap:anywhere;}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
@media (max-width:460px){ .tr{flex-wrap:wrap;} .tr span:last-child{text-align:left;} }

.phead{background:var(--board);color:var(--chalk);}.phead h1{color:var(--chalk);}.phead p{color:var(--chalk-dim);}

/* --- nav must wrap now that tiers carry more pages --- */
.nav ul{flex-wrap:wrap;row-gap:8px;}
@media (max-width:620px){
  .nav .wrap{gap:10px;}
  .nav ul{gap:14px;font-size:11.5px;width:100%;}
  .brand{font-size:26px;}
  .nav .navcta{padding:5px 12px;}
}

/* ---------- Photography (added with the image pass) ---------- */
img{max-width:100%;height:auto;}
figure{margin:0;}                    /* the UA default is margin:1em 40px */
.shot{position:relative;}
.shot img{display:block;width:100%;height:auto;border-radius:3px;}
.shot figcaption{margin-top:9px;font-size:13px;line-height:1.45;opacity:.72;}
.shot.wide{margin-top:26px;}
.shots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:26px;}
@media (max-width:760px){.shots{grid-template-columns:1fr;}}

/* Sections dropped straight into <main> without a .wrap around them were
   running full-bleed - no max-width and, on a phone, no side gutter at all.
   Give them the same measure the .wrap gives everything else. */
main > .sec{max-width:var(--w);margin-left:auto;margin-right:auto;
            padding-left:var(--pad,24px);padding-right:var(--pad,24px);}
main > .sec .wrap{max-width:none;padding-left:0;padding-right:0;}


/* ---------- Gibson Web Studio demo bar ----------------------------------
   Deliberately outside this site's palette so it reads as chrome rather
   than part of the design. Static, not fixed: the brief asks for a bar at
   the top and no competing fixed header, and three of the nine demos have
   a sticky nav of their own that this must not fight.
   Contrast on #101314: text 15.45:1, link 11.24:1. ---------------------- */
.gws-demobar{background:#101314;color:#E8EAEA;position:relative;z-index:120;
             border-bottom:2px solid #8FD3E8;
             font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
             font-size:13.5px;line-height:1.45;letter-spacing:.005em;text-transform:none;}
.gws-demobar p{max-width:1240px;margin:0 auto;padding:10px 22px;}
.gws-demobar b{font-weight:700;}
.gws-demobar a{color:#8FD3E8;text-decoration:underline;text-underline-offset:2px;
               white-space:nowrap;font-weight:inherit;}
.gws-demobar a:hover{color:#fff;}
.gws-demobar a:focus-visible{outline:2px solid #8FD3E8;outline-offset:2px;border-radius:2px;}
@media (max-width:520px){
  .gws-demobar{font-size:12.5px;}
  .gws-demobar p{padding:9px 16px;}
  .gws-demobar a{white-space:normal;}
}
