/* ─────────────────────────────────────────────────────────────────
   SERENUS  ·  Luxury Private Investment Firm
   Palette: Platinum · Deep Black · Soft White
   Feel: Tom Ford editorial · Boutique · Cinematic
───────────────────────────────────────────────────────────────── */

:root {
  /* Palette */
  --bg:         #060606;
  --surface:    #0b0b0b;
  --surface2:   #111;

  /* Platinum — cool silver, not gold */
  --plat:       #BABAC8;
  --plat-light: #DCDCE8;
  --plat-mid:   #8888A0;
  --plat-dim:   rgba(186,186,200, .10);
  --plat-glow:  rgba(186,186,200, .05);

  /* Type */
  --text:       #F4F2F0;
  --text-mid:   #888;
  --text-muted: #3A3A3A;

  /* Structure */
  --border:     rgba(186,186,200, .13);
  --border-sub: rgba(255,255,255,  .055);

  /* Fonts */
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans:  'Inter', -apple-system, sans-serif;

  /* Easing */
  --ease:  cubic-bezier(.16,1,.3,1);
  --ease2: cubic-bezier(.87,0,.13,1);
}

/* ─── RESET ──────────────────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html {
  background:var(--bg); color:var(--text);
  font-family:var(--sans); font-weight:300;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  scroll-behavior:smooth;
}
body { background:var(--bg); overflow-x:hidden; }
img  { display:block; max-width:100%; }
a    { text-decoration:none; }
::selection { background:rgba(186,186,200,.18); color:var(--plat-light); }
::-webkit-scrollbar { width:2px; }
::-webkit-scrollbar-track { background:var(--bg); }
::-webkit-scrollbar-thumb { background:var(--plat-mid); }

/* ─── SOFT ATMOSPHERIC LIGHT ──────────────────────────────────── */
.soft-light {
  position:fixed; inset:0; pointer-events:none; z-index:1;
  background:
    radial-gradient(ellipse 80% 40% at 50% 0%,  rgba(200,210,240,.028) 0%, transparent 100%),
    radial-gradient(ellipse 40% 60% at 90% 30%, rgba(220,220,255,.015) 0%, transparent 100%),
    radial-gradient(ellipse 50% 50% at 10% 70%, rgba(180,190,220,.012) 0%, transparent 100%);
}

/* ─── GRAIN ──────────────────────────────────────────────────── */
.grain {
  position:fixed; inset:0; pointer-events:none; z-index:9999;
  opacity:.038; background-size:256px;
  animation:grain 9s steps(12) infinite;
}
@keyframes grain {
  0%,100%{transform:translate(0,0)}   10%{transform:translate(-2%,-3%)}
  20%{transform:translate(3%,2%)}     30%{transform:translate(-1%,4%)}
  40%{transform:translate(2%,-2%)}    50%{transform:translate(-3%,1%)}
  60%{transform:translate(1%,-4%)}    70%{transform:translate(-2%,3%)}
  80%{transform:translate(3%,-1%)}    90%{transform:translate(-1%,2%)}
}

/* ─── CURSOR ─────────────────────────────────────────────────── */
.cursor-dot {
  width:5px; height:5px; background:var(--plat); border-radius:50%;
  position:fixed; top:0; left:0; pointer-events:none;
  z-index:9998; transform:translate(-50%,-50%);
}
.cursor-ring {
  width:32px; height:32px;
  border:1px solid rgba(186,186,200,.3); border-radius:50%;
  position:fixed; top:0; left:0; pointer-events:none;
  z-index:9997; transform:translate(-50%,-50%);
  transition:width .4s var(--ease), height .4s var(--ease), border-color .3s;
}
.cursor-ring.big { width:56px; height:56px; border-color:rgba(186,186,200,.55); }
@media(pointer:coarse){.cursor-dot,.cursor-ring{display:none}}

