/* =================================================================
   Risør Hotel — stylesheet
   Refined coastal-luxury direction (after Hôtel de l'Abbaye),
   grounded in Risør's maritime heritage.
   One authoritative stylesheet · no framework.
   ================================================================= */

/* ── Design tokens ────────────────────────────────────────────── */
:root{
  --paper:#F2ECE3;          /* warm bone ground — the whitewashed wooden town */
  --paper-2:#FAF6EF;        /* lighter card paper */
  --shell:#E7DDCD;          /* soft fill / image placeholder */
  --ink:#20292C;            /* teal-black — sea at dusk */
  --ink-soft:#515D60;       /* body text */
  --muted:#8C8275;          /* captions, warm grey */
  --sea:#1E3D44;            /* deep harbour petrol — dark bands */
  --sea-deep:#162E34;
  --clay:#B0934F;           /* antique gold — small accents (Risør) */
  --clay-deep:#8E7335;      /* deeper gold — accent hovers */
  --clay-tint:#DCE6E6;      /* pale sea — date-range fill */
  --gold:#B89A6A;           /* faint brass for focus rings */
  --sea-shine:#1E3D44;      /* primary button base (Risør sea) */
  --line:rgba(32,41,44,.16);
  --line-2:rgba(32,41,44,.09);
  --line-light:rgba(255,255,255,.22);
  --max:1200px;
  --wide:1480px;
  --serif:'Cormorant Garamond','Cormorant',Georgia,'Times New Roman',serif;
  --sans:'Jost',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --h-top:72px;             /* top bar height (desktop) */
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ── Reset ────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-weight:300;
  font-size:16.5px;line-height:1.78;letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
p{margin:0;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}
ul{margin:0;padding:0;list-style:none;}
:focus-visible{outline:2px solid var(--clay);outline-offset:3px;}
[id]{scroll-margin-top:calc(var(--h-top) + 56px);}

.skip-link{
  position:absolute;left:16px;top:-100px;z-index:200;
  background:var(--sea);color:#fff;padding:12px 16px;
  font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;
}
.skip-link:focus{top:14px;}

/* ── Shared layout helpers ────────────────────────────────────── */
.wrap{width:min(var(--max),calc(100% - 56px));margin-inline:auto;}
.wide{width:min(var(--wide),calc(100% - 40px));margin-inline:auto;}

/* ── Typography primitives ────────────────────────────────────── */
.eyebrow{
  font-family:var(--sans);font-weight:400;
  font-size:.7rem;letter-spacing:.34em;text-transform:uppercase;
  color:var(--clay);
}
.display{
  font-family:var(--serif);font-weight:500;font-style:normal;
  line-height:1.08;letter-spacing:.04em;text-transform:uppercase;
}
.serif-quote{
  font-family:var(--serif);font-style:italic;font-weight:400;
  letter-spacing:.01em;text-transform:none;
}

/* Section heading — centred, with a short clay rule (the page motif) */
.sec-head{text-align:center;max-width:760px;margin-inline:auto;}
.sec-head .eyebrow{display:block;margin-bottom:18px;}
.sec-head h2{
  font-family:var(--serif);font-weight:500;
  font-size:clamp(1.55rem,3vw,2.45rem);line-height:1.12;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink);
  margin:0;
}
.sec-head .rule{
  width:48px;height:1px;background:var(--clay);
  margin:24px auto 0;opacity:.9;
}
.sec-head p{
  margin:22px auto 0;max-width:600px;color:var(--ink-soft);
  font-size:1.02rem;
}

