/* =====================================================================
   LYNX CONTRACTING — Premium Corporate Design System
   Colors extracted from the LYNX logo identity
   ===================================================================== */

:root {
  /* Brand palette (from logo) */
  --charcoal:      #121212;   /* primary black wordmark */
  --charcoal-2:    #1c1c1c;
  --ink:           #0c0c0c;
  --gold:          #b8985f;   /* muted champagne gold (lynx mark + text) */
  --gold-soft:     #c8ad7e;
  --gold-deep:     #a07f49;
  --offwhite:      #f5f3ee;   /* warm off-white background */
  --stone:         #d9d5cd;   /* soft stone gray */
  --beige-gray:    #e9e6df;   /* light beige-gray */
  --line:          #e2ddd3;

  --text:          #161616;
  --text-soft:     #45433d;
  --text-muted:    #6c6a62;

  /* Type */
  --f-display: "Cormorant Garamond", "Times New Roman", serif;
  --f-sans: "Jost", "Helvetica Neue", Arial, sans-serif;

  /* Rhythm */
  --container: 1240px;
  --radius: 2px;
  --ease: cubic-bezier(.22,.61,.36,1);

  /* z-scale */
  --z-nav: 50;
  --z-overlay: 40;
  --z-float: 60;
  --z-preload: 100;
}

/* ------------------------------------------------------------------ logo image (official file) */
.brandlock { display:inline-flex; align-items:center; }
.logo-img { display:block; height:auto; object-fit:contain; flex:none; }
/* light backgrounds show the original (black wordmark); dark show the gold-preserving variant */
.logo-dark { display:none; }
.header .logo-img { width:150px; transition:width .4s var(--ease); }
.header.scrolled .logo-img { width:122px; }
/* header over dark hero → gold mark + gold text + light wordmark */
.header.transparent:not(.scrolled) .logo-light { display:none; }
.header.transparent:not(.scrolled) .logo-dark { display:block; }
.header.scrolled .logo-light { display:block; }
.header.scrolled .logo-dark { display:none; }
/* footer is always dark → keep gold mark + gold text; slightly larger for bigger gold text */
.footer__brand .logo-light { display:none; }
.footer__brand .logo-dark { display:block; }
.footer__brand .logo-img { width:248px; margin-bottom:22px; }

/* ------------------------------------------------------------------ logo (legacy svg fallbacks) */
.brand .wm, .footer__brand .wm, .preloader__mark path { fill:var(--charcoal); }
.brand .sub { fill:var(--gold-deep); }
.brand .ln { stroke:var(--gold); }
.lynx-mark .mk, .preloader__mark .mk { fill:var(--gold); }
svg .wm { fill:var(--charcoal); }
svg .sub { fill:var(--gold-deep); }
svg .ln { stroke:var(--gold); }
svg .mk { fill:var(--gold); }

