/* =========================================================
   Arlington Private — v1
   Palette: deep navy, blue, white, black
   ========================================================= */

:root{
  --black:#05070d;
  --navy:#0a1228;
  --navy-2:#0e1a38;
  --navy-soft:#142palindrome; /* placeholder fixed below */
  --blue:#2f6df6;
  --blue-soft:#5b8bff;
  --blue-deep:#15327a;
  --ink:#0a0f1c;
  --white:#ffffff;
  --paper:#f4f6fb;
  --mist:#dde4f2;
  --grey:#8a97b2;
  --grey-d:#5c6783;
  --line:rgba(255,255,255,.12);
  --line-dk:rgba(10,18,40,.12);

  --serif:"Cormorant Garamond", Georgia, serif;
  --sans:"Jost", "Helvetica Neue", Arial, sans-serif;

  --ease:cubic-bezier(.22,1,.36,1);
  --ease-2:cubic-bezier(.65,.05,.36,1);
  --container:1280px;
}

/* fix accidental token */
:root{ --navy-soft:#101c3a; }

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }

html{ scroll-behavior:auto; -webkit-font-smoothing:antialiased; }
body{
  font-family:var(--sans);
  background:var(--navy);
  color:var(--white);
  line-height:1.6;
  overflow-x:hidden;
  cursor:none;
}
@media (hover:none){ body{ cursor:auto; } }

a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
button{ font-family:inherit; cursor:none; border:none; background:none; color:inherit; }
ul{ list-style:none; }

.container{ width:100%; max-width:var(--container); margin:0 auto; padding:0 48px; }
@media (max-width:768px){ .container{ padding:0 24px; } }

em{ font-style:italic; }

/* ---------- Custom cursor ---------- */
.cursor,.cursor-dot{
  position:fixed; top:0; left:0; border-radius:50%;
  pointer-events:none; z-index:9999; mix-blend-mode:difference;
}
.cursor{
  width:34px; height:34px; border:1px solid rgba(255,255,255,.7);
  transform:translate(-50%,-50%);
  transition:width .3s var(--ease),height .3s var(--ease),background .3s var(--ease),border-color .3s;
}
.cursor-dot{
  width:5px; height:5px; background:#fff; transform:translate(-50%,-50%);
}
.cursor.is-hover{ width:60px; height:60px; background:rgba(255,255,255,.08); border-color:transparent; }
@media (hover:none){ .cursor,.cursor-dot{ display:none; } }

/* ---------- Preloader ---------- */
.preloader{
  position:fixed; inset:0; z-index:9000; background:var(--black);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:28px;
  transition:opacity .8s var(--ease),visibility .8s;
}
.preloader.is-done{ opacity:0; visibility:hidden; }
.preloader__inner{ display:flex; align-items:center; gap:18px; }
.preloader__mark{
  font-family:var(--serif); font-size:52px; color:var(--blue-soft);
  line-height:1; border:1px solid var(--line); width:74px; height:74px;
  display:grid; place-items:center; border-radius:50%;
}
.preloader__name{
  font-family:var(--sans); letter-spacing:.5em; font-size:15px; font-weight:300;
  color:var(--white); padding-left:.5em;
  opacity:0; transform:translateX(-10px); animation:fadeIn .8s .3s var(--ease) forwards;
}
.preloader__bar{ width:200px; height:1px; background:var(--line); overflow:hidden; }
.preloader__bar span{ display:block; height:100%; width:0; background:var(--blue-soft); }
@keyframes fadeIn{ to{ opacity:1; transform:none; } }

/* ---------- Header ---------- */
.header{
  position:fixed; top:0; left:0; width:100%; z-index:800;
  display:flex; align-items:center; justify-content:space-between;
  padding:26px 48px; transition:padding .4s var(--ease),background .4s var(--ease),box-shadow .4s;
}
.header.is-scrolled{
  padding:16px 48px; background:rgba(8,14,30,.82);
  backdrop-filter:blur(14px); box-shadow:0 1px 0 var(--line);
}
@media (max-width:768px){ .header{ padding:18px 24px; } .header.is-scrolled{ padding:14px 24px; } }

