/*
Theme Name: Two Ways
Theme URI: https://twowayscafe.info
Author: Grizzly Digital
Description: Bespoke theme for Two Ways, an independent Bristol cafe. ACF Pro flexible-content build. One story, two ways.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 8.0
Text Domain: twoways
*/

/* ============================================================
   Design tokens
   ============================================================ */
:root{
  --color-cream:#F5EEE1;
  --color-cream-panel:#EFE6D4;
  --color-cream-deep:#E7DBC5;
  --color-white:#FDFBF6;
  --color-ink:#241C15;
  --color-ink-soft:#4A4036;
  --color-espresso:#3A2C20;
  --color-line:#D8CDB8;
  --color-sage:#5F7052;
  --color-sage-deep:#4C5B41;
  --color-sage-tint:#DDE2D2;
  --color-honey:#C0863B;
  --color-honey-deep:#A66E2A;
  --color-honey-tint:#EEDFC4;
  --color-blush:#F4E3D8;
  --color-blush-deep:#EAD4C5;
  --color-cafe-wash:#F2E8D5;
  --color-bakes-wash:#EDF0E6;

  --font-display:"Fraunces",Georgia,serif;
  --font-body:"Hanken Grotesk",system-ui,sans-serif;

  --container:1240px;
  --gutter:64px;
  --radius-sm:6px;
  --radius-md:12px;
  --radius-lg:20px;
  --radius-pill:999px;
}

/* ============================================================
   Reset & base
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.6;
  color:var(--color-ink);
  background:var(--color-cream);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:300;letter-spacing:-0.01em;line-height:1.05;}
p{margin:0;}

.container{max-width:var(--container);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter);}
.section{padding:120px 0;}

/* Type helpers */
.eyebrow{font-family:var(--font-body);font-size:13px;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;}
.italic{font-style:italic;}
.display{font-size:clamp(52px,7vw,88px);line-height:0.98;letter-spacing:-0.02em;}

/* ============================================================
   Buttons
   ============================================================ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:11px;height:54px;padding:0 30px;border-radius:var(--radius-pill);font-size:15px;font-weight:600;letter-spacing:0.02em;border:1.5px solid transparent;transition:transform .2s ease,background .2s ease,color .2s ease;}
.btn:hover{transform:translateY(-2px);}
.btn--sage{background:var(--color-sage);color:var(--color-white);}
.btn--sage:hover{background:var(--color-sage-deep);}
.btn--honey{background:var(--color-honey);color:var(--color-ink);}
.btn--honey:hover{background:var(--color-honey-deep);color:var(--color-white);}
.btn--ink{background:var(--color-ink);color:var(--color-white);}
.btn--ghost{background:transparent;border-color:var(--color-ink);color:var(--color-ink);}
.btn--ghost-light{background:transparent;border-color:rgba(253,251,246,.6);color:var(--color-white);}
.link-underline{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px;}
.link-underline span:first-child{border-bottom:1.5px solid currentColor;padding-bottom:2px;}

/* ============================================================
   Header / nav (burger)
   ============================================================ */
.site-header{position:absolute;top:0;left:0;width:100%;z-index:40;transition:background .35s ease,box-shadow .35s ease,opacity .35s ease;}
.site-header .container{display:flex;align-items:center;justify-content:space-between;max-width:none;padding-top:32px;padding-bottom:32px;transition:padding .35s ease;}
.site-header.is-scrolled{position:fixed;background:var(--color-cream);box-shadow:0 6px 26px -16px rgba(36,28,21,.5);}
.site-header.is-scrolled .container{padding-top:16px;padding-bottom:16px;}
.menu-open .site-header{opacity:0;pointer-events:none;}
.brand{display:inline-flex;align-items:center;}
.site-header .brand-logo{height:46px;width:auto;}
.brand .logo-ink{display:none;}
.site-header.is-dark .logo-white,.site-header.is-scrolled .logo-white{display:none;}
.site-header.is-dark .logo-ink,.site-header.is-scrolled .logo-ink{display:block;}
.menu-toggle{display:flex;align-items:center;gap:14px;height:46px;padding:0 22px 0 24px;border-radius:var(--radius-pill);border:1.5px solid rgba(253,251,246,.55);background:transparent;color:var(--color-white);}
.menu-toggle .label{font-size:13px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;}
.menu-toggle .bars{display:flex;flex-direction:column;gap:5px;width:22px;}
.menu-toggle .bars span{height:2px;background:currentColor;width:22px;border-radius:2px;flex:0 0 2px;}
.menu-toggle .bars span:last-child{width:15px;}
.site-header.is-dark .menu-toggle,.site-header.is-scrolled .menu-toggle{border-color:rgba(36,28,21,.3);color:var(--color-ink);}

