/* Davos Premier
   Black and gold. A formal Caslon serif for headings, a clean grotesk for reading and small capitals for labels.
   Photography runs edge to edge and dissolves into black rather than sitting in frames.
   Swiss address plaques (black, gold rim) mark real venues. */
@font-face{font-family:"Libre Caslon Display";src:url("../fonts/libre-caslon-display-latin-400-normal.woff2") format("woff2");font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Libre Caslon Display";src:url("../fonts/libre-caslon-display-latin-ext-400-normal.woff2") format("woff2");font-weight:400;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Libre Caslon Text";src:url("../fonts/libre-caslon-text-latin-400-normal.woff2") format("woff2");font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Libre Caslon Text";src:url("../fonts/libre-caslon-text-latin-ext-400-normal.woff2") format("woff2");font-weight:400;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Libre Caslon Text";src:url("../fonts/libre-caslon-text-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url("../fonts/hanken-grotesk-latin-wght-normal.woff2") format("woff2");font-weight:300 800;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Hanken Grotesk";src:url("../fonts/hanken-grotesk-latin-ext-wght-normal.woff2") format("woff2");font-weight:300 800;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Hanken Grotesk";src:url("../fonts/hanken-grotesk-latin-wght-italic.woff2") format("woff2");font-weight:300 800;font-style:italic;font-display:swap}

:root{
  color-scheme:light;
  --black:#0B0B0B;      /* header, hero, dark bands, footer */
  --black-2:#151515;    /* raised surfaces on black */
  --cream:#F3F2EE;      /* light page (kept name: neutral, not cream) */
  --linen:#E8E7E2;      /* light grey band */
  --paper:#FFFFFF;
  --ink:#0F0F0F;
  --ink-2:#3B3B3B;
  --muted:#6A6A6A;
  --gold:#9A7621;       /* gold for large text and numerals on light */
  --gold-fill:#C9A253;  /* buttons, rules, the logo */
  --gold-line:#D9C695;
  --line:#DAD8D2;
  --espresso:var(--black);
  --on-dark:#F3F1EC;
  --on-dark-2:#B4B1A9;
  --gold-on-dark:#D8B566;
  --line-dark:rgba(243,241,236,.16);
  --plaque:#0B0B0B;
  --plaque-ink:#FFFFFF;
  --ok:#2A7352;
  --error:#A43A26;
  --logo-gold:#C9A253;--logo-ink:#0F0F0F;
  --f-display:"Libre Caslon Display","Libre Caslon Text",Georgia,"Times New Roman",serif;
  --f-serif:"Libre Caslon Text",Georgia,"Times New Roman",serif;
  --f-body:"Hanken Grotesk","Helvetica Neue",Helvetica,Arial,sans-serif;
  --f-ui:"Hanken Grotesk","Helvetica Neue",Helvetica,Arial,sans-serif;
  --step--1:clamp(13.5px,.82rem,14px);
  --step-0:clamp(16px,1.02rem,17px);
  --step-1:clamp(18px,1.2rem,20px);
  --step-2:clamp(21px,1.5vw + 14px,24px);
  --step-3:clamp(26px,2.4vw + 14px,32px);
  --step-4:clamp(34px,3.8vw + 14px,54px);
  --step-5:clamp(46px,6.6vw + 10px,104px);
  --wrap:1240px;
  --gutter:max(16px,env(safe-area-inset-left,0px));
  --gutter-r:max(16px,env(safe-area-inset-right,0px));
  --shadow:0 1px 2px rgba(0,0,0,.05),0 22px 44px -26px rgba(0,0,0,.45);
  --ease:cubic-bezier(.22,1,.36,1);     /* long, soft landing: most motion */
  --ease-io:cubic-bezier(.65,0,.35,1);  /* lines and wipes */
}
*{box-sizing:border-box}
html{background:var(--black);-webkit-text-size-adjust:100%;scroll-padding-top:90px;font-synthesis:none}
body{margin:0;background:var(--black);color:var(--ink);font:400 var(--step-0)/1.65 var(--f-body);font-variant-numeric:lining-nums;-webkit-font-smoothing:antialiased}
/* The page canvas is black so the top of the screen (first paint, phone status bar, overscroll) matches the header; content keeps the light page colour. */
main{background:var(--cream)}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
p{margin:0}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:400;margin:0;text-wrap:balance;color:var(--ink)}
h1{font-size:var(--step-5);line-height:1.02;letter-spacing:-.01em}
h2{font-size:var(--step-4);line-height:1.08;letter-spacing:-.005em}
h3{font-family:var(--f-serif);font-size:var(--step-2);line-height:1.25}
h4{font-family:var(--f-serif);font-size:var(--step-1);line-height:1.3}
:focus-visible{outline:2px solid var(--gold-fill);outline-offset:3px;border-radius:2px}
::selection{background:var(--gold-line);color:var(--ink)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--gold-fill);color:var(--black);padding:10px 14px;border-radius:999px}
.skip:focus{left:16px}

.wrap{max-width:var(--wrap);margin-inline:auto;padding-left:var(--gutter);padding-right:var(--gutter-r)}
@media (min-width:720px){.wrap{padding-left:max(32px,env(safe-area-inset-left,0px));padding-right:max(32px,env(safe-area-inset-right,0px))}}
.lead{font-size:var(--step-1);line-height:1.6;color:var(--ink-2);max-width:60ch}
.prose{color:var(--ink-2);max-width:66ch}
.prose p+p{margin-top:1em}
.muted{color:var(--muted)}
.gold{color:var(--gold)}
.section{padding-block:clamp(72px,10vw,140px)}
.section.tight{padding-block:clamp(52px,6.5vw,88px)}
.band-linen{background:var(--linen)}
.band-black{background:var(--black)}
.head-row{display:grid;gap:18px;max-width:800px;margin-bottom:clamp(36px,4.5vw,60px)}
/* Small capitals label with a gold rule, as on the summit site */
.kicker{display:inline-flex;align-items:center;gap:12px;font:600 12px/1.3 var(--f-ui);letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}
.kicker::before{content:"";width:28px;height:1px;background:var(--gold-fill);flex:none}
.on-dark .kicker,.hero .kicker,.cinema .kicker,.page-head .kicker,.cta-band .kicker,.article-head .kicker,.summit .kicker{color:var(--gold-on-dark)}

/* Buttons: a fill that grows from where the pointer enters, a rolling label, an arrow that turns */
.btn{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:50px;padding:0 22px 0 26px;border-radius:999px;border:1px solid var(--ink);background:transparent;color:var(--ink);font:600 12.5px/1 var(--f-ui);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:color .5s var(--ease),border-color .5s var(--ease),transform .6s var(--ease);-webkit-tap-highlight-color:transparent;--fill:var(--ink)}
.btn::before{content:"";position:absolute;z-index:-1;left:var(--x,50%);top:var(--y,50%);width:260%;aspect-ratio:1;border-radius:50%;background:var(--fill);transform:translate(-50%,-50%) scale(0);transition:transform .75s var(--ease)}
.btn:hover::before,.btn:focus-visible::before{transform:translate(-50%,-50%) scale(1)}
.btn:hover,.btn:focus-visible{color:var(--paper)}
.btn-label{position:relative;display:inline-block;overflow:hidden;line-height:1.3;margin-block:-.15em;padding-block:.15em}
.btn-label .t{display:block;transition:transform .6s var(--ease)}
.btn-label .t2{position:absolute;left:0;top:100%;padding-top:.15em}
.btn:hover .btn-label .t,.btn:focus-visible .btn-label .t{transform:translateY(calc(-100% - .15em))}
.btn-arrow{width:13px;height:13px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform .6s var(--ease)}
.btn:hover .btn-arrow,.btn:focus-visible .btn-arrow{transform:rotate(45deg)}
.btn-gold{background:var(--gold-fill);border-color:var(--gold-fill);color:var(--black);--fill:var(--black)}
.btn-gold:hover,.btn-gold:focus-visible{color:var(--gold-on-dark);border-color:var(--gold-fill)}
.btn-gold::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 30%,rgba(255,248,230,.6) 48%,transparent 66%);transform:translateX(-130%);pointer-events:none}
.btn-gold:hover::after{opacity:0}
.btn-small{min-height:42px;padding:0 16px 0 19px;font-size:11.5px;gap:10px}
.on-dark .btn{border-color:var(--on-dark);color:var(--on-dark);--fill:var(--on-dark)}
.on-dark .btn:hover,.on-dark .btn:focus-visible{color:var(--espresso)}
.on-dark .btn-gold{background:var(--gold-fill);border-color:var(--gold-fill);color:var(--black);--fill:var(--on-dark)}
.on-dark .btn-gold:hover,.on-dark .btn-gold:focus-visible{color:var(--black);border-color:var(--on-dark)}
.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
/* Text links: the underline wipes through on hover */
.text-link,.u,.contact-lines a,.link-arrow,.crumbs a,.toc a,.related a{text-decoration:none;background:linear-gradient(currentColor,currentColor) no-repeat 100% 100%/0 1px;transition:background-size .55s var(--ease),color .3s}
.text-link:hover,.u:hover,.contact-lines a:hover,.link-arrow:hover,.crumbs a:hover,.toc a:hover,.related a:hover{background-size:100% 1px;background-position:0 100%}
.text-link{color:var(--ink);background-image:linear-gradient(currentColor,currentColor),linear-gradient(var(--gold-line),var(--gold-line));background-size:0 1px,100% 1px;background-position:100% 100%,0 100%}
.text-link:hover{color:var(--gold);background-size:100% 1px,100% 1px;background-position:0 100%,0 100%}
.link-arrow{display:inline-flex;align-items:center;gap:8px;font:600 12px/1.4 var(--f-ui);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);padding-bottom:3px}
.on-dark .text-link{color:var(--on-dark)}
.on-dark .text-link:hover{color:var(--gold-on-dark)}
.on-dark .link-arrow{color:var(--on-dark)}
.link-arrow::after{content:"";width:12px;height:12px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 11.5 11.5 4.5M6 4.5h5.5V10'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 11.5 11.5 4.5M6 4.5h5.5V10'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .55s var(--ease)}
.link-arrow:hover::after{transform:rotate(45deg)}

