/* Poke Dot — site-specific styles. Palette and type: brand.md §6. */
@font-face{font-family:'Archivo';font-style:normal;font-weight:400 800;font-stretch:100% 125%;font-display:optional;src:url(https://fonts.gstatic.com/s/archivo/v25/k3kQo8UDI-1M0wlSfdnoLg.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

body{font-size:1.0625rem}
h1,h2{font-stretch:118%;font-weight:800;letter-spacing:-.025em}
h2{font-size:clamp(1.9rem,1.3rem + 2.4vw,3rem)}
h3{font-weight:700;font-stretch:108%}
a{color:var(--brand)}

/* ---- Buttons: pills, like the dot ---------------------------------- */
.btn{border-radius:999px;font-weight:600;min-height:48px}
.btn-primary{box-shadow:none}
.btn-outline{color:var(--ink);border-color:var(--ink)}
.btn-outline:hover{background:var(--ink);color:#fff}

/* ---- Header -------------------------------------------------------- */
.site-header{background:#fff;backdrop-filter:none}
.brand img{height:30px;width:auto}
.header-order{margin-left:auto;padding:.6em 1.1em;min-height:44px;font-size:var(--fs-sm)}
.site-header .container{gap:var(--s-5)}
.nav a{color:var(--ink);font-weight:600}
@media(min-width:861px){.header-order{order:3;margin-left:0}.nav{margin-left:auto}}
@media(max-width:380px){.brand img{height:24px}.header-order{padding:.55em .9em}}

/* ---- Hero ---------------------------------------------------------- */
.hero{padding-block:clamp(2rem,5vw,4.5rem) clamp(3rem,6vw,5rem);overflow:visible}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(2rem,4vw,3.5rem);align-items:center}
@media(min-width:900px){.hero-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}}
.hero h1{font-size:clamp(2.35rem,1.2rem + 4vw,3.9rem);line-height:1.02;margin-bottom:var(--s-5);max-width:none}
.hero .lede{color:var(--ink-2);max-width:40ch}
.hero .actions{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-6)}
.hero .also{margin-top:var(--s-5);font-size:var(--fs-sm);color:var(--ink-2);max-width:46ch}
.hero .also a{color:var(--ink);font-weight:600}

.dot{position:relative;width:min(100%,540px);aspect-ratio:1;margin-inline:auto;animation:dot-in 1s var(--ease) both}
.dot svg,.dot img{position:absolute}
.dot__disc,.dot__line{inset:0;width:100%;height:100%}
.dot__photo{left:.735%;top:28.97%;width:82.35%;height:41.9%;object-fit:cover;clip-path:url(#fish)}
@keyframes dot-in{from{transform:rotate(-16deg) scale(.94)}to{transform:none}}
@media(max-width:899px){.dot{width:min(78vw,340px)}}
@media(prefers-reduced-motion:reduce){.dot{animation:none}}

/* ---- Menu board ---------------------------------------------------- */
.board{background:var(--accent);color:var(--accent-ink)}
.board .section-head p,.board p{color:var(--ink-2)}
.board h2{margin-bottom:var(--s-3)}
.sizes{list-style:none;margin:var(--s-6) 0 0;padding:0;border-top:2px solid var(--ink)}
.sizes li{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name price" "dots dots";gap:.35rem var(--s-4);align-items:center;padding:var(--s-4) 0;border-bottom:1px solid var(--kraft)}
@media(min-width:700px){.sizes li{grid-template-columns:12rem minmax(0,1fr) auto;grid-template-areas:"name dots price";padding:var(--s-5) 0}}
.size-name{grid-area:name;font-weight:700;font-stretch:110%;font-size:var(--fs-lg)}
.size-name small{display:block;font-weight:400;font-stretch:100%;font-size:var(--fs-sm);color:var(--ink-2)}
.scoops{grid-area:dots;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.scoops i{width:clamp(1.1rem,.8rem + 1vw,1.6rem);aspect-ratio:1;border-radius:50%;background:var(--brand)}
.scoops span{margin-left:.5rem;font-size:var(--fs-sm);color:var(--ink-2)}
.scoops span:first-child{margin-left:0}
.hero .btn-lg{font-size:1.05rem;padding:.95em 1.5em}
.price{grid-area:price;font-weight:700;font-size:var(--fs-lg);font-variant-numeric:tabular-nums}
.included{margin-top:var(--s-5);font-weight:600;color:var(--ink) !important;max-width:60ch}

.build{list-style:none;margin:var(--s-8) 0 0;padding:0;counter-reset:step}
.build>li{display:grid;grid-template-columns:minmax(0,1fr);gap:.2rem var(--s-5);padding:var(--s-4) 0;border-bottom:1px solid var(--kraft);counter-increment:step}
@media(min-width:760px){.build>li{grid-template-columns:12rem minmax(0,1fr)}}
.build h3{font-size:var(--fs-lg);margin:0}
.build h3::before{content:counter(step) ". ";color:var(--brand)}
.build .rule{display:block;font-size:var(--fs-sm);font-weight:400;color:var(--ink-2);margin-top:.15rem;font-stretch:100%}
.build p{margin:0;color:var(--ink) !important}
.build-head{margin:var(--s-8) 0 0;font-size:var(--fs-xl)}
.build-head+.build{margin-top:var(--s-4)}

.extras{display:grid;gap:var(--s-7);margin-top:var(--s-8);grid-template-columns:minmax(0,1fr)}
@media(min-width:760px){.extras{grid-template-columns:1fr 1fr}}
.extras h3{font-size:var(--fs-lg);padding-bottom:var(--s-3);border-bottom:2px solid var(--ink);margin-bottom:0}
.prices{list-style:none;margin:0;padding:0}
.prices li{display:flex;justify-content:space-between;gap:var(--s-4);padding:.7rem 0;border-bottom:1px solid var(--kraft)}
.prices li span:first-child small{display:block;color:var(--ink-2);font-size:var(--fs-sm)}
.prices li span:last-child{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}

.order{margin-top:var(--s-8);display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3)}
.order p{margin:0 var(--s-3) 0 0;font-weight:700;font-size:var(--fs-lg);color:var(--ink) !important}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{background:#000;color:#fff}

/* ---- Photos + quote ------------------------------------------------ */
.photos{display:grid;gap:var(--s-4);grid-template-columns:minmax(0,1fr);margin-top:var(--s-6)}
@media(min-width:700px){.photos{grid-template-columns:repeat(3,minmax(0,1fr))}}
.photos figure{margin:0}
.photos img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:var(--radius)}
.photos figcaption{font-size:var(--fs-sm);color:var(--ink-2);margin-top:.5rem}
.quote{margin-top:var(--s-8);display:grid;gap:var(--s-5);grid-template-columns:minmax(0,1fr);align-items:end}
@media(min-width:860px){.quote{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}}
.pullquote{font-size:clamp(1.5rem,1.1rem + 1.6vw,2.3rem);font-weight:700;font-stretch:108%;line-height:1.2;max-width:26ch}
.pullquote+p{font-size:var(--fs-sm);color:var(--ink-2)}
.rating{border-top:2px solid var(--ink);padding-top:var(--s-4)}
.rating strong{display:block;font-size:var(--fs-2xl);font-stretch:118%;line-height:1}
.rating p{margin:.4rem 0 0;color:var(--ink-2);font-size:var(--fs-sm)}

/* ---- Catering + stamp card ----------------------------------------- */
.two{display:grid;gap:var(--s-8);grid-template-columns:minmax(0,1fr)}
@media(min-width:860px){.two{grid-template-columns:1fr 1fr}}
.two h2{font-size:clamp(1.6rem,1.2rem + 1.6vw,2.4rem)}
.two .actions{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-5)}
.stamps{display:grid;grid-template-columns:repeat(5,2.6rem);gap:.6rem;margin-top:var(--s-5)}
.stamps i{width:2.6rem;aspect-ratio:1;border-radius:50%;border:2px solid var(--ink)}
.stamps i.on{background:var(--brand);border-color:var(--brand)}

/* ---- Visit --------------------------------------------------------- */
.visit-grid{display:grid;gap:var(--s-7);grid-template-columns:minmax(0,1fr)}
@media(min-width:860px){.visit-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}}
.visit-photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius)}
.facts{margin:var(--s-5) 0 0;display:grid;gap:var(--s-4)}
.facts dt{font-weight:700}
.facts dd{margin:.15rem 0 0;color:var(--ink-2)}
.facts table{border-collapse:collapse}
.facts td{padding:.1rem 1.2rem .1rem 0;color:var(--ink-2)}
.map{margin-top:var(--s-6);border:0;width:100%;aspect-ratio:16/10;border-radius:var(--radius);background:var(--bg-alt)}

/* ---- Footer -------------------------------------------------------- */
.site-footer{background:#fff;color:var(--ink-2);border-top:2px solid var(--ink)}
.site-footer .brand,.site-footer h4{color:var(--ink)}
.site-footer a:hover{color:var(--brand)}
.footer-bottom{border-top-color:var(--line);color:var(--ink-3)}
.footer-mark{width:44px;height:44px}