/* Full-screen menu overlay */
.menu-overlay{position:fixed;inset:0;z-index:60;background:var(--color-blush);display:flex;flex-direction:row-reverse;opacity:0;visibility:hidden;transition:opacity .5s cubic-bezier(.4,0,.2,1),visibility .5s;}
.menu-overlay.open{opacity:1;visibility:visible;}
.menu-overlay__left{width:830px;max-width:60%;display:flex;flex-direction:column;justify-content:space-between;padding:32px 64px 56px;}
.menu-overlay__top{display:flex;align-items:center;justify-content:space-between;}
/* image panel slides + fades */
.menu-overlay__right{opacity:0;transform:translateX(-24px);transition:opacity .6s ease,transform .7s cubic-bezier(.2,.7,.2,1);}
.menu-overlay.open .menu-overlay__right{opacity:1;transform:none;}
/* nav items stagger in */
.menu-nav a{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .6s cubic-bezier(.2,.7,.2,1);}
.menu-overlay.open .menu-nav a{opacity:1;transform:none;}
.menu-overlay.open .menu-nav a:nth-child(1){transition-delay:.10s;}
.menu-overlay.open .menu-nav a:nth-child(2){transition-delay:.15s;}
.menu-overlay.open .menu-nav a:nth-child(3){transition-delay:.20s;}
.menu-overlay.open .menu-nav a:nth-child(4){transition-delay:.25s;}
.menu-overlay.open .menu-nav a:nth-child(5){transition-delay:.30s;}
.menu-overlay.open .menu-nav a:nth-child(6){transition-delay:.35s;}
.menu-overlay.open .menu-nav a:nth-child(7){transition-delay:.40s;}
.menu-overlay.open .menu-nav a:nth-child(8){transition-delay:.45s;}
.menu-foot{opacity:0;transition:opacity .5s ease .35s;}
.menu-overlay.open .menu-foot{opacity:1;}
.menu-close{display:flex;align-items:center;gap:14px;height:46px;padding:0 22px 0 24px;border-radius:var(--radius-pill);border:1.5px solid rgba(36,28,21,.3);background:transparent;color:var(--color-ink);}
.menu-close .label{font-size:13px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;}
.menu-nav{display:flex;flex-direction:column;gap:2px;}
.menu-nav a{display:flex;align-items:baseline;gap:22px;padding:9px 0;}
.menu-nav .num{font-size:13px;font-weight:600;letter-spacing:0.14em;color:rgba(36,28,21,.42);width:28px;flex-shrink:0;}
.menu-nav .label{font-family:var(--font-display);font-size:40px;font-weight:300;letter-spacing:-0.01em;color:var(--color-ink);}
.menu-nav .dot{width:9px;height:9px;border-radius:999px;align-self:center;flex-shrink:0;}
.menu-nav .dot--honey{background:var(--color-honey);}
.menu-nav .dot--sage{background:var(--color-sage);}
.menu-nav .tag{font-size:12px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;align-self:center;}
.menu-nav .tag--honey{color:var(--color-honey-deep);}
.menu-nav .tag--sage{color:var(--color-sage-deep);}
.menu-foot{display:flex;align-items:center;justify-content:space-between;padding-top:24px;border-top:1px solid rgba(36,28,21,.16);}
.menu-foot a,.menu-foot span{font-size:14px;color:var(--color-ink-soft);}
.menu-foot .socials{display:flex;gap:24px;}
.menu-foot .socials a{font-size:13px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;}
.menu-overlay__right{flex:1;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;}
.menu-overlay__right img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%;}
.menu-overlay__right .overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(32,24,18,.35),rgba(32,24,18,.12) 40%,rgba(32,24,18,.82));}
.menu-overlay__findus{position:relative;z-index:2;padding:48px;display:flex;flex-direction:column;gap:16px;color:var(--color-white);}
.menu-overlay__findus .fu-row{display:flex;align-items:center;gap:10px;}
.menu-overlay__findus .fu-name{font-family:var(--font-display);font-size:22px;}
.menu-overlay__findus .fu-addr{font-size:15px;color:rgba(253,251,246,.8);}

/* ============================================================
   Hero
   ============================================================ */
.hero{position:relative;min-height:92vh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;}
.hero--page{min-height:660px;}
.hero__img{position:absolute;top:-20%;left:0;width:100%;height:140%;object-fit:cover;object-position:center 50%;will-change:transform;}
.hero__overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,21,15,.52) 0%,rgba(28,21,15,.18) 30%,rgba(28,21,15,.34) 56%,rgba(24,17,11,.9) 100%),linear-gradient(90deg,rgba(24,17,11,.55) 0%,rgba(24,17,11,0) 58%);}
.hero__accent{position:absolute;top:0;left:0;width:100%;height:6px;z-index:3;}
.hero__inner{position:relative;z-index:2;width:100%;padding:0 var(--gutter) 72px;color:var(--color-white);text-align:left;}
.hero__eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:22px;color:rgba(253,251,246,.9);}
.hero__eyebrow .rule{width:36px;height:1.5px;background:rgba(253,251,246,.7);}
.hero__title{color:var(--color-white);margin-bottom:22px;max-width:900px;}
.hero__sub{font-size:20px;line-height:1.6;color:rgba(253,251,246,.94);max-width:600px;}
.hero__cta{display:flex;align-items:center;gap:22px;margin-top:26px;flex-wrap:wrap;}
.scroll-cue{position:absolute;bottom:34px;left:0;width:100%;display:flex;flex-direction:column;align-items:center;gap:10px;z-index:2;color:rgba(253,251,246,.85);}
.scroll-cue .label{font-size:13px;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;}

/* ============================================================
   Fork (two doors)
   ============================================================ */