/* Swiss enamel address plaque: used only for real street addresses */
.plaque{display:inline-flex;align-items:center;font:600 10.5px/1 var(--f-ui);letter-spacing:.18em;text-transform:uppercase;background:var(--plaque);color:var(--plaque-ink);padding:7px 10px 6px;border-radius:2px;box-shadow:inset 0 0 0 1px var(--gold-fill);white-space:nowrap}

/* Header: black, steps aside while you read and returns when you scroll back */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:var(--black);border-bottom:1px solid rgba(255,255,255,.06);transition:border-color .3s,transform .7s var(--ease);--logo-ink:#FFFFFF}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:41;background:var(--black)}
.site-header.scrolled{border-bottom-color:rgba(201,162,83,.22)}
.site-header.is-hidden{transform:translateY(-100%)}
.site-header .progress{position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--gold-fill) 30%,var(--gold-on-dark));transform-origin:left;transform:scaleX(var(--p,0));pointer-events:none}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:76px}
.brand{display:inline-flex;line-height:0;border-radius:4px}
.brand svg{width:176px;height:43px;overflow:visible}
.logo-mark{transform-box:fill-box;transform-origin:50% 50%;transition:transform 1.2s var(--ease)}
.brand:hover .logo-mark{transform:rotate(180deg)}
.nav{display:flex;align-items:center;gap:clamp(16px,2vw,30px)}
.nav a:not(.btn){position:relative;font:600 11.5px/1 var(--f-ui);letter-spacing:.17em;text-transform:uppercase;text-decoration:none;color:rgba(243,241,236,.78);padding:10px 0;white-space:nowrap;transition:color .3s}
.nav a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--gold-fill);transform:scaleX(0);transform-origin:right;transition:transform .55s var(--ease)}
.nav a:not(.btn):hover,.nav a[aria-current="page"]{color:#fff}
.nav a:not(.btn):hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.site-header .btn-gold{--fill:var(--on-dark)}
.site-header .btn-gold:hover,.site-header .btn-gold:focus-visible{color:var(--black)}
.menu-btn{display:none;appearance:none;border:1px solid rgba(255,255,255,.22);background:transparent;border-radius:999px;min-height:44px;padding:0 16px;font:600 11.5px var(--f-ui);letter-spacing:.17em;text-transform:uppercase;color:#fff;cursor:pointer;gap:10px;align-items:center}
.menu-lines{display:grid;gap:5px;width:16px}
.menu-lines i{display:block;height:1.5px;background:currentColor;border-radius:2px;transition:transform .5s var(--ease)}
.menu-btn[aria-expanded="true"] .menu-lines i:first-child{transform:translateY(3.25px) rotate(45deg)}
.menu-btn[aria-expanded="true"] .menu-lines i:last-child{transform:translateY(-3.25px) rotate(-45deg)}
@media (max-width:1100px){
  .nav{display:none}
  .menu-btn{display:inline-flex}
  .header-cta{display:none}
  .nav.open{display:flex;position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;background:var(--black);border-bottom:1px solid rgba(201,162,83,.25);padding:8px var(--gutter-r) 26px var(--gutter);box-shadow:var(--shadow)}
  .nav.open a:not(.btn){padding:18px 0;font:400 26px/1.1 var(--f-display);letter-spacing:0;text-transform:none;color:#fff;border-bottom:1px solid rgba(255,255,255,.1)}
  .nav.open a:not(.btn)::after{bottom:-1px}
  .nav.open .btn{margin-top:22px;align-self:flex-start}
}
.nav .btn{display:none}
@media (max-width:1100px){.nav.open .btn{display:inline-flex}}

/* Hero: the Grandhotel Belvédère edge to edge, dissolving into black at both ends */
/* The hero is exactly one screen tall (below the header), and everything in it is sized to the screen's height,
   so the countdown always sits fully in view when the page opens. */
.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--black);color:var(--on-dark);height:calc(100svh - 76px);min-height:540px;max-height:1100px;display:grid;align-items:center}
.hero-bg{position:absolute;inset:-8% 0 -4%;z-index:-3;will-change:translate}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.hero-shade{position:absolute;inset:0;z-index:-2;pointer-events:none;background:
  linear-gradient(180deg,rgba(11,11,11,.78) 0%,rgba(11,11,11,.30) 20%,rgba(11,11,11,.22) 44%,rgba(11,11,11,.58) 74%,var(--black) 100%),
  radial-gradient(90% 70% at 50% 46%,rgba(11,11,11,.0) 30%,rgba(11,11,11,.42) 100%)}
.hero-shade::after{content:"";position:absolute;inset:0;background:var(--black);opacity:calc(var(--hp,0) * .75)}
.hero-inner{position:relative;display:grid;justify-items:center;text-align:center;gap:clamp(12px,2.6vh,30px);padding-block:clamp(20px,4vh,56px) clamp(44px,8vh,96px)}
.hero h1{color:#fff;max-width:13ch;font-size:clamp(52px,min(16vw,14.4vh),176px);line-height:.92;text-shadow:0 2px 30px rgba(0,0,0,.25)}
.hero h1 .line{display:block;overflow:hidden;padding-bottom:.16em;margin-bottom:-.16em}
.hero h1{margin-bottom:clamp(10px,2.2vh,26px)}
.hero h1 .line>span{display:inline-block}
.hero .lead{color:rgba(255,255,255,.88);max-width:54ch;margin-inline:auto;font-size:clamp(16px,min(1.3vw,2.4vh),20px);text-shadow:0 1px 18px rgba(0,0,0,.35)}
.hero .actions{justify-content:center}
.hero .btn:not(.btn-gold){border-color:rgba(255,255,255,.7);color:#fff;--fill:#fff}
.hero .btn:not(.btn-gold):hover,.hero .btn:not(.btn-gold):focus-visible{color:var(--black)}
.season{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 22px;padding-top:clamp(14px,2.4vh,26px);border-top:1px solid rgba(201,162,83,.45);color:rgba(255,255,255,.8);font-size:clamp(16px,min(1.3vw,2.3vh),19px);line-height:1.4;text-align:left}
.season .count{font:400 clamp(56px,min(6vw,10vh),92px)/.9 var(--f-display);color:var(--gold-on-dark);font-variant-numeric:tabular-nums}
.season [data-days-label]{font:600 clamp(11px,min(.9vw,1.6vh),13px)/1.6 var(--f-ui);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-on-dark)}
.season b{font-weight:600;color:#fff}
.hero-caption{position:absolute;right:max(24px,var(--gutter-r));bottom:clamp(20px,3vh,32px);display:flex;align-items:center;gap:12px;font:600 10.5px/1.2 var(--f-ui);letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.6)}
/* Centred labels get a rule on both sides */
.hero .kicker::after,.cinema-head .kicker::after{content:"";width:28px;height:1px;background:var(--gold-fill);flex:none}
/* Phones: the hero grows with its content instead of squeezing it, and the caption moves below the text */
@media (max-width:720px){
  .hero{height:auto;min-height:calc(100svh - 76px);max-height:none}
  .hero-inner{padding-block:40px 84px}
  .hero-caption{left:var(--gutter);right:auto}
  .hero .kicker,.cinema-head .kicker{font-size:10.5px;letter-spacing:.15em;gap:10px}
  .hero .kicker::before,.hero .kicker::after,.cinema-head .kicker::before,.cinema-head .kicker::after{width:18px}
}
/* Wide but short windows: keep the caption clear of the countdown */
@media (max-height:720px) and (min-width:721px){.hero-caption{display:none}}

/* What we do, in one sentence, straight after the hero; the words light up as you scroll */
.intro{background:var(--black);color:#fff;padding-block:clamp(56px,8vw,120px) clamp(24px,3vw,48px);text-align:center}
.intro .wrap::before{content:"";display:block;width:1px;height:clamp(40px,6vw,72px);margin:0 auto clamp(28px,3.4vw,44px);background:linear-gradient(180deg,transparent,var(--gold-fill))}
.intro-text{max-width:26ch;margin-inline:auto;font:400 clamp(28px,3.4vw,50px)/1.25 var(--f-serif);color:#fff;text-wrap:balance}
/* The week on film: the video floats in black, every edge feathered away */
.cinema{position:relative;background:var(--black);color:var(--on-dark);padding-block:clamp(24px,4vw,56px) clamp(72px,9vw,128px);overflow:hidden}
/* The same space sits between the label, the headline and the top of the film */
.cinema-head{--cg:clamp(18px,2vw,28px);display:grid;gap:var(--cg);justify-items:center;text-align:center;margin-bottom:var(--cg);position:relative;z-index:2}
.cinema-head h2{color:#fff;max-width:20ch}
.cinema-frame{position:relative;width:min(100%,1680px);margin-inline:auto;aspect-ratio:21/9;max-height:84vh;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent),linear-gradient(180deg,rgba(0,0,0,.35),#000 3%,#000 80%,transparent);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent),linear-gradient(180deg,rgba(0,0,0,.35),#000 3%,#000 80%,transparent);mask-composite:intersect}
.cinema-media{position:absolute;inset:-6% 0;container-type:size;will-change:translate}
.cinema-media>img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) brightness(.8)}
@media (max-width:720px){.cinema-frame{aspect-ratio:4/3}}
.yt{position:absolute;inset:0;overflow:hidden;opacity:0;transition:opacity 1.6s ease;background:transparent}
.yt.is-playing{opacity:1}
.yt.is-cut{transition:none}
.yt iframe{position:absolute;top:50%;left:50%;height:122%;width:calc(122cqh * 16 / 9);min-width:100%;min-height:calc(100cqw * 9 / 16);border:0;transform:translate(-50%,-50%);pointer-events:none}
.video-toggle{position:absolute;right:16px;bottom:16px;z-index:2;display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 15px 0 13px;border:1px solid rgba(255,255,255,.45);border-radius:999px;background:rgba(11,11,11,.4);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;font:600 10.5px var(--f-ui);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:background .3s,border-color .3s}
.video-toggle:hover{background:rgba(11,11,11,.7);border-color:var(--gold-fill)}
.vt-icon{width:9px;height:10px;display:inline-block;border-inline:2.5px solid currentColor;box-sizing:border-box}
.video-toggle[aria-pressed="true"] .vt-icon{border:0;width:0;height:0;border-left:8px solid currentColor;border-block:5px solid transparent}

/* Rooms we've produced */
.rooms{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.room{display:grid;gap:14px;align-content:start}
.room figure{margin:0;position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:0;background:var(--black)}
.room figure img{width:100%;height:100%;object-fit:cover;transition:transform 1.8s var(--ease),scale 1.1s var(--ease)}
.room figure::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 55%,rgba(11,11,11,.55));pointer-events:none}
.room:hover figure img{scale:1.06}
.room figure::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--gold-fill);transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease)}
.room:hover figure::after{transform:scaleX(1)}
.room .plaque{transition:translate .6s var(--ease)}
.room:hover .plaque{translate:0 -4px}
.room .plaque{position:absolute;left:12px;bottom:12px;z-index:2}
.room h3{font-size:var(--step-2)}
.room p{color:var(--ink-2);font-size:15.5px}
.room .venue{color:var(--muted);font:600 11px/1.3 var(--f-ui);letter-spacing:.16em;text-transform:uppercase}
@media (max-width:1020px){.rooms{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.rooms{grid-template-columns:1fr}}

/* Services chooser */
.chooser{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,2fr);gap:clamp(24px,4vw,64px);align-items:start}
.choices{position:relative;display:grid;gap:4px;border-left:1px solid var(--line)}
.choice-ind{position:absolute;left:-1px;top:0;width:2px;height:var(--h,0);background:var(--gold-fill);transform:translateY(var(--y,0));transition:transform .65s var(--ease),height .65s var(--ease);pointer-events:none}
.js .choices.has-ind .choice[aria-selected="true"]{border-left-color:transparent}
.choice{transition:color .3s,padding-left .5s var(--ease)!important}
.choice:hover{padding-left:28px}
.choice{appearance:none;background:none;border:0;border-left:2px solid transparent;margin-left:-1px;text-align:left;padding:13px 0 13px 22px;font:400 var(--step-2)/1.2 var(--f-serif);color:var(--muted);cursor:pointer;transition:color .2s,border-color .2s}
.choice:hover{color:var(--ink)}
.choice[aria-selected="true"]{color:var(--ink);border-left-color:var(--gold-fill)}
.panel{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(20px,3vw,40px);align-items:start}
.panel[hidden]{display:none}
.panel h3{font:400 var(--step-3)/1.15 var(--f-display)}
.panel .copy{display:grid;gap:16px}
.ticks{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ticks li{position:relative;padding-left:26px;color:var(--ink-2)}
.ticks li::before{content:"";position:absolute;left:2px;top:.62em;width:11px;height:6px;border-left:1.5px solid var(--gold-fill);border-bottom:1.5px solid var(--gold-fill);transform:rotate(-45deg)}
.panel figure{margin:0;border-radius:0;overflow:hidden;background:var(--linen)}
.panel figure img{display:block;width:100%;height:auto}
@media (max-width:900px){
  .chooser{grid-template-columns:1fr}
  .choices{display:flex;overflow-x:auto;border-left:0;border-bottom:1px solid var(--line);gap:18px;scrollbar-width:none}
  .choices::-webkit-scrollbar{display:none}
  .choice{border-left:0;border-bottom:2px solid transparent;margin:0 0 -1px;padding:10px 0;font-size:18px;white-space:nowrap}
  .choice[aria-selected="true"]{border-bottom-color:var(--gold-fill)}
  .choice:hover{padding-left:0}
  .choice-ind{left:0;top:auto;bottom:-1px;width:var(--w,0);height:2px;transform:translateX(var(--x,0));transition:transform .65s var(--ease),width .65s var(--ease)}
  .js .choices.has-ind .choice[aria-selected="true"]{border-bottom-color:transparent}
  .panel{grid-template-columns:1fr}
}

/* Dark bands */
.on-dark{background:var(--black);color:var(--on-dark)}
.on-dark h2,.on-dark h3,.on-dark h4{color:#fff}
.on-dark .lead,.on-dark .prose{color:var(--on-dark-2)}

/* Summit: the Belvédère's full length, rising out of black and sinking back into it */
.summit{position:relative;overflow:hidden;padding-top:0}
.pano{position:relative;height:clamp(420px,78vh,860px);overflow:hidden;
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 16%,#000 62%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0%,#000 16%,#000 62%,transparent 100%)}
.pano-img{position:absolute;inset:-10% 0;will-change:translate}
.pano::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(11,11,11,.7) 78%,var(--black) 96%);pointer-events:none}
.pano-img img{width:100%;height:100%;object-fit:cover;object-position:50% 58%}
.pano-cap{position:absolute;right:max(24px,var(--gutter-r));top:22%;display:flex;flex-direction:column;align-items:flex-end;gap:10px;font:600 10.5px/1.3 var(--f-ui);letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.85);text-shadow:0 1px 12px rgba(0,0,0,.6)}
.summit-inner{position:relative;z-index:1;margin-top:clamp(-200px,-16vh,-100px);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(32px,6vw,96px);align-items:end}
.summit-inner>div{display:grid;gap:24px}
.summit h2{font-size:clamp(42px,5.6vw,80px);line-height:1}
.summit-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding-block:24px;border-block:1px solid var(--line-dark)}
.summit-facts div{display:grid;gap:6px}
.summit-facts b{font:400 clamp(34px,3.4vw,46px)/1 var(--f-display);color:var(--gold-on-dark)}
.summit-facts span{font:600 10.5px/1.3 var(--f-ui);letter-spacing:.18em;text-transform:uppercase;color:var(--on-dark-2)}
.panels{list-style:none;margin:0;padding:0;display:grid;gap:0;counter-reset:p}
.panels li{display:grid;grid-template-columns:52px 1fr;gap:12px;padding:18px 0;border-top:1px solid var(--line-dark);counter-increment:p}
.panels li::before{content:counter(p,decimal-leading-zero);font:400 22px/1.1 var(--f-display);color:var(--gold-on-dark)}
.panels li b{display:block;font:400 20px/1.3 var(--f-serif);color:#fff}
.panels li span{font-size:14.5px;color:var(--on-dark-2)}
.panels li{background:linear-gradient(rgba(201,162,83,.10),rgba(201,162,83,.10)) no-repeat 0 100%/100% 0;transition:background-size .6s var(--ease)}
.panels li:hover{background-size:100% 100%}
.panels li>div{transition:transform .6s var(--ease)}
.panels li:hover>div{transform:translateX(10px)}
@media (max-width:900px){.summit-inner{grid-template-columns:1fr;margin-top:-90px}.pano{height:min(62vh,520px)}}

/* Duo rows: a photograph to the page edge on one side, words on the other */
.duo,.svc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;min-height:clamp(520px,72vh,760px)}
.duo-media,.svc figure{position:relative;margin:0;overflow:hidden;background:var(--black);min-height:360px}
.duo-media img,.svc figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.8s var(--ease),scale 1.2s var(--ease)}
.duo-media:hover img,.svc figure:hover img{scale:1.04}
.duo-media figcaption,.svc figure figcaption{position:absolute;left:24px;bottom:22px;z-index:1;display:flex;align-items:center;gap:12px;font:600 10.5px/1.3 var(--f-ui);letter-spacing:.18em;text-transform:uppercase;color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.6)}
.duo-media::after,.svc figure::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(11,11,11,.5));pointer-events:none}
.duo-copy,.svc .copy{display:grid;gap:20px;align-content:center;padding:clamp(48px,7vw,112px) clamp(24px,6vw,104px);max-width:720px}
.svc.flip figure{order:-1}
.duo.flip .duo-media{order:2}
.svc h2{font-size:clamp(34px,3.8vw,52px)}
@media (max-width:860px){.duo,.svc{grid-template-columns:1fr;min-height:0}.duo-media,.svc figure{aspect-ratio:4/3;min-height:0;order:-1!important}}
.svc+.svc{border-top:0}
.duo-copy.prose p+p{margin-top:0}
.svc-list .svc:nth-child(even){background:var(--linen)}

