/* Hallmark · macrostructure: Split Studio · genre: editorial · theme: Atelier · nav: N9 · footer: Ft1 · enrichment: food photography
   Pre-emit critique: P4 H5 E4 S4 R4 V4 */
@import url('tokens.css');
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px;overflow-x:clip}body{margin:0;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);line-height:1.7;overflow-x:clip}body.modal-open{overflow-y:hidden}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}img{display:block;width:100%;height:100%;object-fit:cover}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--font-display);font-weight:400;line-height:1.06;letter-spacing:-.045em;font-style:normal;overflow-wrap:anywhere;min-width:0}h2{margin-bottom:24px}h2 span{color:var(--color-accent)}p{color:var(--color-muted)}:focus-visible{outline:3px solid var(--color-accent);outline-offset:5px}::selection{background:var(--color-accent);color:var(--color-white)}.wrap{width:min(1320px,calc(100% - 112px));margin-inline:auto}.section{padding-block:112px}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:var(--color-paper);padding:12px}.skip-link:focus{top:12px}.header{height:116px;display:flex;justify-content:space-between;align-items:center;gap:32px}.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);letter-spacing:-1.2px;line-height:1.05;flex-shrink:0}.brand svg{width:32px;height:40px;fill:none;stroke:var(--color-accent);stroke-width:1.5}.brand small{display:block;font-family:var(--font-body);letter-spacing:2.6px;text-align:center;margin-top:10px;font-weight:600}.header nav{display:flex;align-items:center;gap:32px;font-weight:600}.header nav>a:not(.button){position:relative;padding-block:12px;white-space:nowrap}.header nav>a:not(.button):after,.text-link:after{content:'';position:absolute;bottom:5px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform var(--dur-fast) var(--ease-out)}.header nav>a:hover:after,.text-link:hover:after{transform:scaleX(1)}.button{display:inline-flex;justify-content:center;align-items:center;gap:36px;padding:17px 26px;border:1px solid var(--color-accent);border-radius:var(--radius-pill);background:var(--color-accent);color:var(--color-white);font-weight:600;white-space:nowrap;transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.button:hover{background:var(--color-accent-dark);transform:translateY(-3px)}.button:active{transform:translateY(0) scale(.98)}.button span,.text-link span{font-size:20px;font-weight:400;line-height:1}.button.small{padding:13px 21px;gap:24px}.nav-toggle{display:none}.hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:40px;padding-top:22px;padding-bottom:68px;min-height:701px}.hero-copy{padding-top:43px;position:relative}.eyebrow{display:flex;align-items:center;gap:9px;font-weight:700;letter-spacing:1.7px;margin-bottom:25px;color:var(--color-olive)}.tiny-sun{font-size:24px;color:var(--color-accent);line-height:1}.hero h1{margin-bottom:25px;line-height:1.01;letter-spacing:-.05em}.hero h1>span{color:var(--color-accent)}.hero-copy>p{line-height:1.9;margin-bottom:27px}.hero-actions{display:flex;align-items:center;gap:29px}.text-link{position:relative;display:inline-flex;align-items:center;gap:23px;font-weight:600;padding-block:10px;white-space:nowrap}.hero-note{display:flex;align-items:center;gap:15px;margin-top:47px;line-height:1.8;color:var(--color-muted)}.note-icon{font-size:36px;line-height:1;color:var(--color-olive)}.hero-note strong{font-weight:600;color:var(--color-ink)}.hero-visual{position:relative;min-width:0;height:594px}.hero-photo{border-radius:200px 200px 12px 12px;object-position:50% 50%;filter:saturate(.85);animation:photo-in 1.3s var(--ease-out) both}.photo-caption{position:absolute;bottom:25px;right:24px;display:flex;align-items:center;gap:9px;padding:10px 16px;border:1px solid var(--color-white);border-radius:var(--radius-pill);color:var(--color-white);background:var(--color-overlay)}.caption-dot{width:5px;height:5px;background:var(--color-white);border-radius:50%}.round-stamp{position:absolute;width:125px;height:125px;left:-59px;bottom:52px;border:7px solid var(--color-paper);border-radius:50%;background:var(--color-olive);color:var(--color-paper)}.round-stamp svg{width:100%;height:100%;fill:currentColor;font-family:var(--font-body);font-size:10px;font-weight:600;letter-spacing:2px}.round-stamp>span{position:absolute;inset:0;display:grid;place-items:center;font-size:47px}.values-strip{border-block:1px solid var(--color-rule);background:var(--color-soft);padding:19px 0;overflow:hidden}.values-strip>div{display:flex;align-items:center;justify-content:space-evenly;gap:35px;white-space:nowrap;font-family:var(--font-display);min-width:950px}.values-strip span{font-size:24px;color:var(--color-accent)}.story{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:120px;align-items:center}.story-photos{height:440px;position:relative;margin-right:32px}.story-photos>img{width:78%;border-radius:var(--radius-sm);object-position:center;filter:saturate(.65)}.story-photo-small{width:48%;height:255px;position:absolute;right:0;bottom:-30px;border:8px solid var(--color-paper);border-radius:var(--radius-sm)}.photo-label{position:absolute;bottom:-52px;left:0;letter-spacing:.4px;color:var(--color-muted)}.section-label{display:block;color:var(--color-accent);letter-spacing:2px;font-weight:700;margin-bottom:18px}.story-copy{padding-block:12px}.story-copy p{max-width:390px;margin-bottom:18px;line-height:1.95}.story-copy .text-link{margin-top:9px}.menu-section{background:var(--color-soft)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:35px}.section-heading h2{margin:0}.section-heading>p{line-height:1.8;margin-bottom:5px}.menu-controls{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:40px;margin-bottom:34px}.menu-tabs{display:flex;flex-wrap:wrap;gap:7px}.menu-tabs button{background:none;border:1px solid transparent;border-radius:var(--radius-pill);font-weight:600;padding:11px 18px;color:var(--color-muted);white-space:nowrap;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.menu-tabs button[aria-selected=true]{background:var(--color-olive);color:var(--color-white)}.menu-tabs button:hover:not([aria-selected=true]){border-color:var(--color-rule);background:var(--color-paper)}.menu-tabs button:active{transform:scale(.97)}.menu-season{font-family:var(--font-display);white-space:nowrap}.menu-season>span{font-size:28px;display:inline-block;transform:rotate(-15deg);margin-left:12px}.menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;min-height:370px}.dish{animation:rise-in .5s var(--ease-out) both}.dish:nth-child(2){animation-delay:70ms}.dish:nth-child(3){animation-delay:140ms}.dish-image{height:270px;overflow:hidden;border-radius:var(--radius-sm);position:relative;margin-bottom:20px}.dish-image img{transition:transform var(--dur-slow) var(--ease-out);filter:saturate(.85)}.dish:hover img{transform:scale(1.05)}.dish-tag{position:absolute;top:15px;left:15px;border-radius:var(--radius-pill);background:var(--color-paper);padding:5px 12px;font-weight:600}.dish-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.dish h3{font-family:var(--font-display);letter-spacing:-.5px;font-weight:400;margin:0}.dish-price{font-weight:600}.dish>p{line-height:1.8;margin:8px 0 0;max-width:320px}.menu-footnote{border-top:1px solid var(--color-rule);padding-top:23px;margin:31px 0 0;display:flex;justify-content:space-between;gap:20px}.gallery-grid{display:grid;grid-template-columns:minmax(0,1.35fr) repeat(2,minmax(0,1fr));gap:20px;margin-top:43px;align-items:center}.gallery-image{position:relative;padding:0;border:0;border-radius:var(--radius-sm);height:300px;overflow:hidden;background:var(--color-soft)}.gallery-image.tall{height:390px}.gallery-image img{transition:transform var(--dur-slow) var(--ease-out);filter:saturate(.75)}.gallery-image:hover img{transform:scale(1.06)}.gallery-image span{position:absolute;bottom:18px;left:20px;color:var(--color-white);background:var(--color-overlay);padding:6px 12px;border-radius:var(--radius-pill);opacity:0;transform:translateY(8px);transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.gallery-image:hover span,.gallery-image:focus-visible span{opacity:1;transform:translateY(0)}.reservation{background:var(--color-olive);color:var(--color-paper);overflow:hidden}.reservation-inner{position:relative;text-align:center;padding-block:85px}.reservation .section-label{color:var(--color-paper);opacity:.7}.reservation h2{margin-bottom:22px}.reservation h2 span{color:var(--color-paper)}.reservation p{color:var(--color-paper);opacity:.75;line-height:1.9;margin-bottom:28px}.button.light{background:var(--color-paper);border-color:var(--color-paper);color:var(--color-ink)}.button.light:hover{background:var(--color-soft)}.reservation-note{display:block;margin-top:21px;opacity:.7}.reservation-flower{position:absolute;left:-20px;top:100px;font-size:260px;line-height:1;color:var(--color-paper);opacity:.08;transform:rotate(10deg);pointer-events:none}.visit{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:80px;align-items:center}.visit-copy>p{}.visit-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:32px}.visit-details h3{font-weight:700;margin-bottom:13px}.visit-details p,.visit-details dl{line-height:1.9;margin:0}.visit-details .text-link{margin-top:10px;gap:20px}.visit-details dl>div{display:flex;justify-content:space-between;gap:15px;color:var(--color-muted)}.visit-details dd{margin:0;white-space:nowrap}.visit-image{height:400px;position:relative}.visit-image img{border-radius:160px 160px 4px 4px;filter:saturate(.7)}.visit-image>span{position:absolute;bottom:18px;left:20px;background:var(--color-paper);padding:8px 14px;border-radius:var(--radius-pill)}.visit .demo-note{margin-top:30px;margin-bottom:0}.footer{border-top:1px solid var(--color-rule);padding-block:37px;display:grid;grid-template-columns:1.2fr 1fr 1fr;align-items:center;gap:22px}.footer-brand{display:block;}.footer-brand span{display:block;font-family:var(--font-body);letter-spacing:1.8px;margin-top:11px}.footer>p{margin:0}.footer>div{display:flex;justify-content:flex-end;gap:25px;}.footer>small{grid-column:1/-1;color:var(--color-muted);padding-top:16px}.footer a:hover{color:var(--color-accent)}dialog{border:0;color:var(--color-ink);background:var(--color-paper);border-radius:var(--radius-md);padding:40px;max-height:90dvh;max-width:calc(100% - 32px);box-shadow:0 20px 100px var(--color-shadow)}dialog::backdrop{background:var(--color-overlay)}dialog[open]{animation:rise-in .3s var(--ease-out)}.dialog-close{position:absolute;right:12px;top:8px;border:0;background:var(--color-paper);color:var(--color-ink);font-size:30px;line-height:1;width:44px;height:44px;border-radius:50%;z-index:2}.dialog-close:hover{color:var(--color-accent)}.lightbox{padding:12px;width:min(850px,calc(100% - 32px))}.lightbox>img{max-height:70dvh;object-fit:contain;border-radius:var(--radius-sm)}.lightbox>p{text-align:center;margin:12px 0 3px}.booking-dialog{width:490px}.booking-dialog h2{margin-bottom:14px}.booking-dialog>p{}.booking-dialog .section-label{padding-right:12px;margin-top:15px}.booking-dialog form{display:grid;gap:16px;margin-top:25px}.booking-dialog label{display:grid;gap:7px;font-weight:600}.booking-dialog input,.booking-dialog select{border:1px solid var(--color-rule);border-radius:var(--radius-sm);min-width:0;width:100%;padding:12px;color:var(--color-ink);background:var(--color-white);}.booking-dialog input:user-invalid{border-color:var(--color-accent)}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}#booking-result{padding:20px 0;color:var(--color-olive)}#booking-result .text-link{display:flex;margin-top:16px}.reveal{opacity:1;transform:none}.js-motion .reveal{opacity:0;transform:translateY(22px);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}.js-motion .reveal.visible{opacity:1;transform:none}.hero-copy{animation:rise-in 1s var(--ease-out) both}@keyframes rise-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes photo-in{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
@media(min-width:1500px){.hero{gap:70px}.hero h1{}}
@media(max-width:1150px){.wrap{width:calc(100% - 72px)}.header nav{gap:21px}.hero{gap:24px;min-height:640px}.hero-visual{height:540px}.hero-copy{padding-top:40px}.hero h1{}.hero-copy>p{}.hero-note{margin-top:35px}.story{gap:65px}.story-photos{height:390px}.menu-season{display:none}.dish-image{height:220px}.dish h3{}.visit{gap:40px}.visit-details{gap:20px}.gallery-image{height:270px}.gallery-image.tall{height:340px}}
@media(max-width:850px){.wrap{width:calc(100% - 48px)}.header{height:95px}.header nav{gap:18px}.header nav>a:not(.button){}.header .button{padding:12px 16px;gap:14px}.brand{}.brand svg{width:25px}.brand small{}.hero{gap:26px;min-height:570px;padding-bottom:50px}.hero-visual{height:470px}.hero-copy{padding-top:28px}.hero .eyebrow{letter-spacing:1px}.hero h1{}.hero-copy>p{}.desktop-break{display:none}.hero-actions{gap:18px;align-items:flex-start;flex-direction:column}.hero-actions .button{padding:14px 21px;gap:25px}.hero-actions .text-link{}.hero-note{margin-top:18px;}.round-stamp{width:100px;height:100px;left:-44px;bottom:35px}.round-stamp>span{font-size:40px}.photo-caption{bottom:15px;right:12px;padding:8px 10px}.section{padding-block:80px}.story{gap:35px}.story-photos{height:350px;margin-right:0}.story-photo-small{height:200px;width:54%}.story-copy p{}.story-copy h2{}.section-heading>p{}.dish-image{height:195px}.menu-grid{gap:20px}.dish h3{}.gallery-grid{gap:14px}.gallery-image{height:235px}.gallery-image.tall{height:300px}.visit{gap:30px}.visit-details{grid-template-columns:1fr}.visit-image{height:430px}.visit-details dl{max-width:230px}.footer>div{gap:15px}}
@media(max-width:680px){html{scroll-padding-top:20px}.wrap{width:calc(100% - 40px)}.header{height:88px}.brand{}.brand svg{width:29px}.brand small{}.nav-toggle{display:flex;width:44px;height:44px;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:none;border:1px solid var(--color-rule);border-radius:50%;z-index:12}.nav-toggle span{height:1px;width:17px;background:var(--color-ink);transition:transform var(--dur-fast) var(--ease-out)}.nav-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.nav-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.header nav{display:none;position:absolute;top:77px;left:20px;right:20px;padding:20px;background:var(--color-soft);z-index:10;box-shadow:0 15px 25px var(--color-shadow);border-radius:var(--radius-md)}.header nav.open{display:flex;flex-direction:column;align-items:stretch;gap:8px;animation:rise-in .25s var(--ease-out)}.header nav>a:not(.button){padding:10px}.hero{grid-template-columns:minmax(0,1fr);gap:30px;padding-top:16px;padding-bottom:43px}.hero-copy{padding-top:10px}.hero .eyebrow{letter-spacing:1.4px;margin-bottom:24px}.hero h1{line-height:1.03;margin-bottom:24px}.hero-copy>p{max-width:340px}.hero-actions{flex-direction:row;align-items:center;gap:22px}.hero-actions .button{padding:15px 20px;gap:24px}.hero-actions .text-link{gap:12px}.hero-note{display:none}.hero-visual{height:420px;margin:8px 0 0 18px}.hero-photo{border-radius:180px 180px 8px 8px}.round-stamp{left:-24px;bottom:29px;width:105px;height:105px}.photo-caption{bottom:23px;right:16px;}.values-strip{padding-block:15px}.values-strip>div{justify-content:flex-start;min-width:850px;gap:28px;transform:translateX(-35px)}.section{padding-block:65px}.story{grid-template-columns:minmax(0,1fr);gap:70px}.story-photos{height:365px;margin-right:15px}.story-photo-small{height:220px;width:47%;bottom:-23px}.photo-label{bottom:-43px}.story-copy h2{}.story-copy p{max-width:100%}.section-label{}.section-heading{display:block;margin-bottom:25px}.section-heading h2{}.section-heading>p{margin-top:18px;margin-bottom:0;}.section-heading>p br{display:none}.menu-controls{margin-block:28px}.menu-tabs{gap:5px}.menu-tabs button{padding:12px 13px;min-height:44px}.menu-grid{grid-template-columns:minmax(0,1fr);gap:32px;min-height:0}.dish-image{height:290px;margin-bottom:16px}.dish h3{}.dish>p{max-width:100%}.dish-price{}.menu-footnote{display:block;line-height:1.9;}.menu-footnote>span{display:block;margin-top:8px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:28px}.gallery-image.tall{grid-column:1/-1;height:330px}.gallery-image{height:210px}.gallery-image span{opacity:1;transform:none;left:8px;bottom:10px;padding:5px 8px}.reservation-inner{padding-block:68px}.reservation h2{}.reservation p{}.reservation-note{}.reservation-flower{font-size:180px;left:-80px;top:120px}.visit{grid-template-columns:minmax(0,1fr);gap:35px}.visit-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.visit-image{height:345px}.visit-details dl>div{display:block;margin-bottom:7px}.visit-details dd{font-weight:600}.footer{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px;padding-block:30px}.footer>p{text-align:right}.footer>div{grid-column:1/-1;justify-content:flex-start;gap:25px;}.footer>small{padding-top:0}.booking-dialog{padding:30px 24px}.booking-dialog h2{}.form-row{gap:10px}.booking-dialog .section-label{max-width:230px}.lightbox{padding:8px}.lightbox>p{}.js-motion .reveal{transform:translateY(12px)}}
@media(max-width:360px){.wrap{width:calc(100% - 32px)}.hero h1{}.hero-actions{gap:15px}.hero-actions .button{padding-inline:15px;gap:18px}.hero-actions .text-link{gap:8px}.hero-visual{height:365px}.photo-caption{right:10px}.visit-details{grid-template-columns:minmax(0,1fr)}.visit-details dl>div{display:flex}.story-photos{height:315px}.story-photo-small{height:190px}.dish-image{height:245px}.gallery-image{height:170px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.js-motion .reveal{opacity:1;transform:none}.dish:hover img,.gallery-image:hover img,.button:hover{transform:none}}

.button{color:var(--color-accent-ink)}.button.light{color:var(--color-ink)}.button:hover{transform:none}a:active,button:active{opacity:.8}.footer a{white-space:nowrap}.reservation :focus-visible{outline-color:var(--color-paper)}


/* Shared typography: every text role uses the same scale at every breakpoint. */
body {
  font-size: var(--text-base);
  line-height: var(--leading-body);
  letter-spacing: 0;
}
h1, h2 {
  line-height: var(--leading-heading);
  letter-spacing: var(--tracking-heading);
}
h2, .story-copy h2, .section-heading h2, .reservation h2, .booking-dialog h2 {
  font-size: var(--text-section);
  margin-bottom: var(--space-md);
}
.hero h1 {
  font-size: var(--text-display);
  line-height: var(--leading-heading);
  letter-spacing: var(--tracking-display);
  margin-bottom: var(--space-md);
}
.brand, .footer-brand {
  font-size: var(--text-brand);
  letter-spacing: var(--tracking-heading);
  line-height: 1.1;
}
.brand small, .footer-brand span {
  font-size: var(--text-brand-caption);
  line-height: var(--leading-ui);
  letter-spacing: .18em;
  margin-top: var(--space-xs);
}
.eyebrow, .hero .eyebrow, .section-label, .booking-dialog .section-label {
  font-size: var(--text-caption);
  font-weight: 700;
  line-height: var(--leading-ui);
  letter-spacing: var(--tracking-label);
  margin-bottom: var(--space-sm);
}
.hero-copy > p, .story-copy p, .section-heading > p,
.reservation p, .visit-copy > p, .booking-dialog > p, #booking-result {
  font-size: var(--text-base);
  line-height: var(--leading-body);
  letter-spacing: 0;
}
.hero-copy > p, .story-copy p, .reservation p, .visit-copy > p {
  max-width: 42ch;
  margin-bottom: var(--space-md);
}
.story-copy p { max-width: 46ch; }
.reservation p { margin-inline: auto; }
.section-heading h2 { margin-bottom: 0; }
.section-heading > p { margin-bottom: 0; max-width: 34ch; }
.section-heading { margin-bottom: var(--space-lg); }
.hero-actions { gap: var(--space-md); }
.hero-note { margin-top: var(--space-lg); }
.hero-note, .photo-caption, .photo-label, .dish-tag,
.menu-footnote, .gallery-image span, .reservation-note,
.visit-image > span, .visit .demo-note, .footer > small, .lightbox > p {
  font-size: var(--text-caption);
  line-height: 1.6;
  letter-spacing: 0;
}
.photo-label { bottom: -56px; }
.header nav, .header nav > a:not(.button),
.button, .hero-actions .button, .text-link,
.hero-actions .text-link, .visit-details .text-link,
.menu-tabs button, .footer > div {
  font-size: var(--text-sm);
  font-weight: 600;
  line-height: var(--leading-ui);
  letter-spacing: 0;
}
.button, .button.small, .header .button, .hero-actions .button {
  min-height: 48px;
  padding: 12px 24px;
  gap: var(--space-md);
}
.text-link, .hero-actions .text-link, .visit-details .text-link {
  min-height: 44px;
  gap: var(--space-sm);
  padding-block: 12px;
}
.menu-tabs { gap: var(--space-xs); }
.menu-tabs button { padding: 12px 16px; min-height: 44px; }
.menu-controls { margin-block: var(--space-lg); }
.menu-season { font-size: var(--text-lg); line-height: var(--leading-ui); }
.dish h3 {
  font-size: var(--text-card);
  line-height: 1.25;
  letter-spacing: var(--tracking-heading);
}
.dish-price { font-size: var(--text-sm); line-height: 1.5; flex-shrink: 0; }
.dish > p, .visit-details p, .visit-details dl, .footer > p,
.booking-dialog label, .booking-dialog input, .booking-dialog select {
  font-size: var(--text-sm);
  line-height: var(--leading-body);
  letter-spacing: 0;
}
.dish > p { margin-top: var(--space-xs); max-width: none; }
.dish-image { margin-bottom: var(--space-sm); }
.visit-details h3 {
  font-size: var(--text-sm);
  line-height: var(--leading-ui);
  margin-bottom: var(--space-sm);
}
.visit-details { margin-top: var(--space-lg); }
.visit-details dl > div { gap: var(--space-xs); }
.visit-details p { margin-bottom: 0; }
.reservation-note { margin-top: var(--space-md); }
.booking-dialog .section-label { padding-right: 12px; max-width: 32ch; }
.booking-dialog input, .booking-dialog select { min-height: 48px; }
.booking-dialog label { gap: var(--space-xs); }
.booking-dialog form { gap: var(--space-sm); margin-top: var(--space-md); }

