/* ==========================================================================
   ABM Holding — Corporate Website
   Design system: Luxury, editorial, conglomerate
   ========================================================================== */

:root{
  /* -- Dark (default) -- */
  --bg:            #0A0A0A;
  --bg-2:          #111113;
  --bg-3:          #17171A;
  --bg-deep:       #08080A;
  --bg-foot:       #050506;
  --ink:           #FFFFFF;
  --ink-2:         #E9E6DE;
  --ink-3:         #B8B3A8;
  --muted:         #7E7A70;
  --line:          rgba(255,255,255,.09);
  --line-2:        rgba(255,255,255,.18);
  --cream:         #F5F1EA;
  --cream-2:       #ECE5D6;
  --gold:          #C9A961;
  --gold-2:        #B08D57;
  --gold-dim:      rgba(201,169,97,.25);
  --ok:            #7BB88B;

  --bg-inverse:    #F5F1EA;   /* used by sec-cream */
  --ink-inverse:   #0A0A0A;
  --nav-scrolled:  rgba(10,10,10,.88);
  --hero-fade:     rgba(10,10,10,.55);
  --hero-overlay:  rgba(10,10,10,.9);

  --f-serif:       "Cormorant Garamond", "Playfair Display", Georgia, serif;
  --f-sans:        "Inter", "Helvetica Neue", Arial, sans-serif;
  --f-mono:        "JetBrains Mono", ui-monospace, monospace;

  --r-sm: 2px;
  --r-md: 4px;
  --r-lg: 14px;

  --container: 1320px;
  --gutter: clamp(20px, 4vw, 56px);

  --ease: cubic-bezier(.2,.7,.2,1);
  --ease-smooth: cubic-bezier(.77,0,.175,1);
}

