/* =========================================================
   Realty Force — Design Tokens
========================================================= */
:root{
  /* Core palette — black, white, dark blue. No red. */
  --black: #0A0A0B;
  --ink: #0F1115;
  --navy: #101828;          /* deep blue-black, used for dark surfaces */
  --blue: #1B3A6B;          /* primary dark blue accent */
  --logo-navy: #0E1636;     /* sampled from the logo mark */
  --blue-soft: #2F5D9E;     /* accent on dark backgrounds */
  --blue-tint: #EEF2F8;     /* faint blue wash for alt sections */
  --red: var(--blue);       /* legacy alias — brand red retired */
  --white: #ffffff;

  /* Neutral ramp */
  --n-900: #101828;
  --n-700: #344054;
  --n-500: #667085;
  --n-400: #98A2B3;
  --n-200: #E4E7EC;
  --n-100: #F2F4F7;
  --n-50:  #F9FAFB;
  --line: rgba(16,24,40,0.10);

  --glass-bg: rgba(255,255,255,0.07);
  --glass-bg-strong: rgba(255,255,255,0.12);
  --glass-border: rgba(255,255,255,0.25);
  --glass-blur: 22px;

  --font-display: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --dur-fast: 220ms;
  --dur-med: 420ms;

  --header-h: 72px;

  /* One page column for the whole site. Section padding is 32px, so a
     container capped at --page-max lands its content edge in the same
     place on every band; containers that carry their own 40px padding
     use --page-max-pad instead. */
  --page-max: 1280px;
  /* For containers that carry their own gutter: base + 2 x that gutter */
  --page-max-pad: calc(var(--page-max) + 80px);   /* 40px gutter */
  --page-max-pad32: calc(var(--page-max) + 64px); /* 32px gutter */
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  font-family: var(--font-body);
  font-weight: 300;
  color: var(--ink);
  background: var(--navy);
  -webkit-font-smoothing: antialiased;
  overflow-x:hidden;
}
a{ text-decoration:none; color:inherit; }
ul{ list-style:none; }
button{ font-family:inherit; border:none; background:none; cursor:pointer; }
img{ max-width:100%; display:block; }

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior:auto !important; }
}

/* =========================================================
   HEADER
========================================================= */
.site-header{
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  animation: header-drop 0.8s var(--ease-out) both;
}
@keyframes header-drop{
  from{ transform: translateY(-100%); opacity: 0; }
  to{ transform: translateY(0); opacity: 1; }
}

/* Full-width bar, flush to the top edge (no floating pill) */
.header-glass{
  position: relative;
  width: 100%;
  background: rgba(11, 15, 33, 0.32);
  border-bottom: 1px solid rgba(255, 255, 255, 0.09);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
  transition: background var(--dur-med) var(--ease-out), border-color var(--dur-med) var(--ease-out), box-shadow var(--dur-med) var(--ease-out);
}
/* Animated theme-coloured glow underline */
.header-glass::after{
  content:'';
  position:absolute;
  left:0; right:0; bottom:-1px;
  height:1px;
  background: linear-gradient(90deg, transparent 0%, rgba(27,58,107,0.85) 30%, rgba(120,140,220,0.7) 55%, transparent 90%);
  background-size: 220% 100%;
  animation: header-glow 7s linear infinite;
  opacity: 0.75;
  pointer-events:none;
}
@keyframes header-glow{
  from{ background-position: 0% 0; }
  to{ background-position: 220% 0; }
}

.site-header.is-scrolled .header-glass{
  background: rgba(9, 13, 28, 0.82);
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.34);
}

/* When a light-background section sits behind the header, flip text to dark for contrast */
.site-header.is-light .header-glass{
  background: rgba(255, 255, 255, 0.86);
  border-color: rgba(14, 22, 54, 0.1);
  box-shadow: 0 10px 30px rgba(14, 22, 54, 0.08);
}
.site-header.is-light .header-glass::after{ opacity: 0.5; }
.site-header.is-light .main-nav a{ color: rgba(14, 22, 54, 0.78); }
.site-header.is-light .main-nav a:hover{ color: var(--navy); }
.site-header.is-light .main-nav a::after{ background: var(--red); }
.site-header.is-light .btn-contact{
  background: rgba(14, 22, 54, 0.05);
  border-color: rgba(14, 22, 54, 0.16);
  color: var(--navy);
}
.site-header.is-light .btn-contact:hover{
  background: rgba(14, 22, 54, 0.1);
  border-color: var(--red);
  color: var(--red);
}
.site-header.is-light .nav-toggle span{ background: var(--navy); }

.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 24px;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 40px;
  height: var(--header-h);
}
@media (max-width: 600px){
  .header-inner{ padding: 0 18px; }
}

.logo{ display:flex; align-items:center; flex-shrink:0; }
.logo-img{
  height: 34px;
  width: auto;
  border-radius: 6px;
}

.main-nav ul{ display:flex; align-items:center; gap: 34px; }
.main-nav a{
  color: rgba(255,255,255,0.82);
  font-size: 14.5px;
  font-weight: 300;
  letter-spacing: 0.01em;
  position: relative;
  padding: 6px 2px;
  transition: color var(--dur-fast) var(--ease-out);
}
.main-nav a::after{
  content:'';
  position:absolute;
  left:0; bottom:0;
  width:0; height:1.5px;
  background: var(--red);
  border-radius: 2px;
  transition: width var(--dur-fast) var(--ease-out);
}
.main-nav a:hover{ color:#fff; }
.main-nav a:hover::after{ width:100%; }
.nav-contact-mobile{ display:none; }

.header-actions{ display:flex; align-items:center; gap:14px; flex-shrink:0; }

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:8px;
  font-weight:400;
  cursor:pointer;
  transition: transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
  -webkit-tap-highlight-color: transparent;
}
.btn:active{ transform: scale(0.96); }

.btn-pill{
  padding: 11px 24px;
  border-radius: 999px;
  font-size: 14px;
}
.btn-contact{
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  backdrop-filter: blur(var(--glass-blur));
  -webkit-backdrop-filter: blur(var(--glass-blur));
  color: #fff;
}
.btn-contact:hover{
  background: var(--glass-bg-strong);
  border-color: var(--red);
  transform: translateY(-2px);
}

.nav-toggle{
  display:none;
  width: 44px; height: 44px;
  border-radius: 10px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
}
.nav-toggle span{
  width: 20px; height: 2px;
  background:#fff;
  border-radius: 2px;
  transition: transform var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out);
}
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

/* =========================================================
   HERO
========================================================= */
.hero{
  position: relative;
  min-height: 100vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background: var(--navy);
}

.hero-media{
  position:absolute; inset:0;
  z-index: 0;
}
.hero-video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit: cover;
  filter: saturate(1) brightness(0.92);
}
.hero-overlay{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(10,10,12,0.42) 0%, rgba(10,10,12,0.12) 26%, rgba(10,10,12,0.2) 60%, rgba(10,10,12,0.58) 100%);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

.hero-content{
  position:relative;
  z-index: 2;
  max-width: 1440px;
  width:100%;
  margin: 0 auto;
  padding: calc(var(--header-h) + 48px) 32px 80px;
  display:grid;
  grid-template-columns: 0.82fr 1.18fr;
  align-items:center;
  gap: 40px;
}

/* ---- Hero left: property search panel ---- */
.hero-left{
  color:#fff;
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  backdrop-filter: blur(var(--glass-blur)) saturate(140%);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(140%);
  border-radius: 28px;
  padding: 40px 36px 42px;
  box-shadow: 0 20px 60px -10px rgba(0,0,0,0.35);
}

.search-heading{
  font-family: var(--font-display);
  font-weight: 200;
  font-size: clamp(25px, 2.6vw, 32px);
  line-height: 1.28;
  letter-spacing: -0.01em;
  margin-bottom: 12px;
}

.search-subheading{
  font-size: 14.5px;
  font-weight: 300;
  line-height: 1.65;
  color: rgba(255,255,255,0.62);
  max-width: 380px;
  margin-bottom: 30px;
}

