/* pickup ticket planner */
.planner-grid{display:grid;grid-template-columns:1fr minmax(0,520px);grid-template-areas:"head slot" "table slot";column-gap:clamp(2rem,1rem + 4vw,6rem);align-items:start}
.planner-head{grid-area:head}.planner .slot{grid-area:slot;position:sticky;top:calc(var(--header) + 1.5rem)}.planner-table{grid-area:table}
.planner .lede{margin-bottom:2rem}
.tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin-bottom:1.5rem}
.tab{min-height:56px;padding:.8rem 1rem;text-align:left;border:1.5px solid rgba(242,234,219,.3);background:transparent;color:var(--icing);font:600 1rem/1.2 var(--text);cursor:pointer;display:flex;flex-direction:column;gap:.3rem;transition:background-color .2s,border-color .2s,color .2s}
.tab small{font:700 .68rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#CDBFAE}
.tab:hover{border-color:var(--rose)}
.tab[aria-pressed=true]{background:var(--icing);color:var(--licorice);border-color:var(--icing)}
.tab[aria-pressed=true] small{color:#8A5A53}
.slot{position:relative;padding-top:14px}
.slot::before{content:"";position:absolute;left:-12px;right:-12px;top:0;height:14px;background:var(--licorice);border-radius:8px;box-shadow:inset 0 3px 6px rgba(0,0,0,.6)}
.ticket{position:relative;background:var(--icing);color:var(--licorice);padding:1.8rem clamp(1.4rem,1rem + 1.4vw,2.4rem) 2rem;transform-origin:top center}
.ticket.is-printing{animation:print .45s cubic-bezier(.2,.8,.2,1)}
@keyframes print{from{transform:translateY(-38%);clip-path:inset(38% 0 0 0)}to{transform:none;clip-path:inset(0)}}
.ticket-top{display:flex;justify-content:space-between;font:700 .72rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase}
.ticket-top span:last-child{color:#8A5A53}
.ticket .label{font:700 .7rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 .5rem}
.ticket .day{font:400 clamp(2.3rem,1.6rem + 2.6vw,3.8rem)/1 var(--display);letter-spacing:-.02em;margin-bottom:.4rem}
.ticket .hours{font:700 1rem/1.4 var(--mono)}
.ticket dl{display:grid;grid-template-columns:auto 1fr;gap:.55rem 1.2rem;margin:0 0 1.4rem;font-size:.97rem}
.ticket dt{font:700 .7rem/1.6 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
.ticket dd{margin:0}
.ticket .fine{font-size:.86rem;color:var(--ink-muted);margin:1rem 0 0}
.lead-table{width:100%;border-collapse:collapse;margin-top:2.5rem;font-size:.95rem}
.lead-table caption{text-align:left;font:700 var(--label)/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--rose);margin-bottom:.8rem}
.lead-table th,.lead-table td{text-align:left;padding:.75rem .75rem .75rem 0;border-bottom:1px solid rgba(242,234,219,.16);vertical-align:top}
.lead-table th{font-weight:600}
.band--light .lead-table th,.band--light .lead-table td{border-color:rgba(22,17,15,.16)}
.band--light .lead-table caption{color:#8A5A53}
@media (max-width:900px){.planner-grid{grid-template-columns:1fr;grid-template-areas:"head" "slot" "table"}.planner .slot{position:relative;top:0}}
@media (max-width:420px){.tab{min-height:64px;font-size:.95rem}}
/* photo tabs: hairline-ruled rows on desktop, a swipeable photo rail on phones */
.tabs--photo{column-gap:1.6rem;row-gap:0;border-top:1px solid rgba(242,234,219,.18)}
.tabs--photo .tab{display:grid;grid-template-columns:72px minmax(0,1fr);grid-template-rows:auto auto;align-content:center;column-gap:1rem;row-gap:.3rem;padding:.9rem 0;border:0;border-bottom:1px solid rgba(242,234,219,.18);background:none;font-size:1.15rem}
.tabs--photo .tab small{align-self:end}
.tab-ph{grid-row:1/3;display:block;width:72px;height:72px;overflow:hidden;background:var(--licorice);transition:box-shadow .25s}
.tab-ph img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:var(--p,50% 50%);transform:scale(var(--s,1));transform-origin:var(--p,50% 50%);filter:saturate(.75) brightness(.8);transition:filter .25s,transform .5s cubic-bezier(.2,.8,.2,1)}
.tabs--photo .tab:hover{border-color:rgba(242,234,219,.18)}
.tabs--photo .tab:hover .tab-ph img{filter:none}
.tabs--photo .tab[aria-pressed=true]{background:none;color:var(--icing);border-bottom-color:var(--rose);box-shadow:inset 0 -2px 0 var(--rose)}
.tabs--photo .tab[aria-pressed=true] small{color:var(--rose)}
.tabs--photo .tab[aria-pressed=true] .tab-ph{box-shadow:0 0 0 2px var(--rose)}
.tabs--photo .tab[aria-pressed=true] .tab-ph img{filter:none}
@media (max-width:760px){
  .tabs--photo{display:flex;gap:.9rem;overflow-x:auto;scroll-snap-type:x mandatory;border-top:0;margin-inline:calc(-1 * var(--gutter));padding:0 var(--gutter) .4rem;scroll-padding-inline:var(--gutter);scrollbar-width:none}
  .tabs--photo::-webkit-scrollbar{display:none}
  .tabs--photo .tab{flex:0 0 min(42%,190px);scroll-snap-align:start;grid-template-columns:1fr;grid-template-rows:auto;padding:0 0 .7rem;border-bottom:1px solid rgba(242,234,219,.18);font-size:1.05rem}
  .tabs--photo .tab small{align-self:auto;margin-top:.5rem}
  .tab-ph{grid-row:auto;width:100%;height:auto;aspect-ratio:4/5}
  .tabs--photo .tab[aria-pressed=true] .tab-ph{box-shadow:none}
}

/* inner split hero */
.split-hero{display:grid;grid-template-columns:1.05fr 1fr;min-height:max(620px,92svh);background:var(--licorice);color:var(--icing)}
.split-hero .copy{display:flex;flex-direction:column;justify-content:flex-end;padding:calc(var(--header) + 3rem) var(--gutter) clamp(3rem,2rem + 4vw,6rem)}
.split-hero .copy .eyebrow{color:var(--parchment)}
.split-hero h1{margin-bottom:1.4rem}
.split-hero .lede{color:#EFE6D8;margin-bottom:2rem}
.split-hero figure{margin:0;position:relative;overflow:hidden}
.split-hero figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%)}
@media (max-width:860px){.split-hero{grid-template-columns:1fr;min-height:0}.split-hero figure{order:-1;height:min(40svh,420px)}.split-hero .copy{padding-top:1.6rem;padding-bottom:2.5rem}.split-hero .lede{margin-bottom:1.4rem}.split-hero h1{margin-bottom:1rem}}

/* flavour index */
.findex{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:clamp(2rem,4vw,6rem)}
.dock{position:sticky;top:calc(var(--header) + 2rem);align-self:start}
.dock .big{font:400 clamp(7rem,4rem + 8vw,13rem)/.8 var(--display);letter-spacing:-.05em;color:var(--rose);display:block;min-height:1em;position:relative;z-index:1;margin-top:-.42em;text-shadow:0 2px 30px rgba(22,17,15,.25)}
.dock .big small{position:relative;top:.55em;display:inline-block;margin-right:.35em;padding:.35em .5em;background:var(--licorice);color:var(--icing)}
.dock-ph{position:relative;margin:0;aspect-ratio:4/3;max-height:42vh;overflow:hidden;background:var(--licorice)}
.dock-ph img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:var(--p,50% 50%);transform:scale(var(--s,1));transform-origin:var(--p,50% 50%);opacity:0;transition:opacity .5s ease}
.dock-ph img.is-on{opacity:1}
.dock-ph figcaption{position:absolute;right:.7rem;top:.7rem;padding:.3rem .55rem;background:rgba(22,17,15,.72);color:var(--icing);font:700 .64rem/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase}
@media (prefers-reduced-motion:reduce){.dock-ph img{transition:none}}
.dock .big small{font:700 .9rem/1 var(--mono);letter-spacing:.12em;vertical-align:top;color:var(--icing)}
.dock .name{font:400 clamp(1.6rem,1.2rem + 1.2vw,2.4rem)/1.1 var(--display);margin:.8rem 0 1.4rem;min-height:2.3em}
.flist{list-style:none;margin:0;padding:0;counter-reset:f}
.flist li{display:grid;grid-template-columns:5.5rem 1fr;align-items:baseline;gap:1rem;padding:1.1rem 0;border-bottom:1px solid rgba(22,17,15,.14);transition:color .25s,padding .25s}
.flist .n{font:700 .8rem/1 var(--mono);letter-spacing:.1em;color:var(--ink-muted)}
.flist .t{font:400 clamp(1.7rem,1.2rem + 1.6vw,3rem)/1.05 var(--display);letter-spacing:-.01em}
.flist li.is-active{color:#8A3F37;padding-left:.6rem}
.flist li.is-active .n{color:#8A3F37}
.flist .desc{grid-column:2;font-size:.98rem;color:#3F3530;margin-top:.4rem}
.fbreak{margin:2.5rem 0;overflow:hidden}
.fbreak img{width:100%;aspect-ratio:16/9;object-fit:cover}
.fbreak--strip{background:#fff}.fbreak--strip img{aspect-ratio:auto}
/* macaron box: crop inside the box walls so the white product ground never shows */
.boxcrop{position:relative;overflow:hidden;background:var(--licorice);aspect-ratio:4.2/1}
.boxcrop img{position:absolute;left:50%;top:calc(-100% * .315 / .59);height:calc(100% / .59);width:auto;max-width:none;aspect-ratio:auto;transform:translateX(-50%)}
.boxcrop--band{aspect-ratio:auto;height:clamp(200px,24vw,380px)}
@media (max-width:860px){.boxcrop{aspect-ratio:auto;height:clamp(180px,52vw,260px)}}
@media (max-width:860px){.findex{grid-template-columns:1fr}.dock{display:none}.flist li{grid-template-columns:3.2rem 1fr}}

/* cookie tiers */
.tiers{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1.5rem}
.tiers > .tier{grid-column:span 2}
.tiers > .tier:nth-child(n+4){grid-column:span 3}
.tiers > .tier:nth-child(n+4) img{aspect-ratio:16/9}
@media (max-width:980px){.tiers{grid-template-columns:1fr 1fr}.tiers > .tier,.tiers > .tier:nth-child(n+4){grid-column:span 1}.tiers > .tier:last-child{grid-column:1/-1}}
@media (max-width:560px){.tiers{grid-template-columns:1fr}}
.tier{background:var(--icing);display:flex;flex-direction:column}
.tier figure{margin:0;position:relative}
.tier figcaption{position:absolute;left:.8rem;bottom:.8rem;padding:.35rem .6rem;background:rgba(22,17,15,.72);color:var(--icing);font:700 .66rem/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase}
.tier img{width:100%;aspect-ratio:4/3;object-fit:cover}
.tier .body{padding:1.6rem 1.6rem 1.8rem;display:flex;flex-direction:column;gap:.6rem;flex:1}
.tier .price{font:400 clamp(2.2rem,1.8rem + 1.4vw,3.2rem)/1 var(--display);letter-spacing:-.02em}
.tier .price small{font:700 .75rem/1 var(--mono);letter-spacing:.08em}
.tier .min{font:700 .72rem/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#8A5A53}
.tier--type{background:var(--licorice);color:var(--icing)}
.tier--type .min{color:var(--rose)}
.tier--type .glyph{font:400 clamp(5rem,4rem + 4vw,8rem)/.9 var(--display);color:var(--parchment);padding:1.6rem 1.6rem 0;letter-spacing:-.04em}
.addons{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1rem}
.addons li{border-top:2px solid var(--parchment);padding-top:1rem}
.addons b{display:block;font:400 2rem/1 var(--display);margin-bottom:.35rem}

/* estimator */
.estimator{display:grid;grid-template-columns:1fr minmax(0,460px);gap:clamp(2rem,4vw,5rem);align-items:start}
.est-form fieldset{border:0;padding:0;margin:0 0 1.8rem}
.est-form legend{font:700 var(--label)/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--rose);margin-bottom:.9rem}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{position:relative}
.chip input{position:absolute;opacity:0;inset:0;cursor:pointer}
.chip span{display:inline-flex;align-items:center;min-height:46px;padding:.6rem 1rem;border:1.5px solid rgba(242,234,219,.3);font-weight:600;transition:all .2s}
.chip input:checked + span{background:var(--icing);color:var(--licorice);border-color:var(--icing)}
.chip input:focus-visible + span{outline:2px solid var(--rose);outline-offset:3px}
.stepper{display:inline-flex;align-items:center;border:1.5px solid rgba(242,234,219,.3)}
.stepper button{width:48px;height:48px;background:none;border:0;color:inherit;font:700 1.4rem/1 var(--text);cursor:pointer}
.stepper button:hover{background:rgba(201,142,134,.2)}
.stepper output{min-width:5.5rem;text-align:center;font:700 1rem/1 var(--mono)}
.est-total .day{font-size:clamp(2.6rem,2rem + 2.4vw,4.2rem)}
@media (max-width:900px){.estimator{grid-template-columns:1fr}}

/* hub routes */
.routes{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid rgba(22,17,15,.16)}
.route{padding:2rem 1.6rem 2.2rem 0;border-bottom:1px solid rgba(22,17,15,.16);display:flex;flex-direction:column;gap:.8rem;text-decoration:none}
.route + .route{padding-left:1.6rem;border-left:1px solid rgba(22,17,15,.16)}
.route .no{font:700 var(--label)/1 var(--mono);letter-spacing:.12em;color:#8A5A53}
.route h3{font:400 clamp(1.7rem,1.4rem + 1vw,2.4rem)/1.05 var(--display)}
.route p{margin:0;color:#3F3530}
.route .go{margin-top:auto;font:700 var(--label)/1 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.route:hover h3{color:#8A3F37}
@media (max-width:980px){.routes{grid-template-columns:1fr 1fr}.route:nth-child(3){padding-left:0;border-left:0}}
@media (max-width:560px){.routes{grid-template-columns:1fr}.route + .route{padding-left:0;border-left:0}}

.two-col{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,6rem);align-items:start}
@media (max-width:860px){.two-col{grid-template-columns:1fr}}
.note{border-left:3px solid var(--parchment);padding:.4rem 0 .4rem 1.2rem;font-size:.97rem;max-width:62ch}
.stack-photos{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.stack-photos figure{margin:0}
.stack-photos img{width:100%;aspect-ratio:4/5;object-fit:cover}
.stack-photos figure:nth-child(2){margin-top:3rem}
.stripe{margin:0;background:#fff;display:flex;justify-content:center}
.stripe img{width:100%;max-width:1400px;max-height:360px;object-fit:contain}
.close .hours-list li{max-width:440px}
/* narrow phones: let planner columns shrink below the photo rail's min-content */
.planner-grid > *{min-width:0}
@media (max-width:900px){.planner-grid{grid-template-columns:minmax(0,1fr)}}
