/* =========================================================
   MERIA BEACH — "The Paillote"  |  Coastal editorial system
   ========================================================= */

:root{
  --sand:      #F4EEE1;   /* warm cream base */
  --sand-2:    #EDE4D2;   /* deeper cream */
  --shell:     #FBF7EF;   /* lightest paper */
  --ink:       #2A231B;   /* warm near-black */
  --ink-soft:  #5B5243;   /* muted brown text */
  --terra:     #BB5A34;   /* terracotta accent */
  --terra-dk:  #9C4526;
  --sea:       #34271E;   /* warm espresso brown */
  --sea-dk:    #241A14;
  --bronze:    #9A6A3C;   /* logo bronze */
  --line:      rgba(42,35,27,.16);
  --shadow:    0 30px 70px -30px rgba(28,23,16,.45);

  --f-display: "Fraunces", Georgia, serif;
  --f-accent:  "Cormorant Garamond", Georgia, serif;
  --f-body:    "Jost", "Helvetica Neue", Arial, sans-serif;

  --ease:      cubic-bezier(.22,.61,.36,1);
  --ease-out:  cubic-bezier(.16,1,.3,1);
}

/* ---------- reset ---------- */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{
  font-family:var(--f-body);
  background:var(--sand);
  color:var(--ink);
  font-weight:300;
  line-height:1.65;
  overflow-x:hidden;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
::selection{background:var(--terra);color:var(--shell)}

/* subtle paper grain over everything */
body::before{
  content:"";position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
}

/* ---------- type ---------- */
.eyebrow{
  font-family:var(--f-body);
  font-weight:400;
  font-size:.72rem;
  letter-spacing:.42em;
  text-transform:uppercase;
  color:var(--terra);
  display:inline-block;
}
.eyebrow--paillote{font-family:var(--f-display);font-size:.88rem;font-weight:400;letter-spacing:.28em;text-transform:none;line-height:1.25;padding-bottom:.14em}
h1,h2,h3{font-family:var(--f-display);font-weight:340;line-height:1.02;letter-spacing:-.015em}
h2{font-size:clamp(2.2rem,5.6vw,4.6rem)}
h3{font-size:clamp(1.5rem,2.6vw,2.2rem)}
p.lead{font-size:clamp(1.05rem,1.5vw,1.35rem);color:var(--ink-soft)}
.serif-accent{font-family:var(--f-accent);font-style:italic}

.wrap{width:min(1280px,90vw);margin-inline:auto}
.narrow{width:min(820px,90vw);margin-inline:auto}
section{position:relative}

/* ---------- buttons ---------- */
.btn{
  --c:var(--ink);--bg:transparent;
  position:relative;display:inline-flex;align-items:center;gap:.7em;
  font-family:var(--f-body);font-weight:400;font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--c);padding:1.15em 2.1em;border:1px solid var(--c);border-radius:100px;
  overflow:hidden;isolation:isolate;transition:color .5s var(--ease);cursor:pointer;background:var(--bg);
}
.btn::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--c);transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease-out)}
.btn:hover{color:var(--shell)}
.btn:hover::after{transform:scaleX(1)}
.btn--solid{--c:var(--shell);background:var(--terra);border-color:var(--terra)}
.btn--solid::after{background:var(--ink)}
.btn--solid:hover{color:var(--shell)}
.btn--sea{--c:var(--shell);background:var(--sea);border-color:var(--sea)}
.btn--sea::after{background:var(--terra)}
.evenings .btn--sea{--c:var(--shell);background:var(--terra);border-color:var(--terra)}
.btn .arrow{transition:transform .5s var(--ease)}
.btn:hover .arrow{transform:translateX(4px)}

/* =========================================================
   NAV
   ========================================================= */
.nav{
  position:fixed;top:0;left:0;width:100%;z-index:1000;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.6rem clamp(1.2rem,5vw,3.5rem);
  transition:background .6s var(--ease),padding .6s var(--ease),box-shadow .6s var(--ease);
  mix-blend-mode:normal;
}
.nav.scrolled{background:rgba(244,238,225,.9);backdrop-filter:blur(14px);padding-block:1rem;box-shadow:0 1px 0 var(--line)}
/* frosted "bubbles" around each nav item over the hero (keeps the photo visible) */
.nav:not(.scrolled) .nav__brand,
.nav:not(.scrolled) .nav__links a{color:var(--ink)}
.nav:not(.scrolled) .nav__links .btn{border-color:var(--ink);color:var(--ink)}
.nav__brand{display:flex;flex-direction:row;align-items:center;gap:.65rem;line-height:1;color:var(--shell);transition:color .6s var(--ease)}
.nav.scrolled .nav__brand{color:var(--ink)}
.nav__mark{height:50px;width:auto;flex:0 0 auto;display:block;filter:brightness(0) opacity(.82)}
.nav__wordmark{display:flex;flex-direction:column}
.nav__brand .name{font-family:var(--f-display);font-size:1.24rem;letter-spacing:.16em;font-weight:400}
.nav__brand .sub{font-family:var(--f-body);font-weight:400;font-style:normal;font-size:.64rem;letter-spacing:.26em;text-transform:uppercase;opacity:.82;margin-top:.34em}
.nav__links{display:flex;align-items:center;gap:2.4rem}
.nav__links a{color:var(--shell);font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;transition:color .6s var(--ease);position:relative}
.nav.scrolled .nav__links a{color:var(--ink)}
.nav__links a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-.4em;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.nav__links a:not(.btn):hover::after{transform:scaleX(1);transform-origin:left}
.nav__links .btn{padding:.85em 1.6em;border-color:var(--shell);color:var(--shell)}
.nav.scrolled .nav__links .btn{border-color:var(--ink);color:var(--ink)}
.nav.scrolled .nav__links .btn::after{background:var(--ink)}
.nav.scrolled .nav__links .btn:hover{color:var(--shell)}
.nav__toggle{display:none;flex-direction:column;gap:6px;background:none;border:0;cursor:pointer;z-index:1001}
.nav__toggle span{width:26px;height:1.5px;background:var(--shell);transition:.4s var(--ease)}
.nav.scrolled .nav__toggle span{background:var(--ink)}

/* =========================================================
   HERO
   ========================================================= */
/* reusable framed-print — cream mat + fine bronze rule + soft shadow */
.frame{position:relative;background:var(--shell);padding:clamp(9px,1vw,15px);
  box-shadow:0 46px 90px -46px rgba(28,23,16,.55),0 10px 26px -18px rgba(28,23,16,.35)}
.frame__img{position:relative;overflow:hidden}
.frame__img::after{content:"";position:absolute;inset:0;border:1px solid rgba(154,106,60,.5);pointer-events:none;z-index:3}
.frame__img img{display:block;width:100%;height:auto}