/* ─── PRELOADER ──────────────────────────────────────────────── */
.preloader {
  position:fixed; inset:0; background:var(--bg);
  z-index:10000; display:flex; align-items:center; justify-content:center;
}
.preloader-inner { text-align:center; }
.preloader-logo {
  font-family:var(--serif); font-size:2rem; letter-spacing:.4em;
  color:var(--text); margin-bottom:3rem; font-weight:300;
}
.preloader-bar-wrap {
  width:160px; height:1px; background:rgba(255,255,255,.07);
  margin:0 auto 1.2rem; overflow:hidden;
}
.preloader-bar { height:100%; background:var(--plat); width:0; transition:width .06s linear; }
.preloader-num { font-family:var(--serif); font-size:.72rem; letter-spacing:.25em; color:var(--text-muted); }

/* ─── NAV ────────────────────────────────────────────────────── */
#nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:2rem 3.5rem;
  transition:padding .5s var(--ease), background .5s, border-color .5s;
}
#nav.scrolled {
  padding:1.1rem 3.5rem;
  background:rgba(6,6,6,.88);
  backdrop-filter:blur(28px) saturate(180%);
  border-bottom:1px solid var(--border);
}
.nav-logo {
  font-family:var(--serif); font-size:1.2rem;
  letter-spacing:.45em; color:var(--text); font-weight:300;
  transition:letter-spacing .4s var(--ease);
}
.nav-logo:hover { letter-spacing:.6em; }
.nav-links { display:flex; gap:2.8rem; align-items:center; }
.nav-links a {
  font-size:.62rem; letter-spacing:.18em; color:var(--text-muted);
  font-weight:300; transition:color .3s; position:relative;
}
.nav-links a:not(.nav-cta)::after {
  content:''; position:absolute; bottom:-3px; left:0;
  width:0; height:1px; background:var(--plat);
  transition:width .4s var(--ease);
}
.nav-links a:not(.nav-cta):hover::after { width:100%; }
.nav-links a:hover, .nav-links a.active { color:var(--text); }
.nav-cta {
  border:1px solid var(--border); padding:.5rem 1.4rem;
  color:var(--plat)!important; letter-spacing:.18em;
  font-size:.62rem;
  transition:background .3s, border-color .3s!important;
}
.nav-cta:hover { background:var(--plat-dim); border-color:var(--plat)!important; }
.nav-burger {
  display:none; flex-direction:column; gap:5px;
  background:none; border:none; cursor:pointer; padding:4px;
}
.nav-burger span { display:block; width:22px; height:1px; background:var(--text); transition:transform .3s, opacity .3s; }

/* ─── MOBILE MENU ────────────────────────────────────────────── */
.mobile-menu {
  position:fixed; inset:0; background:var(--bg); z-index:99;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2.5rem;
  opacity:0; pointer-events:none; transition:opacity .4s;
}
.mobile-menu.open { opacity:1; pointer-events:all; }
.mobile-menu a { font-family:var(--serif); font-size:2.2rem; color:var(--text); letter-spacing:.08em; font-weight:300; }
.mobile-cta {
  color:var(--plat)!important; font-family:var(--sans)!important;
  font-size:.75rem!important; letter-spacing:.22em!important;
  border:1px solid var(--border); padding:.9rem 2.5rem;
}

/* ─── HERO ───────────────────────────────────────────────────── */
.hero {
  position:relative; height:100vh; min-height:720px;
  display:flex; align-items:flex-start; overflow:hidden;
}
#heroCanvas { display:none; } /* replaced by video background */
#heroBgVideo {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center;
  display:block; pointer-events:none;
}
/* Kill every browser-native video UI element — play button, controls, etc */
#heroBgVideo::-webkit-media-controls,
#heroBgVideo::-webkit-media-controls-panel,
#heroBgVideo::-webkit-media-controls-play-button,
#heroBgVideo::-webkit-media-controls-start-playback-button,
#heroBgVideo::-webkit-media-controls-overlay-play-button {
  display:none !important;
  -webkit-appearance:none !important;
  opacity:0 !important;
}
.hero-overlay {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse at 25% 50%, rgba(6,6,6,.1) 0%, rgba(6,6,6,.55) 50%, rgba(6,6,6,.98) 100%),
    linear-gradient(to right, rgba(6,6,6,.6) 0%, transparent 60%);
}
.hero-content { position:relative; z-index:2; padding:10rem 3.5rem 0; max-width:1000px; }