/* ── Buttons ──────────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  min-height:50px;padding:0 30px;
  font-family:var(--sans);font-weight:400;font-size:.74rem;
  letter-spacing:.22em;text-transform:uppercase;
  transition:background .3s var(--ease),color .3s var(--ease),
             border-color .3s var(--ease),transform .3s var(--ease);
}
/* Primary buttons — Risør deep-sea fill with a hover shine sweep (GPU-only) */
.btn--clay,.btn--sea{
  position:relative;isolation:isolate;overflow:hidden;
  background:var(--sea);color:#fff;border:1px solid rgba(255,255,255,.30);
  box-shadow:0 10px 26px rgba(13,34,43,.18);
}
.btn--clay:hover,.btn--clay:focus-visible,
.btn--sea:hover,.btn--sea:focus-visible{
  background:var(--sea-deep);border-color:rgba(255,255,255,.52);
  transform:translateY(-2px);
  box-shadow:0 15px 32px rgba(13,34,43,.26);
  outline:none;
}
.btn--clay::before,.btn--sea::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(135deg,rgba(255,255,255,.13) 0%,rgba(255,255,255,.03) 38%,rgba(184,154,106,.15) 64%,rgba(255,255,255,.06) 100%);
  opacity:.5;transition:opacity .32s var(--ease);
}
.btn--clay::after,.btn--sea::after{
  content:"";position:absolute;top:-46%;bottom:-46%;left:-78%;width:55%;z-index:2;pointer-events:none;
  background:linear-gradient(105deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.10) 28%,rgba(255,255,255,.46) 47%,rgba(255,255,255,.16) 60%,rgba(255,255,255,0) 100%);
  transform:skewX(-18deg);opacity:0;mix-blend-mode:screen;
  transition:left .72s cubic-bezier(.22,1,.36,1),opacity .22s ease;
}
.btn--clay:hover::before,.btn--clay:focus-visible::before,
.btn--sea:hover::before,.btn--sea:focus-visible::before{opacity:.85;}
.btn--clay:hover::after,.btn--clay:focus-visible::after,
.btn--sea:hover::after,.btn--sea:focus-visible::after{left:128%;opacity:1;}
.btn--ghost{border:1px solid currentColor;color:#fff;background:transparent;}
.btn--ghost:hover{background:#fff;color:var(--sea);border-color:#fff;}
.btn--ink{border:1px solid var(--ink);color:var(--ink);background:transparent;}
.btn--ink:hover{background:var(--ink);color:var(--paper);}

/* arrow link — the recurring "read more" device */
.arrow-link{
  display:inline-flex;align-items:center;gap:.7em;
  font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ink);font-weight:400;padding-bottom:2px;
  border-bottom:1px solid transparent;transition:border-color .3s var(--ease),gap .3s var(--ease),color .3s var(--ease);
}
.arrow-link::before{content:"";width:26px;height:1px;background:var(--clay);transition:width .3s var(--ease);}
.arrow-link:hover{color:var(--clay-deep);}
.arrow-link:hover::before{width:38px;}
.arrow-link.is-light{color:#fff;}
.arrow-link.is-light:hover{color:#fff;}

/* ── Header: top bar ──────────────────────────────────────────── */
.topbar{
  position:fixed;inset:0 0 auto 0;z-index:120;height:var(--h-top);
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  padding:0 clamp(20px,4vw,46px);
  color:#fff;transition:background .4s var(--ease),color .4s var(--ease),box-shadow .4s var(--ease),height .4s var(--ease);
}
.topbar.is-solid{
  background:var(--paper);color:var(--ink);
  box-shadow:0 1px 0 var(--line-2);
}
.topbar__left{justify-self:start;display:flex;align-items:center;gap:18px;}
.topbar__center{justify-self:center;}
.topbar__right{justify-self:end;display:flex;align-items:center;gap:18px;}

.brandmark{display:flex;flex-direction:column;align-items:center;line-height:1;text-align:center;}
.brandmark .bm-top{font-size:.62rem;letter-spacing:.42em;text-transform:uppercase;font-weight:400;opacity:.85;padding-left:.42em;}
.brandmark .bm-name{
  font-family:var(--serif);font-weight:500;text-transform:uppercase;
  font-size:clamp(1.15rem,2.1vw,1.5rem);letter-spacing:.2em;margin-top:5px;padding-left:.2em;
}
.brandmark .bm-sub{font-size:.55rem;letter-spacing:.36em;text-transform:uppercase;opacity:.7;margin-top:6px;padding-left:.36em;}

/* ---- language switcher: topbar dropdown + mobile inline (NO/EN/DE/FR/ES) ---- */
.lang{position:relative;display:inline-flex;align-items:center;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;}
.lang__btn{display:inline-flex;align-items:center;gap:.5em;padding:4px 2px;color:inherit;background:transparent;letter-spacing:.18em;line-height:1;cursor:pointer;opacity:.82;transition:opacity .25s;}
.lang__btn:hover,.lang.is-open .lang__btn{opacity:1;}
.lang__cur{font-size:.72rem;}
.lang__chev{transition:transform .3s ease;opacity:.8;}
.lang.is-open .lang__chev{transform:rotate(180deg);}
.lang__menu{
  position:absolute;top:calc(100% + 12px);left:0;z-index:140;min-width:150px;margin:0;padding:6px;list-style:none;
  background:var(--paper-2);border:1px solid var(--line);box-shadow:0 18px 44px -22px rgba(22,46,52,.45);
  opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .26s ease,transform .26s ease,visibility .26s;
}
.lang.is-open .lang__menu{opacity:1;visibility:visible;transform:translateY(0);}
.lang__opt{
  display:flex;align-items:center;justify-content:space-between;gap:1.4em;padding:8px 12px;color:var(--ink-soft);
  font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;cursor:pointer;transition:color .2s,background .2s;
}
.lang__opt:hover{color:var(--ink);background:var(--shell);}
.lang__opt[aria-selected="true"]{color:var(--ink);}
.lang__opt[aria-selected="true"]::after{content:"";width:14px;height:1px;background:var(--clay);flex:none;}
.lang__opt[aria-selected="true"]:hover::after{background:var(--clay-deep);}
/* mobile inline row (inside the dark slide-in menu -> light pills) */
.lang--inline{position:static;display:flex;flex-wrap:wrap;gap:9px;}
.lang--inline .lang__pill{
  padding:8px 14px;min-width:46px;text-align:center;border:1px solid rgba(255,255,255,.26);color:rgba(255,255,255,.72);
  background:transparent;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;line-height:1;cursor:pointer;transition:color .2s,background .2s,border-color .2s;
}
.lang--inline .lang__pill:hover{color:#fff;border-color:rgba(255,255,255,.55);}
.lang--inline .lang__pill.is-active{color:var(--sea-deep);background:#fff;border-color:#fff;}

/* topbar reserve button adapts to dark hero / light solid bar via currentColor */
.topbar .btn{border:1px solid currentColor;color:inherit;background:transparent;}
.topbar .btn:hover{background:var(--sea);border-color:var(--sea);color:#fff;}

.menu-btn{display:none;}

/* ── Header: section nav (sticks beneath top bar) ─────────────── */
.secnav{
  position:sticky;top:var(--h-top);z-index:90;
  background:var(--paper);border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2);
}
.secnav__row{
  display:flex;align-items:center;justify-content:center;gap:clamp(18px,2.6vw,40px);
  height:54px;
}
.secnav a{
  font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);
  font-weight:400;position:relative;padding:4px 0;transition:color .25s;white-space:nowrap;
}
.secnav a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:1px;background:var(--clay);transition:right .3s var(--ease);}
.secnav a:hover,.secnav a[aria-current="page"]{color:var(--ink);}
.secnav a:hover::after,.secnav a[aria-current="page"]::after{right:0;}
.secnav .secnav__cta{margin-left:8px;}

/* ── Mobile menu ──────────────────────────────────────────────── */
.mobile-menu{
  position:fixed;inset:0;z-index:130;background:var(--sea);color:#fff;
  display:flex;flex-direction:column;padding:90px clamp(24px,7vw,60px) 40px;
  transform:translateY(-100%);transition:transform .55s var(--ease);
  overflow-y:auto;
}
.mobile-menu.is-open{transform:translateY(0);}
.mobile-menu a{display:block;font-family:var(--serif);text-transform:uppercase;letter-spacing:.1em;}
.mobile-menu .mm-primary a{font-size:1.9rem;font-weight:500;padding:9px 0;border-bottom:1px solid var(--line-light);}
.mobile-menu .mm-secondary{margin-top:30px;display:grid;grid-template-columns:1fr 1fr;gap:6px 22px;}
.mobile-menu .mm-secondary a{font-family:var(--sans);font-size:.78rem;letter-spacing:.16em;color:rgba(255,255,255,.78);padding:7px 0;}
.mobile-menu .mm-foot{margin-top:auto;padding-top:30px;display:flex;flex-direction:column;align-items:stretch;gap:20px;}
.mobile-menu .mm-foot .btn{text-align:center;}
.mm-close{position:absolute;top:24px;right:24px;width:42px;height:42px;display:grid;place-items:center;}
.mm-close::before,.mm-close::after{content:"";position:absolute;width:24px;height:1.5px;background:#fff;}
.mm-close::before{transform:rotate(45deg);}
.mm-close::after{transform:rotate(-45deg);}
body.menu-open{overflow:hidden;}

/* ── HERO ─────────────────────────────────────────────────────── */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;color:#fff;overflow:hidden;}
.hero__media{position:absolute;inset:0;overflow:hidden;}
.hero__media img{width:100%;height:100%;object-fit:cover;filter:saturate(1.04) contrast(1.03);}
/* morning light sweep on load — GPU-only (transform/opacity), brightening, never darkens */
.hero__media::after{
  content:"";position:absolute;inset:-16% -34%;z-index:1;pointer-events:none;
  background:linear-gradient(105deg,rgba(255,255,255,0) 0%,rgba(255,248,230,.07) 24%,rgba(255,255,255,.20) 48%,rgba(201,229,243,.07) 62%,rgba(255,255,255,0) 100%);
  transform:translate3d(-140%,0,0) skewX(-10deg);
  will-change:transform;backface-visibility:hidden;
}
body.ready .hero__media::after{animation:heroLightSweep 2.6s cubic-bezier(.22,1,.36,1) 1.7s both;}
@keyframes heroLightSweep{
  0%{transform:translate3d(-140%,0,0) skewX(-10deg);}
  100%{transform:translate3d(140%,0,0) skewX(-10deg);}
}
.hero__inner{position:relative;z-index:2;text-align:center;padding:120px 24px 0;max-width:1000px;}
.hero__eyebrow{display:block;font-weight:500;margin-bottom:26px;opacity:0;transform:translateY(14px);text-shadow:0 1px 14px rgba(0,0,0,.55),0 1px 3px rgba(0,0,0,.4);}
.hero__title{
  font-family:var(--serif);font-weight:600;text-transform:uppercase;
  font-size:clamp(2rem,5vw,3.7rem);line-height:1.12;letter-spacing:.05em;
  margin:0;text-shadow:0 1px 3px rgba(0,0,0,.45),0 2px 22px rgba(0,0,0,.42),0 0 52px rgba(0,0,0,.28);
}
.hero__title .line{display:block;overflow:hidden;}
.hero__title .line > span{display:block;opacity:0;transform:translateY(105%);}
.hero__cta{margin-top:38px;opacity:0;transform:translateY(14px);display:flex;flex-wrap:wrap;gap:14px;justify-content:center;}
.hero__scroll{
  position:absolute;left:50%;bottom:30px;transform:translateX(-50%);z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:12px;color:#fff;
  font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;opacity:.85;
  text-shadow:0 1px 10px rgba(0,0,0,.55);
}
.hero__scroll .bar{width:1px;height:46px;background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(255,255,255,0));animation:scrollpulse 2.4s var(--ease) infinite;}
@keyframes scrollpulse{0%{transform:scaleY(.2);transform-origin:top;opacity:.3}50%{transform:scaleY(1);opacity:.9}100%{transform:scaleY(.2);transform-origin:bottom;opacity:.3}}

/* hero load sequence (added via .ready on body) */
body.ready .hero__eyebrow{opacity:1;transform:none;transition:opacity .9s var(--ease) .15s,transform .9s var(--ease) .15s;}
body.ready .hero__title .line > span{opacity:1;transform:none;transition:opacity 1s var(--ease),transform 1.05s var(--ease);}
body.ready .hero__title .line:nth-child(1) > span{transition-delay:.30s;}
body.ready .hero__title .line:nth-child(2) > span{transition-delay:.46s;}
body.ready .hero__cta{opacity:1;transform:none;transition:opacity .9s var(--ease) .8s,transform .9s var(--ease) .8s;}

/* ── Section scaffold ─────────────────────────────────────────── */
.section{padding:clamp(70px,9vw,128px) 0;position:relative;}
.section--tight{padding:clamp(48px,6vw,84px) 0;}
.section--paper2{background:var(--paper-2);}
.section--sea{background:var(--sea);color:#fff;}

/* vertical rotated side-label (Abbaye device, carrying real place names) */
.sidelabel{
  position:absolute;top:0;height:100%;display:flex;align-items:center;pointer-events:none;
  font-size:.66rem;letter-spacing:.4em;text-transform:uppercase;color:var(--muted);
}
.sidelabel span{writing-mode:vertical-rl;transform:rotate(180deg);}
.sidelabel--left{left:clamp(8px,3vw,40px);}
.sidelabel--right{right:clamp(8px,3vw,40px);}

/* ── Split (text + image) ─────────────────────────────────────── */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,5vw,84px);align-items:center;}
.split--reverse .split__media{order:-1;}
.split__body{max-width:480px;}
.split--reverse .split__body{margin-left:auto;}
.split__kicker{display:block;margin-bottom:18px;}
.split__title{font-family:var(--serif);font-weight:500;font-size:clamp(1.7rem,3.4vw,2.75rem);line-height:1.1;letter-spacing:.02em;margin:0 0 22px;}
.split__title.is-caps{text-transform:uppercase;letter-spacing:.12em;font-size:clamp(1.5rem,3vw,2.3rem);}
.split__text p{color:var(--ink-soft);margin-bottom:1.1em;}
.split__text p:last-child{margin-bottom:0;}
.split__actions{margin-top:30px;display:flex;flex-wrap:wrap;gap:16px 26px;align-items:center;}
.split__media img{width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--shell);}
.split--wide .split__media img{aspect-ratio:5/6;}

/* asymmetric hairline-framed image pair (the editorial signature) */
.pair{position:relative;}
.pair__main img{width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--shell);}
.pair__inset{position:absolute;right:-26px;bottom:-30px;width:46%;border:6px solid var(--paper);background:var(--paper);box-shadow:0 18px 40px rgba(22,32,34,.16);}
.pair__inset img{width:100%;aspect-ratio:3/4;object-fit:cover;background:var(--shell);}
.split--reverse .pair__inset{right:auto;left:-26px;}

