/* =========================================================
   ACPL Design System
   Palette: Saffron (signal), Charcoal (ground), Warm White (air)
   Type: Fraunces (display, editorial warmth) + Manrope (body, clean)
   Signature: the "wayfinding mark" (अ) inside a rotating compass ring,
   reused as the loader and as section dividers.
   ========================================================= */

:root{
  --saffron: #E8650F;
  --saffron-deep: #B8420A;
  --saffron-soft: #FBDCC0;
  --charcoal: #211C19;
  --charcoal-soft: #3A322D;
  --warm-white: #FBF6EF;
  --sand: #EFE3D0;
  --gold: #B8873B;
  --ink: #262019;
  --line: rgba(38,32,25,0.12);
  --radius: 18px;
  --radius-sm: 10px;
  --shadow-soft: 0 20px 60px -25px rgba(33,28,25,0.35);
  --ff-display: "Fraunces", serif;
  --ff-body: "Manrope", sans-serif;
  --container: 1180px;
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; overflow-x:hidden; width:100%; }
body{
  margin:0; font-family: var(--ff-body); color: var(--ink);
  background: var(--warm-white); line-height:1.65; overflow-x:hidden; width:100%; position:relative;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{ font-family: var(--ff-display); font-weight:600; line-height:1.15; margin:0 0 .5em; color: var(--charcoal); letter-spacing:-.01em; }
p{ margin:0 0 1em; }
.container{ max-width: var(--container); margin:0 auto; padding:0 24px; }
@media (max-width:400px){ .container{ padding:0 18px; } }
@media (min-width:1440px){ :root{ --container: 1260px; } body{ font-size:16.5px; } }
@media (min-width:1800px){ :root{ --container: 1360px; } body{ font-size:17px; } }
:focus-visible{ outline:3px solid var(--saffron); outline-offset:3px; }
::selection{ background: var(--saffron); color:#fff; }
::-webkit-scrollbar{ width:11px; height:11px; }
::-webkit-scrollbar-track{ background: var(--warm-white); }
::-webkit-scrollbar-thumb{ background: var(--gold); border-radius:20px; border:3px solid var(--warm-white); }
::-webkit-scrollbar-thumb:hover{ background: var(--saffron-deep); }

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

/* ---------- Loader ---------- */
#site-loader{
  position:fixed; inset:0; background: var(--warm-white); z-index:9999;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px;
  transition: opacity .6s ease, visibility .6s ease;
}
#site-loader.loaded{ opacity:0; visibility:hidden; pointer-events:none; }
.loader-emblem{
  position:relative; width:112px; height:112px;
  display:flex; align-items:center; justify-content:center;
}
.loader-ring{
  position:absolute; inset:0; border-radius:50%; border:2px solid transparent;
}
.loader-ring-outer{
  border-top-color: var(--gold); border-right-color: var(--gold);
  animation: spin 3.2s cubic-bezier(.5,0,.5,1) infinite;
}
.loader-ring-inner{
  inset:16px; border-bottom-color: var(--saffron); border-left-color: var(--saffron);
  animation: spin 2.1s cubic-bezier(.5,0,.5,1) infinite reverse;
}
.loader-mark{
  position:relative; z-index:2; width:52px; height:auto;
  animation: glow 2.4s ease-in-out infinite;
}
.loader-brand{
  display:flex; flex-direction:column; align-items:center; line-height:1.2;
  animation: fadein .8s ease .2s both;
}
.loader-brand strong{ font-family: var(--ff-display); font-size:22px; color: var(--charcoal); }
.loader-brand small{ font-size:11px; letter-spacing:.18em; text-transform:uppercase; color: var(--gold); }
.loader-text{
  font-family: var(--ff-body); letter-spacing:.06em; color: var(--charcoal-soft); font-size:13px;
  text-transform:uppercase; margin:0; animation: fadein .8s ease .35s both;
}
@keyframes spin{ to{ transform: rotate(360deg); } }
@keyframes glow{ 0%,100%{ filter: drop-shadow(0 0 0px rgba(232,101,15,0)); transform:scale(1);} 50%{ filter: drop-shadow(0 0 12px rgba(232,101,15,.4)); transform:scale(1.05);} }
@keyframes fadein{ from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:translateY(0);} }

#page-progress{ position:fixed; top:0; left:0; height:3px; background: var(--saffron); z-index:9998; width:0%; transition: width .1s ease; }