.fork{background:var(--color-cream);text-align:center;}
.fork__mark{display:inline-flex;align-items:center;gap:14px;margin-bottom:14px;}
.fork__mark .rule{width:28px;height:1.5px;background:var(--color-ink);}
.fork__mark .dot{width:6px;height:6px;border-radius:999px;}
.fork__mark .dot--honey{background:var(--color-honey);}
.fork__mark .dot--sage{background:var(--color-sage);}
.fork__title{font-size:clamp(38px,5vw,52px);margin:8px 0;}
.fork__intro{font-size:18px;line-height:1.6;color:var(--color-ink-soft);max-width:560px;margin:0 auto;}
.doors{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:52px;text-align:left;}
.door{position:relative;height:660px;border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s ease;}
.door:hover{transform:translateY(-8px);box-shadow:0 26px 50px -22px rgba(36,28,21,.55);}
.door img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;transition:opacity .4s ease,transform .5s ease;}
.door:hover img{opacity:.8;transform:scale(1.03);}
.door__accent{position:absolute;top:0;left:0;width:100%;height:6px;}
.door__body{position:relative;z-index:2;padding:40px;color:var(--color-white);display:flex;flex-direction:column;gap:14px;}
.door__eyebrow{font-size:12px;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;}
.door__name{font-family:var(--font-display);font-size:44px;font-weight:400;color:var(--color-white);line-height:1;}
.door__desc{font-family:var(--font-display);font-style:italic;font-size:19px;font-weight:300;color:rgba(253,251,246,.92);}
.door__meta{display:flex;flex-wrap:wrap;gap:20px;padding-top:6px;font-size:14px;color:rgba(253,251,246,.82);align-items:center;}
.door__meta .dir{display:inline-flex;align-items:center;gap:7px;font-weight:600;}
.door--cafe .door__accent{background:var(--color-honey);}
.door--cafe .door__eyebrow,.door--cafe .door__meta .dir{color:#F4D9AE;}
.door--bakes .door__accent{background:var(--color-sage);}
.door--bakes .door__eyebrow,.door--bakes .door__meta .dir{color:#CDE0C2;}
.door__overlay{position:absolute;inset:0;}
.door--cafe .door__overlay{background:linear-gradient(180deg,rgba(28,21,15,.18) 0%,rgba(28,21,15,.08) 26%,rgba(40,28,14,.72) 52%,rgba(26,19,9,.96) 100%);}
.door--bakes .door__overlay{background:linear-gradient(180deg,rgba(24,28,20,.18) 0%,rgba(24,28,20,.08) 26%,rgba(26,34,20,.72) 52%,rgba(16,24,13,.96) 100%);}
.shop-cta{display:flex;flex-direction:column;align-items:center;gap:16px;margin-top:52px;}
.shop-cta .note{font-size:15px;color:var(--color-ink-soft);}

/* ============================================================
   Story (editorial two-col)
   ============================================================ */
.story{display:flex;justify-content:center;}
.story__inner{display:flex;gap:72px;align-items:center;max-width:var(--container);width:100%;padding-left:var(--gutter);padding-right:var(--gutter);}
.story--reverse .story__inner{flex-direction:row-reverse;}
.story__media{width:470px;flex-shrink:0;height:580px;border-radius:var(--radius-lg);overflow:hidden;}
.story__media img{width:100%;height:100%;object-fit:cover;}
.story__body{flex:1;display:flex;flex-direction:column;gap:24px;}
.story__eyebrow{display:flex;align-items:center;gap:12px;}
.story__eyebrow .rule{width:24px;height:1.5px;}
.story__quote{font-family:var(--font-display);font-style:italic;font-size:30px;font-weight:300;line-height:1.32;}
.story__text{font-size:18px;line-height:1.7;color:var(--color-ink-soft);}
.story__sign{font-family:var(--font-display);font-style:italic;font-size:20px;font-weight:400;padding-top:4px;}
.section-head{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;max-width:calc(720px + var(--gutter) * 2);margin:0 auto 56px;padding-left:var(--gutter);padding-right:var(--gutter);}
.section-head h2{font-size:clamp(40px,5vw,52px);}

/* ============================================================
   Menu cards / offer
   ============================================================ */
.offer__head{display:flex;align-items:flex-end;justify-content:space-between;max-width:var(--container);margin:0 auto 40px;gap:24px;padding-left:var(--gutter);padding-right:var(--gutter);}
.offer__head h2{font-size:clamp(32px,4vw,44px);}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:var(--container);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter);}
.pcard{position:relative;height:420px;border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;}
.pcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.pcard:hover img{transform:scale(1.04);}
.pcard .overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,21,15,.05) 40%,rgba(40,28,14,.82) 100%);}
.pcard__body{position:relative;z-index:2;padding:28px;color:var(--color-white);}
.pcard__body h3{font-size:26px;font-weight:400;color:var(--color-white);}
.pcard__body p{font-size:14px;line-height:1.5;color:rgba(253,251,246,.9);margin-top:6px;}

/* ============================================================
   Feature band (pizza / shop / hire)
   ============================================================ */