.search-tabs{
  display:inline-flex;
  gap: 4px;
  background: rgba(255,255,255,0.06);
  border: 1px solid var(--glass-border);
  border-radius: 14px;
  padding: 5px;
  margin-bottom: 24px;
}
.search-tab{
  padding: 10px 22px;
  border-radius: 10px;
  font-size: 13.5px;
  font-weight: 400;
  color: rgba(255,255,255,0.6);
  transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.search-tab:hover:not(.is-active){ color: rgba(255,255,255,0.88); }
.search-tab.is-active{
  background: #fff;
  color: var(--navy);
  font-weight: 500;
  box-shadow: 0 8px 18px -4px rgba(0,0,0,0.25);
}

.search-form{ display:flex; flex-direction:column; gap: 14px; }

.search-field{
  display:flex;
  align-items:center;
  gap: 12px;
  background: rgba(255,255,255,0.07);
  border: 1px solid var(--glass-border);
  border-radius: 14px;
  padding: 14px 16px;
  transition: border-color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);
}
.search-field:focus-within{
  border-color: rgba(255,255,255,0.4);
  background: rgba(255,255,255,0.1);
}
.search-field svg{ color: var(--red); flex-shrink:0; opacity:0.95; }

.search-field input,
.search-field select{
  appearance:none;
  -webkit-appearance:none;
  background:none;
  border:none;
  outline:none;
  width:100%;
  font-family: inherit;
  font-size: 16px;
  font-weight: 300;
  color: #fff;
}
.search-field select{ cursor:pointer; }
.search-field select option{ color:#0B0F1F; }
.search-field input::placeholder{ color: rgba(255,255,255,0.45); }

.search-field-row{ display:flex; gap: 12px; }
.search-field-row .search-field{ flex:1; min-width:0; }

/* ---- Hero search live-suggest dropdown ---- */
.search-field-location{ position:relative; }

.search-suggest{
  position:absolute;
  top: calc(100% + 10px);
  left:0; right:0;
  z-index: 30;
  background: rgba(20,24,42,0.92);
  border: 1px solid var(--glass-border);
  backdrop-filter: blur(24px) saturate(160%);
  -webkit-backdrop-filter: blur(24px) saturate(160%);
  border-radius: 18px;
  box-shadow: 0 30px 60px -20px rgba(0,0,0,0.55);
  padding: 8px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px) scale(0.98);
  transform-origin: top center;
  transition: opacity 200ms var(--ease-out), transform 200ms var(--ease-out), visibility 200ms;
  max-height: 420px;
  overflow-y: auto;
}
.search-field-location.is-open .search-suggest{
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

.search-suggest-list{ display:flex; flex-direction:column; gap: 2px; }

.search-suggest-item{
  display:flex;
  align-items:center;
  gap: 12px;
  width:100%;
  padding: 10px;
  border-radius: 12px;
  text-align:left;
  cursor:pointer;
  transition: background var(--dur-fast) var(--ease-out);
  animation: suggest-row-in 220ms var(--ease-out) both;
}
.search-suggest-item:hover,
.search-suggest-item.is-active{ background: rgba(255,255,255,0.08); }
@keyframes suggest-row-in{
  from{ opacity:0; transform: translateY(4px); }
  to{ opacity:1; transform: translateY(0); }
}

.search-suggest-thumb{
  width: 46px; height: 46px;
  flex-shrink:0;
  border-radius: 10px;
  overflow:hidden;
  background: rgba(255,255,255,0.08);
}
.search-suggest-thumb img{ width:100%; height:100%; object-fit:cover; }

.search-suggest-text{ display:flex; flex-direction:column; gap: 2px; min-width:0; flex:1; }
.search-suggest-title{
  font-size: 13.5px;
  font-weight: 400;
  color:#fff;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.search-suggest-title mark{
  background:none;
  color: var(--red);
  font-weight: 600;
}
.search-suggest-meta{
  font-size: 11.5px;
  font-weight: 300;
  color: rgba(255,255,255,0.5);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.search-suggest-meta-price{ display:none; }

.search-suggest-side{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap: 4px;
  flex-shrink:0;
}
.search-suggest-price{
  font-size: 12px;
  font-weight: 500;
  color:#fff;
  white-space:nowrap;
}
.search-suggest-tag{
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
  background: rgba(255,255,255,0.08);
  border-radius: 999px;
  padding: 3px 8px;
}

.search-suggest-viewall{
  display:block;
  text-align:center;
  margin-top: 4px;
  padding: 12px 10px;
  font-size: 12.5px;
  font-weight: 500;
  color: #fff;
  border-top: 1px solid rgba(255,255,255,0.1);
  transition: color var(--dur-fast) var(--ease-out);
}
.search-suggest-viewall:hover{ color: var(--red); }

.search-suggest-empty{ padding: 18px 14px; text-align:center; }
.search-suggest-empty p{
  font-size: 13px;
  font-weight: 300;
  color: rgba(255,255,255,0.6);
  margin-bottom: 10px;
}

.search-suggest-loading{
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 6px;
  padding: 26px 0;
}
.search-suggest-loading span{
  width: 7px; height: 7px;
  border-radius:50%;
  background: rgba(255,255,255,0.5);
  animation: suggest-dot-bounce 900ms ease-in-out infinite;
}
.search-suggest-loading span:nth-child(2){ animation-delay: 150ms; }
.search-suggest-loading span:nth-child(3){ animation-delay: 300ms; }
@keyframes suggest-dot-bounce{
  0%, 80%, 100%{ transform: scale(0.6); opacity:0.5; }
  40%{ transform: scale(1); opacity:1; }
}

.search-submit{
  margin-top: 6px;
  width:100%;
  gap: 10px;
  padding: 16px 20px;
  border-radius: 14px;
  background: var(--red);
  color:#fff;
  font-size: 14.5px;
  font-weight: 500;
  box-shadow: 0 16px 32px -10px rgba(27,58,107,0.5);
}
.search-submit:hover{
  background: #12294c;
  transform: translateY(-2px);
}

.hero-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size: 12.5px;
  font-weight:400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.85);
  background: var(--glass-bg-strong);
  border: 1px solid var(--glass-border);
  padding: 8px 16px 8px 12px;
  border-radius: 999px;
  margin-bottom: 30px;
}
.eyebrow-dot{
  width:6px; height:6px;
  border-radius:50%;
  background: var(--red);
  box-shadow: 0 0 0 0 rgba(27,58,107,0.6);
  animation: pulse-dot 2.2s infinite;
}
@keyframes pulse-dot{
  0%{ box-shadow: 0 0 0 0 rgba(27,58,107,0.5); }
  70%{ box-shadow: 0 0 0 6px rgba(27,58,107,0); }
  100%{ box-shadow: 0 0 0 0 rgba(27,58,107,0); }
}

.hero-title{
  font-family: var(--font-display);
  font-weight: 200;
  font-size: clamp(28px, 3.4vw, 42px);
  line-height: 1.18;
  letter-spacing: -0.01em;
  margin-bottom: 18px;
  transition: opacity var(--dur-med) var(--ease-out);
}
.accent-text{
  font-weight: 500;
  color: #fff;
}

.hero-desc{
  font-size: 15px;
  font-weight: 300;
  line-height: 1.7;
  color: rgba(255,255,255,0.68);
  max-width: 340px;
  margin-bottom: 28px;
  min-height: 72px;
  transition: opacity var(--dur-med) var(--ease-out);
}

.hero-cta-row{
  display:flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 24px;
}

.btn-explore{
  padding: 14px 26px;
  border-radius: 999px;
  background: var(--glass-bg-strong);
  border: 1px solid var(--glass-border);
  color:#fff;
  font-size: 14px;
  font-weight: 400;
}
.btn-explore .btn-arrow{ color: var(--red); transition: transform var(--dur-fast) var(--ease-out); }
.btn-explore:hover{
  background: rgba(255,255,255,0.18);
  border-color: rgba(255,255,255,0.4);
  transform: translateY(-2px);
}
.btn-explore:hover .btn-arrow{ transform: translateX(4px); }

.hero-stats{ display:flex; align-items:center; gap:20px; }
.stat{ display:flex; flex-direction:column; gap:2px; }
.stat-num{
  font-family: var(--font-display);
  font-size: 20px;
  font-weight:300;
  color:#fff;
}
.stat-label{
  font-size: 11.5px;
  font-weight: 300;
  color: rgba(255,255,255,0.55);
}
.stat-divider{ width:1px; height:28px; background: rgba(255,255,255,0.18); }

/* ---- Hero right: showcase wrapper (copy + card stage, bundled) ---- */
.hero-showcase{
  position: relative;
  display:flex;
  align-items: center;
  gap: 40px;
  background: var(--glass-bg);
  border: 1px solid var(--glass-border);
  backdrop-filter: blur(var(--glass-blur)) saturate(140%);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(140%);
  border-radius: 28px;
  padding: 40px;
  box-shadow: 0 20px 60px -10px rgba(0,0,0,0.35);
}