.brand{ display:flex; align-items:center; gap:12px; z-index:810; }
.brand__mark{
  font-family:var(--serif); font-size:26px; color:var(--blue-soft);
  width:42px; height:42px; display:grid; place-items:center;
  border:1px solid var(--line); border-radius:50%; line-height:1;
  transition:border-color .4s,color .4s;
}
.brand:hover .brand__mark{ border-color:var(--blue-soft); }
.brand__text{
  font-size:15px; letter-spacing:.28em; font-weight:500; line-height:1.15;
  display:flex; flex-direction:column;
}
.brand__text small{ font-size:9px; letter-spacing:.42em; color:var(--grey); font-weight:300; }

.nav__list{ display:flex; align-items:center; gap:38px; }
.nav__list > li > a{
  font-size:13px; letter-spacing:.12em; text-transform:uppercase; font-weight:400;
  position:relative; padding:6px 0; display:inline-flex; align-items:center; gap:7px;
  color:rgba(255,255,255,.82); transition:color .3s;
}
.nav__list > li > a::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:0;
  background:var(--blue-soft); transition:width .4s var(--ease);
}
.nav__list > li > a:hover{ color:#fff; }
.nav__list > li > a:hover::after{ width:100%; }

.caret{
  width:5px; height:5px; border-right:1px solid currentColor; border-bottom:1px solid currentColor;
  transform:rotate(45deg) translateY(-2px); transition:transform .3s;
}
.has-dropdown:hover .caret{ transform:rotate(-135deg) translateY(-1px); }

/* Dropdown */
.has-dropdown{ position:relative; }
.dropdown{
  position:absolute; top:calc(100% + 18px); left:50%; transform:translateX(-50%) translateY(10px);
  width:320px; background:rgba(10,17,38,.96); backdrop-filter:blur(18px);
  border:1px solid var(--line); padding:10px;
  opacity:0; visibility:hidden; transition:opacity .35s var(--ease),transform .35s var(--ease);
  box-shadow:0 30px 60px rgba(0,0,0,.45);
}
.dropdown::before{
  content:""; position:absolute; top:-18px; left:0; width:100%; height:18px;
}
.has-dropdown:hover .dropdown{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.dropdown a{
  display:flex; align-items:center; gap:16px; padding:14px 16px;
  border-radius:2px; transition:background .3s; position:relative;
}
.dropdown a:hover{ background:rgba(47,109,246,.12); }
.dropdown__num{ font-family:var(--serif); font-size:18px; color:var(--blue-soft); font-style:italic; }
.dropdown__label{ font-size:13px; letter-spacing:.04em; color:rgba(255,255,255,.9); }

.header__actions{ display:flex; align-items:center; gap:18px; }

/* Buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-size:12.5px; letter-spacing:.16em; text-transform:uppercase; font-weight:500;
  padding:14px 26px; transition:all .4s var(--ease); position:relative; overflow:hidden;
}
.btn--ghost{ border:1px solid var(--line); color:#fff; }
.btn--ghost:hover{ border-color:var(--blue-soft); background:rgba(47,109,246,.1); }
.btn--solid{ background:var(--blue); color:#fff; }
.btn--solid::after{
  content:""; position:absolute; inset:0; background:var(--white); transform:translateY(101%);
  transition:transform .45s var(--ease); z-index:-1;
}
.btn--solid{ z-index:0; }
.btn--solid:hover{ color:var(--navy); }
.btn--solid:hover::after{ transform:translateY(0); }
.btn--line{ border:1px solid var(--line); color:#fff; }
.btn--line:hover{ border-color:#fff; letter-spacing:.22em; }
.btn--block{ width:100%; padding:18px; }
@media (max-width:980px){ .nav,.header__actions .btn--ghost{ display:none; } }

/* Burger */
.burger{ display:none; width:34px; height:18px; position:relative; z-index:810; }
.burger span{
  position:absolute; left:0; width:100%; height:1.5px; background:#fff;
  transition:transform .4s var(--ease),opacity .3s;
}
.burger span:first-child{ top:2px; }
.burger span:last-child{ bottom:2px; }
.is-open .burger span:first-child{ top:8px; transform:rotate(45deg); }
.is-open .burger span:last-child{ bottom:8px; transform:rotate(-45deg); }
@media (max-width:980px){ .burger{ display:block; } }

/* Mobile menu */
.mobile-menu{
  position:fixed; inset:0; z-index:790; background:var(--black);
  display:flex; flex-direction:column; justify-content:center; padding:0 32px;
  clip-path:circle(0% at calc(100% - 40px) 40px);
  transition:clip-path .7s var(--ease-2);
}
.is-open .mobile-menu{ clip-path:circle(150% at calc(100% - 40px) 40px); }
.mobile-menu nav{ display:flex; flex-direction:column; gap:8px; }
.mobile-menu nav a{
  font-family:var(--serif); font-size:34px; line-height:1.25; color:#fff;
  opacity:0; transform:translateY(20px); transition:opacity .5s var(--ease),transform .5s var(--ease);
}
.mobile-menu nav a.mobile-sub{ font-family:var(--sans); font-size:15px; letter-spacing:.05em; color:var(--grey); padding-left:18px; }
.is-open .mobile-menu nav a{ opacity:1; transform:none; }
.is-open .mobile-menu nav a:nth-child(1){ transition-delay:.15s; }
.is-open .mobile-menu nav a:nth-child(2){ transition-delay:.20s; }
.is-open .mobile-menu nav a:nth-child(3){ transition-delay:.24s; }
.is-open .mobile-menu nav a:nth-child(4){ transition-delay:.28s; }
.is-open .mobile-menu nav a:nth-child(5){ transition-delay:.32s; }
.is-open .mobile-menu nav a:nth-child(6){ transition-delay:.36s; }
.is-open .mobile-menu nav a:nth-child(7){ transition-delay:.42s; }
.is-open .mobile-menu nav a:nth-child(8){ transition-delay:.46s; }
.mobile-menu__foot{
  position:absolute; bottom:40px; left:32px; right:32px;
  display:flex; flex-direction:column; gap:8px; color:var(--grey); font-size:13px; letter-spacing:.05em;
}
.mobile-menu__foot a{ color:var(--blue-soft); }

/* ---------- HERO ---------- */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:center;
  overflow:hidden; background:var(--navy);
}
.hero__bg{
  position:absolute; inset:-8% 0 0; z-index:0;
  background:
    radial-gradient(ellipse at 70% 30%, rgba(47,109,246,.22), transparent 55%),
    radial-gradient(ellipse at 20% 80%, rgba(21,50,122,.35), transparent 60%),
    linear-gradient(160deg,#070c1c 0%, #0a1430 45%, #0a1228 100%);
  will-change:transform;
}
.hero__veil{
  position:absolute; inset:0; z-index:1;
  background:
    radial-gradient(circle at 50% 120%, rgba(47,109,246,.18), transparent 50%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.015) 0 1px, transparent 1px 3px);
  pointer-events:none;
}
.hero__ring{
  position:absolute; right:-6vw; top:50%; transform:translateY(-50%);
  width:60vw; height:60vw; max-width:760px; max-height:760px;
  border:1px solid rgba(91,139,255,.35); border-radius:50%; z-index:1;
  opacity:.9;
}
.hero__ring::after{
  content:""; position:absolute; inset:14%; border:1px solid rgba(91,139,255,.16); border-radius:50%;
}
.hero__content{ position:relative; z-index:3; max-width:940px; padding:0 48px; margin-top:40px; }
@media (max-width:768px){ .hero__content{ padding:0 24px; } }

.hero__eyebrow{
  font-size:12px; letter-spacing:.42em; text-transform:uppercase; color:var(--blue-soft);
  margin-bottom:28px; display:flex; align-items:center; gap:14px;
}
.hero__eyebrow::before{ content:""; width:46px; height:1px; background:var(--blue-soft); display:inline-block; }

.hero__title{
  font-family:var(--serif); font-weight:500; line-height:.98;
  font-size:clamp(40px,6.6vw,100px); letter-spacing:-.01em; margin-bottom:30px;
}
.hero__title .line{ display:block; overflow:hidden; }
.hero__title .word{ display:inline-block; white-space:nowrap; }
.hero__title .serif-i{ font-style:italic; color:var(--blue-soft); }

.hero__lede{
  font-size:clamp(17px,1.6vw,21px); color:var(--white); max-width:540px; font-weight:300;
  margin-bottom:18px;
}
.hero__tag{
  font-family:var(--serif); font-style:italic; font-size:clamp(16px,1.5vw,20px);
  color:var(--blue-soft); max-width:540px; margin-bottom:40px; letter-spacing:.01em;
}
.hero__cta{ display:flex; gap:16px; flex-wrap:wrap; }

/* optional hero photo layer */
.hero__photo{
  position:absolute; inset:0; z-index:0; width:100%; height:100%;
  object-fit:cover; opacity:.32; mix-blend-mode:luminosity;
}

.hero__scroll{
  position:absolute; bottom:40px; left:50%; transform:translateX(-50%); z-index:3;
  display:flex; flex-direction:column; align-items:center; gap:12px;
  font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--grey);
}
.arrow-down{
  width:1px; height:46px; background:linear-gradient(var(--blue-soft),transparent); position:relative;
  animation:scrollPulse 2s var(--ease) infinite;
}
@keyframes scrollPulse{ 0%,100%{ opacity:.3; transform:scaleY(.6); } 50%{ opacity:1; transform:scaleY(1); } }