/* Week strip (planner data) */
.week{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(6px,1vw,12px);align-items:end;margin-top:8px}
.day{display:grid;gap:10px;align-content:end}
.day .bar{position:relative;border-radius:0;background:linear-gradient(180deg,var(--gold-line),#E9DDBC);min-height:8px;transform-origin:bottom}
.day.peak .bar{background:linear-gradient(180deg,#E6C77E,var(--gold-fill) 45%,#A9852F);background-size:100% 200%;animation:barglow 4s ease-in-out infinite alternate}
@keyframes barglow{to{background-position:0 100%}}
.day .n{font-variant-numeric:tabular-nums}
.day .n{font:400 clamp(24px,2.6vw,34px)/1 var(--f-display);color:var(--ink)}
.day .d{font:600 11px/1.3 var(--f-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.day .w{font-size:13px;color:var(--muted)}
.day .tag{font:600 10.5px/1.35 var(--f-ui);letter-spacing:.06em;color:var(--gold);min-height:4em}
.week-note{margin-top:18px;color:var(--muted);font-size:14px}
.planner-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(32px,5vw,80px);align-items:end}
.stat-row{display:flex;flex-wrap:wrap;gap:12px 36px}
.stat-row div{display:grid;gap:2px}
.stat-row b{font:400 clamp(38px,3.8vw,54px)/1 var(--f-display);color:var(--ink)}
.stat-row span{font:600 10.5px/1.3 var(--f-ui);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.on-dark .stat-row b{color:#fff}
.on-dark .stat-row span{color:var(--on-dark-2)}
@media (max-width:900px){.planner-grid{grid-template-columns:1fr}}
@media (max-width:520px){.week{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:24px}}

/* Steps (a real sequence) */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2.4vw,36px);list-style:none;margin:0;padding:0;counter-reset:s}
.steps li{display:grid;gap:10px;align-content:start;padding-top:18px;border-top:1px solid var(--ink);counter-increment:s}
.steps li::before{content:counter(s,decimal-leading-zero);font:400 44px/1 var(--f-display);color:var(--gold-fill)}
.steps h3{font-size:var(--step-1)}
.steps p{color:var(--ink-2);font-size:15.5px}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* Honest note */
.limits{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,5vw,80px);align-items:start}
.limits blockquote{margin:0;font:400 clamp(28px,3vw,42px)/1.22 var(--f-display);color:var(--ink)}
.on-dark .limits blockquote{color:#fff}
.limits blockquote footer{margin-top:18px;font:600 11px var(--f-ui);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-on-dark)}
@media (max-width:860px){.limits{grid-template-columns:1fr}}

/* Worked with */
.names{display:flex;flex-wrap:wrap;gap:10px 34px;align-items:baseline;font:400 clamp(22px,2.2vw,30px)/1.3 var(--f-display);color:var(--ink)}
.names span{white-space:nowrap}

/* Journal cards */
.posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,40px)}
.post{display:grid;gap:10px;align-content:start;padding-top:18px;border-top:1px solid var(--line);text-decoration:none}
.post .meta{font:600 10.5px/1.4 var(--f-ui);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.post{position:relative}
.post h3{font:400 var(--step-3)/1.15 var(--f-display);transition:color .3s,transform .6s var(--ease)}
.post:hover h3{color:var(--gold);transform:translateX(6px)}
.post::before{content:"";position:absolute;left:0;right:0;top:-1px;height:2px;background:var(--gold-fill);transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease)}
.post:hover::before{transform:scaleX(1)}
.post p{color:var(--ink-2);font-size:15.5px}
@media (max-width:900px){.posts{grid-template-columns:1fr}}
.empty-note{padding:28px;border:1px solid var(--gold-line);border-radius:0;color:var(--muted);max-width:640px}

/* FAQ */
.faq{display:grid;max-width:860px}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;padding:22px 0;font:400 var(--step-2)/1.3 var(--f-serif);transition:color .3s,padding-left .5s var(--ease)}
.faq summary:hover{color:var(--gold);padding-left:8px}
.faq .a{overflow:hidden}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:11px;height:11px;margin-top:.35em;border-right:1.5px solid var(--gold-fill);border-bottom:1.5px solid var(--gold-fill);transform:rotate(45deg);transition:transform .6s var(--ease)}
.faq details[open] summary::after{transform:rotate(225deg)}
.faq .a{padding:0 0 22px;color:var(--ink-2);max-width:68ch}
.faq .a p+p{margin-top:.8em}