.hero-showcase-copy{ flex: 1; min-width:0; color:#fff; }

.hero-showcase-cards{
  flex: 0 0 280px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap: 20px;
}

.card-stage{
  position:relative;
  width: 280px;
  max-width: 100%;
  height: 380px;
  perspective: 1200px;
}

.area-card{
  position:absolute;
  inset:0;
  border-radius: 26px;
  overflow:hidden;
  border: 1px solid var(--glass-border);
  background: var(--glass-bg);
  box-shadow: 0 30px 60px -10px rgba(0,0,0,0.55), 0 1px 0 rgba(255,255,255,0.08) inset;
  opacity:0;
  transform: translateY(36px) scale(0.92);
  transition:
    opacity 700ms var(--ease-out),
    transform 700ms var(--ease-out);
  pointer-events:none;
}

.area-card.is-active{
  opacity:1;
  transform: translateY(0) scale(1);
  pointer-events:auto;
  z-index:3;
}
.area-card.is-prev{
  opacity:0.35;
  transform: translateY(-22px) scale(0.93) rotate(-1.5deg) translateX(-14px);
  z-index:1;
}
.area-card.is-next-queue{
  opacity:0;
  transform: translateY(48px) scale(0.9);
  z-index:0;
}

.area-card-img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit: cover;
  transform: scale(1.04);
  transition: transform 6s var(--ease-out);
}
.area-card.is-active .area-card-img{ transform: scale(1.12); }

.area-card-shade{
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(11,15,31,0.05) 0%, rgba(11,15,31,0.1) 40%, rgba(11,15,31,0.88) 100%);
}

.area-card-tag{
  position:absolute;
  top: 18px; left:18px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size: 11px;
  font-weight:500;
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:#fff;
  background: var(--red);
  border: 1px solid rgba(255,255,255,0.18);
  padding: 7px 14px;
  border-radius: 999px;
}

.area-card-info{
  position:absolute;
  left:0; right:0; bottom:0;
  padding: 22px 22px 24px;
  color:#fff;
}
.area-card-name{
  font-family: var(--font-display);
  font-size: 23px;
  font-weight:300;
  margin-bottom: 6px;
  line-height:1.2;
}
.area-card-meta{
  display:flex;
  align-items:center;
  gap:8px;
  font-size: 12.5px;
  font-weight: 300;
  color: rgba(255,255,255,0.75);
}
.area-card-meta svg{ flex-shrink:0; opacity:0.85; }

.card-dots{
  display:flex;
  align-items:center;
  gap:10px;
}
.card-dot{
  width: 8px; height: 8px;
  border-radius: 999px;
  background: rgba(255,255,255,0.3);
  transition: width var(--dur-med) var(--ease-out), background var(--dur-fast) var(--ease-out);
}
.card-dot.is-active{
  width: 26px;
  background: var(--red);
}

/* ---- Scroll cue ---- */
.hero-scroll-cue{
  position:absolute;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%);
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  color: rgba(255,255,255,0.55);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform:uppercase;
}
.hero-scroll-cue i{
  width: 1px; height: 28px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6), transparent);
  position:relative;
  overflow:hidden;
}
.hero-scroll-cue i::after{
  content:'';
  position:absolute;
  top:-100%; left:0;
  width:100%; height:50%;
  background: var(--red);
  animation: scroll-cue 1.8s infinite var(--ease-out);
}
@keyframes scroll-cue{
  0%{ top:-50%; }
  100%{ top:100%; }
}

/* =========================================================
   ABOUT
========================================================= */
.about{
  background: #FAFAFA;
  padding: 120px 32px 130px;
}
.about-inner{
  max-width: 1280px;
  margin: 0 auto;
}

.about-head{ margin-bottom: 56px; }
.about-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size: 12.5px;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--navy);
  background: rgba(14,22,54,0.05);
  border: 1px solid rgba(14,22,54,0.1);
  padding: 8px 16px 8px 12px;
  border-radius: 999px;
  margin-bottom: 26px;
}
.about-eyebrow .eyebrow-dot{ animation: pulse-dot 2.2s infinite; }

.about-title{
  font-family: var(--font-display);
  font-weight: 200;
  font-size: clamp(34px, 4.4vw, 52px);
  line-height: 1.18;
  color: rgba(11,15,31,0.55);
  letter-spacing: -0.01em;
}
.about-title strong{
  font-weight: 500;
  color: var(--ink);
}

.about-body{
  display:grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 64px;
  align-items: start;
}

.about-copy p{
  font-size: 16.5px;
  font-weight: 300;
  line-height: 1.8;
  color: rgba(11,15,31,0.66);
  margin-bottom: 26px;
  max-width: 640px;
}
.about-copy strong{ font-weight: 500; color: var(--ink); }

.about-quote{
  position: relative;
  margin-top: 36px;
  padding: 28px 28px 26px 32px;
  border-left: 2px solid var(--red);
  background: rgba(14,22,54,0.03);
  border-radius: 0 16px 16px 0;
  max-width: 640px;
}
.quote-mark{
  position:absolute;
  top: 6px; left: 14px;
  font-family: var(--font-display);
  font-size: 46px;
  font-weight: 600;
  line-height:1;
  color: var(--red);
  opacity: 0.18;
}
.about-quote p{
  font-size: 16px;
  font-weight: 300;
  font-style: normal;
  color: rgba(11,15,31,0.78);
  line-height: 1.6;
  margin-bottom: 12px;
}
.about-quote cite{
  display:block;
  font-size: 13.5px;
  font-weight: 500;
  font-style: normal;
  color: var(--ink);
}
.about-quote cite span{
  font-weight: 300;
  color: rgba(11,15,31,0.5);
}

.about-stats{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  align-content: start;
}

.stat-card{
  grid-column: span 1;
  background: #fff;
  border: 1px solid rgba(14,22,54,0.08);
  border-radius: 20px;
  padding: 26px 22px;
  box-shadow: 0 12px 28px -10px rgba(14,22,54,0.08);
  transition: transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.stat-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 18px 36px -10px rgba(14,22,54,0.14);
}
.stat-card:nth-child(3){ grid-column: span 2; display:flex; align-items:baseline; gap: 14px; flex-wrap: wrap; }

.stat-card-num{
  font-family: var(--font-display);
  font-weight: 200;
  font-size: 40px;
  color: var(--navy);
  letter-spacing: -0.01em;
}
.stat-card-suffix{
  font-family: var(--font-display);
  font-weight: 300;
  font-size: 26px;
  color: var(--red);
}
.stat-card-label{
  display:block;
  margin-top: 6px;
  font-size: 13px;
  font-weight: 300;
  color: rgba(11,15,31,0.55);
  letter-spacing: 0.01em;
}
.stat-card:nth-child(3) .stat-card-label{ margin-top:0; }

.developer-strip{
  grid-column: span 2;
  margin-top: 8px;
  padding-top: 24px;
  border-top: 1px solid rgba(14,22,54,0.1);
}
.developer-strip-label{
  display:block;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(11,15,31,0.4);
  margin-bottom: 14px;
}
.developer-strip ul{
  display:flex;
  flex-wrap: wrap;
  gap: 10px;
}
.developer-strip li{
  font-size: 13.5px;
  font-weight: 400;
  color: var(--navy);
  background: rgba(14,22,54,0.05);
  border: 1px solid rgba(14,22,54,0.1);
  padding: 8px 16px;
  border-radius: 999px;
  transition: background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}
.developer-strip li:hover{
  background: rgba(27,58,107,0.06);
  border-color: rgba(27,58,107,0.25);
  color: var(--red);
}

/* =========================================================
   LISTINGS
========================================================= */
/* =========================================================
   AWARDS
========================================================= */
.awards{
  position: relative;
  background:
    radial-gradient(circle at 12% 18%, rgba(27,58,107,0.10), transparent 42%),
    radial-gradient(circle at 88% 78%, rgba(14,22,54,0.10), transparent 46%),
    linear-gradient(155deg, #f3f4f8 0%, #eceef4 48%, #eef2f8 100%);
  padding: 120px 32px 130px;
  overflow: hidden;
}
.awards::before{
  content:'';
  position:absolute;
  width: 620px; height: 620px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(27,58,107,0.16), transparent 70%);
  filter: blur(100px);
  top: -220px; right: -180px;
  pointer-events:none;
}
.awards-inner{
  position:relative;
  z-index:1;
  max-width: 1360px;
  margin: 0 auto;
}

.awards-layout{
  display:grid;
  grid-template-columns: 0.82fr 1.18fr;
  gap: 64px;
  align-items:center;
}

.awards-info{ color: var(--ink); }