/* HERO — editorial framed cover on the sand canvas */
.hero{min-height:100svh;display:flex;align-items:center;background:var(--sand);
  padding:clamp(7rem,12vw,9.5rem) 0 clamp(3rem,6vw,5rem);overflow:hidden}
.hero__inner{width:min(1240px,92vw);margin:0 auto;display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(2.2rem,6vw,6rem);align-items:center}
.hero__text{color:var(--ink)}
.hero h1{font-family:var(--f-display);font-size:clamp(2.8rem,6.4vw,5.6rem);font-weight:300;line-height:.96;letter-spacing:-.01em}
.hero h1 .line{display:block;overflow:hidden;padding-bottom:.14em;margin-bottom:-.14em}
.hero h1 .line span{display:block;transform:translateY(110%);animation:riseIn 1.1s var(--ease-out) forwards}
.hero h1 .line:nth-child(2) span{animation-delay:.12s}
.hero__tag{font-family:var(--f-body);font-weight:300;font-size:clamp(1.05rem,1.6vw,1.35rem);color:var(--ink-soft);margin-top:clamp(1rem,2vw,1.5rem);max-width:30ch;opacity:0;animation:fadeUp 1s var(--ease-out) .5s forwards}
.hero__cta{display:inline-flex;align-items:center;gap:.7em;margin-top:clamp(1.6rem,3vw,2.2rem);
  font-family:var(--f-body);font-weight:500;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--shell);
  background:var(--sea);padding:1.1em 2.1em;border-radius:100px;box-shadow:0 18px 40px -18px rgba(18,51,61,.6);
  opacity:0;animation:fadeUp 1s var(--ease-out) .65s forwards;transition:background .45s var(--ease)}
.hero__cta:hover{background:var(--terra)}
.hero__cta .arrow{transition:transform .5s var(--ease)}
.hero__cta:hover .arrow{transform:translateX(4px)}
.hero__place{margin-top:clamp(1.6rem,3vw,2.1rem);font-size:.78rem;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--terra);opacity:0;animation:fadeUp 1s var(--ease-out) .8s forwards}
.hero__photo{margin:0;opacity:0;transform:translateY(28px);animation:fadeUp 1.2s var(--ease-out) .35s forwards}
.hero__photo .frame__img img{aspect-ratio:4/5;object-fit:cover;max-height:calc(100svh - 230px)}
@media(max-width:820px){
  .hero__inner{grid-template-columns:1fr;gap:clamp(2rem,7vw,3rem)}
  .hero__photo{order:-1;max-width:520px}
}
.hero__scroll{position:absolute;bottom:2.2rem;left:50%;transform:translateX(-50%);z-index:2;color:var(--shell);
  display:flex;flex-direction:column;align-items:center;gap:.8rem;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;opacity:0;animation:fadeUp 1s ease 1.1s forwards}
.hero__scroll .bar{width:1px;height:52px;background:linear-gradient(var(--shell),transparent);position:relative;overflow:hidden}
.hero__scroll .bar::after{content:"";position:absolute;top:-52px;left:0;width:100%;height:52px;background:var(--shell);animation:scrollBar 2.4s var(--ease) infinite}

@keyframes riseIn{to{transform:translateY(0)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes scrollBar{0%{top:-52px}60%,100%{top:52px}}

/* =========================================================
   REVEAL SYSTEM (JS toggles .in)
   ========================================================= */
[data-reveal]{opacity:0;transition:opacity 1.1s var(--ease-out),transform 1.1s var(--ease-out)}
[data-reveal="up"]{transform:translateY(48px)}
[data-reveal="left"]{transform:translateX(-56px)}
[data-reveal="right"]{transform:translateX(56px)}
[data-reveal="scale"]{transform:scale(1.06)}
[data-reveal].in{opacity:1;transform:none}
[data-delay="1"]{transition-delay:.12s}
[data-delay="2"]{transition-delay:.24s}
[data-delay="3"]{transition-delay:.36s}
[data-delay="4"]{transition-delay:.48s}

/* clip reveal for framed images */
.clip{position:relative;overflow:hidden}
.clip img{transform:scale(1.18);transition:transform 1.6s var(--ease-out)}
.clip::after{content:"";position:absolute;inset:0;background:var(--sand);transform-origin:right;transition:transform 1.15s var(--ease-out)}
.clip.in img{transform:scale(1)}
.clip.in::after{transform:scaleX(0)}

/* word-stagger heading */
.stagger .w{display:inline-block;overflow:hidden;vertical-align:top}
.stagger .w i{display:inline-block;font-style:inherit;transform:translateY(105%);transition:transform .9s var(--ease-out)}
.stagger.in .w i{transform:translateY(0)}

/* =========================================================
   INTRO
   ========================================================= */
.intro{padding:clamp(4.5rem,7vw,6rem) 0;min-height:100svh;display:flex;align-items:center}
.intro .wrap{width:min(1280px,90vw)}
.intro__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2.5rem,6vw,6rem);align-items:center}
.intro__copy .eyebrow{margin-bottom:1.6rem}
.intro__copy h2{margin-bottom:1.8rem}
.intro__copy p{color:var(--ink-soft);font-size:1.06rem;margin-bottom:1.3rem;max-width:46ch}
.intro__meta{display:flex;gap:2.6rem;margin-top:2.4rem;flex-wrap:wrap}
.intro__meta .m .k{font-family:var(--f-display);font-size:1.9rem;color:var(--terra)}
.intro__meta .m .v{font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft)}
.intro__img{position:relative}
.intro__img .frame__img img{aspect-ratio:4/5;object-fit:cover;max-height:calc(100svh - 190px)}
.intro__img .badge{position:absolute;bottom:-38px;left:-38px;width:150px;height:150px;border-radius:50%;
  background:var(--sea);color:var(--shell);display:grid;place-content:center;text-align:center;box-shadow:var(--shadow);
  animation:spin 26s linear infinite}
.intro__img .badge svg{width:100%;height:100%}
@keyframes spin{to{transform:rotate(360deg)}}

/* =========================================================
   MENU / SIGNATURES gallery
   ========================================================= */
.signatures{padding:clamp(4rem,9vw,8rem) 0;background:var(--shell)}
.sec-head{text-align:center;margin-bottom:clamp(3rem,6vw,5rem)}
.sec-head .eyebrow{margin-bottom:1.2rem}
.sec-head p{max-width:52ch;margin:1.4rem auto 0;color:var(--ink-soft)}

/* tidy tessellating grid — equal gaps, no holes */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.8rem,1.6vw,1.4rem)}
.card{position:relative;overflow:hidden;border-radius:2px;aspect-ratio:4/5;
  box-shadow:0 20px 50px -34px rgba(28,23,16,.6)}
