:root {
  --bg: #FDF8F0;
  --surface: #FFFFFF;
  --ink: #3B2516;
  --accent: #A0522D;
  --accent-2: #E8C87A;
  --line: rgba(59,37,22,0.12);
  --line-strong: rgba(59,37,22,0.22);
  --header-h: 72px;
  --radius: 8px;
  interpolate-size: allow-keywords;
}

/* ── Reset ───────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
html,body{overflow-x:hidden;max-width:100vw;margin:0;font-family:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;font-weight:400;letter-spacing:-0.008em;color:var(--ink);background:var(--bg)}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:none;background:none}
ul,ol{list-style:none}
input,textarea,select{font:inherit}

/* ── Skip Link ───────────────────────────────── */
.skip-link{position:absolute;top:-100%;left:16px;z-index:9999;padding:8px 18px;background:var(--ink);color:var(--surface);border-radius:0 0 var(--radius) var(--radius);font-size:.875rem;transition:top 200ms}
.skip-link:focus{top:0}

/* ── Typography ──────────────────────────────── */
h1,h2,h3,h4{font-family:Georgia,'Palatino Linotype',serif;font-weight:700;color:var(--ink);line-height:1.2}
h1{font-size:clamp(2.2rem,5vw,3.6rem)}
h2{font-size:clamp(1.6rem,3.5vw,2.6rem)}
h3{font-size:clamp(1.15rem,2vw,1.45rem)}
p{line-height:1.72;max-width:68ch}
.eyebrow{font-family:Georgia,'Palatino Linotype',serif;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;display:block}
.subtitle{font-size:clamp(1.05rem,1.8vw,1.25rem);color:rgba(59,37,22,0.72);line-height:1.6;max-width:52ch}
.drop-cap>p:first-of-type::first-letter{float:left;font-family:Georgia,'Palatino Linotype',serif;font-size:4.2em;line-height:.78;padding:6px 14px 0 0;color:var(--accent);font-weight:700}

/* ── Layout ──────────────────────────────────── */
.container{width:100%;max-width:1320px;margin:0 auto;padding-left:clamp(16px,4vw,32px);padding-right:clamp(16px,4vw,32px)}
main{padding-top:var(--header-h)}
section{padding-top:clamp(64px,10vh,120px);padding-bottom:clamp(64px,10vh,120px)}
.section-line{display:block;width:100%;max-width:280px;height:1px;background:var(--line-strong);margin:0 auto 56px}

/* ── Buttons ─────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 32px;font-family:Georgia,'Palatino Linotype',serif;font-weight:700;font-size:.95rem;border-radius:var(--radius);transition:background 240ms cubic-bezier(.4,0,.2,1),color 240ms cubic-bezier(.4,0,.2,1),transform 180ms cubic-bezier(.2,.7,.2,1),box-shadow 240ms}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.btn-primary{background:var(--ink);color:var(--surface)}
.btn-primary:hover,.btn-primary:focus-visible{background:var(--accent);color:var(--surface);transform:translateY(-2px);box-shadow:0 6px 24px -4px rgba(160,82,45,0.4),0 0 20px -6px rgba(232,200,122,0.25)}
.btn-ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line-strong)}
.btn-ghost:hover,.btn-ghost:focus-visible{background:var(--surface);color:var(--ink);transform:translateY(-2px)}

/* ── Header ──────────────────────────────────── */
.site-header{position:fixed;top:0;left:0;right:0;z-index:1080;background:rgba(253,248,240,0.88);transition:background 240ms ease,box-shadow 240ms ease,padding 240ms ease}
.site-header.scrolled{background:rgba(253,248,240,0.98);box-shadow:0 8px 24px -16px rgba(0,0,0,.18)}
.header__inner{display:flex;align-items:center;justify-content:space-between;height:var(--header-h);gap:24px}
.header__logo{display:flex;align-items:center;gap:10px;font-family:Georgia,'Palatino Linotype',serif;font-weight:700;font-size:1.1rem;color:var(--ink);line-height:1.15;z-index:1100}
.logo-mark{display:flex;align-items:center;justify-content:center;width:38px;height:38px;background:var(--accent);color:var(--surface);font-family:Georgia,'Palatino Linotype',serif;font-size:1.2rem;font-weight:700;border-radius:50%}
.logo-text span{display:block;font-size:.7rem;font-weight:400;font-family:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;color:var(--accent);letter-spacing:.08em;text-transform:uppercase}

/* ── Scroll Progress ─────────────────────────── */
.scroll-progress{position:absolute;bottom:0;left:0;height:2px;width:0;background:var(--accent);z-index:1;pointer-events:none;transition:width 60ms linear}