.awards-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size: 12.5px;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--navy);
  background: rgba(255,255,255,0.5);
  border: 1px solid rgba(14,22,54,0.12);
  backdrop-filter: blur(16px) saturate(150%);
  -webkit-backdrop-filter: blur(16px) saturate(150%);
  padding: 8px 16px 8px 12px;
  border-radius: 999px;
  margin-bottom: 22px;
}
.awards-eyebrow .eyebrow-dot{ animation: pulse-dot 2.2s infinite; }

.awards-title{
  font-family: var(--font-display);
  font-weight: 200;
  font-size: clamp(28px, 3.4vw, 40px);
  line-height: 1.22;
  color: rgba(11,15,31,0.5);
  letter-spacing: -0.01em;
  margin-bottom: 18px;
}
.awards-title strong{ font-weight: 500; color: var(--navy); }

.awards-sub{
  font-size: 15px;
  font-weight: 300;
  line-height: 1.7;
  color: rgba(11,15,31,0.62);
  max-width: 460px;
  margin-bottom: 38px;
}

.awards-active{
  position:relative;
  padding: 24px 26px;
  background: rgba(255,255,255,0.45);
  border: 1px solid rgba(255,255,255,0.7);
  border-left: 2px solid var(--red);
  border-radius: 16px;
  backdrop-filter: blur(22px) saturate(160%);
  -webkit-backdrop-filter: blur(22px) saturate(160%);
  box-shadow: 0 20px 50px -24px rgba(11,15,31,0.18);
  margin-bottom: 28px;
  min-height: 128px;
}
.awards-active-index{
  display:block;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.08em;
  color: rgba(11,15,31,0.4);
  margin-bottom: 10px;
}
.awards-active-title{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 21px;
  line-height: 1.3;
  min-height: calc(1.3em * 2);
  color: var(--navy);
  margin-bottom: 8px;
  letter-spacing: -0.005em;
}
.awards-active-desc{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.6;
  min-height: calc(1.6em * 2);
  color: rgba(11,15,31,0.6);
  max-width: 420px;
}

.awards-nav{
  display:flex;
  align-items:center;
  gap: 18px;
}
.awards-arrow{
  display:flex;
  align-items:center;
  justify-content:center;
  width: 44px; height: 44px;
  border-radius: 50%;
  background: rgba(255,255,255,0.45);
  border: 1px solid rgba(255,255,255,0.7);
  backdrop-filter: blur(16px) saturate(150%);
  -webkit-backdrop-filter: blur(16px) saturate(150%);
  color: var(--navy);
  box-shadow: 0 10px 24px -14px rgba(11,15,31,0.2);
  flex-shrink:0;
  transition: background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.awards-arrow:hover{
  background: var(--red);
  border-color: var(--red);
  color:#fff;
  transform: translateY(-2px);
}
.awards-arrow:active{ transform: translateY(0) scale(0.96); }

.awards-dots{
  display:flex;
  align-items:center;
  gap: 8px;
  flex-wrap:wrap;
}
.awards-dot{
  width: 8px; height: 8px;
  border-radius: 50%;
  background: rgba(11,15,31,0.2);
  border:none;
  padding:0;
  cursor:pointer;
  transition: background var(--dur-fast) var(--ease-out), width var(--dur-fast) var(--ease-out);
}
.awards-dot:hover{ background: rgba(11,15,31,0.4); }
.awards-dot.is-active{
  background: var(--red);
  width: 22px;
  border-radius: 5px;
}

.awards-slider-wrap{
  position:relative;
  min-width: 0;
  width: 100%;
}
.awards-slider-wrap::before,
.awards-slider-wrap::after{
  content:'';
  position:absolute;
  top:0; bottom:0;
  width: 64px;
  z-index:2;
  pointer-events:none;
}
.awards-slider-wrap::before{
  left:0;
  background: linear-gradient(90deg, #eceef0, rgba(236,238,240,0));
}
.awards-slider-wrap::after{
  right:0;
  background: linear-gradient(270deg, #eceef0, rgba(236,238,240,0));
}

.awards-slider{
  width: 100%;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  cursor: grab;
  padding: 36px 0;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x;
}
.awards-slider::-webkit-scrollbar{ display:none; }
.awards-slider.is-dragging{ cursor: grabbing; scroll-snap-type: none; }
.awards-slider:focus-visible{ outline: 2px solid rgba(27,58,107,0.45); outline-offset: 6px; border-radius: 8px; }

.awards-track{
  display:flex;
  gap: 26px;
  list-style:none;
  margin:0;
  padding: 0 64px;
  width: max-content;
}

.award-card{
  position:relative;
  flex-shrink:0;
  width: 270px;
  height: 380px;
  margin:0;
  border-radius: 22px;
  overflow:hidden;
  scroll-snap-align: center;
  background: rgba(255,255,255,0.35);
  backdrop-filter: blur(6px) saturate(140%);
  -webkit-backdrop-filter: blur(6px) saturate(140%);
  box-shadow: 0 18px 38px -20px rgba(11,15,31,0.3);
  opacity: 0.55;
  transform: scale(0.9);
  transition: transform 520ms var(--ease-out), box-shadow 520ms var(--ease-out), opacity 520ms var(--ease-out);
}
.award-card img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit: cover;
  transition: transform 600ms var(--ease-out);
}
.award-card::after{
  content:'';
  position:absolute; inset:0;
  border-radius: inherit;
  border: 1.5px solid rgba(255,255,255,0.55);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.4);
  pointer-events:none;
}
.award-card.is-active{
  opacity: 1;
  transform: scale(1.06);
  box-shadow:
    0 30px 60px -16px rgba(11,15,31,0.35),
    0 0 0 1px rgba(255,255,255,0.5);
}
.award-card.is-active img{ transform: scale(1.04); }

@media (max-width: 1080px){
  .awards-layout{ grid-template-columns: 1fr; gap: 40px; }
  .awards-sub{ max-width: 560px; }
}
@media (max-width: 640px){
  .awards{ padding: 90px 0 100px; }
  .awards-inner{ padding: 0 20px; }
  .award-card{ width: 220px; height: 320px; }
  .awards-track{ padding: 0 20px; gap: 18px; }
  .awards-slider-wrap::before,
  .awards-slider-wrap::after{ width: 28px; }
}

.listings{
  position: relative;
  background: #fff;
  padding: 110px 32px 130px;
  overflow: hidden;
}
.listings::before,
.listings::after{
  content:'';
  position:absolute;
  width: 520px; height: 520px;
  border-radius: 50%;
  filter: blur(90px);
  z-index: 0;
  pointer-events:none;
}
.listings::before{
  background: radial-gradient(circle, rgba(27,58,107,0.16), transparent 70%);
  top: -160px; left: -140px;
}
.listings::after{
  background: radial-gradient(circle, rgba(14,22,54,0.14), transparent 70%);
  bottom: -200px; right: -160px;
}

.listings-inner{ position:relative; z-index:1; max-width: 1400px; margin: 0 auto; }

.listings-head{
  display:flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 24px;
  margin-bottom: 44px;
}

.listings-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size: 12.5px;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--navy);
  background: rgba(14,22,54,0.05);
  border: 1px solid rgba(14,22,54,0.1);
  padding: 8px 16px 8px 12px;
  border-radius: 999px;
  margin-bottom: 22px;
}
.listings-eyebrow .eyebrow-dot{ animation: pulse-dot 2.2s infinite; }

.listings-title{
  font-family: var(--font-display);
  font-weight: 200;
  font-size: clamp(32px, 4vw, 46px);
  line-height: 1.18;
  color: rgba(11,15,31,0.55);
  letter-spacing: -0.01em;
}
.listings-title strong{ font-weight: 500; color: var(--ink); }

.listings-sub{
  max-width: 380px;
  font-size: 15px;
  font-weight: 300;
  line-height: 1.65;
  color: rgba(11,15,31,0.55);
  text-align: right;
}

.listings-tabs{
  display:inline-flex;
  gap: 4px;
  background: rgba(14,22,54,0.04);
  border: 1px solid rgba(14,22,54,0.09);
  border-radius: 14px;
  padding: 5px;
  margin-bottom: 40px;
}
.listings-tab{
  padding: 10px 24px;
  border-radius: 10px;
  font-size: 13.5px;
  font-weight: 400;
  color: rgba(11,15,31,0.55);
  transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.listings-tab:hover:not(.is-active){ color: var(--navy); }
.listings-tab.is-active{
  background: var(--navy);
  color: #fff;
  font-weight: 500;
}

.listings-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 1fr;
  gap: 28px;
}

.listings-empty{
  grid-column: 1 / -1;
  text-align:center;
  padding: 70px 0;
  color: rgba(11,15,31,0.42);
  font-size: 15px;
  font-weight: 300;
}
.listings-empty.is-error{ color: var(--red); }