/* ------------------------------------------------------------------ reset */
*,*::before,*::after { box-sizing:border-box; }
* { margin:0; padding:0; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  font-family:var(--f-sans);
  color:var(--text);
  background:var(--offwhite);
  font-size:17px;
  line-height:1.7;
  font-weight:300;
  letter-spacing:.2px;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
ul { list-style:none; }
button { font-family:inherit; cursor:pointer; border:none; background:none; }

/* RTL-ready: layout uses logical properties where possible */
[dir="rtl"] body { letter-spacing:0; }

/* ------------------------------------------------------------------ type */
h1,h2,h3,h4 { font-family:var(--f-display); font-weight:500; line-height:1.08; letter-spacing:.3px; color:var(--ink); }
.h-xl { font-size:clamp(2.6rem,6vw,5rem); }
.h-lg { font-size:clamp(2.1rem,4.4vw,3.5rem); }
.h-md { font-size:clamp(1.7rem,3vw,2.5rem); }
.h-sm { font-size:clamp(1.35rem,2.2vw,1.8rem); }

.eyebrow {
  font-family:var(--f-sans);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.42em;
  text-transform:uppercase;
  color:var(--gold-deep);
  display:inline-flex;
  align-items:center;
  gap:.9rem;
}
.eyebrow::before {
  content:""; width:34px; height:1px; background:var(--gold); display:inline-block;
}
.eyebrow.center::after {
  content:""; width:34px; height:1px; background:var(--gold); display:inline-block;
}
.lead { font-size:1.15rem; color:var(--text-soft); font-weight:300; max-width:62ch; }
.muted { color:var(--text-muted); }

/* ------------------------------------------------------------------ layout */
.container { width:100%; max-width:var(--container); margin-inline:auto; padding-inline:28px; }
.section { padding-block:clamp(70px,9vw,140px); position:relative; }
.section--tight { padding-block:clamp(50px,6vw,90px); }
.section--dark { background:var(--charcoal); color:var(--offwhite); }
.section--dark h1,.section--dark h2,.section--dark h3 { color:#fff; }
.section--dark .lead { color:#c9c6bf; }
.section--stone { background:var(--beige-gray); }
.center { text-align:center; }
.center .eyebrow { justify-content:center; }

.grid { display:grid; gap:28px; }
.cols-2 { grid-template-columns:repeat(2,1fr); }
.cols-3 { grid-template-columns:repeat(3,1fr); }
.cols-4 { grid-template-columns:repeat(4,1fr); }
.section-head { max-width:760px; margin-bottom:clamp(36px,5vw,64px); }
.section-head .lead { margin-top:22px; }
.section-head.center { margin-inline:auto; }

/* gold hairline divider */
.hairline { height:1px; background:linear-gradient(90deg,transparent,var(--gold),transparent); border:none; opacity:.6; }

/* ------------------------------------------------------------------ buttons */
.btn {
  display:inline-flex; align-items:center; gap:.7rem;
  font-family:var(--f-sans); font-size:.78rem; font-weight:500;
  letter-spacing:.22em; text-transform:uppercase;
  padding:1.05rem 2.1rem; border-radius:var(--radius);
  position:relative; overflow:hidden; transition:color .4s var(--ease),background .4s var(--ease),border-color .4s var(--ease);
}
.btn .arw { transition:transform .4s var(--ease); }
.btn:hover .arw { transform:translateX(5px); }
.btn--solid { background:var(--charcoal); color:#fff; }
.btn--solid:hover { background:var(--gold-deep); }
.btn--gold { background:var(--gold); color:#1a1a1a; }
.btn--gold:hover { background:var(--gold-deep); color:#fff; }
.btn--ghost { border:1px solid rgba(255,255,255,.4); color:#fff; }
.btn--ghost:hover { border-color:var(--gold); color:var(--gold-soft); }
.btn--line { border:1px solid var(--charcoal); color:var(--charcoal); }
.btn--line:hover { background:var(--charcoal); color:#fff; }
.btn-row { display:flex; flex-wrap:wrap; gap:16px; }

/* link with arrow */
.link-gold {
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.78rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-deep);
}
.link-gold .arw { transition:transform .35s var(--ease); }
.link-gold:hover .arw { transform:translateX(5px); }

/* ===================================================================== PRELOADER */
.preloader {
  position:fixed; inset:0; background:var(--offwhite); z-index:var(--z-preload);
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:24px;
  transition:opacity .7s var(--ease),visibility .7s var(--ease);
}
.preloader.done { opacity:0; visibility:hidden; }
.preloader__logo { width:min(260px,60vw); height:auto; opacity:0;
  animation:logoIn 1.2s var(--ease) forwards; }
@keyframes logoIn { 0%{ opacity:0; transform:translateY(10px) scale(.96); filter:blur(4px); }
  100%{ opacity:1; transform:none; filter:blur(0); } }
.preloader__bar { width:180px; height:1px; background:var(--line); position:relative; overflow:hidden; }
.preloader__bar::after { content:""; position:absolute; inset:0; background:var(--gold); transform:translateX(-100%); animation:load 1.7s var(--ease) forwards; }
@keyframes draw { to { stroke-dashoffset:0; } }
@keyframes load { to { transform:translateX(0); } }

/* ===================================================================== HEADER */
.header {
  position:fixed; inset-block-start:0; inset-inline:0; z-index:var(--z-nav);
  transition:background .45s var(--ease),box-shadow .45s var(--ease),padding .45s var(--ease);
  padding-block:18px;
}
.header.scrolled { background:rgba(245,243,238,.92); backdrop-filter:blur(14px); box-shadow:0 1px 0 var(--line); padding-block:10px; }
.header__inner { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:flex; align-items:center; }
.brand svg { height:46px; width:auto; transition:height .4s var(--ease); }
.header.scrolled .brand svg { height:40px; }
.nav { display:flex; align-items:center; gap:30px; }
.nav a {
  font-size:.74rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--text-soft);
  position:relative; padding-block:6px; transition:color .3s var(--ease);
}
.nav a::after { content:""; position:absolute; inset-block-end:0; inset-inline-start:0; width:0; height:1px; background:var(--gold); transition:width .35s var(--ease); }
.nav a:hover, .nav a.active { color:var(--ink); }
.nav a:hover::after, .nav a.active::after { width:100%; }
.header.transparent:not(.scrolled) { }
.header.transparent:not(.scrolled) .nav a { color:rgba(255,255,255,.82); }
.header.transparent:not(.scrolled) .nav a:hover,
.header.transparent:not(.scrolled) .nav a.active { color:#fff; }
.header.transparent:not(.scrolled) .brand .wm { fill:#fff; }
.header.transparent:not(.scrolled) .brand .sub { fill:var(--gold-soft); }
.header.transparent:not(.scrolled) .brand .ln { stroke:var(--gold-soft); }
.header.transparent:not(.scrolled) .burger span { background:#fff; }

.nav-cta { display:inline-flex; }
.burger { display:none; width:42px; height:42px; flex-direction:column; justify-content:center; gap:5px; align-items:flex-end; }
.burger span { width:26px; height:2px; background:var(--charcoal); transition:.35s var(--ease); }
.burger.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.burger.open span:nth-child(2){ opacity:0; }
.burger.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); width:26px; }

/* mobile drawer */
.drawer {
  position:fixed; inset:0; background:var(--charcoal); z-index:45;
  display:flex; flex-direction:column; justify-content:flex-start; gap:4px;
  padding:96px 40px 40px; overflow-y:auto;
  transform:translateX(100%); transition:transform .5s var(--ease); visibility:hidden;
}
[dir="rtl"] .drawer { transform:translateX(-100%); }
.drawer.open { transform:translateX(0); visibility:visible; }
.drawer a {
  font-family:var(--f-display); font-size:1.8rem; color:#efece5; padding-block:9px;
  border-bottom:1px solid rgba(255,255,255,.07); transition:color .3s,padding-inline .3s;
}
.drawer a:hover { color:var(--gold-soft); padding-inline-start:10px; }
.drawer .drawer__cta { margin-top:26px; }

/* ===================================================================== HERO */
.hero { position:relative; min-height:100svh; display:flex; align-items:center; overflow:hidden; background:var(--charcoal); }
.hero__bg { position:absolute; inset:0; z-index:0; background:#0c0c0c; }
.hero__bg img, .hero__bg video { width:100%; height:100%; object-fit:cover; opacity:.92; }
.hero__bg img { transform:scale(1.08); animation:slowzoom 14s var(--ease) forwards; }
@keyframes slowzoom { to { transform:scale(1); } }
.hero__bg::after { content:""; position:absolute; inset:0;
  background:linear-gradient(120deg,rgba(10,10,10,.92) 0%,rgba(12,12,12,.7) 45%,rgba(12,12,12,.45) 100%); }
.hero__watermark { position:absolute; inset-block:0; inset-inline-end:-6%; z-index:1; height:118%; width:auto; opacity:.05; pointer-events:none; }
.hero__watermark path { fill:#fff; }
.hero__inner { position:relative; z-index:2; padding-block:140px 90px; }
.hero h1 { color:#fff; max-width:18ch; }
.hero .lead { color:#cfccc4; margin-block:26px 36px; }
.hero .eyebrow { color:var(--gold-soft); }
.hero .eyebrow::before { background:var(--gold-soft); }
.hero__scroll { position:absolute; inset-block-end:30px; inset-inline-start:50%; transform:translateX(-50%); z-index:2; display:flex; flex-direction:column; align-items:center; gap:10px; color:rgba(255,255,255,.5); font-size:.62rem; letter-spacing:.3em; text-transform:uppercase; }
.hero__scroll .mark { width:26px; display:block; }
.hero__scroll .mark svg, .hero__scroll .mark img { width:100%; height:auto; display:block; fill:var(--gold-soft); animation:scrollbob 2s var(--ease) infinite; }
@keyframes scrollbob { 0%,100% { transform:translateY(0); opacity:.55; } 50% { transform:translateY(7px); opacity:1; } }

/* page hero (interior pages) */
.phero { position:relative; background:var(--charcoal); color:#fff; padding-block:200px 90px; overflow:hidden; }
.phero__bg { position:absolute; inset:0; z-index:0; }
.phero__bg img { width:100%; height:100%; object-fit:cover; opacity:.22; }
.phero__bg::after { content:""; position:absolute; inset:0; background:linear-gradient(120deg,rgba(10,10,10,.9),rgba(12,12,12,.55)); }
.phero__wm { position:absolute; inset-block-start:-20%; inset-inline-end:-4%; height:150%; opacity:.045; z-index:1; }
.phero__wm path { fill:#fff; }
.phero__inner { position:relative; z-index:2; }
.phero h1 { color:#fff; margin-block:18px 18px; }
.phero .lead { color:#cfccc4; }
.phero .crumb { font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.5); }
.phero .crumb a:hover { color:var(--gold-soft); }
.phero .eyebrow { color:var(--gold-soft); }
.phero .eyebrow::before { background:var(--gold-soft); }

/* ===================================================================== CARDS */
.card {
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:38px 34px; position:relative; overflow:hidden;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease);
}
.card::before { content:""; position:absolute; inset-block-start:0; inset-inline-start:0; width:100%; height:2px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .5s var(--ease); }
[dir="rtl"] .card::before { transform-origin:right; }
.card:hover { transform:translateY(-6px); box-shadow:0 26px 50px -28px rgba(20,18,12,.4); border-color:var(--stone); }
.card:hover::before { transform:scaleX(1); }
.card__ico { width:52px; height:52px; color:var(--gold-deep); margin-bottom:24px; }
.card__ico svg { width:100%; height:100%; stroke:var(--gold-deep); fill:none; stroke-width:1.3; }
.card__ico--mark { display:flex; align-items:center; }
.card__ico--mark img { width:46px; height:46px; object-fit:contain; }
.card h3 { font-size:1.4rem; margin-bottom:12px; }
.card p { color:var(--text-muted); font-size:.98rem; }
.card .idx { position:absolute; inset-block-start:26px; inset-inline-end:30px; font-family:var(--f-display); font-size:1.1rem; color:var(--stone); }

/* feature list (why) */
.feat { display:flex; gap:18px; padding:26px 0; border-block-end:1px solid var(--line); }
.feat__n { font-family:var(--f-display); font-size:1.5rem; color:var(--gold); line-height:1; min-width:48px; }
.feat h3 { font-size:1.25rem; margin-bottom:6px; }
.feat p { color:var(--text-muted); font-size:.96rem; }

/* sector tile (image) */
.tile { position:relative; overflow:hidden; border-radius:var(--radius); min-height:320px; display:flex; align-items:flex-end; color:#fff; }
.tile img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.tile::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(12,12,12,.05) 30%,rgba(12,12,12,.88)); }
.tile:hover img { transform:scale(1.07); }
.tile__body { position:relative; z-index:2; padding:30px; width:100%; }
.tile__body h3 { color:#fff; font-size:1.5rem; }
.tile__body p { color:rgba(255,255,255,.78); font-size:.92rem; margin-top:6px; transform:translateY(8px); opacity:0; transition:.5s var(--ease); }
.tile:hover .tile__body p { transform:translateY(0); opacity:1; }
.tile__line { width:36px; height:2px; background:var(--gold); margin-bottom:14px; }

/* split content */
.split { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(40px,6vw,90px); align-items:center; }
.split--rev .split__media { order:2; }
.split__media { position:relative; }
.split__media img { border-radius:var(--radius); width:100%; height:100%; object-fit:cover; min-height:420px; }
.split__media .badge {
  position:absolute; inset-block-end:-28px; inset-inline-start:-28px; background:var(--charcoal); color:#fff;
  padding:26px 30px; border-radius:var(--radius); max-width:230px;
}
.split__media .badge .n { font-family:var(--f-display); font-size:2.6rem; color:var(--gold-soft); line-height:1; }
.split__media .badge .t { font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; color:#bdbab3; margin-top:6px; }

/* stat strip */
.stats { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.stat { background:var(--offwhite); padding:42px 26px; text-align:center; }
.section--dark .stats { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.08); }
.section--dark .stat { background:var(--charcoal); }
.stat .n { font-family:var(--f-display); font-size:clamp(2.4rem,4vw,3.4rem); color:var(--gold); line-height:1; }
.stat .t { font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--text-muted); margin-top:12px; }
.section--dark .stat .t { color:#aaa7a0; }

/* service detail row */
.srow { display:grid; grid-template-columns:.8fr 1.2fr; gap:50px; padding-block:clamp(40px,5vw,70px); border-block-end:1px solid var(--line); align-items:start; }
.srow:last-child { border-block-end:none; }
.srow__num { font-family:var(--f-display); font-size:clamp(3rem,6vw,5rem); color:var(--stone); line-height:.9; }
.srow__num span { color:var(--gold); }
.srow h3 { font-size:1.9rem; margin-bottom:16px; }
.srow p { color:var(--text-soft); margin-bottom:18px; }
.srow ul { display:grid; grid-template-columns:1fr 1fr; gap:10px 24px; }
.srow ul li { font-size:.92rem; color:var(--text-muted); display:flex; gap:10px; align-items:center; }
.srow ul li::before { content:""; width:6px; height:6px; background:var(--gold); flex:none; transform:rotate(45deg); }

/* capability pill grid */
.cap { background:#fff; border:1px solid var(--line); padding:30px; border-radius:var(--radius); transition:.45s var(--ease); position:relative; }
.cap:hover { background:var(--charcoal); border-color:var(--charcoal); transform:translateY(-4px); }
.cap:hover h3, .cap:hover p, .cap:hover .cap__n { color:#fff; }
.cap:hover p { color:#bdbab3; }
.cap__n { font-family:var(--f-display); color:var(--gold); font-size:1.1rem; }
.cap h3 { font-size:1.25rem; margin-block:14px 8px; transition:color .4s; }
.cap p { color:var(--text-muted); font-size:.92rem; transition:color .4s; }

/* values inline */
.values { display:flex; flex-wrap:wrap; gap:14px; }
.values span { border:1px solid var(--gold); color:var(--gold-deep); padding:.7rem 1.4rem; border-radius:40px; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; }

/* ===================================================================== CTA band */
.ctaband { position:relative; background:var(--charcoal); color:#fff; overflow:hidden; }
.ctaband__wm { position:absolute; inset-block-start:50%; inset-inline-end:-2%; transform:translateY(-50%); height:200%; opacity:.05; }
.ctaband__wm path { fill:#fff; }
.ctaband .container { position:relative; z-index:2; }

/* ===================================================================== FORMS */
.form { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:clamp(28px,4vw,52px); }
.field { margin-bottom:24px; }
.field label { display:block; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--text-soft); margin-bottom:9px; font-weight:500; }
.field label .req { color:var(--gold-deep); }
.field input, .field select, .field textarea {
  width:100%; font-family:var(--f-sans); font-size:1rem; font-weight:300; color:var(--text);
  background:var(--offwhite); border:1px solid var(--line); border-radius:var(--radius);
  padding:.95rem 1.1rem; transition:border-color .3s,background .3s,box-shadow .3s;
}
.field textarea { resize:vertical; min-height:140px; }
.field input:focus, .field select:focus, .field textarea:focus {
  outline:none; border-color:var(--gold); background:#fff; box-shadow:0 0 0 3px rgba(184,152,95,.12);
}
.field--2 { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.upload {
  border:1.5px dashed var(--stone); border-radius:var(--radius); padding:34px; text-align:center;
  background:var(--offwhite); transition:.3s var(--ease); cursor:pointer; display:block;
}
.upload:hover { border-color:var(--gold); background:#fff; }
.upload svg { width:34px; height:34px; stroke:var(--gold-deep); fill:none; stroke-width:1.4; margin-inline:auto; margin-bottom:12px; }
.upload .t { font-size:.95rem; color:var(--text-soft); }
.upload .s { font-size:.8rem; color:var(--text-muted); margin-top:4px; }
.upload input { display:none; }
.upload .fname { margin-top:10px; font-size:.85rem; color:var(--gold-deep); }
.form__success { display:none; text-align:center; padding:40px 10px; }
.form__success.show { display:block; animation:fadeup .6s var(--ease); }
.form__success svg { width:64px; height:64px; stroke:var(--gold); fill:none; stroke-width:1.3; margin-inline:auto; margin-bottom:20px; }

.radio-row { display:flex; flex-wrap:wrap; gap:12px; }
.radio-row label { display:inline-flex; align-items:center; gap:9px; border:1px solid var(--line); padding:.7rem 1.2rem; border-radius:40px; cursor:pointer; font-size:.85rem; text-transform:none; letter-spacing:0; color:var(--text-soft); margin:0; transition:.3s; }
.radio-row input { width:auto; }
.radio-row label:has(input:checked) { border-color:var(--gold); background:rgba(184,152,95,.08); color:var(--ink); }

/* ===================================================================== CONTACT */
.info-card { background:var(--charcoal); color:#fff; border-radius:var(--radius); padding:clamp(34px,4vw,54px); height:100%; position:relative; overflow:hidden; }
.info-card__wm { position:absolute; inset-block-end:-10%; inset-inline-end:-8%; height:80%; opacity:.06; }
.info-card__wm path { fill:#fff; }
.info-row { display:flex; gap:18px; padding-block:22px; border-block-end:1px solid rgba(255,255,255,.08); position:relative; z-index:2; }
.info-row:last-child { border:none; }
.info-row svg { width:24px; height:24px; stroke:var(--gold-soft); fill:none; stroke-width:1.4; flex:none; margin-top:3px; }
.info-row .l { font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:#9c998f; margin-bottom:4px; }
.info-row .v { color:#efece5; font-size:1.02rem; }
.mapph { background:var(--beige-gray); border:1px solid var(--line); border-radius:var(--radius); min-height:300px; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:10px; color:var(--text-muted); }
.mapph svg { width:40px; height:40px; stroke:var(--gold-deep); fill:none; stroke-width:1.2; }

/* ===================================================================== FOOTER */
.footer { background:var(--ink); color:#bdbab3; position:relative; overflow:hidden; padding-block:clamp(60px,7vw,90px) 0; }
.footer__wm { position:absolute; inset-block-end:-30%; inset-inline-start:50%; transform:translateX(-50%); height:150%; opacity:.035; pointer-events:none; }
.footer__wm path { fill:#fff; }
.footer .container { position:relative; z-index:2; }
.footer__grid { display:grid; grid-template-columns:1.6fr 1fr 1fr 1.2fr; gap:46px; padding-bottom:54px; }
.footer__brand svg { height:54px; width:auto; margin-bottom:22px; }
.footer__brand .wm { fill:#f5f3ee; } .footer__brand .sub { fill:var(--gold-soft); } .footer__brand .ln { stroke:var(--gold-soft); }
.footer__brand p { font-size:.95rem; max-width:34ch; color:#928f86; }
.footer h4 { font-family:var(--f-sans); color:#fff; font-size:.74rem; letter-spacing:.2em; text-transform:uppercase; margin-bottom:22px; font-weight:500; }
.footer__links a { display:block; padding-block:7px; font-size:.95rem; color:#a4a199; transition:color .3s,padding-inline .3s; }
.footer__links a:hover { color:var(--gold-soft); padding-inline-start:6px; }
.footer__contact .row { display:flex; gap:12px; padding-block:8px; font-size:.95rem; color:#a4a199; }
.footer__contact .row svg { width:18px; height:18px; stroke:var(--gold-soft); fill:none; stroke-width:1.5; flex:none; margin-top:4px; }
.footer__bottom { border-block-start:1px solid rgba(255,255,255,.08); padding-block:26px; display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; font-size:.82rem; color:#7d7a72; }
.footer__social { display:flex; gap:12px; }
.footer__social a { width:38px; height:38px; border:1px solid rgba(255,255,255,.12); border-radius:50%; display:flex; align-items:center; justify-content:center; transition:.3s; }
.footer__social a:hover { border-color:var(--gold); background:var(--gold); }
.footer__social svg { width:16px; height:16px; fill:#bdbab3; transition:fill .3s; }
.footer__social a:hover svg { fill:#1a1a1a; }

/* ===================================================================== WHATSAPP FLOAT */
.wa {
  position:fixed; inset-block-end:26px; inset-inline-end:26px; z-index:var(--z-float);
  width:58px; height:58px; border-radius:50%; background:#25d366;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 14px 30px -8px rgba(37,211,102,.6); transition:transform .35s var(--ease);
  animation:wapulse 2.6s infinite;
}
.wa:hover { transform:scale(1.08); }
/* hide floating WhatsApp while the mobile menu is open (prevents overlap with drawer CTA) */
body.menu-open .wa { opacity:0; visibility:hidden; pointer-events:none; transition:opacity .25s var(--ease); }
/* hide the header logo while the menu is open so it can't overlap the first menu item (close X stays) */
body.menu-open .header .brand { opacity:0; visibility:hidden; pointer-events:none; }
.wa svg { width:30px; height:30px; fill:#fff; }
@keyframes wapulse { 0%,100%{ box-shadow:0 14px 30px -8px rgba(37,211,102,.6),0 0 0 0 rgba(37,211,102,.4);} 50%{ box-shadow:0 14px 30px -8px rgba(37,211,102,.6),0 0 0 14px rgba(37,211,102,0);} }

/* ===================================================================== REVEAL ANIM */
[data-reveal] { opacity:0; transform:translateY(34px); transition:opacity .9s var(--ease),transform .9s var(--ease); }
[data-reveal].in { opacity:1; transform:none; }
[data-reveal-d="1"]{ transition-delay:.1s; } [data-reveal-d="2"]{ transition-delay:.2s; }
[data-reveal-d="3"]{ transition-delay:.3s; } [data-reveal-d="4"]{ transition-delay:.4s; }
[data-reveal-d="5"]{ transition-delay:.5s; }
@keyframes fadeup { from{opacity:0;transform:translateY(20px);} to{opacity:1;transform:none;} }

/* ===================================================================== RESPONSIVE */
@media (max-width:1024px){
  .footer__grid { grid-template-columns:1fr 1fr; gap:38px; }
  .split { grid-template-columns:1fr; }
  .split--rev .split__media { order:0; }
  .srow { grid-template-columns:1fr; gap:18px; }
  .srow__num { font-size:3rem; }
}
@media (max-width:860px){
  .nav, .nav-cta { display:none; }
  .burger { display:flex; }
  .cols-3, .cols-4 { grid-template-columns:1fr 1fr; }
  .stats { grid-template-columns:1fr 1fr; }
  .field--2 { grid-template-columns:1fr; }
}
@media (max-width:560px){
  body { font-size:16px; }
  .container { padding-inline:20px; }
  .cols-2, .cols-3, .cols-4 { grid-template-columns:1fr; }
  .footer__grid { grid-template-columns:1fr; }
  .srow ul { grid-template-columns:1fr; }
  .hero__inner { padding-block:120px 80px; }
  .split__media .badge { inset-inline-start:0; inset-block-end:0; position:relative; margin-top:18px; max-width:none; }
}

/* reduced motion */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after { animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; scroll-behavior:auto!important; }
  [data-reveal]{ opacity:1; transform:none; }
  .hero__bg img { animation:none; transform:scale(1); }
  .hero__bg video { display:none; }
  .hero__bg { background:url("hero.jpg") center/cover no-repeat #0c0c0c; }
}