/* ── Nav Desktop ─────────────────────────────── */
.nav-desktop{display:none;align-items:center;gap:6px}
@media(min-width:1024px){.nav-desktop{display:flex}}
.nav-desktop .nav__link{position:relative;padding:8px 14px;font-size:.9rem;font-weight:600;color:var(--ink);transition:color 240ms}
.nav-desktop .nav__link::after{content:'';position:absolute;bottom:2px;left:14px;right:14px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform 280ms cubic-bezier(.2,.7,.2,1)}
.nav-desktop .nav__link:hover::after,.nav-desktop .nav__link.is-active::after{transform:scaleX(1);transform-origin:left}
.nav-desktop .nav__link:hover{color:var(--accent)}
.nav-desktop .nav__link.is-active{color:var(--accent)}
.nav-desktop .nav-cta{background:var(--ink);color:var(--surface);border-radius:var(--radius);padding:9px 22px;margin-left:8px}
.nav-desktop .nav-cta::after{display:none}
.nav-desktop .nav-cta:hover,.nav-desktop .nav-cta:focus-visible{background:var(--accent);color:var(--surface);box-shadow:0 4px 16px -4px rgba(160,82,45,0.35)}

/* ── Nav Toggle ──────────────────────────────── */
.nav-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:48px;height:48px;padding:10px;z-index:1100;position:relative;border-radius:var(--radius);background:rgba(59,37,22,0.1);border:1.5px solid rgba(59,37,22,0.15);transition:background 240ms,border-color 240ms,transform 180ms}
.nav-toggle:hover{background:rgba(59,37,22,0.16);border-color:rgba(59,37,22,0.25)}
.nav-toggle:active{transform:scale(0.92)}
@media(min-width:1024px){.nav-toggle{display:none}}
.nav-toggle span{display:block;width:24px;height:3px;background:var(--ink);border-radius:2px;transition:transform 320ms cubic-bezier(.2,.7,.2,1),opacity 240ms}
.nav-toggle.is-open span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav-toggle.is-open span:nth-child(2){opacity:0}
.nav-toggle.is-open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* ── Mobile Drawer ───────────────────────────── */
.drawer-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:1040;opacity:0;pointer-events:none;transition:opacity 240ms}
.drawer-backdrop.is-open{opacity:1;pointer-events:auto}
.mobile-drawer{position:fixed;top:0;right:0;bottom:0;width:min(360px,92vw);background:var(--bg);z-index:1050;transform:translateX(100%);transition:transform 320ms cubic-bezier(.2,.7,.2,1);padding:calc(var(--header-h) + 24px) 32px 32px;overflow-y:auto}
.mobile-drawer.is-open{transform:translateX(0)}
.drawer-close{position:absolute;top:16px;right:16px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:var(--ink);background:rgba(59,37,22,0.08);border-radius:var(--radius);z-index:2;transition:background 240ms cubic-bezier(.4,0,.2,1),color 240ms}
.drawer-close:hover{background:rgba(59,37,22,0.16);color:var(--accent)}
.mobile-drawer nav{display:flex;flex-direction:column;gap:4px}
.mobile-drawer nav a{display:block;padding:14px 8px;font-family:Georgia,'Palatino Linotype',serif;font-weight:700;font-size:1.1rem;color:var(--ink);border-bottom:1px solid var(--line);transition:color 240ms,padding-left 240ms}
.mobile-drawer nav a:hover,.mobile-drawer nav a.is-active{color:var(--accent);padding-left:16px;background:rgba(232,200,122,0.06)}
.mobile-drawer nav a:last-child{border-bottom:none}