.listing-card{
  display:flex;
  flex-direction:column;
  height:100%;
  position: relative;
  min-width: 0;
  border-radius: 20px;
  padding: 10px;
  background: #fff;
  border: 1px solid rgba(14,22,54,0.08);
  box-shadow: 0 1px 2px rgba(14,22,54,0.04), 0 16px 32px -20px rgba(14,22,54,0.12);
  text-decoration:none;
  opacity: 0;
  animation: card-fade-up 560ms var(--ease-out) both;
  transition: transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}
@keyframes card-fade-up{
  from{ opacity:0; transform: translateY(20px); }
  to{ opacity:1; transform: translateY(0); }
}
.listing-card:hover{
  transform: translateY(-6px);
  border-color: rgba(14,22,54,0.14);
  box-shadow: 0 1px 2px rgba(14,22,54,0.04), 0 28px 48px -20px rgba(14,22,54,0.22);
}
.listing-card:focus-visible{
  outline: 2px solid var(--red);
  outline-offset: 2px;
}

.listing-card-media{
  position:relative;
  aspect-ratio: 4 / 3;
  overflow:hidden;
  border-radius: 14px;
  background: #eee;
  flex-shrink:0;
}
.listing-card-media-empty{
  width:100%; height:100%;
  background: linear-gradient(135deg, rgba(14,22,54,0.1), rgba(27,58,107,0.1));
}
.listing-card-media img{
  width:100%; height:100%;
  object-fit: cover;
  transition: transform 700ms var(--ease-out);
}
.listing-card:hover .listing-card-media img{ transform: scale(1.08); }

.listing-card-scrim{
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,0.04) 0%, transparent 35%, transparent 60%, rgba(11,15,31,0.55) 100%);
  pointer-events:none;
}

.listing-card-badge{
  position:absolute;
  top: 14px; left: 14px;
  z-index: 1;
  background: rgba(27,58,107,0.85);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,0.3);
  color:#fff;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 6px 12px;
  border-radius: 999px;
}
.listing-card-price{
  position:absolute;
  bottom: 14px; left: 14px;
  z-index: 1;
  background: rgba(255,255,255,0.85);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,0.55);
  color: var(--navy);
  font-size: 14.5px;
  font-weight: 600;
  padding: 8px 14px;
  border-radius: 12px;
  transition: background var(--dur-fast) var(--ease-out);
}
.listing-card:hover .listing-card-price{ background: #fff; }

.listing-card-body{
  display:flex;
  flex-direction:column;
  flex:1;
  padding: 16px 8px 6px;
  min-width: 0;
}

.listing-card-title{
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 16.5px;
  color: var(--ink);
  line-height: 1.35;
  margin-bottom: 8px;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height: 45px;
  transition: color var(--dur-fast) var(--ease-out);
}
.listing-card:hover .listing-card-title{ color: var(--navy); }

.listing-card-location{
  display:flex;
  align-items:center;
  gap: 6px;
  font-size: 12px;
  font-weight: 300;
  color: rgba(11,15,31,0.55);
  margin-bottom: 14px;
  overflow:hidden;
}
.listing-card-location svg{ flex-shrink:0; color: var(--red); opacity:0.85; }
.location-trail{
  display:inline-flex;
  align-items:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow: ellipsis;
  min-width:0;
}
.location-trail span:first-child{ flex-shrink:0; }
.location-trail span:not(:first-child){
  overflow:hidden;
  text-overflow:ellipsis;
}
.location-trail i{
  flex-shrink:0;
  margin: 0 5px;
  opacity: 0.4;
  font-style: normal;
}

.listing-card-specs{
  display:flex;
  align-items:center;
  gap: 10px;
  margin-top:auto;
  padding-top: 14px;
  border-top: 1px solid rgba(14,22,54,0.08);
  font-size: 12.5px;
  font-weight: 300;
  color: rgba(11,15,31,0.6);
  flex-wrap: nowrap;
  overflow:hidden;
}
.listing-card-specs > span{ display:flex; align-items:center; gap:6px; white-space:nowrap; flex-shrink:0; overflow:hidden; text-overflow:ellipsis; }
.listing-card-specs svg{ color: var(--red); opacity:0.8; flex-shrink:0; }
.spec-divider{
  width:1px;
  height: 13px;
  background: rgba(14,22,54,0.14);
  flex-shrink:0;
}

/* ---- Pagination ---- */
.listings-pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 48px;
}
.page-btn{
  min-width: 42px;
  height: 42px;
  padding: 0 8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius: 13px;
  font-size: 14px;
  font-weight: 400;
  font-family: var(--font-body);
  color: rgba(11,15,31,0.6);
  background: rgba(14,22,54,0.04);
  border: 1px solid rgba(14,22,54,0.09);
  cursor:pointer;
  transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.page-btn:hover:not(:disabled):not(.is-active){
  background: rgba(14,22,54,0.08);
  color: var(--navy);
}
.page-btn.is-active{
  background: var(--navy);
  border-color: var(--navy);
  color:#fff;
  font-weight: 500;
  box-shadow: 0 12px 24px -8px rgba(14,22,54,0.4);
}
.page-btn:disabled{ opacity: 0.35; cursor:not-allowed; }
.page-btn.page-nav{
  background: rgba(255,255,255,0.7);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.page-ellipsis{
  display:inline-flex;
  align-items:center;
  padding: 0 4px;
  color: rgba(11,15,31,0.35);
  font-size: 14px;
}

/* =========================================================
   PRESS
========================================================= */
.press{
  background: #fff;
  padding: 100px 32px 90px;
}
.press-inner{
  max-width: 1280px;
  margin: 0 auto;
}

.press-head{
  max-width: 680px;
  margin: 0 auto 48px;
  text-align: center;
}

.press-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size: 12.5px;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--navy);
  background: rgba(14,22,54,0.05);
  border: 1px solid rgba(14,22,54,0.1);
  padding: 8px 16px 8px 12px;
  border-radius: 999px;
  margin-bottom: 22px;
}
.press-eyebrow .eyebrow-dot{ animation: pulse-dot 2.2s infinite; }

.press-title{
  font-family: var(--font-display);
  font-weight: 200;
  font-size: clamp(28px, 3.4vw, 40px);
  line-height: 1.22;
  color: rgba(11,15,31,0.55);
  letter-spacing: -0.01em;
  margin-bottom: 16px;
}
.press-title strong{ font-weight: 500; color: var(--ink); }

.press-sub{
  font-size: 15px;
  font-weight: 300;
  line-height: 1.7;
  color: rgba(11,15,31,0.6);
}

.press-marquee{
  position:relative;
  margin: 0 -32px;
  padding: 4px 0;
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}

.press-track{
  display:flex;
  gap: 18px;
  width: max-content;
  animation: press-scroll 48s linear infinite;
}
.press-marquee:hover .press-track{ animation-play-state: paused; }

@keyframes press-scroll{
  from{ transform: translateX(0); }
  to{ transform: translateX(-50%); }
}

.press-chip{
  display:flex;
  flex-direction:column;
  gap: 10px;
  flex-shrink:0;
  width: 320px;
  padding: 22px 22px 20px;
  background: #FAFAFA;
  border: 1px solid rgba(14,22,54,0.08);
  border-radius: 16px;
  transition: transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);
}
.press-chip-brand{
  display:flex;
  align-items:center;
  gap: 9px;
}
.press-chip-logo{
  width: 20px;
  height: 20px;
  border-radius: 5px;
  object-fit: contain;
  background: #fff;
  border: 1px solid rgba(14,22,54,0.08);
  flex-shrink:0;
}
.press-chip-source{
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--red);
}
.press-chip-headline{
  font-size: 14.5px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--ink);
}
.press-chip-date{
  font-size: 12px;
  font-weight: 300;
  color: rgba(11,15,31,0.42);
}
.press-chip:hover{
  transform: translateY(-4px);
  background: #fff;
  border-color: rgba(27,58,107,0.25);
  box-shadow: 0 20px 40px -22px rgba(11,15,31,0.25);
}

@media (max-width: 640px){
  .press{ padding: 80px 0 70px; }
  .press-inner{ padding: 0 20px; }
  .press-marquee{ margin: 0; }
  .press-chip{ width: 260px; }
}

/* =========================================================
   CEO ARTICLES
========================================================= */
.ceo-articles{
  position:relative;
  background: #FAFAFA;
  padding: 100px 32px 90px;
  overflow: hidden;
}
.ceo-articles::before{
  content:'';
  position:absolute;
  width: 600px; height: 600px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(27,58,107,0.08), transparent 70%);
  filter: blur(100px);
  bottom: -260px; left: -200px;
  pointer-events:none;
}
.ceo-articles-inner{
  position:relative;
  z-index:1;
  max-width: 1360px;
  margin: 0 auto;
}