.feature{display:flex;justify-content:center;padding-left:var(--gutter);padding-right:var(--gutter);}
.feature__inner{display:flex;max-width:var(--container);width:100%;height:460px;border-radius:var(--radius-lg);overflow:hidden;}
.feature--reverse .feature__inner{flex-direction:row-reverse;}
.feature__media{flex:1.25;position:relative;overflow:hidden;}
.feature__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.feature__panel{flex:1;display:flex;flex-direction:column;justify-content:center;gap:16px;padding:56px;}
.feature__panel h2{font-size:clamp(36px,4vw,50px);font-weight:400;}
.feature__panel .lead{font-size:17px;line-height:1.6;}
.feature__badge{display:inline-flex;align-items:center;height:40px;padding:0 18px;border-radius:var(--radius-pill);background:var(--color-ink);color:var(--color-white);font-size:14px;font-weight:600;}
.feature__row{display:flex;align-items:center;gap:12px;padding-top:8px;flex-wrap:wrap;}

/* ============================================================
   Visit
   ============================================================ */
.visit__inner{display:flex;gap:64px;align-items:stretch;max-width:var(--container);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter);}
.visit__body{flex:1;display:flex;flex-direction:column;justify-content:center;gap:22px;}
.visit__body h2{font-size:clamp(36px,4vw,44px);}
.visit__addr{font-size:18px;line-height:1.7;}
.visit__cols{display:flex;gap:48px;padding-top:8px;}
.visit__col{display:flex;flex-direction:column;gap:6px;}
.visit__col .lbl{font-size:12px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--color-ink-soft);}
.visit__media{flex:1;border-radius:var(--radius-lg);overflow:hidden;min-height:440px;}
.visit__media img{width:100%;height:100%;object-fit:cover;}

/* ============================================================
   Instagram
   ============================================================ */
.insta{text-align:center;}
.insta__head{margin-bottom:28px;}
.insta__handle{font-family:var(--font-display);font-style:italic;font-size:26px;font-weight:300;}
.insta__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:var(--container);margin:0 auto;}
.insta__grid img{width:100%;height:272px;object-fit:cover;border-radius:14px;transition:opacity .2s ease;}
.insta__grid a:hover img{opacity:.9;}

/* ============================================================
   Rich text (About / Work with us / Gift Cards / Contact bodies)
   ============================================================ */
.prose{max-width:760px;margin:0 auto;}
.prose h2{font-size:clamp(30px,4vw,40px);margin:1.4em 0 .5em;}
.prose h3{font-size:24px;font-weight:400;margin:1.2em 0 .4em;}
.prose p{font-size:18px;line-height:1.75;color:var(--color-ink-soft);margin-bottom:1em;}
.prose a{color:var(--color-sage-deep);border-bottom:1px solid var(--color-sage-deep);}

/* ============================================================
   Enquiry / booking form
   ============================================================ */
.enquiry{max-width:820px;margin:0 auto;}
.enquiry__head{text-align:center;margin-bottom:40px;}
.enquiry__head h2{font-size:clamp(30px,4vw,42px);}
.enquiry__intro{font-size:18px;line-height:1.6;color:var(--color-ink-soft);margin-top:12px;}
.enquiry__notice{padding:16px 20px;border-radius:12px;font-size:15px;margin-bottom:24px;text-align:center;}
.enquiry__notice--ok{background:var(--color-sage-tint);color:var(--color-sage-deep);}
.enquiry__notice--err{background:#F3DDD3;color:#A6462A;}
.enquiry-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.ef-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:28px;}
.ef-field{display:flex;flex-direction:column;gap:8px;}
.ef-field--full{grid-column:1 / -1;}
.ef-field span{font-size:13px;font-weight:600;letter-spacing:0.04em;color:var(--color-ink-soft);}
.ef-field input,.ef-field select,.ef-field textarea{font-family:inherit;font-size:16px;color:var(--color-ink);background:var(--color-white);border:1px solid var(--color-line);border-radius:12px;padding:14px 16px;width:100%;transition:border-color .2s ease;}
.ef-field input:focus,.ef-field select:focus,.ef-field textarea:focus{outline:none;border-color:var(--color-sage);}
.ef-field textarea{resize:vertical;min-height:120px;}
.enquiry-form>.btn{display:flex;width:100%;}
@media(max-width:560px){.ef-grid{grid-template-columns:1fr;}}

/* ============================================================
   Product grid (shop)
   ============================================================ */
.tw-products{display:grid;grid-template-columns:repeat(3,1fr);gap:32px 24px;max-width:var(--container);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter);}
.tw-product{display:flex;flex-direction:column;}
.product__media{position:relative;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4 / 3;background:var(--color-cream-panel);}
.product__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.tw-product:hover .product__media img{transform:scale(1.04);}
.product__badge{position:absolute;top:14px;left:14px;background:var(--color-ink);color:var(--color-white);font-size:11px;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;padding:7px 12px;border-radius:999px;}
.product__info{padding:18px 4px 0;display:flex;flex-direction:column;gap:5px;}
.product__name{font-family:var(--font-display);font-size:22px;font-weight:400;color:var(--color-ink);line-height:1.1;}
.product__desc{font-size:14px;line-height:1.5;color:var(--color-ink-soft);}
.product__price{font-size:15px;font-weight:600;color:var(--color-sage-deep);margin-top:2px;}
@media(max-width:820px){.tw-products{grid-template-columns:repeat(2,1fr);gap:28px 20px;}}
@media(max-width:480px){.tw-products{gap:22px 14px;} .product__name{font-size:19px;} .product__badge{font-size:10px;padding:6px 10px;}}