/* ── Rooms preview carousel (peek style) ──────────────────────── */
.carousel{position:relative;}
.carousel__viewport{overflow:hidden;}
.carousel__track{display:flex;gap:24px;transition:transform .6s var(--ease);will-change:transform;}
.carousel__slide{flex:0 0 60%;position:relative;text-decoration:none;color:inherit;overflow:hidden;}
.carousel__slide img{width:100%;aspect-ratio:16/10;object-fit:cover;background:var(--shell);transition:transform .9s var(--ease);}
.carousel__slide:hover img{transform:scale(1.04);}
.carousel__cap{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;margin-top:32px;}
.carousel__cap .cap-place{font-family:var(--sans);font-size:.66rem;letter-spacing:.32em;text-transform:uppercase;color:var(--clay);}
.carousel__cap .cap-name{font-family:var(--serif);font-size:clamp(1.55rem,2.6vw,2.05rem);font-weight:500;letter-spacing:.01em;color:var(--ink);line-height:1.12;}
.carousel__cap .cap-cta{margin-top:9px;}
.carousel__nav{display:flex;align-items:center;gap:18px;margin-top:26px;justify-content:center;}
.carousel__btn{width:46px;height:46px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--ink);transition:background .3s,color .3s,border-color .3s;}
.carousel__btn:hover{background:var(--ink);color:var(--paper);border-color:var(--ink);}
.carousel__count{font-size:.74rem;letter-spacing:.24em;color:var(--muted);min-width:54px;text-align:center;}
.carousel__btn svg{width:15px;height:15px;}

/* ── House grid (suite categories) ───────────────────────────── */
.houses{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.house{position:relative;overflow:hidden;display:block;aspect-ratio:3/4;background:var(--shell);}
.house img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease),filter .6s;}
.house::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,32,34,0) 38%,rgba(22,32,34,.66) 100%);transition:background .5s;}
.house:hover img{transform:scale(1.05);}
.house__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:26px 26px 28px;color:#fff;}
.house__cap .pin{display:inline-flex;align-items:center;gap:7px;font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;opacity:.86;margin-bottom:8px;}
.house__cap .pin svg{width:11px;height:11px;}
.house__cap h3{font-family:var(--serif);font-weight:500;font-size:1.5rem;letter-spacing:.06em;text-transform:uppercase;line-height:1.1;}
.house.is-tall{grid-row:span 1;}

/* ── Offers (refined cards, replacing the flat orange block) ──── */
.offers{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;}
.offer{display:flex;flex-direction:column;background:var(--paper-2);border:1px solid var(--line-2);}
.offer__img{aspect-ratio:4/3;overflow:hidden;background:var(--shell);}
.offer__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);}
.offer:hover .offer__img img{transform:scale(1.05);}
.offer__body{padding:24px 24px 26px;display:flex;flex-direction:column;flex:1;}
.offer__tag{font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--clay);margin-bottom:12px;}
.offer__body h3{font-family:var(--serif);font-weight:500;font-size:1.32rem;line-height:1.18;letter-spacing:.01em;margin-bottom:12px;color:var(--ink);}
.offer__body p{font-size:.92rem;color:var(--ink-soft);line-height:1.66;}
.offer__body .arrow-link{margin-top:auto;padding-top:20px;}

/* ── Quote / concept band ─────────────────────────────────────── */
.quoteband{text-align:center;}
.quoteband blockquote{
  font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:clamp(1.5rem,3.4vw,2.6rem);line-height:1.32;letter-spacing:.005em;
  color:var(--paper);max-width:880px;margin:0 auto;
}
.quoteband .cite{display:block;margin-top:26px;font-family:var(--sans);font-style:normal;font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.62);}

/* ── Bildegalleri ──────────────────────────────────────────── */
.insta-handle{display:inline-flex;align-items:center;gap:9px;justify-content:center;margin:0 auto 8px;}

/* ── Newsletter band ─────────────────────────────────────────── */
.newsletter{background:var(--sea);color:#fff;padding:clamp(46px,6vw,72px) 0;}
.newsletter__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:26px 40px;}
.newsletter h3{font-family:var(--serif);font-weight:500;font-size:clamp(1.4rem,2.6vw,2rem);letter-spacing:.04em;line-height:1.2;max-width:560px;}
.newsletter form{display:flex;gap:0;flex:0 0 auto;min-width:min(420px,100%);border:1px solid var(--line-light);}
.newsletter input{flex:1;background:transparent;border:0;color:#fff;padding:0 18px;min-height:52px;font-family:var(--sans);font-size:.85rem;letter-spacing:.04em;min-width:160px;}
.newsletter input::placeholder{color:rgba(255,255,255,.55);}
.newsletter input:focus{outline:none;}
.newsletter button{background:#fff;color:var(--sea);padding:0 24px;min-height:52px;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;transition:background .3s,color .3s;}
.newsletter button:hover{background:#fff;color:var(--sea);transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,0,0,.20);}

/* ── Footer ──────────────────────────────────────────────────── */
.footer{background:var(--sea-deep);color:rgba(255,255,255,.74);padding:clamp(56px,7vw,86px) 0 32px;}
.footer__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:48px;padding-bottom:48px;border-bottom:1px solid var(--line-light);}
.footer__brand .brandmark{align-items:flex-start;text-align:left;color:#fff;}
.footer__brand .brandmark .bm-name{padding-left:0;}
.footer__brand .brandmark .bm-top,.footer__brand .brandmark .bm-sub{padding-left:0;}
.footer__brand address{font-style:normal;margin-top:22px;font-size:.9rem;line-height:1.7;color:rgba(255,255,255,.7);}
.footer__brand address a:hover{color:#fff;}
.footer h4{font-family:var(--sans);font-weight:500;font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:#fff;margin:0 0 18px;}
.footer ul li{margin-bottom:10px;}
.footer ul a{font-size:.9rem;color:rgba(255,255,255,.7);transition:color .25s;}
.footer ul a:hover{color:#fff;}
.footer__bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-top:26px;font-size:.78rem;letter-spacing:.04em;color:rgba(255,255,255,.5);}
.footer__bottom .socials{display:flex;gap:18px;}
.footer__bottom .socials a{transition:color .25s;}
.footer__bottom .socials a:hover{color:#fff;}
.footer__bottom .socials svg{width:17px;height:17px;}
.footer__dhh{opacity:.7;transition:opacity .3s;}
.footer__dhh:hover{opacity:1;}

/* ===================================================================
   ROM & SUITER page
   =================================================================== */
.page-hero{position:relative;min-height:62vh;display:flex;align-items:center;justify-content:center;color:#fff;overflow:hidden;}
.page-hero__media{position:absolute;inset:0;}
.page-hero__media img{width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(1.02);}
.page-hero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,32,34,.52),rgba(22,32,34,.40));}
/* Stangholmen — parallax hero (image drifts as you scroll) + landscape split media */
.page-hero--parallax .page-hero__media{overflow:hidden;}
.page-hero--parallax .page-hero__media img.js-parallax{position:absolute;left:0;top:-13%;width:100%;height:126%;object-fit:cover;will-change:transform;transform:translate3d(0,0,0);}
.split--land .split__media img{aspect-ratio:3/2;}
/* Vår historie — show the whole image, as zoomed out as possible (letterbox tinted to theme) */
.page-hero--contain .page-hero__media{background:#0f1f26;}
.page-hero--contain .page-hero__media img{object-fit:contain;}
.page-hero__inner{position:relative;z-index:2;text-align:center;padding:120px 24px 40px;}
.page-hero__inner .eyebrow{display:block;margin-bottom:22px;}
.page-hero__inner h1{font-family:var(--serif);font-weight:500;text-transform:uppercase;font-size:clamp(1.9rem,4.4vw,3.3rem);letter-spacing:.06em;line-height:1.14;margin:0;text-shadow:0 2px 24px rgba(0,0,0,.2);}

/* intro */
.rooms-intro{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,5vw,80px);align-items:center;}
.rooms-intro__body .eyebrow{display:block;margin-bottom:18px;}
.rooms-intro__body h2{font-family:var(--serif);font-weight:500;font-size:clamp(1.6rem,3.2vw,2.5rem);line-height:1.1;letter-spacing:.02em;margin:0 0 22px;}
.rooms-intro__body p{color:var(--ink-soft);margin-bottom:1.1em;}
.rooms-intro__media img{width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--shell);}

/* layout with sticky index */
.rooms-layout{display:grid;grid-template-columns:240px 1fr;gap:clamp(36px,5vw,80px);align-items:start;}
.suite-index{position:sticky;top:calc(var(--h-top) + 78px);}
.suite-index .ix-group{margin-bottom:30px;}
.suite-index .ix-group > .ix-grouphead{font-family:var(--serif);font-size:1.12rem;font-weight:500;letter-spacing:.04em;color:var(--ink);padding-bottom:10px;margin-bottom:8px;border-bottom:1px solid var(--line);}
.suite-index a{display:block;font-size:.78rem;letter-spacing:.1em;color:var(--muted);padding:6px 0 6px 16px;position:relative;transition:color .25s,padding .25s;line-height:1.4;}
.suite-index a::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:6px;height:1px;background:var(--clay);opacity:0;transition:opacity .25s,width .25s;}
.suite-index a:hover{color:var(--ink);}
.suite-index a.is-active{color:var(--ink);padding-left:22px;}
.suite-index a.is-active::before{opacity:1;width:12px;}

/* category lead within the suite column */
.cat-lead{margin-bottom:18px;}
.cat-lead .eyebrow{display:block;margin-bottom:14px;}
.cat-lead h2{font-family:var(--serif);font-weight:500;font-size:clamp(1.7rem,3.4vw,2.6rem);line-height:1.06;letter-spacing:.02em;margin:0 0 18px;}
.cat-lead .cat-lead__grid{display:grid;grid-template-columns:1.2fr 1fr;gap:30px 44px;align-items:start;}
.cat-lead p{color:var(--ink-soft);margin-bottom:1em;}
.cat-lead .meta{font-size:.82rem;color:var(--ink-soft);line-height:1.9;}
.cat-lead .meta .row{display:flex;gap:12px;padding:7px 0;border-bottom:1px solid var(--line-2);}
.cat-lead .meta .row span:first-child{flex:0 0 116px;text-transform:uppercase;letter-spacing:.14em;font-size:.66rem;color:var(--muted);padding-top:3px;}
.cat-lead__actions{margin-top:24px;display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;}

/* the headline image for a category */
.cat-hero{margin:30px 0 64px;}
.cat-hero img{width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--shell);}
.cat-hero figcaption{margin-top:12px;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);text-align:right;}