.card::after{content:"";position:absolute;inset:0;border:1px solid rgba(154,106,60,.5);pointer-events:none;z-index:4;border-radius:2px}
.card img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-out)}
.card:hover img{transform:scale(1.07)}
.card__cap{position:absolute;left:0;bottom:0;right:0;padding:1.5rem 1.3rem 1.2rem;
  background:linear-gradient(to top,rgba(20,24,20,.78),transparent);color:var(--shell);
  transform:translateY(14px);opacity:0;transition:.55s var(--ease)}
.card:hover .card__cap{transform:none;opacity:1}
.card.caption-visible .card__cap{transform:none;opacity:1}
.card.caption-visible img{transform:scale(1.035)}
.card__cap .n{font-family:var(--f-display);font-size:1.22rem;line-height:1.12}
.card__cap .d{font-size:.72rem;letter-spacing:.04em;opacity:.85;margin-top:.25em}
/* feature tile: first image fills a 2x2 block, everything else tessellates around it */
.card--feature{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}

/* marquee of dish words */
.marquee{overflow:hidden;white-space:nowrap;border-block:1px solid var(--line);padding:1.1rem 0;margin-top:clamp(3rem,6vw,5rem)}
.marquee__track{display:inline-flex;gap:2.5rem;animation:marq 34s linear infinite;will-change:transform}
.marquee span{font-family:var(--f-accent);font-style:italic;font-size:1.5rem;color:var(--ink-soft)}
.marquee .dot{color:var(--terra)}
@keyframes marq{to{transform:translateX(-50%)}}

/* =========================================================
   PARALLAX QUOTE BAND
   ========================================================= */
.band{background:var(--sand-2);padding:clamp(5rem,11vw,9rem) 0;text-align:center}
.band__inner{width:min(920px,90vw);margin:0 auto}
.band__flourish{display:flex;align-items:center;justify-content:center;gap:1.1rem;margin-bottom:1.9rem;color:var(--terra)}
.band__flourish::before,.band__flourish::after{content:"";width:clamp(30px,6vw,64px);height:1px;background:currentColor;opacity:.55}
.band__flourish span{font-size:.95rem;line-height:1}
.band__inner q{font-family:var(--f-display);font-weight:300;font-style:italic;font-size:clamp(1.9rem,4.2vw,3.3rem);line-height:1.22;color:var(--ink);quotes:none;display:block}
.band__inner .by{margin-top:1.9rem;font-size:.74rem;letter-spacing:.3em;text-transform:uppercase;color:var(--terra)}

/* =========================================================
   CELLAR / DRINKS
   ========================================================= */
.cellar{padding:clamp(5rem,10vw,9rem) 0}
.cellar__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.4rem,4vw,3rem);align-items:center}
.cellar__text{padding-inline:clamp(0rem,2vw,2rem)}
.cellar__text h2{margin:1.2rem 0 1.4rem}
.cellar__text p{color:var(--ink-soft);max-width:42ch}
.cellar__text .btn{margin-top:2.4rem}
.cellar__imgs{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2vw,1.5rem);align-items:start}
.cellar__imgs .frame:first-child{margin-top:2.5rem}
.cellar__imgs .frame__img img{aspect-ratio:3/4;object-fit:cover}

/* =========================================================
   EVENINGS + reviews + location
   ========================================================= */
.evenings{background:var(--sand);padding:clamp(5rem,10vw,8rem) 0}
.evenings__inner{width:min(1240px,92vw);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,5rem);align-items:center;text-align:left}
.evenings__text{color:var(--ink)}
.evenings h2{color:var(--ink);margin:1rem 0 1.4rem}
.evenings p{color:var(--ink-soft);max-width:42ch;margin:0 0 2rem}
.evenings__photo{margin:0}
.evenings__photo .frame__img img{aspect-ratio:4/5;object-fit:cover}
@media(max-width:820px){.evenings__inner{grid-template-columns:1fr;gap:2rem}}

/* reviews */
.reviews{background:var(--sand-2);color:var(--ink);text-align:center;padding:clamp(4.5rem,9vw,7.5rem) 0;overflow:hidden}
.reviews .stars{font-size:1.7rem;letter-spacing:.25em;color:#F2C14E;margin-bottom:1rem}
.reviews .score{font-family:var(--f-display);font-size:clamp(3rem,8vw,5.5rem);line-height:1}
.reviews .score small{font-size:.32em;letter-spacing:.06em;color:rgba(251,247,239,.7);vertical-align:middle}
.reviews p{max-width:44ch;margin:1.2rem auto 2.2rem;opacity:.85}
.reviews .gwrap{display:inline-flex;align-items:center;gap:.7em}

/* location */
.location{padding:clamp(5rem,10vw,9rem) 0}
.location__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,5rem);align-items:center}
.info-row{display:flex;gap:1.2rem;padding:1.5rem 0;border-bottom:1px solid var(--line)}
.info-row:first-of-type{border-top:1px solid var(--line)}
.info-row .lab{flex:0 0 130px;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--terra);padding-top:.3em}
.info-row .val{font-size:1.05rem;color:var(--ink)}
.info-row .val .call{font-family:var(--f-display);font-size:1.35rem;display:block;transition:color .3s}
.info-row .val .call:hover{color:var(--terra)}
.location__map{display:flex;justify-content:center}
.location__map .frame{max-width:440px;width:100%}
.location__map .frame__img img{aspect-ratio:4/5;object-fit:cover;max-height:min(560px,72vh)}

/* =========================================================
   FOOTER
   ========================================================= */
.footer{background:var(--ink);color:var(--sand);padding:clamp(3rem,5vw,4.2rem) 0 1.8rem}
.footer__top{display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:clamp(2rem,4vw,3rem);padding-bottom:2.2rem;border-bottom:1px solid rgba(244,238,225,.14);align-items:center}
.footer__brand{display:flex;align-items:center;gap:clamp(1.4rem,2.5vw,2.4rem)}
.footer__brand .mark{width:clamp(180px,15vw,240px);flex:0 0 auto;opacity:.94;margin-bottom:0}
.footer__brand p{color:rgba(244,238,225,.6);max-width:32ch;font-size:.9rem}
.footer h4{font-family:var(--f-body);font-weight:400;font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;color:var(--terra);margin-bottom:1.4rem}
.footer__col a,.footer__col p{display:block;color:rgba(244,238,225,.78);margin-bottom:.7rem;font-size:.98rem;transition:color .3s}
.footer__col a:hover{color:var(--sand)}
.footer__ig{display:inline-flex;align-items:center;gap:.5em}
.footer__ig .ig-icon{flex:0 0 auto;color:var(--sand)}
.footer__bottom{display:flex;justify-content:space-between;align-items:center;padding-top:2rem;font-size:.78rem;color:rgba(244,238,225,.5);flex-wrap:wrap;gap:1rem}