/* ============================================================
   Footer
   ============================================================ */
.site-footer{background:var(--color-blush-deep);color:var(--color-ink);padding:96px 0 40px;}
.footer-newsletter{display:flex;align-items:center;justify-content:space-between;gap:48px;padding-bottom:64px;border-bottom:1px solid rgba(36,28,21,.16);}
.footer-newsletter h2{font-size:40px;}
.footer-newsletter p{font-size:16px;line-height:1.6;color:var(--color-ink-soft);margin-top:12px;max-width:520px;}
.footer-form{display:flex;align-items:center;gap:12px;}
.footer-form input{width:300px;height:56px;padding:0 22px;border-radius:var(--radius-pill);border:1px solid rgba(36,28,21,.3);background:transparent;font-family:inherit;font-size:15px;color:var(--color-ink);}
.footer-cols{display:flex;gap:48px;padding:64px 0;}
.footer-brand{flex:1.3;display:flex;flex-direction:column;gap:18px;}
.footer-brand img{width:120px;height:auto;}
.footer-brand .tagline{font-family:var(--font-display);font-style:italic;font-size:20px;color:rgba(36,28,21,.85);}
.footer-brand .meta{font-size:13px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:rgba(36,28,21,.55);}
.footer-col{flex:1;display:flex;flex-direction:column;gap:12px;}
.footer-col.explore{flex:.8;}
.footer-col .head{font-size:12px;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;}
.footer-col.cafe .head{color:var(--color-honey-deep);}
.footer-col.bakes .head{color:var(--color-sage-deep);}
.footer-col.explore .head{color:rgba(36,28,21,.55);}
.footer-col a,.footer-col span{font-size:15px;color:var(--color-ink-soft);line-height:1.7;}
.footer-col a{color:var(--color-ink);}
.footer-dir{display:inline-flex;align-items:center;gap:7px;font-weight:600;padding-top:2px;}
.footer-col.cafe .footer-dir{color:var(--color-honey-deep);}
.footer-col.bakes .footer-dir{color:var(--color-sage-deep);}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:36px;border-top:1px solid rgba(36,28,21,.16);}
.footer-bottom,.footer-bottom a{font-size:13px;color:rgba(36,28,21,.55);}
.footer-bottom .links{display:flex;gap:28px;}

/* ============================================================
   Preloader
   ============================================================ */
.tw-preloader{position:fixed;inset:0;z-index:9999;background:var(--color-sage);display:flex;align-items:center;justify-content:center;transition:opacity .6s ease,visibility .6s ease;}
.tw-preloader__logo{width:150px;height:auto;opacity:0;transform:translateY(8px);animation:tw-pl-in .8s ease forwards;}
.tw-preloader.is-hidden{opacity:0;visibility:hidden;}
@keyframes tw-pl-in{to{opacity:1;transform:none;}}
html.tw-loading{overflow:hidden;}

/* ============================================================
   Scroll reveal
   ============================================================ */
.tw-reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1);}
.tw-reveal.is-in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){
  .tw-reveal{opacity:1 !important;transform:none !important;transition:none;}
  .hero__img{transition:none !important;}
}

/* Section washes */
.wash-cafe{background:var(--color-cafe-wash);}
.wash-bakes{background:var(--color-bakes-wash);}
.wash-cream{background:var(--color-cream);}
.wash-white{background:var(--color-white);}

/* ============================================================
   Responsive
   ============================================================ */