/* ── Hero ────────────────────────────────────── */
.hero{position:relative;min-height:600px;min-height:min(calc(100svh - var(--header-h)),840px);display:flex;align-items:center;overflow:hidden;background:var(--bg);padding-top:clamp(20px,3vh,40px);padding-bottom:clamp(20px,3vh,40px)}
.hero__inner{display:grid;grid-template-columns:1fr;gap:48px;align-items:center;position:relative;z-index:2}
@media(min-width:768px){.hero__inner{grid-template-columns:60% 40%}}
.hero__content{padding:clamp(32px,6vh,72px) 0}
.hero__content h1{margin-bottom:20px;text-shadow:0 2px 16px rgba(232,200,122,0.12)}
.hero__content .subtitle{margin-bottom:32px}
.hero__portrait-wrap{position:relative;display:flex;justify-content:center}
.hero__portrait{width:100%;max-width:420px;aspect-ratio:3/4;object-fit:cover;border-radius:12px 48px 12px 48px;box-shadow:0 24px 48px -12px rgba(59,37,22,0.18);transition:box-shadow 360ms cubic-bezier(.2,.7,.2,1)}
.hero__portrait:hover{box-shadow:0 28px 56px -12px rgba(59,37,22,0.24),0 0 40px -8px rgba(232,200,122,0.18)}
.hero__dough{position:absolute;top:50%;left:50%;width:280px;height:240px;transform:translate(-50%,-50%);background:var(--accent-2);opacity:0.18;z-index:-1;animation:dough-knead 10s cubic-bezier(.4,0,.2,1) infinite}
@keyframes dough-knead{
  0%,100%{border-radius:60% 40% 50% 50%/50% 60% 40% 50%;transform:translate(-50%,-50%) scale(1) rotate(0deg)}
  20%{border-radius:50% 50% 40% 60%/40% 50% 60% 50%;transform:translate(-50%,-50%) scaleX(1.14) scaleY(0.88) rotate(2deg)}
  40%{border-radius:40% 60% 55% 45%/55% 40% 60% 45%;transform:translate(-50%,-50%) scaleX(0.9) scaleY(1.12) rotate(-1.5deg)}
  60%{border-radius:55% 45% 60% 40%/45% 55% 45% 55%;transform:translate(-50%,-50%) scaleX(1.1) scaleY(0.92) rotate(1.5deg)}
  80%{border-radius:45% 55% 45% 55%/60% 45% 55% 40%;transform:translate(-50%,-50%) scaleX(0.94) scaleY(1.08) rotate(-0.5deg)}
}

/* ── Flour Dust Particles ────────────────────── */
.flour-particles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.flour-particle{position:absolute;width:4px;height:4px;background:var(--accent-2);border-radius:50%;opacity:0;animation:flour-float 12s ease-in-out infinite}
.flour-particle:nth-child(1){left:10%;top:20%;animation-delay:0s;animation-duration:11s}
.flour-particle:nth-child(2){left:25%;top:60%;animation-delay:2s;animation-duration:14s;width:3px;height:3px}
.flour-particle:nth-child(3){left:55%;top:35%;animation-delay:4s;animation-duration:9s;width:5px;height:5px}
.flour-particle:nth-child(4){left:75%;top:70%;animation-delay:6s;animation-duration:13s}
.flour-particle:nth-child(5){left:40%;top:15%;animation-delay:1.5s;animation-duration:10s;width:3px;height:3px}
.flour-particle:nth-child(6){left:85%;top:45%;animation-delay:3.5s;animation-duration:12s;width:6px;height:6px;opacity:0}
@keyframes flour-float{
  0%{opacity:0;transform:translateY(0) translateX(0)}
  15%{opacity:0.5}
  50%{opacity:0.3;transform:translateY(-80px) translateX(20px)}
  85%{opacity:0.45}
  100%{opacity:0;transform:translateY(-160px) translateX(-15px)}
}

/* ── Story Section ───────────────────────────── */
.story{background:var(--bg)}
.story__header{text-align:center;margin-bottom:56px}
.story__body{display:grid;gap:56px;max-width:800px;margin:0 auto}
.story__block{display:grid;grid-template-columns:1fr;gap:28px;align-items:start}
@media(min-width:768px){
  .story__block.has-image{grid-template-columns:1fr 280px}
  .story__block.has-image.reverse{grid-template-columns:280px 1fr}
  .story__block.has-image.reverse .story__img-wrap{order:-1}
}
.story__text p{margin-bottom:18px;line-height:1.78}
.story__text p:last-child{margin-bottom:0}
.story__img-wrap{position:relative}
.story__img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius);box-shadow:0 12px 32px -8px rgba(59,37,22,0.14);transition:box-shadow 360ms cubic-bezier(.2,.7,.2,1),transform 360ms cubic-bezier(.2,.7,.2,1)}
.story__img:hover{box-shadow:0 16px 44px -8px rgba(59,37,22,0.2),0 0 24px -8px rgba(232,200,122,0.12);transform:translateY(-2px)}
.story__img-wrap::after{content:'';position:absolute;inset:8px -8px -8px 8px;border:1.5px solid var(--accent-2);border-radius:var(--radius);z-index:-1}

/* ── Philosophy Section ──────────────────────── */
.philosophy{background:var(--surface)}
.philosophy__header{text-align:center;margin-bottom:56px}
.philosophy__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:32px}
.phil-card{background:var(--bg);border-radius:12px;padding:36px 28px;text-align:center;border:1px solid var(--line);transition:transform 180ms cubic-bezier(.2,.7,.2,1),box-shadow 240ms}
.phil-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px -12px rgba(160,82,45,0.22),0 0 24px -8px rgba(232,200,122,0.15)}
.phil-card__icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin:0 auto 20px;color:var(--accent);transition:transform 360ms cubic-bezier(.2,.7,.2,1)}
.phil-card:hover .phil-card__icon{transform:rotate(8deg) scale(1.08)}
.phil-card__icon svg{width:40px;height:40px}
.phil-card h3{margin-bottom:10px}
.phil-card p{font-size:.92rem;color:rgba(59,37,22,0.7);line-height:1.65;max-width:32ch;margin:0 auto}