/* ---------- Header / Nav ---------- */
.site-header{
  position:sticky; top:0; z-index:500;
  border-bottom:1px solid var(--line); transition: box-shadow .3s ease;
}
.site-header::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background: rgba(251,246,239,.85); backdrop-filter: blur(10px);
}
.site-header.scrolled{ box-shadow: 0 8px 30px -20px rgba(33,28,25,.5); }
.site-header.scrolled .brand-logo{ height:34px; }
.header-inner{
  display:grid; grid-template-columns: 1fr auto 1fr; align-items:center; gap:18px; padding:14px 24px;
}
.brand{
  display:flex; align-items:center; gap:10px; justify-self:center; position:relative; z-index:2;
  padding:8px 20px; border-radius:999px;
  background: linear-gradient(135deg, #fff 0%, var(--saffron-soft) 140%);
  box-shadow: 0 8px 22px -14px rgba(232,101,15,.55), inset 0 0 0 1px rgba(232,101,15,.12);
  transition: box-shadow .3s ease, transform .3s ease, padding .3s ease;
}
.brand:hover{
  box-shadow: 0 12px 30px -14px rgba(232,101,15,.7), inset 0 0 0 1px rgba(232,101,15,.22);
  transform: translateY(-2px);
}
.brand-logo{ height:40px; width:auto; display:block; transition: height .3s ease; }
.site-header.scrolled .brand{ padding:6px 16px; }
@media (max-width:400px){ .brand-logo{ height:30px; } .brand{ padding:6px 14px; } }
.footer-logo-badge{
  display:inline-block; background:#fff; padding:10px 16px; border-radius:12px; margin-bottom:16px;
}
.footer-logo-badge img{ height:32px; width:auto; display:block; }
.brand-mark{
  width:40px; height:40px; border-radius:50%; border:1.5px solid var(--saffron);
  display:flex; align-items:center; justify-content:center; font-family: var(--ff-display);
  color: var(--saffron); font-size:19px;
}
.brand-mark.small{ width:34px; height:34px; margin-bottom:10px; }
.brand-text{ display:flex; flex-direction:column; line-height:1.1; min-width:0; }
.brand-text strong{ font-family: var(--ff-display); font-size:18px; color: var(--charcoal); white-space:nowrap; }
.brand-text small{ font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color: var(--gold); white-space:nowrap; }
@media (max-width:400px){
  .brand-text strong{ font-size:15px; }
  .brand-text small{ font-size:8.5px; letter-spacing:.1em; }
}
/* ---- Desktop split nav: icons fan out from the centered logo ---- */
.main-nav-side{ display:flex; align-items:center; gap:4px; z-index:2; min-width:0; }
.main-nav-left{ justify-content:flex-start; }
.main-nav-right{ justify-content:flex-end; }
.nav-icon-link{
  display:flex; flex-direction:column; align-items:center; gap:5px; padding:8px 15px; border-radius:16px;
  font-size:11.5px; font-weight:700; letter-spacing:.02em; color: var(--charcoal-soft); position:relative;
  transition: color .25s ease, background .25s ease;
}
.nav-icon-link .nav-icon{ width:20px; height:20px; transition: transform .35s cubic-bezier(.2,.8,.2,1), color .25s ease; }
.nav-icon-link:hover, .nav-icon-link.active{ color: var(--saffron-deep); background: rgba(232,101,15,.08); }
.nav-icon-link:hover .nav-icon, .nav-icon-link.active .nav-icon{ transform: translateY(-2px) scale(1.08); }
.nav-icon-link.active::after{
  content:""; position:absolute; bottom:3px; left:50%; width:4px; height:4px; border-radius:50%;
  background: var(--saffron); transform:translateX(-50%);
  box-shadow: 0 0 8px 1px rgba(232,101,15,.6);
}
@media (min-width:1440px){ .nav-icon-link{ padding:8px 19px; } .header-inner{ padding:18px 24px; } }

/* ---- Mobile-only unified menu (slide-out drawer) ---- */
.main-nav{ display:none; }
.main-nav a{ font-size:14.5px; font-weight:600; color: var(--charcoal-soft); position:relative; padding:4px 0; }
.main-nav a:not(.nav-cta)::after{
  content:""; position:absolute; left:0; bottom:-2px; height:2px; width:0; background: var(--saffron); transition: width .25s ease;
}
.main-nav a:not(.nav-cta):hover::after{ width:100%; }
.nav-cta{
  position:relative; overflow:hidden; isolation:isolate; display:inline-flex; align-items:center; gap:8px;
  background: linear-gradient(135deg, var(--saffron) 0%, var(--saffron-deep) 100%);
  color:#fff !important; padding:10px 20px 10px 22px; margin-left:14px; border-radius:999px; font-weight:700;
  letter-spacing:.01em; font-size:14px; border:1px solid rgba(255,255,255,.3);
  box-shadow: 0 4px 14px rgba(184,66,10,.35), inset 0 1px 0 rgba(255,255,255,.25);
  transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease, background .3s ease;
}
.nav-cta svg{ width:14px; height:14px; flex-shrink:0; transition: transform .3s cubic-bezier(.2,.8,.2,1); }
.nav-cta::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background: linear-gradient(120deg, transparent 20%, rgba(255,255,255,.45) 50%, transparent 80%);
  transform: translateX(-120%); transition: transform .6s ease;
}
.nav-cta::after{
  content:""; position:absolute; inset:-6px; z-index:-2; border-radius:999px; opacity:0;
  background: radial-gradient(circle, rgba(232,101,15,.55), transparent 70%);
  filter: blur(10px); transition: opacity .35s ease;
}
.nav-cta:hover{
  background: linear-gradient(135deg, var(--saffron-deep) 0%, var(--saffron) 100%);
  transform: translateY(-2px);
  box-shadow: 0 10px 26px -4px rgba(184,66,10,.55), inset 0 1px 0 rgba(255,255,255,.3);
}
.nav-cta:hover::before{ transform: translateX(120%); }
.nav-cta:hover::after{ opacity:1; }
.nav-cta:hover svg{ transform: translateX(3px); }
.nav-toggle{
  display:none; background:none; border:0; flex-direction:column; justify-content:center;
  align-items:center; gap:5px; cursor:pointer; padding:6px; width:38px; height:38px;
  position:relative; z-index:600;
}
.nav-toggle span{
  width:24px; height:2px; background: var(--charcoal); border-radius:2px;
  transition: transform .3s ease, opacity .3s ease;
}
.nav-toggle.active span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.nav-toggle.active span:nth-child(2){ opacity:0; }
.nav-toggle.active span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }
.nav-overlay{
  position:fixed; inset:0; background: rgba(33,28,25,.45); backdrop-filter: blur(2px);
  z-index:499; opacity:0; visibility:hidden; transition: opacity .35s ease, visibility .35s ease;
}
.nav-overlay.show{ opacity:1; visibility:visible; }
body.nav-locked{ overflow:hidden; }

@media (max-width: 920px){
  .header-inner{ display:flex; justify-content:space-between; padding:12px 20px; }
  .brand{ justify-self:auto; }
  .main-nav-side{ display:none; }
  .nav-toggle{ display:flex; }
  .main-nav{
    display:flex;
    position:fixed; top:0; right:-100%; height:100vh; width:min(320px,85vw); background: var(--warm-white);
    flex-direction:column; align-items:flex-start; padding:100px 28px; gap:22px; transition:right .35s ease;
    box-shadow: -20px 0 60px rgba(0,0,0,.15); overflow-y:auto; z-index:550;
  }
  .main-nav.open{ right:0; }
  .main-nav a{ font-size:16px; }
  .nav-cta{ display:flex; margin:8px 0 0; width:100%; justify-content:center; text-align:center; padding:14px 20px; }
}