/* individual suite block */
.suite{padding-top:8px;margin-bottom:clamp(56px,7vw,96px);scroll-margin-top:calc(var(--h-top) + 92px);}
.suite__head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;margin-bottom:8px;}
.suite__head h3{font-family:var(--serif);font-weight:500;font-size:clamp(1.5rem,2.8vw,2.1rem);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);line-height:1.1;}
.suite__sub{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--clay);}
.suite__media{margin:22px 0 24px;}
.suite__media img{width:100%;aspect-ratio:16/10;object-fit:cover;background:var(--shell);}
.suite__lower{display:grid;grid-template-columns:1fr 400px;gap:40px;align-items:start;}
.suite__text p{color:var(--ink-soft);margin-bottom:1.05em;}
.suite__text p:last-of-type{margin-bottom:0;}
.suite__amen{margin-top:26px;display:flex;flex-direction:column;gap:0;}
.suite__amen .am{display:flex;align-items:center;gap:14px;padding:11px 0;border-bottom:1px solid var(--line-2);font-size:.82rem;letter-spacing:.06em;color:var(--ink-soft);}
.suite__amen .am svg{width:19px;height:19px;color:var(--clay);flex:0 0 auto;}
.suite__actions{margin-top:26px;display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;}
.suite__detail{margin:0;align-self:start;position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--shell);}
.suite__detail .slideshow__slide img{width:100%;height:100%;object-fit:cover;}

/* sub-suite cards grid (compact list under each house) */
.suite-cards{display:grid;grid-template-columns:1fr 1fr;gap:36px 40px;}
.scard{display:flex;flex-direction:column;}
.scard__img{aspect-ratio:4/3;overflow:hidden;background:var(--shell);margin-bottom:18px;}
.scard__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);}
.scard:hover .scard__img img{transform:scale(1.045);}
.scard h3{font-family:var(--serif);font-weight:500;font-size:1.45rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin-bottom:8px;}
.scard p{font-size:.92rem;color:var(--ink-soft);margin-bottom:14px;}
.scard__meta{font-size:.74rem;letter-spacing:.05em;color:var(--muted);line-height:1.85;margin-bottom:18px;}
.scard__meta span{display:inline-flex;align-items:center;gap:7px;margin-right:18px;}
.scard__meta svg{width:14px;height:14px;color:var(--clay);}
.scard__actions{margin-top:auto;display:flex;gap:24px;align-items:center;}

/* divider between house sections */
.house-divider{display:flex;align-items:center;gap:24px;margin:clamp(48px,6vw,82px) 0 clamp(40px,5vw,66px);}
.house-divider::before,.house-divider::after{content:"";flex:1;height:1px;background:var(--line);}
.house-divider .hd-label{font-family:var(--serif);font-style:italic;font-size:1.25rem;color:var(--clay);letter-spacing:.02em;}

/* practical strip on rooms page */
.practical{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;}
.practical .pcell h4{font-family:var(--sans);font-weight:500;font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink);margin-bottom:10px;display:flex;align-items:center;gap:9px;}
.practical .pcell h4 svg{width:16px;height:16px;color:var(--clay);}
.practical .pcell p{font-size:.9rem;color:var(--ink-soft);line-height:1.66;}

/* ── Reveal animation ─────────────────────────────────────────── */
.reveal{opacity:0;transform:translateY(26px);}
.js .reveal{will-change:opacity,transform;}
.reveal.is-in{opacity:1;transform:none;transition:opacity 1s var(--ease),transform 1.05s var(--ease);}
.reveal[data-d="1"].is-in{transition-delay:.08s;}
.reveal[data-d="2"].is-in{transition-delay:.16s;}
.reveal[data-d="3"].is-in{transition-delay:.24s;}

/* ── Responsive ───────────────────────────────────────────────── */
@media (max-width:1080px){
  .footer__grid{grid-template-columns:1fr 1fr;gap:34px 30px;}
  .footer__brand{grid-column:1 / -1;}
}
@media (max-width:920px){
  :root{--h-top:64px;}
  .secnav{display:none;}
  .menu-btn{display:inline-flex;align-items:center;gap:9px;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;}
  .menu-btn .mb-lines{display:inline-block;width:24px;height:10px;position:relative;}
  .menu-btn .mb-lines::before,.menu-btn .mb-lines::after{content:"";position:absolute;left:0;width:24px;height:1.5px;background:currentColor;}
  .menu-btn .mb-lines::before{top:0;}
  .menu-btn .mb-lines::after{top:8px;}
  .topbar__right .btn{display:none;}
  .topbar .lang{display:none;}
  .split{grid-template-columns:1fr;gap:30px;}
  .split--reverse .split__media{order:0;}
  .split__body,.split--reverse .split__body{max-width:none;margin:0;}
  .pair__inset{right:0;width:42%;}
  .split--reverse .pair__inset{left:0;}
  .rooms-intro{grid-template-columns:1fr;gap:28px;}
  .rooms-layout{grid-template-columns:1fr;gap:10px;}
  .suite-index{display:none;}
  .cat-lead .cat-lead__grid{grid-template-columns:1fr;gap:18px;}
  .suite__lower{grid-template-columns:1fr;gap:24px;}
  .suite__detail{max-width:none;aspect-ratio:4/3;}
  .carousel__slide{flex-basis:78%;}
  .houses{grid-template-columns:1fr 1fr;}
  .offers{grid-template-columns:1fr 1fr;gap:18px;}
  .practical{grid-template-columns:1fr 1fr;gap:24px;}
}
@media (max-width:600px){
  body{font-size:16px;}
  .wrap{width:calc(100% - 40px);}
  .sidelabel{display:none;}
  .houses{grid-template-columns:1fr;}
  .offers{grid-template-columns:1fr;}
  .suite-cards{grid-template-columns:1fr;gap:30px;}
  .practical{grid-template-columns:1fr;}
  .pair__inset{position:static;width:100%;border:0;box-shadow:none;margin-top:8px;}
  .split--reverse .pair__inset{margin-top:8px;}
  .newsletter form{min-width:100%;}
  .mobile-menu .mm-secondary{grid-template-columns:1fr;}
  .suite__head h3{font-size:1.5rem;}
  .cat-hero{margin-bottom:44px;}
}

/* ── Reduced motion ───────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
  .reveal{opacity:1;transform:none;}
  .hero__eyebrow,.hero__title .line > span,.hero__cta{opacity:1 !important;transform:none !important;}
  .hero__media::after{animation:none !important;will-change:auto;opacity:0;}
}

/* =================================================================
   ADDITIONS — hero logo, refined scroll cue, content components
   ================================================================= */

/* top-bar wordmark: hidden over the hero (the building logo carries the brand there),
   fades in once the bar turns solid on scroll */
.topbar__center{transition:opacity .45s var(--ease), visibility .45s var(--ease), transform .45s var(--ease);}
.topbar:not(.is-solid) .topbar__center{opacity:0;visibility:hidden;transform:translateY(-6px);}