/* ── Steam Animation (menu section) ──────────── */
.steam-wrap{position:relative;overflow:visible}
.steam{position:absolute;top:-20px;left:50%;width:2px;pointer-events:none}
.steam-line{position:absolute;width:2px;height:20px;background:linear-gradient(to top,rgba(160,82,45,0.12),transparent);border-radius:1px;animation:steam-rise 3s ease-in-out infinite}
.steam-line:nth-child(1){left:0;animation-delay:0s}
.steam-line:nth-child(2){left:8px;animation-delay:0.8s;height:16px}
.steam-line:nth-child(3){left:-6px;animation-delay:1.6s;height:14px}
@keyframes steam-rise{
  0%{opacity:0;transform:translateY(0) scaleY(0.6)}
  30%{opacity:0.7}
  60%{opacity:0.4;transform:translateY(-18px) scaleY(1) translateX(4px)}
  100%{opacity:0;transform:translateY(-36px) scaleY(0.8) translateX(-3px)}
}

/* ── Menu Section ────────────────────────────── */
.menu-section{background:var(--bg)}
.menu-section__header{text-align:center;margin-bottom:48px}
.menu-list{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:0}
.menu-item{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:baseline;padding:24px 0;border-bottom:1px solid var(--line);transition:background 240ms,box-shadow 240ms}
.menu-item:first-child{border-top:1px solid var(--line)}
.menu-item:hover{background:rgba(232,200,122,0.1);box-shadow:inset 3px 0 0 var(--accent)}
.menu-item__info h3{font-size:1.1rem;margin-bottom:4px}
.menu-item__desc{font-size:.88rem;color:rgba(59,37,22,0.62);line-height:1.55;max-width:50ch}
.menu-item__price{font-family:Georgia,'Palatino Linotype',serif;font-weight:700;font-size:1.1rem;color:var(--accent);white-space:nowrap}
.menu-note{text-align:center;margin-top:28px;font-size:.85rem;color:rgba(59,37,22,0.5);font-style:italic}

/* ── Rolling Pin Divider ─────────────────────── */
.rolling-pin-divider{display:flex;align-items:center;justify-content:center;gap:16px;margin:0 auto;max-width:320px;padding:8px 0}
.rolling-pin-divider .line{flex:1;height:1px;background:var(--line-strong)}
.rolling-pin-divider .pin{width:48px;height:8px;background:var(--accent-2);border-radius:4px;position:relative;animation:roll-pin 4s ease-in-out infinite}
.rolling-pin-divider .pin::before,.rolling-pin-divider .pin::after{content:'';position:absolute;top:50%;width:6px;height:12px;background:var(--accent);border-radius:3px;transform:translateY(-50%)}
.rolling-pin-divider .pin::before{left:-8px}
.rolling-pin-divider .pin::after{right:-8px}
@keyframes roll-pin{
  0%,100%{transform:scaleX(1)}
  50%{transform:scaleX(1.15)}
}

