/* ============================================================
   Ritter'Hoft — Diana-inspired, Ritter'Hoft palette
   Brand tokens · taupe #A58D79 · white · charcoal #4A4C4C · ink #1A1919 · Avenir Next
   ============================================================ */
:root{
  --white:    #FFFFFF;
  --paper:    #FAF8F5;
  --paper-2:  #EFEAE3;
  --ink:      #1A1919;
  --ink-soft: #000000;
  --ink-faint:#4A4C4C;
  --line:     #E6DFD6;

  /* charcoal = secondary background / dark UI (mapped onto former --teal*) */
  --teal:     #4A4C4C;
  --teal-700: #3A3C3C;
  --teal-900: #4A4C4C;

  /* taupe = nav bar + brand accent (mapped onto former --gold*) */
  --taupe:      #A58D79;
  --gold:       #A58D79;   /* decorative accent / lines */
  --gold-deep:  #7C6249;   /* accent text on light (AA) */
  --gold-bright:#D8C3AE;   /* accent on dark */

  --radius:    6px;
  --radius-lg: 12px;
  --shadow-sm: 0 1px 2px rgba(26,25,25,.04), 0 6px 18px rgba(26,25,25,.05);
  --shadow-md: 0 8px 24px rgba(26,25,25,.07), 0 24px 56px rgba(26,25,25,.10);
  --shadow-lg: 0 30px 70px rgba(26,25,25,.20);
  --ease: cubic-bezier(.22,.61,.36,1);

  --serif: "Avenir Next","Avenir","Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --sans:  "Avenir Next","Avenir","Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --logo:  "Cormorant Garamond", Georgia, serif;

  --maxw: 1320px;
  --gutter: clamp(20px, 5vw, 72px);
}
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{ margin:0; font-family:var(--sans); font-weight:400; font-size:16.5px; line-height:1.75; color:var(--ink); background:var(--white); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden; }
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{ font-family:var(--serif); font-weight:500; line-height:1.1; margin:0; letter-spacing:0; text-wrap:balance; }
p{ margin:0; }
:focus-visible{ outline:2px solid var(--gold-deep); outline-offset:3px; border-radius:3px; }

.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
.section{ padding-block:clamp(72px,9vw,128px); }