/* ── Hero building logo — pinned high in the hero, fades out on scroll (JS) ── */
.hero__logo,.page-hero__logo{
  position:fixed;left:50%;top:clamp(80px,9.5vh,118px);z-index:3;margin:0;
  transform:translateX(-50%);opacity:0;pointer-events:none;
  transition:opacity .3s linear;
  will-change:opacity;
}
body.ready .hero__logo,body.ready .page-hero__logo{opacity:1;}
body.menu-open .hero__logo,body.menu-open .page-hero__logo{opacity:0;}
.hero__logo img,.page-hero__logo img{
  display:block;width:clamp(150px,15vw,196px);height:auto;
  filter:drop-shadow(0 3px 18px rgba(0,0,0,.38));
}
.page-hero__logo img{width:clamp(120px,12vw,158px);}
body.ready .hero__eyebrow{transition-delay:.22s;}
body.ready .hero__title .line:nth-child(1) > span{transition-delay:.34s;}
body.ready .hero__title .line:nth-child(2) > span{transition-delay:.48s;}
body.ready .hero__cta{transition-delay:.82s;}

/* ── Refined, larger, interactive scroll cue ── */
/* ── Refined scroll cue: label + slim travel line + chevron ── */
.hero__scroll{
  position:absolute;left:50%;bottom:30px;z-index:7;
  transform:translateX(-50%);opacity:1;
  display:flex;flex-direction:column;align-items:center;gap:8px;color:#fff;
  text-decoration:none;padding:7px 16px;
  transition:opacity .55s var(--ease), transform .55s var(--ease);
}
.hero__scroll-label{font-family:var(--sans);font-size:.6rem;font-weight:400;letter-spacing:.36em;text-transform:uppercase;
  opacity:.96;padding-left:.36em;text-shadow:0 1px 18px rgba(0,0,0,.6),0 0 2px rgba(0,0,0,.35);}
/* slim animated travel line (reuses the .hero__scroll-mouse span — no markup change needed) */
.hero__scroll-mouse{position:relative;width:1px;height:26px;border-radius:1px;overflow:hidden;
  background:rgba(255,255,255,.32);box-shadow:0 0 12px rgba(0,0,0,.3);}
.hero__scroll-mouse::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,0) 0%,#fff 70%,#fff 100%);
  transform:translateY(-100%);animation:scrolltrail 2.3s var(--ease) infinite;}
@keyframes scrolltrail{0%{transform:translateY(-100%)}55%{transform:translateY(100%)}100%{transform:translateY(100%)}}
.hero__scroll-chev{display:block;line-height:0;color:#fff;opacity:.7;
  filter:drop-shadow(0 1px 9px rgba(0,0,0,.6));animation:chevbob 2.3s var(--ease) infinite;}
.hero__scroll-chev svg{width:15px;height:15px;}
@keyframes chevbob{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(4px);opacity:1}}
/* hover: warm terracotta accent + gentle lift */
.hero__scroll:hover{transform:translateX(-50%) translateY(-3px);}
.hero__scroll:hover .hero__scroll-mouse{background:rgba(178,122,104,.45);}
.hero__scroll:hover .hero__scroll-mouse::after{background:linear-gradient(180deg,rgba(178,122,104,0),var(--clay));}
.hero__scroll:hover .hero__scroll-chev{color:var(--clay);opacity:1;}
.hero__scroll:focus-visible{outline:2px solid var(--clay);outline-offset:6px;border-radius:6px;}
/* fade the cue away once the page starts scrolling */
body.scrolled .hero__scroll{opacity:0;pointer-events:none;transform:translateX(-50%) translateY(12px);}

/* ── Stat row (e.g. 9 dobbeltrom · 11 suiter …) ── */
.statrow{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center;}
.statrow .stat{padding:8px 6px;position:relative;}
.statrow .stat + .stat::before{content:"";position:absolute;left:0;top:18%;height:64%;width:1px;background:var(--line);}
.statrow .stat .num{font-family:var(--serif);font-weight:500;font-size:clamp(2.2rem,4.4vw,3.4rem);line-height:1;color:var(--ink);letter-spacing:.01em;}
.statrow .stat .lbl{display:block;margin-top:12px;font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);}
.section--sea .statrow .stat .num{color:#fff;}
.section--sea .statrow .stat .lbl{color:rgba(255,255,255,.7);}
.section--sea .statrow .stat + .stat::before{background:var(--line-light);}

/* ── Columns list (breakfast buffet etc.) ── */
.cols-list{columns:3;column-gap:48px;max-width:900px;margin:40px auto 0;}
.cols-list li{break-inside:avoid;padding:9px 0 9px 20px;position:relative;border-bottom:1px solid var(--line-2);font-size:.95rem;color:var(--ink-soft);}
.cols-list li::before{content:"";position:absolute;left:0;top:17px;width:7px;height:7px;border:1px solid var(--clay);border-radius:50%;}

/* ── Venue cards (meeting rooms) — image + spec list + CTA ── */
.venues{display:grid;grid-template-columns:1fr 1fr;gap:40px;}
.venue{display:flex;flex-direction:column;}
.venue__img{aspect-ratio:16/11;overflow:hidden;background:var(--shell);margin-bottom:20px;}
.venue__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease);}
.venue:hover .venue__img img{transform:scale(1.045);}
.venue h3{font-family:var(--serif);font-weight:500;font-size:1.5rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin-bottom:14px;}
.spec{margin-bottom:20px;}
.spec li{display:flex;gap:11px;align-items:flex-start;padding:7px 0;font-size:.9rem;color:var(--ink-soft);border-bottom:1px solid var(--line-2);}
.spec li svg{width:16px;height:16px;color:var(--clay);flex:0 0 auto;margin-top:3px;}
.venue__actions{margin-top:auto;}

/* ── Distances (travel times) ── */
.distances{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 18px;margin-top:40px;}
.distances .dist{display:inline-flex;align-items:baseline;gap:10px;border:1px solid var(--line);padding:14px 22px;background:var(--paper-2);}
.distances .dist .city{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);}
.distances .dist .time{font-family:var(--serif);font-size:1.1rem;color:var(--clay);}

/* ── Testimonials (guest quotes) ── */
.testimonials{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
.tcard{background:var(--paper-2);border:1px solid var(--line-2);padding:34px 30px;display:flex;flex-direction:column;}
.tcard .tquote{font-family:var(--serif);font-style:italic;font-size:1.18rem;line-height:1.4;color:var(--ink);margin-bottom:16px;}
.tcard p{font-size:.92rem;color:var(--ink-soft);line-height:1.65;}
.tcard .tsource{margin-top:auto;padding-top:20px;font-size:.64rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);}

/* ── CTA band (sea) with heading + text + button ── */
.cta-band{background:var(--sea);color:#fff;text-align:center;}
.cta-band .eyebrow{color:rgba(255,255,255,.62);}
.cta-band h2{font-family:var(--serif);font-weight:500;font-size:clamp(1.7rem,3.4vw,2.7rem);letter-spacing:.03em;line-height:1.12;margin:16px auto 0;max-width:680px;}
.cta-band p{margin:20px auto 0;max-width:560px;color:rgba(255,255,255,.78);}
.cta-band .cta-band__actions{margin-top:34px;display:flex;flex-wrap:wrap;gap:16px;justify-content:center;}
.cta-band .btn--ghost{color:#fff;
  transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease),box-shadow .35s var(--ease);}
.cta-band .btn--ghost:hover,.cta-band .btn--ghost:focus-visible{background:#fff;color:var(--sea);border-color:#fff;transform:translateY(-1px);box-shadow:0 14px 30px -16px rgba(0,0,0,.5);}

/* ── History timeline (alternating eras) ── */
.era{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,5vw,80px);align-items:center;margin-bottom:clamp(48px,6vw,96px);}
.era:last-child{margin-bottom:0;}
.era--reverse .era__media{order:-1;}
.era__year{font-family:var(--serif);font-size:clamp(2.4rem,5vw,3.6rem);font-weight:500;color:var(--clay);line-height:1;letter-spacing:.01em;display:block;margin-bottom:18px;}
.era__body h2{font-family:var(--serif);font-weight:500;font-size:clamp(1.5rem,2.8vw,2.1rem);line-height:1.14;letter-spacing:.02em;margin:0 0 18px;color:var(--ink);}
.era__body p{color:var(--ink-soft);margin-bottom:1.05em;}
.era__body p:last-child{margin-bottom:0;}
.era__media figure{margin:0;}
.era__media img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--shell);}
.era__media figcaption{margin-top:12px;font-size:.78rem;font-style:italic;color:var(--muted);line-height:1.5;}
.exp-facts{display:flex;flex-wrap:wrap;gap:16px 34px;margin:24px 0 0;padding-top:20px;border-top:1px solid var(--line-2);}
.exp-facts > div{display:flex;flex-direction:column;gap:5px;}
.exp-facts dt{font-family:var(--sans);font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);}
.exp-facts dd{margin:0;font-family:var(--serif);font-size:1.12rem;letter-spacing:.01em;color:var(--ink);line-height:1;}