/* =========================================================
   SUBPAGE HERO (history / booking)
   ========================================================= */
.subhero{background:var(--sand);padding:clamp(6.5rem,9vw,8rem) 0 clamp(2.5rem,4vw,3.5rem);min-height:100svh;display:flex;align-items:center}
.subhero__inner{width:min(1240px,92vw);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,5rem);align-items:center}
.subhero__head{color:var(--ink)}
.subhero .eyebrow{margin-bottom:1.1rem}
.subhero h1{font-family:var(--f-display);font-size:clamp(2.6rem,6vw,5rem);font-weight:300;color:var(--ink);line-height:.98;letter-spacing:-.01em}
.subhero__photo{margin:0}
.subhero__photo .frame__img img{aspect-ratio:4/5;object-fit:cover;max-height:calc(100svh - 220px)}
@media(max-width:820px){.subhero__inner{grid-template-columns:1fr;gap:2rem}.subhero__photo{order:-1;max-width:520px}}

/* =========================================================
   HISTORY page
   ========================================================= */
.story{padding:clamp(5rem,10vw,9rem) 0 clamp(2.5rem,4vw,4rem)}
.story__intro{max-width:760px;margin:0 auto clamp(4rem,8vw,7rem)}
.story__intro .dropcap::first-letter{font-family:var(--f-display);font-size:4.4rem;float:left;line-height:.8;padding:.06em .12em 0 0;color:var(--terra)}
.story__intro p{font-size:1.18rem;color:var(--ink-soft);margin-bottom:1.4rem}
.story__block{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,5rem);align-items:center;margin-bottom:clamp(4rem,7vw,5.5rem)}
.story__block.rev{direction:rtl}
.story__block.rev>*{direction:ltr}
.story__block{min-height:0}
.story__block .frame__img img{aspect-ratio:4/5;object-fit:cover;max-height:calc(100svh - 170px)}
.story__block h3{margin-bottom:1.2rem}
.story__block .yr{font-family:var(--f-display);font-size:.9rem;letter-spacing:.2em;color:var(--terra);display:block;margin-bottom:.8rem}
.story__block p{color:var(--ink-soft);margin-bottom:1rem}
.story__block:has(+ .story__quote),.story__block:last-of-type{margin-bottom:0}
.story__quote{text-align:center;padding:0;margin:calc(clamp(3rem,6vw,5rem) + 3rem) 0 clamp(3rem,6vw,5rem)}
.story__quote q{font-family:var(--f-accent);font-style:italic;font-size:clamp(1.6rem,4vw,2.8rem);color:var(--ink);quotes:none;display:block;max-width:20ch;margin-inline:auto;line-height:1.3}
.story__father{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(280px,.88fr);gap:clamp(2.5rem,6vw,5rem);align-items:center;width:100%;margin:0 auto calc(clamp(4rem,7vw,5.5rem) + 3rem);direction:rtl}
.story__father>*{direction:ltr}
.story__father-photo{padding:clamp(9px,1vw,15px)}
.story__father-photo .frame__img{aspect-ratio:4/3;overflow:hidden}
.story__father-photo .frame__img img{width:100%;height:100%;object-fit:cover;object-position:center 50%}
.story__father figcaption{position:relative;padding-top:1.35rem;text-align:left;color:var(--ink)}
.story__father figcaption::before{content:"";position:absolute;top:0;left:0;width:42px;height:1px;background:var(--terra)}
.story__father figcaption span{display:block;margin-bottom:.8rem;font-family:var(--f-body);font-size:.68rem;letter-spacing:.25em;text-transform:uppercase;color:var(--terra)}
.story__father figcaption strong{display:block;font-family:var(--f-display);font-size:clamp(1.65rem,2.8vw,2.65rem);font-weight:340;line-height:1.08}
.booking-phone-card{display:flex;flex-direction:column;justify-content:center}
.booking-phone-card .callbtn--light{border-color:var(--line);color:var(--ink)}
.booking-phone-card .callbtn--light:hover{background:var(--ink);border-color:var(--ink);color:var(--shell)}
.phone-confirmation{margin-top:.5rem!important;font-size:.78rem!important;color:var(--ink-soft)}
.booking__grid--single{display:block;max-width:940px;margin-inline:auto}
.booking-phone-card--merged{padding:clamp(2rem,4vw,3.8rem)}
.booking-phone-card--merged>p{max-width:64ch}
.booking-phone-card__numbers{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.25rem}
.booking-phone-card__numbers .callbtn{margin:0}
.booking-phone-card__note{margin-top:clamp(1.5rem,3vw,2.2rem);padding-top:clamp(1.3rem,2.5vw,1.8rem);border-top:1px solid var(--line)}
.booking-phone-card__note .eyebrow{margin-bottom:.45rem}
.booking-phone-card__note p{max-width:68ch;color:var(--ink-soft);font-size:.92rem}
.booking-phone-card__note .booking-phone-card__address{margin-top:1rem;margin-bottom:0;font-size:.78rem;letter-spacing:.04em}
@media(max-width:680px){
  .booking-phone-card__numbers{grid-template-columns:1fr}
  .booking-phone-card--merged{text-align:center}
  .booking-phone-card--merged>p,.booking-phone-card__note p{margin-inline:auto}
}