.hero-eyebrow {
  font-size:.62rem; letter-spacing:.32em; color:var(--plat-mid);
  margin-bottom:2.5rem; display:block; font-weight:300;
}
.hero-headline {
  font-family:var(--serif); font-weight:300; line-height:.95; margin-bottom:2.5rem;
  font-feature-settings:"liga" 1, "dlig" 1;
}
.hl-line { display:block; font-size:clamp(4rem, 9.5vw, 11rem); color:var(--text); letter-spacing:-.01em; }
.hl-line em { font-style:italic; color:var(--plat-light); }

.hero-rule {
  width:50px; height:1px; background:var(--plat-mid); margin-bottom:2.5rem;
  opacity:.5;
}
.hero-tagline {
  font-size:.6rem; letter-spacing:.25em; color:var(--text-muted); margin-bottom:3.5rem; font-weight:300;
}
.hero-actions { display:flex; gap:3rem; align-items:center; }

.btn-primary {
  font-size:.62rem; letter-spacing:.22em; font-weight:300;
  color:var(--bg); background:var(--plat-light); padding:1rem 2.6rem; display:inline-block;
  transition:background .4s, transform .4s var(--ease), letter-spacing .4s;
}
.btn-primary:hover { background:#fff; transform:translateY(-3px); letter-spacing:.28em; }
.btn-ghost-arrow {
  font-size:.62rem; letter-spacing:.18em; color:var(--text-mid);
  display:flex; align-items:center; gap:.6rem; font-weight:300; transition:color .3s;
}
.btn-ghost-arrow:hover { color:var(--text); }
.btn-ghost-arrow .arr { transition:transform .4s var(--ease); }
.btn-ghost-arrow:hover .arr { transform:translateX(6px); }

.hero-scroll-hint {
  position:absolute; bottom:3rem; right:3.5rem; z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:.8rem;
}
.hero-scroll-hint span { font-size:.55rem; letter-spacing:.25em; color:var(--text-muted); writing-mode:vertical-lr; }
.scroll-line-anim {
  width:1px; height:64px;
  background:linear-gradient(to bottom, var(--plat-mid), transparent);
  animation:spulse 2.4s ease-in-out infinite;
}
@keyframes spulse { 0%,100%{opacity:.3;transform:scaleY(1)} 50%{opacity:.9;transform:scaleY(1.1)} }

/* ─── MARQUEE ────────────────────────────────────────────────── */
.marquee-strip {
  overflow:hidden; padding:.85rem 0;
  border-top:1px solid var(--border-sub); border-bottom:1px solid var(--border-sub);
  background:var(--surface);
}
.marquee-inner {
  display:flex; gap:3.5rem; width:max-content; white-space:nowrap;
  animation:mrq 38s linear infinite;
}
.marquee-inner span { font-size:.58rem; letter-spacing:.28em; color:var(--text-muted); font-weight:300; }
.marquee-inner .msep { color:var(--plat-mid); opacity:.6; }
@keyframes mrq { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ─── CONTAINER ──────────────────────────────────────────────── */
.container { max-width:1280px; margin:0 auto; padding:0 3.5rem; }

/* ─── SECTION BADGE ──────────────────────────────────────────── */
.section-badge { display:flex; align-items:center; gap:1.5rem; margin-bottom:2rem; }
.badge-num {
  font-family:var(--serif); font-size:6rem; font-weight:300;
  color:rgba(255,255,255,.04); line-height:1; user-select:none; letter-spacing:-.02em;
}
.badge-label { font-size:.58rem; letter-spacing:.32em; color:var(--plat-mid); font-weight:300; }

/* ─── SECTION TITLE ──────────────────────────────────────────── */
.section-title {
  font-family:var(--serif);
  font-size:clamp(2.5rem, 5.5vw, 6.5rem);
  font-weight:300; line-height:1.0; color:var(--text);
  letter-spacing:-.01em;
}
.section-title em { font-style:italic; color:var(--plat-light); }
.section-sub {
  font-size:.82rem; line-height:1.9; color:var(--text-mid);
  font-weight:300; max-width:420px; margin-top:2rem;
}

/* ─── PHILOSOPHY ─────────────────────────────────────────────── */
.philosophy { padding:12rem 0; position:relative; }
.philosophy-grid { display:grid; grid-template-columns:220px 1fr; gap:6rem; align-items:start; }
.philosophy-left { position:sticky; top:9rem; }
.philosophy-quote {
  font-family:var(--serif);
  font-size:clamp(2rem, 4vw, 3.8rem);
  font-weight:300; line-height:1.2; margin-bottom:4rem;
  letter-spacing:-.005em;
}
.pq-line { display:block; clip-path:inset(0 100% 0 0); }
.philosophy-body { display:grid; grid-template-columns:1fr 1fr; gap:3.5rem; margin-bottom:5rem; }
.pb-rule { width:24px; height:1px; background:var(--plat-mid); margin-bottom:1.2rem; opacity:.6; }
.pb-col p { font-size:.88rem; line-height:2; color:var(--text-mid); font-weight:300; }
.stats-row { display:flex; gap:5rem; padding-top:3.5rem; border-top:1px solid var(--border-sub); }
.stat-num {
  font-family:var(--serif); font-size:4rem; font-weight:300;
  color:var(--plat-light); line-height:1; margin-bottom:.6rem;
  letter-spacing:-.02em;
}
.stat-label { font-size:.58rem; letter-spacing:.2em; color:var(--text-muted); text-transform:uppercase; font-weight:300; }

/* ─── FOCUS / INVESTMENT CAROUSEL ───────────────────────────── */
.focus { padding:9rem 0; overflow:hidden; }
.focus .section-header { max-width:1280px; margin:0 auto 5rem; padding:0 3.5rem; }
.section-header { display:flex; flex-direction:column; }

.carousel-viewport {
  overflow:hidden; padding:2rem 3.5rem; cursor:grab; user-select:none;
  perspective:1200px;
}
.carousel-viewport:active { cursor:grabbing; }
.carousel-track { display:flex; gap:1.5rem; will-change:transform; }

/* Card with parallax image inside */
.focus-card {
  flex:0 0 380px; height:530px; position:relative;
  overflow:hidden; border:1px solid var(--border);
  transform-style:preserve-3d; will-change:transform;
  transition:border-color .5s;
  /* scroll parallax: image will be overflowed */
}
.focus-card:hover { border-color:rgba(186,186,200,.35); }
.card-media {
  position:absolute; inset:-8%;/* oversized so parallax image has room to move */
  overflow:hidden;
}
.card-media img {
  width:100%; height:100%; object-fit:cover;
  transition:transform .9s var(--ease);
  filter:saturate(.82) brightness(.9);
  transform-origin:center;
}
.focus-card:hover .card-media img { filter:saturate(.92) brightness(1); }
.card-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to bottom,
    rgba(6,6,6,.08) 0%,
    rgba(6,6,6,.22) 35%,
    rgba(6,6,6,.9)  100%);
  transition:opacity .5s;
}
.card-body {
  position:absolute; inset:0; padding:2rem;
  display:flex; flex-direction:column; justify-content:space-between;
}
.card-cat {
  font-size:.55rem; letter-spacing:.25em; color:var(--plat-mid);
  background:rgba(6,6,6,.5); padding:.4rem .9rem;
  border:1px solid var(--border); backdrop-filter:blur(12px); width:fit-content;
  font-weight:300;
}
.card-foot { display:flex; justify-content:space-between; align-items:flex-end; }
.card-title { font-family:var(--serif); font-size:2.4rem; font-weight:300; color:var(--text); line-height:1; }
.card-icon {
  font-size:1.6rem; color:var(--plat);
  opacity:0; transform:translate(-14px,14px);
  transition:all .5s var(--ease);
}
.focus-card:hover .card-icon { opacity:1; transform:translate(0,0); }