.eyebrow{ display:inline-flex; align-items:center; gap:12px; font-size:.7rem; font-weight:500; letter-spacing:.3em; text-transform:uppercase; color:var(--gold-deep); }
.eyebrow::before{ content:""; width:26px; height:1px; background:var(--gold); }
.eyebrow.center{ justify-content:center; }
.eyebrow.center::after{ content:""; width:26px; height:1px; background:var(--gold); }
.eyebrow.light{ color:var(--gold-bright); }
.eyebrow.light::before,.eyebrow.light.center::after{ background:var(--gold-bright); }
.h2{ font-size:clamp(2.1rem,4.4vw,3.4rem); margin-top:18px; }
.lede{ font-size:clamp(1.02rem,1.4vw,1.16rem); color:#000000; font-weight:400; line-height:1.8; }
.accent{ font-style:italic; color:var(--gold-deep); }

.btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; font-weight:500; font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; padding:15px 30px; border-radius:var(--radius); border:1px solid transparent; min-height:48px; white-space:nowrap; transition:transform .3s var(--ease), background .25s, color .25s, box-shadow .3s, border-color .25s; }
.btn-gold{ background:var(--gold); color:#1A1919; }
.btn-gold:hover{ background:#917a61; color:#fff; transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn-teal{ background:var(--teal); color:#FFFFFF; }
.btn-teal:hover{ background:var(--teal-700); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn-outline{ background:transparent; color:var(--ink); border-color:var(--line); }
.btn-outline:hover{ border-color:var(--teal); color:var(--teal); transform:translateY(-2px); }
.btn-light{ background:rgba(255,255,255,.08); color:#fff; border-color:rgba(255,255,255,.5); backdrop-filter:blur(4px); }
.btn-light:hover{ background:rgba(255,255,255,.16); transform:translateY(-2px); }
.link-arrow{ display:inline-flex; align-items:center; gap:9px; font-size:.72rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-deep); }
.link-arrow svg{ width:16px; height:16px; transition:transform .3s var(--ease); }
.link-arrow:hover svg{ transform:translateX(4px); }

/* icon divider */
.divider{ display:flex; align-items:center; justify-content:center; gap:16px; color:var(--gold); }
.divider span{ height:1px; width:54px; background:var(--line); }
.divider svg{ width:34px; height:34px; }

.skip-link{ position:fixed; top:-64px; left:16px; z-index:200; background:var(--teal); color:#fff; padding:13px 22px; border-radius:var(--radius); font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; transition:top .3s var(--ease); box-shadow:var(--shadow-md); }
.skip-link:focus{ top:16px; }

/* ============ Topbar ============ */
.topbar{ background:var(--teal-900); color:#FFFFFF; font-size:.74rem; letter-spacing:.04em; }
.topbar .wrap{ display:flex; align-items:center; justify-content:space-between; gap:14px; min-height:42px; padding-block:8px; }
.topbar .t-left{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.topbar .stars{ color:var(--gold-bright); letter-spacing:.16em; }
.topbar .dot{ width:3px; height:3px; border-radius:50%; background:rgba(217,224,229,.4); }
.topbar a{ display:inline-flex; align-items:center; gap:7px; color:#FFFFFF; transition:color .25s; }
.topbar a:hover{ color:var(--gold-bright); }
.topbar svg{ width:13px; height:13px; }
@media (max-width:760px){ .topbar .hide-sm{ display:none; } }

/* ============ Header ============ */
.header{ position:sticky; top:0; z-index:60; background:var(--taupe); transition:box-shadow .4s var(--ease); }
.header.scrolled{ box-shadow:0 6px 24px rgba(26,25,25,.18); }
.nav{ display:flex; align-items:center; justify-content:space-between; gap:22px; min-height:82px; }
.brand{ display:flex; align-items:center; gap:13px; line-height:1; color:#fff; }
.brand .mark{ width:42px; height:46px; flex:0 0 auto; }
.brand .wm{ display:flex; flex-direction:column; gap:4px; }
.brand .stars{ font-size:.58rem; letter-spacing:.34em; color:#fff; opacity:.92; }
.brand .name{ font-family:var(--logo); font-weight:600; font-size:1.6rem; letter-spacing:.16em; line-height:.9; }
.menu{ display:flex; align-items:center; gap:2px; }
.menu a{ font-size:.76rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.9); padding:10px 13px; position:relative; transition:color .25s; }
.menu a::after{ content:""; position:absolute; left:13px; right:13px; bottom:8px; height:1.5px; background:#fff; transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease); }
.menu a:hover::after,.menu a.active::after{ transform:scaleX(1); }
.menu a:hover,.menu a.active{ color:#fff; }
.nav-cta{ display:flex; align-items:center; gap:12px; }
.nav-cta .btn-teal{ background:#fff; color:var(--ink); border-color:#fff; }
.nav-cta .btn-teal:hover{ background:rgba(255,255,255,.86); color:var(--ink); }
.nav-cta .btn-outline{ border-color:rgba(255,255,255,.55); color:#fff; }
.nav-cta .btn-outline:hover{ border-color:#fff; background:rgba(255,255,255,.12); color:#fff; }
.lang-switcher{ position:relative; display:inline-flex; align-items:center; }
.lang-current{ height:38px; min-width:72px; display:inline-flex; align-items:center; justify-content:center; gap:6px; border:1px solid rgba(255,255,255,.36); border-radius:999px; background:rgba(255,255,255,.12); color:#fff; font-family:var(--sans); font-size:.72rem; line-height:1; letter-spacing:.08em; font-weight:600; padding:0 12px; cursor:pointer; transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease); }
.lang-current::after{ content:""; width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translateY(-2px); margin-left:2px; }
.lang-current:hover,.lang-switcher.open .lang-current{ background:#fff; color:var(--ink); border-color:#fff; }
.lang-menu{ position:absolute; top:calc(100% + 8px); right:0; min-width:96px; padding:6px; border:1px solid rgba(255,255,255,.32); border-radius:18px; background:var(--taupe); box-shadow:0 14px 34px rgba(26,25,25,.22); opacity:0; transform:translateY(-4px); pointer-events:none; transition:opacity .2s var(--ease), transform .2s var(--ease); z-index:90; }
.lang-switcher.open .lang-menu,.lang-switcher:focus-within .lang-menu{ opacity:1; transform:translateY(0); pointer-events:auto; }
.lang-pill{ min-width:74px; height:34px; display:inline-flex; align-items:center; justify-content:center; gap:5px; border-radius:999px; color:#fff; font-family:var(--sans); font-size:.72rem; line-height:1; letter-spacing:.08em; font-weight:600; transition:background .25s var(--ease), color .25s var(--ease), transform .25s var(--ease); }
.lang-menu .lang-pill{ width:100%; }
.lang-pill span,.lang-current span{ font-size:1rem; line-height:1; }
.lang-pill b,.lang-current b{ font-weight:600; }
.lang-pill:hover,.lang-pill.active{ background:#fff; color:var(--ink); transform:translateY(-1px); }
.burger{ display:none; width:46px; height:46px; border:1px solid rgba(255,255,255,.5); background:transparent; border-radius:var(--radius); padding:0; align-items:center; justify-content:center; }
.burger span,.burger span::before,.burger span::after{ display:block; width:20px; height:1.5px; background:#fff; transition:.3s; }
.burger span{ position:relative; }
.burger span::before,.burger span::after{ content:""; position:absolute; left:0; }
.burger span::before{ top:-6px; } .burger span::after{ top:6px; }
.burger[aria-expanded="true"] span{ background:transparent; }
.burger[aria-expanded="true"] span::before{ top:0; transform:rotate(45deg); }
.burger[aria-expanded="true"] span::after{ top:0; transform:rotate(-45deg); }
@media (max-width:1140px){ .menu,.nav-cta .btn-resto,.nav-cta .lang-switcher{ display:none; } .burger{ display:inline-flex; } }
@media (max-width:560px){ .nav-cta .btn-teal{ display:none; } }

.drawer{ position:fixed; inset:0; z-index:70; background:var(--white); transform:translateX(100%); transition:transform .45s var(--ease); display:flex; flex-direction:column; padding:92px var(--gutter) 40px; overflow-y:auto; }
.drawer.open{ transform:translateX(0); }
.drawer a{ font-family:var(--serif); font-size:1.7rem; color:var(--ink); padding:14px 0; border-bottom:1px solid var(--line); }
.drawer a:hover{ color:var(--gold-deep); }
.drawer .btn{ margin-top:24px; }
.drawer-lang{ display:flex; gap:8px; justify-content:center; margin:10px 0 12px; }
.drawer-lang .lang-pill{ color:var(--ink); border:1px solid var(--line); background:var(--paper); padding:0; border-bottom:0; font-family:var(--sans); font-size:.72rem; }
.drawer-lang .lang-pill:hover,.drawer-lang .lang-pill.active{ background:var(--taupe); color:#fff; }
.drawer-close{ position:absolute; top:24px; right:var(--gutter); width:46px; height:46px; border-radius:var(--radius); border:1px solid var(--line); background:#fff; font-size:1.3rem; color:var(--ink); }
body.no-scroll{ overflow:hidden; }

/* ============ Hero ============ */
.hero{ position:relative; min-height:min(86vh,880px); display:flex; align-items:center; justify-content:center; text-align:center; isolation:isolate; }
.hero__bg{ position:absolute; inset:0; z-index:-2; overflow:hidden; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; transform:scale(1.06); animation:zoom 20s ease-out forwards; }
@keyframes zoom{ to{ transform:scale(1); } }
.hero__scrim{ position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(16,30,40,.5) 0%, rgba(16,30,40,.22) 38%, rgba(16,30,40,.42) 100%); }
.hero__inner{ color:#fff; padding-block:60px; max-width:840px; }
.hero__inner .eyebrow{ color:#E7D9CC; justify-content:center; }
.hero__inner .eyebrow::before,.hero__inner .eyebrow::after{ background:var(--gold-bright); }
.hero h1{ font-size:clamp(2.9rem,7vw,5.6rem); color:#fff; margin-top:22px; letter-spacing:-.01em; text-shadow:0 2px 40px rgba(0,0,0,.3); }
.hero h1 em{ font-style:italic; color:#E7D9CC; }
.hero__sub{ font-size:clamp(1.04rem,1.6vw,1.28rem); color:#fff; max-width:560px; margin:22px auto 0; font-weight:400; }
.hero__actions{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:36px; }
.scrollcue{ position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:1; color:rgba(255,255,255,.8); display:flex; flex-direction:column; align-items:center; gap:9px; font-size:.6rem; letter-spacing:.32em; text-transform:uppercase; }
.scrollcue .line{ width:1px; height:42px; background:linear-gradient(rgba(255,255,255,.7),rgba(255,255,255,0)); animation:cue 2.2s var(--ease) infinite; }
@keyframes cue{ 0%{transform:scaleY(.3);transform-origin:top;opacity:0;} 40%{opacity:1;} 100%{transform:scaleY(1);transform-origin:top;opacity:0;} }
@media (max-width:720px){ .scrollcue{ display:none; } }

/* ============ Experience selector ============ */
.exp{ background:var(--paper); }
.exp__head{ text-align:center; max-width:760px; margin:0 auto 32px; }
.exp__head .eyebrow{ font-size:clamp(.82rem,1.2vw,1.02rem); letter-spacing:.42em; color:var(--gold-deep); }
.exp__head .eyebrow::before,.exp__head .eyebrow.center::after{ width:64px; background:var(--gold); }
.es-tabs{ display:inline-flex; gap:6px; padding:6px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); margin:0 auto 40px; }
.es-tabs-wrap{ text-align:center; }
.es-tab{ border:0; background:transparent; padding:13px 30px; border-radius:8px; font-size:.78rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:#000000; transition:background .25s, color .25s; }
.es-tab[aria-selected="true"]{ background:var(--teal); color:#fff; }
.es-panel{ display:none; }
.es-panel.active{ display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(28px,4vw,64px); align-items:center; animation:fade .5s var(--ease); }
@keyframes fade{ from{ opacity:0; transform:translateY(10px);} to{ opacity:1; transform:none; } }
.es-panel img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius-lg); box-shadow:var(--shadow-md); }
.es-panel .k{ font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-deep); }
.es-panel h3{ font-size:clamp(1.7rem,3vw,2.4rem); margin-top:10px; }
.es-panel p{ color:#000000; margin-top:14px; font-weight:400; }
.es-panel ul{ list-style:none; margin:18px 0 24px; padding:0; display:grid; gap:10px; }
.es-panel li{ display:flex; align-items:center; gap:11px; font-size:.95rem; color:#000000; }
.es-panel li svg{ width:18px; height:18px; color:var(--teal); flex:0 0 auto; }
@media (max-width:820px){ .es-panel.active{ grid-template-columns:1fr; } .es-panel img{ order:-1; } }

/* ============ Intro ============ */
.intro{ text-align:center; }
.intro .wrap{ max-width:780px; }
.intro h2{ font-size:clamp(2rem,4vw,3rem); margin-top:26px; }
.intro p{ margin-top:22px; }
.intro .stats{ display:flex; justify-content:center; flex-wrap:wrap; gap:clamp(28px,6vw,72px); margin-top:48px; }
.intro .stat .num{ font-family:var(--serif); font-size:2.6rem; color:var(--teal); line-height:1; }
.intro .stat .lab{ font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-faint); margin-top:8px; }

/* ============ Rooms carousel ============ */
.rooms{ background:var(--paper); overflow:hidden; }
.rooms__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:36px; }
.rooms__nav{ display:flex; gap:10px; }
.rooms__nav button{ width:50px; height:50px; border-radius:50%; border:1px solid var(--line); background:var(--white); color:var(--teal); display:grid; place-content:center; transition:.25s; }
.rooms__nav button:hover{ background:var(--teal); color:#fff; border-color:var(--teal); }
.rooms__nav svg{ width:20px; height:20px; }
.rooms__track{ display:grid; grid-auto-flow:column; grid-auto-columns:clamp(260px,30%,360px); gap:22px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; padding-bottom:8px; margin-inline:calc(var(--gutter) * -1); padding-inline:var(--gutter); scrollbar-width:none; }
.rooms__track::-webkit-scrollbar{ display:none; }
.room{ scroll-snap-align:start; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; display:flex; flex-direction:column; transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.room:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.room__img{ position:relative; aspect-ratio:4/3; overflow:hidden; }
.room__img img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.room:hover .room__img img{ transform:scale(1.06); }
.room__tag{ position:absolute; top:14px; left:14px; background:rgba(255,255,255,.95); color:var(--teal); font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; padding:7px 13px; border-radius:var(--radius); }
.room__body{ padding:22px 22px 24px; display:flex; flex-direction:column; gap:6px; }
.room__body h3{ font-size:1.5rem; }
.room__body p{ font-size:.9rem; color:#000000; font-weight:400; line-height:1.6; }
.room__foot{ display:flex; align-items:center; justify-content:space-between; margin-top:12px; padding-top:16px; border-top:1px solid var(--line); }
.room__price{ font-family:var(--serif); color:var(--ink); font-size:1.05rem; }
.room__price b{ color:var(--teal); }
.room__price small{ display:block; font-family:var(--sans); font-size:.58rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint); }

/* ============ Restaurant ============ */
.resto__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,80px); align-items:center; }
.resto__media{ position:relative; }
.resto__media img{ width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:var(--radius-lg); box-shadow:var(--shadow-md); }
.resto__media .badge{ position:absolute; right:-18px; bottom:24px; background:var(--teal); color:#E7D9CC; padding:18px 22px; border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); text-align:center; }
.resto__media .badge b{ display:block; font-family:var(--serif); font-size:1.6rem; color:#fff; }
.resto__media .badge span{ font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; }
.resto__body p{ color:#000000; font-weight:400; margin-top:18px; }
.menu-cards{ display:grid; gap:14px; margin-top:28px; }
.menu-card{ display:flex; align-items:center; gap:16px; padding:18px 20px; border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--white); transition:.3s; }
.menu-card:hover{ border-color:var(--teal); box-shadow:var(--shadow-sm); transform:translateX(4px); }
.menu-card .ic{ width:46px; height:46px; flex:0 0 auto; border-radius:50%; background:var(--paper-2); color:var(--teal); display:grid; place-content:center; }
.menu-card .ic svg{ width:22px; height:22px; }
.menu-card h4{ font-family:var(--sans); font-weight:600; font-size:.95rem; letter-spacing:.02em; }
.menu-card p{ margin:2px 0 0; font-size:.85rem; color:#000000; font-weight:400; }
.resto__actions{ margin-top:30px; display:flex; gap:14px; flex-wrap:wrap; }
@media (max-width:880px){ .resto__grid{ grid-template-columns:1fr; } .resto__media{ max-width:520px; } }

/* ============ Offers ============ */
.offers{ background:var(--teal-900); color:#E2E9EE; }
.offers__head{ text-align:center; max-width:620px; margin:0 auto 50px; }
.offers .eyebrow{ color:var(--gold-bright); } .offers .eyebrow::before,.offers .eyebrow.center::after{ background:var(--gold-bright); }
.offers h2{ color:#fff; }
.offers__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
.offer{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); border-radius:var(--radius-lg); padding:30px 32px; transition:.3s; }
.offer:hover{ background:rgba(255,255,255,.07); transform:translateY(-4px); }
.offer .ic{ width:50px; height:50px; border-radius:50%; border:1px solid rgba(241,217,174,.4); color:var(--gold-bright); display:grid; place-content:center; margin-bottom:18px; }
.offer .ic svg{ width:24px; height:24px; }
.offer h3{ font-size:1.5rem; color:#fff; }
.offer p{ color:#fff; font-weight:400; margin-top:8px; font-size:.95rem; }
.offer a{ margin-top:16px; color:var(--gold-bright); }
.offers__foot{ text-align:center; margin-top:42px; }
@media (max-width:680px){ .offers__grid{ grid-template-columns:1fr; } }

/* ============ Split (séminaires & bien-être) ============ */
.split__grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,80px); align-items:center; }
.split--rev .split__media{ order:2; }
.split__media img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius-lg); box-shadow:var(--shadow-md); }
.split__body p{ color:#000000; font-weight:400; margin-top:18px; }
.split__body ul{ list-style:none; margin:24px 0; padding:0; display:grid; gap:12px; }
.split__body li{ display:flex; align-items:center; gap:12px; font-size:.96rem; color:#000000; }
.split__body li svg{ width:19px; height:19px; color:var(--gold-deep); flex:0 0 auto; }
.cure-actions{ display:flex; justify-content:center; margin-top:26px; }
.split--tint{ background:var(--paper); }
@media (max-width:880px){ .split__grid{ grid-template-columns:1fr; } .split--rev .split__media{ order:-1; } .split__media{ max-width:560px; } }

/* ============ Gallery ============ */
.gallery__head{ text-align:center; max-width:600px; margin:0 auto 40px; }
.gallery__grid{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; gap:14px; }
.gallery__grid a{ overflow:hidden; border-radius:var(--radius-lg); position:relative; }
.gallery__grid img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.gallery__grid a:hover img{ transform:scale(1.07); }
.g-tall{ grid-row:span 2; } .g-wide{ grid-column:span 2; }
@media (max-width:760px){ .gallery__grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:150px; } }

/* ============ Testimonials ============ */
.tst{ background:var(--paper); }
.tst__head{ text-align:center; max-width:620px; margin:0 auto 48px; }
.tst__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.tst-card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:32px 30px; display:flex; flex-direction:column; box-shadow:var(--shadow-sm); }
.tst-card .tst-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.tst-card .stars{ color:var(--gold); letter-spacing:.16em; }
.tst-card .date{ font-size:.7rem; letter-spacing:.05em; color:var(--ink-faint); white-space:nowrap; }
.tst-card blockquote{ margin:14px 0 0; font-family:var(--serif); font-style:italic; font-size:1.22rem; line-height:1.5; }
.tst-card .who{ margin-top:auto; padding-top:22px; display:flex; align-items:center; gap:12px; }
.tst-card .av{ width:44px; height:44px; flex:0 0 44px; aspect-ratio:1; border-radius:50%; background:var(--teal); color:#E7D9CC; display:grid; place-content:center; font-family:var(--serif); font-size:1.05rem; }
.tst-card .nm{ font-weight:600; font-size:.92rem; }
.tst-card .meta{ font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); margin-top:2px; }
@media (max-width:820px){ .tst__grid{ grid-template-columns:1fr; max-width:560px; margin-inline:auto; } }

/* ============ Instagram ============ */
.insta__head{ text-align:center; max-width:560px; margin:0 auto 36px; }
.insta__head a{ color:var(--gold-deep); font-weight:500; }
.insta__grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:10px; }
.insta__grid a{ position:relative; aspect-ratio:1; overflow:hidden; border-radius:var(--radius); }
.insta__grid img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease), filter .3s; filter:saturate(.95); }
.insta__grid a:hover img{ transform:scale(1.08); filter:saturate(1.1); }
@media (max-width:760px){ .insta__grid{ grid-template-columns:repeat(3,1fr); } }

/* ============ CTA ============ */
.cta{ position:relative; isolation:isolate; color:#fff; text-align:center; }
.cta__bg{ position:absolute; inset:0; z-index:-2; }
.cta__bg img{ width:100%; height:100%; object-fit:cover; }
.cta::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(rgba(16,30,40,.82),rgba(22,48,63,.9)); }
.cta .wrap{ max-width:760px; }
.cta h2{ color:#fff; font-size:clamp(2.2rem,4.6vw,3.6rem); }
.cta p{ color:#fff; margin-top:18px; font-weight:400; font-size:1.08rem; }
.cta__actions{ margin-top:34px; display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.cta .guar{ margin-top:22px; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:#E7D9CC; display:inline-flex; align-items:center; gap:9px; }
.cta .guar svg{ width:16px; height:16px; }

/* ============ Footer ============ */
.footer{ background:var(--teal-900); color:#fff; padding-block:clamp(56px,6vw,84px) 30px; font-size:.92rem; font-weight:400; }
.footer__grid{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:42px; }
.footer h4{ font-family:var(--sans); font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:#fff; margin-bottom:18px; font-weight:600; }
.footer a{ color:#fff; transition:color .25s; } .footer a:hover{ color:var(--gold-bright); }
.footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.footer .brand .fstars{ display:block; color:#fff; letter-spacing:.34em; font-size:.74rem; margin-bottom:8px; }
.footer .brand .name{ font-family:var(--logo); font-weight:600; color:#fff; font-size:1.9rem; letter-spacing:.16em; }
.footer .blurb{ margin-top:16px; max-width:34ch; color:#fff; line-height:1.7; }
.footer .labels{ display:flex; gap:10px; flex-wrap:wrap; margin-top:18px; }
.footer .labels span{ font-size:.64rem; letter-spacing:.08em; text-transform:uppercase; color:#fff; font-weight:400; border:1px solid rgba(255,255,255,.45); padding:6px 11px; border-radius:var(--radius); }
.footer .socials{ display:flex; gap:10px; margin-top:20px; }
.footer .socials a{ width:40px; height:40px; border-radius:50%; border:1px solid rgba(185,196,204,.24); display:grid; place-content:center; }
.footer .socials a:hover{ border-color:var(--gold-bright); background:rgba(249,173,77,.1); }
.footer .socials svg{ width:18px; height:18px; }
.footer__bottom{ margin-top:48px; padding-top:24px; border-top:1px solid rgba(255,255,255,.25); display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; font-size:.78rem; color:#fff; }
.footer__bottom a{ color:#fff; }
.footer__bottom a:hover{ color:var(--gold-bright); }
@media (max-width:880px){ .footer__grid{ grid-template-columns:1fr 1fr; gap:34px; } }
@media (max-width:520px){ .footer__grid{ grid-template-columns:1fr; } }

/* ============ Mobile action bar ============ */
.mobilebar{ display:none; }
@media (max-width:560px){
  .mobilebar{ display:grid; grid-template-columns:1fr 1.4fr; gap:9px; position:fixed; left:0; right:0; bottom:0; z-index:66; padding:10px 14px calc(10px + env(safe-area-inset-bottom)); background:rgba(255,255,255,.97); backdrop-filter:blur(10px); border-top:1px solid var(--line); }
  .mobilebar a{ min-height:50px; border-radius:var(--radius); display:flex; align-items:center; justify-content:center; gap:8px; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; font-weight:500; }
  .mobilebar svg{ width:16px; height:16px; }
  .mb-call{ border:1px solid var(--line); color:var(--teal); background:#fff; }
  .mb-book{ background:var(--gold); color:#1A1919; }
  body{ padding-bottom:78px; }
}

/* ============ Reveal ============ */
/* Keep content visible even if a browser blocks/defers IntersectionObserver. */
.reveal{ opacity:1; transform:none; transition:opacity .45s var(--ease), transform .45s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.08s; } .reveal.d2{ transition-delay:.16s; } .reveal.d3{ transition-delay:.24s; }
@media (prefers-reduced-motion: reduce){ *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; } .reveal{ opacity:1; transform:none; } .hero__bg img{ transform:none; } }

/* ============ Logo image ============ */
.brand img{ height:56px; width:auto; display:block; object-fit:contain; }
.footer .brand img{ height:60px; width:auto; }
@media (max-width:560px){ .brand img{ height:42px; } }

/* ============ Responsive image heights (avoid over-tall photos) ============ */
img{ height:auto; }
/* Experience: business spec tiles + mirrored layout */
.es-specs{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:20px 0 24px; }
.spec{ border:1px solid var(--line); border-radius:var(--radius); padding:14px 16px; background:var(--white); }
.spec b{ display:block; font-family:var(--logo); font-size:1.7rem; line-height:1; color:var(--teal); font-weight:600; }
.spec span{ font-size:.78rem; color:var(--ink-faint); }
.es-actions{ display:flex; gap:12px; flex-wrap:wrap; }
.es-panel--biz.active{ grid-template-columns:1fr 1.1fr; }
@media (max-width:820px){ .es-panel--biz.active{ grid-template-columns:1fr; } }
@media (max-width:420px){ .es-specs{ grid-template-columns:1fr; } }

/* Reservation dropdown (nav) */
.resa{ position:relative; }
.resa-btn{ padding:12px 22px; gap:7px; }
.resa-btn .caret{ width:15px; height:15px; transition:transform .25s var(--ease); }
.resa.open .resa-btn .caret{ transform:rotate(180deg); }
.resa-menu{ position:absolute; top:calc(100% + 10px); right:0; min-width:210px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-md); padding:6px; display:none; z-index:80; }
.resa.open .resa-menu{ display:block; }
.resa-menu a{ display:block; padding:12px 14px; border-radius:4px; font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); }
.resa-menu a:hover{ background:var(--paper-2); color:var(--gold-deep); }
@media (max-width:560px){ .resa{ display:none; } }

@media (max-width:600px){
  .es-panel img{ aspect-ratio:16/10; }
  .resto__media img{ aspect-ratio:4/3; }
  .split__media img{ aspect-ratio:16/10; }
  .room__img{ aspect-ratio:4/3; }
  .gallery__grid{ grid-auto-rows:130px; }
  .hero{ min-height:78vh; }
}

/* ============================================================
   SUBPAGE COMPONENTS
   ============================================================ */

/* Page hero (compact, image + charcoal overlay) */
.page-hero{ position:relative; isolation:isolate; color:#fff; text-align:center; padding-block:clamp(70px,12vw,140px) clamp(48px,7vw,84px); }
.page-hero__bg{ position:absolute; inset:0; z-index:-2; overflow:hidden; }
.page-hero__bg img{ width:100%; height:100%; object-fit:cover; }
.page-hero::after{ content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(rgba(16,16,16,.5),rgba(16,16,16,.6)); }
.page-hero .eyebrow{ color:var(--gold-bright); justify-content:center; }
.page-hero .eyebrow::before,.page-hero .eyebrow::after{ background:var(--gold-bright); }
.page-hero h1{ font-size:clamp(2.4rem,5.4vw,4rem); color:#fff; margin-top:18px; }
.page-hero p{ max-width:620px; margin:18px auto 0; color:rgba(255,255,255,.9); font-weight:300; font-size:1.08rem; }

/* Breadcrumb */
.crumb{ font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint); }
.crumb a{ color:var(--ink-faint); } .crumb a:hover{ color:var(--gold-deep); }
.crumb .sep{ margin:0 8px; opacity:.6; }
.page-hero .crumb{ color:rgba(255,255,255,.92); }
.page-hero .crumb a{ color:rgba(255,255,255,.92); } .page-hero .crumb a:hover{ color:#fff; }

/* Prose / article body */
.prose{ max-width:760px; }
.prose.center{ margin-inline:auto; }
.prose p{ color:#000000; font-weight:400; margin-top:18px; line-height:1.85; }
.prose h2{ font-size:clamp(1.7rem,3vw,2.4rem); margin-top:48px; }
.prose h3{ font-size:1.4rem; margin-top:32px; }
.prose ul,.prose ol{ margin-top:16px; padding-left:20px; color:#000000; font-weight:400; }
.prose li{ margin-top:8px; }
.prose a{ color:var(--gold-deep); text-decoration:underline; text-underline-offset:3px; }
.prose img{ width:100%; border-radius:var(--radius-lg); margin-top:28px; box-shadow:var(--shadow-md); }
.prose blockquote{ margin:28px 0; padding:6px 0 6px 24px; border-left:3px solid var(--gold); font-family:var(--logo); font-style:italic; font-size:1.5rem; color:var(--ink); }

/* Feature grid (reusable cards) */
.features{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.feature{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); padding:30px 28px; box-shadow:var(--shadow-sm); }
.feature .ic{ width:52px; height:52px; border-radius:50%; background:var(--paper-2); color:var(--teal); display:grid; place-content:center; margin-bottom:18px; }
.feature .ic svg{ width:24px; height:24px; }
.feature h3{ font-size:1.3rem; }
.feature p{ color:#000000; font-weight:400; margin-top:8px; font-size:.95rem; }
@media (max-width:880px){ .features{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .features{ grid-template-columns:1fr; } }

/* Detailed room rows */
.roomrow{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,64px); align-items:center; }
.roomrow + .roomrow{ margin-top:clamp(40px,5vw,72px); }
.roomrow:nth-child(even) .roomrow__media{ order:2; }
.roomrow__media img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius-lg); box-shadow:var(--shadow-md); }
.roomrow__body h2{ font-size:clamp(1.8rem,3vw,2.4rem); }
.roomrow__body .price{ font-family:var(--logo); font-size:1.2rem; color:var(--teal); margin-top:6px; }
.roomrow__body p{ color:#000000; font-weight:400; margin-top:14px; }
.roomrow__feats{ list-style:none; margin:18px 0 22px; padding:0; display:flex; flex-wrap:wrap; gap:10px 18px; }
.roomrow__feats li{ display:flex; align-items:center; gap:8px; font-size:.9rem; color:#000000; }
.roomrow__feats svg{ width:16px; height:16px; color:var(--gold-deep); }
@media (max-width:820px){ .roomrow{ grid-template-columns:1fr; } .roomrow:nth-child(even) .roomrow__media{ order:-1; } }

/* Menu list (restaurant) */
.menu-block{ max-width:760px; margin-inline:auto; }
.menu-block + .menu-block{ margin-top:48px; }
.menu-block h2{ text-align:center; font-size:1.8rem; }
.menu-block .sub{ text-align:center; color:var(--ink-faint); margin-top:6px; font-size:.9rem; }
.dish{ display:flex; align-items:baseline; gap:12px; padding:16px 0; border-bottom:1px solid var(--line); }
.dish .nm{ font-weight:500; }
.dish .dots{ flex:1; border-bottom:1px dotted var(--line); transform:translateY(-4px); }
.dish .pr{ font-family:var(--logo); font-size:1.15rem; color:var(--teal); white-space:nowrap; }
.dish .ds{ display:block; font-size:.85rem; color:var(--ink-faint); font-weight:300; margin-top:3px; }

/* Contact */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,4vw,60px); }
.info-list{ list-style:none; margin:0; padding:0; display:grid; gap:2px; }
.info-list li{ display:flex; gap:16px; padding:18px 0; border-bottom:1px solid var(--line); align-items:flex-start; }
.info-list .ic{ width:46px; height:46px; flex:0 0 auto; border-radius:var(--radius); background:var(--paper-2); display:grid; place-content:center; color:var(--teal); }
.info-list .ic svg{ width:21px; height:21px; }
.info-list .k{ font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-faint); }
.info-list .v{ font-size:1.05rem; margin-top:3px; font-weight:300; }
.info-list a.v:hover{ color:var(--gold-deep); }
.form{ display:grid; gap:16px; }
.form .row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field-l{ display:flex; flex-direction:column; gap:7px; }
.field-l label{ font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint); }
.field-l input,.field-l textarea,.field-l select{ font-family:var(--sans); font-size:1rem; padding:13px 15px; border:1px solid var(--line); border-radius:var(--radius); background:var(--white); color:var(--ink); }
.field-l input:focus,.field-l textarea:focus,.field-l select:focus{ outline:none; border-color:var(--taupe); box-shadow:0 0 0 3px rgba(165,141,121,.18); }
.field-l textarea{ min-height:130px; resize:vertical; }
.contact-map{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md); border:1px solid var(--line); min-height:360px; }
.contact-map iframe{ width:100%; height:100%; min-height:360px; border:0; filter:grayscale(.25); }
@media (max-width:820px){ .contact-grid{ grid-template-columns:1fr; } .form .row{ grid-template-columns:1fr; } }

/* Blog */
.blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.blog-card{ display:flex; flex-direction:column; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.blog-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.blog-card__img{ aspect-ratio:3/2; overflow:hidden; }
.blog-card__img img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.blog-card:hover .blog-card__img img{ transform:scale(1.06); }
.blog-card__body{ padding:24px; display:flex; flex-direction:column; flex:1; }
.blog-card .cat{ font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-deep); }
.blog-card h3{ font-size:1.35rem; margin-top:10px; line-height:1.25; }
.blog-card p{ color:#000000; font-weight:400; font-size:.93rem; margin-top:10px; }
.blog-card .more{ margin-top:auto; padding-top:18px; }
@media (max-width:880px){ .blog-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .blog-grid{ grid-template-columns:1fr; } }

/* Article meta + share */
.post-head{ max-width:760px; margin-inline:auto; text-align:center; }
.post-head .meta{ font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); margin-top:16px; }
.post-cta{ max-width:760px; margin:48px auto 0; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-lg); padding:32px; text-align:center; }
.post-cta h3{ font-size:1.5rem; }
.post-cta p{ color:#000000; font-weight:400; margin-top:8px; }
.post-cta .btn{ margin-top:18px; }
.post-nav{ max-width:760px; margin:40px auto 0; display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; }

/* FAQ (native details) */
.faq{ max-width:760px; margin-inline:auto; }
.faq details{ border-bottom:1px solid var(--line); padding:6px 0; }
.faq summary{ cursor:pointer; list-style:none; padding:18px 0; font-weight:500; font-size:1.05rem; display:flex; justify-content:space-between; align-items:center; gap:16px; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; font-size:1.4rem; color:var(--gold-deep); transition:transform .25s; }
.faq details[open] summary::after{ content:"–"; }
.faq p{ color:#000000; font-weight:400; padding:0 0 18px; margin:0; }

/* Gallery (full) with category filter look */
.gal{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.gal a{ position:relative; overflow:hidden; border-radius:var(--radius); aspect-ratio:3/2; }
.gal a.tall{ aspect-ratio:3/4; grid-row:span 2; }
.gal img{ width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.gal a:hover img{ transform:scale(1.07); }
@media (max-width:760px){ .gal{ grid-template-columns:1fr 1fr; } .gal a.tall{ grid-row:span 1; aspect-ratio:3/2; } }

/* Simple alt section tint */
.tint{ background:var(--paper); }
.section-sm{ padding-block:clamp(54px,7vw,90px); }
.lead-center{ max-width:680px; margin:0 auto clamp(40px,5vw,60px); text-align:center; }

/* GEO-CSS-START */
.geo-answer{ background:linear-gradient(180deg,#fff 0%, var(--paper) 100%); }
.geo-answer .lede{ max-width:920px; margin:16px auto 0; text-align:center; }
.geo-facts{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-top:34px; }
.geo-facts article{ background:rgba(255,255,255,.78); border:1px solid var(--line); border-radius:var(--radius-lg); padding:22px; box-shadow:var(--shadow-sm); }
.geo-facts strong{ display:block; color:var(--gold-deep); font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; margin-bottom:8px; }
.geo-facts span{ display:block; color:#000000; line-height:1.65; }
.geo-faq .faq{ max-width:920px; margin:34px auto 0; }
.article-depth .prose{ max-width:880px; }
.article-depth .prose p{ color:#000000; font-size:1.03rem; line-height:1.85; margin-top:18px; }
@media (max-width:980px){ .geo-facts{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px){ .geo-facts{ grid-template-columns:1fr; } .geo-facts article{ padding:18px; } }
/* GEO-CSS-END */

/* Welcome manual */
.manual-hero .page-hero__bg::after{ background:linear-gradient(180deg,rgba(26,25,25,.42),rgba(26,25,25,.64)); }
.manual-hero__actions{ display:flex; justify-content:center; gap:12px; flex-wrap:wrap; margin-top:26px; }
.manual-intro{ background:linear-gradient(180deg,#fff 0%, var(--paper) 100%); }
.manual-alert{ display:flex; gap:16px; align-items:flex-start; max-width:920px; margin:0 auto 34px; padding:20px 22px; border:1px solid rgba(165,141,121,.32); border-radius:var(--radius-lg); background:#fff; box-shadow:var(--shadow-sm); color:#000; line-height:1.65; }
.manual-alert .ic{ width:42px; height:42px; flex:0 0 42px; border-radius:50%; display:grid; place-items:center; background:var(--paper); color:var(--gold-deep); }
.manual-alert svg{ width:22px; height:22px; }
.manual-alert a{ color:var(--teal); font-weight:600; }
.manual-grid{ display:grid; grid-template-columns:1.25fr repeat(2,minmax(0,1fr)); gap:18px; }
.manual-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:24px; box-shadow:var(--shadow-sm); }
.manual-card--featured{ grid-row:span 2; background:linear-gradient(180deg,#fff 0%,rgba(244,239,234,.72) 100%); }
.manual-card h2,.manual-card h3{ line-height:1.2; }
.manual-card h2{ font-size:clamp(1.8rem,3vw,2.6rem); margin-top:8px; }
.manual-card h3{ font-size:1.25rem; margin-bottom:10px; }
.manual-card p{ color:#000; line-height:1.72; margin-top:12px; }
.manual-times{ display:grid; gap:12px; margin:22px 0; }
.manual-times div{ display:flex; justify-content:space-between; gap:18px; padding-bottom:12px; border-bottom:1px solid var(--line); }
.manual-times dt{ color:#000; font-weight:500; }
.manual-times dd{ color:var(--gold-deep); font-weight:700; white-space:nowrap; }
.manual-service-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.manual-service-grid article{ background:#fff; border:1px solid var(--line); border-radius:var(--radius-lg); padding:24px; min-height:250px; display:flex; flex-direction:column; box-shadow:var(--shadow-sm); }
.manual-service-grid h3{ font-size:1.18rem; margin-top:18px; }
.manual-service-grid p{ color:#000; line-height:1.7; margin-top:10px; }
.manual-service-grid .link-arrow{ margin-top:auto; padding-top:18px; }
.manual-icon{ width:46px; height:46px; border-radius:50%; display:grid; place-items:center; background:var(--taupe); color:#fff; font-size:.78rem; letter-spacing:.12em; font-weight:600; }
.manual-columns{ display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:clamp(28px,5vw,70px); align-items:start; }
.manual-side{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-lg); padding:24px; position:sticky; top:110px; }
.manual-side h3{ font-size:1.25rem; margin-bottom:12px; }
.manual-side a{ display:block; padding:13px 0; border-bottom:1px solid rgba(0,0,0,.08); color:var(--teal); font-weight:500; }
.manual-side a:last-child{ border-bottom:0; }
@media (max-width:980px){ .manual-grid{ grid-template-columns:1fr 1fr; } .manual-card--featured{ grid-column:1/-1; grid-row:auto; } .manual-service-grid{ grid-template-columns:1fr 1fr; } .manual-columns{ grid-template-columns:1fr; } .manual-side{ position:static; } }
@media (max-width:620px){ .manual-grid,.manual-service-grid{ grid-template-columns:1fr; } .manual-alert{ padding:18px; } .manual-times div{ display:block; } .manual-times dd{ margin-top:4px; } }