/* Editorial telephone reservation page */
.booking-editorial{width:min(1280px,86vw);height:clamp(550px,calc(100svh - 175px),680px);margin-inline:auto;display:grid;grid-template-columns:minmax(340px,.88fr) minmax(470px,1.12fr);align-items:stretch;background:var(--shell);border:11px solid var(--shell);outline:1px solid rgba(154,106,60,.42);box-shadow:0 42px 86px -54px rgba(28,23,16,.62);overflow:hidden}
.booking-editorial__photo{position:relative;min-height:0;height:100%;margin:0;overflow:hidden;background:#dbe5e8;box-shadow:inset 0 0 0 1px rgba(154,106,60,.48)}
.booking-editorial__photo img{width:100%;height:100%;object-fit:cover;object-position:center center;transition:transform 1.2s var(--ease)}
.booking-editorial__photo:hover img{transform:scale(1.018)}
.booking-editorial__photo::after{content:"";position:absolute;inset:auto 0 0;height:28%;background:linear-gradient(to top,rgba(28,23,16,.3),transparent);pointer-events:none}
.booking-editorial__photo figcaption{position:absolute;z-index:1;top:clamp(2.25rem,7vh,4.5rem);left:50%;bottom:auto;transform:translateX(-50%);width:max-content;max-width:85%;font-family:var(--f-accent);font-size:clamp(.95rem,1.25vw,1.2rem);font-style:italic;letter-spacing:.12em;color:rgba(42,35,27,.8);text-shadow:0 1px 12px rgba(251,247,239,.6)}
.booking-editorial__content{display:flex;flex-direction:column;justify-content:center;padding:clamp(1.8rem,3.5vw,3.6rem)}
.booking-editorial__intro{max-width:700px}
.booking-editorial__intro .eyebrow{margin-bottom:1.1rem}
.booking-editorial__intro h1{font-family:var(--f-display);font-weight:300;font-size:clamp(2.65rem,3.8vw,4.15rem);line-height:.9;letter-spacing:-.025em;color:var(--ink);margin-bottom:clamp(1rem,1.7vw,1.45rem)}
.booking-editorial__intro h1 em{font-family:var(--f-accent);font-weight:400}
.booking-editorial__intro>p{font-size:clamp(.92rem,1.15vw,1.05rem);line-height:1.75;color:var(--ink-soft);max-width:58ch}
.booking-editorial__numbers{margin-top:clamp(1.3rem,2.5vw,2.3rem);border-top:1px solid var(--line)}
.booking-number{display:grid;grid-template-columns:110px 1fr auto;gap:clamp(1rem,2vw,2rem);align-items:center;padding:clamp(1rem,1.6vw,1.4rem) 0;border-bottom:1px solid var(--line);color:var(--ink);transition:color .35s,padding .45s var(--ease)}
.booking-number:hover{color:var(--terra);padding-left:.45rem}
.booking-number__label{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}
.booking-number__value{font-family:var(--f-display);font-size:clamp(1.5rem,1.95vw,2rem);line-height:1;white-space:nowrap}
.booking-number__arrow{font-size:1.2rem}
.booking-editorial__note{margin-top:clamp(1.3rem,2.4vw,2rem);display:grid;grid-template-columns:110px 1fr;column-gap:clamp(1rem,2vw,2rem);align-items:start}
.booking-editorial__note .eyebrow{margin:0;padding-top:.15rem}
.booking-editorial__note p{color:var(--ink-soft);font-size:.88rem;max-width:58ch}
.booking-editorial__note .booking-editorial__address{grid-column:2;margin-top:.9rem;font-size:.72rem;letter-spacing:.05em;color:var(--terra)}
@media(max-width:960px){
  .booking-editorial{grid-template-columns:1fr;width:min(680px,90vw);height:auto;border-width:9px}
  .booking-editorial__photo{min-height:0;aspect-ratio:4/3}
  .booking-editorial__photo img{object-position:center 63%}
  .booking-editorial__content{padding:clamp(2.2rem,7vw,4rem)}
}
@media(max-width:560px){
  .booking{padding-top:5.4rem}
  .booking-editorial{width:94vw;border:8px solid var(--shell);outline:1px solid rgba(154,106,60,.35);box-shadow:0 28px 60px -46px rgba(28,23,16,.55)}
  .booking-editorial__photo{aspect-ratio:4/4.6}
  .booking-editorial__photo img{object-position:center center}
  .booking-editorial__content{text-align:center;padding:2.5rem 1.35rem 3rem}
  .booking-editorial__intro h1{font-size:clamp(2.75rem,14vw,4rem)}
  .booking-editorial__intro>p{margin-inline:auto}
  .booking-number{grid-template-columns:1fr;gap:.45rem;padding:1.5rem .25rem}
  .booking-number__value{white-space:normal;font-size:clamp(1.75rem,8.5vw,2.2rem)}
  .booking-number__arrow{display:none}
  .booking-editorial__note{grid-template-columns:1fr;gap:.75rem}
  .booking-editorial__note .booking-editorial__address{grid-column:1;margin-top:.4rem}
}
@media(min-width:961px){
  .booking{min-height:100svh;padding:105px 0 18px}
}

/* =========================================================
   BOOKING page
   ========================================================= */
.booking{background:var(--sand);padding:clamp(4rem,6vw,4.8rem) 0 clamp(1.5rem,3vw,2.2rem);scroll-margin-top:70px;min-height:100svh;display:flex;flex-direction:column;justify-content:center}
.booking__head{max-width:640px;margin:0 auto clamp(1rem,2vw,1.5rem);text-align:center}
.booking__head .eyebrow{margin-bottom:.45rem}
.booking__head h1{font-family:var(--f-display);font-weight:300;font-size:clamp(1.7rem,2.8vw,2.3rem);color:var(--ink);line-height:1;letter-spacing:-.01em}
.booking__head p{color:var(--ink-soft);margin-top:.6rem;font-size:.96rem}
.booking__grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(1.6rem,3vw,2.6rem);align-items:stretch}
.bcard{background:var(--shell);border:1px solid var(--line);border-radius:8px;padding:clamp(1.4rem,2.2vw,2rem);box-shadow:0 34px 74px -46px rgba(28,23,16,.5)}
.bcard .eyebrow{margin-bottom:.5rem}
.bcard h2{font-size:clamp(1.5rem,2.6vw,2rem);margin-bottom:.35rem;color:var(--ink)}
.bcard>p{color:var(--ink-soft);margin-bottom:1.2rem;font-size:.92rem;max-width:50ch}
.field{margin-bottom:.75rem}
.field label{display:block;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.3rem}
.field input,.field select,.field textarea{
  width:100%;font-family:var(--f-body);font-size:.95rem;font-weight:300;color:var(--ink);
  background:#fff;border:1px solid var(--line);border-radius:5px;padding:.68em 1em;transition:border-color .3s,box-shadow .3s;
}
.field input::placeholder,.field textarea::placeholder{color:#ab9f8b}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--sea);box-shadow:0 0 0 3px rgba(28,76,90,.13)}
.field textarea{resize:vertical;min-height:56px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.bsubmit{display:inline-flex;width:100%;justify-content:center;align-items:center;gap:.7em;margin-top:.3rem;
  font-family:var(--f-body);font-weight:500;font-size:.76rem;letter-spacing:.22em;text-transform:uppercase;color:var(--shell);
  background:var(--sea);border:0;cursor:pointer;padding:.95em 2em;border-radius:100px;
  box-shadow:0 18px 40px -18px rgba(18,51,61,.55);transition:background .4s var(--ease)}
.bsubmit:hover{background:var(--terra)}
.bsubmit .arrow{transition:transform .5s var(--ease)}
.bsubmit:hover .arrow{transform:translateX(4px)}
.form-note{font-size:.72rem;color:var(--ink-soft);margin-top:.8rem;line-height:1.5}
.form-ok{display:none;background:var(--sea);color:var(--shell);padding:1rem 1.2rem;border-radius:5px;margin-top:1rem;font-size:.92rem}
.form-ok.show{display:block;animation:fadeUp .5s var(--ease-out)}

/* lunch / call card */
.callcard{background:var(--sea);color:var(--shell);border-radius:8px;padding:clamp(1.4rem,2.2vw,2rem);box-shadow:0 34px 74px -46px rgba(18,51,61,.6);display:flex;flex-direction:column}
.callcard .eyebrow{color:#D8C39B;margin-bottom:.5rem}
.callcard h2{font-size:clamp(1.5rem,2.6vw,2rem);margin:0 0 .8rem;color:var(--shell)}
.callcard>p{opacity:.9;margin-bottom:1.4rem;font-size:.95rem}
.callbtn{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  border:1px solid rgba(244,238,225,.3);border-radius:100px;padding:.85em 1.5em;margin-bottom:.8rem;transition:.4s var(--ease)}
.callbtn:hover{background:var(--shell);color:var(--sea);border-color:var(--shell)}
.callbtn .num{font-family:var(--f-display);font-size:1.2rem;letter-spacing:.02em}
.callbtn .who{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;opacity:.8}
.callcard .hours{margin-top:auto;padding-top:1.3rem;border-top:1px solid rgba(244,238,225,.22);font-size:.88rem;opacity:.92;line-height:1.5}
.callcard .hours strong{font-weight:500;color:#D8C39B}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media(min-width:901px){
  .wrap{width:min(1160px,86vw)}
  .hero__inner{width:min(1088px,86vw);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2.75rem,4vw,3.5rem)}
  .hero__text{max-width:500px;justify-self:end;width:100%}
  .hero__photo{max-width:520px;justify-self:start;width:100%}
  .intro__grid,.cellar__grid,.location__grid{gap:clamp(3rem,4vw,4rem)}
  .evenings__inner{width:min(1120px,86vw);gap:clamp(3rem,4vw,4rem)}
  .gallery .card:last-child{display:none}
  .gallery .card--feature{aspect-ratio:4/5}
  .location{min-height:calc(100vh - 96px);padding:6.5rem 0 2rem;display:flex;align-items:center}
  .location h2{font-size:clamp(3.15rem,4vw,4.15rem)}
  .location .info-row{padding:1.05rem 0}
  .location__map .frame__img img{max-height:min(520px,64vh)}
  #find-details{scroll-margin-top:120px}
}
@media(max-width:900px){
  html,body{overflow-x:clip}
  [data-reveal="left"],[data-reveal="right"]{transform:translateY(36px)}
  .nav{position:sticky;top:0;height:76px;padding:12px 20px;background:rgba(244,238,225,.94);backdrop-filter:blur(16px);box-shadow:0 1px 0 var(--line)}
  .nav,.nav.scrolled{height:68px;padding:8px 20px}
  .nav__mark{height:40px}
  .nav__brand{position:relative;z-index:1001}
  .nav__brand .name{font-size:1.08rem;letter-spacing:.13em}
  .nav__brand .sub{font-size:.56rem;letter-spacing:.22em}
  .nav__toggle span,.nav.scrolled .nav__toggle span{background:var(--ink)}
  .nav.menu-open{background:transparent;box-shadow:none;backdrop-filter:none}
  .nav.menu-open .nav__brand{color:var(--shell)}
  .nav.menu-open .nav__mark{filter:none}
  .nav.menu-open .nav__toggle span{background:var(--shell)}
  .nav.menu-open .nav__links a:not(.btn){color:var(--terra)}
  .nav.menu-open .nav__links .btn{color:var(--shell);border-color:var(--shell)}
  .nav__links{position:fixed;inset:0;background:var(--sea);flex-direction:column;justify-content:center;gap:2rem;
    transform:translateY(-104%);opacity:0;visibility:hidden;pointer-events:none;transition:transform .6s var(--ease),opacity .35s ease,visibility 0s linear .6s;}
  .nav__links.open{transform:none;opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
  .nav__links a,.nav.scrolled .nav__links a{color:var(--shell);font-size:1rem}
  .nav__links .btn{border-color:var(--shell);color:var(--shell)}
  .nav__toggle{display:flex}
  .nav__toggle.open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
  .nav__toggle.open span:nth-child(2){opacity:0}
  .nav__toggle.open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
  .nav.scrolled .nav__toggle.open span{background:var(--shell)}
  .intro__grid,.cellar__grid,.location__grid,.story__block,.booking__grid{grid-template-columns:1fr}
  .story__block.rev{direction:ltr}
  .intro__img{order:-1}
  .cellar__imgs .clip:first-child{margin-top:0}
  .footer__top{grid-template-columns:1fr;gap:2.5rem}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .card--feature{grid-column:span 2;grid-row:auto;aspect-ratio:16/10}
  .hero,.intro,.subhero,.story__block{min-height:auto}
  .hero{padding:1.4rem 0 3rem;align-items:start}
  .hero__inner{width:90vw;gap:2.25rem}
  .hero__photo{width:100%;max-width:none}
  .hero__photo .frame__img img{max-height:none;aspect-ratio:4/5;object-position:center}
  .hero__text{text-align:left}
  .hero h1{font-size:clamp(3.2rem,13vw,4.5rem)}
  .hero__tag{font-size:1.08rem;line-height:1.55}
  .hero__cta{min-height:48px}
  .intro{padding:3.75rem 0}
  .intro__grid{gap:3.5rem}
  .intro__img{width:100%}
  .intro__img .frame__img img{max-height:none;aspect-ratio:4/5}
  .intro__copy h2{margin-bottom:1.5rem}
  .intro__copy p{font-size:1rem;line-height:1.75}
  .intro__meta{gap:1.5rem 2rem;margin-top:2rem}
  .signatures{padding:3.75rem 0}
  .sec-head{margin-bottom:2.75rem}
  .band{padding:5rem 0}
  .cellar,.evenings,.location,.story{padding:3.75rem 0}
  .cellar__grid,.evenings__inner,.location__grid{gap:3.25rem}
  .cellar__text{padding-inline:0}
  .evenings__photo{width:100%}
  .location__map .frame{max-width:none}
  .location__map .frame__img img{max-height:none}
  .subhero{padding:1.4rem 0 3rem;align-items:start}
  .subhero__inner{width:90vw;gap:2.25rem}
  .subhero__photo{width:100%;max-width:none}
  .subhero__photo .frame__img img{max-height:none;aspect-ratio:4/5}
  .subhero h1{font-size:clamp(3rem,13vw,4.3rem)}
  .story__block{gap:2.25rem;margin-bottom:3.75rem}
  .story__block .frame__img img{max-height:none}
  .booking{min-height:auto;padding:2rem 0 3.5rem;justify-content:flex-start}
  .booking__grid{gap:1.25rem}
  .bcard,.callcard{border-radius:6px;padding:1.45rem}
  .footer__brand{align-items:flex-start;flex-direction:column;gap:1.25rem}
  .footer__brand .mark{width:min(220px,70vw)}
}
@media(max-width:560px){
  .wrap,.narrow{width:90vw}
  .hero__text,.intro__copy,.sec-head,.cellar__text,.evenings__text,.reviews,.location__grid>div:first-child,.story__intro,.story__block>div,.story__quote,.booking__grid,.callcard,.footer{text-align:center}
  .btn,.hero__cta,.bsubmit{justify-content:center;margin-inline:auto}
  .btn .arrow,.hero__cta .arrow,.bsubmit .arrow{margin-left:.35rem}
  h2{font-size:clamp(2.35rem,12vw,3.25rem)}
  h3{font-size:2rem}
  .eyebrow{font-size:.66rem;letter-spacing:.34em}
  .btn{max-width:100%;padding:1.05em 1.45em;line-height:1.35;text-align:center;justify-content:center}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
  .card--feature{grid-column:span 1;aspect-ratio:4/5}
  .card{border-radius:0;box-shadow:0 18px 42px -32px rgba(28,23,16,.7)}
  .card__cap{padding:3rem .6rem .65rem;transform:translateY(8px);text-align:center}
  .card__cap .n{font-size:1rem}
  .card__cap .d{font-size:.6rem;line-height:1.25}
  .hero{padding:0}
  .hero__inner{position:relative;width:100%;gap:0}
  .hero__photo{padding:0;box-shadow:none}
  .hero__photo .frame__img::after{display:none}
  .hero__photo .frame__img img{aspect-ratio:4/5}
  .hero__text{position:static;width:90vw;margin-inline:auto;display:flex;flex-direction:column;align-items:center}
  .hero h1{position:absolute;z-index:2;top:32px;left:5vw;width:90vw;font-size:clamp(2.6rem,12vw,3.15rem);line-height:.9;text-align:center;text-shadow:0 1px 12px rgba(251,247,239,.22)}
  .hero__tag{position:absolute;z-index:2;top:128px;left:5vw;right:5vw;width:auto;max-width:none;align-self:auto;display:block;margin:0;font-size:.84rem;line-height:1.35;color:var(--ink);text-align:center;text-shadow:0 1px 10px rgba(251,247,239,.35)}
  .hero__place{position:absolute;z-index:4;left:5vw;right:5vw;bottom:76px;width:auto;margin:0;text-align:center;color:var(--terra);text-shadow:0 1px 7px rgba(251,247,239,.92)}
  .hero__cta{position:absolute;z-index:4;left:12vw;right:12vw;bottom:18px;width:auto;padding:1em 1.05em;margin:0;text-align:center;color:var(--ink);background:rgba(251,247,239,.86);box-shadow:0 16px 34px -18px rgba(42,35,27,.72)}
  .intro__grid{display:flex;flex-direction:column;align-items:stretch;gap:0;text-align:center}
  .intro__copy{display:contents}
  .intro__copy>.eyebrow{order:1;margin-bottom:1rem}
  .intro__copy>h2{order:2}
  .intro__copy>p:first-of-type{order:3}
  .intro__copy>p:nth-of-type(2){order:4}
  .intro__img{order:5;margin:1.4rem 0 2.2rem}
  .intro__meta{order:6;width:100%}
  .intro__meta{display:flex;flex-direction:column;align-items:center;gap:0;margin-top:1.5rem;text-align:center}
  .intro__meta .m{width:100%;padding:1.05rem 0;border-top:1px solid var(--line)}
  .intro__meta .m:last-child{border-bottom:1px solid var(--line)}
  .intro__meta .m .k{font-size:1.7rem}
  .intro__meta .m .v{font-size:.64rem;letter-spacing:.2em}
  .cellar__text p{margin-inline:auto}
  .cellar__imgs{gap:.7rem;align-items:stretch}
  .cellar__imgs .frame{padding:7px}
  .cellar__imgs .frame:first-child{margin-top:0}
  .cellar__imgs .frame__img,.cellar__imgs .frame__img img{height:100%}
  .evenings{padding:2.5rem 0}
  .evenings__inner{width:90vw;display:flex;flex-direction:column;align-items:stretch;gap:0}
  .evenings__text{display:contents}
  .evenings__text .eyebrow{order:1;align-self:flex-start}
  .evenings__text .eyebrow{align-self:center}
  .evenings__text h2{order:2;margin:.65rem 0 .8rem}
  .evenings__text p{order:3;margin:0}
  .evenings__photo{order:4;margin:1.25rem 0 2.25rem}
  .evenings__text .btn{order:5;width:100%}
  .info-row{display:block;padding:1.25rem 0}
  .info-row .lab{padding:0 0 .45rem;display:block}
  .info-row .val{font-size:1rem}
  .info-row .val .call{font-size:1.25rem;line-height:1.5;margin-top:.25rem}
  .reviews .btn{width:100%}
  .location{padding:2rem 0 .8rem}
  .location__grid{display:flex;flex-direction:column;gap:2rem}
  .location__map{order:-1}
  .location__map .frame__img img{aspect-ratio:1/1;object-fit:cover}
  .info-row:last-child{border-bottom:0;padding-bottom:.65rem}
  .footer{padding-top:3.25rem;text-align:center}
  .footer__top{gap:2.4rem;justify-items:center}
  .footer__brand{align-items:center;text-align:center}
  .footer__brand .mark{margin-inline:auto}
  .footer__brand p{margin-inline:auto}
  .footer__col{width:100%;text-align:center}
  .footer h4{margin-bottom:1rem}
  .footer__col a,.footer__col p{margin-inline:auto}
  .footer__ig{justify-content:center}
  .footer__ig .ig-icon{transform:translateY(2px)}
  .footer__bottom{display:block;line-height:1.7;text-align:center}
  .footer__bottom span{display:block}
  .subhero__inner{width:100%;gap:0}
  .subhero{padding:0}
  .subhero__photo{padding:0;box-shadow:none}
  .subhero__photo .frame__img::after{display:none}
  .subhero__head{position:absolute;z-index:2;top:32px;left:5vw;width:90vw;margin:0;text-align:center}
  .subhero .eyebrow{margin-bottom:.5rem;color:var(--terra)}
  .subhero h1{font-size:clamp(2.15rem,10.5vw,2.75rem);line-height:.94;text-shadow:0 1px 12px rgba(251,247,239,.25)}
  .story__intro p{font-size:1.05rem}
  .story{padding:2.5rem 0}
  .story__intro .dropcap::first-letter{font-size:3.8rem}
  .story__block{gap:1.75rem;margin-bottom:2.75rem}
  .story__block + .story__quote{padding:0;margin:2.75rem 0}
  .story__block .yr{margin-inline:auto}
  .story__block .frame{padding:8px}
  .story__father{display:block;width:90vw;margin-bottom:3.25rem}
  .story__father-photo{padding:8px!important;padding-bottom:8px!important;background:var(--shell);box-sizing:border-box;overflow:visible}
  .story__father-photo .frame__img{display:block;aspect-ratio:4/3;overflow:hidden}
  .story__father-photo .frame__img img{display:block}
  .story__father figcaption{margin:1.25rem auto 0;padding-top:1.1rem;width:90%;text-align:center}
  .story__father figcaption::before{left:50%;transform:translateX(-50%)}
  .story__father figcaption strong{font-size:1.45rem}
  .story__father figcaption::after{content:"◆";display:block;margin:2.4rem auto 0;color:var(--terra);font-family:serif;font-size:.72rem;letter-spacing:0}

  /* On phones the booking page is one focused reservation card. */
  .booking-editorial__photo{display:none}
  .booking-editorial{margin:1.4rem auto 0;background:var(--shell)}
  .booking-editorial__content{min-height:calc(100svh - 116px);justify-content:center;padding:2.6rem max(1.35rem,6vw)}
  .booking-editorial__intro h1{font-size:clamp(2.85rem,13vw,3.7rem)}
  .booking-editorial__intro>p{max-width:34ch}
  .booking-editorial__numbers{width:100%}
  .booking .wrap{width:92vw}
  .field,.field-row>*{min-width:0}
  .field input,.field select,.field textarea{display:block;max-width:100%;min-width:0;font-size:16px;min-height:46px}
  .field input[type="date"]{-webkit-appearance:none;appearance:none;width:100%}
  .field textarea{min-height:82px}
  .field-row{gap:0}
  .bsubmit{min-height:50px}
  .callbtn{border-radius:8px;align-items:center;flex-direction:column;gap:.15rem;padding:1rem 1.1rem;text-align:center}
  .callbtn .num{font-size:1.25rem}
  .field-row{grid-template-columns:1fr}
  .intro__img .badge{width:110px;height:110px;left:-16px;bottom:-24px}
  .hero__mark{width:92px}
  #find-details{scroll-margin-top:84px}

  /* Booking: phone-first, flush below the sticky navigation */
  .booking{padding:12px;min-height:calc(100dvh - 76px);background:#e9e1d2}
  .booking-editorial{position:relative;width:100%;height:calc(100dvh - 100px);min-height:0;margin:0;border:10px solid var(--shell);outline:1px solid rgba(154,106,60,.42);background:var(--ink);box-shadow:0 28px 60px -44px rgba(28,23,16,.7)}
  .booking-editorial::before{display:none}
  .booking-editorial__photo{aspect-ratio:4/4.45}
  .booking-editorial__photo figcaption{top:1.65rem;width:86%;max-width:none;font-size:1rem;line-height:1.25;text-align:center;letter-spacing:.09em}
  .booking-editorial__content{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;height:100%;min-height:0;padding:clamp(1.35rem,3.2vh,2rem) max(1.45rem,7vw) clamp(1.9rem,4.4vh,2.75rem);text-align:center;color:var(--shell)}
  .booking-editorial__content[data-reveal]{opacity:1!important;transform:none!important;transition:none!important}
  .booking-editorial__intro .eyebrow{margin-bottom:clamp(.5rem,1.2vh,.75rem);color:var(--terra-light)}
  .booking-editorial__intro h1{margin-bottom:clamp(.55rem,1.25vh,.8rem);font-size:clamp(2.6rem,12.4vw,3.35rem);line-height:.88;color:var(--shell)}
  .booking-editorial__intro>p{max-width:31ch;margin:0 auto;font-size:clamp(.86rem,4vw,.98rem);line-height:1.42;color:rgba(251,247,239,.74)}
  .booking-editorial__numbers{position:relative;width:100%;margin:clamp(.65rem,1.5vh,.9rem) 0 clamp(.65rem,1.4vh,.85rem);padding:.1rem 0;border-top:1px solid rgba(251,247,239,.24);border-bottom:1px solid rgba(251,247,239,.24)}
  .booking-editorial__numbers::before{display:none}
  .booking-number{display:block;min-height:0;padding:clamp(.55rem,1.2vh,.7rem) 0;border:0;color:var(--shell);text-align:center}
  .booking-number:first-child{border-bottom:1px solid rgba(251,247,239,.14)}
  .booking-number::after{content:"Toucher pour appeler";display:block;margin-top:.22rem;font-size:.5rem;letter-spacing:.2em;text-transform:uppercase;color:var(--terra-light)}
  .booking-number__label{display:block;margin-bottom:.15rem;font-size:.54rem;line-height:1.2;letter-spacing:.2em;text-transform:uppercase;color:rgba(251,247,239,.5)}
  .booking-number__value{display:block;white-space:nowrap;font-size:clamp(1.55rem,7.35vw,1.85rem);line-height:1;text-align:center}
  .booking-number__arrow{display:none}
  .booking-editorial__note{display:block;margin:0;padding:.72rem 0 0;text-align:center}
  .booking-editorial__note::before{content:"";display:block;width:44px;height:2px;margin:0 auto .65rem;background:var(--terra)}
  .booking-editorial__note .eyebrow{display:none}
  .booking-editorial__note p{max-width:34ch;margin:0 auto;font-size:clamp(.72rem,3.35vw,.82rem);line-height:1.4;color:rgba(251,247,239,.68)}
  .booking-editorial__note .booking-editorial__address{display:none}
}

@media(max-width:560px) and (max-height:700px){
  .booking{padding:8px}
  .booking-editorial{height:calc(100dvh - 92px);border-width:8px}
  .booking-editorial__content{padding:1rem 1.35rem 1.3rem}
  .booking-editorial__intro h1{font-size:2.35rem}
  .booking-editorial__intro>p{font-size:.8rem;line-height:1.35}
  .booking-number{padding:.42rem 0}
  .booking-number__value{font-size:1.48rem}
  .booking-editorial__note p{font-size:.7rem}
}

@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important}
  [data-reveal]{opacity:1!important;transform:none!important}
  .clip::after{transform:scaleX(0)!important}.clip img{transform:none!important}
  .stagger .w i{transform:none!important}
  .hero h1 .line span{transform:none!important}
}