/* ── Contact page: info + form, directions, FAQ ── */
.contact-grid{display:grid;grid-template-columns:0.82fr 1fr;gap:clamp(40px,6vw,92px);align-items:start;}
@media (max-width:820px){.contact-grid{grid-template-columns:1fr;gap:48px;}}
.contact-info__title{font-family:var(--serif);font-weight:500;font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.12;letter-spacing:.01em;margin:16px 0 22px;color:var(--ink);}
.contact-info__addr{font-style:normal;font-family:var(--serif);font-size:1.22rem;line-height:1.6;color:var(--ink-soft);margin:0 0 20px;}
.contact-info__phone{margin:0 0 30px;}
.contact-info__phone a{font-family:var(--serif);font-size:clamp(1.5rem,2.4vw,1.85rem);color:var(--ink);text-decoration:none;border-bottom:1px solid var(--clay);padding-bottom:2px;transition:color .3s var(--ease);}
.contact-info__phone a:hover{color:var(--clay);}
.contact-emails{display:flex;flex-direction:column;gap:16px;margin:0 0 30px;}
.contact-emails dt{font-family:var(--sans);font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:5px;}
.contact-emails dd{margin:0;}
.contact-emails dd a{font-family:var(--sans);font-size:1rem;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:1px;transition:color .3s var(--ease),border-color .3s var(--ease);}
.contact-emails dd a:hover{color:var(--clay);border-color:var(--clay);}
.cform{display:flex;flex-direction:column;gap:24px;}
.cform__field{display:flex;flex-direction:column;gap:9px;}
.cform__field label{font-family:var(--sans);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}
.cform__field input,.cform__field textarea{font-family:var(--sans);font-size:1rem;color:var(--ink);background:transparent;
  border:0;border-bottom:1px solid var(--line);padding:9px 2px;width:100%;transition:border-color .3s var(--ease);}
.cform__field textarea{resize:vertical;min-height:120px;line-height:1.6;}
.cform__field input::placeholder,.cform__field textarea::placeholder{color:var(--muted);opacity:.8;}
.cform__field input:focus,.cform__field textarea:focus{outline:none;border-bottom-color:var(--clay);}
.cform__submit{align-self:flex-start;margin-top:6px;min-height:50px;}
.route-links{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:46px;}
.travel-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,3.6vw,50px);margin-top:58px;}
@media (max-width:760px){.travel-grid{grid-template-columns:1fr;gap:34px;}}
.travel{padding-top:26px;border-top:1px solid var(--line);}
.travel__ico{display:block;width:32px;height:32px;color:var(--clay);margin-bottom:16px;}
.travel__ico svg{width:100%;height:100%;display:block;}
.travel h3{font-family:var(--serif);font-weight:500;font-size:1.42rem;letter-spacing:.01em;color:var(--ink);margin:0 0 12px;}
.travel p{color:var(--ink-soft);font-size:.96rem;line-height:1.72;margin:0 0 .85em;}
.travel p:last-child{margin-bottom:0;}
.travel a{color:var(--clay);text-decoration:none;border-bottom:1px solid currentColor;}
.travel a:hover{color:var(--clay-deep);}
.faq{max-width:840px;margin:54px auto 0;border-top:1px solid var(--line-2);}
.faq__item{border-bottom:1px solid var(--line-2);}
.faq__item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:26px 4px;font-family:var(--serif);font-weight:500;font-size:clamp(1.15rem,2vw,1.42rem);letter-spacing:.01em;color:var(--ink);transition:color .3s var(--ease);}
.faq__item summary::-webkit-details-marker{display:none;}
.faq__item summary:hover{color:var(--clay);}
.faq__chev{flex:0 0 auto;width:20px;height:20px;color:var(--clay);transition:transform .38s var(--ease);}
.faq__item[open] .faq__chev{transform:rotate(180deg);}
.faq__body{padding:2px 4px 30px;max-width:700px;}
.faq__body p{color:var(--ink-soft);font-size:.98rem;line-height:1.78;margin:0 0 1em;}
.faq__body p:last-child{margin-bottom:0;}
.faq__body strong{color:var(--ink);font-weight:600;}
.faq__body a{color:var(--clay);text-decoration:none;border-bottom:1px solid currentColor;}
.faq__body a:hover{color:var(--clay-deep);}
/* copy-to-clipboard tooltip (phone links on desktop) */
.copy-tip{position:absolute;z-index:80;transform:translate(-50%,-100%);
  background:var(--ink);color:var(--paper);font-family:var(--sans);font-size:.7rem;letter-spacing:.04em;
  padding:7px 12px;border-radius:5px;white-space:nowrap;pointer-events:none;
  opacity:0;transition:opacity .25s var(--ease);box-shadow:0 10px 28px -12px rgba(20,30,32,.55);}
.copy-tip.is-show{opacity:1;}
.copy-tip::after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);
  border:5px solid transparent;border-top-color:var(--ink);}

/* generic lead paragraph block (centered intro) */
.leadblock{max-width:760px;margin:36px auto 0;text-align:center;}
.leadblock p{color:var(--ink-soft);font-size:1.05rem;margin-bottom:1.1em;}
.leadblock p:last-child{margin-bottom:0;}

/* ── Responsive additions ── */
@media (max-width:920px){
  .statrow{grid-template-columns:1fr 1fr;gap:30px 18px;}
  .statrow .stat:nth-child(3)::before,.statrow .stat:nth-child(odd)::before{display:none;}
  .cols-list{columns:2;column-gap:34px;}
  .venues{grid-template-columns:1fr;gap:34px;}
  .testimonials{grid-template-columns:1fr;gap:22px;}
  .era{grid-template-columns:1fr;gap:24px;}
  .era--reverse .era__media{order:0;}
}
@media (max-width:600px){
  .statrow{grid-template-columns:1fr 1fr;}
  .cols-list{columns:1;}
  .distances .dist{padding:12px 16px;}
}
@media (prefers-reduced-motion:reduce){
  .hero__logo,.page-hero__logo{opacity:1;transform:translateX(-50%);transition:none !important;}
  .hero__scroll-mouse::after,.hero__scroll-chev{animation:none !important;}
}

/* page-hero CTA (static, no load animation) */
.page-hero__cta{margin-top:28px;}
.page-hero__cta .btn{min-height:50px;}

/* 3-up offers row (base .offers is 4-up) */
.offers--3{grid-template-columns:repeat(3,1fr);}
@media (max-width:920px){.offers--3{grid-template-columns:1fr;}}

/* reserve space at the bottom of every hero for the scroll cue so it never
   overlaps the centred content (hero grows to fit content + this padding) */
.hero__inner{padding:118px 24px 144px;}
.page-hero__inner{padding:116px 24px 144px;}
@media (max-width:760px){
  .hero__inner,.page-hero__inner{padding-top:88px;padding-bottom:140px;}
}
@media (max-height:560px){ .hero__scroll{display:none;} }

/* =================================================================
   ADDITIONS v3 — eyebrow legibility, persistent wordmark, airy footer
   ================================================================= */

/* Task 1 — hero/page-hero eyebrow: legible warm-white over dark heroes */
.hero__eyebrow,.page-hero__inner .eyebrow{color:rgba(243,237,228,.9);}

/* Task 2 — reinstate the wordmark in the top bar (visible over the hero too) */
.topbar:not(.is-solid) .topbar__center{opacity:1;visibility:visible;transform:none;}