/* ── Workshop Section ────────────────────────── */
.workshop{background:var(--surface)}
.workshop__header{text-align:center;margin-bottom:48px}
.workshop__box{max-width:680px;margin:0 auto;background:var(--bg);border:1.5px solid var(--accent-2);border-radius:12px;padding:clamp(28px,5vw,48px);position:relative;overflow:hidden;transition:border-color 280ms,box-shadow 280ms}
.workshop__box:hover{border-color:var(--accent);box-shadow:0 8px 32px -8px rgba(160,82,45,0.14)}
.workshop__box::before{content:'';position:absolute;top:0;right:0;width:120px;height:120px;background:var(--accent-2);opacity:0.1;border-radius:0 0 0 100%}
.workshop__box h3{font-size:1.4rem;margin-bottom:16px}
.workshop__box p{margin-bottom:14px;line-height:1.7}
.workshop__meta{display:flex;flex-wrap:wrap;gap:18px 32px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.workshop__meta-item{font-size:.9rem}
.workshop__meta-item strong{display:block;font-family:Georgia,'Palatino Linotype',serif;font-weight:700;font-size:1.05rem;color:var(--accent)}

/* ── Whisk Spin on Workshop Icon ─────────────── */
.whisk-icon{display:inline-block;animation:whisk-spin 2.5s ease-in-out infinite;transform-origin:center 70%}
@keyframes whisk-spin{
  0%,100%{transform:rotate(0deg)}
  25%{transform:rotate(12deg)}
  50%{transform:rotate(0deg)}
  75%{transform:rotate(-12deg)}
}

/* ── Contact Section (index) ─────────────────── */
.contact-preview{background:var(--bg)}
.contact-preview__header{text-align:center;margin-bottom:40px}
.contact-preview__body{display:grid;grid-template-columns:1fr;gap:32px;max-width:640px;margin:0 auto;text-align:center}
.contact-preview__body p{line-height:1.7;margin-bottom:12px}

/* ── Contact Page ────────────────────────────── */
.contact-page{padding-top:40px;padding-bottom:80px}
.contact-page__inner{display:grid;grid-template-columns:1fr;gap:48px}
@media(min-width:768px){.contact-page__inner{grid-template-columns:1fr 1fr}}

/* contact channels with icons */
.contact-channels{display:flex;flex-direction:column;gap:20px}
.contact-channel{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:12px 8px;border-radius:var(--radius);transition:transform 240ms cubic-bezier(.4,0,.2,1),background 240ms}
.contact-channel:hover{transform:translateX(4px);background:rgba(232,200,122,0.08)}
.contact-channel__icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--ink);transition:color 240ms,transform 240ms}
.contact-channel:hover .contact-channel__icon{color:var(--accent);transform:scale(1.08)}
.contact-channel__icon svg{width:20px;height:20px}
.contact-channel__body{font-size:.95rem;line-height:1.6}
.contact-channel__body strong{display:block;font-family:Georgia,'Palatino Linotype',serif;font-weight:700;margin-bottom:2px}
.contact-channel__body a{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px;transition:text-decoration-color 240ms}
.contact-channel__body a:hover{text-decoration-color:var(--accent)}
.contact-channel__body a{word-break:break-word;overflow-wrap:anywhere}