.hero__marquee{
  position:absolute; bottom:0; left:0; width:100%; z-index:2;
  border-top:1px solid var(--line); padding:18px 0; overflow:hidden;
  background:rgba(5,7,13,.4);
}
.marquee__track{
  display:flex; align-items:center; gap:32px; white-space:nowrap;
  animation:marquee 28s linear infinite; width:max-content;
}
.marquee__track span{
  font-family:var(--serif); font-style:italic; font-size:22px; color:rgba(255,255,255,.55);
}
.marquee__track i{ color:var(--blue-soft); font-style:normal; }
@keyframes marquee{ to{ transform:translateX(-50%); } }
@media (max-width:768px){ .hero__marquee{ display:none; } }

/* ---------- Reveal animation base ---------- */
.reveal,.reveal-up{ opacity:0; transition:opacity .9s var(--ease),transform .9s var(--ease); }
.reveal{ transform:translateY(24px); }
.reveal-up{ transform:translateY(40px); }
.reveal.is-in,.reveal-up.is-in{ opacity:1; transform:none; }

.reveal-line{ display:block; overflow:hidden; }
.reveal-line > *{ display:block; }

/* word reveal for hero (JS adds .is-in to body→hero) */
.word.reveal-up{ transform:translateY(110%); transition:transform 1s var(--ease); opacity:1; }
.loaded .word.reveal-up{ transform:translateY(0); }
.loaded .word.reveal-up:nth-child(2){ transition-delay:.08s; }
.hero__title .line:nth-child(2) .word.reveal-up{ transition-delay:.12s; }
.hero__title .line:nth-child(2) .word.reveal-up:nth-child(2){ transition-delay:.2s; }
.loaded .hero__eyebrow.reveal,
.loaded .hero__lede.reveal,
.loaded .hero__cta.reveal{ opacity:1; transform:none; transition-delay:.5s; }

