/* =========================================================
   GREEN LIGHT — DESIGN SYSTEM ("INDUSTRIAL LUXURY")
   Enterprise build notes:
   - Single source of truth for every color, spacing, radius,
     shadow, motion, type and breakpoint value used site-wide.
     Never hardcode a raw value in a component rule below —
     reference a token here so future pages/CMS stay consistent.
   - Section banners below (### COMPONENT: NAME) are 1:1 with the
     <!-- BEGIN/END COMPONENT --> comments in each HTML page. Treat
     each banner's rules as one self-contained, reusable component.
   - Breakpoints cannot be expressed as native CSS custom properties
     inside @media conditions (vanilla CSS limitation, no build
     step in this project). The --bp-* tokens below are the
     documented values: every @media rule in this file MUST use
     these exact pixels, and script.js exposes an identical
     BREAKPOINTS constant for any JS-driven responsive logic, so
     CSS and JS never drift apart.
   ========================================================= */

:root{
  /* Brand colors */
  --c-green-900:#0E5C3F;
  --c-green-700:#167A52;
  --c-green-500:#2F8A5C;
  --c-green-100:#E7F2EC;
  --c-black:#0E0F0F;
  --c-charcoal:#17191A;
  --c-charcoal-soft:#222524;
  --c-gray-100:#F1F2F0;
  --c-gray-200:#E6E7E4;
  --c-gray-400:#9A9D9A;
  --c-gray-600:#5C5F5C;
  --c-white:#FFFFFF;
  --c-platinum:#B9BCC0;
  --c-whatsapp:#25D366;

  /* V2 — Premium Visual Upgrade tokens (additive; legacy flat colors
     above are kept for borders/text where a gradient would be wrong) */
  --c-true-black:#070808;
  --gradient-brand: linear-gradient(135deg, #0E5C3F 0%, #16A37A 55%, #34C77B 100%);
  --gradient-platinum: linear-gradient(135deg, #DCDFE2 0%, #B9BCC0 50%, #8E9296 100%);
  --glow-green: 0 0 40px rgba(47,138,92,.35);
  --pattern-grid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cpath d='M0 .5H64M.5 0V64' fill='none' stroke='%2334C77B' stroke-width='1'/%3E%3C/svg%3E");

  /* Typography */
  --font-heading:'Sora', sans-serif;
  --font-body:'Inter', sans-serif;
  --fs-h1:clamp(2rem, 4vw, 3rem);
  --fs-h2:clamp(1.6rem, 2.6vw, 2.25rem);
  --fs-h3:1.1rem;
  --fs-body:1rem;
  --fs-small:.88rem;
  --lh-heading:1.2;
  --lh-body:1.65;

  /* Spacing */
  --sp-1:4px; --sp-2:8px; --sp-3:16px; --sp-4:24px; --sp-5:32px;
  --sp-6:48px; --sp-7:64px; --sp-8:96px; --sp-9:128px;

  /* Radius / shadow / motion */
  --radius-sm:8px; --radius-md:16px; --radius-lg:28px; --radius-pill:999px;
  --shadow-sm:0 2px 10px rgba(14,15,15,.06);
  --shadow-md:0 12px 32px rgba(14,15,15,.10);
  --shadow-lg:0 24px 60px rgba(14,15,15,.16);
  --ease:cubic-bezier(.4,0,.2,1);
  --transition:240ms var(--ease);

  /* Layout */
  --container-w:1240px;

  /* Breakpoints — DOCUMENTATION ONLY, see note above.
     Keep identical to BREAKPOINTS in script.js. */
  --bp-sm:600px;
  --bp-md:900px;
  --bp-lg:1024px;
  --bp-xl:1240px;

  /* Z-index scale — every fixed/sticky element below references one
     of these instead of a magic number, so stacking order stays
     auditable as more components are added in future phases. */
  --z-skiplink:999;
  --z-header:500;
  --z-mobile-cta:450;
  --z-whatsapp:400;
}

html[dir="rtl"]{
  --font-heading:'Tajawal', sans-serif;
  --font-body:'Tajawal', sans-serif;
}

/* =========================================================
   RESET / BASE
   ========================================================= */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--c-black);
  background:var(--c-white);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ font-family:var(--font-heading); line-height:var(--lh-heading); margin:0 0 var(--sp-3); color:var(--c-black); }
h2{ font-size:var(--fs-h2); letter-spacing:-0.01em; }
p{ margin:0 0 var(--sp-3); color:var(--c-gray-600); }
button{ font-family:inherit; cursor:pointer; }
input,select,textarea{ font-family:inherit; font-size:1rem; }
:focus-visible{ outline:3px solid var(--c-green-500); outline-offset:2px; }

.container{ width:100%; max-width:var(--container-w); margin-inline:auto; padding-inline:var(--sp-4); }

.skip-link{
  position:absolute; inset-inline-start:-9999px; top:0; z-index:var(--z-skiplink);
  background:var(--c-green-900); color:var(--c-white); padding:var(--sp-2) var(--sp-3);
}
.skip-link:focus{ inset-inline-start:var(--sp-3); top:var(--sp-2); }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

/* =========================================================
   UTILITIES
   ========================================================= */
.eyebrow{
  display:inline-block; font-size:.8rem; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; color:var(--c-green-700); margin-bottom:var(--sp-2);
}
html[dir="rtl"] .eyebrow{ text-transform:none; letter-spacing:0; }
.eyebrow-light{ color:var(--c-green-500); }
.text-light{ color:var(--c-white); }
.text-light-soft{ color:rgba(255,255,255,.72); }

