/* ===== shared by the home page and every room: font, footer, back-to-top, cookie choice ===== */
@font-face{font-family:'Onest';font-style:normal;font-display:swap;font-weight:100 900;src:url(../fonts/onest-latin.woff2) format('woff2');
  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:'Onest';font-style:normal;font-display:swap;font-weight:100 900;src:url(../fonts/onest-latin-ext.woff2) format('woff2');
  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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ---------- footer ---------- */
/* it slides up over the last 32px of the section above, so the rounded corners show that section's real background */
.sfw{position:relative;z-index:2;background:transparent;margin-top:-32px}
.sfw--dark .sf{box-shadow:inset 0 1px 0 rgba(232,228,224,.12)}
.sf{--sf-bg:#1A1818;--sf-fg:#E8E4E0;--sf-rgb:232,228,224;position:relative;z-index:2;background:var(--sf-bg);color:var(--sf-fg);
  border-radius:2rem 2rem 0 0;overflow:hidden;font-family:'Onest',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif}
html[data-mode="dark"] .sf{--sf-bg:#0F0E0E;box-shadow:inset 0 1px 0 rgba(232,228,224,.1)}
.sf__in{position:relative;z-index:1;max-width:88rem;margin:0 auto;padding:5.5rem 1.25rem 1.5rem}
@media (min-width:1024px){.sf__in{padding:7rem 5.5rem 1.75rem}}
.sf__eye{display:inline-flex;align-items:center;gap:.6rem;margin:0;font-size:.8125rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:rgba(var(--sf-rgb),.6)}
.sf__eye i{width:.5rem;height:.5rem;border-radius:50%;background:#8FBF7A;box-shadow:0 0 0 0 rgba(143,191,122,.6);animation:sfPulse 2.2s ease-out infinite}
@keyframes sfPulse{70%{box-shadow:0 0 0 .55rem rgba(143,191,122,0)}100%{box-shadow:0 0 0 0 rgba(143,191,122,0)}}
.sf__h{margin:1.4rem 0 1.25rem;font-size:clamp(2.75rem,7.5vw,6.5rem);font-weight:600;line-height:.95;letter-spacing:-.035em}
.sf__h span{display:block;color:rgba(var(--sf-rgb),.42)}
.sf__p{max-width:46ch;margin:0;font-size:1.0625rem;line-height:1.6;color:rgba(var(--sf-rgb),.7)}
.sf__cta{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2.25rem}
.sf__btn{display:inline-flex;align-items:center;gap:.8rem;height:3.5rem;padding:0 .55rem 0 1.6rem;border:0;border-radius:999px;background:var(--sf-fg);color:var(--sf-bg);
  font:inherit;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .35s cubic-bezier(.16,1,.3,1)}
.sf__btn b{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--sf-bg);color:var(--sf-fg)}
.sf__btn svg{display:block;width:1.05rem;height:1.05rem;transition:transform .35s cubic-bezier(.16,1,.3,1)}
.sf__btn:hover{transform:translateY(-2px)}.sf__btn:hover svg{transform:translateX(3px)}
.sf__ghost{display:inline-flex;align-items:center;height:3.5rem;padding:0 1.5rem;border-radius:999px;border:1px solid rgba(var(--sf-rgb),.2);background:none;color:var(--sf-fg);
  font:inherit;font-size:1rem;font-weight:500;cursor:pointer;transition:background .25s}
.sf__ghost:hover{background:rgba(var(--sf-rgb),.07)}
.sf__cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.25rem 1.5rem;margin-top:5rem;padding-top:2.5rem;border-top:1px solid rgba(var(--sf-rgb),.12)}
.sf__cols>div:first-child{grid-column:1/-1}
@media (min-width:768px){.sf__cols{grid-template-columns:2fr 1fr 1fr}.sf__cols>div:first-child{grid-column:auto}}
.sf__cols h3{margin:0 0 1rem;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:rgba(var(--sf-rgb),.66)}
.sf__cols ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}
.sf__cols button,.sf__cols a{padding:0;border:0;background:none;color:rgba(var(--sf-rgb),.85);font:inherit;font-size:.9375rem;font-weight:500;cursor:pointer;text-align:left;text-decoration:none;transition:color .2s}
.sf__cols button:hover,.sf__cols a:hover{color:#fff}
.sf__cols li.st{font-size:.9375rem;color:rgba(var(--sf-rgb),.85)}
.sf__cols .work{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.6rem 1.5rem}
@media (pointer:coarse),(max-width:767.98px){.sf__cols ul{gap:0}.sf__cols .work{gap:0 1.5rem}.sf__cols button,.sf__cols a,.sf__bot button{min-height:44px;min-width:44px;display:inline-flex;align-items:center}.sf__cols li.st{min-height:32px;display:flex;align-items:center}}
.sf__bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin-top:1.75rem;font-size:.8125rem;color:rgba(var(--sf-rgb),.68)}
.sf__bot button{padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}.sf__bot button:hover{color:var(--sf-fg)}
.sf__bot a{color:inherit;text-decoration:underline;text-underline-offset:.2em;text-decoration-color:rgba(var(--sf-rgb),.35)}.sf__bot a:hover{color:var(--sf-fg)}
@media (prefers-reduced-motion:reduce){.sf__eye i{animation:none}}

