/* Shopping clarity, responsive layout and accessible controls. */
:root { --body: 'Jost', sans-serif; }
body { font-weight:400; }
button,input,select,textarea { font:inherit; }
a,button,input,select,textarea, [id] { scroll-margin-top:110px; }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible { outline:3px solid var(--gold); outline-offset:5px; }
.skip-link { position:fixed;top:8px;left:8px;z-index:1100;background:var(--parchment);padding:12px 18px;transform:translateY(-150%); }
.skip-link:focus { transform:none; }
.reveal,.reveal.in { opacity:1;transform:none;filter:none;transition:none; }
header.nav,header.nav.scrolled { background:var(--ink-3);padding:1rem clamp(1.2rem,3vw,3rem);transition:background .5s ease,border-color .5s ease; }
nav.links { gap:1.5rem; }
nav.links a,.nav-cta,.btn { font-family:var(--body);font-weight:500;font-size:.95rem;letter-spacing:.02em;text-transform:none; }
.brandmark { font-size:1.3rem; }
.nav-right { gap:1rem; }
.nav-cta { white-space:nowrap; }
.burger,.mobile-drawer .close { border:0;background:transparent;width:44px;height:44px;align-items:center;justify-content:center; }
.mobile-drawer { visibility:hidden;gap:1.4rem;z-index:900; }
.mobile-drawer.open { visibility:visible; }
.mobile-drawer a { font-family:var(--body);text-transform:none;letter-spacing:0;font-size:1.3rem; }
.mobile-drawer .close { display:flex; }
body.modal-open { overflow:hidden; }
.hero { min-height:700px; }
.hero-copy { padding-top:10rem;padding-bottom:5rem; }
.hero h1 { font-size:clamp(2.8rem,4.4vw,4.5rem);max-width:none;line-height:1.09; }
.hero p.lede { margin-top:1.5rem;max-width:34ch; }
.hero-ctas { margin-top:1.8rem;gap:.8rem; }
.hero-scroll { display:none; }
.hero-visual .cap { font-size:.65rem; }
.service-strip { display:flex;justify-content:center;gap:2rem;flex-wrap:wrap;padding:1rem 1.5rem;background:var(--parchment-2);color:var(--ink);font-size:.9rem; }
.service-strip a { text-decoration:underline;text-underline-offset:4px; }
.quick-shop { padding:4rem 0;background:var(--parchment); }
.quick-shop h2 { font-size:clamp(1.8rem,3vw,2.6rem);margin:.5rem 0 2rem; }
.category-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.2rem; }
.category-card { display:block;background:#fffaf1;border:1px solid rgba(27,42,52,.12);padding-bottom:1.2rem; }
.category-card img { width:100%;aspect-ratio:1;object-fit:cover; }
.category-card h3 { font-size:1.35rem;margin:1rem 1rem .35rem; }
.category-card p { margin:0 1rem;font-size:.9rem;color:var(--muted); }
.category-card>span { display:block;margin:1rem 1rem 0;font-size:.9rem; }
.category-card:hover { border-color:var(--gold); }
.hub-inner { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.hub-media img { transition:none; }
.hub-band:hover .hub-media img { transform:none; }
.story { padding:5rem 0; }
.cakes .section-kicker { color:#D9D2C1; }
.finished-cakes { margin:3rem 0; }
.finished-cakes .collection-head { margin-bottom:1.3rem; }
.finished-cakes h2 { font-size:1.8rem; }
.finished-cakes .collection-head p { color:#D9D2C1;font-size:.95rem; }
.finished-grid { display:grid;grid-template-columns:1fr 1fr;gap:1.5rem; }
.finished-grid figure { margin:0; }
.finished-grid img { width:100%;height:440px;object-fit:cover; }
.finished-grid figcaption { margin-top:.7rem;color:#D9D2C1; }
.enquiry-panel { padding:3rem;max-width:1000px;margin:3rem auto;background:var(--ink);color:var(--cream-text); }
.enquiry-panel h2 { font-size:2.2rem;margin:.5rem 0 1rem; }
.enquiry-panel>p { max-width:65ch;margin-bottom:1.5rem; }
.brief-form { display:grid;grid-template-columns:1fr 1fr;gap:1rem; }
.brief-form .full { grid-column:1/-1; }
.brief-form .field { margin:0; }
.brief-form button { justify-self:start; }
.field label { font-family:var(--body);font-size:.9rem;letter-spacing:0;text-transform:none; }
.field input,.field textarea,.field select { font-size:1rem; }
.delivery-options { display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:2rem 0; }
.delivery-options>div { border:1px solid rgba(27,42,52,.18);background:var(--parchment-2);padding:1.5rem; }
.delivery-options h2 { font-size:1.5rem;margin-bottom:.65rem; }
.delivery-options a { display:inline-block;margin-top:1rem;text-decoration:underline;text-underline-offset:4px; }
.collection-jumps { display:flex;gap:.7rem;flex-wrap:wrap;margin:2rem 0; }
.collection-jumps a { border:1px solid rgba(27,42,52,.3);border-radius:30px;padding:.65rem 1.1rem;font-size:.9rem; }
.collection-jumps a:hover { background:var(--ink);color:var(--cream-text); }
.menu-panel { padding:2rem;display:block;margin-top:1rem; }
.menu-cat { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;margin-top:2rem; }
.menu-cat>h2,.menu-cat>.menu-subnote,.menu-cat>.menu-note { grid-column:1/-1; }
.menu-cat>h2 { font-size:1.7rem;color:var(--cream-text); }
.menu-row { display:grid;grid-template-columns:1fr auto;gap:.7rem;align-content:start;padding:1.2rem;background:rgba(255,255,255,.04);border:1px solid rgba(222,196,142,.18);min-width:0; }
.menu-row:hover { transform:none; }
.product-image-button { grid-column:1/-1;width:100%;height:170px;background:transparent;border:0;cursor:zoom-in; }
.menu-thumb { width:100%;height:100%;border-radius:0;background:none;object-fit:contain; }
.menu-row .mi { grid-column:1/-1;min-width:0; }
.menu-row .mi b { font-size:1.15rem;line-height:1.35;display:block; }
.menu-row .mi>span { font-size:.95rem;color:#D9D2C1;line-height:1.55; }
.menu-row .price { align-self:center;font-family:var(--body);font-size:1rem; }
.photo-note { display:block;margin-top:.5rem;font-size:.8rem;color:var(--gold-light); }
.add-btn { min-width:76px;min-height:44px;width:auto;height:auto;border-radius:3px;padding:.5rem .8rem;font-family:var(--body);font-size:.95rem; }
.cookie-lightbox { z-index:950;padding:5rem 1.25rem 2rem; }
.cookie-lightbox .lb-title { font-size:1.2rem;text-align:center; }
.cookie-lightbox img { max-height:65dvh; }
.everyday { background:var(--ink);padding-bottom:5rem; }
.everyday-head h1 { font-size:clamp(2.2rem,4vw,3.4rem);margin-top:1rem;line-height:1.15; }
.gallery-track { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;max-width:var(--maxw);margin:auto;padding:0 clamp(1.5rem,4vw,4rem) 2rem; }
.gallery-card { width:auto;min-width:0; }
.gallery-card:hover,.bakes-card:hover { transform:none; }
.gallery-card .meta span,.bakes-card p { font-size:.95rem; }
.everyday-collection { margin-top:2rem; }
.gift-option { padding-top:2rem;padding-bottom:2rem; }
.gift-option h2 { font-size:1.8rem;margin-bottom:.6rem; }
.gift-option p { margin-bottom:1rem; }
.gift-option .btn { color:var(--cream-text); }
.corp-gallery { max-width:1100px;margin:0 auto 4rem;padding:0 1.5rem; }
.corp-form { align-self:start; }
.contact-help { position:fixed;right:20px;bottom:20px;z-index:400;background:var(--parchment);color:var(--ink);border:1px solid var(--gold);border-radius:30px;padding:.7rem 1rem;box-shadow:0 4px 20px #0002; }
body.modal-open .contact-help { visibility:hidden; }
.cart-fab { width:auto;height:48px;padding:0 1.2rem;border-radius:30px;gap:.7rem;bottom:20px;left:20px;z-index:450;font-size:.95rem; }
.cart-count { position:static;font-size:.8rem; }
.cart-overlay { z-index:800; }
.cart-drawer { z-index:850;width:min(460px,100vw);height:100dvh;overflow-y:auto;overscroll-behavior:contain;visibility:hidden; }
.cart-drawer.open { visibility:visible; }
.cart-head { flex-shrink:0;padding:1rem 1.25rem; }
.cart-head h2 { font-size:1.5rem; }
.cart-close { width:44px;height:44px; }
.cart-body { flex:1 0 auto;overflow:visible;padding:1rem 1.25rem; }
.cart-foot { flex-shrink:0;padding:1rem 1.25rem max(1rem,env(safe-area-inset-bottom)); }
.ci-qty button { width:44px;height:44px; }
.cart-item { grid-template-columns:1fr auto;gap:.75rem; }
.ci-info { grid-column:1/-1; }
.ci-info span { font-size:.85rem; }
.ci-line { justify-self:end;font-size:1rem; }
.cart-date { font-family:var(--body);letter-spacing:0;text-transform:none;font-size:1rem;margin-bottom:.4rem; }
.cart-date input { font-size:1rem;min-height:44px; }
.cart-note { font-size:.85rem;color:#C9C2B3;margin:.4rem 0 .7rem;text-align:left; }
.cart-checkout { font-family:var(--body);letter-spacing:0;text-transform:none;font-size:1rem; }
.continue-shopping { width:100%;min-height:44px;background:transparent;color:var(--cream-text);border:0;text-decoration:underline;cursor:pointer; }
.checkout-error { color:#FFD4B9;font-size:.95rem; }
.basket-toast { position:fixed;bottom:80px;left:20px;right:20px;max-width:450px;background:var(--ink-3);color:var(--cream-text);padding:1rem;z-index:700;border:1px solid var(--gold);opacity:0;pointer-events:none; }
.basket-toast.show { opacity:1; }
@media(max-width:1100px) { nav.links {display:none;} .burger {display:flex;} }
@media(max-width:980px) {
  .hero { min-height:0;padding-top:80px; }
  .hero-inner { grid-template-columns:1fr 1fr; }
  .hero-visual { min-height:400px;order:0; }
  .hero-copy { padding:3rem 1.5rem; }
  .hero h1 { font-size:2.7rem; }
  .category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .menu-cat { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hub-inner { grid-template-columns:1fr; }
  .gallery-track { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
  .wrap { max-width:none;padding-left:20px;padding-right:20px; }
  header.nav,header.nav.scrolled { padding:.65rem 16px;min-height:72px; }
  .brandmark { font-size:1.03rem;gap:.55rem; }
  .brandmark .logo-mark { height:40px; }
  .brandmark span.wordmark { align-items:flex-start; }
  .brandmark span.wordmark small { font-size:.5rem; }
  .nav-right {gap:.3rem;} .nav-cta {font-size:.8rem;padding:.6rem .7rem;}
  .hero {padding-top:72px;}
  .hero-inner {grid-template-columns:1fr;}
  .hero-copy {padding:2.2rem 20px 2rem;order:0;}
  .hero h1 {font-size:2.55rem;max-width:none;}
  .hero p.lede {font-size:1.05rem;margin-top:1rem;}
  .hero-ctas {display:grid;grid-template-columns:1fr 1fr;margin-top:1.3rem;}
  .hero-ctas .btn {padding:.9rem .7rem;justify-content:center;min-height:48px;}
  .hero-visual {order:1;min-height:290px;height:290px;}
  .hero-visual .cap {bottom:1rem;left:20px;}
  .service-strip {gap:.6rem;font-size:.8rem;padding:1rem;}
  .quick-shop {padding:2.5rem 0;}
  .category-grid {gap:.75rem;}
  .category-card h3 {font-size:1.1rem;margin:.8rem .7rem .3rem;}
  .category-card p,.category-card>span {font-size:.85rem;margin-left:.7rem;margin-right:.7rem;}
  .cakes,.cookies,.corporate,.everyday {padding-top:7rem;}
  .section-title {font-size:2.2rem;line-height:1.15;}
  .finished-grid {gap:.8rem;}
  .finished-grid img {height:250px;}
  .finished-grid figcaption {font-size:.85rem;}
  .enquiry-panel {padding:2rem 20px;margin:0;}
  .brief-form {grid-template-columns:1fr;}
  .delivery-options {grid-template-columns:1fr;}
  .menu-panel {padding:1rem;}
  .menu-panel-head {margin-bottom:1rem;}
  .menu-cat {grid-template-columns:1fr;gap:1rem;}
  .menu-row {padding:1rem;}
  .product-image-button {height:190px;}
  .collection-jumps {gap:.5rem;}
  .collection-jumps a {font-size:.85rem;padding:.6rem .8rem;}
  .gallery-track {padding:0 20px 2rem;gap:.8rem;}
  .gallery-card .meta {padding:.8rem;}
  .gallery-card .meta b {font-size:1rem;}
  .gallery-card .meta span {font-size:.85rem;}
  .corp-form {padding:1.5rem;}
  .corp-intro-panel {padding:0;background:none;}
  .contact-help {right:12px;bottom:12px;font-size:.85rem;padding:.7rem .8rem;}
  .cart-fab {left:12px;bottom:12px;font-size:.85rem;}
  .foot-grid {gap:2rem;}
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after {animation:none!important;transition:none!important;scroll-behavior:auto!important;} }
.finished-grid img { object-fit:contain;background:var(--ink-2); }
@media(max-width:600px) { .finished-grid {grid-template-columns:1fr;} .finished-grid img {height:auto;max-height:440px;aspect-ratio:4/3;} }

/* Original QOC photography. */
.gift-grid {display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:1.5rem;}
.gift-grid article {padding:1.25rem;background:var(--ink-2);}
.gift-grid img {display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;}
.gift-grid h3 {font-size:1.5rem;margin:1rem 0 .6rem;}
.gift-grid p {color:#D9D2C1;}
 .finished-grid {grid-template-columns:repeat(3,minmax(0,1fr));}
@media(max-width:800px) {.finished-grid {grid-template-columns:1fr;} .finished-grid img {height:auto;max-height:440px;aspect-ratio:4/3;}}
@media(max-width:600px) {.gift-grid {grid-template-columns:1fr;}}

.finished-grid img {height:auto;aspect-ratio:4/3;}