.section{ padding-block:var(--sp-8); }
.bg-white{ background:var(--c-white); }
.bg-light{ background:var(--c-gray-100); }
.bg-dark{ background:var(--c-black); }
.bg-dark h2{ color:var(--c-white); }

/* =========================================================
   V2 — PREMIUM UTILITIES (additive)
   Gradient text, industrial grid texture, signature orbit motif,
   and a real-image "media frame" used wherever an SVG illustration
   placeholder is replaced with sourced industrial photography.
   ========================================================= */
.text-gradient{
  background-image:var(--gradient-brand); background-clip:text; -webkit-background-clip:text;
  color:transparent; -webkit-text-fill-color:transparent;
}
.text-gradient-platinum{
  background-image:var(--gradient-platinum); background-clip:text; -webkit-background-clip:text;
  color:transparent; -webkit-text-fill-color:transparent;
}

.industrial-texture{ position:relative; }
.industrial-texture::before{
  content:""; position:absolute; inset:0; background-image:var(--pattern-grid); opacity:.05; pointer-events:none;
}

.signature-orbit{
  position:absolute; width:520px; height:520px; pointer-events:none; opacity:.10; z-index:0;
}

.media-frame{
  position:relative; border-radius:var(--radius-lg); overflow:hidden; isolation:isolate;
  border:1px solid rgba(185,188,192,.35); box-shadow:var(--shadow-lg);
}
.media-frame::before{
  content:""; position:absolute; inset:-2px; z-index:-1; border-radius:inherit;
  background:var(--gradient-platinum); opacity:.55;
}
.media-frame img{ width:100%; height:100%; object-fit:cover; display:block; aspect-ratio:4/3; }
.media-frame .media-caption{
  position:absolute; inset-inline-start:var(--sp-3); bottom:var(--sp-3); z-index:1;
  display:inline-flex; align-items:center; gap:8px; background:var(--gradient-brand); color:var(--c-white);
  font-size:.78rem; font-weight:700; padding:8px 16px; border-radius:var(--radius-pill); box-shadow:var(--shadow-md);
}
.locale-badge{
  display:inline-flex; align-items:center; gap:8px; border:1px solid rgba(255,255,255,.3); border-radius:var(--radius-pill);
  padding:6px 16px; font-size:.8rem; font-weight:700; color:var(--c-white); margin-bottom:var(--sp-3);
  background:rgba(255,255,255,.06);
}
.locale-badge svg{ color:var(--c-green-500); flex-shrink:0; }

.section-head{ max-width:680px; margin-bottom:var(--sp-6); }
.section-head p{ margin:0; }

.section-cta{ margin-top:var(--sp-6); text-align:center; }

.link-arrow{
  display:inline-flex; align-items:center; gap:var(--sp-2); font-weight:700;
  color:var(--c-green-900); border-bottom:2px solid transparent; transition:border-color var(--transition);
}
.link-arrow:hover{ border-color:var(--c-green-900); }
.icon-dir{ transition:transform var(--transition); }
html[dir="rtl"] .icon-dir{ transform:scaleX(-1); }

/* Buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:var(--sp-2);
  padding:14px 28px; border-radius:var(--radius-pill); font-weight:700; font-size:.95rem;
  border:2px solid transparent; transition:transform var(--transition), box-shadow var(--transition), background var(--transition), color var(--transition);
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0) scale(.98); }
.btn-primary{ background:var(--c-green-900); color:var(--c-white); box-shadow:var(--shadow-sm); }
.btn-primary:hover{ background:var(--c-green-700); box-shadow:var(--shadow-md); }
.btn-outline-light{ border-color:rgba(255,255,255,.45); color:var(--c-white); }
.btn-outline-light:hover{ border-color:var(--c-white); background:rgba(255,255,255,.08); }
.btn-whatsapp{ background:var(--c-whatsapp); color:var(--c-white); }
.btn-whatsapp:hover{ background:#1fb955; }
.btn-sm{ padding:9px 18px; font-size:.82rem; }
.btn-large{ padding:16px 32px; font-size:1rem; }
.btn.full{ width:100%; }

/* Reveal-on-scroll */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }

/* Cards grid */
.cards-grid{ display:grid; gap:var(--sp-4); }
.cards-2{ grid-template-columns:repeat(2,1fr); }
.cards-3{ grid-template-columns:repeat(3,1fr); }
.cards-4{ grid-template-columns:repeat(4,1fr); }
.cards-5{ grid-template-columns:repeat(5,1fr); }
.cards-6{ grid-template-columns:repeat(6,1fr); }

.card{
  position:relative; overflow:hidden;
  background:var(--c-white); border:1px solid var(--c-gray-200); border-radius:var(--radius-md);
  padding:var(--sp-5); transition:transform var(--transition), box-shadow var(--transition);
}
/* Premium accent bar — animates in on hover/focus without shifting layout (CLS-safe). */
.card::before{
  content:""; position:absolute; inset-inline:0; top:0; height:3px;
  background:linear-gradient(90deg,var(--c-green-700),var(--c-green-500));
  transform:scaleX(0); transform-origin:left; transition:transform var(--transition);
}
html[dir="rtl"] .card::before{ transform-origin:right; }
.card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lg), var(--glow-green); }
.card:hover::before{ transform:scaleX(1); }
.card h3{ font-size:1.1rem; }
.card p{ font-size:.93rem; margin:0; }
.card-icon{
  display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px;
  border-radius:var(--radius-sm); background:var(--gradient-brand); color:var(--c-white); margin-bottom:var(--sp-3);
}

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  position:sticky; top:0; z-index:var(--z-header); width:100%;
  background:rgba(14,15,15,.0); backdrop-filter:blur(0px);
  transition:background var(--transition), box-shadow var(--transition), backdrop-filter var(--transition);
}
.site-header.is-transparent{ position:absolute; }
.site-header.scrolled{
  background:rgba(14,15,15,.92); backdrop-filter:blur(10px); box-shadow:var(--shadow-md);
}
.header-inner{ display:flex; align-items:center; justify-content:space-between; padding-block:var(--sp-3); gap:var(--sp-4); }