/* ── Form ────────────────────────────────────── */
.contact-form{background:var(--surface);border-radius:12px;padding:clamp(24px,4vw,40px);border:1px solid var(--line)}
.contact-form h2{margin-bottom:24px;font-size:1.4rem}
.field{margin-bottom:20px}
.field label{display:block;font-size:.88rem;font-weight:600;margin-bottom:6px;color:var(--ink)}
.field .hint{font-size:.78rem;color:rgba(59,37,22,0.5);margin-top:4px}
.field input[type="text"],.field input[type="email"],.field input[type="tel"],.field select,.field textarea{display:block;width:100%;padding:12px 16px;background:var(--bg);border:1.5px solid var(--line);border-radius:var(--radius);font-size:.95rem;color:var(--ink);transition:border-color 240ms,box-shadow 240ms}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(160,82,45,0.12)}
.field textarea{resize:vertical;min-height:120px}
.field select{appearance:auto;-webkit-appearance:auto}
.field input[type="checkbox"]{appearance:auto;-webkit-appearance:auto;width:18px;height:18px;min-width:18px;min-height:18px;padding:0;border:0;margin:2px 0 0;accent-color:var(--accent)}
.field-checkbox{display:flex;gap:12px;align-items:flex-start}
.field-checkbox label{margin-bottom:0;font-weight:400;font-size:.85rem;line-height:1.5}
.field-error{font-size:.78rem;color:#b91c1c;margin-top:4px;display:none}
.field.has-error .field-error{display:block}
.field.has-error input,.field.has-error textarea,.field.has-error select{border-color:#b91c1c}
.hp-field{position:absolute;left:-9999px;height:0;width:0;overflow:hidden;opacity:0;pointer-events:none;tab-index:-1}
.form-success{display:none;text-align:center;padding:40px 20px}
.form-success.is-visible{display:block}
.form-success h3{color:var(--accent);margin-bottom:12px}
.form-success p{color:rgba(59,37,22,0.7)}
.form-error-msg{display:none;background:#fef2f2;border:1px solid #fca5a5;border-radius:var(--radius);padding:12px 16px;font-size:.88rem;color:#991b1b;margin-bottom:16px}
.form-error-msg.is-visible{display:block}

/* ── Footer ──────────────────────────────────── */
.site-footer{background:var(--ink);color:rgba(253,248,240,0.8);padding:clamp(40px,8vh,72px) 0 28px}
.footer__inner{display:grid;grid-template-columns:1fr;gap:32px}
@media(min-width:768px){.footer__inner{grid-template-columns:1fr auto}}
.footer__brand{font-family:Georgia,'Palatino Linotype',serif;font-weight:700;font-size:1.15rem;color:var(--surface)}
.footer__brand .logo-mark{background:var(--accent);margin-bottom:12px}
.footer__brand p{font-size:.85rem;font-family:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;font-weight:400;color:rgba(253,248,240,0.5);margin-top:8px}
.footer__links{display:flex;flex-wrap:wrap;gap:10px 24px;align-items:flex-start}
.footer__links a{font-size:.85rem;color:rgba(253,248,240,0.65);transition:color 240ms}
.footer__links a:hover{color:var(--accent-2)}
.footer__copy{grid-column:1/-1;font-size:.78rem;color:rgba(253,248,240,0.35);padding-top:24px;border-top:1px solid rgba(253,248,240,0.08)}

/* ── Cookie Banner ───────────────────────────── */
.cookie-banner{position:fixed;bottom:16px;left:16px;right:16px;max-width:520px;margin:0 auto;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px 24px;box-shadow:0 12px 40px -8px rgba(0,0,0,0.18);transform:translateY(140%);opacity:0;transition:transform 280ms cubic-bezier(.2,.7,.2,1),opacity 240ms;z-index:9999}
.cookie-banner.is-visible{transform:translateY(0);opacity:1}
.cookie-banner h4{font-size:.95rem;margin-bottom:8px}
.cookie-banner p{font-size:.82rem;color:rgba(59,37,22,0.65);line-height:1.55;margin-bottom:16px}
.cookie-banner p a{text-decoration:underline;color:var(--accent)}
.cookie-btns{display:flex;flex-wrap:wrap;gap:8px}
.cookie-btns button{flex:1;min-width:100px;min-height:44px;padding:10px 16px;font-size:.82rem;font-weight:600;border-radius:var(--radius);transition:background 240ms,color 240ms}
.cookie-btns .cookie-accept{background:var(--ink);color:var(--surface)}
.cookie-btns .cookie-accept:hover{background:var(--accent);color:var(--surface)}
.cookie-btns .cookie-reject{background:transparent;color:var(--ink);border:1.5px solid var(--line-strong);font-weight:600}
.cookie-btns .cookie-reject:hover{background:rgba(59,37,22,0.06);color:var(--ink);border-color:var(--accent)}
.cookie-btns .cookie-settings{background:transparent;color:var(--ink);border:1.5px solid var(--line)}
.cookie-btns .cookie-settings:hover{background:var(--bg);color:var(--ink)}
@media(min-width:640px){.cookie-banner{left:24px;right:auto;max-width:420px}}

/* ── Reveal ──────────────────────────────────── */
@keyframes reveal-in{to{opacity:1;transform:none}}
.reveal{opacity:0;transform:translateY(28px);transition:opacity 600ms cubic-bezier(.2,.7,.2,1),transform 600ms cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0) * 120ms)}
.reveal.is-in{opacity:1;transform:none;animation:none}
.js .reveal:not(.is-in){animation:reveal-in 700ms cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(0.8s + var(--i,0) * 80ms)}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1 !important;transform:none !important;transition:none !important;animation:none !important}}
html.no-js .reveal{opacity:1;transform:none;animation:none}

/* ── Pastry Fold Card Hover ──────────────────── */
.fold-hover{transition:transform 280ms cubic-bezier(.2,.7,.2,1),box-shadow 280ms;transform-style:preserve-3d;perspective:600px}
.fold-hover:hover{transform:perspective(600px) rotateY(-3deg) translateY(-4px);box-shadow:8px 12px 32px -8px rgba(160,82,45,0.15)}

/* ── Table Scroll ────────────────────────────── */
.table-scroll{display:block;width:100%;max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:18px 0;border:1px solid var(--line);border-radius:6px}
.table-scroll>table{margin:0 !important;min-width:480px;width:100%}
:where(*:has(>.table-scroll),*:has(>*>.table-scroll),*:has(>*>*>.table-scroll)){min-width:0}
.table-scroll table{border-collapse:collapse}
.table-scroll th,.table-scroll td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--line);font-size:.9rem}
.table-scroll th{font-family:Georgia,'Palatino Linotype',serif;font-weight:700;background:var(--bg);font-size:.85rem}
.table-scroll tr:last-child td{border-bottom:none}

/* ── FAQ / Details Pure CSS ──────────────────── */
details{border-bottom:1px solid var(--line)}
details summary{display:flex;align-items:center;justify-content:space-between;padding:18px 0;font-family:Georgia,'Palatino Linotype',serif;font-weight:700;font-size:1rem;cursor:pointer;list-style:none;user-select:none;transition:color 240ms}
details summary::-webkit-details-marker{display:none}
details summary::marker{display:none}
details summary::after{content:'+';font-size:1.3rem;color:var(--accent);transition:transform 320ms cubic-bezier(.2,.7,.2,1)}
details[open] summary::after{content:'−';transform:rotate(180deg)}
details summary:hover{color:var(--accent)}
details>.body{height:0;padding:0 clamp(18px,3vw,28px);overflow:hidden;transition:height 360ms cubic-bezier(.4,0,.2,1),padding-block-end 360ms cubic-bezier(.4,0,.2,1)}
details[open]>.body{height:auto;padding-block-end:26px}
@media(prefers-reduced-motion:reduce){details>.body{transition:none}}