/* Task 5 — footer: spread horizontally, airy, closer to the reference */
.footer{padding:clamp(64px,7.5vw,96px) 0 30px;}
.footer__grid{
  grid-template-columns:1.6fr 1fr 1fr 1.1fr;
  gap:44px clamp(40px,5vw,96px);
  padding-bottom:54px;
}
.footer__brand{max-width:340px;}
.footer__brand .brandmark .bm-name{font-size:clamp(1.4rem,2.4vw,1.9rem);letter-spacing:.18em;}
.footer__brand .brandmark .bm-sub{font-size:.6rem;letter-spacing:.34em;margin-top:10px;opacity:.6;}
.footer__brand address{
  margin-top:26px;font-size:.78rem;line-height:2;letter-spacing:.08em;
  text-transform:uppercase;color:rgba(255,255,255,.6);
}
.footer h4{font-size:.64rem;letter-spacing:.26em;color:rgba(255,255,255,.92);margin:0 0 22px;}
.footer ul li{margin-bottom:15px;}
.footer ul a{font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.6);}
.footer ul a:hover{color:#fff;}
.footer__bottom{padding-top:30px;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;}
@media (max-width:920px){
  .footer__grid{grid-template-columns:1fr 1fr;gap:36px 32px;}
  .footer__brand{grid-column:1 / -1;max-width:none;}
}
@media (max-width:560px){
  .footer__grid{grid-template-columns:1fr;gap:32px;}
}

/* ── iOS / small-screen polish: keep the persistent topbar wordmark from
   crowding the Meny button, and tighten the very narrow layouts ── */
@media (max-width:560px){
  .topbar{padding:0 16px;}
  .topbar__left{gap:12px;}
  .brandmark .bm-name{font-size:1.02rem;letter-spacing:.12em;margin-top:3px;padding-left:.12em;}
  .brandmark .bm-sub{display:none;}
  .menu-btn{gap:7px;font-size:.66rem;letter-spacing:.16em;}
}
@media (max-width:380px){
  .brandmark .bm-name{font-size:.9rem;letter-spacing:.05em;padding-left:.05em;}
  .menu-btn .mb-lines,.menu-btn .mb-lines::before,.menu-btn .mb-lines::after{width:20px;}
  .hero__inner,.page-hero__inner{padding-left:18px;padding-right:18px;}
}

/* ===================================================================
   FEATURE PASS v4
   load gate (no font / language flash) · crossfade slideshows ·
   page-hero load animation · taller heroes · booking strip · house mark
   =================================================================== */

/* --- load gate: keep the page hidden until web-fonts (and, on a non-NO
   language, the translation) are applied, so there is never a flash of a
   fallback font nor a flash of Norwegian competing with the chosen language.
   A scripted failsafe removes this within ~1.6s, and <noscript> never sets it. */
html.is-loading body{visibility:hidden;}

/* --- generic crossfade slideshow (hero media + suite cards) --- */
.slideshow{position:absolute;inset:0;overflow:hidden;}
.slideshow__slide{position:absolute;inset:0;transform:translateX(100%);transition:transform .82s var(--ease);will-change:transform;backface-visibility:hidden;}
.slideshow__slide.is-active{transform:translateX(0);}
.slideshow__slide img{width:100%;height:100%;object-fit:cover;}
.hero__media .slideshow__slide img{filter:saturate(1.04) contrast(1.03);}
.page-hero__media .slideshow__slide img{filter:saturate(.82) contrast(1.02);}
.scard__img{position:relative;}            /* host the absolute slideshow inside the 4/3 box */
@media (prefers-reduced-motion:reduce){ .slideshow__slide{transition:none;} }

/* --- page-hero load-in animation (mirrors the index hero) --- */
.page-hero__inner .eyebrow{opacity:0;transform:translateY(14px);}
.page-hero__title{font-family:var(--serif);font-weight:500;text-transform:uppercase;
  font-size:clamp(1.9rem,4.4vw,3.3rem);letter-spacing:.06em;line-height:1.14;margin:0;text-shadow:0 2px 24px rgba(0,0,0,.2);}
.page-hero__title .line{display:block;overflow:hidden;}
.page-hero__title .line > span{display:block;opacity:0;transform:translateY(105%);}
.page-hero__cta{opacity:0;transform:translateY(14px);}
body.ready .page-hero__inner .eyebrow{opacity:1;transform:none;transition:opacity .9s var(--ease) .22s,transform .9s var(--ease) .22s;}
body.ready .page-hero__title .line > span{opacity:1;transform:none;transition:opacity 1s var(--ease),transform 1.05s var(--ease);}
body.ready .page-hero__title .line:nth-child(1) > span{transition-delay:.34s;}
body.ready .page-hero__title .line:nth-child(2) > span{transition-delay:.48s;}
body.ready .page-hero__title .line:nth-child(3) > span{transition-delay:.60s;}
body.ready .page-hero__cta{opacity:1;transform:none;transition:opacity .9s var(--ease) .62s,transform .9s var(--ease) .62s;}
@media (prefers-reduced-motion:reduce){
  .page-hero__inner .eyebrow,.page-hero__title .line > span,.page-hero__cta{opacity:1!important;transform:none!important;}
}

/* --- taller hero variant (Rooms & Suites, Meetings) --- */
.page-hero--tall{min-height:100svh;}

/* --- house monogram replacing the text-bearing logo PNG (index hero) --- */
.hero__logo svg,.page-hero__logo svg{display:block;width:clamp(116px,12vw,164px);height:auto;
  filter:drop-shadow(0 3px 18px rgba(0,0,0,.4));}

/* --- booking strip ---------------------------------------------------- */
.book-strip{position:absolute;left:0;right:0;bottom:0;z-index:6;color:#fff;
  background:linear-gradient(180deg,rgba(20,30,32,.18),rgba(20,30,32,.66));
  -webkit-backdrop-filter:blur(8px) saturate(1.05);backdrop-filter:blur(8px) saturate(1.05);
  border-top:1px solid rgba(255,255,255,.16);}
.book-strip__inner{width:min(var(--max),calc(100% - 56px));margin-inline:auto;}
.book-strip form{display:flex;align-items:stretch;width:100%;}
.book-cell{flex:1 1 0;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:6px;
  padding:18px clamp(14px,1.7vw,26px);position:relative;}
.book-cell + .book-cell::before{content:"";position:absolute;left:0;top:20%;height:60%;width:1px;background:rgba(255,255,255,.16);}
.book-cell label{font-family:var(--sans);font-size:.57rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.64);}
.book-cell input,.book-cell select{appearance:none;-webkit-appearance:none;background:transparent;border:0;
  color:#fff;font-family:var(--sans);font-weight:400;font-size:.95rem;letter-spacing:.02em;padding:3px 0;width:100%;
  cursor:pointer;color-scheme:dark;}
.book-cell input::-webkit-calendar-picker-indicator{filter:invert(1);opacity:.5;cursor:pointer;}
.book-cell input:focus,.book-cell select:focus{outline:none;}
.book-cell input:focus-visible,.book-cell select:focus-visible{outline:1px solid rgba(255,255,255,.5);outline-offset:3px;}
.book-cell select option{color:#20292C;}
.book-date{appearance:none;-webkit-appearance:none;background:transparent;border:0;color:rgba(255,255,255,.6);
  font-family:var(--sans);font-weight:400;font-size:.95rem;letter-spacing:.02em;padding:3px 0;width:100%;
  text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.book-date.has-val{color:#fff;}
.book-date:focus-visible{outline:1px solid rgba(255,255,255,.5);outline-offset:3px;}
.book-cell--select select{padding-right:20px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='6' viewBox='0 0 9 6'%3E%3Cpath d='M1 1l3.5 3.5L8 1' fill='none' stroke='%23ffffff' stroke-opacity='.65' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right center;}
.book-strip__cta{flex:0 0 auto;position:relative;isolation:isolate;overflow:hidden;border:0;cursor:pointer;background:var(--sea);color:#fff;
  font-family:var(--sans);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  padding:0 clamp(24px,3vw,48px);display:flex;align-items:center;justify-content:center;gap:10px;white-space:nowrap;
  transition:background .3s var(--ease),box-shadow .3s var(--ease);}
.book-strip__cta:hover{background:var(--sea-deep);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16);}
.book-strip__cta::after{content:"";position:absolute;top:-46%;bottom:-46%;left:-78%;width:55%;z-index:2;pointer-events:none;
  background:linear-gradient(105deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.10) 28%,rgba(255,255,255,.44) 47%,rgba(255,255,255,.16) 60%,rgba(255,255,255,0) 100%);
  transform:skewX(-18deg);opacity:0;mix-blend-mode:screen;
  transition:left .72s cubic-bezier(.22,1,.36,1),opacity .22s ease;}
.book-strip__cta:hover::after{left:128%;opacity:1;}
.book-strip__cta svg{width:22px;height:1px;background:currentColor;display:inline-block;}
/* keep hero copy clear of the booking strip, and lift the scroll cue above it */
.hero--booking .hero__inner,.page-hero--booking .page-hero__inner{padding-bottom:clamp(192px,22vh,238px);}
.hero--booking .hero__scroll,.page-hero--booking .hero__scroll{bottom:98px;}
.book-note{display:none;}
@media (max-width:880px){
  .book-strip__inner{width:100%;}
  .book-strip form{flex-wrap:wrap;}
  .book-cell{flex:1 1 50%;border-top:1px solid rgba(255,255,255,.12);}
  .book-cell + .book-cell::before{display:none;}
  .book-strip__cta{flex:1 1 100%;min-height:56px;}
  .hero--booking .hero__inner,.page-hero--booking .page-hero__inner{padding-bottom:clamp(200px,40vh,300px);}
}
@media (max-width:460px){ .book-cell{flex:1 1 100%;} }

/* Risør Hotel emblem (index hero) — white circular crest: smaller, higher, shown in full */
.hero__logo{top:clamp(76px,8vh,98px);}
.hero__logo img{aspect-ratio:1;object-fit:contain;width:clamp(80px,8.2vw,106px);filter:drop-shadow(0 2px 10px rgba(0,0,0,.45));}

/* ---- slideshow manual nav buttons (subtle, sophisticated; revealed on hover) ---- */
.ss-nav{position:absolute;top:0;bottom:0;z-index:7;width:clamp(54px,11%,108px);
  display:flex;align-items:center;padding:0;border:0;cursor:pointer;color:#fff;-webkit-tap-highlight-color:transparent;
  opacity:0;transition:opacity .5s var(--ease);}
.ss-nav--prev{left:0;justify-content:flex-start;padding-left:clamp(11px,1.5vw,22px);
  background:linear-gradient(90deg,rgba(16,26,28,.42) 0%,rgba(16,26,28,.15) 40%,rgba(16,26,28,0) 100%);}
.ss-nav--next{right:0;justify-content:flex-end;padding-right:clamp(11px,1.5vw,22px);
  background:linear-gradient(270deg,rgba(16,26,28,.42) 0%,rgba(16,26,28,.15) 40%,rgba(16,26,28,0) 100%);}
.ss-nav svg{width:27px;height:27px;display:block;filter:drop-shadow(0 1px 7px rgba(0,0,0,.5));
  opacity:.92;transition:transform .45s var(--ease),opacity .4s var(--ease);}
.ss-nav:hover svg{opacity:1;}
.ss-nav--prev:hover svg{transform:translateX(-3px);}
.ss-nav--next:hover svg{transform:translateX(3px);}
.ss-nav:focus-visible{opacity:1;outline:2px solid var(--paper);outline-offset:-5px;}
.hero:hover .ss-nav,.page-hero:hover .ss-nav,.scard:hover .ss-nav,.suite__detail:hover .ss-nav{opacity:1;}
/* compact cards + detail: narrower panels, smaller chevrons */
.scard__img .ss-nav,.suite__detail .ss-nav{width:clamp(40px,24%,68px);}
.scard__img .ss-nav svg{width:21px;height:21px;}
.suite__detail .ss-nav svg{width:23px;height:23px;}
/* touch devices: keep a faint, permanent hint of the panels */
@media (hover:none){.ss-nav{opacity:.42;}.ss-nav svg{opacity:.9;}}
@media (prefers-reduced-motion:reduce){.ss-nav svg{transition:none;}}


/* ---- collapsible booking strip (compact on phones, expands on tap) ---- */
.book-strip__toggle{display:none;}
@media (max-width:880px){
  .book-strip__toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;
    border:0;cursor:pointer;background:transparent;color:#fff;
    font-family:var(--sans);font-size:.72rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;
    padding:17px clamp(18px,5vw,26px);}
  .book-strip__toggle .bt-ico{display:flex;align-items:center;gap:12px;}
  .book-strip__toggle svg.bt-cal{width:18px;height:18px;opacity:.92;}
  .book-strip__toggle svg.bt-chev{width:13px;height:13px;opacity:.8;transition:transform .4s var(--ease);}
  .book-strip.is-open .book-strip__toggle svg.bt-chev{transform:rotate(180deg);}
  .book-strip__inner{max-height:0;overflow:hidden;opacity:0;
    border-top:1px solid rgba(255,255,255,0);
    transition:max-height .52s var(--ease),opacity .42s var(--ease),border-color .42s var(--ease);}
  .book-strip.is-open .book-strip__inner{max-height:600px;opacity:1;border-top-color:rgba(255,255,255,.12);}
  /* collapsed strip is a slim bar — keep room for the scroll cue above it */
  .hero--booking .hero__inner,.page-hero--booking .page-hero__inner{padding-bottom:clamp(160px,19vh,190px);}
  .hero--booking .hero__scroll,.page-hero--booking .hero__scroll{bottom:74px;}
}