@media (max-width:400px){
  .header-inner{ padding:10px 16px; }
  .brand-mark{ width:34px; height:34px; font-size:16px; }
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:8px; padding:15px 30px; border-radius:32px;
  font-weight:700; font-size:14.5px; letter-spacing:.01em; cursor:pointer; border:1.5px solid transparent;
  position:relative; overflow:hidden; isolation:isolate;
  transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease, background .3s ease, color .3s ease, border-color .3s ease;
}
.btn::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background: linear-gradient(120deg, transparent 20%, rgba(255,255,255,.35) 50%, transparent 80%);
  transform: translateX(-120%); transition: transform .65s ease;
}
.btn:hover::before{ transform: translateX(120%); }
.btn-primary{
  background: linear-gradient(135deg, var(--saffron) 0%, var(--saffron-deep) 100%); color:#fff;
  box-shadow: 0 6px 18px -4px rgba(184,66,10,.45), inset 0 1px 0 rgba(255,255,255,.2);
}
.btn-primary:hover{
  background: linear-gradient(135deg, var(--saffron-deep) 0%, var(--saffron) 100%);
  transform: translateY(-3px); box-shadow: 0 14px 30px -8px rgba(184,66,10,.55), inset 0 1px 0 rgba(255,255,255,.25);
}
.btn-outline{ border-color: var(--charcoal); color: var(--charcoal); }
.btn-outline:hover{ background: var(--charcoal); color:#fff; transform: translateY(-3px); box-shadow: var(--shadow-soft); }
.btn-light{ border-color: rgba(255,255,255,.6); color:#fff; }
.btn-light:hover{ background:#fff; color: var(--charcoal); transform: translateY(-3px); box-shadow: var(--shadow-soft); }
.ripple{ position:absolute; border-radius:50%; background: rgba(255,255,255,.55); transform: scale(0); animation: ripple .6s ease-out; pointer-events:none; }
@keyframes ripple{ to{ transform: scale(4); opacity:0; } }

/* ---------- Sections ---------- */
section{ padding: 100px 0; position:relative; }
@media (min-width:1440px){ section{ padding:128px 0; } }
@media (max-width:768px){ section{ padding:64px 0; } }
@media (max-width:480px){ section{ padding:48px 0; } }
.section-dark{ background: var(--charcoal); color: #EFE7DC; }
.section-dark h2, .section-dark h3{ color:#fff; }
.section-sand{ background: var(--sand); }
.eyebrow{
  display:inline-flex; align-items:center; gap:10px; font-size:12.5px; letter-spacing:.18em; text-transform:uppercase;
  color: var(--saffron-deep); font-weight:700; margin-bottom:14px;
}
.eyebrow::before{ content:""; width:26px; height:1px; background: var(--saffron); display:inline-block; }
.section-head{ max-width:720px; margin-bottom:56px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
h2.display{ font-size: clamp(28px, 6vw, 46px); }
@media (max-width:768px){ .section-head{ margin-bottom:36px; } }

.reveal{ opacity:0; transform: translateY(26px); transition: opacity .8s ease, transform .8s ease; }
.reveal.in{ opacity:1; transform:none; }
.reveal-delay-1{ transition-delay:.1s; } .reveal-delay-2{ transition-delay:.2s; } .reveal-delay-3{ transition-delay:.3s; }

/* ---------- Hero ---------- */
.hero{
  min-height: 92vh; display:flex; align-items:flex-end; position:relative; color:#fff;
  background-size:cover; background-position: 55% center; overflow:hidden;
}
.hero::before{
  content:""; position:absolute; inset:-5%; z-index:0;
  background-image: inherit; background-size:cover; background-position: 55% center;
  animation: kenburns 22s ease-in-out infinite alternate;
}
.hero::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(90deg, rgba(20,16,13,.55) 0%, rgba(20,16,13,.1) 30%, transparent 55%),
    linear-gradient(180deg, rgba(33,28,25,.25) 0%, rgba(33,28,25,.55) 55%, rgba(33,28,25,.92) 100%);
}
@media (min-width:768px){
  .hero{ background-position: 72% center; }
  .hero::before{ background-position: 72% center; }
}
@media (min-width:1440px){
  .hero{ background-position: 82% center; }
  .hero::before{ background-position: 82% center; }
}
@media (max-width:767px){
  .hero{
    background-size:contain; background-position: center top; background-repeat:no-repeat;
    background-color: var(--charcoal);
  }
  .hero::before{
    inset:0; background-size:contain; background-position: center top; background-repeat:no-repeat;
    animation:none;
  }
  .hero::after{
    background:
      linear-gradient(180deg, rgba(33,28,25,.05) 0%, rgba(33,28,25,.15) 60%, rgba(33,28,25,.96) 100%);
  }
}
@keyframes kenburns{ from{ transform:scale(1);} to{ transform:scale(1.12);} }
.hero-content{ position:relative; z-index:2; padding: 60px 0 80px; width:100%; }
.hero-content .eyebrow{ color: var(--saffron-soft); }
.hero-content .eyebrow::before{ background: var(--saffron-soft); }
.hero h1{ color:#fff; font-size: clamp(32px, 6vw, 76px); max-width:15ch; text-shadow: 0 4px 30px rgba(0,0,0,.25); }
.hero p{ max-width:52ch; font-size:18px; color: rgba(255,255,255,.85); }
.hero-actions{ display:flex; gap:16px; margin-top:28px; flex-wrap:wrap; }
@media (min-width:1440px){ .hero-content{ padding:60px 0 110px; } .hero p{ font-size:19px; } }
@media (max-width:768px){
  .hero{ min-height:82vh; align-items:flex-end; }
  .hero-content{ padding:120px 0 56px; }
}
@media (max-width:767px){
  .hero{ min-height:auto; align-items:flex-start; }
  .hero-content{ padding: calc(43vw + 28px) 0 40px; }
}
@media (max-width:480px){
  .hero p{ font-size:16px; max-width:100%; }
  .hero-actions .btn{ width:100%; justify-content:center; }
}
.floating-shape{
  position:absolute; z-index:1; border-radius:50%; border:1px solid rgba(255,255,255,.25); pointer-events:none;
  animation: float 9s ease-in-out infinite;
}
.floating-shape.s1{ width:140px; height:140px; top:12%; right:8%; animation-delay:0s; }
.floating-shape.s2{ width:70px; height:70px; top:60%; right:20%; animation-delay:1.4s; }
.floating-shape.s3{ width:200px; height:200px; bottom:-60px; left:-60px; animation-delay:.7s; }
@keyframes float{ 0%,100%{ transform: translateY(0) rotate(0deg);} 50%{ transform: translateY(-22px) rotate(8deg);} }

/* ---------- Who We Are ---------- */
.who-quote{
  font-family: var(--ff-display); font-style:italic; font-weight:500;
  font-size: clamp(21px, 2.4vw, 28px); line-height:1.4; color: var(--charcoal);
  margin: 18px 0 22px; padding-left:22px; border-left:3px solid var(--saffron);
}
.who-meta{
  display:flex; flex-wrap:wrap; align-items:center; gap:10px;
  font-size:12.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color: var(--charcoal-soft); margin: 22px 0 28px;
}
.who-meta .dot{ width:4px; height:4px; border-radius:50%; background: var(--saffron); display:inline-block; }
.who-card{ padding-top:34px; }
.who-card-num{
  position:absolute; top:26px; right:28px; font-family: var(--ff-display); font-weight:600;
  font-size:34px; color: var(--sand); line-height:1; z-index:0;
}
.who-card .icon-badge, .who-card h3, .who-card p{ position:relative; z-index:1; }

/* ---- Who We Are: 3D image visual with floating Vision/Mission badges ---- */
.who-visual{ position:relative; padding:18px 26px 34px 0; }
.who-visual-frame{
  position:relative; border-radius:26px; overflow:hidden; aspect-ratio:4/3;
  box-shadow: 0 30px 70px -22px rgba(33,28,25,.5), inset 0 0 0 1px rgba(255,255,255,.35);
  transform-style: preserve-3d;
}
.who-visual-frame img{ width:100%; height:100%; object-fit:cover; display:block; }
.who-visual-frame::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background: linear-gradient(200deg, rgba(232,101,15,.15) 0%, transparent 35%),
              linear-gradient(0deg, rgba(20,16,13,.5) 0%, transparent 40%);
}
.who-visual-accent{
  position:absolute; inset:34px -18px -18px 34px; z-index:-1; border-radius:26px;
  background: linear-gradient(135deg, var(--saffron) 0%, var(--gold) 100%); opacity:.9;
  animation: blobDrift 14s ease-in-out infinite;
}
.who-visual-badge{
  position:absolute; display:flex; align-items:center; gap:12px; padding:14px 18px; border-radius:18px;
  box-shadow: 0 18px 40px -14px rgba(33,28,25,.4); max-width:230px;
  animation: badgeFloat 6s ease-in-out infinite; z-index:2;
}
.who-visual-badge .icon-badge{
  width:38px; height:38px; border-radius:12px; margin:0; flex-shrink:0;
  background: linear-gradient(135deg, var(--saffron-soft) 0%, #fff 100%); color: var(--saffron-deep);
  display:flex; align-items:center; justify-content:center; font-family:var(--ff-display); font-size:15px;
  box-shadow: inset 0 0 0 1px rgba(184,66,10,.12);
}
.who-visual-badge strong{ display:block; font-family: var(--ff-display); font-size:14.5px; color: var(--charcoal); line-height:1.2; }
.who-visual-badge small{ display:block; font-size:11.5px; color: var(--charcoal-soft); line-height:1.35; margin-top:2px; }
.who-visual-badge-1{ top:-14px; left:-14px; animation-delay:0s; }
.who-visual-badge-2{ bottom:14px; right:-30px; animation-delay:1.6s; }
@keyframes badgeFloat{ 0%,100%{ transform: translateY(0);} 50%{ transform: translateY(-9px);} }
@media (max-width:980px){ .who-visual-badge-2{ right:-14px; } }
@media (max-width:640px){
  .who-visual{ padding:0 0 20px; }
  .who-visual-accent{ display:none; }
  .who-visual-badge{ position:static; margin-top:14px; max-width:none; animation:none; }
  .who-visual-badge-1{ margin-top:18px; }
}
@media (prefers-reduced-motion: reduce){ .who-visual-badge, .who-visual-accent{ animation:none; } }

/* ---------- Cards & Grids ---------- */
.grid{ display:grid; gap:28px; }
.grid-3{ grid-template-columns: repeat(3, 1fr); }
.grid-4{ grid-template-columns: repeat(4, 1fr); }
.grid-2{ grid-template-columns: repeat(2, 1fr); }
@media (max-width: 980px){ .grid-3, .grid-4{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 640px){ .grid-3, .grid-4, .grid-2{ grid-template-columns: 1fr; } .grid{ gap:20px; } }
@media (max-width: 640px){ .grid[style*="gap:60px"], .grid[style*="gap: 60px"]{ gap:32px !important; } }

.card{
  background:#fff; border-radius: var(--radius); padding:32px; border:1px solid var(--line);
  box-shadow: 0 2px 10px -6px rgba(33,28,25,.12);
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
  position:relative; overflow:hidden;
}
@media (max-width:480px){ .card{ padding:24px; } }
.card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px; transform:scaleX(0); transform-origin:left;
  background: linear-gradient(90deg, var(--saffron), var(--gold)); transition: transform .4s ease;
}
.card:hover{ transform: translateY(-8px); box-shadow: var(--shadow-soft); border-color: transparent; }
.card:hover::before{ transform:scaleX(1); }
.card .icon-badge{
  width:52px; height:52px; border-radius:14px;
  background: linear-gradient(135deg, var(--saffron-soft) 0%, #fff 100%); color: var(--saffron-deep);
  display:flex; align-items:center; justify-content:center; margin-bottom:18px; font-family:var(--ff-display); font-size:20px;
  box-shadow: inset 0 0 0 1px rgba(184,66,10,.12);
  transition: transform .35s ease;
}
.card:hover .icon-badge{ transform: scale(1.08) rotate(-4deg); }

.media-card{
  border-radius: var(--radius); overflow:hidden; position:relative; background: var(--charcoal);
  aspect-ratio: 4/5; display:flex; align-items:flex-end;
}
.media-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition: transform .6s ease; }
.media-card:hover img{ transform: scale(1.07); }
.media-card::after{
  content:""; position:absolute; inset:0; background: linear-gradient(180deg, transparent 40%, rgba(20,16,13,.92) 100%);
}
.media-card-body{ position:relative; z-index:2; padding:26px; color:#fff; }
.media-card-body h3{ color:#fff; margin-bottom:6px; font-size:22px; }
.media-tag{
  display:inline-block; font-size:11px; letter-spacing:.12em; text-transform:uppercase; padding:4px 10px;
  background: rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.3); backdrop-filter: blur(4px);
  border-radius:20px; margin-bottom:10px;
}
.media-card{ box-shadow: 0 2px 10px -6px rgba(33,28,25,.15); transition: box-shadow .4s ease; }
.media-card:hover{ box-shadow: var(--shadow-soft); }

/* ---------- Stats ---------- */
.stat{ text-align:center; }
.stat .num{
  font-family: var(--ff-display); font-size: clamp(36px,5vw,54px); font-weight:600;
  background: linear-gradient(135deg, var(--saffron-soft) 0%, var(--saffron) 55%, var(--gold) 100%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 2px 10px rgba(232,101,15,.25));
}
.stat .label{ text-transform:uppercase; letter-spacing:.1em; font-size:12.5px; color: rgba(239,231,220,.75); margin-top:6px; }

/* ---------- Partners strip ---------- */
.partners-track{ width:100%; max-width:100%; overflow:hidden; position:relative; margin-top:24px; }
.partners-track .track-inner{ display:flex; gap:56px; align-items:center; width:max-content; animation: scroll-left 26s linear infinite; }
.partners-track img{ height:44px; width:auto; flex:0 0 auto; object-fit:contain; filter: grayscale(1); opacity:.65; transition:.3s ease; }
.partners-track img:hover{ filter:none; opacity:1; }
@keyframes scroll-left{ from{ transform: translateX(0);} to{ transform: translateX(-50%);} }

/* ---------- Timeline / Compass divider (signature) ---------- */
.wayfinder{ display:flex; align-items:center; gap:16px; margin: 8px 0 40px; }
.wayfinder .dot-ring{ width:34px; height:34px; border-radius:50%; border:1px dashed var(--saffron); display:flex; align-items:center; justify-content:center; }
.wayfinder .dot-ring span{ width:6px; height:6px; border-radius:50%; background: var(--saffron); }
.wayfinder .line{ flex:1; height:1px; background: var(--line); }

/* ---------- Forms ---------- */
.form-grid{ display:grid; gap:20px; grid-template-columns: 1fr 1fr; }
.form-grid .full{ grid-column: 1 / -1; }
@media (max-width:640px){ .form-grid{ grid-template-columns:1fr; } }
.field label{ display:block; font-weight:600; font-size:13.5px; margin-bottom:6px; color: var(--charcoal-soft); }
.field input, .field textarea, .field select{
  width:100%; padding:13px 16px; border-radius: var(--radius-sm); border:1.5px solid var(--line);
  font-family: var(--ff-body); font-size:15px; background:#fff;
  transition: border-color .25s ease, box-shadow .25s ease;
}
.field input:focus, .field textarea:focus, .field select:focus{
  border-color: var(--saffron); outline:none; box-shadow: 0 0 0 4px rgba(232,101,15,.12);
}
.field .error{ color:#B3261E; font-size:12.5px; margin-top:5px; }
.hp-field{ position:absolute; left:-9999px; }

/* ---------- Flash ---------- */
.flash-stack{ padding-top:20px; display:flex; flex-direction:column; gap:10px; }
.flash{ padding:14px 18px; border-radius: var(--radius-sm); font-size:14.5px; font-weight:600; border-left:4px solid transparent; }
.flash-success{ background:#E4F3E6; color:#1E5B2A; border-left-color:#2E8B41; }
.flash-danger{ background:#FBE4E1; color:#8A241B; border-left-color:#C23A26; }
.flash-warning{ background:#FCEFD9; color:#7A4E0E; border-left-color:#D9971A; }
.flash-info{ background:#E5EEF6; color:#1F4E77; border-left-color:#2E6DA4; }

/* ---------- Footer ---------- */
.site-footer{ background: var(--charcoal); color: #D9CFC1; padding:80px 0 0; }
.footer-grid{ display:grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap:40px; padding-bottom:60px; border-bottom:1px solid rgba(255,255,255,.1); }
@media (max-width:520px){ .site-footer{ padding:56px 0 0; } .footer-grid{ gap:32px; padding-bottom:40px; } }
.footer-brand h3{ color:#fff; margin-bottom:10px; }
.footer-col h4{ color:#fff; font-size:14px; text-transform:uppercase; letter-spacing:.08em; margin-bottom:16px; }
.footer-col a, .footer-col p{ display:block; color:#C9BEAF; margin-bottom:10px; font-size:14.5px; }
.footer-col a:hover{ color: var(--saffron-soft); }
.social-row{ display:flex; gap:10px; margin-top:16px; }
.social-row a{
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.25); display:flex; align-items:center;
  justify-content:center; color:#D9CFC1; transition: all .3s ease;
}
.social-row a svg{ width:16px; height:16px; }
.social-row a:hover{
  background: linear-gradient(135deg, var(--saffron) 0%, var(--saffron-deep) 100%);
  border-color: transparent; color:#fff; transform: translateY(-3px);
  box-shadow: 0 8px 16px -6px rgba(184,66,10,.5);
}
.footer-bottom{ display:flex; justify-content:space-between; padding:24px 0; font-size:13px; color:#9C9082; flex-wrap:wrap; gap:8px; }

/* ---- Contact rows: icon + text (address / phone / email) ---- */
.contact-line, .footer-col p.contact-line{ display:flex; align-items:flex-start; gap:12px; }
.contact-icon{
  width:34px; height:34px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center;
  background: linear-gradient(135deg, var(--saffron-soft) 0%, #fff 100%); color: var(--saffron-deep);
  box-shadow: inset 0 0 0 1px rgba(184,66,10,.12);
}
.contact-icon svg{ width:15px; height:15px; }
.footer-col p.contact-line{ margin-bottom:12px; }
.footer-col .contact-icon{
  background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); color: var(--gold); box-shadow:none;
}
@media (max-width:820px){ .footer-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width:520px){ .footer-grid{ grid-template-columns: 1fr; } }

/* ---------- Progress / gallery / page headers ---------- */
.page-header{ padding:160px 0 70px; background: var(--charcoal); color:#fff; }
.page-header .eyebrow{ color: var(--saffron-soft); }
.page-header h1{ color:#fff; font-size: clamp(30px,6vw,52px); max-width:16ch; }
.breadcrumb{ font-size:13px; color:#B7ACA0; }
@media (max-width:768px){ .page-header{ padding:120px 0 48px; } }
@media (max-width:480px){ .page-header{ padding:104px 0 40px; } }

.gallery-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:16px; }
.gallery-grid img{
  border-radius:12px; aspect-ratio:1; object-fit:cover; cursor:pointer;
  transition: transform .45s ease, box-shadow .45s ease;
}
.gallery-grid img:hover{ transform: scale(1.04); box-shadow: var(--shadow-soft); }
@media (max-width:700px){ .gallery-grid{ grid-template-columns: repeat(2,1fr);} }
@media (max-width:420px){ .gallery-grid{ grid-template-columns: 1fr; gap:12px; } }

.progress-bar-track{ height:6px; background: var(--line); border-radius:6px; overflow:hidden; margin-top:10px; }
.progress-bar-fill{ height:100%; background: var(--saffron); width:0%; transition: width 1.4s ease; }

ul.plain{ list-style:none; margin:0; padding:0; }
ul.check li{ padding-left:30px; position:relative; margin-bottom:12px; }
ul.check li::before{ content:"✓"; position:absolute; left:0; color: var(--saffron); font-weight:700; }

.tabs{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:36px; }
.tab-btn{
  padding:9px 18px; border-radius:30px; border:1.5px solid var(--line); background:#fff;
  font-weight:700; font-size:13.5px; cursor:pointer; transition: all .25s ease;
}
.tab-btn:hover{ border-color: var(--saffron); color: var(--saffron-deep); }
.tab-btn.active{
  background: linear-gradient(135deg, var(--charcoal) 0%, var(--charcoal-soft) 100%); color:#fff; border-color: var(--charcoal);
  box-shadow: 0 6px 16px -6px rgba(33,28,25,.5);
}

.badge{
  display:inline-block; padding:5px 14px; border-radius:20px; background: var(--sand); font-size:12px;
  font-weight:700; letter-spacing:.04em; color: var(--charcoal-soft); border:1px solid rgba(184,135,59,.3);
}

.cta-band{
  background: linear-gradient(155deg, var(--charcoal) 0%, #2b241f 100%);
  color:#fff; border-radius: 28px; padding:70px 50px; text-align:center; position:relative; overflow:hidden;
  border:1px solid rgba(184,135,59,.25); box-shadow: var(--shadow-soft);
}
.cta-band h2{ color:#fff; }
.cta-band::after{ content:""; position:absolute; inset:0; background: radial-gradient(circle at 80% 0%, rgba(232,101,15,.35), transparent 60%); }
.cta-band::before{
  content:""; position:absolute; inset:0; opacity:.06; pointer-events:none;
  background: radial-gradient(circle at 15% 100%, var(--gold), transparent 55%);
}
@media (max-width:768px){ .cta-band{ padding:48px 28px; border-radius:20px; } }
@media (max-width:480px){ .cta-band{ padding:40px 20px; border-radius:16px; } }

.error-page{ min-height:80vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:60px 24px; }
.error-page .brand-mark{ width:70px; height:70px; font-size:32px; margin-bottom:24px; }

/* ---------- Large-screen / ultra-wide refinement ---------- */
@media (min-width:1440px){
  .card{ padding:38px; }
  .cta-band{ padding:88px 60px; }
  .section-head{ max-width:800px; margin-bottom:64px; }
  .footer-grid{ gap:56px; }
  .gallery-grid{ gap:20px; }
  h2.display{ font-size: clamp(34px, 3.4vw, 52px); }
}

/* =========================================================
   PREMIUM ENHANCEMENT LAYER
   Glass, glow, mesh gradients, motion & depth — layered on
   top of the existing design system. No colors, content,
   structural classes or IDs are renamed or removed here;
   everything below is additive.
   ========================================================= */

/* ---- Mesh gradient blobs (ambient depth, GPU-friendly) ---- */
.mesh-blob{
  position:absolute; border-radius:50%; filter: blur(70px); pointer-events:none; z-index:0;
  opacity:.5; animation: blobDrift 18s ease-in-out infinite; will-change: transform;
}
.mesh-blob.b-saffron{ background: radial-gradient(circle, var(--saffron) 0%, transparent 70%); }
.mesh-blob.b-gold{ background: radial-gradient(circle, var(--gold) 0%, transparent 70%); }
.mesh-blob.b-white{ background: radial-gradient(circle, rgba(255,255,255,.6) 0%, transparent 70%); }
.mesh-blob.b-slow{ animation-duration:26s; }
@keyframes blobDrift{
  0%,100%{ transform: translate3d(0,0,0) scale(1); }
  33%{ transform: translate3d(26px,-20px,0) scale(1.08); }
  66%{ transform: translate3d(-20px,16px,0) scale(.95); }
}
@media (max-width:768px){ .mesh-blob{ filter: blur(44px); opacity:.35; } }
@media (prefers-reduced-motion: reduce){ .mesh-blob{ animation:none; } }

/* ---- Noise texture overlay (subtle grit, luxury dark bg) ---- */
.noise-overlay{ position:relative; overflow:hidden; }
.noise-overlay::after{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
.noise-overlay > .container{ position:relative; z-index:1; }

/* ---- Particle field (hero ambience) ---- */
.particle-field{ position:absolute; inset:0; overflow:hidden; z-index:1; pointer-events:none; }
.particle{
  position:absolute; width:4px; height:4px; border-radius:50%; background: rgba(255,255,255,.55);
  animation: particleFloat 12s ease-in-out infinite; will-change: transform, opacity;
}
.particle:nth-child(even){ background: rgba(251,220,192,.65); width:3px; height:3px; }
.particle:nth-child(3n){ background: var(--gold); width:5px; height:5px; }
@keyframes particleFloat{
  0%,100%{ transform: translateY(0) translateX(0); opacity:.2; }
  50%{ transform: translateY(-38px) translateX(10px); opacity:.85; }
}
@media (max-width:640px){ .particle-field, .hero-spotlight{ display:none; } }
@media (prefers-reduced-motion: reduce){ .particle{ animation:none; opacity:.4; } }

/* ---- Hero mouse-follow spotlight ---- */
.hero-spotlight{
  position:absolute; inset:0; z-index:1; pointer-events:none; opacity:0; transition: opacity .5s ease;
  background: radial-gradient(520px circle at var(--spot-x,50%) var(--spot-y,30%), rgba(251,220,192,.18), transparent 60%);
}
.hero:hover .hero-spotlight{ opacity:1; }

/* ---- Cinematic corner glow on hero photo ---- */
.hero .mesh-blob{ z-index:1; mix-blend-mode: soft-light; }

/* ---- Gradient text ---- */
.grad-text{
  background: linear-gradient(100deg, var(--saffron-soft) 0%, var(--saffron) 35%, var(--gold) 65%, var(--saffron-soft) 100%);
  background-size:220% auto; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  animation: gradShift 8s ease-in-out infinite;
}
.section-dark .grad-text{
  background: linear-gradient(100deg, #fff 0%, var(--saffron-soft) 35%, var(--gold) 65%, #fff 100%);
  background-size:220% auto; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
@keyframes gradShift{ 0%,100%{ background-position:0% 50%; } 50%{ background-position:100% 50%; } }
@media (prefers-reduced-motion: reduce){ .grad-text{ animation:none; } }

/* ---- Section divider (premium rhythm marker) ---- */
.section-divider{ display:flex; align-items:center; justify-content:center; padding:2px 24px; position:relative; z-index:1; }
.section-divider.on-dark{ background: var(--charcoal); padding-top:1px; padding-bottom:1px; }
.section-divider span{
  width:6px; height:6px; border-radius:50%; background: var(--saffron); flex-shrink:0;
  box-shadow: 0 0 0 6px rgba(232,101,15,.12), 0 0 24px 4px rgba(232,101,15,.35);
}
.section-divider::before, .section-divider::after{
  content:""; flex:1; max-width:220px; height:1px;
  background: linear-gradient(90deg, transparent, var(--line));
}
.section-divider::after{ background: linear-gradient(90deg, var(--line), transparent); }
.section-divider.on-dark span{ background: var(--saffron-soft); box-shadow: 0 0 0 6px rgba(251,220,192,.1), 0 0 26px 6px rgba(251,220,192,.3); }
.section-divider.on-dark::before, .section-divider.on-dark::after{ background: linear-gradient(90deg, transparent, rgba(255,255,255,.15)); }
.section-divider.on-dark::after{ background: linear-gradient(90deg, rgba(255,255,255,.15), transparent); }

/* ---- Glass surface utility ---- */
.glass{
  background: rgba(255,255,255,.6); backdrop-filter: blur(18px) saturate(160%); -webkit-backdrop-filter: blur(18px) saturate(160%);
  border:1px solid rgba(255,255,255,.5);
}
.section-dark .glass{ background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.14); }

/* ---- Card: gradient border on hover + deeper glow ---- */
.card{
  background-image: linear-gradient(#fff,#fff), linear-gradient(120deg, var(--line), var(--line));
  background-origin: border-box; background-clip: padding-box, border-box;
  border: 1.5px solid transparent;
  transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease, background-image .45s ease;
}
.card:hover{
  background-image: linear-gradient(#fff,#fff), linear-gradient(120deg, var(--saffron) 0%, var(--gold) 55%, var(--saffron-soft) 100%);
  box-shadow: var(--shadow-soft), 0 24px 60px -22px rgba(232,101,15,.45);
}

/* ---- 3D tilt (JS-driven transform target) ---- */
.tilt{ transform-style:preserve-3d; }

/* ---- Technology Vision cards: hover-reveal description ---- */
.tech-card{
  min-height:196px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px;
}
.tech-card-icon{
  width:50px; height:50px; border-radius:50%; flex-shrink:0;
  background: linear-gradient(135deg, rgba(232,101,15,.28), rgba(184,135,59,.18));
  border:1px solid rgba(255,255,255,.14); color: var(--gold);
  box-shadow: none;
  transition: opacity .3s ease, transform .3s ease;
}
.tech-card-title{
  color:#fff; font-weight:700; margin:0; font-size:16px; letter-spacing:.01em;
  transition: opacity .3s ease, transform .3s ease;
}
.tech-card-desc{ margin:0; font-size:13.5px; line-height:1.6; color:#C9BEAF; }

@media (hover:hover) and (pointer:fine){
  .tech-card{ position:relative; overflow:hidden; }
  .tech-card-desc{
    position:absolute; inset:0; z-index:2; display:flex; align-items:center; justify-content:center;
    text-align:center; padding:28px; margin:0; opacity:0; transform: translateY(10px); pointer-events:none;
    background: linear-gradient(160deg, rgba(26,20,16,.97), rgba(58,32,14,.96));
    border-radius: inherit; transition: opacity .35s ease, transform .35s ease;
  }
  .tech-card:hover .tech-card-desc{ opacity:1; transform: translateY(0); pointer-events:auto; }
  .tech-card:hover .tech-card-icon,
  .tech-card:hover .tech-card-title{ opacity:0; transform: translateY(-8px); }
}
@media (prefers-reduced-motion: reduce){
  .tech-card-desc, .tech-card-icon, .tech-card-title{ transition:none; }
}

/* ---- Our Team: profile cards + detail modal ---- */
.team-grid{ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap:32px; }
.team-card{
  background:#fff; border-radius: var(--radius); padding:44px 32px; border:1px solid var(--line);
  box-shadow: 0 2px 10px -6px rgba(33,28,25,.12); text-align:center; cursor:pointer;
  transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
  position:relative; overflow:hidden;
}
.team-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px; transform:scaleX(0); transform-origin:left;
  background: linear-gradient(90deg, var(--saffron), var(--gold)); transition: transform .4s ease;
}
.team-card:hover, .team-card:focus-visible{
  transform: translateY(-8px); box-shadow: var(--shadow-soft); border-color: transparent; outline:none;
}
.team-card:hover::before, .team-card:focus-visible::before{ transform:scaleX(1); }
.team-photo{
  width:148px; height:148px; border-radius:50%; margin:0 auto 24px; overflow:hidden; position:relative;
  background: linear-gradient(135deg, var(--saffron-soft) 0%, #fff 100%);
  box-shadow: inset 0 0 0 1px rgba(184,66,10,.12);
  display:flex; align-items:center; justify-content:center;
}
.team-photo img{ width:100%; height:100%; object-fit:cover; }
.team-initials{ font-family: var(--ff-display); font-size:52px; color: var(--saffron-deep); }
.team-badge{
  display:inline-block; font-size:11px; letter-spacing:.1em; text-transform:uppercase; font-weight:700;
  color: var(--saffron-deep); background: var(--saffron-soft); padding:5px 12px; border-radius:20px; margin-bottom:12px;
}
.team-name{ margin:0 0 3px; font-size:21px; }
.team-role{ color: var(--charcoal-soft); font-size:14.5px; margin-bottom:20px; }
.team-view{
  display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:700; letter-spacing:.03em;
  color: var(--saffron); text-transform:uppercase; transition: gap .25s ease;
}
.team-view svg{ width:14px; height:14px; transition: transform .25s ease; }
.team-card:hover .team-view svg, .team-card:focus-visible .team-view svg{ transform: translateX(4px); }

.team-modal-overlay{
  position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; padding:24px;
  background: rgba(20,16,13,.72); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  opacity:0; visibility:hidden; transition: opacity .3s ease, visibility 0s linear .3s;
}
.team-modal-overlay.open{ opacity:1; visibility:visible; transition: opacity .3s ease; }
.team-modal{
  background:#fff; border-radius:24px; max-width:640px; width:100%; max-height:88vh; overflow-y:auto;
  display:grid; grid-template-columns:220px 1fr; position:relative; box-shadow: 0 40px 90px -20px rgba(0,0,0,.45);
  transform: translateY(24px) scale(.97); transition: transform .35s ease;
}
.team-modal-overlay.open .team-modal{ transform: translateY(0) scale(1); }
.team-modal-close{
  position:absolute; top:16px; right:16px; width:36px; height:36px; border-radius:50%; border:none; cursor:pointer;
  background: rgba(33,28,25,.06); color: var(--charcoal); font-size:22px; line-height:1; display:flex;
  align-items:center; justify-content:center; transition: background .25s ease, transform .25s ease; z-index:2;
}
.team-modal-close:hover{ background: var(--saffron); color:#fff; transform: rotate(90deg); }
.team-modal-photo{
  background: linear-gradient(160deg, var(--saffron-soft) 0%, #fff8f1 100%);
  display:flex; align-items:center; justify-content:center; min-height:220px; padding:24px;
}
.team-modal-photo img{ width:100%; height:100%; object-fit:cover; border-radius:16px; aspect-ratio:1/1; }
.team-modal-photo .team-modal-initials{ font-family: var(--ff-display); font-size:64px; color: var(--saffron-deep); }
.team-modal-body{ padding:36px 32px; }
.team-modal-badge{
  display:inline-block; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; font-weight:700;
  color: var(--saffron-deep); background: var(--saffron-soft); padding:4px 10px; border-radius:20px; margin-bottom:12px;
}
.team-modal-body h3{ margin-bottom:4px; }
.team-modal-role{ color: var(--saffron-deep); font-weight:600; font-size:14.5px; margin-bottom:16px; }
.team-modal-bio{ color: var(--charcoal-soft); font-size:14.5px; line-height:1.7; white-space:pre-line; }
.team-modal-links{ display:flex; gap:10px; margin-top:22px; }
.team-modal-links a{
  width:38px; height:38px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center;
  justify-content:center; color: var(--charcoal-soft); transition: all .25s ease;
}
.team-modal-links a svg{ width:16px; height:16px; }
.team-modal-links a:hover{
  background: linear-gradient(135deg, var(--saffron) 0%, var(--saffron-deep) 100%); border-color:transparent;
  color:#fff; transform: translateY(-3px); box-shadow: 0 8px 16px -6px rgba(184,66,10,.5);
}
@media (max-width:640px){
  .team-modal{ grid-template-columns:1fr; max-height:92vh; }
  .team-modal-photo{ min-height:180px; }
  .team-modal-photo img{ max-width:140px; margin:0 auto; }
  .team-modal-body{ padding:28px 22px; }
}

/* ---- Media card: richer glow on hover ---- */
.media-card{ transition: box-shadow .4s ease; }
.media-card:hover{ box-shadow: var(--shadow-soft), 0 26px 60px -20px rgba(232,101,15,.5); }

/* ---- Stats: glass tiles on dark sections ---- */
.section-dark .stat{
  background: rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius: var(--radius);
  padding:30px 20px; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  transition: transform .35s ease, background .35s ease, border-color .35s ease;
}
.section-dark .stat:hover{ transform: translateY(-6px); background: rgba(255,255,255,.09); border-color: rgba(232,101,15,.4); }

/* ---- Partners marquee: fade edges instead of hard cut ---- */
.partners-track{
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

/* ---- Header: richer glass + scroll hairline ---- */
.site-header::before{ backdrop-filter: blur(14px) saturate(160%); -webkit-backdrop-filter: blur(14px) saturate(160%); transition: background .3s ease; }
.site-header::after{
  content:""; position:absolute; left:0; right:0; bottom:-1px; height:1px;
  background: linear-gradient(90deg, transparent, var(--saffron), transparent); opacity:0; transition: opacity .4s ease;
}
.site-header.scrolled::after{ opacity:.7; }

/* ---- Footer: ambient background glow ---- */
.site-footer{ position:relative; overflow:hidden; }
.footer-glow{ position:absolute; border-radius:50%; filter:blur(90px); pointer-events:none; z-index:0; opacity:.22; }
.footer-glow.g1{ width:360px; height:360px; top:-140px; left:-100px; background: radial-gradient(circle, var(--saffron), transparent 70%); }
.footer-glow.g2{ width:420px; height:420px; bottom:-220px; right:-140px; background: radial-gradient(circle, var(--gold), transparent 70%); }
.site-footer .footer-grid, .site-footer .footer-bottom{ position:relative; z-index:1; }

/* ---- Buttons: extra glow on primary hover ---- */
.btn-primary:hover{ box-shadow: 0 14px 30px -8px rgba(184,66,10,.55), inset 0 1px 0 rgba(255,255,255,.25), 0 0 34px -6px rgba(232,101,15,.55); }

/* ---------- Floating WhatsApp / Call buttons ---------- */
.floating-contact{
  position:fixed; right:22px; bottom:22px; z-index:850;
  display:flex; flex-direction:column; gap:14px;
}
.fab{
  width:56px; height:56px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 26px rgba(33,28,25,.28);
  transition: transform .25s ease, box-shadow .25s ease;
}
.fab:hover{ transform: translateY(-4px) scale(1.06); box-shadow:0 16px 32px rgba(33,28,25,.34); }
.fab svg{ width:27px; height:27px; fill:#fff; }
.fab-whatsapp{ background:#25D366; }
.fab-call{ background: var(--saffron); }
@media (max-width:480px){
  .floating-contact{ right:14px; bottom:14px; gap:12px; }
  .fab{ width:50px; height:50px; }
  .fab svg{ width:23px; height:23px; }
}