/* CTA band */
.cta-band{position:relative;overflow:hidden;background:var(--black);color:var(--on-dark)}
.cta-band h2{color:#fff}
.cta-band .lead{color:var(--on-dark-2)}
.cta-band .btn:not(.btn-gold){border-color:rgba(255,255,255,.6);color:#fff;--fill:#fff}
.cta-band .btn:not(.btn-gold):hover{color:var(--black)}
.cta-band .btn-gold{--fill:var(--on-dark)}
.cta-band .btn-gold:hover{color:var(--black)}
.cta-band .wrap{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:end}
.cta-band::before,.cta-band::after{content:"";position:absolute;top:50%;width:clamp(280px,38vw,520px);aspect-ratio:1;border:1px dashed rgba(201,162,83,.45);border-radius:50%;pointer-events:none}
.cta-band::before{right:-6%;translate:0 -58%}
.cta-band::after{right:calc(-6% + clamp(110px,15vw,200px));translate:0 -42%}
.cta-band h2{max-width:14ch}
.contact-lines{display:grid;gap:8px;font-size:16px;color:var(--ink-2)}
.cta-band .contact-lines{color:var(--on-dark-2)}
.cta-band .contact-lines a{color:#fff}
.contact-lines a{color:var(--ink);background-image:linear-gradient(currentColor,currentColor),linear-gradient(var(--gold-line),var(--gold-line));background-size:0 1px,100% 1px;background-position:100% 100%,0 100%}
.contact-lines a:hover{background-size:100% 1px,100% 1px;background-position:0 100%,0 100%}
@media (max-width:860px){.cta-band .wrap{grid-template-columns:1fr}}

/* Inner pages: black heads with the gold contour lines */
.page-head{padding-block:clamp(64px,9vw,128px) clamp(48px,6vw,88px);position:relative;overflow:hidden;background:var(--black);color:var(--on-dark)}
.page-head .wrap{display:grid;gap:24px;position:relative}
.page-head h1{max-width:17ch;font-size:clamp(44px,5.8vw + 6px,92px);color:#fff}
.page-head .lead{color:var(--on-dark-2)}
.page-head .contours{position:absolute;inset:-20% -20% -20% 30%;background-size:cover;opacity:.55;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 40%);mask-image:linear-gradient(90deg,transparent,#000 40%)}
.page-head .btn:not(.btn-gold){border-color:rgba(255,255,255,.6);color:#fff;--fill:#fff}
.page-head .btn:not(.btn-gold):hover,.page-head .btn:not(.btn-gold):focus-visible{color:var(--black)}
.page-head .btn-gold{--fill:var(--on-dark)}
.page-head .btn-gold:hover{color:var(--black)}
.page-head .stat-row b{color:#fff}
.page-head .stat-row span{color:var(--on-dark-2)}
.page-head .kicker{color:var(--gold-on-dark)}
/* A page head with the hotel behind it */
.page-head.has-pano{min-height:clamp(560px,82vh,880px);display:grid;align-items:end}
.ph-bg{position:absolute;inset:-8% 0 0;will-change:translate}
.ph-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.has-pano .hero-shade{z-index:0;background:linear-gradient(90deg,rgba(11,11,11,.88) 0%,rgba(11,11,11,.62) 42%,rgba(11,11,11,.12) 78%),linear-gradient(180deg,rgba(11,11,11,.7) 0%,transparent 28%,transparent 62%,var(--black) 100%)}
.has-pano .wrap{z-index:1}
.crumbs{font:600 10.5px/1.4 var(--f-ui);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.page-head .crumbs,.page-head .crumbs a{color:rgba(243,241,236,.6)}
.crumbs a{color:var(--muted);padding-bottom:1px}
.toc{display:flex;flex-wrap:wrap;gap:10px 26px;padding:20px 0;border-block:1px solid rgba(255,255,255,.14)}
.toc a{font:600 11px var(--f-ui);letter-spacing:.17em;text-transform:uppercase;color:rgba(243,241,236,.8)}
.toc a:hover{color:var(--gold-on-dark)}
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}
.gallery figure{margin:0;border-radius:4px;overflow:hidden;background:var(--linen)}
.gallery img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.gallery figure:first-child img{aspect-ratio:auto;height:100%}
@media (max-width:720px){.gallery{grid-template-columns:1fr 1fr}.gallery figure:first-child{grid-column:1/-1}}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px 32px;margin:0}
.facts div{display:grid;gap:4px;padding-top:14px;border-top:1px solid var(--line)}
.facts dt{font:600 11px var(--f-ui);letter-spacing:.17em;text-transform:uppercase;color:var(--ink)}
.facts dd{margin:0;color:var(--ink-2)}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:start}
@media (max-width:860px){.two{grid-template-columns:1fr}}
.list-rows{display:grid}
.list-rows div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:20px;padding:16px 0;border-top:1px solid var(--line);background:linear-gradient(var(--paper),var(--paper)) no-repeat 0 100%/100% 0;transition:background-size .6s var(--ease)}
.list-rows div:hover{background-size:100% 100%}
.list-rows div>*{transition:transform .6s var(--ease)}
.list-rows div:hover>*{transform:translateX(10px)}
.band-linen .list-rows div{background-image:linear-gradient(var(--paper),var(--paper))}
.list-rows b{font:400 19px/1.3 var(--f-serif)}
.list-rows span{color:var(--ink-2)}
@media (max-width:640px){.list-rows div{grid-template-columns:1fr;gap:4px}}

/* Forms */
.form{display:grid;gap:16px;padding:clamp(24px,3.4vw,44px);background:var(--paper);border:1px solid var(--line);border-top:2px solid var(--gold-fill);border-radius:0;box-shadow:var(--shadow)}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
.field{display:grid;gap:6px}
.field.full{grid-column:1/-1}
.field label{font:600 10.5px var(--f-ui);letter-spacing:.17em;text-transform:uppercase;color:var(--ink)}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);background:var(--cream) linear-gradient(var(--gold-fill),var(--gold-fill)) no-repeat 0 100%/0 2px;border:1px solid var(--line);border-radius:0;padding:13px 14px;transition:border-color .3s,box-shadow .3s,background-size .7s var(--ease),background-color .3s}
.field input:hover,.field select:hover,.field textarea:hover{background-color:var(--paper)}
.field label{transition:color .3s,transform .5s var(--ease);transform-origin:left}
.field:focus-within label{color:var(--gold);transform:translateX(3px)}
.field textarea{min-height:140px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--gold-fill);box-shadow:0 0 0 3px rgba(201,162,83,.22);background-size:100% 2px}
.field [aria-invalid="true"]{border-color:var(--error)}
.field .hint{font-size:13px;color:var(--muted)}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-msg{padding:12px 14px;border-radius:6px;font-size:15px;animation:msgIn .6s var(--ease) both}
@keyframes msgIn{from{opacity:0;transform:translateY(-6px)}}
.form-title{font:400 var(--step-3)/1.1 var(--f-display)}
.form-msg.ok{background:#E3F0E8;color:var(--ok)}
.form-msg.err{background:#F7E4DF;color:var(--error)}
.fine{font-size:13.5px;color:var(--muted)}
@media (max-width:560px){.fields{grid-template-columns:1fr}}

/* Journal */
.filters{position:relative;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.chip{position:relative;z-index:1;appearance:none;border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:9px 15px;font:600 11px var(--f-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);cursor:pointer;transition:color .4s var(--ease),border-color .4s,background-color .4s,transform .5s var(--ease)}
.chip:hover{border-color:var(--gold-fill);color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--black);border-color:var(--black);color:var(--gold-on-dark)}
.chip-pill{position:absolute;left:0;top:0;z-index:0;border-radius:999px;background:var(--black);width:var(--w,0);height:var(--h,0);transform:translate(var(--x,0),var(--y,0));transition:transform .6s var(--ease),width .6s var(--ease),height .6s var(--ease);pointer-events:none;opacity:0}
.filters.has-pill .chip-pill{opacity:1}
.filters.has-pill .chip[aria-pressed="true"]{background:transparent;border-color:transparent}
.post-list{display:grid;gap:0}
.post-row{display:grid;grid-template-columns:140px minmax(0,1fr);gap:24px;padding:24px 0;border-top:1px solid var(--line);text-decoration:none;background:linear-gradient(var(--paper),var(--paper)) no-repeat 0 0/0 100%;transition:background-size .7s var(--ease)}
.post-row:hover{background-size:100% 100%}
.post-row h2{transition:color .3s,transform .6s var(--ease)}
.post-row:hover h2{transform:translateX(10px)}
.post-row:last-child{border-bottom:1px solid var(--line)}
.post-row .meta{font:600 10.5px/1.5 var(--f-ui);letter-spacing:.15em;text-transform:uppercase;color:var(--muted);display:grid;gap:4px;align-content:start}
.post-row h2{font-size:var(--step-3)}
.post-row:hover h2{color:var(--gold)}
.post-row p{color:var(--ink-2);margin-top:8px;max-width:70ch}
@media (max-width:640px){.post-row{grid-template-columns:1fr;gap:8px}}

.article-head{padding-block:clamp(56px,8vw,112px) clamp(36px,4vw,56px);background:var(--black);color:var(--on-dark);margin-bottom:clamp(36px,4vw,56px)}
.article-head h1{color:#fff}
.article-head .lead{color:var(--on-dark-2)}
.article-head .crumbs,.article-head .crumbs a{color:rgba(243,241,236,.6)}
.article-head .byline{color:var(--on-dark-2)}
.article-head .byline b{color:#fff}
.article-head .wrap{display:grid;gap:20px;max-width:880px;margin-inline:auto}
.article-head h1{font-size:clamp(36px,4.4vw + 8px,64px);line-height:1.04}
.byline{display:flex;flex-wrap:wrap;gap:6px 18px;font:600 10.5px/1.5 var(--f-ui);letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.byline b{color:var(--ink);font-weight:600}
.article{max-width:880px;margin-inline:auto;padding-bottom:clamp(48px,6vw,96px)}
.article .body{max-width:68ch;color:var(--ink-2);font-size:clamp(17px,1.05rem,18px);line-height:1.75}
.article .body > *+*{margin-top:1.1em}
.article .body h2{margin-top:2em;font-size:clamp(26px,2.4vw + 10px,36px);line-height:1.15;color:var(--ink)}
.article .body h3{margin-top:1.6em;font-size:var(--step-2);color:var(--ink)}
.article .body a{color:var(--ink);text-decoration-color:var(--gold-fill);text-decoration-thickness:1px;text-underline-offset:3px}
.article .body ul,.article .body ol{padding-left:1.2em;display:grid;gap:.4em}
.article .body blockquote{margin:1.6em 0;padding:4px 0 4px 22px;border-left:2px solid var(--gold-fill);font:italic 400 var(--step-2)/1.45 var(--f-serif);color:var(--ink)}
.article .body hr{border:0;border-top:1px solid var(--line);margin:2em 0}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:0;background:var(--paper)}
.table-wrap table{border-collapse:collapse;width:100%;min-width:560px;font-size:15px;line-height:1.5}
.table-wrap th,.table-wrap td{padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
.table-wrap th{font:600 10.5px var(--f-ui);letter-spacing:.15em;text-transform:uppercase;color:var(--gold-on-dark);background:var(--black)}
.table-wrap tr:last-child td{border-bottom:0}
.related{max-width:68ch;margin-top:3em;padding-top:24px;border-top:1px solid var(--line);display:grid;gap:12px}
.related h2{font-size:var(--step-2);margin:0}
.related ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.related a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--gold-line)}
.signoff{max-width:68ch;margin-top:28px;font-size:15px;color:var(--muted)}
.article-hero{max-width:880px;margin:0 auto 32px;border-radius:0;overflow:hidden}
.article-hero img{width:100%;aspect-ratio:16/8;object-fit:cover}

/* Footer: black, gold outline wordmark */
.site-footer{background:var(--black);color:var(--on-dark-2);border-top:1px solid rgba(201,162,83,.25);padding-block:clamp(56px,7vw,96px) calc(32px + env(safe-area-inset-bottom,0px));--logo-ink:#FFFFFF}
.site-footer .wrap{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:32px}
.site-footer h2{font:600 10.5px var(--f-ui);letter-spacing:.2em;text-transform:uppercase;margin-bottom:16px;color:var(--gold-on-dark)}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.site-footer a:not(.btn){color:var(--on-dark)}
.site-footer a:not(.btn):hover{color:var(--gold-on-dark)}
.site-footer .btn-gold{--fill:var(--on-dark)}
.site-footer .btn-gold:hover{color:var(--black)}
.site-footer .brand svg{width:168px;height:42px}
.foot-note{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:26px;border-top:1px solid rgba(255,255,255,.1);font-size:13px;color:var(--on-dark-2)}
.foot-about{display:grid;gap:16px;color:var(--on-dark-2);font-size:15px;max-width:42ch}
@media (max-width:900px){.site-footer .wrap{grid-template-columns:1fr 1fr}.foot-about{grid-column:1/-1}}

/* Floating call button, as on most concierge sites */
.float-cta{position:fixed;right:max(18px,env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:45;box-shadow:0 10px 30px -10px rgba(0,0,0,.5);opacity:0;translate:0 16px;pointer-events:none;transition:opacity .5s var(--ease),translate .6s var(--ease),color .5s var(--ease),border-color .5s,transform .6s var(--ease)}
.float-cta.is-on{opacity:1;translate:none;pointer-events:auto}

.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--cream);padding:12px 18px;border-radius:999px;font-size:15px;z-index:60;box-shadow:var(--shadow)}
[hidden]{display:none!important}


/* ---------------------------------------------------------------- Accommodation */
.acc-head h1{max-width:13ch}
.range{position:relative;list-style:none;margin:6px 0 4px;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;max-width:980px}
.range li{position:relative;display:grid;gap:12px;align-content:start;padding-top:2px}
.range .dot{position:relative;z-index:1;width:15px;height:15px;border-radius:50%;background:var(--black);border:1.5px solid var(--gold-fill)}
.range li:last-of-type .dot{width:22px;height:22px;margin-top:-3.5px;background:var(--gold-fill);box-shadow:0 0 0 6px rgba(201,162,83,.22)}
.range .lbl{font:600 11px/1.45 var(--f-ui);letter-spacing:.15em;text-transform:uppercase;color:var(--on-dark-2);max-width:18ch}
.range li:last-of-type .lbl{color:var(--gold-on-dark)}
.range-line{position:absolute;left:7px;right:10px;top:9px;height:1px;background:linear-gradient(90deg,rgba(201,162,83,.35),var(--gold-fill));transform-origin:left}
.range-line::after{content:"";position:absolute;top:-2px;left:0;width:60px;height:5.5px;border-radius:9px;background:radial-gradient(closest-side,#fff8e6,transparent);opacity:0}
@media (max-width:720px){
  .range{grid-template-columns:1fr;gap:14px}
  .range li{grid-template-columns:22px 1fr;align-items:center;gap:14px;padding:0}
  .range .dot{justify-self:center}
  .range .lbl{max-width:none}
  .range-line{left:10px;right:auto;top:8px;bottom:10px;width:1.5px;height:auto;background:linear-gradient(180deg,var(--gold-line),var(--gold-fill));transform-origin:top}
  .range-line::after{display:none}
}
.listing-count{margin:-12px 0 22px;font:600 10.5px var(--f-ui);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.listing-count span{font-variant-numeric:tabular-nums;color:var(--ink);font-weight:600}
.listings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.4vw,32px);align-items:stretch}
@media (max-width:1020px){.listings{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.listings{grid-template-columns:1fr}}
.listing{position:relative;display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:0;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.04);transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .7s var(--ease),box-shadow .6s var(--ease),border-color .4s,opacity .45s var(--ease),scale .45s var(--ease)}
.listing:hover{box-shadow:var(--shadow);border-color:var(--gold-line)}
.listing::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(255,248,226,.5),transparent 45%);opacity:0;transition:opacity .5s}
.listing:hover::after{opacity:1}
.listings .listing.is-out{opacity:0!important;scale:.96}
.listing-media{position:relative;margin:0;aspect-ratio:4/3;overflow:hidden;background:var(--linen)}
.listing-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease),scale 1s var(--ease),filter .6s}
.listing:hover .listing-media img{scale:1.06}
.listing.is-rented .listing-media img{filter:grayscale(.55) brightness(.97)}
.listing.is-rented:hover .listing-media img{filter:none}
.listing-media .plaque{position:absolute;left:12px;bottom:12px;z-index:1}
.status{position:absolute;top:12px;left:12px;z-index:1;display:inline-flex;align-items:center;gap:7px;padding:6px 11px 6px 9px;border-radius:999px;background:rgba(255,253,248,.92);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);font:600 10px/1 var(--f-ui);letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.status i{position:relative;width:7px;height:7px;border-radius:50%;background:var(--ok)}
.is-available .status i::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--ok);animation:ping 2.2s var(--ease) infinite}
@keyframes ping{0%{transform:scale(1);opacity:.6}80%,100%{transform:scale(3.2);opacity:0}}
.is-on-request .status i{background:var(--gold-fill)}
.is-rented .status{color:var(--muted)}
.is-rented .status i{background:#9A9A9A}
.listing-body{display:flex;flex-direction:column;gap:10px;padding:18px 20px 20px;flex:1}
.listing-area{font:600 10.5px/1.5 var(--f-ui);letter-spacing:.15em;text-transform:uppercase;color:var(--gold)}
.listing h3{font:400 21px/1.25 var(--f-serif)}
.listing-facts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.listing-facts li{font:600 10.5px/1 var(--f-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);background:var(--cream);border:1px solid var(--line);border-radius:999px;padding:7px 10px}
.listing-desc{color:var(--ink-2);font-size:15px;line-height:1.6}
.ticks.small li{font-size:14.5px;padding-left:24px}
.listing-actions{margin-top:auto;padding-top:8px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}
.listing-chalet{background:var(--black);border-color:var(--black);color:var(--on-dark)}
.listing-chalet h3{color:var(--on-dark)}
.listing-chalet .listing-desc{color:var(--on-dark-2)}
.listing-chalet .listing-area{color:var(--gold-on-dark)}
.listing-chalet .listing-facts li{background:transparent;border-color:rgba(243,241,236,.25);color:var(--on-dark)}
.listing-chalet .btn-gold{--fill:var(--on-dark)}
.listing-chalet .btn-gold:hover{color:var(--black)}
.listing-chalet::after{background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(201,162,83,.18),transparent 45%)}
.chalet-art{position:relative;aspect-ratio:4/3;display:grid;place-content:center;justify-items:center;overflow:hidden;background:radial-gradient(80% 70% at 50% 40%,rgba(201,162,83,.22),transparent 70%)}
.chalet-art::before,.chalet-art::after{content:"";position:absolute;left:50%;top:50%;width:62%;aspect-ratio:1;border:1px dashed rgba(201,162,83,.45);border-radius:50%;translate:-50% -50%}
.chalet-art::after{width:86%;border-style:solid;border-color:rgba(201,162,83,.18)}
.chalet-num{font:400 clamp(96px,12vw,150px)/.85 var(--f-display);color:var(--gold-on-dark)}
.chalet-word{font:600 11px var(--f-ui);letter-spacing:.4em;text-transform:uppercase;color:var(--on-dark-2);margin-top:8px}