.ceo-articles-layout{
  display:grid;
  grid-template-columns: 0.82fr 1.18fr;
  gap: 64px;
  align-items:center;
  margin-bottom: 48px;
}

.ceo-articles-info{ color: var(--ink); }

.ceo-articles-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size: 12.5px;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--navy);
  background: rgba(255,255,255,0.6);
  border: 1px solid rgba(14,22,54,0.1);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  padding: 8px 16px 8px 12px;
  border-radius: 999px;
  margin-bottom: 22px;
}
.ceo-articles-eyebrow .eyebrow-dot{ animation: pulse-dot 2.2s infinite; }

.ceo-articles-title{
  font-family: var(--font-display);
  font-weight: 200;
  font-size: clamp(28px, 3.4vw, 40px);
  line-height: 1.22;
  color: rgba(11,15,31,0.5);
  letter-spacing: -0.01em;
  margin-bottom: 16px;
}
.ceo-articles-title strong{ font-weight: 500; color: var(--ink); }

.ceo-articles-sub{
  font-size: 15px;
  font-weight: 300;
  line-height: 1.7;
  color: rgba(11,15,31,0.62);
  max-width: 460px;
  margin-bottom: 32px;
}

/* --- active-slide glass panel --- */
.ceo-active{
  position:relative;
  display:flex;
  flex-direction:column;
  padding: 26px 26px 24px;
  background: rgba(255,255,255,0.45);
  border: 1px solid rgba(255,255,255,0.7);
  border-left: 2px solid var(--red);
  border-radius: 18px;
  backdrop-filter: blur(22px) saturate(160%);
  -webkit-backdrop-filter: blur(22px) saturate(160%);
  box-shadow: 0 20px 50px -24px rgba(11,15,31,0.18);
  margin-bottom: 28px;
  height: 184px;
  overflow:hidden;
}
.ceo-active-index{
  display:block;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.08em;
  color: rgba(11,15,31,0.4);
  margin-bottom: 12px;
}
.ceo-active-title{
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 16.5px;
  line-height: 1.4;
  min-height: calc(1.4em * 2);
  color: var(--navy);
  margin-bottom: 12px;
  letter-spacing: -0.005em;
}
.ceo-active-meta{
  display:flex;
  align-items:center;
  gap: 10px;
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 14px;
}
.ceo-active-meta span:first-child{ color: var(--red); }
.ceo-active-meta span:last-child{ color: rgba(11,15,31,0.4); font-weight: 300; text-transform: none; letter-spacing: 0; }
.ceo-active-link{
  display:inline-flex;
  align-items:center;
  gap: 6px;
  font-size: 13px;
  font-weight: 500;
  color: var(--navy);
  margin-top: auto;
}
.ceo-active-link span{ color: var(--red); transition: transform var(--dur-fast) var(--ease-out); }
.ceo-active-link:hover span{ transform: translateX(3px); }

.ceo-nav{
  display:flex;
  align-items:center;
  gap: 18px;
}
.ceo-arrow{
  display:flex;
  align-items:center;
  justify-content:center;
  width: 44px; height: 44px;
  border-radius: 50%;
  background: rgba(255,255,255,0.45);
  border: 1px solid rgba(255,255,255,0.7);
  backdrop-filter: blur(16px) saturate(150%);
  -webkit-backdrop-filter: blur(16px) saturate(150%);
  color: var(--navy);
  box-shadow: 0 10px 24px -14px rgba(11,15,31,0.2);
  flex-shrink:0;
  transition: background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.ceo-arrow:hover{
  background: var(--red);
  border-color: var(--red);
  color:#fff;
  transform: translateY(-2px);
}
.ceo-arrow:active{ transform: translateY(0) scale(0.96); }

.ceo-dots{
  display:flex;
  align-items:center;
  gap: 8px;
  flex-wrap:wrap;
}
.ceo-dot{
  width: 8px; height: 8px;
  border-radius: 50%;
  background: rgba(11,15,31,0.2);
  border:none;
  padding:0;
  cursor:pointer;
  transition: background var(--dur-fast) var(--ease-out), width var(--dur-fast) var(--ease-out);
}
.ceo-dot:hover{ background: rgba(11,15,31,0.4); }
.ceo-dot.is-active{
  background: var(--red);
  width: 22px;
  border-radius: 5px;
}

/* --- slider --- */
.ceo-slider-wrap{
  position:relative;
  min-width: 0;
  width: 100%;
}
.ceo-slider-wrap::before,
.ceo-slider-wrap::after{
  content:'';
  position:absolute;
  top:0; bottom:0;
  width: 64px;
  z-index:2;
  pointer-events:none;
}
.ceo-slider-wrap::before{
  left:0;
  background: linear-gradient(90deg, #FAFAFA, rgba(250,250,250,0));
}
.ceo-slider-wrap::after{
  right:0;
  background: linear-gradient(270deg, #FAFAFA, rgba(250,250,250,0));
}

.ceo-slider{
  width: 100%;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  cursor: grab;
  padding: 30px 0 46px;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x;
}
.ceo-slider::-webkit-scrollbar{ display:none; }
.ceo-slider.is-dragging{ cursor: grabbing; }
.ceo-slider:focus-visible{ outline: 2px solid rgba(27,58,107,0.45); outline-offset: 6px; border-radius: 8px; }

.ceo-track{
  display:flex;
  gap: 28px;
  list-style:none;
  margin:0;
  padding: 0 64px;
  width: max-content;
  perspective: 1400px;
}

.ceo-slide{
  position:relative;
  flex-shrink:0;
  width: 300px;
  height: 400px;
  margin:0;
  border-radius: 24px;
  overflow:hidden;
  background: rgba(255,255,255,0.4);
  backdrop-filter: blur(8px) saturate(150%);
  -webkit-backdrop-filter: blur(8px) saturate(150%);
  box-shadow: 0 14px 28px -18px rgba(11,15,31,0.3);
  opacity: 0.5;
  transform: perspective(1400px) scale(0.86) rotateY(20deg) translateZ(-40px);
  transform-style: preserve-3d;
  will-change: transform, opacity;
  transition: transform 520ms var(--ease-out), box-shadow 520ms var(--ease-out), opacity 520ms var(--ease-out);
}
.ceo-slide::before{
  content:'';
  position:absolute; inset:0;
  border-radius: inherit;
  border: 1.5px solid rgba(255,255,255,0.55);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.45);
  pointer-events:none;
  z-index: 3;
}
.ceo-slide-img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit: cover;
  transition: transform 650ms var(--ease-out);
}

/* shine sweep, plays once on hover/active */
.ceo-slide-shine{
  position:absolute;
  top:0; left:-60%;
  width: 40%; height:100%;
  background: linear-gradient(75deg, transparent, rgba(255,255,255,0.35), transparent);
  transform: skewX(-18deg);
  z-index: 2;
  pointer-events:none;
  opacity:0;
}
.ceo-slide.is-active .ceo-slide-shine{
  animation: ceo-shine 1500ms ease-out 220ms 1;
}
@keyframes ceo-shine{
  0%{ opacity:0; left:-60%; }
  12%{ opacity:1; }
  60%{ opacity:0.7; }
  100%{ opacity:0; left:140%; }
}

.ceo-slide-glass{
  position:absolute;
  left:0; right:0; bottom:0;
  z-index: 1;
  padding: 18px 20px 18px;
  background: linear-gradient(180deg, rgba(11,15,31,0) 0%, rgba(11,15,31,0.5) 40%, rgba(11,15,31,0.84) 100%);
}
.ceo-slide-title{
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  color: #fff;
  margin-bottom: 8px;
}
.ceo-slide-meta{
  display:flex;
  align-items:center;
  gap: 8px;
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
}
.ceo-slide-meta span:first-child{ color: #9FC1EE; }

.ceo-slide.is-active{
  box-shadow: 0 36px 60px -20px rgba(11,15,31,0.45), 0 0 0 1px rgba(255,255,255,0.5);
}
.ceo-slide.is-active .ceo-slide-img{ transform: scale(1.05); }

@media (max-width: 1080px){
  .ceo-articles-layout{ grid-template-columns: 1fr; gap: 40px; }
  .ceo-articles-sub{ max-width: 560px; }
}
@media (max-width: 640px){
  .ceo-articles{ padding: 80px 20px 80px; }
  .ceo-slide{ width: 250px; height: 340px; }
  .ceo-track{ padding: 0 20px; gap: 18px; }
  .ceo-slider-wrap::before,
  .ceo-slider-wrap::after{ width: 28px; }
}

.ceo-magazines{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap: 16px;
  padding-top: 36px;
  border-top: 1px solid rgba(11,15,31,0.08);
}
.ceo-magazines-label{
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(11,15,31,0.45);
}
.ceo-magazines-list{
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
}
.ceo-magazine-pill{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  padding: 9px 16px;
  font-size: 13px;
  font-weight: 400;
  color: var(--navy);
  background: #fff;
  border: 1px solid rgba(14,22,54,0.12);
  border-radius: 999px;
  transition: border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);
}
.ceo-magazine-pill span{ color: var(--red); transition: transform var(--dur-fast) var(--ease-out); }
.ceo-magazine-pill:hover{
  border-color: var(--red);
  background: rgba(27,58,107,0.05);
}
.ceo-magazine-pill:hover span{ transform: translateX(2px); }

@media (max-width: 1080px){
  .ceo-articles-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px){
  .ceo-articles-grid{ grid-template-columns: 1fr; }
}

/* =========================================================
   PROJECTS (Ready to Move-in)
========================================================= */
.projects{
  position: relative;
  background: #f6f7fa;
  padding: 110px 32px 130px;
  border-top: 1px solid rgba(14,22,54,0.06);
}
.projects-inner{ max-width: 1400px; margin: 0 auto; }

.projects-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 1fr;
  gap: 28px;
}