/* ── Policy Pages ────────────────────────────── */
.policy-page{padding-top:40px;padding-bottom:80px}
.policy-page h1{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:12px}
.policy-page .policy-date{font-size:.85rem;color:rgba(59,37,22,0.5);margin-bottom:40px}
.policy-page h2{font-size:clamp(1.15rem,2vw,1.5rem);margin-top:56px;margin-bottom:20px;padding-bottom:12px;padding-left:16px;border-bottom:1px solid var(--line);border-left:3px solid var(--accent);transition:border-color 240ms}
.policy-page h2:hover{border-left-color:var(--accent-2)}
.policy-page h3{font-size:1.1rem;margin-top:24px;margin-bottom:10px}
.policy-page p{margin-bottom:14px;line-height:1.72;max-width:75ch}
.policy-page ul{margin-bottom:14px;padding-left:20px}
.policy-page ul li{list-style:disc;margin-bottom:6px;line-height:1.65;max-width:72ch}
.policy-page ul li::marker{color:var(--accent)}

/* ── Sitemap Page ────────────────────────────── */
.sitemap-page{padding-top:40px;padding-bottom:80px}
.sitemap-page h1{margin-bottom:32px}
.sitemap-links{display:flex;flex-direction:column;gap:8px}
.sitemap-links a{display:inline-flex;align-items:center;gap:8px;padding:10px 0;font-size:1rem;border-bottom:1px solid var(--line);transition:color 240ms,padding-left 240ms}
.sitemap-links a:hover{color:var(--accent);padding-left:8px}

/* ── 404 Page ────────────────────────────────── */
.page-404{min-height:60vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:60px 20px}
.page-404 h1{font-size:clamp(4rem,10vw,8rem);color:var(--accent-2);line-height:1}
.page-404 p{margin:16px 0 28px;font-size:1.1rem;color:rgba(59,37,22,0.6)}

/* ── Focus Ring ──────────────────────────────── */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ── Smooth scroll offset for anchors ────────── */
section[id]{scroll-margin-top:calc(var(--header-h) + 16px)}

/* ── Responsive ──────────────────────────────── */
@media(max-width:640px){
  .hero__portrait{max-width:320px}
  .philosophy__grid{grid-template-columns:1fr 1fr}
  .footer__links{flex-direction:column}
  .site-footer{padding-bottom:80px}
}
@media(max-width:430px){
  .philosophy__grid{grid-template-columns:1fr}
}
@media(max-width:360px){
  h1{font-size:1.8rem}
  .hero__content{padding:20px 0}
}

/* ── Warm Glow Hover (patisserie theme) ─────── */
@keyframes warm-pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(232,200,122,0)}
  50%{box-shadow:0 0 18px 2px rgba(232,200,122,0.18)}
}
.btn-primary:hover{animation:warm-pulse 1.6s ease-in-out infinite}
.phil-card:hover{box-shadow:0 16px 40px -12px rgba(160,82,45,0.22),0 0 28px -6px rgba(232,200,122,0.2)}
.phil-card:hover .phil-card__icon{transform:rotate(8deg) scale(1.12);filter:drop-shadow(0 2px 8px rgba(232,200,122,0.35))}
.menu-item{transition:background 280ms cubic-bezier(.2,.7,.2,1),box-shadow 280ms cubic-bezier(.2,.7,.2,1),padding-left 280ms cubic-bezier(.2,.7,.2,1)}
.menu-item:hover{background:rgba(232,200,122,0.1);box-shadow:inset 3px 0 0 var(--accent);padding-left:8px}
.workshop__box:hover{border-color:var(--accent);box-shadow:0 8px 32px -8px rgba(160,82,45,0.14),0 0 20px -4px rgba(232,200,122,0.12)}
.contact-channel{transition:transform 280ms cubic-bezier(.2,.7,.2,1),background 280ms cubic-bezier(.2,.7,.2,1),box-shadow 280ms}
.contact-channel:hover{transform:translateX(6px);background:rgba(232,200,122,0.08);box-shadow:inset 3px 0 0 var(--accent-2)}
.contact-channel:hover .contact-channel__icon{color:var(--accent);transform:scale(1.12) rotate(-6deg)}
.story__img-wrap:hover::after{border-color:var(--accent);transition:border-color 360ms}
.footer__links a{transition:color 240ms,transform 180ms}
.footer__links a:hover{color:var(--accent-2);transform:translateX(2px)}