.brand{ display:flex; align-items:center; gap:var(--sp-2); }
.brand-mark{ color:var(--c-green-500); display:flex; }
.brand-text{ display:flex; flex-direction:column; line-height:1.1; }
.brand-name{ font-family:var(--font-heading); font-weight:800; font-size:1.15rem; color:var(--c-white); }
.brand-tagline{ font-size:.68rem; color:var(--c-platinum); }

.main-nav ul{ display:flex; align-items:center; gap:var(--sp-5); flex-wrap:wrap; }
.main-nav a{ font-size:.92rem; font-weight:600; color:rgba(255,255,255,.85); transition:color var(--transition); }
.main-nav a:hover, .main-nav a.active{ color:var(--c-green-500); }

.header-actions{ display:flex; align-items:center; gap:var(--sp-3); }
.lang-switch{ display:flex; border:1px solid rgba(255,255,255,.3); border-radius:var(--radius-pill); overflow:hidden; }
.lang-btn{ background:transparent; border:none; color:rgba(255,255,255,.7); padding:6px 14px; font-size:.78rem; font-weight:700; transition:background var(--transition), color var(--transition); }
.lang-btn.active{ background:var(--c-green-900); color:var(--c-white); }

.menu-toggle{ display:none; background:none; border:none; color:var(--c-white); padding:4px; }
.menu-toggle .icon-close{ display:none; }
.menu-toggle[aria-expanded="true"] .icon-menu{ display:none; }
.menu-toggle[aria-expanded="true"] .icon-close{ display:block; }

/* =========================================================
   HERO
   ========================================================= */
.hero{
  background:linear-gradient(160deg, var(--c-true-black) 0%, var(--c-charcoal) 55%, #122620 100%);
  padding-top:calc(var(--sp-8) + 64px); padding-bottom:var(--sp-8);
  position:relative; overflow:hidden;
}
.hero::after{
  content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 80% 20%, rgba(47,138,92,.20), transparent 55%);
  pointer-events:none;
}
.hero::before{
  content:""; position:absolute; inset:0; background-image:var(--pattern-grid); opacity:.06; pointer-events:none;
}
.hero .signature-orbit{ inset-inline-end:-180px; bottom:-220px; }
.hero-inner{ display:grid; grid-template-columns:1.1fr .9fr; align-items:center; gap:var(--sp-7); position:relative; z-index:1; }
.hero-title{ font-size:clamp(2rem, 4vw, 3rem); color:var(--c-white); font-weight:800; margin-bottom:var(--sp-4); }
.hero-title .accent{
  background-image:var(--gradient-brand); background-clip:text; -webkit-background-clip:text;
  color:transparent; -webkit-text-fill-color:transparent;
}
.hero-sub{ color:rgba(255,255,255,.78); font-size:1.05rem; max-width:560px; margin-bottom:var(--sp-5); }
.hero-actions{ display:flex; flex-wrap:wrap; gap:var(--sp-3); }
.hero-visual{ display:flex; justify-content:center; position:relative; z-index:1; }
.hero-illustration{ width:100%; max-width:480px; }
.hero-visual .media-frame{ max-width:480px; }
.hero-visual .media-frame::after{
  content:""; position:absolute; inset:-30px; z-index:-2; border-radius:inherit; box-shadow:var(--glow-green); opacity:.7;
}
.btn-whatsapp{ position:relative; box-shadow:var(--glow-green); }
.btn-whatsapp:hover{ box-shadow:0 0 52px rgba(47,138,92,.5); }

/* =========================================================
   STATS STRIP
   ========================================================= */
.stats-strip{ background:var(--c-green-900); padding-block:var(--sp-6); }
.stats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--sp-5); text-align:center; }
.stat-item{ display:flex; flex-direction:column; gap:var(--sp-1); }
.stat-number{ font-family:var(--font-heading); font-size:clamp(1.8rem,3vw,2.5rem); font-weight:800; color:var(--c-white); }
.stat-static{ font-size:clamp(1.2rem,2vw,1.6rem); }
.stat-label{ font-size:.85rem; color:rgba(255,255,255,.78); }

/* =========================================================
   TRUST STRIP — V2 (CMS fields: 4x icon/label trust badges)
   Replaces the animated-counter stats-strip on Home with qualitative
   trust signals only — no invented statistics, volumes, or coverage
   percentages. Additive: .stats-strip above is untouched and still
   serves other pages until they are upgraded in a later phase.
   ========================================================= */
.trust-strip{ background:var(--c-true-black); padding-block:var(--sp-6); position:relative; overflow:hidden; }
.trust-strip::before{ content:""; position:absolute; inset:0; background-image:var(--pattern-grid); opacity:.05; pointer-events:none; }
.trust-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--sp-4); position:relative; z-index:1; }
.trust-item{
  display:flex; flex-direction:column; align-items:center; gap:var(--sp-2); text-align:center;
  padding:var(--sp-4) var(--sp-3); border-radius:var(--radius-md); position:relative;
  border:1px solid rgba(185,188,192,.22); background:rgba(255,255,255,.02);
}
.trust-icon{
  display:flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:50%;
  background:var(--gradient-brand); color:var(--c-white); flex-shrink:0;
}
.trust-label{ font-size:.85rem; font-weight:600; color:rgba(255,255,255,.85); line-height:1.4; }