/* ---------- Statement ---------- */
.statement{ padding:140px 0; background:linear-gradient(180deg,var(--navy) 0%, var(--navy-2) 100%); position:relative; }
.statement__label,.section-head__label{
  font-size:12px; letter-spacing:.34em; text-transform:uppercase; color:var(--blue-soft);
  margin-bottom:30px; display:inline-flex; align-items:center; gap:12px;
}
.statement__label::before,.section-head__label::before{
  content:""; width:30px; height:1px; background:var(--blue-soft);
}
.statement__text{
  font-family:var(--serif); font-weight:400; font-size:clamp(28px,4.2vw,58px);
  line-height:1.18; letter-spacing:-.01em; max-width:none; color:#fff;
}
.statement__text .reveal-line{ white-space:nowrap; }
.statement__text .reveal-line em{ display:inline; }
@media (max-width:720px){ .statement__text .reveal-line{ white-space:normal; } }
.statement__text em{ color:var(--blue-soft); }

.stats{
  display:grid; grid-template-columns:repeat(4,1fr); gap:30px;
  margin-top:90px; padding-top:50px; border-top:1px solid var(--line);
}
.stat{ display:flex; flex-direction:column; }
.stat__num{ font-family:var(--serif); font-size:clamp(40px,5vw,68px); line-height:1; color:#fff; }
.stat__suffix{ font-family:var(--serif); font-size:24px; color:var(--blue-soft); margin:6px 0 14px; }
.stat p{ font-size:13px; letter-spacing:.04em; color:var(--grey); line-height:1.5; }
@media (max-width:880px){ .stats{ grid-template-columns:repeat(2,1fr); gap:40px 30px; } .statement{ padding:100px 0; } }

/* ---------- Services / pillars ---------- */
.services{ padding:140px 0; background:var(--navy-2); position:relative; }
.section-head{ margin-bottom:70px; }
.section-head__title{
  font-family:var(--serif); font-weight:500; font-size:clamp(34px,5vw,62px);
  line-height:1.04; letter-spacing:-.01em; max-width:680px;
}
.pillars{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.pillar{
  background:var(--navy-2); padding:54px 48px 48px; position:relative; overflow:hidden;
  transition:background .5s var(--ease); min-height:330px; display:flex; flex-direction:column;
}
.pillar::before{
  content:""; position:absolute; left:0; top:0; height:2px; width:0; background:var(--blue);
  transition:width .6s var(--ease);
}
.pillar:hover{ background:var(--navy); }
.pillar:hover::before{ width:100%; }
.pillar__num{
  position:absolute; top:40px; right:48px; font-family:var(--serif); font-style:italic;
  font-size:40px; color:rgba(91,139,255,.25); transition:color .5s;
}
.pillar:hover .pillar__num{ color:rgba(91,139,255,.6); }
.pillar__icon{ width:48px; height:48px; color:var(--blue-soft); margin-bottom:26px; }
.pillar__icon svg{ width:100%; height:100%; }
.pillar h3{ font-family:var(--serif); font-size:27px; font-weight:500; margin-bottom:14px; line-height:1.15; }
.pillar p{ color:var(--grey); font-size:15px; font-weight:300; line-height:1.7; max-width:420px; }
.pillar__link{
  margin-top:auto; padding-top:26px; display:inline-flex; align-items:center; gap:10px;
  font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:#fff;
  opacity:0; transform:translateY(8px); transition:opacity .4s,transform .4s,gap .4s;
}
.pillar:hover .pillar__link{ opacity:1; transform:none; }
.pillar__link:hover{ gap:18px; color:var(--blue-soft); }
.arrow-right{
  width:18px; height:1px; background:currentColor; position:relative;
}
.arrow-right::after{
  content:""; position:absolute; right:0; top:-3px; width:7px; height:7px;
  border-top:1px solid currentColor; border-right:1px solid currentColor; transform:rotate(45deg);
}
@media (max-width:768px){ .pillars{ grid-template-columns:1fr; } .pillar{ padding:42px 28px; min-height:auto; } .services{ padding:90px 0; } .pillar__link{ opacity:1; transform:none; } }

/* ---------- About ---------- */
.about{ padding:140px 0; background:linear-gradient(180deg,var(--navy-2),var(--navy)); }
.about__grid{ display:grid; grid-template-columns:1fr 1.05fr; gap:80px; align-items:center; }
.about__media{ position:relative; }
.about__img{
  aspect-ratio:4/5; width:100%; position:relative; overflow:hidden;
  background:linear-gradient(135deg,#0c1a3c,#0a1228);
  background-image:
    radial-gradient(circle at 30% 20%, rgba(47,109,246,.4), transparent 50%),
    radial-gradient(circle at 80% 80%, rgba(91,139,255,.25), transparent 55%),
    linear-gradient(135deg,#0c1a3c,#060c1d);
  border:1px solid var(--line);
}
.about__img::after{
  content:""; position:absolute; inset:0;
  background:repeating-linear-gradient(45deg,rgba(255,255,255,.025) 0 2px,transparent 2px 8px);
}
.about__badge{
  position:absolute; bottom:-30px; right:-30px; background:var(--blue);
  width:140px; height:140px; border-radius:50%; display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center; color:#fff;
  box-shadow:0 24px 50px rgba(47,109,246,.4);
}
.about__badge span{ font-size:11px; letter-spacing:.2em; text-transform:uppercase; opacity:.85; }
.about__badge strong{ font-family:var(--serif); font-size:34px; font-weight:500; line-height:1.1; }
.about__title{ font-family:var(--serif); font-weight:500; font-size:clamp(30px,3.6vw,46px); line-height:1.1; margin:22px 0 26px; }
.about__body p{ color:var(--mist); font-weight:300; margin-bottom:18px; max-width:540px; }
.about__list{ margin-top:34px; display:grid; gap:16px; }
.about__list li{ display:flex; align-items:center; gap:14px; color:#fff; font-size:15px; }
.about__list li i{ width:8px; height:8px; border:1px solid var(--blue-soft); transform:rotate(45deg); flex:none; }
@media (max-width:900px){ .about__grid{ grid-template-columns:1fr; gap:70px; } .about{ padding:90px 0; } .about__badge{ width:110px; height:110px; right:0; } }

/* ---------- Quote ---------- */
.quote{ padding:130px 0; background:var(--black); position:relative; overflow:hidden; }
.quote::before{
  content:""; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:680px; height:680px; max-width:90vw; border:1px solid rgba(91,139,255,.14); border-radius:50%;
}
.quote::after{
  content:""; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:420px; height:420px; border:1px solid rgba(91,139,255,.1); border-radius:50%;
}
.quote .container{ position:relative; text-align:center; }
.quote__text{
  font-family:var(--serif); font-weight:400; font-size:clamp(26px,4vw,52px); line-height:1.3;
  max-width:1000px; margin:0 auto; color:#fff;
}
.quote__text em{ color:var(--blue-soft); }
.quote__by{ margin-top:34px; font-size:13px; letter-spacing:.2em; text-transform:uppercase; color:var(--grey); }

/* ---------- Contact ---------- */
.contact{ padding:140px 0; background:linear-gradient(180deg,var(--black),var(--navy)); }
.contact__grid{ display:grid; grid-template-columns:1fr 1fr; gap:80px; }
.contact__title{ font-family:var(--serif); font-weight:500; font-size:clamp(32px,4vw,52px); line-height:1.08; margin:22px 0 22px; }
.contact__intro > p{ color:var(--mist); font-weight:300; max-width:440px; }
.contact__offices{ margin-top:50px; display:grid; grid-template-columns:repeat(2,1fr); gap:34px 30px; }
.office h4{ font-family:var(--serif); font-size:20px; font-weight:500; margin-bottom:10px; color:#fff; }
.office p{ font-size:13.5px; color:var(--grey); line-height:1.6; margin-bottom:8px; }
.office a{ font-size:13.5px; color:var(--blue-soft); letter-spacing:.03em; }
.office a:hover{ text-decoration:underline; }

/* Form */
.contact__form{
  background:rgba(255,255,255,.02); border:1px solid var(--line); padding:46px 40px;
  display:flex; flex-direction:column; gap:30px;
}
.field{ position:relative; }
.field input,.field textarea,.field select{
  width:100%; background:transparent; border:none; border-bottom:1px solid var(--line);
  padding:12px 0 10px; color:#fff; font-family:var(--sans); font-size:15px; outline:none;
  cursor:none;
}
.field textarea{ resize:none; }
.field select{ color:#fff; }
.field select option{ background:var(--navy); color:#fff; }
.field label{
  position:absolute; left:0; top:12px; color:var(--grey); font-size:15px;
  pointer-events:none; transition:all .3s var(--ease);
}
.field input:focus + label,
.field input:valid + label,
.field textarea:focus + label,
.field textarea:valid + label,
.field select:focus + label,
.field select:valid + label,
.label--select{ top:-12px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--blue-soft); }
.label--select{ top:-12px; }
.field__line{ position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--blue); transition:width .4s var(--ease); }
.field input:focus ~ .field__line,
.field textarea:focus ~ .field__line,
.field select:focus ~ .field__line{ width:100%; }
.form__note{ font-size:11.5px; letter-spacing:.04em; color:var(--grey-d); text-align:center; }
@media (max-width:900px){ .contact__grid{ grid-template-columns:1fr; gap:56px; } .contact{ padding:90px 0; } .contact__form{ padding:34px 24px; } }
@media (max-width:520px){ .contact__offices{ grid-template-columns:1fr; } }

/* ---------- Footer ---------- */
.footer{ background:var(--black); padding:90px 0 36px; border-top:1px solid var(--line); }
.footer__top{ display:grid; grid-template-columns:1.3fr 1fr; gap:60px; padding-bottom:60px; border-bottom:1px solid var(--line); }
.footer__brand p{ color:var(--grey); font-size:14px; font-weight:300; max-width:300px; margin-top:22px; line-height:1.7; }
.brand--light .brand__mark{ color:var(--blue-soft); }
.footer__cols{ display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,max-content)); gap:30px; justify-content:flex-end; }
@media (max-width:768px){ .footer__cols{ justify-content:flex-start; } }
.footer__col h5{ font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:#fff; margin-bottom:20px; font-weight:500; }
.footer__col a{ display:block; color:var(--grey); font-size:14px; font-weight:300; padding:7px 0; transition:color .3s,padding-left .3s; }
.footer__col a:hover{ color:var(--blue-soft); padding-left:6px; }
.footer__bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:30px; color:var(--grey-d); font-size:13px; }
.footer__social{ display:flex; gap:26px; }
.footer__social a{ color:var(--grey); transition:color .3s; }
.footer__social a:hover{ color:var(--blue-soft); }
@media (max-width:768px){ .footer__top{ grid-template-columns:1fr; gap:44px; } .footer__cols{ gap:20px; } .footer__bottom{ flex-direction:column; gap:16px; text-align:center; } }

/* ---------- Photo placeholders ---------- */
.ph{
  position:relative; overflow:hidden; display:flex; align-items:flex-end;
  border:1px solid var(--line);
  background:
    radial-gradient(circle at 30% 20%, rgba(47,109,246,.30), transparent 55%),
    radial-gradient(circle at 80% 85%, rgba(91,139,255,.18), transparent 55%),
    linear-gradient(135deg,#0c1a3c,#070d1e);
}
.ph::after{
  content:""; position:absolute; inset:14px; border:1px dashed rgba(255,255,255,.16);
  pointer-events:none; transition:inset .5s var(--ease),border-color .5s;
}
.ph:hover::after{ inset:10px; border-color:rgba(91,139,255,.4); }
.ph__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:2; }
.ph__img ~ .ph__hint,.ph__img ~ .ph__cap{ display:none; }
.ph__img ~ ::after,.ph:has(.ph__img)::after{ display:none; }
.ph__hint{
  position:absolute; top:18px; right:18px; z-index:1;
  font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--grey);
  border:1px solid var(--line); padding:6px 12px; border-radius:40px;
}
.ph__cap{
  position:relative; z-index:1; margin:0; padding:22px 24px;
  font-family:var(--serif); font-style:italic; font-size:20px; color:#fff;
}

/* ---------- Gallery ---------- */
.gallery{ padding:0 0 140px; background:linear-gradient(180deg,var(--navy),var(--navy-2)); }
.gallery .section-head__label{ margin-bottom:34px; }
.gallery__grid{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:clamp(190px,23vw,300px); gap:18px; }
.gallery__tile--wide{ grid-column:span 2; }
@media (max-width:900px){ .gallery{ padding-bottom:90px; } .gallery__grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:clamp(170px,34vw,260px); } }
@media (max-width:560px){ .gallery__grid{ grid-template-columns:1fr; grid-auto-rows:auto; } .gallery__tile{ aspect-ratio:4/3; } .gallery__tile--wide{ grid-column:span 1; } }

/* ---------- Contact email ---------- */
.contact__email{ margin-top:40px; display:flex; flex-direction:column; gap:8px; }
.contact__email span{ font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--grey); }
.contact__email a{ font-family:var(--serif); font-size:clamp(22px,2.2vw,30px); color:var(--blue-soft); width:max-content; position:relative; }
.contact__email a::after{ content:""; position:absolute; left:0; bottom:2px; height:1px; width:0; background:var(--blue-soft); transition:width .4s var(--ease); }
.contact__email a:hover::after{ width:100%; }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
  .reveal,.reveal-up,.word.reveal-up{ opacity:1 !important; transform:none !important; }
}