/* ========== LIGHT THEME ========== */
[data-theme="light"]{
  --bg:            #FAFAF7;
  --bg-2:          #FFFFFF;
  --bg-3:          #F1ECE0;
  --bg-deep:       #F5F1EA;
  --bg-foot:       #1A1612;      /* footer stays dark for contrast */
  --ink:           #0B0B0C;
  --ink-2:         #2A2A2C;
  --ink-3:         #5A564C;
  --muted:         #8E8A7F;
  --line:          rgba(10,10,10,.08);
  --line-2:        rgba(10,10,10,.16);
  --cream:         #1A1612;      /* inverted for .sec-cream contrast band */
  --cream-2:       #0F0E0C;
  --gold:          #B08D57;
  --gold-2:        #9C7A47;
  --gold-dim:      rgba(176,141,87,.22);

  --bg-inverse:    #1A1612;
  --ink-inverse:   #F5F1EA;
  --nav-scrolled:  rgba(250,250,247,.9);
  --hero-fade:     rgba(250,250,247,.35);
  --hero-overlay:  rgba(250,250,247,.85);
}
/* Light theme footer stays dark for elegance */
[data-theme="light"] .site-footer{ color:#C8C0B0; }
[data-theme="light"] .site-footer h4,
[data-theme="light"] .site-footer h5,
[data-theme="light"] .site-footer .brand-name{ color:#F5F1EA; }
[data-theme="light"] .site-footer .brand-sub,
[data-theme="light"] .site-footer h5{ color:#C9A961; }
[data-theme="light"] .site-footer a{ color:#E9E6DE; }
[data-theme="light"] .site-footer a:hover{ color:#C9A961; }
[data-theme="light"] .site-footer input{ color:#F5F1EA; border-bottom-color:rgba(255,255,255,.2); }
[data-theme="light"] .site-footer input::placeholder{ color:#8B8377; }
[data-theme="light"] .site-footer .foot-socials a{ border-color:rgba(255,255,255,.2); color:#C8C0B0; }
[data-theme="light"] .site-footer .foot-socials a:hover{ border-color:#C9A961; color:#C9A961; }
[data-theme="light"] .site-footer .foot-bottom{ color:#8B8377; }

/* Light theme header — translucent white */
[data-theme="light"] .site-header.scrolled{
  background: rgba(250,250,247,.9);
  backdrop-filter: blur(16px) saturate(1.2);
  border-bottom-color: rgba(10,10,10,.08);
}
/* Light theme nav CTA — dark pill on white */
[data-theme="light"] .nav-cta{ background:#0A0A0A; color:#F5F1EA; }
[data-theme="light"] .nav-cta:hover{ background:#1F1A15; color:#F5F1EA; }

/* Light theme hero — gradient tint flips */
[data-theme="light"] .hero::after{
  background:
    linear-gradient(180deg, rgba(250,250,247,.25) 0%, rgba(250,250,247,0) 40%, rgba(250,250,247,.65) 100%),
    radial-gradient(1200px 600px at 80% 30%, rgba(176,141,87,.16), transparent 60%);
}
[data-theme="light"] .hero-title,
[data-theme="light"] .hero-lede,
[data-theme="light"] .hero-eyebrow,
[data-theme="light"] .slide-caption{ color:#0A0A0A; }
[data-theme="light"] .slide-caption{ background:rgba(250,250,247,.7); }
[data-theme="light"] .hero-meta{ background:rgba(250,250,247,.65); }
[data-theme="light"] .hero-dot{ background:rgba(10,10,10,.25); }
[data-theme="light"] .hero-arrow{ border-color:rgba(10,10,10,.25); color:#0A0A0A; }
[data-theme="light"] .hero-arrow:hover{ background:var(--gold); color:#fff; border-color:var(--gold); }

/* Brand marquee: darker background band in light theme */
[data-theme="light"] .brands{ background:#F1ECE0; border-color:rgba(10,10,10,.08); }
[data-theme="light"] .brand-marquee .brand-logo{ color:#5A564C; }
[data-theme="light"] .brand-marquee .brand-logo:hover{ color:var(--gold); }

/* Chairman quote backdrop */
[data-theme="light"] .feature-quote{ background: linear-gradient(180deg, #FAFAF7 0%, #F1ECE0 100%); }
[data-theme="light"] .feature-quote .bg-mark{ color: rgba(176,141,87,.08); }

/* Section variants in light theme */
[data-theme="light"] .sec-dark{ background:var(--bg); }
[data-theme="light"] .sec-darker{ background:#F1ECE0; }
[data-theme="light"] .sec-cream{ background:#1A1612; color:#F5F1EA; }
[data-theme="light"] .sec-cream h1,
[data-theme="light"] .sec-cream h2,
[data-theme="light"] .sec-cream h3,
[data-theme="light"] .sec-cream h4{ color:#F5F1EA; }
[data-theme="light"] .sec-cream .eyebrow{ color:#C9A961; }
[data-theme="light"] .sec-cream .eyebrow::before{ background:#C9A961; }
[data-theme="light"] .sec-cream p{ color:#E9E6DE; }
[data-theme="light"] .sec-cream .btn-inline{ color:#F5F1EA; border-bottom-color:#C9A961; }

/* Vertical grid cells — invert in light mode */
[data-theme="light"] .v-grid{ background: rgba(10,10,10,.08); }
[data-theme="light"] .v-cell{ background:var(--bg-2); }
[data-theme="light"] .v-cell:hover{ background:#FEFBF4; }
[data-theme="light"] .v-cell .tag{ border-color: rgba(10,10,10,.18); color:#5A564C; }
[data-theme="light"] .values{ background: rgba(10,10,10,.08); }
[data-theme="light"] .value{ background:var(--bg-2); }
[data-theme="light"] .logo-grid{ background: rgba(10,10,10,.08); }
[data-theme="light"] .logo-cell{ background:var(--bg-2); color:#0A0A0A; }
[data-theme="light"] .logo-cell:hover{ background:#FEFBF4; color:var(--gold); }

/* Stat band */
[data-theme="light"] .stats{ background: rgba(10,10,10,.08); }
[data-theme="light"] .stat{ background:var(--bg); }

/* Page hero */
[data-theme="light"] .page-hero::before{
  background: linear-gradient(180deg, rgba(250,250,247,.2) 0%, rgba(250,250,247,.85) 100%);
}
[data-theme="light"] .page-hero .bg{ filter: brightness(.95); }

/* Portfolio cards */
[data-theme="light"] .p-card{ background:#E8E1CF; }
[data-theme="light"] .p-card::after{ background: linear-gradient(180deg, rgba(10,10,10,0) 40%, rgba(10,10,10,.8) 100%); }
[data-theme="light"] .p-card .title,
[data-theme="light"] .p-card .kicker{ color:#F5F1EA; }
[data-theme="light"] .p-card .go{ border-color:#F5F1EA; color:#F5F1EA; }

/* Insights */
[data-theme="light"] .ins{ border-top-color: rgba(10,10,10,.12); }
[data-theme="light"] .ins:hover{ border-top-color: var(--gold); }

/* Form inputs */
[data-theme="light"] .form input,
[data-theme="light"] .form select,
[data-theme="light"] .form textarea{ color:#0A0A0A; border-bottom-color: rgba(10,10,10,.22); }
[data-theme="light"] .form input:focus,
[data-theme="light"] .form select:focus,
[data-theme="light"] .form textarea:focus{ border-bottom-color: var(--gold); }

/* Shareholders table */
[data-theme="light"] table thead tr{ background:#F1ECE0 !important; }
[data-theme="light"] table th, [data-theme="light"] table td{ color:#0A0A0A !important; }
[data-theme="light"] table td[style*="color:var(--ink-2)"]{ color:#3A3A3C !important; }
[data-theme="light"] table{ background:var(--bg-2) !important; }

/* ========== Theme toggle button ========== */
.theme-toggle{
  width:38px; height:38px; display:grid; place-items:center;
  border:1px solid var(--line-2); background:transparent; color:var(--ink);
  border-radius:50%; cursor:pointer; font-size:1rem;
  transition: background .3s var(--ease), border-color .3s var(--ease), color .3s var(--ease), transform .3s var(--ease);
  position:relative; overflow:hidden;
}
.theme-toggle:hover{ border-color:var(--gold); color:var(--gold); transform: rotate(20deg); }
.theme-toggle .sun, .theme-toggle .moon{
  position:absolute; inset:0; display:grid; place-items:center;
  transition: opacity .35s var(--ease), transform .45s var(--ease-smooth);
}
/* Default (dark theme) → show moon */
.theme-toggle .sun { opacity:0; transform: rotate(-90deg) scale(.6); }
.theme-toggle .moon{ opacity:1; transform: rotate(0)    scale(1); }
/* Light theme → show sun */
[data-theme="light"] .theme-toggle .sun { opacity:1; transform: rotate(0)   scale(1); }
[data-theme="light"] .theme-toggle .moon{ opacity:0; transform: rotate(90deg) scale(.6); }

*,*::before,*::after{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-font-smoothing:antialiased; }

body{
  font-family:var(--f-sans);
  background:var(--bg);
  color:var(--ink-2);
  font-size:16px;
  line-height:1.65;
  overflow-x:hidden;
}
img,svg,video{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; transition:color .3s var(--ease); }
button{ font-family:inherit; cursor:pointer; border:0; background:none; color:inherit; }

/* ========== Typography ========== */
h1,h2,h3,h4{ font-family:var(--f-serif); font-weight:400; color:var(--ink); margin:0 0 .4em; letter-spacing:-.01em; line-height:1.08; }
.h-display{ font-size: clamp(3.2rem, 8vw, 7.2rem); font-weight:300; }
.h-1{ font-size: clamp(2.4rem, 5vw, 4.4rem); font-weight:400; }
.h-2{ font-size: clamp(2rem, 3.6vw, 3rem); font-weight:400; }
.h-3{ font-size: clamp(1.4rem, 2vw, 1.8rem); font-weight:500; }
p{ margin:0 0 1.1em; color:var(--ink-2); }
.lede{ font-family:var(--f-serif); font-size:clamp(1.3rem, 1.8vw, 1.7rem); line-height:1.5; color:var(--ink-2); font-weight:300; }
.eyebrow{
  display:inline-flex; align-items:center; gap:12px;
  font-family:var(--f-sans); font-size:.72rem; letter-spacing:.32em;
  text-transform:uppercase; color:var(--gold); font-weight:500;
}
.eyebrow::before{ content:""; display:inline-block; width:34px; height:1px; background:var(--gold); }

/* ========== Layout ========== */
.container{ max-width:var(--container); margin:0 auto; padding:0 var(--gutter); }
.container-wide{ max-width:1600px; margin:0 auto; padding:0 var(--gutter); }
section{ padding: clamp(72px, 10vw, 150px) 0; position:relative; }

.row{ display:grid; gap: clamp(32px, 4vw, 72px); }
.row-2{ grid-template-columns:1fr 1fr; }
.row-3{ grid-template-columns:repeat(3,1fr); }
.row-4{ grid-template-columns:repeat(4,1fr); }
.row-5-7{ grid-template-columns: 5fr 7fr; }
@media (max-width:880px){
  .row-2,.row-3,.row-4,.row-5-7{ grid-template-columns:1fr; }
}

/* ========== Header / Navigation ========== */
.site-header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:22px 0;
  transition: background .5s var(--ease), padding .4s var(--ease), border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
.site-header.scrolled{
  background:rgba(10,10,10,.88);
  backdrop-filter: blur(16px) saturate(1.2);
  -webkit-backdrop-filter: blur(16px) saturate(1.2);
  padding:14px 0;
  border-bottom-color: var(--line);
}
.nav-wrap{ display:flex; align-items:center; justify-content:space-between; gap:40px; }

.brand{ display:flex; align-items:center; gap:12px; color:var(--ink); font-family:var(--f-serif); }
.brand-mark{
  width:54px; height:38px; display:grid; place-items:center;
  color:var(--gold);
  font-family:var(--f-serif); font-size:1.15rem; font-weight:500;
  letter-spacing:-.02em;
  background: url('../images/abm-logo.svg') center/contain no-repeat;
  /* Hide any text fallback inside (we keep an aria-label on parent) */
  font-size:0; line-height:0; color:transparent;
}
/* Larger version when used in the footer for a bit more presence */
.foot-brand .brand-mark{ width:64px; height:46px; }
.brand-text{ display:flex; flex-direction:column; line-height:1; }
.brand-name{ font-size:1.2rem; letter-spacing:.14em; color:var(--ink); font-weight:500; }
.brand-sub{ font-family:var(--f-sans); font-size:.62rem; letter-spacing:.34em; color:var(--gold); text-transform:uppercase; margin-top:5px; }

.nav{ display:flex; align-items:center; gap:36px; }
.nav-link{
  font-size:.82rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-2); padding:6px 0; position:relative; font-weight:500;
}
.nav-link:hover, .nav-link.active{ color:var(--ink); }
.nav-link::after{
  content:""; position:absolute; left:0; bottom:-3px; width:0; height:1px;
  background:var(--gold); transition:width .35s var(--ease);
}
.nav-link:hover::after, .nav-link.active::after{ width:100%; }

.nav-cta{
  font-size:.78rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--bg); background:var(--gold); padding:12px 22px;
  transition: transform .3s var(--ease), background .3s var(--ease);
  font-weight:600;
}
.nav-cta:hover{ background:var(--cream); transform:translateY(-1px); }

.menu-toggle{ display:none; width:40px; height:40px; position:relative; }
.menu-toggle span{ position:absolute; left:8px; right:8px; height:1px; background:var(--ink); transition:.3s var(--ease); }
.menu-toggle span:nth-child(1){ top:14px; }
.menu-toggle span:nth-child(2){ top:20px; }
.menu-toggle span:nth-child(3){ top:26px; }
.menu-toggle.is-open span:nth-child(1){ top:20px; transform:rotate(45deg); }
.menu-toggle.is-open span:nth-child(2){ opacity:0; }
.menu-toggle.is-open span:nth-child(3){ top:20px; transform:rotate(-45deg); }

@media (max-width: 1024px){
  .nav{
    position:fixed; inset:0; top:0;
    flex-direction:column; justify-content:center; gap:28px;
    background:rgba(10,10,10,.98); backdrop-filter:blur(20px);
    opacity:0; pointer-events:none; transition:opacity .4s var(--ease);
  }
  .nav.is-open{ opacity:1; pointer-events:auto; }
  .nav-link{ font-size:1.1rem; }
  .menu-toggle{ display:block; z-index:101; }
}

/* ========== Hero ========== */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:flex-end;
  padding: 120px 0 80px; color:var(--ink);
  overflow:hidden;
}
.hero .bg{
  position:absolute; inset:0; z-index:-2;
  background-size:cover; background-position:center;
  transform:scale(1.04);
  animation: slowZoom 18s var(--ease) infinite alternate;
}
@keyframes slowZoom{ to { transform:scale(1.12); } }
.hero::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:
    linear-gradient(180deg, rgba(10,10,10,.55) 0%, rgba(10,10,10,.2) 40%, rgba(10,10,10,.9) 100%),
    radial-gradient(1200px 600px at 80% 30%, rgba(201,169,97,.18), transparent 60%);
}
.hero-inner{ width:100%; }
.hero-eyebrow{ margin-bottom: 28px; }
.hero-title{
  font-size: clamp(3rem, 7.2vw, 7rem);
  line-height:1.02; letter-spacing:-.02em;
  max-width: 14ch; font-weight:300;
  margin-bottom: 28px;
}
.hero-title em{ font-style:italic; color:var(--gold); font-family:var(--f-serif); }
.hero-lede{
  max-width: 58ch;
  font-size: clamp(1.05rem, 1.4vw, 1.25rem);
  color:var(--ink-2); line-height:1.55;
  margin-bottom: 42px; font-weight:300;
}
.hero-actions{ display:flex; gap:16px; flex-wrap:wrap; align-items:center; }

/* Hero SLIDER (images + videos) */
.hero-slides{
  position:absolute; inset:0; z-index:-2; overflow:hidden;
}
.hero-slide{
  position:absolute; inset:0;
  opacity:0; transition: opacity 1.2s var(--ease);
  will-change:opacity;
}
.hero-slide.is-active{ opacity:1; }
.hero-slide .slide-media{
  position:absolute; inset:0; width:100%; height:100%;
  background-size:cover; background-position:center;
  object-fit:cover;
  transform:scale(1.04);
  animation: slowZoom 14s var(--ease) infinite alternate;
}
.hero-slide video.slide-media{ background-color:#000; }
.hero-slide .slide-caption{
  position:absolute; left: var(--gutter); bottom: 110px; z-index:2;
  font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:var(--ink);
  background:rgba(10,10,10,.45); padding:8px 14px; border-left:2px solid var(--gold);
  opacity:0; transform:translateY(12px); transition: opacity .8s var(--ease), transform .8s var(--ease);
}
.hero-slide.is-active .slide-caption{ opacity:1; transform:translateY(0); transition-delay:.45s; }
@media (max-width:880px){ .hero-slide .slide-caption{ bottom: 200px; } }

/* Slider controls */
.hero-controls{
  position:absolute; right: var(--gutter); bottom: 110px; z-index:3;
  display:flex; align-items:center; gap:14px;
}
@media (max-width:880px){ .hero-controls{ bottom: 200px; } }
.hero-dots{ display:flex; gap:8px; }
.hero-dot{
  width:28px; height:2px; background:rgba(255,255,255,.25);
  cursor:pointer; transition: background .3s var(--ease), height .3s var(--ease);
}
.hero-dot.active{ background:var(--gold); height:3px; }
.hero-dot:hover{ background:rgba(255,255,255,.6); }
.hero-arrow{
  width:40px; height:40px; display:grid; place-items:center;
  border:1px solid rgba(255,255,255,.2); border-radius:50%;
  color:var(--ink); font-size:1rem;
  transition: background .3s var(--ease), border-color .3s var(--ease);
}
.hero-arrow:hover{ background:var(--gold); color:var(--bg); border-color:var(--gold); }

/* Mute toggle (only visible when current slide is a video) */
.hero-mute{
  position:absolute; right: calc(var(--gutter) + 4px); top: 120px; z-index:3;
  width:40px; height:40px; display:none; align-items:center; justify-content:center;
  border:1px solid rgba(255,255,255,.2); border-radius:50%;
  color:var(--ink); background:rgba(10,10,10,.4); font-size:.9rem;
  transition: background .3s var(--ease);
}
.hero-mute.visible{ display:flex; }
.hero-mute:hover{ background:var(--gold); color:var(--bg); border-color:var(--gold); }

/* Hero meta / stats strip */
.hero-meta{
  position:absolute; left:0; right:0; bottom:0;
  border-top:1px solid var(--line);
  background:rgba(10,10,10,.55); backdrop-filter: blur(8px);
  display:grid; grid-template-columns: repeat(4, 1fr);
}
.hero-meta .cell{ padding: 22px var(--gutter); border-right:1px solid var(--line); }
.hero-meta .cell:last-child{ border-right:0; }
.hero-meta .num{ font-family:var(--f-serif); font-size:1.9rem; color:var(--ink); }
.hero-meta .lbl{ font-size:.7rem; letter-spacing:.24em; text-transform:uppercase; color:var(--ink-3); }
@media (max-width:880px){ .hero-meta{ grid-template-columns:repeat(2,1fr); } .hero-meta .cell{ border-bottom:1px solid var(--line); } }

/* ========== Buttons ========== */
.btn{
  display:inline-flex; align-items:center; gap:12px;
  padding:15px 26px;
  font-size:.78rem; letter-spacing:.22em; text-transform:uppercase;
  font-weight:600; font-family:var(--f-sans);
  transition: all .35s var(--ease);
  border:1px solid transparent; cursor:pointer;
}
.btn .arr{ width:14px; height:1px; background:currentColor; position:relative; transition:width .35s var(--ease); }
.btn .arr::after{ content:""; position:absolute; right:0; top:-3px; width:7px; height:7px; border-right:1px solid currentColor; border-top:1px solid currentColor; transform:rotate(45deg); }
.btn:hover .arr{ width:22px; }

.btn-primary{ background:var(--gold); color:var(--bg); }
.btn-primary:hover{ background:var(--cream); }

.btn-ghost{ border-color:var(--line-2); color:var(--ink); }
.btn-ghost:hover{ border-color:var(--gold); color:var(--gold); }

.btn-inline{
  display:inline-flex; align-items:center; gap:14px;
  font-size:.78rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--ink); padding-bottom:6px; border-bottom:1px solid var(--gold);
  font-weight:600; transition: color .3s var(--ease);
}
.btn-inline:hover{ color:var(--gold); }

/* ========== Sections ========== */
.section-head{ max-width:980px; margin-bottom: 72px; }
.section-head .eyebrow{ margin-bottom:20px; }
.section-head .h-1{ font-weight:300; max-width:20ch; }
.section-head .lede{ margin-top:20px; max-width:66ch; }

.two-col{
  display:grid; grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 110px); align-items:start;
}
@media (max-width:880px){ .two-col{ grid-template-columns:1fr; } }

/* Dark section variants */
.sec-dark{ background:var(--bg); }
.sec-darker{ background:#08080A; }
.sec-cream{ background:var(--cream); color:#1a1a1a; }
.sec-cream h1,.sec-cream h2,.sec-cream h3,.sec-cream h4{ color:#0a0a0a; }
.sec-cream .eyebrow{ color:var(--gold-2); }
.sec-cream .eyebrow::before{ background:var(--gold-2); }
.sec-cream p{ color:#3a3a3a; }
.sec-cream .btn-inline{ color:#0a0a0a; border-bottom-color: var(--gold-2); }

/* ========== Portfolio grid (Home) ========== */
.portfolio{ padding-bottom: clamp(72px, 10vw, 150px); }
.portfolio-grid{
  display:grid; grid-template-columns: repeat(12, 1fr);
  gap: 18px;
}
.p-card{
  position:relative; overflow:hidden; min-height: 360px;
  grid-column: span 4; cursor:pointer;
  background:#111; isolation:isolate;
}
.p-card.big{ grid-column: span 8; min-height: 540px; }
.p-card.mid{ grid-column: span 6; min-height: 440px; }
.p-card.tall{ grid-column: span 4; min-height: 560px; }
@media (max-width:1024px){ .p-card, .p-card.big, .p-card.mid, .p-card.tall{ grid-column: span 12; min-height:360px; } }

.p-card .img{
  position:absolute; inset:0; background-size:cover; background-position:center;
  transform:scale(1.02); transition: transform 1.1s var(--ease-smooth), filter .8s var(--ease);
  filter: saturate(.9) brightness(.8);
}
.p-card:hover .img{ transform:scale(1.08); filter: saturate(1.05) brightness(.9); }
.p-card::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(10,10,10,0) 40%, rgba(10,10,10,.9) 100%);
  transition: opacity .4s var(--ease);
}
.p-card .content{
  position:absolute; left:32px; right:32px; bottom:28px; z-index:2;
  display:flex; align-items:flex-end; justify-content:space-between; gap:18px;
}
.p-card .title{ font-family:var(--f-serif); font-size:1.7rem; line-height:1.1; color:var(--ink); letter-spacing:-.01em; }
.p-card .kicker{ font-size:.7rem; letter-spacing:.28em; color:var(--gold); text-transform:uppercase; margin-bottom:8px; display:block; }
.p-card .go{
  width:46px; height:46px; border:1px solid var(--ink); color:var(--ink);
  display:grid; place-items:center; border-radius:50%;
  transition: background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease);
}
.p-card:hover .go{ background:var(--gold); color:var(--bg); border-color:var(--gold); }

/* ========== Verticals cards ========== */
.v-grid{
  display:grid; grid-template-columns: repeat(3,1fr); gap: 2px;
  background: var(--line);
}
.v-cell{
  background:var(--bg-2); padding: 46px 40px;
  display:flex; flex-direction:column; gap:22px;
  min-height: 340px; position:relative;
  transition: background .45s var(--ease);
}
.v-cell:hover{ background:var(--bg-3); }
.v-num{ color:var(--gold); font-family:var(--f-mono); font-size:.75rem; letter-spacing:.18em; }
.v-cell h3{ font-size:1.6rem; margin:0; font-weight:500; }
.v-cell p{ color:var(--ink-3); font-size:.95rem; margin:0; }
.v-cell .tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:auto; }
.v-cell .tag{
  font-size:.68rem; letter-spacing:.18em; text-transform:uppercase;
  border:1px solid var(--line-2); padding:6px 12px; color:var(--ink-3);
}
.v-cell .arrow{ position:absolute; top:30px; right:30px; opacity:.5; transition: opacity .3s var(--ease), transform .35s var(--ease); }
.v-cell:hover .arrow{ opacity:1; transform: translate(3px,-3px); }
@media (max-width:980px){ .v-grid{ grid-template-columns:1fr; } }

/* ========== Stats band ========== */
.stats-band{
  padding: 110px 0;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.stats{ display:grid; grid-template-columns: repeat(4,1fr); gap: 2px; background:var(--line); }
.stat{ background:var(--bg); padding: 44px 36px; }
.stat .num{ font-family:var(--f-serif); font-size: clamp(2.4rem, 4vw, 3.6rem); color:var(--ink); line-height:1; }
.stat .num span{ color:var(--gold); }
.stat .lbl{ font-size:.75rem; letter-spacing:.22em; text-transform:uppercase; color:var(--ink-3); margin-top:12px; display:block; }
@media (max-width:880px){ .stats{ grid-template-columns:repeat(2,1fr); } }

/* ========== Brands marquee ========== */
.brands{
  padding: 80px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:#08080A; overflow:hidden;
}
.brands-head{ display:flex; justify-content:space-between; align-items:end; margin-bottom:46px; gap:32px; flex-wrap:wrap; }
.brand-marquee{
  display:flex; gap:72px; align-items:center; width:max-content;
  animation: marquee 45s linear infinite;
}
.brand-marquee .brand-logo{
  font-family:var(--f-serif); font-size:1.6rem; color:var(--ink-3); letter-spacing:.08em;
  white-space:nowrap; padding: 8px 0; border-bottom:1px solid transparent;
  transition:color .3s var(--ease), border-color .3s var(--ease);
}
.brand-marquee .brand-logo:hover{ color:var(--gold); border-bottom-color:var(--gold); }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ========== Chairman / Feature quote ========== */
.feature-quote{
  position:relative; padding: clamp(90px, 12vw, 170px) 0;
  background: linear-gradient(180deg, var(--bg) 0%, #0C0C0F 100%);
}
.feature-quote .bg-mark{
  position:absolute; right:-60px; top:40px;
  font-family:var(--f-serif); font-size: 34vw; line-height:1;
  color: rgba(201,169,97,.045); font-style:italic; pointer-events:none; user-select:none;
}
.fq-grid{ display:grid; grid-template-columns: 5fr 7fr; gap: clamp(40px, 6vw, 96px); align-items:center; }
@media (max-width:880px){ .fq-grid{ grid-template-columns:1fr; } }
.fq-img{ aspect-ratio: 4/5; background-size:cover; background-position:center; filter: grayscale(.2); }
.fq-body blockquote{
  margin:0; font-family:var(--f-serif); font-weight:300;
  font-size: clamp(1.6rem, 2.6vw, 2.4rem);
  line-height:1.3; color:var(--ink); letter-spacing:-.01em;
}
.fq-body blockquote .mark{ color:var(--gold); font-style:italic; }
.fq-meta{ margin-top: 40px; display:flex; align-items:center; gap:20px; }
.fq-meta .line{ width:48px; height:1px; background:var(--gold); }
.fq-meta .who{ display:block; }
.fq-meta .name{ font-family:var(--f-serif); font-size:1.15rem; color:var(--ink); }
.fq-meta .role{ font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--ink-3); margin-top:4px; }

/* ========== Insights / News ========== */
.insights{ padding: clamp(90px, 10vw, 150px) 0; }
.ins-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; }
@media (max-width:880px){ .ins-grid{ grid-template-columns:1fr; } }
.ins{
  display:flex; flex-direction:column; gap:18px;
  border-top:1px solid var(--line); padding-top: 28px;
  transition: border-color .35s var(--ease);
}
.ins:hover{ border-top-color:var(--gold); }
.ins .img{ aspect-ratio: 16/10; background-size:cover; background-position:center; overflow:hidden; background-color:var(--bg-2); }
.ins .img .fill{ width:100%; height:100%; background-size:cover; background-position:center; background-repeat:no-repeat; transition: transform .9s var(--ease-smooth); }
.ins:hover .img .fill{ transform:scale(1.05); }
.ins .meta{ display:flex; gap:14px; align-items:center; font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--ink-3); }
.ins .meta .dot{ width:4px; height:4px; background:var(--gold); border-radius:50%; }
.ins h3{ font-size:1.35rem; font-weight:500; letter-spacing:-.005em; }
.ins .read{ margin-top:auto; font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); }

/* ========== Footer ========== */
.site-footer{
  padding: 90px 0 36px;
  background:#050506; color:var(--ink-3);
  border-top:1px solid var(--line);
}
.foot-grid{
  display:grid; grid-template-columns: 2fr 1fr 1fr 1fr 1.3fr; gap:48px;
  padding-bottom: 60px; border-bottom:1px solid var(--line);
}
@media (max-width:980px){ .foot-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width:640px){ .foot-grid{ grid-template-columns: 1fr; } }
.foot-brand h4{ color:var(--ink); font-size:1.3rem; font-weight:400; margin:24px 0 12px; }
.foot-brand p{ font-size:.92rem; max-width:34ch; color:var(--ink-3); }
.foot-col h5{
  font-size:.72rem; letter-spacing:.24em; text-transform:uppercase;
  color:var(--gold); font-family:var(--f-sans); font-weight:600; margin:0 0 22px;
}
.foot-col ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:12px; }
.foot-col a{ font-size:.92rem; color:var(--ink-2); }
.foot-col a:hover{ color:var(--gold); }
.foot-news input{
  width:100%; background:transparent; border:0; border-bottom:1px solid var(--line-2);
  color:var(--ink); padding:12px 0; font-size:.95rem; font-family:inherit; outline:none;
}
.foot-news input::placeholder{ color:var(--muted); }
.foot-news button{
  margin-top:16px; display:inline-flex; align-items:center; gap:10px;
  font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold);
}
.foot-socials{ display:flex; gap:12px; margin-top:24px; }
.foot-socials a{ width:38px; height:38px; border:1px solid var(--line-2); display:grid; place-items:center; color:var(--ink-3); transition: all .3s var(--ease); }
.foot-socials a:hover{ border-color:var(--gold); color:var(--gold); }
.foot-bottom{
  padding-top: 30px; display:flex; justify-content:space-between;
  flex-wrap:wrap; gap:20px; font-size:.78rem; color:var(--muted);
}
.foot-bottom nav{ display:flex; gap:26px; }
.foot-bottom a:hover{ color:var(--ink-3); }

/* ========== Page hero (non-home) ========== */
.page-hero{
  position:relative; padding: 220px 0 120px; overflow:hidden;
}
.page-hero .bg{
  position:absolute; inset:0; z-index:-2;
  background-size:cover; background-position:center;
  filter: brightness(.5);
}
.page-hero::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background: linear-gradient(180deg, rgba(10,10,10,.5) 0%, rgba(10,10,10,.85) 100%);
}
.page-hero .eyebrow{ margin-bottom:20px; }
.page-hero h1{ font-size: clamp(2.6rem, 5.5vw, 5rem); font-weight:300; max-width: 18ch; }
.page-hero .lede{ max-width: 60ch; margin-top:22px; }

/* ========== Breadcrumb ========== */
.crumbs{
  font-size:.7rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--ink-3); display:flex; gap:10px; align-items:center; margin-bottom: 24px;
}
.crumbs a:hover{ color:var(--gold); }
.crumbs .sep{ width:16px; height:1px; background:var(--line-2); display:inline-block; }

/* ========== Business sections ========== */
.biz-feature{ padding: 100px 0; border-bottom:1px solid var(--line); }
.biz-feature:last-child{ border-bottom:0; }
.biz-feature .grid{
  display:grid; grid-template-columns: 6fr 6fr; gap: clamp(40px, 6vw, 96px); align-items:stretch;
}
.biz-feature.reverse .grid{ direction:rtl; }
.biz-feature.reverse .grid > *{ direction:ltr; }
@media (max-width:880px){ .biz-feature .grid, .biz-feature.reverse .grid{ grid-template-columns:1fr; direction:ltr; } }
/* Feature image: stretches to match the height of the text column so more of
   the photo is visible. The min-height guarantees a decent floor on mobile
   and for rows with little text. */
.biz-feature .img{
  min-height: 440px;
  height: 100%;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  /* Make the image visually self-contained when the text column is very short
     (empty facts, short body). Subtle inner radius and background color give
     it a floor color if a transparent PNG is ever uploaded. */
  background-color: var(--bg-2);
}
/* Optional "fit" mode — shows the entire photo without cropping. Applies a
   neutral background so letterbox edges look intentional rather than empty.
   Use it by adding class="img img--fit" on the image element, or by setting
   a background-size override inline. */
.biz-feature .img.img--fit{
  background-size: contain;
  background-color: var(--bg-2);
}
@media (max-width:880px){
  .biz-feature .img{ min-height: 260px; aspect-ratio: 4/3; height:auto; }
}
.biz-feature .tag{ color:var(--gold); font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; margin-bottom:16px; display:block; }
.biz-feature h2{ font-size: clamp(2rem, 3.2vw, 3rem); margin-bottom: 22px; font-weight:300; }
.biz-feature .facts{
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:20px 40px; margin-top:30px; padding:24px 0; border-top:1px solid var(--line);
}
.biz-feature .facts .fact{ display:flex; flex-direction:column; gap:6px; }
.biz-feature .facts .num{ font-family:var(--f-serif); font-size:1.7rem; color:var(--ink); }
.biz-feature .facts .lbl{ font-size:.7rem; letter-spacing:.22em; text-transform:uppercase; color:var(--ink-3); }

/* Properties mini-grid used on real estate / hospitality */
.props{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:50px;
}
@media (max-width:880px){ .props{ grid-template-columns:1fr; } }
.prop{
  background:var(--bg-2); padding:28px; border:1px solid var(--line);
  transition: border-color .35s var(--ease), transform .35s var(--ease);
}
.prop:hover{ border-color:var(--gold); transform:translateY(-3px); }
.prop h4{ font-size:1.2rem; font-weight:500; margin:0 0 10px; }
.prop .loc{ font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); }
.prop p{ font-size:.92rem; margin:16px 0 0; color:var(--ink-3); }

/* Logo grid */
.logo-grid{
  display:grid; grid-template-columns:repeat(6,1fr); gap:2px;
  background:var(--line); margin-top:40px;
}
@media (max-width:880px){ .logo-grid{ grid-template-columns:repeat(3,1fr); } }
.logo-cell{
  background:var(--bg-2); padding:34px 20px;
  display:grid; place-items:center; min-height: 110px;
  font-family:var(--f-serif); font-size:1rem; letter-spacing:.08em;
  color:var(--ink-2); text-align:center; transition: color .3s var(--ease), background .3s var(--ease);
}
.logo-cell:hover{ color:var(--gold); background:#0D0D10; }
/* Rich logo cell: renders an uploaded logo image on top of the name text.
   If no logo was uploaded, the <img> stays hidden (display:none set by the
   content loader when src is empty) and only the name text shows. */
.logo-cell--rich{ position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; }
.logo-cell--rich .logo-img{
  display:block;
  max-width: 80%;
  max-height: 64px;
  width:auto; height:auto;
  object-fit: contain;
  object-position: center center;
}
/* When a logo image is present (i.e. not hidden by empty-src rule), hide the
   fallback name text so the tile shows only the logo. */
.logo-cell--rich .logo-img[style*="display: none"] ~ .logo-name{ display:inline; }
.logo-cell--rich .logo-img:not([style*="display: none"]) ~ .logo-name{ display:none; }

/* ========== Values ========== */
.values{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); margin-top:40px; }
@media (max-width:880px){ .values{ grid-template-columns:1fr; } }
.value{ background:var(--bg-2); padding:46px 36px; }
.value .k{ font-family:var(--f-mono); font-size:.74rem; color:var(--gold); letter-spacing:.2em; }
.value h4{ font-size:1.3rem; margin:14px 0 12px; font-weight:500; }
.value p{ font-size:.94rem; color:var(--ink-3); margin:0; }

/* ========== Leadership ========== */
.leaders{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; margin-top:50px; }
@media (max-width:980px){ .leaders{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .leaders{ grid-template-columns:1fr; } }
.leader .photo{
  aspect-ratio: 4/5; background-size:cover; background-position:center top;
  background-color:#181818; filter: grayscale(.1);
}
.leader .meta{ padding-top:20px; border-top:1px solid var(--line); margin-top:16px; }
.leader .name{ font-family:var(--f-serif); font-size:1.25rem; color:var(--ink); }
.leader .role{ font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin-top:6px; }

/* ========== Contact ========== */
.contact-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 5vw, 80px); }
@media (max-width:880px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-info h3{ font-size:1.8rem; margin-bottom:22px; font-weight:400; }
.info-blocks{ display:flex; flex-direction:column; gap:32px; margin-top:30px; }
.info-b h4{ font-size:.74rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); margin:0 0 10px; font-family:var(--f-sans); font-weight:600; }
.info-b p{ color:var(--ink-2); margin:0; line-height:1.7; }

.form{ display:grid; grid-template-columns:1fr 1fr; gap:26px 24px; }
.form .full{ grid-column: span 2; }
.form label{ display:block; font-size:.7rem; letter-spacing:.22em; text-transform:uppercase; color:var(--ink-3); margin-bottom:8px; font-weight:500; }
.form input,.form select,.form textarea{
  width:100%; background:transparent; border:0; border-bottom:1px solid var(--line-2);
  color:var(--ink); padding:10px 0; font-family:inherit; font-size:1rem; outline:none;
  transition: border-color .3s var(--ease);
}
.form input:focus,.form select:focus,.form textarea:focus{ border-bottom-color:var(--gold); }
.form textarea{ min-height: 120px; resize:vertical; }
.form select{ appearance:none; background-image: linear-gradient(45deg, transparent 50%, var(--gold) 50%), linear-gradient(135deg, var(--gold) 50%, transparent 50%); background-position: calc(100% - 14px) 18px, calc(100% - 8px) 18px; background-size: 6px 6px; background-repeat:no-repeat; }

/* ========== Reveal on scroll ========== */
.reveal{ opacity:0; transform: translateY(24px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in{ opacity:1; transform: translateY(0); }
.reveal-stagger > *{ opacity:0; transform: translateY(18px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.reveal-stagger.in > *{ opacity:1; transform:translateY(0); }
.reveal-stagger.in > *:nth-child(2){ transition-delay:.08s; }
.reveal-stagger.in > *:nth-child(3){ transition-delay:.16s; }
.reveal-stagger.in > *:nth-child(4){ transition-delay:.24s; }
.reveal-stagger.in > *:nth-child(5){ transition-delay:.32s; }
.reveal-stagger.in > *:nth-child(6){ transition-delay:.40s; }

@media (prefers-reduced-motion: reduce){
  *{ animation:none!important; transition:none!important; }
  .reveal,.reveal-stagger>*{ opacity:1; transform:none; }
}

/* ========== Misc ========== */
.divider-gold{ width:56px; height:1px; background:var(--gold); margin: 22px 0 28px; }
.pill{
  display:inline-block; font-size:.7rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold); padding:6px 12px; border:1px solid var(--gold-dim);
}
.text-gold{ color:var(--gold); }
.text-center{ text-align:center; }
.mt-0{ margin-top:0; }
.mb-0{ margin-bottom:0; }