/* =========================================================
   SPLIT LAYOUT (WHO WE ARE)
   ========================================================= */
.split-layout{ display:grid; grid-template-columns:.85fr 1.15fr; align-items:center; gap:var(--sp-7); }
.split-visual{ display:flex; justify-content:center; }
.motif-illustration{ width:100%; max-width:320px; }
.split-visual .media-frame{ max-width:380px; }
.split-content p{ font-size:1.02rem; }

/* =========================================================
   TIMELINE
   ========================================================= */
.timeline{ display:grid; grid-template-columns:repeat(5,1fr); gap:var(--sp-4); position:relative; }
.timeline::before{
  content:""; position:absolute; top:22px; inset-inline:6%; height:2px;
  background:var(--gradient-brand); opacity:.45; z-index:0;
}
.timeline-step{ position:relative; z-index:1; background:var(--c-white); padding-inline-end:var(--sp-2); }
.step-number{
  display:flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:50%;
  background:var(--gradient-brand); color:var(--c-white); font-family:var(--font-heading); font-weight:800;
  margin-bottom:var(--sp-3); box-shadow:0 6px 18px rgba(47,138,92,.35);
}
.timeline-step h3{ font-size:1rem; }
.timeline-step p{ font-size:.88rem; }

/* =========================================================
   LEAD FORM
   ========================================================= */
