@font-face{font-family:Editorial;src:url("serif.woff") format("woff");font-display:swap}
@font-face{font-family:Editorial;src:url("serif-italic.woff") format("woff");font-style:italic;font-display:swap}
@font-face{font-family:Kitchen;src:url("sans.woff") format("woff");font-display:swap}
@font-face{font-family:Kitchen;src:url("sans-semibold.woff") format("woff");font-weight:600 900;font-display:swap}

:root{
  --flour:#f7efe2;--paper:#fffaf0;--ink:#261b15;--soft:#5f4a3d;
  --coal:#211610;--red:#822e20;--fire:#f3b88f;--line:#d6c6b4;
  --serif:Editorial,Georgia,serif;--sans:Kitchen,system-ui,sans-serif;
  --gutter:clamp(24px,5.1vw,96px);
  --frame:clamp(16px,3.2vw,64px);--inset:clamp(28px,4.7vw,86px);
  --radius-control:10px;--radius-surface:18px;--radius-photo:14px;
  --lab-paper:#efe1cd;
  --hero-dark:radial-gradient(ellipse at 83% 10%,#643e29 0%,#3b261a 31%,transparent 67%),
    linear-gradient(140deg,#35241a,var(--coal) 69%);
  --surface-depth:0 13px 29px -23px #3420157a,0 1px 2px #34201512;
  --ease-settle:cubic-bezier(.22,.68,.23,1)
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:radial-gradient(ellipse 850px 620px at 83% 13%,#fffaf0a8,transparent),var(--flour);color:var(--ink);font:400 1rem/1.65 var(--sans)}
[hidden]{display:none!important}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.07;letter-spacing:-.058em;text-wrap:balance}
h1{font-size:clamp(3.5rem,6.65vw,8.1rem)}
h2{font-size:clamp(2.55rem,4.65vw,5.4rem)}
h3{font-size:clamp(1.55rem,2.45vw,2.55rem)}
h1 em,h2 em{font-weight:inherit;color:var(--red)}
p{max-width:56ch}
img{display:block;width:100%;height:auto}
a{color:inherit}
a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid #2d66b0;outline-offset:5px}
.hero:not(.hero-lab) :focus-visible,.menu-band :focus-visible,.site-footer :focus-visible,.occasion :focus-visible{outline-color:#ffd2a8}
svg{width:1.12em;height:1.12em;flex:none}
[id]{scroll-margin-top:120px}
.shell{width:min(100%,1760px);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:clamp(52px,7.1vw,126px)}
.eyebrow{font-family:var(--sans);font-size:.7rem;font-weight:700;line-height:1.45;letter-spacing:.13em;text-wrap:initial;text-transform:uppercase;display:flex;align-items:center;gap:.8rem}
.section-kicker{color:var(--red);margin-bottom:1.1rem}
.dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.thin-sep{width:15px;height:1px;background:currentColor;opacity:.65;flex:none}
.index{display:inline-grid;place-items:center;min-width:32px;height:26px;padding:0 .33rem;border:1px solid currentColor;border-radius:50%;letter-spacing:.05em}
.button,.text-link,.hero-link{display:inline-flex;align-items:center;justify-content:space-between;gap:1rem;font-weight:700;text-decoration:none}
.button{min-height:50px;max-width:100%;width:fit-content;padding:.72rem 1.1rem;font-size:.89rem;line-height:1.35;text-align:left;border:1px solid transparent;border-radius:var(--radius-control);transition:background .2s,color .2s,border-color .2s}
.button svg,.text-link svg,.route-strip svg{transition:transform .2s}
.button:hover svg,.text-link:hover svg,.route-strip a:hover svg{transform:translate(3px,-2px)}
.button-fire{background:var(--fire);color:#25150e}
.button-fire:hover{background:#ffd5b9}
.button-dark{background:var(--red);color:var(--paper)}
.button-dark:hover{background:#642219}
.text-link{min-height:44px;width:fit-content;color:var(--red);text-decoration:underline;text-underline-offset:.35em;font-size:.93rem}
.hero-link{color:inherit;font-size:.85rem;min-height:44px;text-decoration:underline;text-underline-offset:.35em}
.actions{display:flex;gap:.45rem 1.2rem;flex-wrap:wrap;align-items:center;min-width:0}
.skip-link{position:fixed;z-index:10;top:.5rem;left:.5rem;transform:translateY(-150%);background:var(--paper);color:var(--ink);padding:.7rem 1rem;border-radius:var(--radius-control)}
.skip-link:focus{transform:none}

.site-header{position:sticky;top:0;z-index:5;background:var(--flour);border-bottom:1px solid #d6c6b485}
.header-inner{min-height:96px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:1rem;position:relative}
.brand{display:block;width:clamp(158px,14vw,193px);max-width:100%;padding:.32rem 0}
.brand img{width:100%}
.main-nav{display:flex;align-items:center;gap:clamp(1rem,3.1vw,3rem)}
.main-nav a{position:relative;display:flex;align-items:center;min-height:44px;text-decoration:none;font-size:.89rem;font-weight:700;white-space:nowrap}
.main-nav .nav-contact{display:none}
.main-nav a:hover,.main-nav [aria-current=page]{color:var(--red)}
.main-nav [aria-current=page]::after{position:absolute;bottom:2px;left:0;right:0;height:1px;background:currentColor;content:""}
.header-cta{justify-self:end;color:var(--red);border-color:#b99b87;background:transparent;min-height:44px;padding:.6rem .88rem}
.header-cta:hover{border-color:var(--red);background:var(--red);color:var(--paper)}
.menu-toggle{display:none}

.hero,.home-lab{
  width:min(1680px,calc(100% - 2 * var(--frame)));margin-inline:auto;
  display:grid;grid-template-columns:minmax(0,47fr) minmax(0,53fr);
  border-radius:var(--radius-surface);overflow:hidden
}
.hero{
  min-height:clamp(500px,43vw,730px);margin-top:clamp(12px,1.8vw,32px);
  background:var(--hero-dark);color:var(--paper);box-shadow:var(--surface-depth)
}
.hero::before{
  content:"";grid-area:1 / 1;z-index:1;pointer-events:none;
  border-radius:var(--radius-surface) 0 0 var(--radius-surface);
  box-shadow:inset 0 1px 0 #fff6df22
}
.hero-copy,.hero-media{grid-row:1}
.hero-copy{grid-column:1}
.hero-media{grid-column:2}
.hero-copy{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(40px,5vw,92px) clamp(22px,3vw,52px) clamp(40px,5vw,92px) var(--inset)}
.hero .eyebrow{color:var(--fire);margin-bottom:1.4rem}
.hero h1{line-height:1.02;text-wrap:initial}
.hero h1 em{display:block;color:var(--fire)}
.hero-intro{color:#ead9cb;max-width:38ch;margin:1.35rem 0 1.65rem;font-size:clamp(.94rem,1.21vw,1.12rem)}
.hero-media{position:relative;isolation:isolate;min-width:0;min-height:0;overflow:hidden;background:#493021}
.hero-media img{position:absolute;inset:0;height:100%;object-fit:cover;object-position:50% 53%}
.hero-media::after{position:absolute;z-index:0;inset:0;content:"";background:linear-gradient(0deg,#160d08df 0%,transparent 25%);pointer-events:none}
.hero-caption{position:absolute;z-index:1;bottom:0;left:0;right:0;padding:.8rem 1.3rem;display:flex;justify-content:space-between;gap:.55rem;color:var(--paper);font-size:.67rem;text-transform:uppercase;font-weight:700;letter-spacing:.1em}
.hero-catering .hero-media img{object-position:center 70%}
.hero-catering h1,.hero-lab h1{font-size:clamp(3.2rem,5.75vw,6.65rem)}
.hero-lab{background:radial-gradient(ellipse at 6% 0%,#fff9ed 0%,transparent 62%),var(--lab-paper);color:var(--ink)}
.hero-lab .hero-media img{object-position:center 47%}
.lab-logo{width:clamp(178px,18vw,254px);max-width:100%}
.hero-lab .lab-logo{margin-bottom:1.45rem}
.hero-lab .eyebrow{margin-bottom:.95rem;color:var(--red)}
.hero-lab h1 em{color:var(--red)}
.hero-lab .hero-intro{color:var(--soft)}

.route-strip{width:min(1620px,calc(100% - 2 * var(--frame)));margin:.45rem auto 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-bottom:1px solid transparent;border-image:linear-gradient(90deg,transparent,#b7987e78 46%,#b7987e78 54%,transparent) 1}
.route-strip a{min-height:84px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.9rem;padding:.85rem clamp(12px,3vw,52px);text-decoration:none;border-radius:var(--radius-control);transition:background .2s}
.route-strip a:hover{background:#eadcc9}
.route-no{font-family:var(--serif);font-style:italic;font-size:1.5rem;color:var(--red)}
.route-strip strong,.route-strip small{display:block;line-height:1.45}
.route-strip strong{font-size:.96rem}
.route-strip small{font-size:.75rem;color:var(--soft)}

.story,.experience{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(36px,7.4vw,132px)}
.story h2,.experience h2,.invitation h2,.quote h2,.location h2{max-width:13ch;text-wrap:initial}
.story h2 em,.experience h2 em,.quote h2 em,.location h2 em{display:block}
.story-copy>p:not(.eyebrow),.quote-intro>p:not(.eyebrow){margin:1.45rem 0 1rem;color:var(--soft)}
.story-figure{position:relative}
.story-figure img{aspect-ratio:1.08;object-fit:cover;object-position:center 62%;border-radius:var(--radius-photo)}
figcaption{display:flex;justify-content:space-between;gap:.75rem;margin-top:.78rem;color:var(--soft);font-size:.69rem;font-weight:700;text-transform:uppercase;letter-spacing:.105em}
.home-lab{grid-template-columns:minmax(0,51fr) minmax(0,49fr);min-height:clamp(430px,42vw,690px);background:var(--lab-paper);color:var(--ink)}
.home-lab-photo,.tile-img{overflow:hidden}
.home-lab-photo{position:relative}
.home-lab-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%}
.home-lab-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(34px,4.8vw,82px) var(--inset)}
.home-lab-copy .eyebrow{color:var(--red)}
.occasion .eyebrow{color:#ffdcc6}
.home-lab-copy .lab-logo{margin:1.2rem 0 1.35rem}
.home-lab h2{text-wrap:initial}
.occasion h2 em,.menu-band h2 em{color:var(--fire)}
.home-lab-copy>p:not(.eyebrow){margin:1.1rem 0 1.35rem;color:var(--soft)}
.invitation,.location,.quote,.section-head{display:grid;grid-template-columns:1.18fr .82fr;gap:clamp(24px,6vw,108px);align-items:center}
.invitation p:not(.eyebrow),.location p:not(.eyebrow){margin-bottom:1.2rem;color:var(--soft)}
.invitation h2{max-width:none}
.steps{list-style:none;margin:1.75rem 0 0;padding:0}
.steps li{display:grid;grid-template-columns:auto 1fr;gap:1rem;padding:1rem 0;border-top:1px solid var(--line)}
.steps li>span{color:var(--red);font:italic 1rem var(--serif)}
.steps h3{font-size:1.38rem;letter-spacing:-.04em}
.steps p{font-size:.92rem;color:var(--soft);margin-top:.42rem}
.experience-figure img{aspect-ratio:.95;object-fit:cover;object-position:center 63%;border-radius:var(--radius-photo)}
.occasion,.menu-band{width:min(1680px,calc(100% - 2 * var(--frame)));margin-inline:auto;border-radius:var(--radius-surface)}
.invitation,.occasion,.menu-band{position:relative;isolation:isolate}
.occasion{background:radial-gradient(ellipse at 20% 0%,#8d412d,transparent 73%),var(--red);color:var(--paper);box-shadow:var(--surface-depth)}
.brand-seal{
  position:absolute;z-index:-1;inset:auto 10% 50% auto;translate:0 50%;
  width:clamp(108px,15vw,218px);height:auto;pointer-events:none;opacity:.085
}
.hero-home .brand-seal{
  inset:clamp(20px,2.8vw,44px) clamp(20px,2.8vw,44px) auto auto;
  width:clamp(105px,9vw,144px);translate:none;opacity:.105
}
.occasion .brand-seal{inset:auto 39% 50% auto}
.menu-band .brand-seal{inset:auto 15% 50% auto;opacity:.075}
@media(max-width:720px){
  .hero-home .brand-seal{inset:auto 18px 16px auto;width:clamp(70px,23vw,92px);opacity:.11}
  .occasion .brand-seal,.menu-band .brand-seal{inset:24px 20px auto auto;translate:none}
}
.occasion-inner,.menu-band-inner{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(25px,8vw,130px);align-items:center;padding:clamp(34px,5vw,86px) var(--inset)}
.occasion h2,.menu-band h2{margin-top:1.15rem;text-wrap:initial}
.occasion ul{padding:0;margin:0;list-style:none}
.occasion li{border-bottom:1px solid #edbfac70;padding:.7rem 0;font-size:1rem}
.occasion li:first-child{border-top:1px solid #edbfac70}
.quote{grid-template-columns:.85fr 1.15fr;align-items:start}
.quote-form{background:linear-gradient(138deg,#fffdf7 1%,#fffbf2 27%,#fff4e777 49%,var(--paper) 72%);
  padding:clamp(18px,3.1vw,48px);border:1px solid #d6c6b4aa;
  border-radius:var(--radius-surface);min-width:0;box-shadow:var(--surface-depth)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.form-grid label{font-size:.86rem;font-weight:700;line-height:1.42;min-width:0}
.form-grid small{font-size:.72rem;font-weight:400;color:var(--soft)}
.form-grid :is(input,select,textarea){display:block;width:100%;min-width:0;min-height:47px;margin-top:.35rem;border:1px solid #a78c76;border-radius:var(--radius-control);background:#fffdf8;color:var(--ink);padding:.55rem .65rem;font-size:1rem;font-weight:400}
.form-grid textarea{resize:vertical}
.form-grid .wide{grid-column:1/-1}
.quote-form>.button{margin-top:1.2rem}
.form-note{margin-top:.8rem;font-size:.79rem;color:var(--soft)}
.form-note a{text-underline-offset:.2em}
.message-ready{border-top:1px solid var(--line);margin-top:1rem;padding-top:1rem}
.message-ready pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:.87rem;color:var(--soft)}
.message-ready p{font-weight:700;font-size:.9rem}

.section-head{margin-bottom:2.1rem;align-items:end}
.section-head>p{color:var(--soft)}
.specialty-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.7vw,40px)}
.tile-img{background:#ddc5aa;border-radius:var(--radius-photo);box-shadow:var(--surface-depth)}
.tile-img img{aspect-ratio:1.12;object-fit:cover}
.specialty-grid article:nth-child(-n+2) img{object-position:center 44%}
.specialty-grid .eyebrow{color:var(--red);margin:1.1rem 0 .5rem}
.specialty-grid h3+p{margin:.55rem 0 0;color:var(--soft);font-size:.91rem}
.menu-band{background:radial-gradient(ellipse at 80% 0%,#5a3524,transparent 69%),var(--coal);color:var(--paper);box-shadow:var(--surface-depth)}
.menu-band .eyebrow{color:var(--fire)}
.menu-band p:not(.eyebrow){color:#ead9cb;margin-top:1.15rem}
.menu-band .button{justify-self:end}
.location{padding-block:clamp(38px,5.5vw,92px)}
.location h2{margin-bottom:.9rem}
.location-contact{display:flex;flex-direction:column;align-items:flex-start;min-width:0;background:linear-gradient(140deg,#fbf1e4,#eddfcc 80%);border-radius:var(--radius-surface);padding:clamp(19px,3vw,42px);box-shadow:var(--surface-depth)}
.location-contact .eyebrow{margin:0 0 .45rem}
.location-phone{display:inline-flex;align-items:center;min-height:44px;font:400 clamp(1.55rem,3.15vw,2.6rem)/1.15 var(--serif);letter-spacing:-.035em;text-decoration:none}
.location-phone:hover{text-decoration:underline;text-underline-offset:.2em}
.info-page h1{font-size:clamp(2.7rem,6vw,6.7rem);text-wrap:initial}
.info-page>p:not(.eyebrow),.info-page>.button{margin-top:1.25rem}
.reading{max-width:65ch;margin-top:2rem}
.reading h2{font-size:1.65rem;margin:1.5rem 0 .5rem;letter-spacing:-.035em;text-wrap:initial}
.reading .text-link{margin-top:1.25rem}

.site-footer{background:radial-gradient(ellipse at 88% 0%,#38251c,transparent 66%),var(--coal);color:var(--paper)}
.footer-inner{padding-top:clamp(32px,4.9vw,76px)}
.footer-main{display:grid;grid-template-columns:minmax(0,1.2fr) repeat(2,minmax(0,1fr));gap:clamp(18px,4.7vw,76px);padding-bottom:1.45rem}
.footer-main p{color:#ead9cb;font-size:.89rem}
.footer-main .footer-wordmark{font:400 clamp(1.9rem,3.3vw,3rem)/1.14 var(--serif);letter-spacing:-.048em;color:var(--paper)}
.footer-main .eyebrow{color:var(--fire);margin-bottom:.42rem}
.footer-main a,.footer-bottom a{max-width:100%;width:fit-content;min-height:44px;display:inline-flex;align-items:center;gap:.38rem;color:inherit;text-decoration:none;overflow-wrap:anywhere}
.footer-main a:hover,.footer-bottom a:hover{color:var(--fire);text-decoration:underline;text-underline-offset:.25em}
.footer-main a svg,.footer-bottom a svg{width:.87em;height:.87em}
.footer-main a svg.whatsapp-icon{width:20px;height:20px;color:var(--fire)}
.footer-main .footer-wordmark+p{margin-top:.5rem}
.footer-social{margin-top:1.15rem}
.footer-main .footer-social .eyebrow{font-size:.69rem;letter-spacing:.14em;margin-bottom:.65rem}
.social-links{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem}
.footer-main .social-links a{display:inline-flex;align-items:center;justify-content:center;width:46px;min-width:46px;height:46px;min-height:46px;border:1px solid #7e5e4b;border-radius:50%;background:#fff9ef0a;color:var(--paper);transition:background 180ms ease,border-color 180ms ease,transform 180ms ease}
.footer-main .social-links a svg{width:21px;height:21px}
.footer-main .social-links a:hover{background:#f3b88f24;color:var(--fire);border-color:var(--fire);text-decoration:none;transform:translateY(-2px)}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem 1rem;padding:.7rem 0;border-top:1px solid transparent;border-image:linear-gradient(90deg,#5d4132,#977052 44%,#5d4132) 1;font-size:.79rem;color:#ead9cb}

@media(max-width:1000px){
  .hero{grid-template-columns:repeat(2,minmax(0,1fr));min-height:480px}
  .hero h1{font-size:clamp(3rem,6.3vw,4.55rem)}
  .hero .eyebrow{gap:.55rem;letter-spacing:.11em}
  .story,.experience{gap:clamp(28px,5.6vw,65px)}
  .home-lab-copy{padding-inline:clamp(27px,4vw,52px)}
}
@media(max-width:720px){
  :root{--gutter:clamp(20px,5.5vw,32px);--frame:clamp(12px,3.7vw,24px);--inset:clamp(18px,5.3vw,32px)}
  .header-inner{min-height:88px;grid-template-columns:minmax(0,1fr) auto;gap:.5rem}
  .brand{width:clamp(148px,41vw,174px)}
  .header-cta{display:none}
  .main-nav{grid-column:1/-1;gap:1.05rem}
  .main-nav a{font-size:.84rem}
  .js .menu-toggle{
    display:inline-flex;align-items:center;gap:.65rem;min-height:46px;padding:.35rem .38rem .35rem .92rem;
    background:linear-gradient(135deg,#513223,#291b14);color:var(--paper);border:1px solid #67412c;
    border-radius:999px;box-shadow:0 3px 8px #34201523,inset 0 1px 0 #fff5dd22;
    font-size:.85rem;font-weight:700;letter-spacing:.025em
  }
  .js .menu-toggle[aria-expanded=true]{background:linear-gradient(135deg,#713f2c,#47271c)}
  .menu-toggle-icon{
    position:relative;display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:50%;
    background:linear-gradient(145deg,#f7d7ad,#e7a879);color:#3e2619;
    box-shadow:inset 0 1px 0 #ffefd7a6
  }
  .menu-toggle-icon::before,.menu-toggle-icon::after{
    content:"";position:absolute;width:14px;height:1.5px;border-radius:2px;background:currentColor;
    transition:transform 170ms var(--ease-settle)
  }
  .menu-toggle-icon::before{transform:translateY(-2.5px)}
  .menu-toggle-icon::after{transform:translate(2px,2.5px) scaleX(.72)}
  .menu-toggle[aria-expanded=true] .menu-toggle-icon::before{transform:rotate(45deg)}
  .menu-toggle[aria-expanded=true] .menu-toggle-icon::after{transform:rotate(-45deg)}
  .js .main-nav{
    display:flex;position:absolute;grid-column:auto;inset:calc(100% + 5px) var(--gutter) auto;
    visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-6px);
    transition:opacity 150ms var(--ease-settle),transform 170ms var(--ease-settle),visibility 0s linear 170ms;
    width:min(100% - 2 * var(--gutter),360px);left:auto;max-height:calc(100dvh - 100px);overflow:auto;overscroll-behavior:contain;
    flex-direction:column;align-items:stretch;gap:.15rem;padding:.48rem;
    background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-surface);box-shadow:0 12px 32px #38231520
  }
  .js .main-nav.is-open{
    visibility:visible;opacity:1;pointer-events:auto;transform:none;transition-delay:0s
  }
  .js .main-nav a{min-height:46px;flex:none;padding:.55rem .72rem;font-size:.92rem;white-space:normal;overflow-wrap:anywhere;border-radius:8px}
  .js .main-nav a:focus-visible{outline-offset:-3px}
  .js .main-nav .nav-contact{display:flex;color:var(--red);margin-top:.25rem;background:#f3e6d6}
  .js .main-nav [aria-current=page]{background:#f0e3d2}
  .js .main-nav [aria-current=page]::after{display:none}
  [id]{scroll-margin-top:105px}
  .hero,.home-lab{grid-template-columns:minmax(0,1fr);min-height:0}
  .hero::before{border-radius:var(--radius-surface) var(--radius-surface) 0 0}
  .hero-media{grid-area:2 / 1}
  .hero-copy{padding:1.65rem var(--inset) 1.55rem}
  .hero .eyebrow{margin-bottom:.9rem;font-size:.64rem}
  .hero h1{font-size:clamp(2.75rem,10.5vw,4.55rem)}
  .hero-intro{margin:.85rem 0 1.12rem}
  .hero-media{min-height:0;aspect-ratio:1.26}
  .hero-home .hero-media img{object-position:center 54%}
  .hero-catering .hero-media{aspect-ratio:1.15}
  .hero-catering .hero-media img{object-position:center 68%}
  .hero-lab .hero-media{aspect-ratio:1.18}
  .hero-lab .hero-media img{object-position:center 46%}
  .hero-caption{padding:.65rem var(--inset);font-size:.61rem}
  .hero-lab .lab-logo{width:clamp(160px,45vw,198px);margin-bottom:1.08rem}
  .hero-lab .actions{gap:.35rem .7rem}
  .hero-lab .hero-link{gap:.45rem;font-size:.82rem}
  .route-strip a{min-height:71px;padding:.6rem .6rem;gap:.4rem}
  .route-no{font-size:1.1rem}
  .route-strip strong{font-size:.79rem}
  .route-strip small{font-size:.69rem}
  .route-strip svg{width:.85rem}
  .story,.experience,.invitation,.quote,.section-head,.occasion-inner,.menu-band-inner,.location{grid-template-columns:minmax(0,1fr)}
  .story,.experience{gap:1.65rem}
  .home-lab-photo{aspect-ratio:1.28}
  .home-lab-copy{padding:1.75rem var(--inset) 2.15rem}
  .section-head{gap:.85rem;margin-bottom:1.4rem}
  .specialty-grid{grid-template-columns:minmax(0,1fr);gap:1.8rem}
  .tile-img img{aspect-ratio:1.32}
  .menu-band .button{justify-self:start}
  .location{gap:1.25rem}
  .location h2{max-width:none}
  .footer-main{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem 1.5rem}
  .footer-identity{grid-column:1/-1}
}
@media(max-width:530px){
  .form-grid,.footer-main{grid-template-columns:minmax(0,1fr)}
  .footer-main{gap:1.05rem}
  .footer-bottom{display:grid;grid-template-columns:minmax(0,1fr);justify-items:start;gap:0}
  .footer-bottom>span{padding:.45rem 0}
}
@media(max-width:355px){
  .hero-home .brand-seal{width:64px;right:13px;bottom:20px}
  .brand{width:139px}
  .hero .eyebrow{font-size:.61rem}
  .route-strip small{font-size:.65rem}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .hero-home .hero-media img{animation:oven-settle 1.35s var(--ease-settle)}
  .specialty-grid .tile-img{transition:transform 360ms var(--ease-settle)}
  .specialty-grid article:hover .tile-img{transform:perspective(900px) translateY(-4px) rotateX(1.4deg) rotateY(-1.8deg)}
  .hero-catering .button-fire,.quote-form>.button{position:relative;overflow:hidden}
  .hero-catering .button-fire::before,.quote-form>.button::before{
    content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(110deg,transparent 27%,#fff6db35 49%,transparent 71%);
    transform:translateX(-105%);transition:transform 550ms var(--ease-settle)
  }
  .hero-catering .button-fire:hover::before,.quote-form>.button:hover::before{transform:translateX(105%)}
  @keyframes oven-settle{from{transform:scale(1.028)}to{transform:none}}
}
@media(prefers-reduced-motion:no-preference){
  .hero-copy>:not(.brand-seal){animation:arrive .52s ease-out both}
  .hero-copy h1{animation-delay:.045s}
  .hero-intro{animation-delay:.085s}
  .hero-copy .button,.hero-copy .actions{animation-delay:.13s}
  .reveal-in{animation:reveal-in .58s var(--ease-settle) var(--reveal-delay,0s) both}
  .specialty-grid article:nth-child(2){--reveal-delay:65ms}
  .specialty-grid article:nth-child(3){--reveal-delay:125ms}
  @keyframes arrive{from{transform:translateY(7px)}to{transform:none}}
  @keyframes reveal-in{from{opacity:.76;transform:translateY(12px)}to{opacity:1;transform:none}}
}

/* V3.6 — editorial history, using the existing palette and type families. */
.home-history-link{display:flex;font-size:.82rem;font-weight:400;margin-top:.3rem}
.history-intro{padding-block:clamp(32px,4.5vw,70px);display:grid;grid-template-columns:1fr .95fr;gap:clamp(32px,6vw,96px);align-items:center}
.history-intro h1{font-size:clamp(3.2rem,6vw,6.7rem);max-width:9ch}
.history-intro h1 em,.history-copy h2 em,.history-band-head h2 em{display:block}
.history-deck{font-family:var(--serif);font-size:clamp(1.4rem,2.1vw,2rem);line-height:1.38;letter-spacing:-.03em;margin:1.3rem 0}
.history-lead>p:not(.eyebrow):not(.history-deck){color:var(--soft);max-width:47ch}
.history-lead .text-link{margin-top:1.05rem}
.history-cover img,.history-photo img{border-radius:var(--radius-photo)}
.history-cover{max-width:580px;justify-self:end;width:100%}
.history-cover img{aspect-ratio:960/948;object-fit:contain}
.history-chapter{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,7vw,110px);align-items:center}
.history-copy h2{max-width:15ch}
.history-copy>p:not(.eyebrow),.history-band-head>div>p:not(.eyebrow){margin-top:1.25rem;color:var(--soft);max-width:49ch}
.history-copy .text-link{margin-top:1rem}
.history-origin{max-width:500px}
.history-origin img{aspect-ratio:960/959;object-fit:contain}
.history-band{background:var(--coal);color:var(--paper)}
.history-band .eyebrow,.history-finale .eyebrow{color:var(--fire);margin-bottom:1rem}
.history-band h2 em,.history-finale h2 em{color:var(--fire)}
.history-band .history-band-head p:not(.eyebrow){color:#ead9cb}
.history-band-head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,6vw,100px);align-items:center;margin-bottom:2.2rem}
.history-band-head h2{max-width:16ch}
.history-diptych{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,3vw,44px)}
.history-diptych img{border-radius:var(--radius-photo);object-fit:cover}
.history-oven{grid-template-columns:1.2fr .8fr;align-items:center}
.history-oven figure:first-child img{aspect-ratio:2048/1532}
.history-oven figure:last-child{max-width:390px;justify-self:end}
.history-oven figure:last-child img{aspect-ratio:1440/1672}
.history-band figcaption{color:#dec4af}
.history-events img{aspect-ratio:4/3;object-fit:contain}
.history-workshop{background:#efe1cd}
.history-build-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,2vw,28px)}
.history-build-grid img{aspect-ratio:3/4;object-fit:cover;border-radius:var(--radius-photo)}
.history-build-grid figure:nth-child(2) img{object-position:35% center}
.history-build-grid figure:last-child img{object-position:center}
.history-opening-photo{max-width:510px;justify-self:end;width:100%}
.history-opening-photo img{aspect-ratio:3/4;object-fit:contain}
.history-learning{border-block:1px solid var(--line)}
.history-portraits{align-items:start}
.history-portraits img{object-fit:contain;background:#efe1cd;aspect-ratio:4/3}
.history-today-copy{max-width:740px;margin:0 auto 2.3rem;text-align:center}
.history-today-copy .eyebrow{justify-content:center}
.history-today-copy>p:not(.eyebrow){margin:1.35rem auto 0;color:var(--soft)}
.history-night img{aspect-ratio:1.2;object-position:center 50%}
.history-finale{width:min(1440px,calc(100% - 2 * var(--frame)));margin:0 auto clamp(40px,5vw,80px);display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(26px,5vw,70px);background:var(--hero-dark);color:var(--paper);border-radius:var(--radius-surface);overflow:hidden;align-items:center}
.history-finale-photo{padding:clamp(18px,2.5vw,36px) 0 clamp(18px,2.5vw,36px) clamp(18px,2.5vw,36px)}
.history-finale-photo img{aspect-ratio:3/4;object-fit:contain;border-radius:var(--radius-photo)}
.history-finale-photo figcaption{color:#dec4af}
.history-finale-copy{padding:2.6rem clamp(24px,4vw,64px) 2.6rem 0}
.history-finale h2{font-size:clamp(2.4rem,3.8vw,4.3rem);max-width:18ch}
.history-finale-copy>p:not(.eyebrow):not(.history-signature){color:#ead9cb;margin:1.3rem 0 1.7rem}
.history-signature{font-family:var(--serif);font-style:italic;font-size:clamp(1.65rem,2.7vw,2.6rem);color:var(--fire);margin-top:2rem}
/* Desktop density: actual layout dimensions, never browser zoom or transforms. */
@media(min-width:1024px){
  :root{font-size:15px;--gutter:clamp(32px,4.4vw,76px);--frame:clamp(20px,2.7vw,48px);--inset:clamp(30px,3.9vw,68px)}
  .shell{max-width:1500px}
  .header-inner{min-height:82px}
  .brand{width:clamp(146px,12vw,166px)}
  .main-nav{gap:clamp(18px,2.1vw,34px)}
  .hero,.home-lab,.occasion,.menu-band{max-width:1440px}
  .hero{min-height:clamp(420px,36.5vw,620px);margin-top:clamp(12px,1.5vw,26px)}
  .hero-copy{padding-block:clamp(30px,3.9vw,68px);padding-right:clamp(20px,2.5vw,44px)}
  .hero h1{font-size:clamp(3.5rem,5.65vw,7rem)}
  .hero-catering h1,.hero-lab h1{font-size:clamp(3.2rem,4.85vw,5.75rem)}
  .hero-intro{font-size:clamp(1rem,1.05vw,1.08rem);margin:1.15rem 0 1.4rem}
  .hero .eyebrow{margin-bottom:1.1rem}
  .hero-lab .lab-logo{width:clamp(160px,15vw,214px);margin-bottom:1.15rem}
  h2{font-size:clamp(2.5rem,3.95vw,4.7rem)}
  h3{font-size:clamp(1.5rem,2.1vw,2.25rem)}
  .section{padding-block:clamp(48px,6vw,104px)}
  .button{min-height:46px;padding:.66rem 1rem;font-size:.94rem}
  .header-cta{min-height:44px;font-size:.89rem}
  .route-strip{max-width:1400px}
  .route-strip a{min-height:72px;padding-block:.7rem}
  .home-lab{min-height:clamp(380px,35.5vw,580px)}
  .home-lab-copy{padding-block:clamp(30px,4vw,68px)}
  .occasion-inner,.menu-band-inner{padding-block:clamp(30px,4.2vw,70px)}
  .info-page h1{font-size:clamp(2.7rem,5.1vw,5.8rem)}
  .footer-inner{padding-top:clamp(30px,4.1vw,64px)}
  .history-intro h1{font-size:clamp(3.5rem,5.3vw,6.4rem)}
  .history-cover{max-width:500px}
}
@media(min-width:721px) and (max-width:1100px){
  .header-inner{grid-template-columns:auto 1fr;gap:1.5rem}
  .header-cta{display:none}
  .main-nav{justify-self:end;gap:clamp(12px,2vw,22px)}
  .main-nav a{font-size:.84rem}
}
@media(max-width:720px){
  .main-nav{flex-wrap:wrap}
  .history-intro{grid-template-columns:1fr;gap:1.7rem;padding-block:2rem}
  .history-intro h1{font-size:clamp(3.2rem,13vw,4.6rem);max-width:none}
  .history-deck{font-size:1.55rem;margin:1rem 0}
  .history-cover{justify-self:start;max-width:100%}
  .history-chapter,.history-band-head{grid-template-columns:1fr;gap:1.8rem}
  .history-chapter:not(.history-opening) .history-photo{order:2}
  .history-copy h2,.history-band-head h2,.history-today h2{font-size:clamp(2.5rem,10.3vw,3.5rem)}
  .history-band-head{margin-bottom:1.7rem}
  .history-diptych{gap:1.3rem}
  .history-oven,.history-events,.history-portraits{grid-template-columns:1fr}
  .history-oven figure:last-child{max-width:80%;justify-self:end}
  .history-build-grid{grid-template-columns:1fr 1fr;gap:1.4rem .9rem}
  .history-build-grid figcaption{font-size:.61rem;letter-spacing:.055em}
  .history-opening-photo{max-width:100%}
  .history-night{grid-template-columns:1fr}
  .history-today-copy{text-align:left}
  .history-today-copy .eyebrow{justify-content:start}
  .history-finale{grid-template-columns:1fr;gap:0}
  .history-finale-photo{padding:var(--inset) var(--inset) 0}
  .history-finale-copy{padding:1.8rem var(--inset) 2.3rem}
  .history-finale h2{font-size:clamp(2.4rem,10vw,3.6rem)}
  .history-signature{font-size:1.9rem}
}
/* Keep every person visible in the renovation sequence, including landscape originals. */
.history-build-grid{align-items:center}
.history-build-grid img{aspect-ratio:auto;object-fit:contain}
/* V3.6.1 — La nostra storia: desktop editorial alignment only.
   Below 1024px the V3.6 layout is intentionally unchanged. */
@media (min-width:1024px) {
  /* One common reading width for every chapter, instead of large independent grids. */
  .history-intro,
  .history-chapter,
  .history-learning,
  .history-today,
  .history-band > .shell,
  .history-workshop > .shell,
  section.shell[aria-labelledby="crescere-title"] {
    max-width:1260px;
  }

  .history-intro {
    grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
    gap:clamp(36px,4.5vw,64px);
  }
  .history-cover {max-width:410px;justify-self:center;}

  /* Body copy gets a consistent, genuinely readable editorial rhythm. */
  .history-lead > p:not(.eyebrow):not(.history-deck),
  .history-copy > p:not(.eyebrow),
  .history-band-head > div > p:not(.eyebrow),
  .history-today-copy > p:not(.eyebrow),
  .history-finale-copy > p:not(.eyebrow):not(.history-signature) {
    font-size:clamp(1.16rem,1.3vw,1.25rem);
    line-height:1.72;
    max-width:54ch;
  }
  .history-copy > p:not(.eyebrow) + p,
  .history-band-head > div > p:not(.eyebrow) + p {
    margin-top:1.1rem;
  }

  .history-chapter {
    grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);
    gap:clamp(32px,4.5vw,64px);
    align-items:center;
  }
  .history-chapter .history-photo {max-width:380px;justify-self:center;width:100%;}
  .history-chapter .history-photo img {height:auto;max-height:385px;object-fit:contain;}
  .history-copy {max-width:580px;}
  .history-opening .history-photo {max-width:390px;}

  /* Each title/text pair now follows the same two-column baseline and spacing. */
  .history-band-head {
    grid-template-columns:minmax(0,.98fr) minmax(0,1.02fr);
    align-items:start;
    gap:clamp(32px,4vw,58px);
    margin-bottom:clamp(26px,3vw,42px);
  }
  .history-band-head > div:last-child {padding-top:clamp(30px,3.1vw,44px);}

  /* The photo groups are now secondary to the story, not full-width banners. */
  .history-diptych {
    width:min(100%,930px);
    margin-inline:auto;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:clamp(18px,2.3vw,30px);
    align-items:start;
  }
  .history-diptych figure {min-width:0;}
  .history-diptych img {
    width:100%;
    height:320px;
    max-height:320px;
    aspect-ratio:auto;
    object-fit:contain;
  }
  .history-oven figure:last-child {max-width:none;justify-self:stretch;}
  .history-oven figure:first-child img,
  .history-oven figure:last-child img,
  .history-events img,
  .history-portraits img,
  .history-night img {
    aspect-ratio:auto;
    object-fit:contain;
  }

  /* Four restoration photos create a measured gallery with an even baseline. */
  .history-build-grid {
    width:min(100%,930px);
    margin-inline:auto;
    grid-template-columns:repeat(4,minmax(0,1fr));
    align-items:start;
    gap:clamp(14px,2vw,24px);
  }
  .history-build-grid figure {min-width:0;}
  .history-build-grid img {
    width:100%;
    height:225px;
    aspect-ratio:auto;
    object-fit:contain;
  }
  .history-build-grid figcaption {min-height:2.6em;}

  .history-today-copy {max-width:800px;margin-bottom:2rem;}
  .history-today-copy > p:not(.eyebrow) {max-width:60ch;}

  .history-finale {
    max-width:1200px;
    grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);
    gap:clamp(24px,3.5vw,50px);
  }
  .history-finale-photo img {max-height:405px;aspect-ratio:auto;object-fit:contain;}
  .history-finale-copy {padding-block:2.3rem;}
}