/* Booking */
.book-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,72px);align-items:start}
.book-frame{position:relative;border-radius:0;border-top:2px solid var(--gold-fill)!important;overflow:hidden;background:var(--paper) linear-gradient(100deg,transparent 30%,rgba(232,231,226,.9) 50%,transparent 70%) no-repeat;background-size:200% 100%;animation:shimmer 1.6s linear infinite;border:1px solid var(--line);box-shadow:var(--shadow);min-height:640px}
.book-frame iframe{display:block;width:100%;height:680px;border:0;background:transparent}
@keyframes shimmer{from{background-position:150% 0}to{background-position:-50% 0}}
@media (max-width:900px){.book-grid{grid-template-columns:1fr}}

/* Marquee of names */
.names-band .wrap+.marquee,.marquee{margin-top:2px}
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.marquee-track{display:flex;width:max-content;animation:marquee 46s linear infinite;will-change:transform}
.marquee.is-js .marquee-track{animation:none}
.marquee .names{flex:none;flex-wrap:nowrap;gap:0;padding:6px 0}
.marquee .names span{display:inline-flex;align-items:center;transition:color .3s}
.marquee .names span::after{content:"";width:7px;height:7px;margin:0 clamp(22px,3vw,40px);background:var(--gold-fill);transform:rotate(45deg);flex:none}
.marquee .names span:hover{color:var(--gold)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* Cursor companion (fine pointers only) */
/* ---------------------------------------------------------------- Motion
   Entrances use opacity and the translate property, so transform stays free for hover tilt and
   magnetic buttons. Nothing is hidden without JavaScript, and nothing moves with reduced motion. */
@media (prefers-reduced-motion:no-preference){
  /* Page change: a soft cross-fade with a small rise */
  @view-transition{navigation:auto}
  ::view-transition-old(root){animation:vtOut .32s var(--ease) both}
  ::view-transition-new(root){animation:vtIn .7s var(--ease) both}

  /* Load moment */
  .js .site-header{transform:translateY(-100%)}
  .js.is-ready .site-header:not(.is-hidden){transform:none}
  .js .logo-mark{transform:rotate(-180deg)}
  .js.is-ready .logo-mark{transform:none;transition-delay:.2s}
  .js .hero h1 .line>span{transform:translateY(108%);transition:transform 1.25s var(--ease)}
  .js.is-ready .hero h1 .line>span{transform:none}
  .js.is-ready .hero h1 .line:nth-child(2)>span{transition-delay:.09s}
  .js.is-ready .hero h1 .line:nth-child(3)>span{transition-delay:.18s}
  .js [data-hero]{opacity:0;translate:0 26px;transition:opacity 1s var(--ease),translate 1.15s var(--ease)}
  .js.is-ready [data-hero]{opacity:1;translate:none}
  .js.is-ready .hero-inner>[data-hero]:nth-child(1){transition-delay:.15s}
  .js.is-ready .hero-inner>[data-hero]:nth-child(3){transition-delay:.4s}
  .js.is-ready .hero-inner>[data-hero]:nth-child(4){transition-delay:.52s}
  .js.is-ready .hero-inner>[data-hero]:nth-child(5){transition-delay:.66s}
  /* The hotel settles into place, then breathes slowly */
  .js .hero-bg img,.js .ph-bg img{transform:scale(1.16);filter:brightness(.55);transition:transform 2.8s var(--ease),filter 2s ease}
  .js.is-ready .hero-bg img,.js.is-ready .ph-bg img{transform:none;filter:none}
  .hero-bg,.ph-bg{animation:breathe 22s ease-in-out 3s infinite alternate}
  @keyframes breathe{to{scale:1.06}}
  .pano-img img{transform:scale(1.12);transition:transform 2.4s var(--ease)}
  .pano.is-in .pano-img img{transform:none}
  @keyframes spin{to{rotate:360deg}}
  .hero .contours,.page-head .contours{animation:drift 26s ease-in-out infinite alternate}
  @keyframes drift{0%{transform:translate3d(0,0,0) scale(1)}100%{transform:translate3d(-2.5%,1.5%,0) scale(1.06)}}
  .btn-gold::after{animation:sheen 7.5s var(--ease-io) 2.4s infinite}
  @keyframes sheen{0%{transform:translateX(-130%)}16%,100%{transform:translateX(130%)}}
  .cta-band::before{animation:spin 60s linear infinite}
  .cta-band::after{animation:spin 80s linear infinite reverse}
  .chalet-art::before{animation:spin 50s linear infinite}

  /* Inner page heads */
  .js .page-head .wrap>*,.js .article-head .wrap>*{opacity:0;translate:0 24px;transition:opacity 1s var(--ease),translate 1.1s var(--ease)}
  .js.is-ready .page-head .wrap>*,.js.is-ready .article-head .wrap>*{opacity:1;translate:none}
  .js.is-ready .page-head .wrap>:nth-child(2),.js.is-ready .article-head .wrap>:nth-child(2){transition-delay:.08s}
  .js.is-ready .page-head .wrap>:nth-child(3),.js.is-ready .article-head .wrap>:nth-child(3){transition-delay:.16s}
  .js.is-ready .page-head .wrap>:nth-child(4),.js.is-ready .article-head .wrap>:nth-child(4){transition-delay:.26s}
  .js.is-ready .page-head .wrap>:nth-child(5),.js.is-ready .article-head .wrap>:nth-child(5){transition-delay:.36s}
  .js.is-ready .page-head .wrap>:nth-child(n+6){transition-delay:.46s}
  .js .page-head h1.split,.js .article-head h1.split{opacity:1;translate:none}

  /* Split headings: words rise out of a mask */
  .wd{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}
  .wd>span{display:inline-block;transform:translateY(110%);transition:transform 1.1s var(--ease);transition-delay:calc(var(--w,0)*50ms + var(--hd,0ms))}
  .is-in .wd>span,.js.is-ready .page-head h1 .wd>span,.js.is-ready .article-head h1 .wd>span{transform:none}

  /* Scroll reveals */
  .rv{opacity:0;translate:0 38px;transition:opacity 1s var(--ease),translate 1.15s var(--ease);transition-delay:calc(var(--d,0)*85ms)}
  .rv.is-in{opacity:1;translate:none}
  .rv-img{clip-path:inset(0 0 100% 0);transition:clip-path 1.35s var(--ease-io);transition-delay:calc(var(--d,0)*85ms)}
  .rv-img.is-in{clip-path:inset(0 0 0 0)}
  .rv-img img{transform:scale(1.2);transition:transform 1.8s var(--ease),scale 1s var(--ease)}
  .rv-img.is-in img{transform:none}
  .line-draw{border-top-color:transparent!important;position:relative}
  .line-draw::after{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:var(--line-c,var(--line));transform:scaleX(0);transform-origin:left;transition:transform 1.4s var(--ease-io);transition-delay:calc(var(--d,0)*85ms + 120ms)}
  .line-draw.is-in::after{transform:scaleX(1)}
  .steps li.line-draw{--line-c:var(--ink)}
  .on-dark .line-draw{--line-c:rgba(243,241,236,.16)}

  /* Week strip: bars grow in sequence */
  .js .week .bar{transform:scaleY(0);transition:transform 1.3s var(--ease);transition-delay:calc(var(--i,0)*90ms + 150ms)}
  .js .week.is-in .bar{transform:none}

  /* Range scale on the accommodation page */
  .js .range .range-line{transform:scaleX(0);transition:transform 1.8s var(--ease-io) .5s}
  .js.is-ready .range .range-line{transform:none}
  .js .range li{opacity:0;translate:0 14px;transition:opacity .8s var(--ease),translate .9s var(--ease);transition-delay:calc(var(--i,0)*160ms + .6s)}
  .js.is-ready .range li{opacity:1;translate:none}
  .js .range .dot{scale:0;transition:scale .8s cubic-bezier(.34,1.56,.64,1);transition-delay:calc(var(--i,0)*160ms + .65s)}
  .js.is-ready .range .dot{scale:1}
  .range-line::after{animation:glint 3.6s var(--ease-io) 2.8s infinite}
  @keyframes glint{0%{left:0;opacity:0}15%{opacity:1}85%{opacity:1}100%{left:calc(100% - 60px);opacity:0}}
  @media (max-width:720px){.js .range .range-line{transform:scaleY(0)}}

  /* Services chooser: the panel arrives in pieces */
  .panel.is-entering .copy>*{animation:panelIn .8s var(--ease) both}
  .panel.is-entering .copy>:nth-child(2){animation-delay:.06s}
  .panel.is-entering .copy>:nth-child(3){animation-delay:.12s}
  .panel.is-entering .copy>:nth-child(4){animation-delay:.18s}
  .panel.is-entering figure{animation:clipIn 1.1s var(--ease-io) both}
  .panel.is-entering figure img{animation:zoomOut 1.6s var(--ease) both}
  @keyframes panelIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
  @keyframes clipIn{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0 0 0 0)}}
  @keyframes zoomOut{from{transform:scale(1.18)}to{transform:none}}

  /* Scroll-lit quote */
  [data-scrub] .sw{opacity:.16;transition:opacity .35s}
  [data-scrub] .sw.on{opacity:1}


  /* Listing filter in and out */
  .listing.is-entering{animation:cardIn .7s var(--ease) both;animation-delay:calc(var(--d,0)*55ms)}
  @keyframes cardIn{from{opacity:0;translate:0 24px;scale:.97}}

  @keyframes vtOut{to{opacity:0;transform:translateY(-10px)}}
  @keyframes vtIn{from{opacity:0;transform:translateY(16px)}}
}
/* Safety net: if the motion script never runs, show everything */
.reveal-all .rv,.reveal-all [data-hero],.reveal-all .page-head .wrap>*,.reveal-all .article-head .wrap>*{opacity:1!important;translate:none!important}
.reveal-all .rv-img{clip-path:none!important}
.reveal-all .site-header{transform:none!important}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
  .marquee-track{flex-wrap:wrap;width:auto}
  .marquee .names+.names{display:none}
  .marquee .names{flex-wrap:wrap;gap:8px 0}
  .marquee{-webkit-mask-image:none;mask-image:none;padding-inline:var(--gutter)}
}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-stopped{overflow:clip}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
/* Small screens: the photograph sits behind more of the text, so the shade carries more weight */
@media (max-width:860px){
  .hero-shade{background:linear-gradient(180deg,rgba(11,11,11,.8) 0%,rgba(11,11,11,.58) 30%,rgba(11,11,11,.6) 70%,var(--black) 100%)}
  .has-pano .hero-shade{background:linear-gradient(180deg,rgba(11,11,11,.72) 0%,rgba(11,11,11,.62) 35%,rgba(11,11,11,.78) 75%,var(--black) 100%)}
}