.section.bg-dark{ background:linear-gradient(160deg,var(--c-black),#151715); }
.form-layout{ display:grid; grid-template-columns:.9fr 1.1fr; gap:var(--sp-7); align-items:start; }
.check-list{ display:flex; flex-direction:column; gap:var(--sp-2); margin-top:var(--sp-4); }
.check-list li{ display:flex; align-items:center; gap:var(--sp-2); color:rgba(255,255,255,.85); font-size:.92rem; }
.check-list svg{ color:var(--c-green-500); flex-shrink:0; }

.eval-form{
  background:var(--c-white); border-radius:var(--radius-lg); padding:var(--sp-6);
  display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-4); box-shadow:var(--shadow-lg);
}
.form-row{ display:flex; flex-direction:column; gap:6px; }
.form-row.full{ grid-column:1 / -1; }
.form-row label{ font-size:.85rem; font-weight:700; color:var(--c-black); }
.form-row input, .form-row select, .form-row textarea{
  border:1.5px solid var(--c-gray-200); border-radius:var(--radius-sm); padding:12px 14px; background:var(--c-white);
  transition:border-color var(--transition);
}
.form-row input:focus, .form-row select:focus, .form-row textarea:focus{ border-color:var(--c-green-700); }
.field-error{ display:none; font-size:.78rem; color:#C0392B; }
.form-row.has-error input, .form-row.has-error select{ border-color:#C0392B; }
.form-row.has-error .field-error{ display:block; }
.consent-row.has-error .field-error{ display:block; }

.upload-zone{
  border:1.5px dashed var(--c-gray-200); border-radius:var(--radius-md); padding:var(--sp-5);
  display:flex; flex-direction:column; align-items:center; gap:6px; text-align:center; color:var(--c-gray-600);
  cursor:pointer; transition:border-color var(--transition), background var(--transition);
}
.upload-zone svg{ color:var(--c-green-700); }
.upload-zone:hover, .upload-zone.dragging{ border-color:var(--c-green-700); background:var(--c-green-100); }
.upload-hint{ font-size:.78rem; color:var(--c-gray-400); margin:6px 0 0; }

.photo-preview{ display:flex; flex-wrap:wrap; gap:10px; margin-top:10px; }
.photo-thumb{ position:relative; width:64px; height:64px; border-radius:var(--radius-sm); overflow:hidden; border:1px solid var(--c-gray-200); }
.photo-thumb img{ width:100%; height:100%; object-fit:cover; }
.photo-thumb button{
  position:absolute; top:2px; inset-inline-end:2px; width:18px; height:18px; border-radius:50%;
  background:rgba(14,15,15,.75); color:var(--c-white); border:none; font-size:.7rem; line-height:1;
}

.checkbox-label{ display:flex; align-items:flex-start; gap:10px; font-size:.85rem; color:var(--c-gray-600); }
.checkbox-label input{ margin-top:3px; }

.form-success{
  grid-column:1 / -1; background:var(--c-green-100); color:var(--c-green-900); border-radius:var(--radius-sm);
  padding:var(--sp-3); font-weight:600; text-align:center;
}

/* =========================================================
   METAL CARDS — V2 (heaviest single component upgrade)
   Dark-glass card with a metallic platinum-gradient border instead
   of the plain white/centered text treatment. Shared rule — also
   upgrades existing .metal-card instances on other pages.
   ========================================================= */
.metal-card{
  text-align:center; background:linear-gradient(160deg, var(--c-charcoal-soft) 0%, var(--c-true-black) 100%);
  position:relative; overflow:hidden; border:1px solid transparent; background-clip:padding-box;
}
.metal-card::after{
  content:""; position:absolute; inset:0; border-radius:inherit; padding:1.5px; z-index:0;
  background:var(--gradient-platinum);
  -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none;
}
.metal-card h3{ color:var(--c-white); position:relative; z-index:1; }
.metal-card p{ color:rgba(255,255,255,.68); position:relative; z-index:1; }
.metal-badge{
  width:90px; height:90px; margin:0 auto var(--sp-3); border-radius:var(--radius-md);
  background:linear-gradient(160deg,var(--c-charcoal),var(--c-black)); color:var(--c-white);
  display:flex; flex-direction:column; align-items:center; justify-content:center; position:relative; z-index:1;
  border:1px solid rgba(185,188,192,.35);
}
.metal-number{ position:absolute; top:6px; inset-inline-start:8px; font-size:.65rem; color:var(--c-platinum); }
.metal-symbol{
  font-family:var(--font-heading); font-size:1.7rem; font-weight:800;
  background-image:var(--gradient-brand); background-clip:text; -webkit-background-clip:text;
  color:transparent; -webkit-text-fill-color:transparent;
}

/* =========================================================
   SERVICES SNIPPET
   ========================================================= */
.service-item{
  display:flex; align-items:center; gap:var(--sp-3); background:var(--c-white); border:1px solid var(--c-gray-200);
  border-radius:var(--radius-md); padding:var(--sp-4); font-weight:600; font-size:.92rem;
  transition:transform var(--transition), box-shadow var(--transition);
}
.service-item svg{ color:var(--c-green-700); flex-shrink:0; }
.service-item:hover{ transform:translateY(-3px); box-shadow:var(--shadow-sm); }

/* =========================================================
   AREAS WE SERVE
   ========================================================= */
.areas-layout{ display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-6); align-items:center; }
.area-chips{ display:flex; flex-wrap:wrap; gap:var(--sp-3); }
.area-chips li{
  display:flex; align-items:center; gap:8px; background:var(--c-gray-100); border-radius:var(--radius-pill);
  padding:10px 18px; font-weight:600; font-size:.88rem; color:var(--c-black);
}
.area-chips li svg{ color:var(--c-green-700); }
.area-chips .chip-all{ background:var(--c-green-900); color:var(--c-white); }
.area-chips .chip-all svg{ color:var(--c-green-500); }

/* =========================================================
   COMPONENT: WHO WE BUY FROM (Home — Phase 2)
   Audience cards reuse .card / .card-icon / .cards-grid.cards-4
   as-is (no new card styling needed). This block only adds the
   closing coverage strip beneath the cards, which folds in the
   geographic chip list (.area-chips, defined below) in a
   centered, divider-topped layout instead of a standalone section.
   ========================================================= */
.who-buy-coverage{ margin-top:var(--sp-6); padding-top:var(--sp-5); border-top:1px solid var(--c-gray-200); text-align:center; }
.who-buy-coverage p{ margin:0 0 var(--sp-3); font-weight:600; color:var(--c-gray-600); }
.who-buy-coverage .area-chips{ justify-content:center; }

/* =========================================================
   COMPONENT: CONVERTER SHOWCASE (Home — Phase 2.5)
   Infinite, auto-scrolling, left-to-right horizontal strip.
   Implementation notes:
   - .showcase-track holds 16 cards (8 real + 8 aria-hidden
     duplicates) in a single flex row. Animating it from
     translateX(0) to translateX(-50%) moves exactly one full
     "real" set off-screen, so the duplicate set lands in the
     exact start position — the loop has no visible seam.
   - translateX is a LITERAL (non-logical) transform on purpose:
     the requirement is physical left-to-right motion regardless
     of dir="rtl"|"ltr", not reading-direction-relative motion.
     style.css has no global flex-direction:row-reverse rule for
     [dir="rtl"], so this is safe from unwanted mirroring.
   - :hover and .is-dragging both pause the CSS animation; drag/
     touch panning is handled in script.js (initConverterShowcase),
     which also pauses on pointerdown/touchstart for accessibility.
   - prefers-reduced-motion disables the auto-scroll entirely and
     falls back to a manually-scrollable strip (overflow-x:auto).
   ========================================================= */
.showcase-section{ padding-bottom:var(--sp-7); }
.showcase-viewport{
  width:100%; overflow:hidden; margin-top:var(--sp-6);
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);
  mask-image:linear-gradient(90deg, transparent 0, #000 5%, #000 95%, transparent 100%);
}
.showcase-track{
  display:flex; gap:var(--sp-4); width:max-content;
  animation:showcase-scroll 38s linear infinite;
  cursor:grab; will-change:transform; touch-action:pan-y;
}
.showcase-track.is-dragging{ animation-play-state:paused; cursor:grabbing; scroll-behavior:auto; }
.showcase-viewport:hover .showcase-track{ animation-play-state:paused; }
@keyframes showcase-scroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}
.showcase-card{
  position:relative; flex:0 0 auto; width:260px; user-select:none;
}
.showcase-card .media-frame{ margin:0; aspect-ratio:1/1; }
.showcase-card .media-frame img{ pointer-events:none; }
.showcase-badge{
  position:absolute; inset-inline-start:var(--sp-3); bottom:var(--sp-3); z-index:2;
  background:var(--c-white); color:var(--c-green-900); font-weight:700; font-size:.82rem;
  padding:7px 14px; border-radius:var(--radius-pill); box-shadow:var(--shadow-md);
  letter-spacing:.01em;
}
@media (max-width: 600px){
  .showcase-card{ width:180px; }
}
@media (prefers-reduced-motion: reduce){
  .showcase-track{ animation:none; overflow-x:auto; scroll-snap-type:x proximity; }
  .showcase-card{ scroll-snap-align:start; }
}
.gallery-note{ max-width:760px; margin:var(--sp-6) auto 0; text-align:center; color:var(--c-gray-600); font-size:.95rem; }
.gallery-cta{ display:flex; justify-content:center; gap:var(--sp-3); flex-wrap:wrap; margin-top:var(--sp-5); }

/* =========================================================
   COMPONENT: KNOW YOUR VALUE (Home — Phase 2.5)
   Reuses .cta-band as-is for the dark gradient / grid-pattern /
   orbit-motif treatment already established by the page's final
   CTA band, so the two dark sections feel like one consistent
   visual language rather than two competing styles. Only adds a
   small top-margin tweak so the eyebrow sits closer to the
   heading when a section starts with one (.cta-band normally
   opens straight on the heading).
   ========================================================= */
.know-value-band .eyebrow-light{ display:inline-block; margin-bottom:var(--sp-3); }

/* =========================================================
   ACCORDION (FAQ)
   ========================================================= */
.accordion-item{ border-bottom:1px solid var(--c-gray-200); }
.accordion-trigger{
  width:100%; display:flex; align-items:center; justify-content:space-between; background:none; border:none;
  padding:var(--sp-4) 0; font-size:1rem; font-weight:700; text-align:start; color:var(--c-black);
}
.accordion-trigger .chev{ transition:transform var(--transition); flex-shrink:0; color:var(--c-green-700); }
.accordion-trigger[aria-expanded="true"] .chev{ transform:rotate(180deg); }
.accordion-panel{ max-height:0; overflow:hidden; transition:max-height var(--transition); }
.accordion-panel p{ padding-bottom:var(--sp-4); margin:0; }

/* =========================================================
   CTA BAND
   ========================================================= */
.cta-band{
  background:linear-gradient(160deg, var(--c-true-black) 0%, #0F2A1F 100%);
  padding-block:var(--sp-7); position:relative; overflow:hidden;
}
.cta-band::before{ content:""; position:absolute; inset:0; background-image:var(--pattern-grid); opacity:.06; pointer-events:none; }
.cta-band::after{
  content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 20% 30%, rgba(47,138,92,.22), transparent 55%);
  pointer-events:none;
}
.cta-band .signature-orbit{ inset-inline-start:-160px; top:-200px; }
.cta-band-inner{ text-align:center; max-width:680px; margin-inline:auto; position:relative; z-index:1; }
.cta-band-inner h2{ color:var(--c-white); }
.cta-band-inner p{ color:rgba(255,255,255,.82); }
.cta-band-actions{ display:flex; justify-content:center; gap:var(--sp-3); flex-wrap:wrap; margin-top:var(--sp-4); }

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{ background:var(--c-black); color:rgba(255,255,255,.72); padding-top:var(--sp-7); }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:var(--sp-6); padding-bottom:var(--sp-6); }
.footer-col h4{ color:var(--c-white); font-size:.95rem; margin-bottom:var(--sp-3); }
.footer-col ul{ display:flex; flex-direction:column; gap:10px; }
.footer-col a{ color:rgba(255,255,255,.7); font-size:.88rem; transition:color var(--transition); }
.footer-col a:hover{ color:var(--c-green-500); }
.footer-brand .brand-name{ color:var(--c-white); }
.footer-brand p{ color:rgba(255,255,255,.6); font-size:.88rem; margin-top:var(--sp-3); }
.footer-contact li{ display:flex; align-items:center; gap:10px; font-size:.88rem; }
.footer-contact svg{ color:var(--c-green-500); flex-shrink:0; }
.social-row{ display:flex; gap:10px; }
.social-circle{
  width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.08); display:flex;
  align-items:center; justify-content:center; font-weight:700; font-size:.82rem; color:var(--c-white);
  transition:background var(--transition), color var(--transition);
}
.social-circle svg{ width:18px; height:18px; flex-shrink:0; }
.social-circle:hover{ background:var(--c-green-500); color:var(--c-black); }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.1); padding-block:var(--sp-3); }
.footer-bottom-inner{ display:flex; align-items:center; justify-content:space-between; font-size:.8rem; }
.back-to-top{ background:rgba(255,255,255,.08); border:none; color:var(--c-white); width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; transition:background var(--transition); }
.back-to-top:hover{ background:var(--c-green-900); }