.project-card{
  display:flex;
  flex-direction:column;
  height:100%;
  position: relative;
  min-width: 0;
  border-radius: 20px;
  padding: 10px;
  background: #fff;
  border: 1px solid rgba(14,22,54,0.08);
  box-shadow: 0 1px 2px rgba(14,22,54,0.04), 0 16px 32px -20px rgba(14,22,54,0.12);
  text-decoration:none;
  opacity: 0;
  animation: card-fade-up 560ms var(--ease-out) both;
  transition: transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}
.project-card:hover{
  transform: translateY(-6px);
  border-color: rgba(14,22,54,0.14);
  box-shadow: 0 1px 2px rgba(14,22,54,0.04), 0 28px 48px -20px rgba(14,22,54,0.22);
}
.project-card:focus-visible{ outline: 2px solid var(--red); outline-offset: 2px; }

.project-card-media{
  position:relative;
  aspect-ratio: 4 / 3;
  overflow:hidden;
  border-radius: 14px;
  background: #eee;
  flex-shrink:0;
}
.project-card-media img{
  width:100%; height:100%;
  object-fit: cover;
  transition: transform 700ms var(--ease-out);
}
.project-card:hover .project-card-media img{ transform: scale(1.08); }
.project-card-media-empty{
  width:100%; height:100%;
  background: linear-gradient(135deg, rgba(14,22,54,0.1), rgba(27,58,107,0.1));
}
.project-card-scrim{
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(0,0,0,0.04) 0%, transparent 35%, transparent 60%, rgba(11,15,31,0.55) 100%);
  pointer-events:none;
}
.project-card-badge{
  position:absolute;
  top: 14px; left: 14px;
  z-index: 1;
  display:inline-flex;
  align-items:center;
  gap: 6px;
  background: rgba(255,255,255,0.9);
  border: 1px solid rgba(255,255,255,0.5);
  color: var(--navy);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 6px 12px;
  border-radius: 999px;
}
.project-card-badge::before{
  content:'';
  width: 6px; height: 6px;
  border-radius:50%;
  background: var(--navy);
  flex-shrink:0;
}
.project-card-price{
  position:absolute;
  bottom: 14px; left: 14px;
  z-index: 1;
  background: rgba(255,255,255,0.85);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,0.55);
  color: var(--navy);
  font-size: 14.5px;
  font-weight: 600;
  padding: 8px 14px;
  border-radius: 12px;
}
.project-card:hover .project-card-price{ background: #fff; }

.project-card-body{
  display:flex;
  flex-direction:column;
  flex:1;
  padding: 16px 8px 6px;
  min-width: 0;
}
.project-card-developer{
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(14,22,54,0.5);
  margin-bottom: 6px;
}
.project-card-title{
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 17px;
  color: var(--ink);
  line-height: 1.3;
  margin-bottom: 8px;
  display:-webkit-box;
  -webkit-line-clamp:1;
  -webkit-box-orient:vertical;
  overflow:hidden;
  transition: color var(--dur-fast) var(--ease-out);
}
.project-card:hover .project-card-title{ color: var(--navy); }

.project-card-location{
  display:flex;
  align-items:center;
  gap: 6px;
  font-size: 12px;
  font-weight: 300;
  color: rgba(11,15,31,0.55);
  margin-bottom: 14px;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}
.project-card-location svg{ flex-shrink:0; color: var(--navy); opacity:0.55; }

.project-card-specs{
  display:flex;
  align-items:center;
  gap: 10px;
  margin-top:auto;
  padding-top: 14px;
  border-top: 1px solid rgba(14,22,54,0.08);
  font-size: 12.5px;
  font-weight: 300;
  color: rgba(11,15,31,0.6);
  flex-wrap: nowrap;
  overflow:hidden;
}
.project-card-specs > span{ display:flex; align-items:center; gap:6px; white-space:nowrap; flex-shrink:0; overflow:hidden; text-overflow:ellipsis; }
.project-card-specs svg{ color: var(--navy); opacity:0.55; flex-shrink:0; }
.project-spec-divider{ width:1px; height: 13px; background: rgba(14,22,54,0.14); flex-shrink:0; }

/* =========================================================
   RESPONSIVE
========================================================= */
@media (max-width: 1180px){
  .hero-showcase{ flex-direction: column; }
  .hero-showcase-copy{ text-align:center; width:100%; }
  .hero-desc{ margin-left:auto; margin-right:auto; }
  .hero-cta-row{ align-items:center; }
}

@media (max-width: 1080px){
  .hero-content{ grid-template-columns: 1fr; gap: 40px; padding-top: calc(var(--header-h) + 28px); text-align:center; }
  .hero-left{ display:flex; flex-direction:column; align-items:center; }
  .search-tabs{ align-self:center; }
  .search-form{ width:100%; max-width:440px; margin-left:auto; margin-right:auto; }
  .search-heading, .search-subheading{ text-align:center; }
  .search-subheading{ margin-left:auto; margin-right:auto; }
  .card-stage{ height: 420px; }

  .about-body{ grid-template-columns: 1fr; gap: 48px; }
  .about-quote{ margin-left:auto; margin-right:auto; }

  .listings-grid{ grid-template-columns: repeat(2, 1fr); }
  .projects-grid{ grid-template-columns: repeat(2, 1fr); }
  .listings-sub{ text-align:left; }
}

@media (max-width: 860px){
  .main-nav{
    position:fixed;
    top: 100px; right: 18px; left: 18px;
    background: rgba(14,14,16,0.94);
    border: 1px solid var(--glass-border);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-radius: 18px;
    padding: 10px 8px;
    transform: translateY(-12px) scale(0.98);
    opacity:0;
    visibility:hidden;
    transition: all var(--dur-med) var(--ease-out);
    box-shadow: 0 20px 40px rgba(0,0,0,0.5);
  }
  /* Keep menu text white even when header switches to its light (scrolled) state */
  .site-header.is-light .main-nav a{ color: rgba(255,255,255,0.82); }
  .site-header.is-light .main-nav a:hover{ color:#fff; }
  .main-nav.is-open{
    transform: translateY(0) scale(1);
    opacity:1;
    visibility:visible;
  }
  .main-nav ul{ flex-direction:column; align-items:stretch; gap:2px; }
  .main-nav a{ display:block; padding: 13px 16px; border-radius: 10px; }
  .main-nav a:hover{ background: rgba(255,255,255,0.07); }
  .main-nav a::after{ display:none; }
  .nav-toggle{ display:flex; }
  .btn-contact{ display:none; }
  .nav-contact-mobile{ display:block; margin-top:6px; border-top:1px solid var(--glass-border); padding-top:6px; }
}

@media (max-width: 600px){
  .header-inner{ padding: 0 8px 0 12px; height:64px; }
  .logo-text{ font-size:16px; }
  .hero-content{ padding-left:18px; padding-right:18px; }
  .hero-title{ font-size: clamp(28px, 8vw, 36px); }
  .hero-desc{ font-size:15px; }
  .card-stage{ width: 260px; height: 360px; }
  .hero-showcase-cards{ flex-basis: 260px; }
  .hero-stats{ gap:16px; }
  .hero-right{ display:none; }
  .hero-eyebrow{ font-size: 11px; letter-spacing: 0.05em; white-space: nowrap; padding: 8px 14px 8px 10px; }
  .hero-left{ padding: 32px 24px 34px; }
  .hero-showcase{ padding: 28px 22px; }
  .search-field-row{ flex-direction:column; }

  .search-suggest-thumb{ width:42px; height:42px; }
  .search-suggest{ max-height: 320px; }
  .search-suggest-side{ display:none; }
  .search-suggest-meta-price{ display:inline; color: rgba(255,255,255,0.75); font-weight: 500; }
  .search-suggest-title{
    white-space:normal;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }

  .about{ padding: 88px 20px 96px; }
  .about-stats{ grid-template-columns: 1fr 1fr; }
  .stat-card:nth-child(3){ grid-column: span 2; }
  .developer-strip{ grid-column: span 2; }

  .listings{ padding: 88px 20px 96px; }
  .listings-grid{ grid-template-columns: 1fr; }
  .listings-head{ flex-direction:column; align-items:flex-start; }

  .projects{ padding: 88px 20px 96px; }
  .projects-grid{ grid-template-columns: 1fr; }
}

/* =========================================================
   CONTACT MODAL
========================================================= */
.contact-modal-overlay{
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(11,15,31,0.55);
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  opacity: 0;
  visibility: hidden;
  transition: opacity 320ms var(--ease-out), visibility 320ms;
}
.contact-modal-overlay.is-open{
  opacity: 1;
  visibility: visible;
}

.contact-modal{
  position: relative;
  width: 100%;
  max-width: 480px;
  background: rgba(255,255,255,0.72);
  border: 1px solid rgba(255,255,255,0.85);
  backdrop-filter: blur(32px) saturate(160%);
  -webkit-backdrop-filter: blur(32px) saturate(160%);
  border-radius: 28px;
  padding: 36px 36px 32px;
  box-shadow:
    0 32px 80px -20px rgba(11,15,31,0.35),
    0 0 0 1px rgba(255,255,255,0.5) inset;
  transform: translateY(20px) scale(0.97);
  transition: transform 340ms var(--ease-out);
}
.contact-modal-overlay.is-open .contact-modal{
  transform: translateY(0) scale(1);
}

.contact-modal-close{
  position: absolute;
  top: 16px; right: 16px;
  width: 36px; height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(11,15,31,0.07);
  border: none;
  cursor: pointer;
  color: var(--ink);
  font-size: 18px;
  line-height: 1;
  transition: background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.contact-modal-close:hover{ background: rgba(11,15,31,0.13); transform: scale(1.08); }

.contact-modal-eyebrow{
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 10px;
}
.contact-modal-eyebrow::before{
  content: '';
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--red);
  flex-shrink: 0;
}

.contact-modal-title{
  font-family: var(--font-display);
  font-weight: 300;
  font-size: 24px;
  line-height: 1.25;
  color: var(--ink);
  letter-spacing: -0.01em;
  margin-bottom: 6px;
}
.contact-modal-title strong{ font-weight: 600; }

.contact-modal-sub{
  font-size: 13.5px;
  font-weight: 300;
  color: rgba(11,15,31,0.55);
  margin-bottom: 26px;
  line-height: 1.5;
}

.contact-modal-field{
  margin-bottom: 14px;
}
.contact-modal-field label{
  display: block;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(11,15,31,0.5);
  margin-bottom: 7px;
}
.contact-modal-field input,
.contact-modal-field textarea{
  width: 100%;
  background: rgba(255,255,255,0.7);
  border: 1.5px solid rgba(14,22,54,0.12);
  border-radius: 14px;
  padding: 13px 16px;
  font-family: inherit;
  font-size: 15px;
  font-weight: 300;
  color: var(--ink);
  outline: none;
  transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
  -webkit-appearance: none;
}
.contact-modal-field input:focus,
.contact-modal-field textarea:focus{
  border-color: var(--red);
  box-shadow: 0 0 0 3px rgba(27,58,107,0.1);
}
.contact-modal-field textarea{
  resize: none;
  height: 100px;
}

.contact-modal-phone-row{
  display: flex;
  gap: 0;
  border: 1.5px solid rgba(14,22,54,0.12);
  border-radius: 14px;
  background: rgba(255,255,255,0.7);
  overflow: hidden;
  transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.contact-modal-phone-row:focus-within{
  border-color: var(--red);
  box-shadow: 0 0 0 3px rgba(27,58,107,0.1);
}
.contact-modal-phone-prefix{
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 13px 14px 13px 16px;
  font-size: 15px;
  font-weight: 400;
  color: var(--ink);
  border-right: 1.5px solid rgba(14,22,54,0.1);
  white-space: nowrap;
  flex-shrink: 0;
  user-select: none;
}
.contact-modal-phone-prefix .flag{
  font-size: 18px;
  line-height: 1;
}
.contact-modal-phone-row input{
  border: none;
  border-radius: 0;
  background: none;
  box-shadow: none;
  flex: 1;
  min-width: 0;
  padding: 13px 16px;
}
.contact-modal-phone-row input:focus{
  border-color: transparent;
  box-shadow: none;
}

.contact-modal-submit{
  width: 100%;
  margin-top: 8px;
  padding: 15px 24px;
  border-radius: 14px;
  background: var(--navy);
  color: #fff;
  font-family: inherit;
  font-size: 15px;
  font-weight: 500;
  border: none;
  cursor: pointer;
  transition: background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.contact-modal-submit:hover{ background: #16204a; transform: translateY(-1px); }
.contact-modal-submit:active{ transform: scale(0.98); }
.contact-modal-submit:disabled{ opacity: 0.6; cursor: not-allowed; transform: none; }

.contact-modal-success{
  display: none;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 16px 0 8px;
}
.contact-modal-success.is-visible{ display: flex; }
.contact-modal-success-icon{
  width: 56px; height: 56px;
  border-radius: 50%;
  background: rgba(30,188,89,0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  color: #1ebc59;
}
.contact-modal-success h3{
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 20px;
  color: var(--ink);
  margin-bottom: 8px;
}
.contact-modal-success p{
  font-size: 14px;
  font-weight: 300;
  color: rgba(11,15,31,0.6);
  line-height: 1.6;
  margin-bottom: 24px;
}
.contact-modal-success-close{
  padding: 12px 32px;
  border-radius: 12px;
  background: var(--navy);
  color: #fff;
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  border: none;
  cursor: pointer;
}

@media (max-width: 540px){
  .contact-modal{ padding: 28px 22px 26px; border-radius: 22px; }
  .contact-modal-title{ font-size: 21px; }
}

/* =========================================================
   FOOTER (shared across every page)
========================================================= */
.site-footer{
  background: #0a1128; color: rgba(255,255,255,0.72);
  padding: 64px 32px 30px;
}
.site-footer-inner{ max-width: 1160px; margin: 0 auto; }
.footer-top{
  display:grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 40px;
  padding-bottom: 44px; border-bottom: 1px solid rgba(255,255,255,0.1);
}
.footer-brand img{ height: 34px; width:auto; margin-bottom: 18px; }
.footer-brand p{ font-size: 14px; font-weight: 300; line-height: 1.7; color: rgba(255,255,255,0.55); max-width: 300px; }
.footer-col h4{
  font-size: 12px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase;
  color: rgba(255,255,255,0.5); margin-bottom: 16px;
}
.footer-col ul{ display:flex; flex-direction:column; gap: 11px; }
.footer-col a{ font-size: 14px; font-weight: 300; color: rgba(255,255,255,0.72); transition: color var(--dur-fast) var(--ease-out); }
.footer-col a:hover{ color:#fff; }
.footer-bottom{
  display:flex; align-items:center; justify-content:space-between; gap: 16px; flex-wrap:wrap;
  padding-top: 24px;
  font-size: 13px; font-weight: 300; color: rgba(255,255,255,0.45);
}
.footer-socials{ display:flex; gap: 12px; }
.footer-socials a{
  width: 36px; height: 36px; border-radius: 10px;
  display:flex; align-items:center; justify-content:center;
  background: rgba(255,255,255,0.07); color: rgba(255,255,255,0.75);
  transition: background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.footer-socials a:hover{ background: var(--red); color:#fff; }
@media (max-width: 820px){
  .footer-top{ grid-template-columns: 1fr 1fr; gap: 32px; }
}
@media (max-width: 500px){
  .site-footer{ padding: 48px 18px 24px; }
  .footer-top{ grid-template-columns: 1fr 1fr; }
  .footer-brand{ grid-column: 1 / -1; }

}