/* ─── CITY CAROUSEL ──────────────────────────────────────────── */
.markets { padding:9rem 0; overflow:hidden; border-top:1px solid var(--border-sub); }
.markets .section-header { margin-bottom:5rem; }
.city-wrap {
  overflow:hidden; padding:2rem 3.5rem; cursor:grab; user-select:none;
}
.city-wrap:active { cursor:grabbing; }
.city-track { display:flex; gap:1.5rem; will-change:transform; }

.city-card {
  flex:0 0 420px; height:580px;
  position:relative; overflow:hidden;
  border:1px solid var(--border);
  transition:border-color .5s;
}
.city-card:hover { border-color:rgba(186,186,200,.3); }
.city-photo {
  position:absolute; inset:-5%;
  background-size:cover; background-position:center;
  transition:transform 1.2s var(--ease);
  filter:saturate(.7) brightness(.75);
}
.city-card:hover .city-photo {
  transform:scale(1.06);
  filter:saturate(.85) brightness(.85);
}
.city-veil {
  position:absolute; inset:0;
  background:
    linear-gradient(to bottom, rgba(6,6,6,.08) 0%, rgba(6,6,6,.1) 40%, rgba(6,6,6,.88) 100%),
    radial-gradient(ellipse at 50% 0%, rgba(200,210,240,.06) 0%, transparent 60%);
}
.city-body {
  position:absolute; inset:0; padding:2rem;
  display:flex; flex-direction:column; justify-content:space-between;
}
.city-top { display:flex; justify-content:space-between; align-items:flex-start; }
.city-idx {
  font-family:var(--serif); font-size:.72rem; color:var(--plat-mid);
  font-weight:300; letter-spacing:.1em;
}
.city-abbr {
  font-size:.6rem; letter-spacing:.3em; color:var(--text-muted); font-weight:300;
  border:1px solid var(--border-sub); padding:.3rem .7rem;
  backdrop-filter:blur(8px);
}
.city-btm {}
.city-metro {
  font-size:.6rem; letter-spacing:.2em; color:var(--plat-mid);
  font-weight:300; margin-bottom:.5rem; display:block;
  transform:translateY(8px); opacity:0;
  transition:transform .6s var(--ease), opacity .6s;
}
.city-card:hover .city-metro { transform:translateY(0); opacity:1; }
.city-name {
  font-family:var(--serif); font-weight:300;
  font-size:clamp(2.8rem, 5vw, 4.5rem); color:var(--text);
  line-height:1; letter-spacing:-.01em;
}