/* =========================================================
   FLOATING WHATSAPP + MOBILE STICKY BAR
   ========================================================= */
.whatsapp-float{
  position:fixed; bottom:24px; inset-inline-end:24px; z-index:var(--z-whatsapp); width:58px; height:58px; border-radius:50%;
  background:var(--c-whatsapp); color:var(--c-white); display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-lg); animation:pulse 2.4s infinite;
}
@keyframes pulse{
  0%{ box-shadow:0 0 0 0 rgba(37,211,102,.55); }
  70%{ box-shadow:0 0 0 14px rgba(37,211,102,0); }
  100%{ box-shadow:0 0 0 0 rgba(37,211,102,0); }
}

.mobile-cta-bar{ display:none; }

/* =========================================================
   COMPONENT: PAGE HEADER (interior pages — About/Services/etc.)
   Shared single-column banner for every non-Home page. Reuses the
   Home hero's dark industrial gradient for visual consistency
   without duplicating the two-column hero layout (which needs the
   hero illustration to balance it). Added once here; every future
   interior page (Services, How We Buy, Export, Blog, FAQ, Contact)
   reuses this same block — no further CSS changes required.
   ========================================================= */
.page-header{
  background:linear-gradient(160deg, var(--c-true-black) 0%, var(--c-charcoal) 55%, #122620 100%);
  padding-top:calc(var(--sp-8) + 64px); padding-bottom:var(--sp-7);
  position:relative; overflow:hidden; text-align:center;
}
.page-header::after{
  content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 80% 20%, rgba(47,138,92,.20), transparent 55%);
  pointer-events:none;
}
.page-header::before{
  content:""; position:absolute; inset:0; background-image:var(--pattern-grid); opacity:.06; pointer-events:none;
}
.page-header-inner{ position:relative; z-index:1; max-width:760px; margin-inline:auto; }
.page-header .eyebrow{ color:var(--c-green-500); }
.page-header h1{ color:var(--c-white); font-size:var(--fs-h1); margin-bottom:var(--sp-3); }
.page-header p{ color:rgba(255,255,255,.78); font-size:1.05rem; margin:0 auto; max-width:640px; }