/* Tablet & down */
@media(max-width:1024px){
  :root{--gutter:40px;}
  .story__inner,.visit__inner{gap:48px;}
  .feature__inner,.feature--reverse .feature__inner{height:auto;flex-direction:column;}
  .feature__media{min-height:300px;}
  .feature__panel{padding:44px;}
  .menu-overlay__left{max-width:100%;width:100%;}
  .menu-overlay__right{display:none;}
  .hero__title.display{font-size:clamp(48px,8vw,76px);}
  .cards{grid-template-columns:repeat(2,1fr);}
  .pcard{height:360px;}
}
/* Landscape phone / small tablet */
@media(max-width:820px){
  .section{padding:80px 0;}
  .hero{min-height:86vh;}
  .hero--page{min-height:520px;}
  .hero__img{height:100%;top:0;}
  .hero__sub{font-size:17px;}
  .hero__inner{padding-bottom:56px;}
  .hero__cta{gap:16px 20px;}
  .doors{grid-template-columns:1fr;}
  .door{height:440px;}
  .door__name{font-size:36px;}
  .insta__grid{grid-template-columns:repeat(2,1fr);}
  .insta__grid img{height:230px;}
  .story__inner,.story--reverse .story__inner,.visit__inner{flex-direction:column;}
  .story__media,.visit__media{width:100%;height:360px;min-height:0;}
  .story__quote{font-size:24px;}
  .section-head h2{font-size:clamp(34px,7vw,44px);}
  .offer__head{flex-direction:column;align-items:flex-start;gap:14px;}
  .footer-newsletter{flex-direction:column;align-items:flex-start;gap:24px;}
  .footer-newsletter h2{font-size:32px;}
  .footer-form{width:100%;}
  .footer-form input{flex:1;width:auto;}
  .footer-cols{flex-wrap:wrap;gap:32px 24px;}
  .footer-brand{flex:1 1 100%;}
  .footer-col{flex:1 1 42%;}
  .menu-overlay__left{padding:32px 40px 40px;}
  .menu-nav .label{font-size:30px;}
  .menu-nav a{gap:16px;padding:7px 0;}
  .hero__title.display{font-size:clamp(44px,11vw,66px);}
}
/* Phones */
@media(max-width:480px){
  :root{--gutter:22px;}
  .section{padding:60px 0;}
  .eyebrow{letter-spacing:0.16em;}
  .hero__inner{padding-bottom:44px;}
  .hero__sub{font-size:16px;}
  .hero__cta{flex-direction:column;align-items:flex-start;gap:14px;}
  .scroll-cue{display:none;}
  .cards{grid-template-columns:1fr;}
  .pcard{height:300px;}
  .door{height:400px;}
  .door__body{padding:26px;}
  .door__name{font-size:30px;}
  .door__desc{font-size:17px;}
  .door__meta{gap:6px 16px;font-size:13px;}
  .pcard{height:290px;}
  .insta__grid{gap:10px;}
  .insta__grid img{height:150px;}
  .visit__cols{gap:26px;}
  .feature__panel{padding:32px;}
  .feature__panel h2{font-size:34px;}
  .story__quote{font-size:22px;}
  .footer-cols{flex-direction:column;gap:28px;}
  .footer-col,.footer-brand{flex:1 1 100%;}
  .footer-bottom{flex-direction:column;gap:16px;align-items:flex-start;}
  .footer-newsletter h2{font-size:28px;}
  .menu-overlay__left{padding:26px 22px 30px;}
  .menu-nav .label{font-size:27px;}
  .menu-nav .tag{display:none;}
  .menu-nav a{gap:14px;}
  .menu-foot{flex-direction:column;align-items:flex-start;gap:14px;}
  .btn{height:50px;padding:0 26px;}
  .menu-toggle{padding:0 16px 0 18px;}
  .menu-toggle .label,.menu-close .label{font-size:12px;letter-spacing:0.14em;}
}

/* ============================================================
   WooCommerce (store, product, cart, checkout)
   ============================================================ */
.woo .woocommerce{max-width:var(--container);margin:0 auto;}
.woocommerce .woocommerce-result-count,.woocommerce .woocommerce-ordering{margin-bottom:24px;color:var(--color-ink-soft);}
.woocommerce ul.products{display:grid !important;grid-template-columns:repeat(3,1fr);gap:34px 24px;margin:0 !important;padding:0 !important;}
.woocommerce ul.products li.product{width:auto !important;margin:0 !important;float:none !important;text-align:left;}
.woocommerce ul.products li.product a img{border-radius:var(--radius-lg);margin-bottom:16px;aspect-ratio:4 / 3;object-fit:cover;}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-family:var(--font-display);font-size:22px;font-weight:400;color:var(--color-ink);padding:0 0 4px;}
.woocommerce ul.products li.product .price{color:var(--color-sage-deep) !important;font-family:var(--font-body);font-size:16px;font-weight:600;}
.woocommerce ul.products li.product .price del{color:var(--color-ink-soft);font-weight:400;}
.woocommerce a.button,.woocommerce button.button,.woocommerce .button,.woocommerce #respond input#submit,.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce-page a.button,.wc-block-components-button{background:var(--color-sage) !important;color:var(--color-white) !important;border-radius:var(--radius-pill) !important;font-family:var(--font-body) !important;font-weight:600 !important;letter-spacing:0.01em;padding:13px 26px !important;border:none !important;transition:background .2s ease,transform .2s ease;}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce .button:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover{background:var(--color-sage-deep) !important;transform:translateY(-1px);}
.woocommerce div.product .product_title{font-family:var(--font-display);font-weight:300;font-size:clamp(32px,4vw,46px);color:var(--color-ink);letter-spacing:-0.01em;}
.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--color-sage-deep);font-size:26px;font-weight:600;}
.woocommerce div.product .woocommerce-product-gallery img{border-radius:var(--radius-lg);}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{border-bottom-color:var(--color-sage);}
.woocommerce .quantity input.qty{border:1px solid var(--color-line);border-radius:10px;padding:12px 10px;background:var(--color-white);}
.woocommerce-message,.woocommerce-info,.woocommerce-noreviews,.woocommerce-error{border-top-color:var(--color-sage) !important;background:var(--color-white);border-radius:12px;}
.woocommerce-message::before,.woocommerce-info::before{color:var(--color-sage) !important;}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce-checkout select,.woocommerce table.shop_table{border-radius:12px;}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea{border:1px solid var(--color-line);padding:13px 15px;font-family:inherit;}
.woocommerce .cart_totals h2,.woocommerce-checkout h3,.woocommerce-column__title{font-family:var(--font-display);font-weight:400;}
@media(max-width:820px){.woocommerce ul.products{grid-template-columns:repeat(2,1fr);}}
@media(max-width:480px){.woocommerce ul.products{grid-template-columns:repeat(2,1fr);gap:22px 14px;}}

a.tw-product{color:inherit;}
.product__soon{color:var(--color-ink-soft);font-weight:500;font-size:14px;}
.product__price{min-height:20px;}

