/* ============================================================
   GoldKey Property, Landing Page
   ============================================================ */

/* Self-hosted fonts (SIL Open Font License, see assets/fonts/OFL-LICENSE.txt) */
@font-face{font-family:"Figtree";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/figtree-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/figtree-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/fonts/figtree-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:700;font-display:swap;src:url("/assets/fonts/figtree-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:800;font-display:swap;src:url("/assets/fonts/figtree-latin-800-normal.woff2") format("woff2")}
@font-face{font-family:"Inter Tight";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/inter-tight-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Inter Tight";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/inter-tight-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Inter Tight";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/fonts/inter-tight-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/instrument-serif-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url("/assets/fonts/instrument-serif-latin-400-italic.woff2") format("woff2")}

:root{
  --cream:#FAF8F5;
  --cream-2:#F1EEE8;
  --ink:#1A1A1A;
  --ink-2:#2a2a28;
  --ink-soft:#6a6a64;
  --dark:#121212;
  --dark-2:#181818;
  --gold:#C6A15B;
  --gold-2:#E4C878;
  --gold-deep:#A9843F;
  --line:rgba(26,26,26,.12);
  --line-dark:rgba(255,255,255,.12);
  --radius:14px;
  --maxw:1280px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;background:#000}
body{
  font-family:"Inter Tight",system-ui,sans-serif;
  /* dark page canvas: iPhone Safari tints the status-bar strip from this, so it stays black
     instead of a white band (every section paints its own background) */
  background:#000;
  color:var(--ink);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}

h1,h2,h3,h4{
  font-family:"Figtree",sans-serif;
  font-weight:600;
  line-height:1.05;
  letter-spacing:-.02em;
}
em{font-style:italic}

/* ---------- shared bits ---------- */
.eyebrow{
  display:inline-block;
  font-family:"Figtree",sans-serif;
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--gold-deep);
  margin-bottom:1.1rem;
}
.section{padding:120px clamp(20px,6vw,88px)}
.section-head{max-width:var(--maxw);margin:0 auto 64px}
.section-title{
  font-size:clamp(2.3rem,5.2vw,3.6rem);
  max-width:14ch;
}
.section-lead{
  margin-top:1.25rem;
  max-width:52ch;
  color:var(--ink-soft);
  font-size:1.05rem;
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  height:54px;padding:0 28px;border-radius:12px;
  font-family:"Figtree",sans-serif;font-weight:600;font-size:.98rem;
  cursor:pointer;border:1px solid transparent;
  transition:transform .35s var(--ease),background .35s var(--ease),color .35s var(--ease),box-shadow .35s var(--ease);
  white-space:nowrap;
}
.btn:hover{transform:translateY(-2px)}
.btn-gold{background:var(--gold);color:#1a1508;box-shadow:0 8px 24px -12px rgba(198,161,91,.9)}
.btn-gold:hover{background:var(--gold-2)}
.btn-dark{background:var(--ink);color:var(--cream)}
.btn-dark:hover{background:#000}
.btn-light{background:var(--cream);color:var(--ink)}
.btn-light:hover{background:#fff}
.btn-ghost{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.35);backdrop-filter:blur(6px)}
.btn-ghost:hover{background:rgba(255,255,255,.16)}
.btn-block{width:100%}

/* ============================================================
   NAVBAR
   ============================================================ */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:60;
  display:flex;align-items:center;justify-content:space-between;
  padding:22px clamp(20px,5vw,56px);
  transition:background .4s var(--ease),padding .4s var(--ease),box-shadow .4s var(--ease),transform .45s var(--ease);
}
.nav.nav-hidden{transform:translateY(-115%)}
/* over the hero but past the very top: light frosted layer so the nav stays legible */
.nav.nav-glass{
  background:rgba(16,16,16,.34);
  backdrop-filter:blur(16px) saturate(1.1);-webkit-backdrop-filter:blur(16px) saturate(1.1);
  box-shadow:0 1px 0 rgba(255,255,255,.08);
}
.nav.scrolled{
  background:rgba(16,16,16,.82);
  backdrop-filter:blur(14px);
  padding:14px clamp(20px,5vw,56px);
  box-shadow:0 1px 0 rgba(255,255,255,.06);
}
.nav-logo img{height:44px;width:auto;transition:height .4s var(--ease)}
.nav.scrolled .nav-logo img{height:38px}
.nav-right{display:flex;align-items:center;gap:14px}
/* centred inline links , desktop only */
.nav-links{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  display:flex;align-items:center;gap:clamp(28px,3vw,48px);
}
.nav-links a{
  position:relative;
  font-family:"Inter Tight",system-ui,sans-serif;
  font-size:.82rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(255,255,255,.86);
  text-shadow:0 1px 12px rgba(0,0,0,.35);
  padding:6px 0;
  transition:color .3s var(--ease);
}
.nav-links a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--gold-2);transform:scaleX(0);transform-origin:left;
  transition:transform .35s var(--ease);
}
.nav-links a:hover{color:#fff}
.nav-links a:hover::after{transform:scaleX(1)}
@media(min-width:1025px){
  .nav-right .nav-toggle{display:none}
}
@media(max-width:1024px){
  .nav-links{display:none}
}
/* matches the hero's "Discuss your property" button */
.nav-cta{
  height:clamp(42px,2.8vw,52px);padding:0 clamp(18px,1.35vw,24px);
  border-radius:0;border:1.5px solid #fff;
  background:#fff;color:var(--ink);
  font-family:"Inter Tight",system-ui,sans-serif;
  font-size:clamp(.9rem,1vw,1.1rem);font-weight:500;
}
.nav-cta:hover{transform:none;background:var(--cream-2);border-color:var(--cream-2);color:var(--ink)}

.nav-toggle{
  width:52px;height:46px;border-radius:12px;
  background:var(--ink);
  border:1px solid rgba(255,255,255,.14);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  cursor:pointer;transition:background .3s var(--ease);
}
.nav-toggle:hover{background:#000}
.nav-toggle span{display:block;width:20px;height:1.8px;background:#fff;border-radius:2px;transition:transform .35s var(--ease),opacity .3s var(--ease)}
body.menu-open .nav-toggle span:nth-child(1){transform:translateY(6.8px) rotate(45deg)}
body.menu-open .nav-toggle span:nth-child(2){opacity:0}
body.menu-open .nav-toggle span:nth-child(3){transform:translateY(-6.8px) rotate(-45deg)}

/* ============================================================
   FULLSCREEN MENU
   ============================================================ */
.menu{
  position:fixed;inset:0;z-index:55;
  background:var(--dark);
  clip-path:circle(0% at calc(100% - 60px) calc(44px + env(safe-area-inset-top, 0px)));
  transition:clip-path .7s var(--ease);
  pointer-events:none;
  display:flex;align-items:center;
}
body.menu-open .menu{clip-path:circle(150% at calc(100% - 60px) calc(44px + env(safe-area-inset-top, 0px)));pointer-events:auto}
.menu-inner{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 clamp(24px,6vw,88px);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh}
.menu-links{list-style:none;text-align:center;display:flex;flex-direction:column;gap:10px}
.menu-links li{overflow:hidden}
.menu-links a{
  display:inline-block;
  font-family:"Figtree",sans-serif;font-weight:600;
  font-size:clamp(1.9rem,6vw,4rem);
  color:#fff;letter-spacing:.02em;line-height:1.3;text-transform:uppercase;
  padding:6px 0;
  opacity:.6;transition:opacity .3s var(--ease),color .3s var(--ease);
}
.menu-links a:hover{opacity:1;color:var(--gold-2)}
.menu-social{
  display:flex;gap:16px;margin-top:44px;
  opacity:0;transform:translateY(14px);
  transition:opacity .5s var(--ease) .25s,transform .5s var(--ease) .25s;
}
body.menu-open .menu-social{opacity:1;transform:none}
.menu-social a{
  width:46px;height:46px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:#fff;border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.05);
  transition:background .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease),transform .3s var(--ease);
}
.menu-social a:hover{background:var(--gold-2);border-color:var(--gold-2);color:#1a1508;transform:translateY(-3px)}
.menu-social svg{width:22px;height:22px}

/* ============================================================
   LOADING INTRO (preloader)
   ============================================================ */
body.loading{overflow:hidden}
body.lightbox-open{overflow:hidden}
/* no page scroll behind the fullscreen menu */
html:has(body.menu-open),body.menu-open{overflow:hidden;overscroll-behavior:none}
body.menu-open{touch-action:none}
.preloader{
  position:fixed;inset:0;z-index:200;
  background:#000;
  display:flex;align-items:center;justify-content:center;
  will-change:transform;
  transition:transform .7s cubic-bezier(.76,0,.24,1);
}
.preloader.is-done{transform:translateY(-100%);pointer-events:none}
.preloader-video{
  width:clamp(280px,60vw,620px);height:auto;
  max-width:92vw;max-height:80vh;
  object-fit:contain;
}
@media(prefers-reduced-motion:reduce){
  .preloader-video{opacity:1}
}

/* ============================================================
   HERO
   ============================================================ */
.hero-wrap{position:relative;height:100vh;background:var(--dark)}
.hero-sticky{
  position:relative;height:100vh;overflow:hidden;
  display:flex;align-items:flex-end;
  background:var(--dark);
}
.hero-video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;z-index:1;
  filter:brightness(.92) saturate(1.05);
}
.hero-vignette{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  background:
    /* light left lift behind the bottom-left text */
    linear-gradient(to right, rgba(8,8,8,.45) 0%, rgba(8,8,8,.18) 40%, rgba(8,8,8,0) 62%),
    /* soft all-around edge vignette */
    radial-gradient(120% 120% at 50% 40%, rgba(0,0,0,0) 45%, rgba(0,0,0,.45) 100%),
    /* top fade for the nav + deeper bottom fade for the text */
    linear-gradient(to bottom, rgba(0,0,0,.5) 0%, rgba(0,0,0,0) 20%, rgba(0,0,0,0) 45%, rgba(0,0,0,.72) 100%);
}
/* blur only the lower part of the video, fading out upward (reference-style) */
.hero-blur{
  position:absolute;left:0;right:0;bottom:0;height:42%;z-index:2;pointer-events:none;
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  /* very subtle dark tint over the blurred band */
  background:linear-gradient(to top,rgba(0,0,0,.28) 0%,rgba(0,0,0,.14) 55%,rgba(0,0,0,0) 100%);
  -webkit-mask-image:linear-gradient(to top,#000 0%,#000 38%,transparent 100%);
          mask-image:linear-gradient(to top,#000 0%,#000 38%,transparent 100%);
}
.hero-content{
  position:relative;z-index:3;
  /* full-width hero with its own side padding (a bit wider than the nav) */
  width:100%;max-width:none;
  margin:0;padding:0 clamp(20px,6.5vw,128px) clamp(72px,10vh,104px);
  color:#fff;
}
.hero-badge{
  display:flex;align-items:center;gap:13px;width:max-content;
  padding:0;margin-bottom:26px;
  color:rgba(255,255,255,.88);
  font-family:"Figtree",sans-serif;font-size:.72rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;
}
.hero-badge::before{content:"";display:block;width:26px;height:1px;background:var(--gold-2)}
.hero-title{
  font-size:clamp(2.1rem,5vw,4.2rem);
  line-height:1.04;
  font-weight:600;
  text-shadow:0 2px 40px rgba(0,0,0,.4);
}
.hero-line{display:block}
.hero-mobile-break{display:none}
.flip-word-holder{
  display:inline-block;position:relative;
  height:1.06em;overflow:hidden;
  vertical-align:bottom;
  transition:width .48s cubic-bezier(.22,1,.36,1);
  will-change:width;
}
/* the masked holder clips the title's soft text-shadow into a faint box , drop it here */
.flip-word-holder,.flip-word{text-shadow:none}
/* rotating gold words (quality / services / standards) in Instrument Serif italic */
.flip-word-holder{
  font-family:"Instrument Serif",Georgia,serif;
  font-style:italic;font-weight:400;
  font-size:1.12em;      /* serif reads smaller , nudge up to match Figtree */
  letter-spacing:0;
}
.flip-word{
  position:absolute;left:0;bottom:0;
  display:inline-block;white-space:nowrap;
  color:var(--gold-2);line-height:1.06;
  -webkit-text-stroke:.022em currentColor;paint-order:stroke fill; /* one-weight font, thicken slightly */
}
.flip-char{
  display:inline-block;
  transition:transform .48s cubic-bezier(.22,1,.36,1),opacity .48s cubic-bezier(.22,1,.36,1);
  will-change:transform;
}
.hero-sub{
  margin-top:24px;max-width:44ch;
  font-size:clamp(.92rem,1.1vw,1.02rem);
  font-weight:500;
  color:rgba(255,255,255,.9);
}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.hero-cta .btn{height:48px;padding:0 22px;font-size:.92rem}
.hero-cta .btn-dark{background:#fff;color:var(--ink);border-color:#fff}
.hero-cta .btn-dark:hover{background:var(--cream-2);color:var(--ink);border-color:var(--cream-2)}
.hero-cta .btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.82);backdrop-filter:none}
.hero-cta .btn-ghost:hover{background:rgba(255,255,255,.12);color:#fff;border-color:#fff}
.hero-aside{
  position:absolute;z-index:3;
  /* mirrors .hero-content side padding */
  right:clamp(20px,6.5vw,128px);
  bottom:clamp(72px,10vh,104px);
  display:flex;flex-direction:column;align-items:flex-end;gap:16px;
}
.hero-rating{
  display:flex;align-items:center;gap:12px;color:#fff;
  font-size:clamp(.88rem,1vw,1rem);font-weight:500;
  text-shadow:0 2px 24px rgba(0,0,0,.5);
  opacity:0;transform:translateY(16px);
  animation:ratingIn 1s var(--ease) .5s forwards;
}
.hero-stars{display:flex;gap:4px;color:var(--gold-2)}
.hero-stars svg{width:18px;height:18px}
@keyframes ratingIn{to{opacity:1;transform:none}}
.hero-corner{
  max-width:34ch;text-align:right;
  color:rgba(255,255,255,.82);
  font-family:"Figtree",sans-serif;
  font-size:clamp(.66rem,.9vw,.8rem);
  font-weight:500;letter-spacing:.14em;line-height:1.5;
  text-transform:uppercase;
  text-shadow:0 2px 24px rgba(0,0,0,.5);
  opacity:0;transform:translateY(16px);
  animation:cornerIn 1s var(--ease) .6s forwards;
}
@keyframes cornerIn{to{opacity:.82;transform:none}}
/* very subtle shadow under the hero text */
.hero-badge,.hero-title,.hero-sub,.hero-rating-text,.hero-corner{
  text-shadow:0 1px 2px rgba(0,0,0,.22),0 2px 14px rgba(0,0,0,.22);
}
.hero-stars{filter:drop-shadow(0 1px 2px rgba(0,0,0,.22))}
/* the rotating word sits in a clipped box, so it uses a filter shadow */
.flip-word{filter:drop-shadow(0 1px 2px rgba(0,0,0,.22)) drop-shadow(0 2px 6px rgba(0,0,0,.16))}
/* subtle dark vignette framing the whole hero */
.hero-sticky::after{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  box-shadow:inset 0 0 clamp(120px,14vw,240px) clamp(20px,3vw,60px) rgba(0,0,0,.42);
}

/* ---------- hero typography & buttons , reference style (big, tight, square) ---------- */
.hero-badge{
  margin-bottom:clamp(10px,1.1vw,18px);
  color:#fff;
  font-family:"Inter Tight",system-ui,sans-serif;
  font-size:clamp(.7rem,.75vw,.85rem);font-weight:500;letter-spacing:.2em;
}
.hero-badge::before{display:none}
.hero-title{
  font-size:clamp(2.3rem,4.3vw,4.9rem);
  line-height:1;
  font-weight:600;
  letter-spacing:-.03em;
}
.hero-title .flip-word-holder{letter-spacing:0}
.hero-sub{
  margin-top:clamp(14px,1.4vw,24px);max-width:40ch;
  font-size:clamp(.95rem,1.1vw,1.25rem);
  font-weight:400;line-height:1.45;
  color:#fff;
}
.hero-cta{gap:clamp(12px,1.1vw,20px);margin-top:clamp(24px,2.4vw,40px)}
.hero-cta .btn{
  height:clamp(42px,2.8vw,52px);
  padding:0 clamp(18px,1.35vw,24px);
  border-radius:0;border-width:1.5px;
  font-family:"Inter Tight",system-ui,sans-serif;
  font-size:clamp(.9rem,1vw,1.1rem);font-weight:500;
}
.hero-cta .btn:hover{transform:none}
.hero-cta .btn-ghost{border-color:#fff}
.scroll-hint{
  position:absolute;left:50%;bottom:32px;transform:translateX(-50%);
  z-index:3;display:flex;flex-direction:column;align-items:center;gap:12px;
  color:rgba(255,255,255,.7);font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;
}
.scroll-line{width:1px;height:46px;background:linear-gradient(to bottom,var(--gold-2),transparent);animation:scrollpulse 2s var(--ease) infinite}
@keyframes scrollpulse{0%{transform:scaleY(.2);transform-origin:top;opacity:.4}50%{transform:scaleY(1);opacity:1}100%{transform:scaleY(.2);transform-origin:bottom;opacity:.4}}

/* ============================================================
   INTRO STATEMENT
   ============================================================ */
.intro{
  background:var(--cream);
  padding:130px clamp(20px,6vw,88px);
  text-align:center;
}
.intro .eyebrow{color:var(--gold-deep)}
.intro-statement{
  max-width:20ch;margin:0 auto;
  font-size:clamp(2rem,5vw,4rem);
  font-weight:500;line-height:1.12;color:var(--ink);
}
.intro-statement .fw{
  color:var(--ink);
  opacity:.18;
  transition:opacity .15s linear;
}
@media(prefers-reduced-motion:reduce){.intro-statement .fw{opacity:1}}

.intro-image{
  margin:clamp(56px,8vw,110px) auto 0;
  max-width:1120px;width:100%;
  border-radius:22px;overflow:hidden;
  box-shadow:0 60px 120px -60px rgba(0,0,0,.55);
  transform:translateY(120px) scale(.84);
  opacity:0;
  will-change:transform,opacity;
}
.intro-image img,
.intro-image video{width:100%;height:auto;display:block}
@media(prefers-reduced-motion:reduce){
  .intro-image{transform:none;opacity:1}
}

/* ============================================================
   WORK / GALLERY
   ============================================================ */
.work{background:var(--cream);position:relative;padding-top:108px}
.work-head{
  max-width:var(--maxw);margin:0 auto 64px;
  display:grid;grid-template-columns:1fr auto;gap:48px;align-items:start;
}
.work-head .section-head{margin:0;align-self:center}
.work-head .section-title{max-width:none;white-space:nowrap}
.work-head .section-lead{max-width:70ch}
/* lift the card so it straddles the Team ⇄ Portfolio divide (see reference) */
.work-head .airbnb-card{margin-top:-230px;z-index:5}

/* Airbnb review card */
.airbnb-card{
  width:460px;max-width:100%;
  position:relative;border-radius:26px;cursor:pointer;
  box-shadow:0 40px 80px -48px rgba(0,0,0,.45);
  transform:perspective(900px) rotateX(0deg) rotateY(0deg);
  transform-style:preserve-3d;will-change:transform;
  transition:transform .5s cubic-bezier(.22,.61,.36,1);
}
.airbnb-card.is-tilting{transition:none}
.airbnb-card:focus-visible{outline:2px solid var(--gold);outline-offset:4px}

/* flip mechanics */
.airbnb-card-inner{
  position:relative;width:100%;
  transform-style:preserve-3d;
  transition:transform .75s cubic-bezier(.4,.15,.2,1);
}
.airbnb-card.is-flipped .airbnb-card-inner{transform:rotateY(180deg)}
.airbnb-face{
  border-radius:26px;overflow:hidden;
  -webkit-backface-visibility:hidden;backface-visibility:hidden;
}
.airbnb-front{
  position:relative;
  background:#fff;border:1px solid var(--line);
  border-radius:26px;padding:36px 40px;
  display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center;
}
.airbnb-back{
  position:absolute;inset:0;transform:rotateY(180deg);
  background:linear-gradient(120deg,#C21E92 0%,#E01E5B 46%,#F35B44 100%);
  color:#fff;
}
.airbnb-flip-hint{
  position:absolute;top:16px;right:18px;z-index:3;
  display:inline-flex;align-items:center;gap:5px;
  font-family:"Figtree",sans-serif;font-size:.72rem;font-weight:600;
  letter-spacing:.04em;color:var(--ink-soft);opacity:.6;
  transition:opacity .3s var(--ease);pointer-events:none;
}
.airbnb-card:hover .airbnb-flip-hint{opacity:.95}
.airbnb-flip-hint svg{width:14px;height:14px}

/* back , watermark pattern */
.airbnb-back-pattern{
  position:absolute;inset:0;width:100%;height:100%;
  color:#fff;opacity:.16;
  -webkit-mask-image:radial-gradient(135% 130% at 100% 0%,#000 22%,rgba(0,0,0,.35) 55%,transparent 82%);
  mask-image:radial-gradient(135% 130% at 100% 0%,#000 22%,rgba(0,0,0,.35) 55%,transparent 82%);
}
.airbnb-back-content{position:absolute;inset:0;padding:34px 36px}
.airbnb-back-head h3{
  font-family:"Figtree",sans-serif;font-weight:700;font-size:2rem;
  color:#fff;line-height:1.05;letter-spacing:-.01em;
}
.airbnb-back-head p{
  font-family:"Figtree",sans-serif;font-weight:600;font-size:1.35rem;
  color:rgba(255,255,255,.72);line-height:1.1;margin-top:2px;
}
.airbnb-back-quote{
  position:absolute;left:36px;right:198px;bottom:32px;
  font-size:1rem;line-height:1.42;color:rgba(255,255,255,.9);font-weight:500;
}
.airbnb-back-photo{
  position:absolute;right:32px;bottom:30px;
  width:150px;height:172px;border-radius:18px;overflow:hidden;
  box-shadow:0 18px 34px -18px rgba(0,0,0,.5);
}
.airbnb-back-photo img{width:100%;height:100%;object-fit:cover;object-position:center 18%}
.airbnb-back-link{
  display:inline-flex;align-items:center;gap:5px;margin-top:16px;
  font-size:.88rem;font-weight:600;color:#fff;white-space:nowrap;
  border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:2px;
  transition:border-color .3s var(--ease);
}
.airbnb-back-link:hover{border-color:#fff}
.airbnb-back-link svg{width:14px;height:14px;flex:none}
.airbnb-profile{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px}
.airbnb-avatar{
  position:relative;width:118px;height:118px;border-radius:50%;
  overflow:visible;margin-bottom:16px;
}
.airbnb-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center 22%}
.airbnb-superbadge{
  position:absolute;right:2px;bottom:2px;
  width:38px;height:38px;border-radius:50%;
  background:linear-gradient(145deg,#E0245E,#C21E5B);
  border:3px solid #fff;
  display:flex;align-items:center;justify-content:center;
}
.airbnb-superbadge svg{width:18px;height:18px}
.airbnb-name{font-family:"Figtree",sans-serif;font-weight:700;font-size:2.3rem;color:var(--ink);line-height:1.05}
.airbnb-super{display:inline-flex;align-items:center;gap:7px;font-size:1.05rem;color:var(--ink-soft);margin-top:4px}
.airbnb-super svg{width:17px;height:17px}
.airbnb-stats{display:flex;flex-direction:column}
.airbnb-stat{padding:16px 0}
.airbnb-stat:first-child{padding-top:0}
.airbnb-stat:last-child{padding-bottom:0}
.airbnb-stat + .airbnb-stat{border-top:1px solid var(--line)}
.airbnb-stat-num{display:flex;align-items:center;gap:4px;font-family:"Figtree",sans-serif;font-weight:700;font-size:2rem;color:var(--ink);line-height:1}
.airbnb-star{width:20px;height:20px;color:var(--ink)}
.airbnb-stat-label{font-size:.98rem;color:var(--ink-soft);margin-top:4px}

.gallery-item{
  break-inside:avoid;margin-bottom:20px;
  border-radius:12px;overflow:hidden;
  background:var(--cream-2);
  box-shadow:0 20px 40px -34px rgba(0,0,0,.5);
}
.gallery-item img{
  width:100%;height:auto;
  transition:transform .8s var(--ease),filter .6s var(--ease);
  filter:saturate(1.02);
}
.gallery-item:hover img{transform:scale(1.05)}

/* ============================================================
   SERVICES
   ============================================================ */
.services{background:var(--cream)}
.services-grid{
  max-width:var(--maxw);margin:0 auto;
  display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,7vw,110px);
  align-items:start;
}
.services-aside{position:sticky;top:120px}
.services-aside .btn{margin-top:32px;border-radius:0}
.service{
  display:flex;gap:28px;
  padding:40px 0;border-top:1px solid var(--line);
}
.service:first-child{padding-top:0;border-top:none}
.service-num{
  font-family:"Figtree",sans-serif;font-weight:700;
  font-size:1.1rem;color:var(--gold-deep);
  flex:none;padding-top:4px;
}
.service-body h3{font-size:clamp(1.4rem,2.6vw,1.9rem);margin-bottom:14px}
.service-body p{color:var(--ink-soft);font-size:1.02rem}

/* ============================================================
   TEAM (dark)
   ============================================================ */
.team{background:var(--dark);color:#fff;padding-bottom:200px}
.team .eyebrow{color:var(--gold-2)}
.team-title-gold{color:var(--gold-2)}
.team .section-lead{color:rgba(255,255,255,.7)}
.team-grid{
  max-width:var(--maxw);margin:0 auto;
  display:grid;grid-template-columns:repeat(2,minmax(0,440px));gap:32px;
}
@media(min-width:1025px){
  .team-layout{
    max-width:var(--maxw);margin:0 auto;
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);
    gap:56px;align-items:start;
  }
  .team-layout .section-head{margin:0;position:sticky;top:120px}
  .team-layout .team-grid{margin:0;width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}
}
.team-card{
  background:var(--dark-2);
  border:1px solid var(--line-dark);
  border-radius:var(--radius);overflow:hidden;
  display:flex;flex-direction:column;
}
.team-photo{aspect-ratio:1/1;overflow:hidden;background:#0e0e0e}
.team-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .8s var(--ease)}
.team-photo img.team-photo-klaudia{object-position:center 22%}
.team-photo img.team-photo-klaudia{transform:scale(1.1);transform-origin:center 25%}
.team-card:hover .team-photo img.team-photo-klaudia{transform:scale(1.14)}
.team-card:hover .team-photo img{transform:scale(1.04)}
.team-info{padding:28px 30px 32px}
.team-info h3{font-size:1.55rem}
.team-role{display:block;color:var(--gold-2);font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;margin:8px 0 18px;font-weight:600;font-family:"Figtree",sans-serif}
.team-info p{color:rgba(255,255,255,.72);font-size:.96rem}

/* ============================================================
   WHY PARTNER
   ============================================================ */
.why{background:var(--dark);color:#fff}
.why .eyebrow{color:var(--gold-2)}
.why .section-lead{color:rgba(255,255,255,.7)}
.why-grid{
  max-width:var(--maxw);margin:0 auto;
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px;
}
.why-card{
  background:var(--dark-2);border:1px solid var(--line-dark);
  border-radius:var(--radius);padding:32px 28px 34px;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease);
}
.why-card:hover{transform:translateY(-6px);box-shadow:0 26px 50px -30px rgba(0,0,0,.7);border-color:rgba(198,161,91,.5)}
.why-icon{
  display:inline-flex;align-items:center;justify-content:flex-start;
  color:var(--gold-2);
  margin-bottom:20px;
}
.why-icon svg{width:34px;height:34px}
.why-label{display:block;font-family:"Figtree",sans-serif;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-2);font-weight:600;margin-bottom:8px}
.why-card h3{font-size:1.22rem;margin-bottom:10px;line-height:1.15;color:#fff}
.why-card p{font-size:.95rem;color:rgba(255,255,255,.68)}

/* ============================================================
   GUEST REVIEWS (auto-scrolling marquee)
   ============================================================ */
.reviews{background:#fff;color:var(--ink);overflow:hidden;position:relative}
.reviews::after{
  content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);
  width:min(var(--maxw),calc(100% - 2 * clamp(20px,6vw,88px)));height:1px;background:var(--line);
}
.reviews-marquee{
  position:relative;
  margin:0 calc(-1 * clamp(20px,6vw,88px));
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%);
          mask-image:linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%);
}
.reviews-track{display:flex;width:max-content}
.reviews-set{display:flex;align-items:stretch}
.reviews-marquee.is-running{cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none}
.reviews-marquee.is-dragging{cursor:grabbing}
.reviews-marquee.is-running .reviews-track{will-change:transform}
.reviews-marquee img{pointer-events:none}
.review-card{
  width:380px;flex:0 0 auto;
  display:flex;flex-direction:column;
  padding:8px 40px;
  border-right:1px solid var(--line);
}
.review-card-wide{width:600px}
.review-author{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.review-meta{display:flex;flex-direction:column;min-width:0;min-height:2.46rem;line-height:1.3}
.review-name{font-family:"Figtree",sans-serif;font-weight:600;font-size:1.05rem;color:var(--ink)}
.review-loc{font-size:.84rem;color:var(--ink-soft)}
.review-stars{display:inline-flex;gap:3px;color:var(--gold);margin-bottom:16px}
.review-stars svg{width:17px;height:17px}
.review-stars svg.is-empty{color:rgba(26,26,26,.14)}
.review-text{margin:0;color:var(--ink-2);font-size:.98rem;line-height:1.6}
.review-text p+p{margin-top:.8em}
@media(prefers-reduced-motion:reduce){
  .reviews-marquee{overflow-x:auto;-webkit-mask-image:none;mask-image:none;padding:0 clamp(20px,6vw,88px)}
}

/* ============================================================
   CONTACT / ENQUIRY
   ============================================================ */
.contact{background:#fff;color:var(--ink);position:relative;overflow:hidden;padding:5vh clamp(24px,4.5vw,88px)}
.contact-inner{
  width:100%;max-width:1840px;margin:0 auto;
  display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  align-items:center;
}
.contact-image{
  position:relative;width:100%;height:auto;aspect-ratio:1122 / 1402;margin:0;overflow:hidden;background:var(--cream-2);
}
.contact-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center center}
.contact-image-shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(12,12,12,.72),rgba(12,12,12,0) 40%)}
.contact-image-caption{
  position:absolute;left:clamp(28px,5vw,72px);right:28px;bottom:clamp(32px,5vw,68px);
  display:flex;flex-direction:column;gap:2px;
  color:#fff;font-family:"Figtree",sans-serif;font-size:clamp(2rem,3.8vw,4rem);
  font-weight:600;line-height:.98;letter-spacing:-.04em;text-transform:uppercase;
  text-shadow:0 2px 24px rgba(0,0,0,.24);
}
.contact-image-caption span:last-child{color:var(--gold-2)}
.contact-content{
  align-self:center;width:100%;max-width:790px;margin:0 auto;
  padding:clamp(48px,6vw,92px) clamp(32px,6.6vw,100px);
}
.contact-eyebrow{
  display:block;margin-bottom:18px;color:var(--gold-deep);
  font-family:"Figtree",sans-serif;font-size:.7rem;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;
}
.contact-title{
  display:flex;flex-direction:column;gap:2px;margin:0;
  font-family:"Figtree",sans-serif;font-size:clamp(2rem,3.4vw,3.45rem);
  font-weight:700;line-height:.98;letter-spacing:-.045em;text-transform:uppercase;
}
.contact-title span:first-child{font-weight:400}
.contact-title span:last-child{color:var(--ink)}
.contact-intro{max-width:48ch;margin:20px 0 28px;color:#62625e;font-size:1rem;line-height:1.65}
.contact-form{display:flex;flex-direction:column;gap:20px}
.contact-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;row-gap:18px}
.contact-field{min-width:0;display:flex;flex-direction:column;gap:5px}
.contact-field-wide{grid-column:1/-1}
.contact-field label{font-family:"Figtree",sans-serif;font-size:.69rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#4d4d49}
.contact-field label span{color:var(--gold-deep)}
.contact-field input,.contact-field select,.contact-field textarea{
  display:block;width:100%;min-width:0;min-height:48px;padding:10px 0;
  border:0;border-bottom:1px solid rgba(26,26,26,.28);border-radius:0;
  background:transparent;color:var(--ink);font:inherit;font-size:.96rem;
  transition:border-color .2s ease,background-color .2s ease;
}
.contact-field select{cursor:pointer}
.contact-field select:invalid{color:#73736d}
.contact-field textarea{min-height:86px;resize:vertical;line-height:1.5}
.contact-field textarea::placeholder{color:#777770;opacity:1}
.contact-field input:focus-visible,.contact-field select:focus-visible,.contact-field textarea:focus-visible{
  outline:2px solid var(--gold);outline-offset:3px;border-color:var(--gold-deep);
}
.contact-submit{
  display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;min-height:58px;
  padding:0 20px;border:1px solid var(--ink);border-radius:0;background:var(--ink);color:#fff;
  font-family:"Figtree",sans-serif;font-size:.76rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  cursor:pointer;transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease);
}
.contact-submit svg{width:20px;height:20px;flex:none;transition:transform .25s var(--ease)}
.contact-submit:hover{background:#000;border-color:#000}
.contact-submit:hover svg{transform:translateX(4px)}
.contact-submit:focus-visible{outline:2px solid var(--gold-deep);outline-offset:4px}
.contact-honey{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.contact-form.is-sending .contact-submit{opacity:.6;pointer-events:none}

/* enquiry sent overlay */
.sent-overlay{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:16px;
  background:rgba(18,18,18,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .35s var(--ease)}
.sent-overlay.is-visible{opacity:1}
.sent-overlay[hidden]{display:none}
.sent-dialog{position:relative;width:min(520px,100%);padding:48px 44px 40px;background:#fff;color:var(--ink);
  border-radius:var(--radius);box-shadow:0 30px 80px rgba(0,0,0,.28);transform:translateY(16px);transition:transform .45s var(--ease)}
.sent-overlay.is-visible .sent-dialog{transform:none}
.sent-kicker{display:block;margin-bottom:14px;font-family:"Figtree",sans-serif;font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-deep)}
.sent-title{margin:0 0 16px;font-size:clamp(2.2rem,6vw,3rem)}
.sent-text{margin:0 0 30px;color:var(--ink-soft);font-size:1rem;line-height:1.65}
.sent-close{position:absolute;top:14px;right:14px;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;
  border:0;background:transparent;color:var(--ink-soft);cursor:pointer;border-radius:8px}
.sent-close svg{width:20px;height:20px}
.sent-close:hover{color:var(--ink)}
.sent-close:focus-visible,.sent-btn:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px}
@media(max-width:1024px){.sent-dialog{padding:40px 24px 28px}}
.contact-consent{margin:-6px 0 0;color:#76766f;font-size:.8rem;line-height:1.55}
.contact-consent a,.footer-privacy{text-decoration:underline;text-underline-offset:3px;text-decoration-color:currentColor}
.contact-consent a{color:var(--ink);text-decoration-color:var(--gold-deep)}
.footer-privacy{color:rgba(255,255,255,.7);transition:color .3s var(--ease)}
.footer-privacy:hover{color:#fff}
.form-note{min-height:1.2em;margin:-12px 0 0;color:var(--gold-deep);font-size:.88rem}
.contact-alternative{margin:24px 0 0;padding-top:18px;border-top:1px solid var(--line);color:#66665f;font-size:.83rem;line-height:1.7}
.contact-alternative a{color:var(--ink);text-decoration:underline;text-decoration-color:rgba(26,26,26,.35);text-underline-offset:3px;white-space:nowrap}
.contact-alternative a:hover{color:var(--gold-deep);text-decoration-color:currentColor}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:#0d0d0d;color:rgba(255,255,255,.7);padding:80px clamp(20px,6vw,88px) 40px}
.footer-top{
  max-width:var(--maxw);margin:0 auto;
  display:grid;grid-template-columns:1.2fr 2fr;gap:60px;
  padding-bottom:56px;border-bottom:1px solid var(--line-dark);
}
.footer-logo{height:72px;margin-bottom:22px}
.footer-brand p{max-width:34ch;font-size:.98rem}
.footer-cols{display:grid;grid-template-columns:1fr 1fr auto;gap:40px}
.footer-accred{display:flex;justify-content:flex-end;align-items:flex-start}
.footer-prs{width:120px;height:auto;opacity:.92}
.footer-credit a{text-decoration:underline;text-underline-offset:3px;color:rgba(255,255,255,.7);transition:color .3s var(--ease)}
.footer-credit a:hover{color:#fff}
.footer-col h4{font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-2);margin-bottom:18px;font-weight:600}
.footer-col a{display:block;margin-bottom:12px;font-size:.96rem;transition:color .3s var(--ease)}
.footer-col a:hover{color:#fff}
.footer-bottom{
  max-width:var(--maxw);margin:32px auto 0;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  font-size:.85rem;color:rgba(255,255,255,.45);
}

/* ============================================================
   REVEAL ANIMATION
   ============================================================ */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal:nth-child(2){transition-delay:.06s}
.reveal:nth-child(3){transition-delay:.12s}

@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
  .scroll-line{animation:none}
}

/* ============================================================
   PORTFOLIO LIGHTBOX
   ============================================================ */
.gallery-item{cursor:pointer}
.gallery-item:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

.lightbox{
  position:fixed;inset:0;z-index:200;
  display:flex;align-items:center;justify-content:center;
  visibility:hidden;pointer-events:none;
  transition:visibility 0s linear .4s;
}
.lightbox.is-open{
  visibility:visible;pointer-events:auto;
  transition:visibility 0s linear 0s;
}
.lightbox-backdrop{
  position:absolute;inset:0;
  background:rgba(14,14,13,.72);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  opacity:0;
  /* fade the backdrop's own opacity (not an ancestor's) so the blur , which
     is already applied at full strength , fades in gradually with it,
     instead of a parent opacity fade causing the blur to pop in late. */
  transition:opacity .4s var(--ease);
}
.lightbox.is-open .lightbox-backdrop{opacity:1}
.lightbox-stage{
  position:relative;z-index:1;
  max-width:min(88vw,1400px);max-height:82vh;
  display:flex;align-items:center;justify-content:center;
  transform:scale(.96);opacity:0;
  transition:transform .45s var(--ease),opacity .45s var(--ease);
}
.lightbox.is-open .lightbox-stage{transform:scale(1);opacity:1}
.lightbox-img{
  max-width:min(88vw,1400px);max-height:82vh;
  width:auto;height:auto;
  border-radius:10px;
  box-shadow:0 40px 100px -30px rgba(0,0,0,.7);
  -webkit-user-select:none;user-select:none;
}
.lightbox-close,.lightbox-arrow{
  position:absolute;z-index:2;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.16);
  color:#fff;
  cursor:pointer;
  transition:background .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease);
}
.lightbox-close:hover,.lightbox-arrow:hover{
  background:rgba(255,255,255,.12);border-color:var(--gold);color:var(--gold-2);
}
.lightbox-close{
  top:22px;right:22px;width:46px;height:46px;border-radius:50%;
}
.lightbox-close svg{width:18px;height:18px}
.lightbox-arrow{
  top:50%;translate:0 -50%;width:56px;height:56px;border-radius:50%;
}
.lightbox-arrow svg{width:22px;height:22px}
.lightbox-prev{left:24px}
.lightbox-next{right:24px}
.lightbox-arrow:active{transform:translateY(-50%) scale(.92)}
.lightbox-counter{
  position:absolute;bottom:26px;left:50%;translate:-50% 0;
  font-family:"Figtree",sans-serif;font-size:.85rem;font-weight:600;
  letter-spacing:.06em;color:rgba(255,255,255,.65);
}

@media(prefers-reduced-motion:reduce){
  .lightbox,.lightbox-backdrop,.lightbox-stage{transition:none}
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1024px){
  .work-head{grid-template-columns:1fr;gap:32px;justify-items:start}
  .team{padding-bottom:100px}
  .work-head .airbnb-card{margin-top:0}
  .work-head .section-title{white-space:normal}
  .services-grid{grid-template-columns:1fr;gap:48px}
  .services-aside{position:static}
  .why-grid{grid-template-columns:repeat(2,1fr)}
  .footer-top{grid-template-columns:1fr;gap:44px}
}
@media(max-width:900px){
  .contact-inner{grid-template-columns:1fr}
  .contact-image{height:auto}
  .contact-content{max-width:820px;padding:64px clamp(28px,7vw,72px) 76px}
}
@media(max-width:1024px){
  body{font-size:16px}
  .section{padding:76px 20px}
  .section-head{margin-bottom:44px}
  .nav-cta{display:none}
  .nav{padding:calc(14px + env(safe-area-inset-top, 0px)) 18px 14px}
  .nav.scrolled{padding:calc(12px + env(safe-area-inset-top, 0px)) 18px 12px}
  .nav-logo img{height:38px}
  .nav.scrolled .nav-logo img{height:34px}
  .nav-toggle{width:48px;height:46px;background:transparent;border:0;border-radius:0}
  .nav-toggle:hover{background:transparent}
  .nav-toggle span{box-shadow:0 1px 5px rgba(0,0,0,.65)}
  .hero-wrap{height:100vh;height:100svh;min-height:560px}
  .hero-sticky{height:100vh;height:100svh;min-height:560px}
  .hero-video{object-position:58% center}
  .hero-vignette{
    background:
      linear-gradient(to top,rgba(0,0,0,.78) 0%,rgba(0,0,0,.55) 56%,rgba(0,0,0,.48) 100%),
      radial-gradient(120% 100% at 50% 45%,rgba(0,0,0,.2) 25%,rgba(0,0,0,.62) 100%);
  }
  .hero-content{padding:0 22px 92px}
  .hero-badge{font-size:.64rem;letter-spacing:.17em;margin-bottom:20px}
  .hero-title{font-size:clamp(2rem,9.2vw,3.25rem);line-height:1.08;max-width:none}
  .hero-line:first-child{white-space:nowrap}
  .hero-mobile-break{display:block}
  .hero-line:nth-child(2) .flip-word-holder{margin-top:.04em}
  .hero-sub{font-size:.96rem;line-height:1.55;margin-top:20px;max-width:34ch}
  .hero-cta{flex-direction:row;align-items:stretch;gap:8px;margin-top:26px;width:100%;max-width:420px}
  .hero-cta .btn{flex:1 1 0;width:auto;min-width:0;min-height:50px;height:auto;padding:8px 9px;font-size:clamp(.72rem,3.2vw,.9rem);line-height:1.2;text-align:center;white-space:normal}
  .hero-aside{display:none}
  .scroll-hint{bottom:calc(18px + env(safe-area-inset-bottom, 0px));gap:7px;font-size:.62rem}
  .scroll-line{height:26px}
  .intro{padding:84px 22px 28px}
  .intro-statement{font-size:clamp(2rem,8.5vw,3rem);max-width:18ch}
  .intro-image{margin-top:44px;border-radius:14px;transform:translateY(72px) scale(.9)}
  .services{padding-top:14px}
  .services-grid{gap:50px}
  .service{gap:16px;padding:30px 0}
  .service-body h3{font-size:1.35rem;line-height:1.12}
  .service-body p{font-size:.98rem;line-height:1.62}
  .work{padding-top:32px}
  .work-head{gap:28px;margin-bottom:38px}
  .work-head .section-head{margin-bottom:0}
  .work-head .section-lead{font-size:1rem}
  .work-head .airbnb-card{order:-1;margin-top:0}
  .gallery-item{margin-bottom:12px;border-radius:10px}
  .contact{padding:28px 16px}
  .contact-image{display:none}
  .contact-image img{object-fit:cover}
  .contact-image-caption{align-items:flex-end;text-align:right;font-size:clamp(1.5rem,6vw,2.1rem)}
  .team-grid{grid-template-columns:minmax(0,480px)}
  .review-card{width:300px;padding:6px 26px}
  .reviews::after{width:calc(100% - 40px)}
  .review-card-wide{width:440px}
  .reviews-marquee{margin:0 -20px}
  .why-grid{grid-template-columns:1fr}
  .footer{padding:60px 22px 30px}
  .footer-top{gap:36px;padding-bottom:38px}
  .footer-cols{grid-template-columns:1fr 1fr;gap:28px 18px}
  .footer-col{min-width:0}
  .footer-col a{overflow-wrap:anywhere;font-size:.9rem}
  .footer-accred{grid-column:1/-1;justify-content:flex-start}
  .footer-bottom{flex-direction:column}
  .airbnb-card{width:100%}
  .airbnb-front{padding:28px 26px;gap:20px}
  .airbnb-name{font-size:1.9rem}
  .airbnb-avatar{width:96px;height:96px}
  .airbnb-back-quote{max-width:60%;font-size:.94rem}
  .airbnb-back-photo{width:128px;height:150px}
  .contact-image{height:auto}
  .contact-content{padding:46px 22px 54px}
  .contact-fields{grid-template-columns:1fr;row-gap:16px}
  .contact-field-wide{grid-column:auto}
  .contact-title{font-size:clamp(2rem,9.2vw,3.25rem);line-height:1;overflow-wrap:anywhere}
  .contact-intro{margin:18px 0 26px;font-size:.97rem}
  .contact-form{gap:18px}
  .contact-field input,.contact-field select,.contact-field textarea{font-size:1rem;min-height:50px}
  .contact-field textarea{min-height:100px}
  .contact-alternative{margin-top:20px}
  .contact-alternative a{white-space:normal}
  .lightbox-arrow{width:44px;height:44px}
  .lightbox-arrow svg{width:18px;height:18px}
  .lightbox-prev{left:10px}
  .lightbox-next{right:10px}
  .lightbox-close{top:14px;right:14px;width:40px;height:40px}
  .lightbox-stage,.lightbox-img{max-width:92vw;max-height:76vh}
}
@media(max-width:460px){
  .section{padding:68px 18px}
  .reviews::after{width:calc(100% - 36px)}
  .section-head{margin-bottom:36px}
  .section-title{font-size:clamp(2rem,9vw,2.65rem)}
  .section-lead{font-size:1rem}
  .hero-wrap,.hero-sticky{min-height:540px}
  .hero-content{padding-left:20px;padding-right:20px}
  .hero-title{font-size:clamp(1.7rem,8.6vw,2.6rem);max-width:none}
  .hero-cta{max-width:none}
  .intro{padding:72px 20px 20px}
  .services{padding-top:10px}
  .services-grid{gap:48px}
  .service{gap:12px}
  .service-num{font-size:1rem}
  .service-body h3{font-size:1.27rem}
  .team{padding-bottom:76px}
  .team-grid{gap:20px}
  .team-photo{aspect-ratio:5/4}
  .team-info{padding:24px 22px 28px}
  .team-role{font-size:.74rem;letter-spacing:.12em}
  .work{padding-top:28px}
  .why-card{padding:26px 24px}
  .footer-cols{grid-template-columns:1fr;gap:22px}
  .footer-col h4{margin-bottom:12px}
  .airbnb-front{grid-template-columns:1fr;gap:24px}
  .airbnb-front{padding:28px 22px}
  .airbnb-stat{padding:14px 0}
  .airbnb-back-quote{position:static;max-width:100%;margin-top:20px}
  .airbnb-back-photo{position:static;margin:22px auto 0;width:150px;height:172px}
  .airbnb-back-content{position:relative}
  .airbnb-back-link{white-space:normal}
  .contact{padding:20px 12px}
  .contact-content{padding:40px 20px 46px}
  .contact-title{font-size:clamp(1.85rem,9vw,2.55rem)}
  .contact-submit{min-height:54px;padding:0 18px}
  .contact-image-caption{left:22px;right:18px;bottom:24px;font-size:clamp(1.35rem,6.5vw,1.8rem)}
  .contact-alternative{font-size:.8rem;overflow-wrap:anywhere}
  .lightbox-stage,.lightbox-img{max-width:94vw;max-height:72vh}
}

/* ============================================================
   MOBILE CLEAN-UP (centred headlines, compact hero buttons,
   smaller Airbnb card & reviews, contact photo back)
   ============================================================ */
@media(max-width:1024px){
  /* --- centred headlines on every section --- */
  .section-head,
  .work-head .section-head{text-align:center;margin-left:auto;margin-right:auto}
  .section-title,.section-lead{margin-left:auto;margin-right:auto}
  .services-aside{display:flex;flex-direction:column;align-items:center;text-align:center}
  .services-aside .btn{height:46px;padding:0 22px;font-size:.9rem;margin-top:24px}
  .work-head{justify-items:center}
  .team-grid{justify-content:center}
  .intro-statement{text-align:center;margin-left:auto;margin-right:auto}

  /* --- hero: centred, compact buttons --- */
  .hero-content{display:flex;flex-direction:column;align-items:center;text-align:center;padding-bottom:96px}
  .hero-badge{margin-left:auto;margin-right:auto}
  .hero-sub{margin-left:auto;margin-right:auto}
  .hero-cta{justify-content:center;width:auto;max-width:none;gap:10px;margin-top:24px}
  .hero-cta .btn{flex:0 0 auto;width:auto;min-height:0;height:42px;padding:0 16px;font-size:.84rem;white-space:nowrap}

  /* --- contact: centred heading (photo hidden on mobile) --- */
  .contact-eyebrow{text-align:center}
  .contact-title{align-items:center;text-align:center}
  .contact-intro{text-align:center;margin-left:auto;margin-right:auto}
  .contact-alternative{text-align:center}
  .contact-image{display:none}

  /* --- spacing tweaks --- */
  .services{padding-top:44px}
  .work-head{gap:44px}

  /* --- Why partner: 2-column grid --- */
  .why-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .why-card{padding:22px 16px 24px}
  .why-icon{margin-bottom:14px}
  .why-icon svg{width:28px;height:28px}
  .why-label{font-size:.6rem;letter-spacing:.14em;margin-bottom:6px}
  .why-card h3{font-size:1.02rem;margin-bottom:8px}
  .why-card p{font-size:.84rem;line-height:1.5}

  /* --- Airbnb card: smaller, side-by-side layout --- */
  .airbnb-card{width:100%;max-width:340px;margin-left:auto;margin-right:auto;border-radius:20px}
  .airbnb-face,.airbnb-front{border-radius:20px}
  .airbnb-front{grid-template-columns:1.05fr 1fr;gap:14px;padding:22px 20px}
  .airbnb-avatar{width:76px;height:76px;margin-bottom:10px}
  .airbnb-superbadge{width:26px;height:26px;border-width:2px;right:0;bottom:0}
  .airbnb-superbadge svg{width:13px;height:13px}
  .airbnb-name{font-size:1.4rem}
  .airbnb-super{font-size:.82rem;gap:5px;margin-top:2px}
  .airbnb-super svg{width:14px;height:14px}
  .airbnb-stat{padding:9px 0}
  .airbnb-stat-num{font-size:1.25rem}
  .airbnb-star{width:14px;height:14px}
  .airbnb-stat-label{font-size:.76rem;margin-top:2px}
  .airbnb-flip-hint{top:12px;right:14px;font-size:.66rem}
  .airbnb-flip-hint svg{width:12px;height:12px}
  .airbnb-back-content{position:absolute;inset:0;padding:22px 20px}
  .airbnb-back-head h3{font-size:1.4rem}
  .airbnb-back-head p{font-size:.92rem}
  .airbnb-back-link{margin-top:12px;font-size:.78rem;white-space:nowrap}
  .airbnb-back-link svg{width:13px;height:13px;flex:none}
  .airbnb-back-quote{display:none}
  .airbnb-back-photo{position:absolute;right:18px;bottom:18px;margin:0;width:78px;height:92px;border-radius:12px}

  /* --- reviews slider: smaller --- */
  .reviews .section-head{margin-bottom:40px}
  .review-card{width:250px;padding:4px 22px}
  .review-card-wide{width:380px}
  .review-name{font-size:.95rem}
  .review-loc{font-size:.78rem}
  .review-author{margin-bottom:12px}
  .review-meta{min-height:2.25rem}
  .review-stars{margin-bottom:12px}
  .review-stars svg{width:14px;height:14px}
  .review-text{font-size:.88rem;line-height:1.55}
}

/* ============================================================
   MOBILE + TABLET (≤1024px share the mobile layout above)
   hero content centred vertically & horizontally
   ============================================================ */
@media(max-width:1024px){
  .hero-sticky{align-items:center;justify-content:center}
  .hero-content{padding-top:72px;padding-bottom:72px}
}
/* mobile + tablet: contact form as one centred column (photo is hidden) */
@media(max-width:1024px){
  .contact-inner{grid-template-columns:1fr;justify-items:center}
  .contact-content{max-width:640px;margin-left:auto;margin-right:auto}
}
/* tablet only: headline on 2 lines (mobile keeps its 3-line headline) */
@media(min-width:641px) and (max-width:1024px){
  .hero-mobile-break{display:none}
  .hero-title{font-size:clamp(1.4rem,9vw,4rem);line-height:1.1}
  .hero-line{white-space:nowrap}
  .hero-line:nth-child(2) .flip-word-holder{margin-top:0}
}

/* ============================================================
   PRIVACY POLICY PAGE
   ============================================================ */
.legal-page{background:var(--cream)}
.legal-nav{
  background:var(--dark);
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:calc(18px + env(safe-area-inset-top, 0px)) clamp(20px,5vw,56px) 18px;
}
.legal-nav .nav-logo img{height:40px}
.legal-back{display:inline-flex;align-items:center;gap:8px;color:#fff;font-size:.9rem;font-weight:500;opacity:.85;transition:opacity .3s var(--ease)}
.legal-back:hover{opacity:1}
.legal-back svg{width:18px;height:18px}
.legal{background:var(--cream);padding:clamp(56px,8vw,104px) clamp(20px,6vw,88px) clamp(72px,9vw,120px)}
.legal-inner{max-width:760px;margin:0 auto}
.legal-title{font-size:clamp(2.3rem,5vw,3.4rem);margin-bottom:12px}
.legal-updated{color:var(--ink-soft);font-size:.9rem;margin-bottom:32px}
.legal-intro{font-size:1.08rem;color:var(--ink-2);margin-bottom:12px}
.legal h2{font-size:clamp(1.25rem,2vw,1.5rem);margin:44px 0 14px}
.legal p{color:var(--ink-2);margin-bottom:14px}
.legal ul{margin:0 0 16px 1.2em;color:var(--ink-2)}
.legal li{margin-bottom:6px;padding-left:4px}
.legal a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--gold-deep);text-underline-offset:3px}
.legal strong{font-weight:600;color:var(--ink)}
.legal-footer{padding:32px clamp(20px,6vw,88px)}
.legal-footer .footer-bottom{margin-top:0}
.legal-footer .footer-bottom a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:640px){
  .legal-nav .nav-logo img{height:34px}
  .legal-back{font-size:.84rem}
  .legal{text-align:left}
  .legal-footer .footer-bottom{flex-direction:column}
}

/* ============================================================
   COOKIE BANNER (desktop: bottom-right card; tablet/mobile: full-width bar)
   ============================================================ */
.cookie-banner{
  position:fixed;z-index:190;
  right:clamp(16px,2.5vw,32px);bottom:clamp(16px,2.5vw,32px);
  width:min(420px,calc(100% - 32px));
  padding:24px 24px 22px;
  background:rgba(18,18,18,.96);color:#fff;
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border:1px solid var(--line-dark);
  box-shadow:0 30px 60px -30px rgba(0,0,0,.6);
  opacity:0;transform:translateY(24px);
  transition:opacity .45s var(--ease),transform .45s var(--ease);
}
.cookie-banner[hidden]{display:none}
.cookie-banner.is-visible{opacity:1;transform:none}
.cookie-kicker{
  margin:0 0 8px;font-family:"Figtree",sans-serif;font-size:.7rem;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--gold-2);
}
.cookie-heading{margin:0 0 10px;font-family:"Figtree",sans-serif;font-size:1.3rem;font-weight:600;line-height:1.15;letter-spacing:-.01em;color:#fff}
.cookie-text{margin:0 0 10px;font-size:.88rem;line-height:1.55;color:rgba(255,255,255,.78)}
.cookie-policy{display:inline-block;margin-bottom:18px;font-size:.82rem;color:#fff;text-decoration:underline;text-decoration-color:var(--gold-2);text-underline-offset:3px}
.cookie-actions{display:flex;gap:10px}
.cookie-btn{
  flex:1 1 0;min-height:44px;padding:8px 14px;cursor:pointer;line-height:1.2;
  font-family:"Inter Tight",system-ui,sans-serif;font-size:.9rem;font-weight:500;
  border:1.5px solid #fff;border-radius:0;
  transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);
}
.cookie-accept{background:#fff;color:var(--ink)}
.cookie-accept:hover{background:var(--cream-2);border-color:var(--cream-2)}
.cookie-decline{background:transparent;color:#fff}
.cookie-decline:hover{background:rgba(255,255,255,.12)}
.cookie-btn:focus-visible{outline:2px solid var(--gold-2);outline-offset:3px}
@media(max-width:1024px){
  .cookie-banner{
    left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom, 0px));
    margin-left:auto;margin-right:auto;
    width:auto;max-width:640px;margin:0 auto;
    padding:20px 18px 18px;text-align:center;
  }
  .cookie-heading{font-size:1.15rem}
  .cookie-text{font-size:.84rem;margin-bottom:8px}
  .cookie-policy{margin-bottom:14px}
  .cookie-actions{justify-content:center}
  .cookie-btn{min-height:42px;font-size:.84rem;max-width:220px;padding:8px 10px}
}
@media(prefers-reduced-motion:reduce){.cookie-banner{transition:none;transform:none}}

/* ============================================================
   Pre-launch audit additions
   ============================================================ */
/* anchored sections land clear of the fixed nav */
section[id]{scroll-margin-top:72px}
/* keyboard "skip to content" link, visible only when focused */
.skip-link{
  position:fixed;left:16px;top:-80px;z-index:200;
  background:#fff;color:#111;padding:10px 16px;border-radius:8px;
  font:600 .9rem/1 "Figtree",sans-serif;transition:top .2s var(--ease);
}
.skip-link:focus{top:16px}
address{font-style:normal}
.service-note{font-size:.82rem;color:var(--ink-soft);margin-top:8px}
/* keep logos in proportion (width/height attributes are only for layout reservation) */
.footer-logo{width:auto}
/* footer now has two columns: contact details + PRS badge */
.footer-cols{grid-template-columns:1fr auto}
@media(max-width:1024px){ .footer-cols{grid-template-columns:1fr} }


/* mobile: bigger hero headline, sized so "Nothing less than" fills ~90% of the screen width */
@media(max-width:640px){
  .hero-title{font-size:min(calc((100vw - 44px) / 8.1), 3.6rem)}
}

/* mobile + tablet: hero always fills the whole screen, even when the browser's
   toolbars are showing (100lvh = the full screen height), so no part of the white
   section peeks in on load. The headline/buttons and the "scroll" hint are lifted by
   the toolbar height (100lvh - 100svh) so they stay in the visible area and centred. */
@media(max-width:1024px){
  .hero-wrap,.hero-sticky{height:100vh;height:100lvh}
  .hero-content{padding-bottom:calc(72px + 100lvh - 100svh)}
  .scroll-hint{bottom:calc(18px + env(safe-area-inset-bottom, 0px) + 100lvh - 100svh)}
}

/* Hide Safari's native play button that appears when autoplay is blocked
   (e.g. iPhone Low Power Mode) — the poster image shows instead, and
   script.js starts the video on the visitor's first tap. */
video::-webkit-media-controls-start-playback-button{display:none!important;-webkit-appearance:none}
video::-webkit-media-controls-overlay-play-button{display:none!important}
video::-webkit-media-controls{display:none!important}

/* ============================================================
   MOBILE + TABLET HERO (Oct 2026): edge-to-edge, left-aligned,
   anchored to the bottom. Overrides the earlier mobile hero rules.
   ============================================================ */
.hero-br-m{display:none}
@media(max-width:1024px){
  /* Full-screen on iPhone: Safari paints a solid strip behind the status bar /
     toolbar when a fixed full-screen layer exists. Keep the closed menu
     invisible, and let the nav scroll with the page while at the very top,
     so the hero image shows right up to the top and bottom edges. */
  .menu{visibility:hidden;transition:clip-path .7s var(--ease),visibility 0s linear .7s}
  body.menu-open .menu{visibility:visible;transition:clip-path .7s var(--ease),visibility 0s linear 0s}
  body:not(.menu-open) .nav:not(.scrolled):not(.nav-glass):not(.nav-hidden){position:absolute}

  .hero-wrap,.hero-sticky{height:100vh;height:100lvh;min-height:0}
  .hero-sticky{flex-direction:column;align-items:stretch;justify-content:flex-end}
  .hero-content{display:block;text-align:left;padding:0 clamp(24px,5vw,48px)}
  .hero-badge{margin:0 0 16px;font-size:.74rem;letter-spacing:.2em}
  .hero-title{font-size:clamp(3rem,8.4vw,5rem);line-height:1.04;max-width:none}
  .hero-line,.hero-line:first-child{display:block;white-space:nowrap}
  .hero-line:nth-child(2) .flip-word-holder{margin-top:0}
  .hero-sub{margin:20px 0 0;max-width:40ch;font-size:1.05rem;line-height:1.5}
  .hero-cta{display:flex;justify-content:flex-start;gap:12px;width:auto;max-width:none;margin-top:30px}
  .hero-cta .btn{
    flex:0 0 auto;width:auto;min-height:0;height:54px;padding:0 34px;
    border-radius:3px;font-size:1rem;font-weight:500;white-space:nowrap;
  }
  .hero-aside{
    position:relative;z-index:3;right:auto;bottom:auto;
    display:flex;flex-direction:column;align-items:flex-start;gap:0;
    /* lifted by the browser toolbar height so it's never hidden behind it */
    padding:28px clamp(24px,5vw,48px) calc(36px + env(safe-area-inset-bottom, 0px) + 100lvh - 100svh);
  }
  .hero-rating{font-size:.92rem;gap:12px}
  .hero-stars svg{width:18px;height:18px}
  .hero-corner{display:none}
  .scroll-hint{display:none}
}
/* phones: headline in three lines (Nothing less / than the / highest …) and a full-width button */
@media(max-width:640px){
  .hero-content{padding:0 22px}
  .hero-aside{padding-left:22px;padding-right:22px;padding-top:26px}
  .hero-badge{font-size:.7rem;margin-bottom:14px}
  .hero-title{font-size:min(calc((100vw - 44px) / 7.9), 3.4rem);line-height:1.06}
  .hero-line,.hero-line:first-child{display:inline;white-space:normal}
  .hero-br-m{display:inline}
  .hero-sub{margin-top:18px;font-size:.98rem;max-width:34ch}
  .hero-cta{margin-top:26px}
  .hero-cta .btn-ghost{display:none}
  .hero-cta .btn-dark{flex:1 1 auto;width:100%;height:52px;padding:0 20px}
  .hero-rating{font-size:.84rem;gap:10px}
  .hero-stars svg{width:16px;height:16px}
}

/* hero still photo, used when the phone blocks video (Low Power Mode) */
.hero-sticky.is-still{background-color:#111;background-size:cover;background-position:center;background-repeat:no-repeat}
.hero-sticky.is-still .hero-video{opacity:0}
@media(max-width:1024px){ .hero-sticky.is-still{background-position:58% center} }

/* intro video: hidden until it actually starts playing (no play button if it's blocked) */
.preloader-video{opacity:0}
.preloader-video.is-playing{opacity:1}

/* phones: no intro , hide it from the very first paint (script.js then removes it) */
@media(max-width:640px){
  .preloader{display:none}
  body.loading{overflow:auto}
}

/* ============================================================
   CLIENT REVISIONS (statistics banner, offer button,
   property photo carousel, team photo alignment)
   ============================================================ */
.visually-hidden{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* ---------- statistics banner (under the hero, same dark as Our Team) ---------- */
.stats{background:var(--dark);color:#fff;padding:64px clamp(20px,6vw,88px)}
.stats-list{
  list-style:none;margin:0 auto;padding:0;max-width:var(--maxw);
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
}
.stat{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:6px 16px;
}
.stat + .stat{border-left:1px solid var(--line-dark)}
.stat-num{
  font-family:"Figtree",sans-serif;font-weight:600;
  font-size:clamp(2.2rem,4.4vw,3.4rem);line-height:1;letter-spacing:-.02em;
  color:var(--gold-2);
  font-variant-numeric:tabular-nums;   /* digits keep a fixed width while counting up */
}
.stat-label{
  margin-top:12px;
  font-family:"Figtree",sans-serif;font-size:.78rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:#fff;
}
@media(max-width:760px){
  .stats{padding:48px 20px}
  .stats-list{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:36px}
  .stat:nth-child(odd){border-left:none}
  .stat-label{font-size:.7rem;letter-spacing:.14em}
}

/* ---------- services: "Discuss your property" + "View our offer" ---------- */
.services-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.services-actions .btn{margin-top:0}
.btn-outline{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-outline:hover{background:var(--ink);color:var(--cream)}
.btn-outline svg{width:18px;height:18px}
@media(max-width:1024px){
  .services-actions{justify-content:center;margin-top:24px}
}

/* ---------- property photos: continuous right-to-left carousel ---------- */
.gallery-marquee{
  position:relative;overflow:hidden;
  margin:0 calc(-1 * clamp(20px,6vw,88px));
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 6%,#000 94%,transparent 100%);
          mask-image:linear-gradient(to right,transparent 0,#000 6%,#000 94%,transparent 100%);
}
.gallery-track{display:flex;width:max-content}
.gallery-set{display:flex;gap:18px;padding-right:18px}
.gallery-marquee .gallery-item{
  flex:0 0 auto;margin:0;
  height:320px;aspect-ratio:3/2;
  border-radius:12px;
}
.gallery-marquee .gallery-item img{width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-drag:none}
.gallery-marquee.is-running{cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none}
.gallery-marquee.is-running .gallery-item{cursor:pointer}
.gallery-marquee.is-dragging,.gallery-marquee.is-dragging .gallery-item{cursor:grabbing}
.gallery-marquee.is-running .gallery-track{will-change:transform}
.gallery-marquee .gallery-item:focus-visible{outline-offset:-3px}
@media(max-width:1024px){
  .gallery-marquee{margin:0 -20px}
  .gallery-marquee .gallery-item{height:260px}
}
@media(max-width:640px){
  .gallery-set{gap:12px;padding-right:12px}
  .gallery-marquee .gallery-item{height:200px;border-radius:10px}
}
@media(prefers-reduced-motion:reduce){
  .gallery-marquee{overflow-x:auto;-webkit-mask-image:none;mask-image:none;padding:0 clamp(20px,6vw,88px)}
}

/* ---------- team photos: heads on the same line ---------- */
.team-photo img.team-photo-mateusz{object-position:center top}
/* Klaudia's portrait is framed wider than Mateusz's, so lift and enlarge it
   until both eye lines (~30% down) and hairlines (~10%) match side by side.
   Below 461px the cards stack (and go 5:4), so the original framing stays. */
@media(min-width:461px){
  .team-photo img.team-photo-klaudia{object-position:center 61%;transform:scale(1.2);transform-origin:center 9%}
  .team-card:hover .team-photo img.team-photo-klaudia{transform:scale(1.24)}
}
.team-title-brand{white-space:nowrap}

/* ---------- services: dropdowns on phone & tablet (script.js adds .is-accordion) ---------- */
.service-toggle{
  -webkit-appearance:none;appearance:none;background:none;border:0;padding:0;margin:0;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  width:100%;text-align:left;cursor:pointer;
  font:inherit;color:inherit;letter-spacing:inherit;line-height:inherit;
  -webkit-tap-highlight-color:transparent;
}
.service-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:4px;border-radius:2px}
.service-chevron{width:22px;height:22px;flex:none;color:var(--gold-deep);transition:transform .45s var(--ease)}
.service.is-open .service-chevron{transform:rotate(180deg)}
.services-list.is-accordion .service-body{flex:1;min-width:0}
.services-list.is-accordion .service-body h3{margin-bottom:0}
.services-list.is-accordion .service-panel{
  display:grid;grid-template-rows:0fr;visibility:hidden;
  transition:grid-template-rows .45s var(--ease),visibility 0s linear .45s;
}
.services-list.is-accordion .service.is-open .service-panel{
  grid-template-rows:1fr;visibility:visible;
  transition:grid-template-rows .45s var(--ease),visibility 0s;
}
.services-list.is-accordion .service-panel-inner{overflow:hidden;min-height:0}
.services-list.is-accordion .service-panel-inner p{padding-top:14px}
@media(prefers-reduced-motion:reduce){
  .service-chevron,
  .services-list.is-accordion .service-panel,
  .services-list.is-accordion .service.is-open .service-panel{transition:none}
}