/* Open the navigation earlier instead of shrinking its text on tablets. */
@media (min-width: 681px) and (max-width: 960px) {
  .header { position: relative; }
  .nav-toggle {
    display: flex; width: 44px; height: 44px;
    flex-direction: column; align-items: center; justify-content: center; gap: 6px;
    background: none; border: 1px solid var(--color-rule); border-radius: 50%; z-index: 12;
  }
  .nav-toggle span { height: 1px; width: 17px; background: var(--color-ink); }
  .nav-toggle[aria-expanded=true] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .nav-toggle[aria-expanded=true] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .header nav {
    display: none; position: absolute; top: 80px; left: 0; right: 0;
    padding: var(--space-md); background: var(--color-soft);
    border-radius: var(--radius-md); box-shadow: 0 15px 25px var(--color-shadow); z-index: 10;
  }
  .header nav.open { display: flex; flex-direction: column; align-items: stretch; gap: var(--space-xs); }
  .header nav > a:not(.button) { padding: 12px; }
}
@media (max-width: 850px) {
  .eyebrow, .hero .eyebrow { max-width: 30ch; }
  .tiny-sun { flex-shrink: 0; }
  .hero-note { margin-top: var(--space-md); }
  .story-copy p { max-width: none; }
  .section-heading { display: block; }
  .section-heading > p { margin-top: var(--space-sm); max-width: 45ch; }
  .section-heading > p br { display: none; }
  .menu-tabs { gap: var(--space-xs); }
  .visit-details { grid-template-columns: minmax(0, 1fr); }
  .visit-details dl { max-width: 280px; }
}
@media (max-width: 680px) {
  :root { --text-display: clamp(2.75rem, 11.8vw, 4.5rem); }
  .hero .eyebrow { max-width: none; }
  .hero-copy > p { max-width: 42ch; }
  .hero-actions { flex-wrap: wrap; gap: 8px 24px; }
  .hero-actions .button { gap: var(--space-sm); padding-inline: 20px; }
  .hero-actions .text-link { gap: var(--space-xs); }
  .hero-photo { object-position: 55% center; }
  .photo-caption { max-width: calc(100% - 100px); right: 12px; }
  .photo-caption .caption-dot { flex-shrink: 0; }
  .photo-label { bottom: -56px; }
  .story { gap: 80px; }
  .gallery-image span { left: 8px; right: 8px; font-size: var(--text-caption); }
  .visit-details { gap: var(--space-md); }
  .visit-details dl > div { display: flex; margin-bottom: var(--space-xs); }
  .footer { gap: var(--space-md); }
  .booking-dialog { padding: 32px 24px; }
  .booking-dialog .section-label { max-width: 26ch; }
  .booking-dialog input, .booking-dialog select { font-size: var(--text-base); }
}