/* ============================================================
   WooCommerce single product — image left, buy panel right
   ============================================================ */
.woocommerce div.product{display:flex;flex-wrap:wrap;gap:48px;align-items:flex-start;}
.woocommerce div.product .woocommerce-product-gallery{flex:1 1 0;min-width:0;width:auto;float:none;margin:0;}
.woocommerce div.product .summary{flex:1 1 0;min-width:0;width:auto;float:none;margin:0;}
.woocommerce div.product .related ul.products,.woocommerce div.product .upsells ul.products{grid-template-columns:repeat(3,1fr) !important;width:100%;}
.woocommerce div.product .woocommerce-product-gallery__image img{border-radius:var(--radius-lg);}
.woocommerce div.product .summary .price{margin:6px 0 20px;}
.woocommerce div.product .woocommerce-product-details__short-description{color:var(--color-ink-soft);line-height:1.6;margin-bottom:24px;}
.woocommerce div.product form.cart{display:flex;gap:12px;align-items:center;margin:8px 0 20px;}
.woocommerce div.product .product_meta{font-size:14px;color:var(--color-ink-soft);margin-top:20px;}
/* tabs, upsells and related span full width below */
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .upsells,
.woocommerce div.product .related{width:100%;flex:0 0 100%;margin-top:16px;}
.woocommerce .related > h2,.woocommerce .upsells > h2{font-family:var(--font-display);font-weight:300;font-size:clamp(28px,3vw,34px);margin:0 0 28px;color:var(--color-ink);}
.woocommerce div.product .woocommerce-tabs ul.tabs{padding-left:0;}
@media(max-width:820px){
  .woocommerce div.product{gap:32px;}
  .woocommerce div.product .woocommerce-product-gallery,
  .woocommerce div.product .summary{width:100%;}
}