/* City nav */
.city-nav {
  display:flex; align-items:center; justify-content:center;
  gap:2rem; padding:2rem 3.5rem 0;
}

/* Shared carousel controls */
.carousel-controls {
  display:flex; align-items:center; justify-content:center;
  gap:2rem; padding:2rem 3.5rem 0;
}
.c-btn {
  width:44px; height:44px; border:1px solid var(--border); background:none;
  color:var(--text-mid); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:border-color .3s, color .3s, background .3s;
}
.c-btn:hover { border-color:var(--plat); color:var(--plat); background:var(--plat-dim); }
.c-progress { width:180px; height:1px; background:var(--border-sub); }
.c-progress-fill { height:100%; background:var(--plat); transition:width .55s var(--ease); width:16.66%; }

/* ─── OPERATING MODEL ────────────────────────────────────────── */
.model-section { padding:10rem 0; background:var(--surface); position:relative; }
.model-section::before {
  content:''; position:absolute; top:0; left:50%;
  width:80%; padding-top:25%; pointer-events:none;
  background:radial-gradient(ellipse at center top, rgba(186,186,200,.025) 0%, transparent 70%);
  transform:translateX(-50%);
}
.model-section .section-header { margin-bottom:6rem; }
.steps-wrap { position:relative; padding-left:3rem; }
.steps-spine {
  position:absolute; left:0; top:2rem; bottom:2rem;
  width:1px; background:var(--border-sub);
}
.steps-spine-fill { width:100%; height:0; background:var(--plat-mid); transition:height .25s linear; }
.steps-list { display:flex; flex-direction:column; gap:5.5rem; }
.step {
  display:grid; grid-template-columns:20px 1fr; gap:3.5rem;
  opacity:0; transform:translateX(-28px); position:relative;
}
.step-dot {
  width:9px; height:9px; border-radius:50%;
  border:1px solid var(--text-muted); background:var(--bg);
  margin-top:.55rem; flex-shrink:0; position:relative; left:-4px;
  transition:border-color .5s, background .5s, box-shadow .5s;
}
.step.active .step-dot {
  border-color:var(--plat); background:var(--plat);
  box-shadow:0 0 16px rgba(186,186,200,.4);
}
.step-num { font-family:var(--serif); font-size:.7rem; color:var(--plat-mid); letter-spacing:.14em; margin-bottom:.6rem; display:block; font-weight:300; }
.step-body h3 { font-family:var(--serif); font-size:2rem; font-weight:400; color:var(--text); margin-bottom:1.2rem; letter-spacing:-.005em; }
.step-body > p { font-size:.86rem; line-height:2; color:var(--text-mid); font-weight:300; max-width:580px; margin-bottom:1.8rem; }
.step-tags { display:flex; flex-wrap:wrap; gap:.5rem 1rem; }
.step-tags span {
  font-size:.65rem; letter-spacing:.1em; color:var(--text-mid);
  border:1px solid var(--border-sub); padding:.35rem 1rem;
  font-weight:300; transition:border-color .4s, color .4s;
}
.step.active .step-tags span { border-color:var(--border); color:var(--plat-light); }