/* Airier hero composition, with natural subtitle wrapping. */
.hero {
  gap: var(--space-2xl);
  align-items: center;
  padding-top: var(--space-xl);
  padding-bottom: var(--space-3xl);
  min-height: 0;
}
.hero-copy { padding-block: var(--space-sm); }
.hero .eyebrow { margin-bottom: var(--space-lg); }
.hero h1 {
  font-size: clamp(3rem, 5.8vw, 5.5rem);
  line-height: 1.12;
  letter-spacing: var(--tracking-heading);
  margin-bottom: var(--space-lg);
}
.hero-copy > .hero-subtitle {
  max-width: 50ch;
  margin-bottom: var(--space-lg);
  line-height: 1.8;
  text-wrap: pretty;
}
.hero-actions { gap: var(--space-lg); }
.hero-note { margin-top: 40px; }
.hero-visual { height: 640px; }
@media (min-width: 1500px) {
  .hero { gap: 80px; }
}
@media (min-width: 681px) and (max-width: 960px) {
  .hero { gap: var(--space-lg); padding-top: var(--space-lg); padding-bottom: var(--space-2xl); }
  .hero h1 { font-size: clamp(2.75rem, 5.8vw, 3.5rem); }
  .hero .eyebrow { margin-bottom: var(--space-md); }
  .hero-visual { height: 580px; }
  .hero-actions { gap: var(--space-sm); }
}
@media (max-width: 680px) {
  .hero { gap: 40px; padding-top: var(--space-lg); padding-bottom: var(--space-2xl); }
  .hero-copy { padding: 0; }
  .hero .eyebrow { margin-bottom: var(--space-md); }
  .hero h1 { font-size: var(--text-display); margin-bottom: var(--space-md); }
  .hero-copy > .hero-subtitle { margin-bottom: var(--space-lg); max-width: 42ch; }
  .hero-actions { gap: 12px 24px; }
  .hero-visual { height: 420px; margin-top: 0; }
}
@media (max-width: 360px) {
  .hero-visual { height: 365px; }
}