/* Fix: WooCommerce clearfix pseudo-elements become stray grid items */
.woocommerce ul.products::before,.woocommerce ul.products::after{content:none !important;display:none !important;}
.woocommerce ul.products{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
.woocommerce .related ul.products,.woocommerce .upsells ul.products{grid-template-columns:repeat(3,minmax(0,1fr)) !important;width:100% !important;}
.woocommerce ul.products li.product{grid-column:auto !important;clear:none !important;max-width:none !important;}
@media(max-width:820px){.woocommerce ul.products{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}}

/* ============================================================
   Variable product options (e.g. pack sizes)
   ============================================================ */
.woocommerce div.product form.cart{display:block;margin-top:6px;}
.woocommerce div.product form.variations_form table.variations{display:block;width:auto;margin:0 0 6px;border:0;}
.woocommerce div.product form.variations_form table.variations tbody{display:flex;flex-direction:column;gap:16px;}
.woocommerce div.product form.variations_form table.variations tr{display:flex;flex-direction:column;gap:8px;margin:0;border:0;}
.woocommerce div.product form.variations_form table.variations td{display:block;padding:0;border:0;background:none;text-align:left;}
.woocommerce div.product form.variations_form table.variations td.label label{font-size:13px;font-weight:600;letter-spacing:0.03em;text-transform:none;color:var(--color-ink-soft);line-height:1.2;margin:0;}
.woocommerce div.product form.variations_form table.variations td.value{max-width:340px;}
.woocommerce div.product form.variations_form td.value select,.woocommerce div.product form.variations_form .value select{font-family:var(--font-body);font-size:16px;color:var(--color-ink);background-color:var(--color-white);border:1px solid var(--color-line);border-radius:12px;padding:13px 44px 13px 16px;width:100%;height:auto;line-height:1.2;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23241C15' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:12px;}
.woocommerce div.product form.variations_form td.value select:focus{outline:none;border-color:var(--color-sage);box-shadow:0 0 0 3px rgba(95,112,82,.15);}
.woocommerce div.product .reset_variations{display:inline-block;margin:6px 0 0;font-size:13px;color:var(--color-ink-soft);border-bottom:1px solid var(--color-line);padding-bottom:1px;}
.woocommerce div.product .woocommerce-variation{margin:0;}
.woocommerce div.product .woocommerce-variation-price{margin:18px 0 16px;}
.woocommerce div.product .woocommerce-variation-price .price{color:var(--color-sage-deep) !important;font-size:24px;font-weight:600;}
.woocommerce div.product .woocommerce-variation-add-to-cart{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.woocommerce div.product form.cart .quantity{margin:0;float:none;}
.woocommerce .quantity input.qty{width:78px;height:54px;text-align:center;border:1px solid var(--color-line);border-radius:12px;background:var(--color-white);font-size:16px;padding:0;}
.woocommerce div.product form.cart .single_add_to_cart_button{white-space:nowrap;}
/* simple products: keep quantity + button on one tidy row */
.woocommerce div.product form.cart:not(.variations_form){display:flex;align-items:center;gap:14px;flex-wrap:wrap;}

/* ============================================================
   Header basket button
   ============================================================ */
.header-actions{display:flex;align-items:center;gap:14px;}
.header-cart{position:relative;display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:var(--radius-pill);border:1.5px solid rgba(253,251,246,.55);color:var(--color-white);transition:background .2s ease,color .2s ease,border-color .2s ease;}
.header-cart:hover{background:rgba(253,251,246,.14);transform:translateY(-1px);}
.site-header.is-dark .header-cart,.site-header.is-scrolled .header-cart{border-color:rgba(36,28,21,.28);color:var(--color-ink);}
.site-header.is-scrolled .header-cart:hover{background:rgba(36,28,21,.06);}
.header-cart__count{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--color-honey);color:var(--color-ink);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 0 0 2px var(--color-cream);}
.site-header:not(.is-scrolled).is-dark .header-cart__count{box-shadow:none;}
.header-cart__count.is-empty{display:none;}

/* ============================================================
   Delivery badges (shop cards + single product)
   ============================================================ */
.product__badge{font-size:11px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;padding:7px 12px;border-radius:999px;line-height:1;}
.product__badge--collect{background:var(--color-ink);color:var(--color-white);}
.product__badge--local{background:var(--color-sage);color:var(--color-white);}
.product__badge--delivery{background:var(--color-honey-tint);color:var(--color-honey-deep);}
.tw-delivery-tag{display:inline-block;margin:0 0 22px;padding:7px 14px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;line-height:1;}
.tw-delivery-tag--collect{background:var(--color-ink);color:var(--color-white);}
.tw-delivery-tag--local{background:var(--color-sage-tint);color:var(--color-sage-deep);}
.tw-delivery-tag--delivery{background:var(--color-honey-tint);color:var(--color-honey-deep);}

/* ============================================================
   Shop Sweet / Savoury filter
   ============================================================ */
.shop-filter{display:flex;justify-content:center;gap:10px;max-width:var(--container);margin:0 auto 44px;padding:0 var(--gutter);}
.shop-filter__btn{height:44px;padding:0 24px;border-radius:var(--radius-pill);border:1.5px solid var(--color-line);background:transparent;color:var(--color-ink-soft);font-size:14px;font-weight:600;letter-spacing:0.02em;transition:background .2s ease,color .2s ease,border-color .2s ease;}
.shop-filter__btn:hover{border-color:var(--color-sage);color:var(--color-ink);}
.shop-filter__btn.is-active{background:var(--color-sage);border-color:var(--color-sage);color:var(--color-white);}

/* Made-to-order enquiry tab */
.tw-enquire p{margin-bottom:18px;color:var(--color-ink-soft);}

@media(max-width:480px){
	.shop-filter{gap:8px;padding:0 24px;}
	.shop-filter__btn{padding:0 18px;font-size:13px;}
}

/* Footer design credit */
.footer-credit{opacity:.7;border-bottom:1px solid transparent;transition:opacity .2s ease,border-color .2s ease;}
.footer-credit:hover{opacity:1;border-bottom-color:currentColor;}

/* Cart/checkout delivery note */
.tw-cart-note{margin:0 auto 26px;padding:16px 20px;background:var(--color-honey);color:var(--color-ink);border-radius:var(--radius-md);font-size:15px;font-weight:700;line-height:1.55;max-width:920px;}

/* Continue to Shop link (cart/checkout) */
.tw-shop-link{max-width:920px;margin:0 auto 18px;}
.tw-shop-link a{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:15px;color:var(--color-sage-deep);border-bottom:1.5px solid currentColor;padding-bottom:2px;}
.tw-shop-link a:hover{color:var(--color-sage);}

/* ============================================================
   Complianz cookie banner — Two Ways brand (sage)
   ============================================================ */
.cmplz-cookiebanner .cmplz-btn.cmplz-accept,
.cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences,
#cmplz-manage-consent .cmplz-btn{background-color:var(--color-sage)!important;color:#fff!important;border-color:var(--color-sage)!important;}
.cmplz-cookiebanner .cmplz-btn.cmplz-accept:hover,
.cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences:hover,
#cmplz-manage-consent .cmplz-btn:hover{background-color:var(--color-sage-deep)!important;border-color:var(--color-sage-deep)!important;}
.cmplz-cookiebanner a.cmplz-link,.cmplz-cookiebanner .cmplz-links a{color:var(--color-sage)!important;}
.cmplz-cookiebanner a.cmplz-link:hover,.cmplz-cookiebanner .cmplz-links a:hover{color:var(--color-sage-deep)!important;}
/* category on/off toggles */
.cmplz-cookiebanner .cmplz-category .cmplz-switch input:checked + .cmplz-slider,
.cmplz-cookiebanner input[type=checkbox]:checked + .cmplz-slider,
.cmplz-cookiebanner .cmplz-slider.cmplz-active{background-color:var(--color-sage)!important;}

/* ============================================================
   Non-hero pages (cart / checkout / account / plain content):
   clear the ~110px fixed header on all breakpoints. On hero
   pages the header intentionally sits over the hero, so this
   only targets pages where the header is in its is-dark state.
   ============================================================ */
.site-header.is-dark ~ #main .section:first-child{padding-top:134px;}

/* reCAPTCHA v3 (badge hidden; disclosure text shown by the form instead) */
.grecaptcha-badge{visibility:hidden!important;}
.ef-recaptcha-note{font-size:12px;color:var(--color-ink-soft);margin-top:14px;line-height:1.5;max-width:520px;}
.ef-recaptcha-note a{color:var(--color-sage-deep);border-bottom:1px solid currentColor;}