/* ---------------------------------------------------------------- Edits from Davos Premier, 31 Oct 2026 */
/* Hero: a longer line, so a little smaller than the old three-word headline */
.hero h1{font-size:clamp(46px,min(12.4vw,12.2vh),150px);max-width:none}
@media (max-width:720px){.hero h1{font-size:clamp(42px,12.6vw,64px)}}

/* Organisation logos: one ink, full colour on hover */
.logo-marquee .marquee-track{align-items:center}
.logos{display:flex;align-items:center;flex:none;list-style:none;margin:0;padding:10px 0}
.logos li{display:flex;align-items:center;padding:0 clamp(28px,3.6vw,56px)}
.logos img{display:block;width:auto;max-width:none;filter:grayscale(1) brightness(0);opacity:.72;transition:filter .5s var(--ease),opacity .5s var(--ease)}
.logos li:hover img{filter:none;opacity:1}
@media (max-width:720px){.logos img{transform:scale(.82)}.logos li{padding:0 18px}}
@media (prefers-reduced-motion:reduce){.logo-marquee .logos+.logos{display:none}.logo-marquee .logos{flex-wrap:wrap;justify-content:center;gap:18px 0}}

/* Contact lines: the US number opens WhatsApp */
.via{font:600 9.5px/1 var(--f-ui);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-on-dark);margin-left:6px;vertical-align:2px}
.contact-lines .via{color:var(--gold)}
.cta-band .contact-lines .via{color:var(--gold-on-dark)}
.site-footer .social{display:flex;gap:16px;margin-top:4px}
.site-footer .social a{display:inline-grid;place-items:center;width:40px;height:40px;border:1px solid rgba(255,255,255,.18);border-radius:50%;color:var(--on-dark);transition:color .3s,border-color .3s,background-color .3s,transform .5s var(--ease)}
.site-footer .social a:hover{color:var(--black)!important;background:var(--gold-fill);border-color:var(--gold-fill);transform:translateY(-3px)}
.site-footer .social svg{width:18px;height:18px}