/* ── Mobile Cookie Banner Fix ──────────────── */
@media(max-width:640px){
  .cookie-banner{bottom:0;left:0;right:0;border-radius:12px 12px 0 0;padding:18px 20px;max-width:none}
  .cookie-btns{gap:8px}
  .cookie-btns button{min-height:48px;font-size:.85rem}
}

/* ── Warm Ambient Background for Hero ──────── */
.hero::after{content:'';position:absolute;bottom:0;left:0;right:0;height:180px;background:linear-gradient(to top,rgba(253,248,240,1) 0%,transparent 100%);z-index:1;pointer-events:none}

/* ── Reduced Motion ──────────────────────────── */
@media(prefers-reduced-motion:reduce){
  .hero__dough,.flour-particle,.steam-line,.rolling-pin-divider .pin,.whisk-icon{animation:none !important}
  .btn-primary:hover{animation:none}
  .fold-hover:hover{transform:none}
  .phil-card:hover{transform:none}
  .contact-channel:hover{transform:none}
  .story__img:hover{transform:none}
  .hero__portrait,.story__img,.workshop__box,.btn,.phil-card,.menu-item,.contact-channel{transition:none !important}
}

/* ── Print ───────────────────────────────────── */
@media print{
  .site-header,.nav-toggle,.mobile-drawer,.drawer-backdrop,.cookie-banner,.skip-link,.flour-particles{display:none !important}
  main{padding-top:0}
  body{background:#fff;color:#000}
  a{text-decoration:underline}
  .reveal{opacity:1 !important;transform:none !important;animation:none !important}
}

/* === Footer 4-column grid (replaces minimalist footer__inner) === */
.site-footer { padding: clamp(48px, 7vw, 80px) 0 0 !important; }
.site-footer .footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(32px, 5vw, 48px);
  padding-bottom: clamp(36px, 5vw, 56px);
}
@media (min-width: 640px) {
  .site-footer .footer-grid { grid-template-columns: repeat(2, 1fr); }
  .site-footer .footer-brand { grid-column: 1 / -1; }
}
@media (min-width: 1024px) {
  .site-footer .footer-grid { grid-template-columns: 1.4fr 1fr 1fr 1.4fr; }
  .site-footer .footer-brand { grid-column: auto; }
}
.site-footer .footer-brand .footer-logo {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 1.15rem; font-weight: 600;
  color: inherit;
  margin-bottom: 14px;
}
.site-footer .footer-brand .footer-logo .logo-mark {
  display: inline-grid; place-items: center;
  width: 36px; height: 36px;
  background: var(--accent, #C18860);
  color: #fff;
  font-weight: 700;
  border-radius: 50%;
}
.site-footer .footer-brand p {
  font-size: 0.92rem;
  line-height: 1.65;
  max-width: 360px;
  color: rgba(253,248,240,0.65);
}
.site-footer .footer-col h4 {
  color: #fff;
  font-size: 0.92rem;
  font-weight: 600;
  margin: 0 0 16px;
  letter-spacing: 0.04em;
}
.site-footer .footer-col ul { list-style: none; padding: 0; margin: 0; }
.site-footer .footer-col li { padding: 0; margin: 0; }
.site-footer .footer-col a,
.site-footer .footer-col p {
  display: inline-block;
  color: rgba(253,248,240,0.65);
  font-size: 0.9rem;
  padding: 5px 0;
  margin: 0;
  line-height: 1.55;
  transition: color 220ms ease, transform 220ms ease;
}
.site-footer .footer-col p { display: block; }
.site-footer .footer-col a:hover { color: #fff; transform: translateX(4px); }
.site-footer .footer-col p a { padding: 0; color: inherit; }
.site-footer .footer-col p a:hover { color: var(--accent, #C18860); }
.site-footer .footer-bottom {
  border-top: 1px solid rgba(253,248,240,0.1);
  padding: 22px 0;
  display: flex; flex-wrap: wrap;
  justify-content: space-between; align-items: center;
  gap: 14px;
  font-size: 0.82rem;
  color: rgba(253,248,240,0.55);
}
.site-footer .footer-bottom p { margin: 0; }
.site-footer .footer-bottom a {
  color: rgba(253,248,240,0.55);
  transition: color 220ms ease;
}
.site-footer .footer-bottom a:hover { color: #fff; }
@media (max-width: 540px) {
  .site-footer .footer-grid { gap: 28px; padding-bottom: 32px; }
  .site-footer .footer-bottom { flex-direction: column; align-items: flex-start; }
}