/* ---------- floating back-to-top: shows scroll progress, flips colour over dark backgrounds ---------- */
.totop{--tt-bg:#1A1818;--tt-fg:#E8E4E0;--tt-ring:232,228,224;position:fixed;right:max(1.25rem,env(safe-area-inset-right));bottom:max(1.25rem,env(safe-area-inset-bottom));z-index:60;
  display:grid;place-items:center;width:3.25rem;height:3.25rem;padding:0;border:0;border-radius:50%;background:var(--tt-bg);color:var(--tt-fg);cursor:pointer;
  box-shadow:0 10px 30px -10px rgba(0,0,0,.45),0 0 0 1px rgba(var(--tt-ring),.14);
  opacity:0;visibility:hidden;transform:translateY(.75rem) scale(.9);
  transition:opacity .35s ease,visibility 0s linear .35s,transform .45s cubic-bezier(.16,1,.3,1),background .3s ease,color .3s ease,box-shadow .3s ease}
.totop.show{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.totop[data-on="dark"]{--tt-bg:#E8E4E0;--tt-fg:#1A1818;--tt-ring:26,24,24}
.totop svg{display:block}
.totop svg.ar{width:1.15rem;height:1.15rem;transition:transform .4s cubic-bezier(.16,1,.3,1)}
.totop svg.ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);pointer-events:none}
.totop .ring circle{fill:none;stroke:currentColor;stroke-width:2;opacity:.85;stroke-dasharray:var(--len);stroke-dashoffset:calc(var(--len) * (1 - var(--p,0)));transition:stroke-dashoffset .12s linear}
.totop .lbl{position:absolute;right:calc(100% + .6rem);top:50%;padding:.4rem .75rem;border-radius:999px;background:var(--tt-bg);color:var(--tt-fg);font:500 .8125rem/1 'Onest',ui-sans-serif,system-ui,sans-serif;
  white-space:nowrap;pointer-events:none;opacity:0;transform:translate(.4rem,-50%);transition:opacity .25s ease,transform .35s cubic-bezier(.16,1,.3,1);box-shadow:0 0 0 1px rgba(var(--tt-ring),.14)}
@media (hover:hover){.totop:hover{transform:translateY(-3px)}.totop:hover svg.ar{transform:translateY(-3px)}.totop:hover .lbl{opacity:1;transform:translate(0,-50%)}}
.totop:focus-visible{outline:2px solid #C4B0B0;outline-offset:3px}
@media (max-width:767.98px){.totop{width:3rem;height:3rem}}

/* ---------- analytics choice (only when a Google Analytics ID is set) ---------- */
.ck{position:fixed;left:50%;bottom:max(1rem,env(safe-area-inset-bottom));z-index:90;transform:translateX(-50%);width:min(34rem,calc(100% - 2rem));
  display:flex;align-items:center;gap:1rem;padding:.9rem .9rem .9rem 1.2rem;border-radius:1.25rem;background:#1A1818;color:#E8E4E0;
  box-shadow:0 18px 40px -16px rgba(0,0,0,.55),0 0 0 1px rgba(232,228,224,.12);font:400 .875rem/1.45 'Onest',ui-sans-serif,system-ui,sans-serif}
.ck[hidden]{display:none}
.ck p{margin:0;flex:1}
.ck div{display:flex;gap:.5rem;flex:none}
.ck button{height:2.5rem;padding:0 1rem;border-radius:999px;border:1px solid rgba(232,228,224,.25);background:none;color:inherit;font:inherit;font-size:.8125rem;font-weight:600;line-height:1;cursor:pointer}
.ck button[data-ck="yes"]{background:#E8E4E0;color:#1A1818;border-color:transparent}
@media (max-width:539.98px){.ck{flex-direction:column;align-items:stretch}.ck div button{flex:1}}