.breadcrumb{ display:flex; align-items:center; justify-content:center; gap:8px; margin-bottom:var(--sp-4); font-size:.85rem; color:rgba(255,255,255,.6); }
.breadcrumb a{ color:rgba(255,255,255,.6); transition:color var(--transition); }
.breadcrumb a:hover{ color:var(--c-green-500); }
.breadcrumb .sep{ color:rgba(255,255,255,.35); }
.breadcrumb .current{ color:var(--c-green-500); font-weight:600; }

/* =========================================================
   COMPONENT: FAQ SEARCH & FILTER (FAQ page only)
   Additive component — does not alter any existing rule.
   Search box mirrors the .form-row input visual language
   (border, radius, focus color) at pill radius; filter pills
   reuse brand tokens tuned for light section backgrounds.
   ========================================================= */
.faq-toolbar{ display:flex; flex-direction:column; gap:var(--sp-4); margin-bottom:var(--sp-7); }
.faq-search{ position:relative; max-width:560px; width:100%; }
.faq-search svg{ position:absolute; inset-inline-start:18px; top:50%; transform:translateY(-50%); color:var(--c-gray-400); pointer-events:none; }
.faq-search input{
  width:100%; border:1.5px solid var(--c-gray-200); border-radius:var(--radius-pill); background:var(--c-white);
  padding:14px 18px; padding-inline-start:46px; font-size:.95rem; transition:border-color var(--transition);
}
.faq-search input:focus{ border-color:var(--c-green-700); }
.filter-pills{ display:flex; flex-wrap:wrap; gap:var(--sp-2); }
.filter-pill{
  border:1.5px solid var(--c-gray-200); background:var(--c-white); color:var(--c-gray-600);
  border-radius:var(--radius-pill); padding:8px 18px; font-size:.85rem; font-weight:700;
  transition:background var(--transition), color var(--transition), border-color var(--transition);
}
.filter-pill:hover{ border-color:var(--c-green-700); color:var(--c-green-900); }
.filter-pill.active{ background:var(--c-green-900); border-color:var(--c-green-900); color:var(--c-white); }

.faq-category-group{ margin-bottom:var(--sp-7); }
.faq-category-group:last-child{ margin-bottom:0; }
.faq-category-title{ display:flex; align-items:center; gap:var(--sp-2); font-size:1.15rem; margin-bottom:var(--sp-3); color:var(--c-green-900); }
.faq-category-title .cat-icon{ color:var(--c-green-700); flex-shrink:0; }

.faq-no-results{ display:none; text-align:center; color:var(--c-gray-400); padding:var(--sp-6) 0; font-size:.95rem; }
.faq-no-results.is-visible{ display:block; }

/* =========================================================
   COMPONENT: BLOG ARTICLE CARDS, PAGINATION & NEWSLETTER (Blog page)
   Additive component — builds on .card / .split-layout / .filter-pill /
   .faq-no-results; only adds what those don't already cover (cover
   placeholder, category badge, meta row, excerpt clamp, pagination
   wrapper, newsletter panel). No existing rule above is modified.
   ========================================================= */
.article-cover{
  width:100%; aspect-ratio:4/3; border-radius:var(--radius-md); margin-bottom:var(--sp-4);
  background:linear-gradient(160deg,var(--c-green-900),var(--c-green-700));
  display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden;
}
.article-cover::after{
  content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 75% 20%, rgba(255,255,255,.14), transparent 55%);
  pointer-events:none;
}
.article-cover svg{ position:relative; z-index:1; color:rgba(255,255,255,.92); }
.featured-cover{ aspect-ratio:1/1; max-width:380px; margin-inline:auto; }

.article-badge{
  display:inline-flex; align-items:center; gap:6px; background:var(--c-green-100); color:var(--c-green-900);
  border-radius:var(--radius-pill); padding:4px 14px; font-size:.74rem; font-weight:700; margin-bottom:var(--sp-2);
}

.article-meta{ display:flex; align-items:center; gap:8px; font-size:.8rem; color:var(--c-gray-400); margin-bottom:var(--sp-2); }
.article-meta svg{ color:var(--c-gray-400); flex-shrink:0; }
.article-meta .meta-dot{ width:4px; height:4px; border-radius:50%; background:var(--c-gray-400); flex-shrink:0; }

.article-excerpt{
  font-size:.92rem; color:var(--c-gray-600); margin:0 0 var(--sp-3);
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}

.article-card{ display:flex; flex-direction:column; }
.article-card .link-arrow{ margin-top:auto; }

.pagination{ display:flex; align-items:center; justify-content:center; gap:var(--sp-2); margin-top:var(--sp-7); flex-wrap:wrap; }
.filter-pill[disabled]{ opacity:.4; cursor:not-allowed; pointer-events:none; }

.newsletter-box{
  background:linear-gradient(160deg, var(--c-charcoal) 0%, var(--c-black) 100%);
  border-radius:var(--radius-lg); padding:var(--sp-6); position:relative; overflow:hidden;
  display:grid; grid-template-columns:1.1fr .9fr; gap:var(--sp-6); align-items:center;
}
.newsletter-box::after{
  content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 80% 20%, rgba(47,138,92,.22), transparent 55%);
  pointer-events:none;
}
.newsletter-box .section-head{ position:relative; z-index:1; margin-bottom:0; max-width:none; }
.newsletter-form{ position:relative; z-index:1; display:flex; gap:10px; flex-wrap:wrap; }
.newsletter-form input{
  flex:1; min-width:180px; border:1.5px solid rgba(255,255,255,.25); background:rgba(255,255,255,.08);
  border-radius:var(--radius-pill); padding:14px 18px; color:var(--c-white); transition:border-color var(--transition);
}
.newsletter-form input::placeholder{ color:rgba(255,255,255,.5); }
.newsletter-form input:focus{ border-color:var(--c-green-500); }
.newsletter-note{ position:relative; z-index:1; grid-column:1 / -1; font-size:.78rem; color:rgba(255,255,255,.55); margin:10px 0 0; }