/* ─── CONTACT ────────────────────────────────────────────────── */
.contact-section { padding:10rem 0; background:var(--surface); position:relative; }
.contact-section::before {
  content:''; position:absolute; bottom:0; right:0;
  width:50%; height:60%;
  background:radial-gradient(ellipse at 80% 80%, rgba(186,186,200,.02) 0%, transparent 70%);
  pointer-events:none;
}
.contact-grid { display:grid; grid-template-columns:1fr 1.3fr; gap:8rem; align-items:start; }
.contact-sub { font-size:.86rem; color:var(--text-mid); font-weight:300; margin:.5rem 0 3.5rem; line-height:1.9; }
.contact-info { display:flex; flex-direction:column; gap:2.5rem; margin-top:1rem; }
.ci-label { font-size:.58rem; letter-spacing:.28em; color:var(--plat-mid); display:block; margin-bottom:.6rem; font-weight:300; }
.contact-info p { font-size:.84rem; line-height:2; color:var(--text-mid); font-weight:300; }
.contact-info a { color:var(--text-mid); transition:color .3s; }
.contact-info a:hover { color:var(--plat-light); }
.contact-form { display:flex; flex-direction:column; gap:2rem; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.form-group { display:flex; flex-direction:column; gap:.7rem; }
.form-group label { font-size:.58rem; letter-spacing:.22em; color:var(--text-muted); text-transform:uppercase; font-weight:300; }
.form-group input,.form-group textarea {
  background:transparent; border:none; border-bottom:1px solid rgba(255,255,255,.08);
  color:var(--text); font-family:var(--sans); font-size:.86rem; font-weight:300;
  padding:.8rem 0; outline:none; resize:none; transition:border-color .3s;
}
.form-group input::placeholder,.form-group textarea::placeholder { color:var(--text-muted); }
.form-group input:focus,.form-group textarea:focus { border-bottom-color:var(--plat-mid); }
.btn-submit {
  font-family:var(--sans); font-size:.62rem; letter-spacing:.26em; font-weight:300;
  color:var(--bg); background:var(--plat-light); border:none;
  padding:1.1rem 3rem; cursor:pointer;
  display:flex; align-items:center; gap:1rem; width:fit-content;
  transition:background .4s, transform .4s var(--ease), letter-spacing .4s;
}
.btn-submit:hover { background:#fff; transform:translateY(-3px); letter-spacing:.32em; }
.s-arr { transition:transform .4s var(--ease); }
.btn-submit:hover .s-arr { transform:translateX(6px); }
.form-success {
  font-size:.76rem; color:var(--plat); letter-spacing:.06em;
  opacity:0; max-height:0; overflow:hidden; transition:opacity .5s, max-height .5s;
}
.form-success.show { opacity:1; max-height:40px; }

/* ─── FOOTER ─────────────────────────────────────────────────── */
footer { border-top:1px solid var(--border-sub); padding:5rem 0 3.5rem; }
.footer-inner { display:flex; flex-direction:column; gap:3rem; }
.footer-top { display:flex; justify-content:space-between; align-items:center; }
.footer-logo {
  font-family:var(--serif); font-size:1.5rem;
  letter-spacing:.4em; color:var(--text); font-weight:300;
}
.footer-tag { font-size:.6rem; letter-spacing:.18em; color:var(--text-muted); font-weight:300; }
.footer-mid { border-top:1px solid var(--border-sub); padding-top:2.5rem; }
.footer-nav { display:flex; gap:3rem; flex-wrap:wrap; }
.footer-nav a { font-size:.65rem; letter-spacing:.18em; color:var(--text-muted); transition:color .3s; font-weight:300; }
.footer-nav a:hover { color:var(--text); }
.footer-btm {
  display:flex; justify-content:space-between; align-items:center;
  border-top:1px solid var(--border-sub); padding-top:1.5rem;
}
.footer-btm p { font-size:.6rem; color:var(--text-muted); letter-spacing:.1em; font-weight:300; }

/* ─── TEAM PAGE ──────────────────────────────────────────────── */
.team-hero {
  min-height:65vh; display:flex; align-items:flex-end;
  padding-bottom:6rem; position:relative; overflow:hidden;
}
.th-bg {
  position:absolute; inset:0;
  background:radial-gradient(ellipse 60% 50% at 65% 40%, rgba(186,186,200,.04) 0%, transparent 70%);
}
.team-hero .container { position:relative; z-index:1; padding-top:11rem; }
.team-hero-title {
  font-family:var(--serif); font-weight:300;
  font-size:clamp(3.5rem, 8vw, 9.5rem); line-height:.95;
  margin:1.8rem 0; letter-spacing:-.02em;
}
.tht-line { display:block; }
.tht-italic em { font-style:italic; color:var(--plat-light); }
.team-hero-sub {
  font-size:.86rem; line-height:2; color:var(--text-mid);
  font-weight:300; max-width:460px; margin-top:2rem;
}
.th-rule { position:absolute; bottom:0; left:3.5rem; right:3.5rem; height:1px; background:var(--border-sub); }

.team-section { padding-bottom:4rem; }
.member {
  padding:8rem 0; border-bottom:1px solid var(--border-sub);
  position:relative; overflow:hidden;
}
.member::before {
  content:''; position:absolute; top:0; left:50%;
  width:60%; padding-top:20%;
  background:radial-gradient(ellipse at center top, rgba(186,186,200,.022) 0%, transparent 70%);
  transform:translateX(-50%); pointer-events:none;
}
.member-num-bg {
  position:absolute; right:-1.5rem; top:50%; transform:translateY(-50%);
  font-family:var(--serif); font-size:clamp(14rem, 22vw, 25rem);
  font-weight:600; line-height:1; color:rgba(186,186,200,.025);
  pointer-events:none; user-select:none; letter-spacing:-.04em;
}
.member-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:7rem; align-items:start; }
.member--flip .member-grid { grid-template-columns:1.2fr 1fr; direction:rtl; }
.member--flip .member-grid > * { direction:ltr; }
.member-photo-wrap { position:relative; }
.member-photo-inner { position:relative; overflow:hidden; aspect-ratio:3/4; }
.member-photo-img {
  width:100%; height:100%; object-fit:cover; object-position:top;
  transition:transform .9s var(--ease); filter:saturate(.85);
}
.member:hover .member-photo-img { transform:scale(1.04); filter:saturate(.95); }
.member-photo-num {
  position:absolute; bottom:1.5rem; left:1.5rem;
  font-family:var(--serif); font-size:5.5rem; font-weight:600;
  color:rgba(186,186,200,.15); line-height:1; pointer-events:none;
  letter-spacing:-.04em;
}
.member-info { padding-top:1rem; }
.member-meta { margin-bottom:3rem; }
.member-name {
  font-family:var(--serif); font-size:clamp(2.2rem, 4.5vw, 4rem);
  font-weight:400; color:var(--text); line-height:1.0; margin-bottom:.8rem;
  letter-spacing:-.01em;
}
.member-title-tag { font-size:.6rem; letter-spacing:.28em; color:var(--plat-mid); margin-bottom:.6rem; display:block; font-weight:300; }
.member-domains { font-size:.72rem; letter-spacing:.12em; color:var(--text-muted); font-weight:300; }
.member-bio { margin-bottom:3rem; }
.member-bio p { font-size:.88rem; line-height:2; color:var(--text-mid); font-weight:300; margin-bottom:1.2rem; }
.member-background { border-top:1px solid var(--border-sub); padding-top:2rem; }
.bg-label { font-size:.58rem; letter-spacing:.26em; color:var(--plat-mid); margin-bottom:1.2rem; display:block; font-weight:300; }
.member-background ul { list-style:none; display:flex; flex-direction:column; gap:.8rem; }
.member-background li {
  font-size:.8rem; color:var(--text-mid); font-weight:300;
  padding-left:1.3rem; position:relative; line-height:1.7;
}
.member-background li::before { content:'—'; position:absolute; left:0; color:var(--plat-mid); font-size:.7rem; }

/* ─── RESPONSIVE ─────────────────────────────────────────────── */
@media(max-width:1100px) {
  .philosophy-grid { grid-template-columns:1fr; gap:2rem; }
  .philosophy-left { position:static; }
  .contact-grid { grid-template-columns:1fr; gap:4rem; }
}
@media(max-width:900px) {
  #nav { padding:1.5rem 1.8rem; }
  #nav.scrolled { padding:1rem 1.8rem; }
  .nav-links { display:none; }
  .nav-burger { display:flex; }
  .container { padding:0 1.8rem; }
  .hero-content { padding:0 1.8rem; }
  .hero-scroll-hint { right:1.8rem; }
  .focus .section-header,
  .markets .section-header { padding:0 1.8rem; }
  .carousel-viewport,
  .city-wrap { padding:2rem 1.8rem; }
  .carousel-controls, .city-nav { padding:1.5rem 1.8rem 0; }
  .steps-wrap { padding-left:1.5rem; }
  .philosophy-body { grid-template-columns:1fr; }
  .stats-row { flex-wrap:wrap; gap:2.5rem; }
  .member-grid,
  .member--flip .member-grid { grid-template-columns:1fr; gap:3rem; direction:ltr; }
  .member--flip .member-grid > * { direction:ltr; }
  .member-num-bg { font-size:45vw; right:-1rem; }
}
@media(max-width:600px) {
  .hl-line { font-size:clamp(3rem, 12vw, 5.5rem); }
  .focus-card { flex:0 0 290px; height:420px; }
  .city-card { flex:0 0 300px; height:460px; }
  .form-row { grid-template-columns:1fr; }
  .footer-top { flex-direction:column; gap:1.2rem; text-align:center; }
  .footer-btm { flex-direction:column; gap:.5rem; text-align:center; }
  .team-hero { min-height:auto; padding-bottom:3.5rem; }
  .city-name { font-size:clamp(2.2rem, 8vw, 3.5rem); }
}