/* CTA band without a heading: the sentence carries it */
.cta-line{font:400 clamp(44px,5.2vw,80px)/1.05 var(--f-display);color:#fff;max-width:20ch}

/* About: the page opens on the founders' story */
.about-intro .duo-copy{gap:22px}
.about-intro h1{font:400 clamp(44px,5.4vw,80px)/1 var(--f-display);color:var(--ink)}
.about-intro .crumbs{margin-bottom:-4px}

/* Access: numbered terms */
.terms-list{list-style:none;counter-reset:t;margin:0;padding:0;display:grid;gap:18px}
.terms-list li{counter-increment:t;position:relative;padding-left:46px;color:var(--ink-2)}
.terms-list li::before{content:counter(t,decimal-leading-zero);position:absolute;left:0;top:.1em;font:400 15px/1.4 var(--f-display);color:var(--gold);letter-spacing:.04em}
.access-head .lead{font:400 clamp(20px,1.8vw,26px)/1.35 var(--f-serif);color:var(--on-dark-2)}

/* Chooser: photos keep their shape. Wide photos get the wider column, tall ones stay a sensible height */
.choice{font-size:clamp(18px,1.45vw,23px)}
@media (max-width:900px){.choice{font-size:18px}}
.panel:has(figure.wide){grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.panel figure:not(.wide){background:none;display:flex;justify-content:center}
.panel figure:not(.wide) img{width:auto;max-width:100%;max-height:min(68vh,600px)}
@media (max-width:900px){.panel:has(figure.wide){grid-template-columns:1fr}.panel figure:not(.wide) img{max-height:520px}}

/* FAQ answers with a list or a link */
.faq .a>*+*{margin-top:12px}
.faq .a .ticks{gap:8px}

/* Home: a few available properties under the services */
.listings-feature{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1020px){.listings-feature{grid-template-columns:repeat(2,minmax(0,1fr))}.listings-feature .listing:nth-child(3){display:none}}
@media (max-width:640px){.listings-feature{grid-template-columns:1fr}.listings-feature .listing:nth-child(3){display:block}}

/* Cookie choice (consent mode). Above the floating Book a call button, left on wide screens. */
.consent{position:fixed;z-index:60;left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));max-width:430px;padding:18px 18px 16px;background:var(--black);color:var(--cream);border:1px solid var(--line-dark);box-shadow:0 18px 44px -12px rgba(0,0,0,.45);font:400 14px/1.55 var(--f-ui)}
.consent[hidden]{display:none}
.consent p{margin:0 0 14px}
.consent a{color:var(--gold-on-dark)}
.consent-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.linkish{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer}