/* =========================================================
   COMPONENT: CONTACT PAGE EXTRAS (Contact page)
   Additive component — builds on .form-row / .eval-form /
   .card / .article-cover; only adds what those don't already
   cover (multi-line textarea field, map placeholder panel).
   No existing rule above is modified.
   ========================================================= */
.form-row textarea{ resize:vertical; min-height:130px; font-family:inherit; }
.form-narrow{ max-width:760px; margin-inline:auto; }

.map-placeholder{
  width:100%; aspect-ratio:16/9; border-radius:var(--radius-lg); position:relative; overflow:hidden;
  background:linear-gradient(160deg, var(--c-charcoal) 0%, var(--c-black) 100%);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--sp-2);
  text-align:center; border:1px solid rgba(185,188,192,.25);
}
.map-placeholder::after{
  content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 75% 25%, rgba(47,138,92,.22), transparent 55%);
  pointer-events:none;
}
.map-placeholder svg{ position:relative; z-index:1; color:var(--c-green-500); }
.map-placeholder span{ position:relative; z-index:1; font-size:.85rem; color:rgba(255,255,255,.6); }

/* =========================================================
   SCROLL MARGIN (anchor offsets)
   ========================================================= */
#why-sell,#about,#why-us,#how-we-buy,#evaluate,#who-buy-from,#gallery,#services,#faq{ scroll-margin-top:84px; }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1024px){
  .cards-4{ grid-template-columns:repeat(2,1fr); }
  .cards-5{ grid-template-columns:repeat(3,1fr); }
  .cards-6{ grid-template-columns:repeat(3,1fr); }
  .timeline{ grid-template-columns:repeat(3,1fr); }
  .timeline::before{ display:none; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
}

@media (max-width:900px){
  .main-nav{
    position:absolute; top:100%; inset-inline:0; background:rgba(14,15,15,.97); backdrop-filter:blur(10px);
    max-height:0; overflow:hidden; transition:max-height var(--transition);
  }
  .main-nav.is-open{ max-height:70vh; overflow-y:auto; }
  .main-nav ul{ flex-direction:column; align-items:flex-start; gap:0; padding:var(--sp-3) var(--sp-4); }
  .main-nav a{ display:block; padding:var(--sp-3) 0; width:100%; border-bottom:1px solid rgba(255,255,255,.08); }
  .menu-toggle{ display:block; }
  .header-cta{ display:none; }

  .hero-inner{ grid-template-columns:1fr; text-align:center; }
  .hero-actions{ justify-content:center; }
  .hero-visual{ order:-1; max-width:340px; margin-inline:auto; }

  .split-layout{ grid-template-columns:1fr; text-align:center; }
  .split-visual{ order:-1; }

  .form-layout{ grid-template-columns:1fr; }
  .eval-form{ grid-template-columns:1fr; }

  .areas-layout{ grid-template-columns:1fr; text-align:center; }
  .area-chips{ justify-content:center; }

  .cards-5,.cards-6,.cards-3{ grid-template-columns:repeat(2,1fr); }
  .timeline{ grid-template-columns:1fr; }

  .footer-grid{ grid-template-columns:1fr; text-align:center; }
  .footer-contact li,.social-row,.footer-bottom-inner{ justify-content:center; }
  .footer-col ul{ align-items:center; }

  .mobile-cta-bar{
    display:flex; position:fixed; bottom:0; inset-inline:0; z-index:var(--z-mobile-cta); background:var(--c-white);
    box-shadow:0 -6px 20px rgba(14,15,15,.12); padding:10px var(--sp-3); gap:10px;
  }
  .mobile-cta-btn{
    flex:1; display:flex; align-items:center; justify-content:center; gap:8px; padding:12px; border-radius:var(--radius-pill);
    background:var(--c-gray-100); color:var(--c-black); font-weight:700; font-size:.88rem;
  }
  .mobile-cta-btn.primary{ background:var(--c-green-900); color:var(--c-white); }
  .mobile-cta-btn.whatsapp{ background:var(--c-whatsapp); color:var(--c-white); }
  body{ padding-bottom:64px; }
  .whatsapp-float{ bottom:80px; }
}

@media (max-width:600px){
  .stats-grid{ grid-template-columns:repeat(2,1fr); }
  .trust-grid{ grid-template-columns:repeat(2,1fr); }
  .cards-5,.cards-6,.cards-3,.cards-4,.cards-2{ grid-template-columns:1fr; }
  .hero-actions{ flex-direction:column; align-items:stretch; }
  .hero-actions .btn{ width:100%; }
  .signature-orbit{ display:none; }
}

/* =========================================================
   RESPONSIVE — BLOG NEWSLETTER (additive, pairs with the
   BLOG ARTICLE CARDS, PAGINATION & NEWSLETTER component above)
   ========================================================= */
@media (max-width:900px){
  .newsletter-box{ grid-template-columns:1fr; text-align:center; }
  .newsletter-form{ justify-content:center; }
}
@media (max-width:600px){
  .featured-cover{ max-width:260px; }
}