/* ── Dual-month range date picker (booking strip) ─────────────── */
.bk-cal{position:absolute;z-index:60;width:min(640px,calc(100vw - 24px));
  background:var(--paper);color:var(--ink);border:1px solid var(--line-2);
  box-shadow:0 26px 64px -26px rgba(20,30,32,.5);padding:20px 20px 14px;
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .22s var(--ease),transform .22s var(--ease),visibility .22s;}
.bk-cal.is-open{opacity:1;visibility:visible;transform:none;}
.bk-cal__head{display:flex;align-items:center;gap:10px;}
.bk-cal__months{display:flex;gap:clamp(20px,3vw,34px);flex:1 1 auto;justify-content:center;}
.bk-cal__nav{width:38px;height:38px;flex:0 0 auto;border:1px solid var(--line);background:transparent;
  border-radius:50%;display:grid;place-items:center;color:var(--ink);cursor:pointer;
  transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease);}
.bk-cal__nav:hover:not(:disabled){background:var(--ink);color:var(--paper);border-color:var(--ink);}
.bk-cal__nav:disabled{opacity:.28;cursor:default;}
.bk-cal__nav svg{width:14px;height:14px;}
.bk-month{flex:1 1 0;min-width:0;max-width:300px;}
.bk-month__cap{text-align:center;font-family:var(--serif);font-size:1.18rem;letter-spacing:.01em;color:var(--ink);margin-bottom:12px;}
.bk-month__cap strong{font-weight:500;}
.bk-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:0;}
.bk-dow{text-align:center;font-family:var(--sans);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:2px 0 9px;}
.bk-day{position:relative;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;
  border:0;background:transparent;font-family:var(--sans);font-size:.86rem;color:var(--ink);cursor:pointer;z-index:0;}
.bk-day.bk-blank{visibility:hidden;cursor:default;}
.bk-day.is-disabled{color:var(--line);cursor:default;}
.bk-day.is-today{font-weight:500;box-shadow:none;}
.bk-day.is-today::after{content:"";position:absolute;inset:3px;border:1px solid var(--line);border-radius:50%;z-index:-1;}
.bk-day:hover:not(.is-disabled):not(.bk-blank):not(.is-start):not(.is-end)::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--shell);z-index:-1;}
.bk-day.is-in::before,.bk-day.is-start::before,.bk-day.is-end::before{content:"";position:absolute;inset:0;background:var(--clay-tint);z-index:-2;}
.bk-day.is-start::before{left:50%;}
.bk-day.is-end::before{right:50%;}
.bk-day.is-start.is-end::before{display:none;}
.bk-day.is-start::after,.bk-day.is-end::after{content:"";position:absolute;inset:3px;background:var(--sea);border-radius:50%;z-index:-1;}
.bk-day.is-start,.bk-day.is-end{color:#fff;}
.bk-cal__foot{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;padding-top:13px;border-top:1px solid var(--line-2);}
.bk-cal__hint{font-family:var(--sans);font-size:.74rem;letter-spacing:.03em;color:var(--ink-soft);}
.bk-cal__clear{background:transparent;border:0;font-family:var(--sans);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--clay);cursor:pointer;padding:4px 0;}
.bk-cal__clear:hover{color:var(--clay-deep);}
@media (max-width:600px){
  .bk-cal{width:min(360px,calc(100vw - 20px));padding:16px 16px 12px;}
  .bk-cal__months{gap:0;}
  .bk-month + .bk-month{display:none;}
  .bk-month{max-width:none;}
}

/* ===== suite detail page (e.g. Seilskutesuiten) ===== */
.crumbs{font-family:var(--sans);font-size:.72rem;letter-spacing:.05em;color:var(--muted);padding-top:24px;}
.crumbs a{color:var(--ink-soft);text-decoration:none;}
.crumbs a:hover{color:var(--clay-deep);}
.crumbs span{margin:0 7px;opacity:.6;}
.suiteintro{display:grid;grid-template-columns:1fr 330px;gap:clamp(32px,5vw,72px);align-items:start;
  padding:clamp(38px,5.5vw,70px) 0 clamp(26px,3.5vw,44px);}
.suiteintro__lead p{font-size:1.05rem;line-height:1.78;color:var(--ink-soft);margin:0 0 17px;max-width:60ch;}
.suiteintro__lead p.lede{font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,2.6vw,1.72rem);
  line-height:1.42;color:var(--ink);margin-bottom:26px;}
.suitefacts{margin:0;padding:0;border-top:1px solid var(--shell);}
.suitefacts li{display:flex;align-items:center;gap:15px;padding:14px 2px;border-bottom:1px solid var(--shell);
  font-family:var(--sans);font-size:.96rem;color:var(--ink-soft);list-style:none;}
.suitefacts li b{font-weight:500;color:var(--ink);font-size:1.16rem;font-family:var(--serif);}
.suitefacts svg{width:21px;height:21px;color:var(--clay);flex:0 0 auto;}
.suitegallery{columns:3;column-gap:clamp(10px,1.3vw,18px);
  padding:clamp(14px,2vw,30px) 0 clamp(44px,6vw,86px);}
.suitegallery figure{margin:0 0 clamp(10px,1.3vw,18px);overflow:hidden;background:var(--shell);
  break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;}
.suitegallery img{width:100%;height:auto;display:block;transition:transform 1.1s var(--ease);}
.suitegallery figure:hover img{transform:scale(1.05);}
@media (max-width:760px){
  .suiteintro{grid-template-columns:1fr;gap:6px;}
  .suitegallery{columns:2;}
}
@media (max-width:460px){
  .suitegallery{columns:1;}
}

/* ============================================================
   Suite detail galleries — editorial masonry (no cropping)
   Each image keeps its natural aspect ratio and figures flow
   into balanced columns, so nothing is ever cut off.
   Handles 5–10 image sets across all suite pages.
   ============================================================ */
.sgal{columns:3;column-gap:clamp(10px,1.3vw,18px);
  padding:clamp(14px,2vw,30px) 0 clamp(44px,6vw,86px);}
.sgal figure{margin:0 0 clamp(10px,1.3vw,18px);overflow:hidden;background:var(--shell);
  break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;}
.sgal img{width:100%;height:auto;display:block;transition:transform 1.1s var(--ease);}
.sgal figure:hover img{transform:scale(1.05);}
@media (max-width:760px){
  .sgal{columns:2;}
}
@media (max-width:460px){
  .sgal{columns:1;}
}
