/* ==========================================================================
   NEXORA REAL ESTATE — nexora-ea.com
   Static site stylesheet. Brand: deep green / lime / bone.
   ========================================================================== */

:root{
  --green:#223C3F;
  --green-800:#1B3033;
  --green-600:#2E5155;
  --lime:#D9E286;
  --lime-dim:#C3CE6B;
  --bone:#F2F0EB;
  --bone-2:#E7E4DC;
  --ink:#1A2A2C;
  --muted:#5E7274;
  --muted-on-green:#A9BEBF;
  --line:rgba(34,60,63,.16);
  --line-on-green:rgba(217,226,134,.22);

  --font-en:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
  --font-ar:'Noto Kufi Arabic','Poppins',Tahoma,sans-serif;

  --wrap:1160px;
  --pad:clamp(20px,5vw,56px);
  --sp:clamp(64px,9vw,128px);
  --radius:2px;
}

*,*::before,*::after{box-sizing:border-box;}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}

body{
  margin:0;
  background:var(--bone);
  color:var(--ink);
  font-family:var(--font-en);
  font-size:16px;
  line-height:1.65;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}

html[lang="ar"] body{font-family:var(--font-ar);line-height:1.9;}
html[dir="rtl"] body{letter-spacing:0;}

img{max-width:100%;display:block;}
a{color:inherit;}

h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.15;letter-spacing:-.02em;}
html[lang="ar"] h1,html[lang="ar"] h2,html[lang="ar"] h3,html[lang="ar"] h4{letter-spacing:0;line-height:1.4;font-weight:700;}
p{margin:0 0 1.1em;}
p:last-child{margin-bottom:0;}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad);}

/* Skip link ------------------------------------------------------------- */
.skip{
  position:absolute;top:0;inset-inline-start:0;z-index:200;
  transform:translateY(-200%);
  background:var(--lime);color:var(--green);padding:12px 20px;font-weight:600;
}
.skip:focus{transform:translateY(0);}

/* Type helpers ---------------------------------------------------------- */
.eyebrow{
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  font-weight:600;color:var(--muted);margin:0 0 20px;
}
html[lang="ar"] .eyebrow{letter-spacing:0;font-size:13px;}
.on-green .eyebrow{color:var(--lime);}

.h-xl{font-size:clamp(34px,6.2vw,68px);}
.h-xl,.h-lg,.h-md,.hero-sub,.page-head h1{text-wrap:balance;}
/* .fit-line is set by main.js: keep a title on one line when it fits, otherwise wrap */
.fit-line{white-space:nowrap;}
.h-lg{font-size:clamp(28px,4.4vw,46px);}
.h-md{font-size:clamp(22px,2.6vw,30px);}
.h-sm{font-size:clamp(18px,2vw,21px);}

.lead{font-size:clamp(17px,2vw,21px);line-height:1.6;color:var(--muted);max-width:62ch;}
html[lang="ar"] .lead{line-height:1.95;}
.on-green .lead{color:var(--muted-on-green);}

.tagline-ar{font-family:var(--font-ar);}

/* Buttons --------------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:15px 30px;border:1px solid transparent;border-radius:var(--radius);
  font:inherit;font-size:14px;font-weight:600;letter-spacing:.04em;
  text-decoration:none;cursor:pointer;transition:.2s ease;
  text-transform:uppercase;
}
html[lang="ar"] .btn{text-transform:none;letter-spacing:0;font-size:15px;}
.btn-primary{background:var(--lime);color:var(--green);}
.btn-primary:hover{background:var(--lime-dim);}
.btn-ghost{border-color:currentColor;color:var(--green);}
.btn-ghost:hover{background:var(--green);color:var(--lime);border-color:var(--green);}
.on-green .btn-ghost,.hero .btn-ghost,.page-head .btn-ghost{color:var(--lime);border-color:var(--line-on-green);}
.on-green .btn-ghost:hover,.hero .btn-ghost:hover,.page-head .btn-ghost:hover{background:var(--lime);color:var(--green);border-color:var(--lime);}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px;}

/* Header ---------------------------------------------------------------- */
.site-header{
  position:sticky;top:0;z-index:100;
  background:var(--green);color:var(--bone);
  border-bottom:1px solid var(--line-on-green);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px;}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0;}
.brand img{height:34px;width:auto;}

.nav{display:flex;align-items:center;gap:30px;}
.nav a{
  text-decoration:none;font-size:13.5px;font-weight:500;letter-spacing:.05em;
  color:var(--bone);opacity:.85;text-transform:uppercase;transition:.18s;
  padding:6px 0;border-bottom:1px solid transparent;
}
html[lang="ar"] .nav a{text-transform:none;letter-spacing:0;font-size:15px;}
.nav a:hover{opacity:1;}
.nav a[aria-current="page"]{opacity:1;border-bottom-color:var(--lime);color:var(--lime);}

.header-tools{display:flex;align-items:center;gap:14px;}

.lang-toggle{
  background:transparent;border:1px solid var(--line-on-green);color:var(--lime);
  font:inherit;font-size:12.5px;font-weight:600;letter-spacing:.08em;
  padding:8px 14px;border-radius:var(--radius);cursor:pointer;transition:.18s;
}
.lang-toggle:hover{background:var(--lime);color:var(--green);border-color:var(--lime);}

.nav-toggle{
  display:none;background:transparent;border:1px solid var(--line-on-green);
  color:var(--lime);width:42px;height:42px;border-radius:var(--radius);cursor:pointer;
  align-items:center;justify-content:center;
}
.nav-toggle span{display:block;width:18px;height:1.5px;background:currentColor;position:relative;}
.nav-toggle span::before,.nav-toggle span::after{
  content:"";position:absolute;left:0;width:18px;height:1.5px;background:currentColor;
}
.nav-toggle span::before{top:-6px;}
.nav-toggle span::after{top:6px;}

@media (max-width:900px){
  .nav-toggle{display:inline-flex;}
  .nav{
    position:absolute;inset-inline:0;top:100%;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--green-800);border-bottom:1px solid var(--line-on-green);
    padding:8px var(--pad) 22px;
  }
  .nav[hidden]{display:none;}
  .nav a{padding:14px 0;border-bottom:1px solid var(--line-on-green);}
}
@media (min-width:901px){ .nav[hidden]{display:flex;} }
@media (min-width:901px) and (max-width:1100px){ .nav{gap:20px;} .nav a{font-size:12.5px;letter-spacing:.03em;} }

/* Sections -------------------------------------------------------------- */
section{padding-block:var(--sp);}
.on-green{background:var(--green);color:var(--bone);}
.on-green h1,.on-green h2,.on-green h3{color:var(--bone);}
.on-bone-2{background:var(--bone-2);}

.section-head{max-width:none;margin-bottom:clamp(40px,5vw,64px);}
.section-head .lead{max-width:62ch;}

/* Hero ------------------------------------------------------------------ */
.hero{
  background:var(--green);color:var(--bone);
  padding-block:clamp(80px,13vw,150px);
  position:relative;overflow:hidden;
}
.hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:clamp(70px,10vw,120px);
  background:url("../img/pattern.png") center bottom/auto 100% repeat-x;
  opacity:.10;pointer-events:none;
}

.hero .wrap{position:relative;z-index:1;}
.hero h1{color:var(--lime);max-width:none;}
.hero .hero-sub{font-size:clamp(18px,2.4vw,26px);font-weight:500;margin:26px 0 18px;max-width:none;color:var(--bone);}
.hero .lead{color:var(--muted-on-green);}


/* Grids ----------------------------------------------------------------- */
.grid{display:grid;gap:clamp(28px,3.4vw,44px);}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
@media (max-width:860px){.grid-2,.grid-3{grid-template-columns:minmax(0,1fr);}}

.col h3{margin-bottom:12px;}
.col p{color:var(--muted);}
.on-green .col p{color:var(--muted-on-green);}

.rule-top{border-top:1px solid var(--line);padding-top:22px;}
.on-green .rule-top{border-top-color:var(--line-on-green);}

/* Numbered steps -------------------------------------------------------- */
.step{border-top:1px solid var(--line);padding-top:22px;}
.step .num{
  font-size:12px;font-weight:700;letter-spacing:.18em;color:var(--lime-dim);
  display:block;margin-bottom:14px;
}
.on-green .step{border-top-color:var(--line-on-green);}
.on-green .step .num{color:var(--lime);}

/* Cards ----------------------------------------------------------------- */
.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(26px,3vw,36px);
}
.on-green .card{background:var(--green-600);border-color:var(--line-on-green);}
.card h3{margin-bottom:12px;}
.card p{color:var(--muted);}
.card .more{
  display:inline-block;margin-top:16px;font-size:13px;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;text-decoration:none;
  color:var(--green);border-bottom:1px solid var(--lime-dim);padding-bottom:3px;
}
html[lang="ar"] .card .more{text-transform:none;letter-spacing:0;font-size:14.5px;}
.card .more:hover{border-bottom-color:var(--green);}

/* Refusal / callout ----------------------------------------------------- */
.callout{
    padding:4px 0 4px 26px;
  max-width:70ch;
}
html[dir="rtl"] .callout{padding:4px 26px 4px 0;}

/* Contact / form -------------------------------------------------------- */
.contact-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(40px,6vw,84px);align-items:start;}
@media (max-width:900px){.contact-grid{grid-template-columns:minmax(0,1fr);}}

.field{margin-bottom:22px;}
.field label{
  display:block;font-size:12px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);margin-bottom:9px;
}
html[lang="ar"] .field label{text-transform:none;letter-spacing:0;font-size:14px;}
.field input,.field textarea,.field select{
  width:100%;font:inherit;font-size:16px;color:var(--ink);
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:14px 16px;transition:.18s;
}
.field textarea{min-height:140px;resize:vertical;}
.field input:focus,.field textarea:focus,.field select:focus{
  outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(217,226,134,.5);
}
.radio-row{display:flex;gap:26px;flex-wrap:wrap;}
.radio-row label{
  display:flex;align-items:center;gap:9px;text-transform:none;letter-spacing:0;
  font-size:15px;font-weight:400;color:var(--ink);margin:0;
}
.radio-row input{width:auto;}

.form-note{font-size:14px;color:var(--muted);margin-top:16px;max-width:52ch;}

.form-status{
  margin-top:20px;padding:16px 18px;border-radius:var(--radius);font-size:15px;
  border:1px solid var(--line);background:#fff;
}
.form-status[hidden]{display:none;}
.form-status.is-ok{border-color:var(--lime-dim);background:#F7F9E9;}
.form-status.is-err{border-color:#C4675A;background:#FBEFED;}

.honey{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}

/* Details list ---------------------------------------------------------- */
.details dl{margin:0;}
.details .row{
  display:grid;grid-template-columns:auto 1fr;gap:10px 22px;
  padding:16px 0;border-top:1px solid var(--line);
}
.details dt{
  font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;
  font-weight:600;color:var(--muted);margin:0;padding-top:3px;
}
html[lang="ar"] .details dt{text-transform:none;letter-spacing:0;font-size:14px;}
.details dd{margin:0;font-size:16px;}
.details dd a{text-decoration:none;border-bottom:1px solid var(--lime-dim);}
@media (max-width:520px){.details .row{grid-template-columns:1fr;}}

/* Legal pages ----------------------------------------------------------- */
.legal{max-width:80ch;}
.legal h2{margin:48px 0 14px;font-size:clamp(20px,2.4vw,26px);}
.legal h3{margin:30px 0 10px;font-size:18px;}
.legal ul{margin:0 0 1.1em;padding-inline-start:22px;}
.legal li{margin-bottom:8px;}
.legal .updated{font-size:13px;color:var(--muted);letter-spacing:.04em;}
.legal a{color:var(--green);}

.page-head{
  background:var(--green);color:var(--bone);
  padding-block:clamp(56px,8vw,96px);
}
.page-head h1{color:var(--lime);max-width:none;}
.page-head .lead{color:var(--muted-on-green);margin-top:20px;}

/* Footer ---------------------------------------------------------------- */
.site-footer{background:var(--green-800);color:var(--bone);padding-block:clamp(56px,7vw,84px) 30px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;}
@media (max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr;}}
.site-footer img.f-logo{height:44px;width:auto;margin-bottom:20px;}
.site-footer h4{
  font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--lime);margin-bottom:16px;font-weight:600;
}
html[lang="ar"] .site-footer h4{text-transform:none;letter-spacing:0;font-size:14px;}
.site-footer ul{list-style:none;margin:0;padding:0;}
.site-footer li{margin-bottom:10px;}
.site-footer a{color:var(--bone);opacity:.8;text-decoration:none;font-size:14.5px;}
.site-footer a:hover{opacity:1;color:var(--lime);}
.site-footer p{color:var(--muted-on-green);font-size:14.5px;}

.socials{display:flex;gap:12px;margin-top:18px;}
.socials a{
  width:40px;height:40px;border:1px solid var(--line-on-green);border-radius:var(--radius);
  display:inline-flex;align-items:center;justify-content:center;opacity:1;
}
.socials a:hover{background:var(--lime);border-color:var(--lime);}
.socials a:hover svg{fill:var(--green);}
.socials svg{width:17px;height:17px;fill:var(--lime);}

.footer-bottom{
  margin-top:52px;padding-top:24px;border-top:1px solid var(--line-on-green);
  display:flex;flex-wrap:wrap;gap:14px 28px;justify-content:space-between;align-items:center;
}
.footer-bottom p{font-size:13px;margin:0;}
.footer-legal{display:flex;flex-wrap:wrap;gap:20px;}
.footer-legal a{font-size:13px;}

/* WhatsApp float -------------------------------------------------------- */
.wa-float{
  position:fixed;inset-block-end:24px;inset-inline-end:24px;z-index:90;
  width:56px;height:56px;border-radius:50%;background:var(--green);
  display:inline-flex;align-items:center;justify-content:center;
  box-shadow:0 6px 22px rgba(34,60,63,.3);transition:.2s;
}
.wa-float:hover{background:var(--lime);}
.wa-float svg{width:26px;height:26px;fill:var(--lime);}
.wa-float:hover svg{fill:var(--green);}

/* Utility --------------------------------------------------------------- */
.hide{display:none !important;}
:focus-visible{outline:2px solid var(--lime);outline-offset:3px;}

@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important;scroll-behavior:auto !important;}
}

/* ==========================================================================
   IMAGERY  (added after photography was supplied)
   ========================================================================== */

/* Hero: arch photograph under a deep-green wash so type stays legible ----- */
.hero{
  background-color:var(--green);
  background-image:
    linear-gradient(180deg, rgba(34,60,63,.90) 0%, rgba(34,60,63,.76) 48%, rgba(34,60,63,.97) 100%),
    url("../img/hero-arch.jpg");
  background-size:cover;
  background-position:center 42%;
  background-repeat:no-repeat;
}

/* Inner-page headers with an image -------------------------------------- */
.page-head[class*="page-head--"]{
  background-color:var(--green);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.page-head--arch{
  background-image:
    linear-gradient(180deg, rgba(34,60,63,.90) 0%, rgba(34,60,63,.84) 55%, rgba(34,60,63,.96) 100%),
    url("../img/hero-arch.jpg");
}
.page-head--villa{
  background-image:
    linear-gradient(180deg, rgba(34,60,63,.90) 0%, rgba(34,60,63,.84) 55%, rgba(34,60,63,.96) 100%),
    url("../img/villa-desert.jpg");
}
.page-head--coast{
  background-image:
    linear-gradient(180deg, rgba(34,60,63,.90) 0%, rgba(34,60,63,.84) 55%, rgba(34,60,63,.96) 100%),
    url("../img/coastline.jpg");
}

/* Card media: image sits flush to the card edges ------------------------- */
.card{overflow:hidden;}
.card-media{
  display:block;
  width:calc(100% + 2 * clamp(26px,3vw,36px));
  max-width:none;height:auto;
  margin:calc(-1 * clamp(26px,3vw,36px));
  margin-bottom:clamp(22px,2.4vw,28px);
  aspect-ratio:16/10;object-fit:cover;
  filter:saturate(.88);
}
html[dir="rtl"] .card-media{margin-inline:calc(-1 * clamp(26px,3vw,36px));}

/* Standalone figure ------------------------------------------------------ */
.figure{
  width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;
  border-radius:var(--radius);margin-bottom:26px;filter:saturate(.9);
}
.figure-tall{aspect-ratio:3/4;}

@media (max-width:860px){
  .figure,.figure-tall{aspect-ratio:16/10;}
}

/* Keep intro copy readable over a photographic page header */
.page-head[class*="page-head--"] .lead{color:#C6D6D7;}

/* ==========================================================================
   ENQUIRY REASON SELECT + HINT
   ========================================================================== */
.field select{
  appearance:none;-webkit-appearance:none;
  padding-inline-end:46px;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%235E7274' stroke-width='1.6' d='M1 1.5 6 6.5l5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 18px center;
  background-size:12px 8px;
  cursor:pointer;
}
html[dir="rtl"] .field select{background-position:left 18px center;}
.field select:invalid,.field select option[value=""]{color:#8FA1A2;}

.field-hint{
  font-size:14px;color:var(--muted);margin:10px 0 0;max-width:52ch;
  border-inline-start:2px solid var(--lime-dim);padding-inline-start:12px;
}

/* The home-page enquiry block --------------------------------------------- */
#enquire .step:first-of-type{border-top:none;padding-top:0;}
#enquire .step{margin-bottom:26px;}
#enquire .step p{color:var(--muted);}
#enquire{scroll-margin-top:96px;}

/* ==========================================================================
   NEW CONTENT COMPONENTS  (invest-uae.html, sectors.html, home links)
   ========================================================================== */
.card-link{display:block;text-decoration:none;color:inherit;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s;}
.card-link:hover{transform:translateY(-4px);box-shadow:0 22px 44px -28px rgba(34,60,63,.45);border-color:var(--lime-dim);}
.card-link .more{display:inline-block;margin-top:16px;font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--green);border-bottom:1px solid var(--lime-dim);padding-bottom:3px;}
html[lang="ar"] .card-link .more{text-transform:none;letter-spacing:0;font-size:14.5px;}

.emirate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.emirate-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:6px;padding:clamp(22px,2.6vw,30px);overflow:hidden;}
.emirate-card::before{content:"";position:absolute;inset-inline-end:-40px;top:-40px;width:120px;height:120px;border-radius:50%;border:14px solid var(--lime);opacity:.18;}
.emirate-card h3{margin-bottom:12px;}
.emirate-card p{color:var(--muted);font-size:15px;}
.emirate-card .trade{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);color:var(--ink);font-size:14.5px;}
.trade-label{display:block;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--lime-dim);margin-bottom:6px;}
html[lang="ar"] .trade-label{letter-spacing:0;font-size:12.5px;}
@media (max-width:980px){.emirate-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:620px){.emirate-grid{grid-template-columns:1fr;}}

.versus .card h3{margin-bottom:12px;}
.versus .card:first-child{border-top:3px solid var(--lime-dim);}
.versus .card:last-child{border-top:3px solid var(--green);}

.qa-list{border-top:1px solid var(--line);}
.qa{border-bottom:1px solid var(--line);}
.qa summary{cursor:pointer;list-style:none;padding:20px 0;font-weight:600;font-size:clamp(16px,1.8vw,18.5px);display:flex;justify-content:space-between;gap:20px;align-items:center;}
.qa summary::-webkit-details-marker{display:none;}
.qa summary::after{content:"+";font-size:24px;font-weight:300;color:var(--lime-dim);transition:transform .3s;flex-shrink:0;}
.qa[open] summary::after{transform:rotate(45deg);}
.qa p{color:var(--muted);max-width:75ch;padding-bottom:22px;margin:0;}

.sector-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
.sector-card{background:#fff;border:1px solid var(--line);border-radius:6px;padding:clamp(22px,2.6vw,32px);scroll-margin-top:96px;}
.sector-card h3{margin-bottom:16px;}
.sector-card dl{margin:0;display:grid;gap:4px 0;}
.sector-card dt{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--lime-dim);margin-top:10px;}
html[lang="ar"] .sector-card dt{letter-spacing:0;font-size:12.5px;}
.sector-card dd{margin:0;color:var(--muted);font-size:15px;}
.sector-nexora{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--line);font-size:14.5px;}
.sector-nexora b{color:var(--green);}
@media (max-width:760px){.sector-grid{grid-template-columns:1fr;}}

/* ==========================================================================
   SLIDES
   main.js turns each top-level <section> into a full-screen slide on pages
   built as a sequence (it adds html.deck), and adds the dot navigation, the
   counter and the progress bar. Without JavaScript this is an ordinary long
   page and every word is visible — search engines and AI crawlers read that.
   ========================================================================== */
:root{--header-h:76px;}

html.deck main > section{
  min-height:calc(100vh - var(--header-h));
  min-height:calc(100svh - var(--header-h));
  display:flex;flex-direction:column;justify-content:center;
  position:relative;overflow:hidden;
}
html.deck main > section > .wrap{width:100%;}
/* phones in landscape: too short for a slide, let sections size themselves */
@media (max-height:520px){ html.deck main > section{min-height:0;} }

@media (min-width:900px) and (min-height:620px) and (prefers-reduced-motion:no-preference){
  html.deck{scroll-snap-type:y proximity;scroll-padding-top:var(--header-h);}
  html.deck main > section{scroll-snap-align:start;}
  html.deck .site-footer{scroll-snap-align:end;}
}

/* big faint slide number, top corner */
.slide-index{
  position:absolute;top:clamp(18px,3vw,36px);inset-inline-end:clamp(18px,4vw,56px);
  font-size:clamp(64px,11vw,150px);font-weight:700;line-height:1;letter-spacing:-.04em;
  color:var(--green);opacity:.045;pointer-events:none;user-select:none;
  font-variant-numeric:tabular-nums;will-change:transform;
}
.on-green .slide-index,.hero .slide-index,.page-head .slide-index{color:var(--lime);opacity:.07;}

/* dot navigation */
.deck-nav{
  position:fixed;inset-inline-end:clamp(12px,1.6vw,26px);top:50%;transform:translateY(-50%);
  z-index:80;display:flex;flex-direction:column;gap:6px;
}
.deck-nav button{
  position:relative;width:28px;height:28px;border:0;background:none;padding:0;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.deck-nav button::before{
  content:"";width:8px;height:8px;border-radius:50%;
  background:var(--deck-dot,rgba(34,60,63,.28));transition:transform .3s,background .3s;
}
.deck-nav button[aria-current="true"]::before{background:var(--lime-dim);height:22px;border-radius:5px;}
.deck-nav.on-dark{--deck-dot:rgba(217,226,134,.4);}
.deck-nav.on-dark button[aria-current="true"]::before{background:var(--lime);}
.deck-nav button span{
  position:absolute;inset-inline-end:34px;white-space:nowrap;font-size:12px;font-weight:600;letter-spacing:.04em;
  background:var(--green);color:var(--bone);padding:6px 10px;border-radius:4px;
  opacity:0;transform:translateX(6px);transition:.2s;pointer-events:none;
}
html[dir="rtl"] .deck-nav button span{transform:translateX(-6px);}
.deck-nav button:hover span,.deck-nav button:focus-visible span{opacity:1;transform:none;}

.deck-count{
  position:fixed;inset-inline-start:clamp(14px,2vw,28px);bottom:22px;z-index:80;
  font-size:12px;font-weight:600;letter-spacing:.18em;color:var(--muted);
  font-variant-numeric:tabular-nums;pointer-events:none;
}
.deck-count b{color:var(--green);font-weight:700;}
.deck-count.on-dark{color:var(--muted-on-green);}
.deck-count.on-dark b{color:var(--lime);}

.deck-progress{position:fixed;top:0;inset-inline-start:0;height:3px;width:100%;z-index:120;pointer-events:none;}
.deck-progress i{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--lime-dim),var(--lime));transform-origin:left;transform:scaleX(var(--p,0));}
html[dir="rtl"] .deck-progress i{transform-origin:right;background:linear-gradient(270deg,var(--lime-dim),var(--lime));}

.deck-next{
  position:absolute;bottom:clamp(18px,4vh,40px);left:50%;transform:translateX(-50%);z-index:2;
  width:46px;height:46px;border-radius:50%;border:1px solid var(--line-on-green);background:transparent;
  color:var(--lime);cursor:pointer;display:flex;align-items:center;justify-content:center;
  animation:nudge 2.4s ease-in-out infinite;
}
.deck-next:hover{background:var(--lime);color:var(--green);}
.deck-next svg{width:18px;height:18px;}
@keyframes nudge{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,7px)}}

@media (max-width:899px){
  .deck-nav,.deck-count{display:none;}
  .slide-index{font-size:64px;}
}

/* ==========================================================================
   MOTION  (only under html.js — no JavaScript means no hidden content)
   ========================================================================== */
html.js [data-reveal]{
  opacity:0;transform:translate3d(0,26px,0);
  transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);
  transition-delay:calc(var(--i,0) * 75ms);
}
html.js [data-reveal="fade"]{transform:none;}
html.js [data-reveal="rise"]{transform:translate3d(0,44px,0) scale(.98);}
html.js [data-reveal].is-in,html.is-bot [data-reveal]{opacity:1;transform:none;}

/* hero: the photograph drifts, the arch rises, the pattern flows */
html.js .hero{background-image:none;}
html.js .hero::before{
  content:"";position:absolute;inset:-4%;z-index:0;
  background:
    linear-gradient(180deg,rgba(34,60,63,.90) 0%,rgba(34,60,63,.74) 48%,rgba(34,60,63,.97) 100%),
    url("../img/hero-arch.jpg") center 42%/cover no-repeat;
  animation:kenburns 26s ease-in-out infinite alternate;
}
@keyframes kenburns{from{transform:scale(1) translate3d(0,0,0)}to{transform:scale(1.08) translate3d(-1.5%,-1%,0)}}
html.js .hero::after{animation:patternFlow 38s ease-in-out infinite alternate;}
@keyframes patternFlow{from{background-position:0 bottom}to{background-position:-260px bottom}}
html.js .hero-mark{animation:archRise 1.4s cubic-bezier(.2,.7,.2,1) .15s both;}
@keyframes archRise{from{clip-path:inset(100% 0 0 0);transform:translateY(24px) scale(.94);opacity:.2}to{clip-path:inset(0 0 0 0);transform:none;opacity:1}}

html.js .page-head[class*="page-head--"]{background-image:none;position:relative;overflow:hidden;}
html.js .page-head[class*="page-head--"]::before{
  content:"";position:absolute;inset:-4%;z-index:0;background-size:cover;background-position:center;
  animation:kenburns 30s ease-in-out infinite alternate;
}
html.js .page-head--arch::before{background-image:linear-gradient(180deg,rgba(34,60,63,.90) 0%,rgba(34,60,63,.84) 55%,rgba(34,60,63,.96) 100%),url("../img/hero-arch.jpg");}
html.js .page-head--villa::before{background-image:linear-gradient(180deg,rgba(34,60,63,.90) 0%,rgba(34,60,63,.84) 55%,rgba(34,60,63,.96) 100%),url("../img/villa-desert.jpg");}
html.js .page-head--coast::before{background-image:linear-gradient(180deg,rgba(34,60,63,.90) 0%,rgba(34,60,63,.84) 55%,rgba(34,60,63,.96) 100%),url("../img/coastline.jpg");}
.page-head > .wrap{position:relative;z-index:1;}
.page-head .eyebrow,.hero .eyebrow{color:var(--lime);}

/* ==========================================================================
   HOME HERO — the 3D mark is the star (assets/js/hero3d.js). The flat mark sits
   inside the same stage as the fallback and fades out once a 3D frame renders.
   ========================================================================== */
.hero .wrap{position:relative;z-index:1;}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:center;}
.hero-copy{order:1;}
.hero-stage{order:2;position:relative;aspect-ratio:1;width:100%;max-width:min(540px,62vh);justify-self:center;display:grid;place-items:center;}
.hero-aura{position:absolute;inset:4%;border-radius:50%;
  background:radial-gradient(circle at 50% 55%,rgba(217,226,134,.26) 0%,rgba(217,226,134,.08) 38%,transparent 68%);}
.hero-aura::before,.hero-aura::after{content:"";position:absolute;inset:8%;border-radius:50%;border:1px solid rgba(217,226,134,.2);}
.hero-aura::after{inset:-2%;border-color:rgba(217,226,134,.1);}
html.js .hero-aura{animation:auraPulse 6s ease-in-out infinite;}
@keyframes auraPulse{0%,100%{transform:scale(.97);opacity:.85}50%{transform:scale(1.03);opacity:1}}
.hero-3d{position:absolute;inset:0;display:grid;place-items:center;}
.hero-3d canvas{position:absolute;inset:0;display:block;width:100%;height:100%;opacity:0;transform:scale(.9);transition:opacity 1.4s ease,transform 1.6s cubic-bezier(.2,.7,.2,1);}
html.has-3d .hero-3d canvas{opacity:1;transform:none;}
.hero .hero-mark{width:62%;height:auto;margin:0;}
html.has-3d .hero .hero-mark{animation:none;opacity:0;transition:opacity .6s;}
.hero-tag{position:absolute;bottom:4%;left:0;right:0;text-align:center;margin:0;
  font-size:12px;letter-spacing:.34em;text-transform:uppercase;color:var(--lime);opacity:.8;}
html[lang="ar"] .hero-tag{letter-spacing:0;font-size:15px;}

.hero{padding-block:clamp(56px,7vw,96px);}
.hero h1{margin-top:4px;font-size:clamp(36px,4.8vw,64px);line-height:1.08;}
.hero .eyebrow{color:var(--lime);}
.hero-reassure{margin:16px 0 0;font-size:14px;color:var(--muted-on-green);display:flex;align-items:center;gap:10px;}
.hero-reassure::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 4px rgba(217,226,134,.18);flex-shrink:0;}
.hero .btn-primary{padding:18px 34px;font-size:15px;box-shadow:0 14px 32px -14px rgba(217,226,134,.55);}
.hero .lead{margin-top:22px;font-size:clamp(17px,1.6vw,20px);max-width:44ch;}
.hero-pick{margin-top:24px;}
.pick-label{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-on-green);margin:0 0 12px;}
html[lang="ar"] .pick-label{letter-spacing:0;font-size:14px;}
.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chip{display:inline-flex;align-items:center;padding:9px 16px;border:1px solid var(--line-on-green);border-radius:999px;
  color:var(--bone);text-decoration:none;font-size:14px;font-weight:500;background:rgba(27,48,51,.45);
  backdrop-filter:blur(4px);transition:background .2s,color .2s,border-color .2s,transform .2s;}
.chip:hover,.chip:focus-visible{background:var(--lime);color:var(--green);border-color:var(--lime);transform:translateY(-1px);}
.hero .btn-row{margin-top:34px;}

.hero-trust{list-style:none;margin:clamp(36px,5vh,60px) 0 0;padding:20px 0 0;border-top:1px solid var(--line-on-green);
  display:flex;flex-wrap:wrap;gap:10px 34px;font-size:13.5px;color:var(--muted-on-green);position:relative;z-index:1;}
.hero-trust li{display:flex;align-items:center;gap:10px;}
.hero-trust li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--lime);flex-shrink:0;}

@media (max-width:899px){
  .hero-grid{grid-template-columns:minmax(0,1fr);gap:8px;}
  .hero-copy{order:2;}
  .hero-stage{order:1;max-width:300px;margin-top:-24px;}
  .hero-trust{gap:10px 20px;}
}
@media (prefers-reduced-motion:reduce){ .hero-aura{animation:none !important;} }

/* the eyebrow line draws in with its slide */

/* cards lift a touch */
.card,.emirate-card,.sector-card{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s;}
.emirate-card:hover,.sector-card:hover{transform:translateY(-3px);box-shadow:0 22px 44px -30px rgba(34,60,63,.45);}
.card-media{transition:transform 1.2s cubic-bezier(.2,.7,.2,1),filter .6s;}
.card:hover .card-media{transform:scale(1.04);filter:saturate(1);}

@media (prefers-reduced-motion:reduce){
  html.js [data-reveal]{opacity:1 !important;transform:none !important;transition:none !important;}
  html.js .hero::before,html.js .page-head[class*="page-head--"]::before,html.js .hero::after,html.js .hero-mark,.deck-next{animation:none !important;}
}
.section-head .lead{margin-top:18px;}

/* ==========================================================================
   INTRO — 3 s opening, once per visit (build.py INTRO, main.js section 0)
   0.20 the logo draws itself, extruded, in isometric outline
   2.05 it flies into the hero's 3D logo · 2.45 the green lifts · 3.00 done
   ========================================================================== */
#nx-intro{display:none;}
html.intro-on{overflow:hidden;}
html.intro-on #nx-intro{
  display:flex;align-items:center;justify-content:center;
  position:fixed;inset:0;z-index:1000;background:rgba(34,60,63,1);overflow:hidden;
  transition:opacity .4s ease,visibility .4s,background-color .5s ease;
}
#nx-intro.is-clear{background:rgba(34,60,63,0);}
#nx-intro.is-out{opacity:0;visibility:hidden;}
.nx-scene{position:absolute;inset:0;width:100%;height:100%;}
.nx-scene .nx-src{display:none;}
.nx-world{filter:drop-shadow(0 0 4px rgba(217,226,134,.35));}
.nx-world path{
  fill:none;stroke:var(--lime);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:1;stroke-dashoffset:1;
}
.nx-front{stroke-width:1.9;animation:nxDraw .8s cubic-bezier(.3,.7,.2,1) calc(.2s + var(--d) * .09s) forwards;}
.nx-back{opacity:.45;animation:nxDraw .6s ease-out calc(.75s + var(--d) * .07s) forwards;}
.nx-edge{opacity:.55;animation:nxDraw .35s ease-out calc(1.2s + var(--d) * .06s) forwards;}
@keyframes nxDraw{to{stroke-dashoffset:0;}}
.nx-skip{
  position:absolute;bottom:22px;inset-inline-end:24px;z-index:2;background:none;border:1px solid var(--line-on-green);
  color:var(--muted-on-green);font:inherit;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  padding:8px 14px;border-radius:var(--radius);cursor:pointer;opacity:.7;
}
.nx-skip:hover{opacity:1;color:var(--lime);border-color:var(--lime);}
#nx-intro.is-clear .nx-skip{opacity:0;}
/* while the intro plays, the hero's 3D logo appears without its own fade, ready to take over */
html.intro-on .hero-3d canvas{transition:none;}
/* the hero waits for the intro */
html.intro-on .hero-mark,html.intro-on .hero::before{animation-play-state:paused;}
@media (prefers-reduced-motion:reduce){ html.intro-on #nx-intro{display:none;} html.intro-on{overflow:auto;} }

@media print{
  #nx-intro{display:none !important;}
  html.js [data-reveal]{opacity:1 !important;transform:none !important;}
  .deck-nav,.deck-count,.deck-progress,.deck-next,.slide-index,.wa-float{display:none !important;}
}

/* ==========================================================================
   AIR — more white space, shorter lines (applies site-wide)
   ========================================================================== */
:root{--sp:clamp(88px,11vw,168px);}
body{line-height:1.75;}
p{max-width:60ch;}
.lead{max-width:48ch;line-height:1.7;}
.section-head{margin-bottom:clamp(56px,6.5vw,96px);}
.section-head .lead{margin-top:24px;}
.eyebrow{margin-bottom:26px;}
.grid{gap:clamp(40px,5vw,72px);}
.card,.emirate-card,.sector-card,.cat-card{padding:clamp(30px,3.4vw,44px);}
.card h3,.col h3,.step h3,.emirate-card h3,.sector-card h3{margin-bottom:16px;}
.step{padding-top:28px;}
.step .num{margin-bottom:18px;}
.rule-top{padding-top:28px;}
.btn-row{margin-top:44px;}
.legal p,.legal li{max-width:68ch;}
.hero-trust{gap:12px 40px;}
@media (max-width:860px){
  :root{--sp:clamp(72px,16vw,104px);}
  .grid{gap:48px;}
}
/* keep card photos flush with the new, roomier card padding */
.card .card-media{
  width:calc(100% + 2 * clamp(30px,3.4vw,44px));
  margin:calc(-1 * clamp(30px,3.4vw,44px));
  margin-bottom:clamp(26px,2.8vw,34px);
}
html[dir="rtl"] .card .card-media{margin-inline:calc(-1 * clamp(30px,3.4vw,44px));}

/* "The whole UAE" slide: heading + animated isometric scene (assets/video/uae-diorama.mp4).
   The section background is set to the video's own background colour so the frame edge disappears. */
.uae-section{--uae-bg:#E7E1D8;background:var(--uae-bg);}   /* measured from the video's own edges */
.uae-intro{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,5vw,72px);align-items:center;margin-bottom:clamp(40px,5vw,72px);}
.uae-intro .section-head{margin-bottom:0;}
.uae-scene{margin:0;aspect-ratio:4/3;}
.uae-video{display:block;width:100%;height:100%;object-fit:cover;background:var(--uae-bg);
  /* feather the edges so the video's faint vignette melts into the section */
  -webkit-mask-image:radial-gradient(ellipse 72% 70% at 50% 52%,#000 62%,transparent 100%);
          mask-image:radial-gradient(ellipse 72% 70% at 50% 52%,#000 62%,transparent 100%);}
@media (max-width:860px){ .uae-intro{grid-template-columns:minmax(0,1fr);} .uae-scene{margin-inline:-4vw;} }

/* the animation is decoration: not selectable, not draggable, no "Save video as" */
.uae-scene{position:relative;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;}
.uae-scene .uae-video{pointer-events:none;}
.uae-scene::after{content:"";position:absolute;inset:0;}   /* a clear shield over the video catches clicks and long-presses */

/* ==========================================================================
   TYPE SYSTEM — four levels, nothing else
   T1 Display  page headline            clamp(30px → 44px)
   T2 Title    section heading          clamp(22px → 28px)
   T3 Lead     card/step titles, intros clamp(16px → 18px)
   T4 Body     paragraphs, lists, forms 15px   (+ T4 caps: labels, nav, buttons 12–13px)
   ========================================================================== */
:root{
  --t1:clamp(30px,3.1vw,44px);
  --t2:clamp(22px,2vw,28px);
  --t3:clamp(16px,1.25vw,18px);
  --t4:15px;
  --t4-caps:12px;
}
body{font-size:var(--t4);line-height:1.75;}

/* T1 */
h1,.h-xl,.hero h1,.page-head h1{font-size:var(--t1);line-height:1.12;letter-spacing:-.02em;font-weight:600;}
/* T2 */
h2,.h-lg,.legal h2,.qa-list + .form-note{font-size:var(--t2);line-height:1.2;font-weight:600;}
/* T3 */
h3,h4,.h-md,.h-sm,.lead,.hero-sub,.hero .lead,.section-head .lead,.thread-title,.qa summary,.legal h3,.card-link h3{font-size:var(--t3);line-height:1.5;}
h3,h4,.h-md,.h-sm,.thread-title,.qa summary{font-weight:600;}
.lead,.hero .lead,.hero-sub{font-weight:400;}
/* T4 */
p,li,dd,.card p,.col p,.step p,.emirate-card p,.sector-card dd,.qa p,.post-body,.field input,.field textarea,.field select,
.details dd,.site-footer a,.site-footer p,.hero-reassure,.hero-trust,.form-note,.field-hint,.chip{font-size:var(--t4);}
/* T4 caps: labels */
.eyebrow,.nav a,.btn,.lang-toggle,.field label,.site-footer h4,.trade-label,.sector-card dt,.pick-label,.details dt,
.card .more,.card-link .more,.hero-tag,.deck-count,.thread-meta,.cat-meta{font-size:var(--t4-caps);}
html[lang="ar"] .eyebrow,html[lang="ar"] .nav a,html[lang="ar"] .btn,html[lang="ar"] .field label{font-size:13px;}

/* headings sit on the text, not over it */
.section-head h2{max-width:26ch;}
.hero h1{max-width:16ch;}
.page-head h1{max-width:22ch;}
.lead{max-width:52ch;}
.hero .btn-primary{font-size:13px;padding:16px 28px;}
.btn{padding:13px 24px;}

/* CRM keeps its own compact scale */
.crm .kpi-n{font-size:clamp(24px,2.4vw,32px);}
.crm h1{font-size:var(--t2);}
/* decorative slide numbers: quieter, so they don't compete with T1 */
.slide-index{font-size:clamp(44px,6vw,88px);opacity:.04;}
.on-green .slide-index,.hero .slide-index,.page-head .slide-index{opacity:.06;}
@media (max-width:899px){ .slide-index{font-size:44px;} }

/* the brand line pattern: off the hero, onto the closing "Office 1104" section */
.hero::after,html.js .hero::after{display:none;}
.pattern-band{position:relative;overflow:hidden;padding-bottom:calc(var(--sp) + clamp(60px,8vw,110px));}
.pattern-band > .wrap{position:relative;z-index:1;}
.pattern-band::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:clamp(60px,8vw,110px);
  background:url("../img/pattern.png") center bottom/auto 100% repeat-x;opacity:.12;pointer-events:none;
}
html.js .pattern-band::after{animation:patternFlow 38s ease-in-out infinite alternate;}
@media (prefers-reduced-motion:reduce){ html.js .pattern-band::after{animation:none;} }
.pattern-band h2 + .lead,.on-green > .wrap > h2 + .lead{margin-top:18px;}

/* ==========================================================================
   4-POINT SYSTEM — every size is a multiple of 4px. This block is the source
   of truth for type, spacing, layout and components; it overrides the fluid
   values above. Change a token here, not a one-off value in a component.
   ========================================================================== */
:root{
  /* spacing scale */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s6:24px; --s8:32px; --s12:48px; --s16:64px; --s24:96px; --s32:128px;
  /* type: size / line height */
  --t1:44px; --t1-lh:52px;
  --t2:28px; --t2-lh:36px;
  --t3:20px; --t3-lh:28px;
  --t4:16px; --t4-lh:28px;
  --t4-caps:12px; --caps-lh:16px;
  /* layout */
  --wrap:1280px;           /* 1152 content + 2 × 64 margins */
  --pad:var(--s16);
  --gutter:var(--s6);
  --sp:var(--s32);         /* section padding */
  --header-h:80px;
  /* components */
  --control-h:48px;
  --radius:4px; --radius-card:8px; --radius-lg:16px;
}
@media (max-width:1023px){ :root{ --pad:var(--s8); --sp:var(--s24); --t1:36px; --t1-lh:44px; --t2:24px; --t2-lh:32px; } }
@media (max-width:599px){
  :root{ --pad:var(--s4); --gutter:var(--s4); --sp:var(--s16);
         --t1:32px; --t1-lh:40px; --t2:24px; --t2-lh:32px; --t3:18px; --t3-lh:28px; }
}

/* ---- type ---- */
body{font-size:var(--t4);line-height:var(--t4-lh);}
h1,.h-xl,.hero h1,.page-head h1{font-size:var(--t1);line-height:var(--t1-lh);}
h2,.h-lg,.legal h2{font-size:var(--t2);line-height:var(--t2-lh);}
h3,h4,.h-md,.h-sm,.lead,.hero .lead,.section-head .lead,.hero-sub,.thread-title,.qa summary,.legal h3{font-size:var(--t3);line-height:var(--t3-lh);}
p,li,dd,.card p,.col p,.step p,.emirate-card p,.sector-card dd,.qa p,.post-body,.details dd,.field input,.field textarea,.field select,
.site-footer a,.site-footer p,.hero-reassure,.hero-trust,.form-note,.field-hint{font-size:var(--t4);line-height:var(--t4-lh);}
.eyebrow,.nav a,.btn,.lang-toggle,.field label,.site-footer h4,.trade-label,.sector-card dt,.details dt,.card .more,.card-link .more,
.hero-tag,.deck-count,.thread-meta,.cat-meta,.pick-label{font-size:var(--t4-caps);line-height:var(--caps-lh);}
html[lang="ar"] .eyebrow,html[lang="ar"] .nav a,html[lang="ar"] .btn,html[lang="ar"] .field label{font-size:var(--s4);line-height:var(--s6);}
p{margin:0 0 var(--s4);}
html[lang="ar"] body{line-height:32px;}

/* ---- layout ---- */
.wrap{max-width:var(--wrap);padding-inline:var(--pad);}
section{padding-block:var(--sp);}
.hero{padding-block:var(--s24);}
.page-head{padding-block:var(--s24);}
.grid{gap:var(--s12) var(--gutter);}
.grid-2,.grid-3{column-gap:var(--s8);}
.hero-grid{gap:var(--s12);}
.contact-grid{gap:var(--s16);}
.uae-intro{gap:var(--s12);margin-bottom:var(--s16);}
.section-head{margin-bottom:var(--s16);}
.section-head .lead,.hero .lead{margin-top:var(--s6);}
.eyebrow{margin:0 0 var(--s6);}
.btn-row{margin-top:var(--s12);gap:var(--s4);}
.hero .btn-row{margin-top:var(--s8);}
.hero-trust{margin-top:var(--s16);padding-top:var(--s6);gap:var(--s3) var(--s12);}
.emirate-grid,.sector-grid,.cat-grid{gap:var(--s6);}
@media (max-width:599px){ .grid,.emirate-grid,.sector-grid{gap:var(--s8);} .section-head{margin-bottom:var(--s12);} }

/* ---- components ---- */
.header-inner{min-height:var(--header-h);gap:var(--s6);}
.brand img{height:var(--s8);}
.nav{gap:var(--s8);}
@media (min-width:901px) and (max-width:1100px){ .nav{gap:var(--s6);} }
.btn{min-height:var(--control-h);padding:0 var(--s6);border-radius:var(--radius);justify-content:center;}
.hero .btn-primary{min-height:56px;padding:0 var(--s8);}
.lang-toggle{height:40px;padding:0 var(--s4);border-radius:var(--radius);}
.nav-toggle{width:40px;height:40px;border-radius:var(--radius);}
.field{margin-bottom:var(--s6);}
.field label{margin-bottom:var(--s2);}
.field input,.field select{height:var(--control-h);padding:0 var(--s4);border-radius:var(--radius);}
.field textarea{padding:var(--s3) var(--s4);min-height:128px;border-radius:var(--radius);}
.card,.emirate-card,.sector-card,.cat-card{padding:var(--s8);border-radius:var(--radius-card);}
.card .card-media{width:calc(100% + 2 * var(--s8));margin:calc(-1 * var(--s8));margin-bottom:var(--s6);}
html[dir="rtl"] .card .card-media{margin-inline:calc(-1 * var(--s8));}
.card h3,.col h3,.step h3,.emirate-card h3,.sector-card h3{margin-bottom:var(--s3);}
.step,.rule-top{padding-top:var(--s6);}
.step .num{margin-bottom:var(--s4);font-size:var(--t4-caps);line-height:var(--caps-lh);}
.form-status,.flash{padding:var(--s4);border-radius:var(--radius);}
.qa summary{padding:var(--s6) 0;}
.qa p{padding-bottom:var(--s6);}
.site-footer{padding-block:var(--s24) var(--s8);}
.footer-grid{gap:var(--s12) var(--s8);}
.footer-bottom{margin-top:var(--s12);padding-top:var(--s6);}
.socials a{width:40px;height:40px;border-radius:var(--radius);}
.wa-float{width:56px;height:56px;inset-block-end:var(--s6);inset-inline-end:var(--s6);}
.chip{min-height:40px;padding:0 var(--s4);}
.hero-stage{max-width:min(544px,60vh);}
.slide-index{top:var(--s8);inset-inline-end:var(--s12);font-size:88px;line-height:88px;}
@media (max-width:899px){ .slide-index{font-size:48px;line-height:48px;top:var(--s4);inset-inline-end:var(--s4);} }
.deck-count{bottom:var(--s6);inset-inline-start:var(--s6);}
.pattern-band{padding-bottom:calc(var(--sp) + var(--s24));}
.pattern-band::after{height:var(--s24);}

/* Location section: map of Ajman under the brand green */
.map-bg{
  background-color:var(--green);
  background-image:
    linear-gradient(90deg,rgba(34,60,63,.97) 0%,rgba(34,60,63,.9) 45%,rgba(34,60,63,.78) 100%),
    url("../img/ajman-map.jpg");
  background-size:cover,cover;
  background-position:center,62% 45%;
}
html[dir="rtl"] .map-bg{
  background-image:
    linear-gradient(270deg,rgba(34,60,63,.97) 0%,rgba(34,60,63,.9) 45%,rgba(34,60,63,.78) 100%),
    url("../img/ajman-map.jpg");
}
.map-credit{position:absolute;inset-inline-end:var(--pad);bottom:calc(var(--s24) + var(--s3));margin:0;
  font-size:11px;line-height:var(--caps-lh);color:rgba(242,240,235,.55);}
.map-bg > .wrap{position:static;}
.map-bg > .wrap > :not(.map-credit){position:relative;z-index:1;}

/* Why Ajman: the Corniche from the air beside the argument */
.why-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s12);align-items:center;}
.why-copy h2{margin-bottom:var(--s6);}
.why-photo{position:relative;margin:0;border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:16/10;background:var(--bone-2);
  box-shadow:0 32px 64px -40px rgba(34,60,63,.55);}
.why-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1);}
.why-photo:hover img{transform:scale(1.03);}
.why-photo figcaption{position:absolute;inset-inline-start:var(--s4);bottom:var(--s4);padding:var(--s1) var(--s3);border-radius:var(--radius);
  background:rgba(34,60,63,.72);color:var(--bone);font-size:var(--t4-caps);line-height:var(--caps-lh);letter-spacing:.12em;text-transform:uppercase;
  backdrop-filter:blur(4px);}
html[lang="ar"] .why-photo figcaption{letter-spacing:0;text-transform:none;font-size:13px;}
@media (max-width:899px){ .why-grid{grid-template-columns:minmax(0,1fr);} .why-photo{order:-1;} }

/* Why Ajman: the Corniche as a parallax background (image moved by main.js §6) */
.why-ajman{position:relative;overflow:hidden;background:var(--green);}
.why-bg{position:absolute;inset:0;z-index:0;}
.why-bg img{position:absolute;left:0;width:100%;top:-15%;height:130%;object-fit:cover;will-change:transform;}
.why-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(34,60,63,.94) 0%,rgba(34,60,63,.78) 38%,rgba(34,60,63,.2) 70%,rgba(34,60,63,0) 100%),
             linear-gradient(0deg,rgba(34,60,63,.45) 0%,rgba(34,60,63,0) 35%);}
html[dir="rtl"] .why-bg::after{
  background:linear-gradient(270deg,rgba(34,60,63,.94) 0%,rgba(34,60,63,.78) 38%,rgba(34,60,63,.2) 70%,rgba(34,60,63,0) 100%),
             linear-gradient(0deg,rgba(34,60,63,.45) 0%,rgba(34,60,63,0) 35%);}
.why-ajman > .wrap{position:relative;z-index:1;}
.why-copy{max-width:480px;}
.why-copy h2{margin-bottom:var(--s6);color:var(--lime);}
.why-copy p{color:var(--bone);}
.why-caption{position:absolute;inset-inline-end:var(--pad);bottom:calc(-1 * var(--sp) + var(--s6));margin:0;
  padding:var(--s1) var(--s3);border-radius:var(--radius);background:rgba(34,60,63,.72);color:var(--bone);
  font-size:var(--t4-caps);line-height:var(--caps-lh);letter-spacing:.12em;text-transform:uppercase;backdrop-filter:blur(4px);}
html[lang="ar"] .why-caption{letter-spacing:0;text-transform:none;font-size:13px;}
html.deck .why-ajman{min-height:calc(100svh - var(--header-h));}
@media (max-width:899px){
  .why-bg::after{background:linear-gradient(0deg,rgba(34,60,63,.95) 0%,rgba(34,60,63,.85) 45%,rgba(34,60,63,.25) 100%);}
  .why-ajman{display:flex;flex-direction:column;justify-content:flex-end;min-height:88svh;}
}

/* ==========================================================================
   SERVICES RAIL — horizontal glass cards over a calm apartment view
   ========================================================================== */
.services-rail{position:relative;overflow:hidden;background:var(--green);}
.rail-bg{position:absolute;inset:0;z-index:0;}
.rail-bg img{position:absolute;left:0;width:100%;top:-15%;height:130%;object-fit:cover;will-change:transform;}
/* warm view → brand green, plus a faint reeded-glass ribbing across the whole view */
.rail-bg::after{content:"";position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(34,60,63,.82) 0%,rgba(34,60,63,.42) 45%,rgba(34,60,63,.72) 100%);}
.services-rail > .wrap,.services-rail > .rail{position:relative;z-index:1;}
.rail-head{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s6);margin-bottom:var(--s12);}
.rail-head h2{color:var(--bone);}
.rail-nav{display:flex;gap:var(--s2);}
.rail-btn{width:48px;height:48px;border-radius:50%;border:1px solid rgba(242,240,235,.28);background:rgba(255,255,255,.08);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--bone);cursor:pointer;display:grid;place-items:center;transition:.2s;}
.rail-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
html[dir="rtl"] .rail-btn svg{transform:scaleX(-1);}
.rail-btn:hover{background:var(--lime);color:var(--green);border-color:var(--lime);}
.rail-btn[disabled]{opacity:.35;pointer-events:none;}

.rail{overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;cursor:grab;
  --edge:max(var(--pad),calc((100vw - 1152px) / 2));scroll-padding-inline:var(--edge);}
.rail::-webkit-scrollbar{display:none;}
.rail.is-dragging{cursor:grabbing;scroll-snap-type:none;}
.rail.is-dragging *{pointer-events:none;}
.rail:focus-visible{outline:2px solid var(--lime);outline-offset:-2px;}
.rail-track{list-style:none;margin:0;padding:var(--s2) var(--edge) var(--s8);display:flex;gap:var(--s6);width:max-content;}

/* glass card: frosted, fine vertical ribs, a light edge and a soft top highlight */
.rail-card{position:relative;scroll-snap-align:start;width:320px;min-height:320px;padding:var(--s8);border-radius:var(--radius-lg);
  display:flex;flex-direction:column;gap:var(--s4);color:var(--bone);overflow:hidden;
  background:
    linear-gradient(180deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,.04) 42%,rgba(255,255,255,.02) 100%),
    none;
  border:1px solid rgba(255,255,255,.22);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 24px 48px -28px rgba(0,0,0,.55);
  backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s,background-color .35s;}
.rail-card::before{content:"";position:absolute;top:-40%;left:-60%;width:60%;height:180%;transform:rotate(18deg);
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.14),rgba(255,255,255,0));transition:left .9s ease;pointer-events:none;}
.rail-card:hover{transform:translateY(-4px);border-color:rgba(217,226,134,.6);}
.rail-card:hover::before{left:120%;}
.rail-num{font-size:var(--t4-caps);line-height:var(--caps-lh);letter-spacing:.18em;color:var(--lime);font-weight:700;}
.rail-card h3{color:var(--bone);margin:0;}
.rail-card p{color:rgba(242,240,235,.82);margin:0;flex:1;}
.rail-link{align-self:flex-start;font-size:var(--t4-caps);line-height:var(--caps-lh);font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--lime);text-decoration:none;border-bottom:1px solid rgba(217,226,134,.5);padding-bottom:var(--s1);}
html[lang="ar"] .rail-link{letter-spacing:0;text-transform:none;font-size:14px;}
.rail-link:hover{border-bottom-color:var(--lime);}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){ .rail-card{background-color:rgba(34,60,63,.78);} }
@media (max-width:599px){ .rail-card{width:280px;min-height:288px;padding:var(--s6);} .rail-nav{display:none;} }
.rail-head > div:first-child{min-width:0;flex:1 1 auto;}

/* ==========================================================================
   HOME: nav under the hero, the 3D logo centred
   ========================================================================== */
.site-header.below-hero{position:sticky;top:0;}
html.deck .hero{min-height:100vh;min-height:100svh;}
.hero{display:flex;flex-direction:column;justify-content:center;padding-block:var(--s16);}
.hero-grid{grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center;gap:var(--s4);}
.hero-stage{order:1;width:min(360px,38vh,72vw);max-width:none;}
.hero-copy{order:2;display:flex;flex-direction:column;align-items:center;max-width:720px;}
.hero .eyebrow::before,html.js .hero .eyebrow[data-reveal]::before{display:none;}
.hero h1{max-width:18ch;margin-inline:auto;}
.hero .lead{margin-inline:auto;max-width:46ch;}
.hero .btn-row{justify-content:center;}
.hero-reassure{justify-content:center;}
.hero-trust{justify-content:center;margin-top:var(--s12);}
.hero-tag{bottom:0;}
@media (max-width:599px){
  .hero-stage{width:min(260px,64vw);margin-top:0;}
  .hero .btn-row{flex-direction:column;align-items:stretch;width:100%;}
  .hero-trust{display:none;}
}
/* one label only above the headline: the tagline under the logo */
.hero-copy > .eyebrow{display:none;}
.hero-grid{gap:var(--s2);}
.hero h1{margin-top:var(--s4);}
.hero-trust{margin-top:var(--s8);padding-top:var(--s4);}
.hero-reassure{align-self:center;text-align:center;}

/* HOME HERO — three columns: message · 3D logo · action */
.hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) minmax(0,1fr);align-items:center;justify-items:stretch;text-align:start;gap:var(--s8);}
.hero-copy{order:0;display:block;max-width:none;align-items:initial;}
.hero-stage{order:0;width:100%;max-width:min(480px,62vh);justify-self:center;}
.hero-side{display:flex;flex-direction:column;gap:var(--s6);}
.hero h1{margin:0;max-width:none;}
.hero .lead{margin:var(--s6) 0 0;max-width:none;}
.hero .btn-row{margin:0;flex-direction:column;align-items:stretch;justify-content:flex-start;}
.hero .btn-row .btn{width:100%;}
.hero-reassure{align-self:flex-start;justify-content:flex-start;text-align:start;margin:0;}
.hero-trust{display:flex;flex-direction:column;gap:var(--s3);margin:0;padding:var(--s6) 0 0;border-top:1px solid var(--line-on-green);}
@media (max-width:1023px){
  .hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .hero-stage{grid-column:1 / -1;order:-1;max-width:360px;}
}
@media (max-width:599px){
  .hero-grid{grid-template-columns:minmax(0,1fr);gap:var(--s6);}
  .hero-stage{max-width:240px;}
  .hero-copy{text-align:center;}
  .hero-trust{display:flex;}
}
/* tablet & phone: one column, logo in the middle — message · logo · action */
@media (max-width:1023px){
  .hero-grid{grid-template-columns:minmax(0,1fr);gap:var(--s6);text-align:center;}
  .hero-stage{grid-column:auto;order:0;max-width:300px;}
  .hero-copy{text-align:center;}
  .hero .lead{margin-inline:auto;max-width:46ch;}
  .hero-side{align-items:stretch;max-width:420px;width:100%;justify-self:center;}
  .hero-reassure{align-self:center;justify-content:center;}
  .hero-trust{align-items:flex-start;}
}
@media (max-width:599px){ .hero-stage{max-width:240px;} }
.hero-trust,.hero-trust li{text-align:start;}
.hero-trust li{align-items:flex-start;}
.hero-trust li::before{margin-top:11px;}

/* HERO buttons: one per outer column on desktop, both at the bottom when stacked */
.hero-cta{margin-top:var(--s8);}
.hero-cta .btn{width:100%;}
.hero-cta--main .btn{min-height:56px;}
.hero-side .hero-cta{margin-top:var(--s6);}
@media (max-width:1023px){
  .hero-grid{display:flex;flex-direction:column;align-items:center;}
  .hero-copy,.hero-side{display:contents;}
  .hero h1{order:1;}
  .hero .lead{order:2;}
  .hero-stage{order:3;width:100%;}
  .hero-trust{order:4;width:100%;max-width:420px;}
  .hero-cta{margin-top:0;width:100%;max-width:420px;}
  .hero-cta--main{order:5;margin-top:var(--s2);}
  .hero-cta--alt{order:6;}
}
@media (max-width:1023px){ .hero h1,.hero .lead{width:100%;white-space:normal;text-wrap:balance;} }

/* ==========================================================================
   WHAT WE DO — solid green, logo-pattern cards, pinned horizontal scroll
   (overrides the earlier glass version)
   ========================================================================== */
.services-rail{overflow:visible;overflow-x:clip;background:var(--green);}
.services-rail .rail-bg{display:none;}
.rail-pin{position:relative;}
.services-rail.is-pinned{padding-block:0;}
.services-rail.is-pinned .rail-pin{position:sticky;top:var(--header-h);height:calc(100svh - var(--header-h));
  display:flex;flex-direction:column;justify-content:center;overflow:hidden;}
.services-rail.is-pinned .rail{scroll-snap-type:none;overflow-x:hidden;cursor:default;}
html.deck .services-rail{min-height:0;display:block;}

/* progress line under the heading */
.rail-progress{height:2px;background:rgba(217,226,134,.18);border-radius:2px;overflow:hidden;margin-top:var(--s6);max-width:240px;}
.rail-progress i{display:block;height:100%;background:var(--lime);transform-origin:left;transform:scaleX(var(--p,0));}
html[dir="rtl"] .rail-progress i{transform-origin:right;}

/* cards: no glass — solid green with the logo pattern rising and fading */
.rail-card{background:var(--green-600);backdrop-filter:none;-webkit-backdrop-filter:none;
  border:1px solid rgba(217,226,134,.16);box-shadow:0 24px 48px -32px rgba(0,0,0,.5);}
.rail-card::before{content:"";position:absolute;inset:auto 0 0 0;top:auto;left:0;width:auto;height:55%;transform:none;
  background:url("../img/pattern.png") left bottom/auto 72px repeat;opacity:.16;pointer-events:none;transition:opacity .4s;
  -webkit-mask-image:linear-gradient(to top,#000 0%,transparent 100%);mask-image:linear-gradient(to top,#000 0%,transparent 100%);}
html[dir="rtl"] .rail-card::before{background-position:right bottom;}
.rail-card:hover::before{left:0;opacity:.3;}
.rail-card > *{position:relative;z-index:1;}
.rail-card:hover{border-color:rgba(217,226,134,.45);}
html.deck main > section.services-rail.is-pinned{scroll-snap-align:none;}
/* sticky needs no clipping ancestor: undo the deck's overflow:hidden on this section */
html.deck main > section.services-rail,
main > section.services-rail{overflow:visible;overflow-x:clip;display:block;}
.services-rail.is-pinned .rail-pin{top:var(--pin-top,var(--header-h));height:calc(100vh - var(--pin-top,var(--header-h)));height:calc(100svh - var(--pin-top,var(--header-h)));}

/* ABOUT (home) — minimal: the mark, one heading, one sentence, one link */
.about-min{background:var(--bone);padding-block:var(--s32);}
html.deck main > section.about-min{justify-content:center;}
.about-min-inner{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:720px;}
.about-mark{display:block;width:88px;color:var(--green);margin-bottom:var(--s12);transition:color .3s,transform .5s cubic-bezier(.2,.7,.2,1);}
.about-mark svg{display:block;width:100%;height:auto;}
.about-mark:hover{color:var(--green-600);transform:translateY(-2px);}
.about-min h2{margin:0;color:var(--green);}
.about-min .about-text{margin:var(--s6) auto 0;max-width:46ch;color:var(--muted);font-size:var(--t3);line-height:var(--t3-lh);}
.about-link{margin-top:var(--s8);font-size:var(--t4-caps);line-height:var(--caps-lh);font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--green);text-decoration:none;padding-bottom:var(--s1);border-bottom:1px solid var(--lime-dim);transition:border-color .2s;}
html[lang="ar"] .about-link{letter-spacing:0;text-transform:none;font-size:14px;}
.about-link:hover{border-bottom-color:var(--green);}
@media (max-width:599px){ .about-min{padding-block:var(--s24);} .about-mark{width:72px;margin-bottom:var(--s8);} }
.about-min h2,.about-min .about-text{width:100%;}
@media (max-width:599px){ .about-min h2{white-space:normal;text-wrap:balance;} }

/* ==========================================================================
   COMPACT NAV — 5 links, 64px bar
   ========================================================================== */
:root{--header-h:64px;}
.header-inner{min-height:var(--header-h);gap:var(--s6);}
.brand img{height:24px;}
.nav{gap:var(--s6);}
.nav a{font-size:var(--t4-caps);line-height:var(--caps-lh);letter-spacing:.08em;padding:var(--s1) 0;opacity:.8;}
html[lang="ar"] .nav a{font-size:14px;}
.nav a:hover,.nav a[aria-current="page"]{opacity:1;}
.header-tools{gap:var(--s2);}
.lang-toggle{height:32px;padding:0 var(--s3);font-size:var(--t4-caps);}
.nav-toggle{width:32px;height:32px;}
@media (min-width:901px){ .nav{margin-inline-start:auto;} }
@media (max-width:900px){ .nav a{padding:var(--s3) 0;font-size:13px;} }
.brand img{height:28px;}

/* ==========================================================================
   BENTO GRID SYSTEM
   One 12-column grid of tiles on the 4-point scale. Compose with:
     .bento                      the grid (12 → 6 → 1 columns)
     .tile                       base tile: 16px radius, 32px padding, flex column
     .tile--white | --bone | --green | --lime | --media | --plain   tone
     .c-4 .c-5 .c-6 .c-7 .c-8 .c-12   column span   ·   .r-2 .r-3   row span
     .tile-title .tile-text .tile-link .tile-foot   content
   Breath: 16px between tiles, 48px padding on large tiles, content pinned
   to the bottom so every tile has an open top.
   ========================================================================== */
:root{
  --bento-gap:var(--s4);
  --bento-row:minmax(200px,auto);
  --tile-pad:var(--s8);
  --tile-pad-lg:var(--s12);
  --tile-radius:var(--radius-lg);
  --tile-shadow:0 1px 0 rgba(34,60,63,.04),0 24px 48px -36px rgba(34,60,63,.35);
  --tile-shadow-hover:0 1px 0 rgba(34,60,63,.04),0 32px 64px -32px rgba(34,60,63,.45);
}
.bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:var(--bento-row);gap:var(--bento-gap);grid-auto-flow:row dense;}
.bento + .bento{margin-top:var(--bento-gap);}

.tile{position:relative;overflow:hidden;border-radius:var(--tile-radius);padding:var(--tile-pad);
  display:flex;flex-direction:column;justify-content:flex-end;gap:var(--s3);
  background:#fff;color:var(--ink);text-decoration:none;box-shadow:var(--tile-shadow);
  transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s cubic-bezier(.2,.7,.2,1);isolation:isolate;}
a.tile:hover{transform:translateY(-3px);box-shadow:var(--tile-shadow-hover);}
a.tile:focus-visible{outline:2px solid var(--lime-dim);outline-offset:3px;}
.tile.r-2,.tile.c-7,.tile.c-8,.tile.c-12{padding:var(--tile-pad-lg);}

/* tones */
.tile--white{background:#fff;}
.tile--bone{background:var(--bone);box-shadow:inset 0 0 0 1px var(--line);}
.tile--plain{background:transparent;box-shadow:none;padding-inline:0;justify-content:center;}
.tile--green{background:var(--green);color:var(--bone);}
.tile--green .tile-title{color:var(--bone);}
.tile--green .tile-text{color:var(--muted-on-green);}
.tile--green .tile-link{color:var(--lime);border-color:rgba(217,226,134,.45);}
.tile--lime{background:var(--lime);color:var(--green);}
.tile--lime .tile-text{color:rgba(34,60,63,.78);}
.tile--lime .tile-link{border-color:rgba(34,60,63,.35);}
.tile--media{color:var(--bone);background:var(--green);}
.tile--media > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;
  transition:transform 1.4s cubic-bezier(.2,.7,.2,1);filter:saturate(.9);}
.tile--media::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(34,60,63,0) 30%,rgba(34,60,63,.55) 62%,rgba(34,60,63,.92) 100%);}
a.tile--media:hover > img{transform:scale(1.04);}
.tile--media .tile-title{color:var(--bone);}
.tile--media .tile-text{color:rgba(242,240,235,.82);}
.tile--media .tile-link{color:var(--lime);border-color:rgba(217,226,134,.5);}

/* spans */
.c-4{grid-column:span 4;} .c-5{grid-column:span 5;} .c-6{grid-column:span 6;}
.c-7{grid-column:span 7;} .c-8{grid-column:span 8;} .c-12{grid-column:span 12;}
.r-2{grid-row:span 2;} .r-3{grid-row:span 3;}

/* content */
.tile-title{margin:0;font-size:var(--t3);line-height:var(--t3-lh);font-weight:600;max-width:24ch;}
.r-2 .tile-title,.c-7 .tile-title,.c-8 .tile-title{font-size:var(--t2);line-height:var(--t2-lh);}
.tile-text{margin:0;font-size:var(--t4);line-height:var(--t4-lh);color:var(--muted);max-width:44ch;}
.tile-foot{margin-top:var(--s3);display:flex;align-items:center;justify-content:space-between;gap:var(--s4);}
.tile-link{font-size:var(--t4-caps);line-height:var(--caps-lh);font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  color:var(--green);padding-bottom:var(--s1);border-bottom:1px solid var(--lime-dim);}
html[lang="ar"] .tile-link{letter-spacing:0;text-transform:none;font-size:14px;}
.tile-arrow{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;
  background:rgba(255,255,255,.14);transition:transform .4s cubic-bezier(.2,.7,.2,1),background .3s;}
.tile--white .tile-arrow,.tile--bone .tile-arrow{background:var(--bone-2);}
.tile--lime .tile-arrow{background:rgba(34,60,63,.1);}
.tile-arrow svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
html[dir="rtl"] .tile-arrow svg{transform:scaleX(-1);}
a.tile:hover .tile-arrow{transform:translateX(4px);}
html[dir="rtl"] a.tile:hover .tile-arrow{transform:translateX(-4px);}

/* responsive: 6 columns on tablet, one column on phones */
@media (max-width:1023px){
  .bento{grid-template-columns:repeat(6,minmax(0,1fr));}
  .c-4,.c-5,.c-6,.c-7,.c-8{grid-column:span 3;}
  .c-12,.bento .c-7.r-2,.bento .c-8.r-2{grid-column:span 6;}
}
@media (max-width:599px){
  :root{--bento-row:minmax(160px,auto);--tile-pad:var(--s6);--tile-pad-lg:var(--s8);}
  .bento{grid-template-columns:minmax(0,1fr);}
  .bento > *{grid-column:1 / -1 !important;grid-row:auto !important;}
  .tile--media{min-height:280px;}
}
@media (prefers-reduced-motion:reduce){ .tile,.tile--media > img{transition:none;} }
/* bento sections: roomy, and the UAE video tile keeps its own background colour */
.bento-section .section-head{margin-bottom:var(--s12);}
.uae-section .tile--plain h2{margin:0 0 var(--s4);}
.uae-section .uae-scene{padding:0;aspect-ratio:auto;min-height:420px;}
.uae-section .uae-video{position:absolute;inset:0;width:100%;height:100%;}
html.deck main > section.bento-section{justify-content:center;}
@media (max-width:599px){ .uae-section .uae-scene{min-height:260px;} }
/* image tiles: the text must read on any photo */
.tile--media::after{background:linear-gradient(180deg,rgba(34,60,63,.25) 0%,rgba(34,60,63,.62) 38%,rgba(34,60,63,.94) 100%);}
.tile--media.r-2::after{background:linear-gradient(180deg,rgba(34,60,63,0) 25%,rgba(34,60,63,.6) 58%,rgba(34,60,63,.95) 100%);}
.tile--media .tile-title,.tile--media .tile-text{text-shadow:0 1px 12px rgba(20,36,38,.45);}
.tile--media .tile-text{color:rgba(242,240,235,.9);}
@media (max-width:599px){ .tile--media::after{background:linear-gradient(180deg,rgba(34,60,63,.3) 0%,rgba(34,60,63,.7) 35%,rgba(34,60,63,.95) 100%);} }


/* ==========================================================================
   DETECTOR FIXES
   ========================================================================== */
:root{
  --muted:#46595B;            /* was #5E7274: now ≥4.5:1 on bone, bone-2 and the UAE section */
  --t1-lh:56px;               /* headline leading ≥1.27 */
}
@media (max-width:1023px){ :root{ --t1-lh:48px; } }
@media (max-width:599px){ :root{ --t1-lh:44px; } }
.field input::placeholder,.field textarea::placeholder{color:#5B6D6F;}
.field select:invalid,.field select option[value=""]{color:#5B6D6F;}
/* no side stripes */
.callout{border-inline-start:0;padding:var(--s6);background:var(--bone-2);border-radius:var(--radius-card);}
html[dir="rtl"] .callout{padding:var(--s6);}
.field-hint{border-inline-start:0;padding-inline-start:0;}
/* no coloured top border on rounded cards */
.versus .card:first-child,.versus .card:last-child{border-top:1px solid var(--line);}
/* no glow on dark */
.hero .btn-primary{box-shadow:none;}
/* no 11px text */
.map-credit{font-size:12px;}
/* long form labels stay sentence case */
.field label{text-transform:none;letter-spacing:0;font-size:13px;line-height:var(--caps-lh);}
/* animate specific properties only */
.btn{transition:background-color .2s ease,color .2s ease,border-color .2s ease;}
.lang-toggle,.nav a{transition:color .18s ease,opacity .18s ease,background-color .18s ease,border-color .18s ease;}
/* clip, not hidden: keeps sticky/parallax children positioned */
.why-ajman,.services-rail,.hero,.page-head,.pattern-band{overflow:clip;}
html.deck main > section{overflow:clip;}
html.deck main > section.services-rail{overflow:visible;overflow-x:clip;}
/* footer column labels (were h4) */
.site-footer .f-head{font-size:var(--t4-caps);line-height:var(--caps-lh);letter-spacing:.18em;text-transform:uppercase;color:var(--lime);margin:0 0 var(--s4);font-weight:600;}
html[lang="ar"] .site-footer .f-head{letter-spacing:0;text-transform:none;font-size:14px;}
/* the step list without numbers: a lime tick instead */
.step{position:relative;}
.eyebrow{display:none;}

.slide-index{display:none;}

/* ==========================================================================
   ABOUT (home) — editorial: the mark draws itself, the statement answers it
   ========================================================================== */
.about-ed{background:var(--bone);padding-block:var(--s32);overflow:clip;}
html.deck main > section.about-ed{justify-content:center;}
.about-ed-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s16);align-items:center;}

/* the mark */
.about-ed-mark{position:relative;display:grid;place-items:center;aspect-ratio:1;color:var(--green);text-decoration:none;}
.about-ed-rings{position:absolute;inset:-6%;border-radius:50%;pointer-events:none;
  background:repeating-radial-gradient(circle at 50% 62%,rgba(34,60,63,.07) 0 1px,transparent 1px 34px);
  -webkit-mask-image:radial-gradient(circle at 50% 62%,#000 30%,transparent 70%);mask-image:radial-gradient(circle at 50% 62%,#000 30%,transparent 70%);}
.about-ed-svg{position:relative;width:78%;height:auto;overflow:visible;}
.about-ed-svg .mk-fill{fill:currentColor;}
.about-ed-svg .mk-line{fill:none;stroke:var(--green);stroke-width:.9;stroke-linejoin:round;opacity:0;}
html.js .about-ed-svg .mk-fill{opacity:0;transform:translateY(6px);transition:opacity 1.1s cubic-bezier(.16,1,.3,1) 1.5s,transform 1.1s cubic-bezier(.16,1,.3,1) 1.5s;}
html.js .about-ed-svg .mk-line{opacity:1;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2s cubic-bezier(.65,0,.35,1),opacity .8s ease 2.2s;}
html.js .about-ed.is-drawn .mk-line{stroke-dashoffset:0;opacity:0;}
html.js .about-ed.is-drawn .mk-fill{opacity:1;transform:none;}
.about-ed-mark:hover .mk-fill{fill:var(--green-600);}

/* the statement */
.about-ed-title{margin:0;color:var(--green);font-size:var(--t1);line-height:var(--t1-lh);letter-spacing:-.025em;max-width:14ch;}
html[lang="ar"] .about-ed-title{letter-spacing:0;}
.about-ed-copy .about-ed-text{margin:var(--s6) 0 0;max-width:48ch;color:var(--muted);font-size:var(--t3);line-height:var(--t3-lh);}
.about-ed-list{list-style:none;margin:var(--s12) 0 0;padding:0;counter-reset:none;max-width:560px;}
.about-ed-list li{display:flex;align-items:center;gap:var(--s4);padding:var(--s4) 0;border-top:1px solid var(--line);
  font-size:var(--t4);line-height:var(--t4-lh);color:var(--ink);font-weight:500;}
.about-ed-list li:last-child{border-bottom:1px solid var(--line);}
.about-ed-list li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--lime-dim);flex-shrink:0;box-shadow:0 0 0 4px rgba(195,206,107,.22);}
.about-ed-link{display:inline-flex;align-items:center;gap:var(--s3);margin-top:var(--s8);color:var(--green);text-decoration:none;
  font-size:var(--t4-caps);line-height:var(--caps-lh);font-weight:600;letter-spacing:.14em;text-transform:uppercase;}
html[lang="ar"] .about-ed-link{letter-spacing:0;text-transform:none;font-size:14px;}
.about-ed-link svg{width:40px;height:40px;padding:12px;border-radius:50%;background:var(--green);stroke:var(--lime);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
  transition:transform .4s cubic-bezier(.16,1,.3,1),background-color .3s;}
html[dir="rtl"] .about-ed-link svg{transform:scaleX(-1);}
.about-ed-link:hover svg{transform:translateX(4px);background:var(--green-600);}
html[dir="rtl"] .about-ed-link:hover svg{transform:scaleX(-1) translateX(4px);}

@media (max-width:899px){
  .about-ed-grid{grid-template-columns:minmax(0,1fr);gap:var(--s8);}
  .about-ed-mark{max-width:280px;width:100%;justify-self:center;}
  .about-ed-title{max-width:none;}
}
@media (max-width:599px){ .about-ed{padding-block:var(--s16);} }
@media (prefers-reduced-motion:reduce){
  html.js .about-ed-svg .mk-fill{opacity:1;transform:none;transition:none;}
  html.js .about-ed-svg .mk-line{display:none;}
}
html[lang="ar"] .about-ed-title{max-width:18ch;}

/* ==========================================================================
   WHY AJMAN — bento: a drifting Corniche tile and five reasons
   ========================================================================== */
.why-bento .bento{--bento-row:minmax(220px,auto);}
.why-photo-tile h2.tile-title{font-size:var(--t1);line-height:var(--t1-lh);max-width:none;}
.why-photo-tile .tile-text{font-size:var(--t3);line-height:var(--t3-lh);max-width:34ch;}
html.js .why-photo-tile > img{animation:whyDrift 24s ease-in-out infinite alternate;transform-origin:60% 55%;}
@keyframes whyDrift{from{transform:scale(1.02) translate3d(0,0,0)}to{transform:scale(1.14) translate3d(-2.5%,-1.5%,0)}}

/* a slow light moving through the coloured tiles */
.tile--glow::before{content:"";position:absolute;inset:-40%;z-index:-1;pointer-events:none;
  background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.22),transparent 45%);
  animation:tileGlow 14s ease-in-out infinite alternate;}
.tile--green.tile--glow::before{background:radial-gradient(circle at 30% 30%,rgba(217,226,134,.2),transparent 45%);}
@keyframes tileGlow{from{transform:translate3d(-12%,-8%,0)}to{transform:translate3d(18%,14%,0)}}

/* tiles rise in one after another */
html.js .why-bento .tile{opacity:0;transform:translateY(24px);
  transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1),box-shadow .5s;}
html.js .why-bento.is-in .tile{opacity:1;transform:none;}
html.js .why-bento.is-in .tile:nth-child(2){transition-delay:.08s}
html.js .why-bento.is-in .tile:nth-child(3){transition-delay:.16s}
html.js .why-bento.is-in .tile:nth-child(4){transition-delay:.24s}
html.js .why-bento.is-in .tile:nth-child(5){transition-delay:.32s}
html.js .why-bento.is-in .tile:nth-child(6){transition-delay:.4s}
html.js .why-bento.is-in a.tile:hover{transform:translateY(-3px);transition-delay:0s;}
html.is-bot .why-bento .tile{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  html.js .why-photo-tile > img,.tile--glow::before{animation:none;}
  html.js .why-bento .tile{opacity:1;transform:none;transition:none;}
}
@media (max-width:599px){ .why-bento .bento{--bento-row:auto;} .why-bento .tile:not(.tile--media){min-height:0;} }

/* ==========================================================================
   CHARTS (charts.py) — emphasis palette: the subject in brand green, the rest
   in a muted grey (relief: every bar is direct-labelled and has a table view)
   ========================================================================== */
.viz{--viz-hi:#223C3F;--viz-lo:#A7B2B0;margin:0;padding:var(--s8);background:#fff;border-radius:var(--radius-lg);
  box-shadow:0 1px 0 rgba(34,60,63,.04),0 24px 48px -36px rgba(34,60,63,.35);display:flex;flex-direction:column;gap:var(--s2);}
.on-green .viz,.tile--green .viz{box-shadow:none;}
.viz-title{font-size:var(--t3);line-height:var(--t3-lh);font-weight:600;color:var(--ink);}
.viz-sub{margin:0;font-size:14px;line-height:var(--s6);color:var(--muted);max-width:none;}
.viz-plot{margin-top:var(--s4);}
.viz-svg{display:block;width:100%;height:auto;overflow:visible;font-family:var(--font-en);}
html[lang="ar"] .viz-svg{font-family:var(--font-ar);}
.viz-axis{stroke:#DCD9D1;stroke-width:1;}
.viz-grid{stroke:#ECE9E2;stroke-width:1;}
.viz-tick{fill:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;}
.viz-label{fill:var(--muted);font-size:14px;}
.viz-label.is-hi{fill:var(--ink);font-weight:600;}
.viz-value{fill:var(--muted);font-size:13px;font-variant-numeric:tabular-nums;}
.viz-value.is-hi{fill:var(--ink);font-weight:600;}
.viz-mark{transition:opacity .2s;cursor:default;outline:none;}
.viz-plot:hover .viz-mark{opacity:.55;}
.viz-plot .viz-mark:hover,.viz-plot .viz-mark:focus-visible{opacity:1;}
.viz-mark:focus-visible{stroke:var(--lime-dim);stroke-width:2;}
.viz-source{margin:var(--s4) 0 0;font-size:12px;line-height:var(--s4);color:var(--muted);max-width:none;}
.viz-table summary{cursor:pointer;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--green);margin-top:var(--s2);width:max-content;}
html[lang="ar"] .viz-table summary{letter-spacing:0;text-transform:none;font-size:13px;}
.viz-table table{width:100%;border-collapse:collapse;margin-top:var(--s3);font-size:14px;}
.viz-table th,.viz-table td{text-align:start;padding:var(--s2) 0;border-top:1px solid var(--line);font-weight:400;}
.viz-table td{text-align:end;font-variant-numeric:tabular-nums;}
html[dir="rtl"] .viz-table td{text-align:start;}
.viz-tip{position:fixed;z-index:300;pointer-events:none;background:var(--green);color:var(--bone);font-size:13px;line-height:var(--s4);
  padding:var(--s2) var(--s3);border-radius:var(--radius);box-shadow:0 12px 24px -12px rgba(0,0,0,.4);opacity:0;transform:translateY(4px);transition:opacity .15s,transform .15s;}
.viz-tip.is-on{opacity:1;transform:none;}

/* stat tiles */
.stat{display:flex;flex-direction:column;gap:var(--s2);}
.stat-value{font-size:clamp(36px,4vw,52px);line-height:1;font-weight:600;letter-spacing:-.02em;color:inherit;}
.stat-label{font-size:var(--t4);line-height:var(--s6);font-weight:500;}
.stat-note{font-size:12px;line-height:var(--s4);opacity:.75;}
@media (max-width:599px){ .viz{padding:var(--s6);} .viz-label{font-size:13px;} }

/* ==========================================================================
   ICONS (assets/img/icons.svg) — monoline, in a small bento badge that takes
   the tone of whatever it sits on. Drawn on as it scrolls in (main.js §11).
   ========================================================================== */
.ico{--ico-bg:var(--bone-2);--ico-fg:var(--green);
  display:inline-grid;place-items:center;flex-shrink:0;width:48px;height:48px;border-radius:12px;
  background:var(--ico-bg);color:var(--ico-fg);margin-bottom:var(--s4);
  transition:transform .5s cubic-bezier(.16,1,.3,1),background-color .3s;}
.ico-svg{width:24px;height:24px;display:block;overflow:visible;
  fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;}
.ico--sm{width:32px;height:32px;border-radius:8px;margin:0;}
.ico--sm .ico-svg{width:18px;height:18px;}
/* tones */
.tile--green .ico,.on-green .ico,.rail-card .ico,.hero .ico{--ico-bg:rgba(217,226,134,.12);--ico-fg:var(--lime);}
.tile--lime .ico{--ico-bg:rgba(34,60,63,.1);--ico-fg:var(--green);}
.tile--white .ico,.card .ico,.sector-card .ico,.emirate-card .ico{--ico-bg:var(--bone-2);--ico-fg:var(--green);}
.tile--green .ico{margin-bottom:auto;}
.tile .ico{margin-bottom:auto;}      /* in a tile, the icon holds the top; content stays at the bottom */
/* hover: the badge lifts, the line thickens a touch */
.tile:hover .ico,.card:hover .ico,.sector-card:hover .ico,.rail-card:hover .ico{transform:translateY(-2px) rotate(-4deg);}
html[dir="rtl"] .tile:hover .ico,html[dir="rtl"] .card:hover .ico,html[dir="rtl"] .sector-card:hover .ico,html[dir="rtl"] .rail-card:hover .ico{transform:translateY(-2px) rotate(4deg);}
/* draw-on: stroke-dash is inherited into the sprite's paths (each has pathLength=1) */
html.js .ico-svg{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.2s cubic-bezier(.65,0,.35,1);}
html.js .ico.is-drawn .ico-svg{stroke-dashoffset:0;}
html.is-bot .ico-svg{stroke-dashoffset:0;}
@media (prefers-reduced-motion:reduce){ html.js .ico-svg{stroke-dashoffset:0;transition:none;} .ico{transition:none;} }

/* lists that carry small icons instead of dots */
.hero-trust li{align-items:center;gap:var(--s3);}
.hero-trust li::before,.about-ed-list li::before{display:none;}
.about-ed-list li{gap:var(--s4);}
.about-ed-list .ico{--ico-bg:var(--bone-2);--ico-fg:var(--green);}
.rail-card .ico{margin-bottom:var(--s2);}
.card .ico,.sector-card .ico{margin-bottom:var(--s6);}
.step .ico{margin-bottom:var(--s4);}

/* MARKET (invest-uae) */
.market-stats .h-lg{color:var(--lime);margin-bottom:var(--s4);}
.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s4);margin-top:var(--s12);}
.stat-row .stat{padding:var(--s8);border-radius:var(--radius-lg);background:rgba(242,240,235,.05);box-shadow:inset 0 0 0 1px rgba(217,226,134,.16);color:var(--bone);}
.stat-row .stat-value{color:var(--lime);}
.stat-row .stat-note{color:var(--muted-on-green);opacity:1;}
.bento--charts{grid-auto-rows:auto;align-items:stretch;}
.bento--charts > div{display:flex;}
.bento--charts .viz{flex:1;}
@media (max-width:1023px){ .stat-row{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:599px){ .stat-row{grid-template-columns:minmax(0,1fr);} }
.stat-row .stat-value{font-size:clamp(32px,3.2vw,44px);white-space:nowrap;}
.viz-compact{display:none;}
@media (max-width:599px){ .viz-wide{display:none;} .viz-compact{display:block;} .viz-compact .viz-label{font-size:13px;} }
html[dir="rtl"] .viz-compact{direction:ltr;}
/* charts keep a left-to-right axis in both languages; Arabic words still shape correctly inside */
.viz-svg{direction:ltr;unicode-bidi:isolate;}

/* ==========================================================================
   PLAIN — flatter surfaces, calmer motion
   ========================================================================== */
.card,.tile,.sector-card,.emirate-card,.viz,.rail-card,.stat-row .stat,.why-photo,.tile--bone{
  box-shadow:none !important;}
.card,.sector-card,.emirate-card,.viz,.tile--white{border:1px solid var(--line);}
.tile--bone{box-shadow:none;border:1px solid var(--line);}
a.tile:hover,.card-link:hover,.emirate-card:hover,.sector-card:hover,.cat-card:hover,.rail-card:hover,.card:hover{transform:none !important;box-shadow:none !important;}
a.tile:hover,.card-link:hover{border-color:var(--lime-dim);}
.tile:hover .ico,.card:hover .ico,.sector-card:hover .ico,.rail-card:hover .ico,
html[dir="rtl"] .tile:hover .ico,html[dir="rtl"] .card:hover .ico,html[dir="rtl"] .sector-card:hover .ico,html[dir="rtl"] .rail-card:hover .ico{transform:none;}
.tile--glow::before,.rail-card::before{animation:none;display:none;}
html.js .why-photo-tile > img{animation:none;transform:none;}
a.tile--media:hover > img,.card:hover .card-media,.why-photo:hover img{transform:none;}
.emirate-card::before{display:none;}
.tile-arrow{transition:none;}
a.tile:hover .tile-arrow,html[dir="rtl"] a.tile:hover .tile-arrow{transform:none;}
.viz{border-color:var(--line);}

/* ==========================================================================
   GREEN CARDS — a steady rhythm of brand-green cards
   ========================================================================== */
.card.is-green,
.sector-grid > .sector-card:nth-child(4n+1),.sector-grid > .sector-card:nth-child(4n+4),
.emirate-grid > .emirate-card:nth-child(3n+2),
.grid-2 > .card:nth-child(4n+1),.grid-2 > .card:nth-child(4n+4),
.grid-3 > .card:nth-child(3n+2){
  background:var(--green);border-color:var(--green);color:var(--bone);}
.sector-grid > .sector-card:nth-child(4n+1) h3,.sector-grid > .sector-card:nth-child(4n+4) h3,
.emirate-grid > .emirate-card:nth-child(3n+2) h3,
.grid-2 > .card:nth-child(4n+1) :is(h2,h3),.grid-2 > .card:nth-child(4n+4) :is(h2,h3),
.grid-3 > .card:nth-child(3n+2) :is(h2,h3){color:var(--bone);}
.sector-grid > .sector-card:nth-child(4n+1) :is(p,dd),.sector-grid > .sector-card:nth-child(4n+4) :is(p,dd),
.emirate-grid > .emirate-card:nth-child(3n+2) p,
.grid-2 > .card:nth-child(4n+1) p,.grid-2 > .card:nth-child(4n+4) p,
.grid-3 > .card:nth-child(3n+2) p{color:var(--muted-on-green);}
.sector-grid > .sector-card:nth-child(4n+1) dt,.sector-grid > .sector-card:nth-child(4n+4) dt,
.emirate-grid > .emirate-card:nth-child(3n+2) .trade-label{color:var(--lime);}
.sector-grid > .sector-card:nth-child(4n+1) .sector-nexora,.sector-grid > .sector-card:nth-child(4n+4) .sector-nexora,
.emirate-grid > .emirate-card:nth-child(3n+2) .trade{border-color:var(--line-on-green);color:var(--bone);}
.sector-grid > .sector-card:nth-child(4n+1) .sector-nexora b,.sector-grid > .sector-card:nth-child(4n+4) .sector-nexora b{color:var(--lime);}
.sector-grid > .sector-card:nth-child(4n+1) .ico,.sector-grid > .sector-card:nth-child(4n+4) .ico,
.emirate-grid > .emirate-card:nth-child(3n+2) .ico,
.grid-2 > .card:nth-child(4n+1) .ico,.grid-2 > .card:nth-child(4n+4) .ico,
.grid-3 > .card:nth-child(3n+2) .ico{--ico-bg:rgba(217,226,134,.12);--ico-fg:var(--lime);}
.grid-2 > .card:nth-child(4n+1) .more,.grid-2 > .card:nth-child(4n+4) .more,.grid-3 > .card:nth-child(3n+2) .more{color:var(--lime);border-bottom-color:rgba(217,226,134,.5);}
/* cards with a photo on top stay light */
.card:has(.card-media){background:#fff !important;border-color:var(--line) !important;color:var(--ink) !important;}
.card:has(.card-media) :is(h2,h3){color:var(--ink) !important;}
.card:has(.card-media) p{color:var(--muted) !important;}
.card h2{margin-bottom:var(--s3);}

/* ==========================================================================
   TWO HEROES — 1: the 3D logo beside a living outline of the UAE (main.js §12).
                   The intro lands the logo in the centre; as the map draws in,
                   the logo glides to its side and the map takes the other.
                2: welcome + about + the two ways to start
   ========================================================================== */
.hero--mark,html.js .hero--mark{background-color:var(--green);background-image:radial-gradient(ellipse 70% 60% at 50% 50%,#2A4A4E 0%,var(--green) 70%);padding:0;
  display:flex;flex-direction:column;justify-content:center;align-items:stretch;isolation:isolate;}
html.js .hero--mark::before,.hero--mark::after{content:none;display:none;}
/* one cell: the map large on the right, the logo laid over its western (left) side.
   Left-to-right in both languages so the logo never covers the emirates. */
.hero-split{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;width:100%;direction:ltr;}
.hero-split > *{grid-area:1 / 1;}
.hero-mark-wrap{position:relative;z-index:2;display:grid;place-items:center;pointer-events:none;justify-self:start;
  transition:transform 1.6s cubic-bezier(.65,0,.35,1);}
html.js .hero--mark:not(.is-live) .hero-mark-wrap{transform:translate(var(--shift-x,0px),var(--shift-y,0px));}
.hero--mark .hero-stage{order:0;width:min(480px,40vw,58vh);max-width:none;margin:0;}

/* the map */
.uae-bg{position:relative;z-index:0;display:grid;place-items:center;pointer-events:none;will-change:transform;justify-self:end;width:86%;}
.uae-map{display:block;width:100%;height:auto;max-height:88vh;overflow:visible;direction:ltr;unicode-bidi:isolate;
  transition:opacity 1.4s ease .3s,transform 1.8s cubic-bezier(.16,1,.3,1) .2s;}
html.js .hero--mark:not(.is-live) .uae-map{opacity:0;transform:translateX(6%);}
.uae-dots{fill:rgba(217,226,134,.13);}
.uae-base{fill:none;stroke:rgba(217,226,134,.34);stroke-width:1.3;stroke-linejoin:round;}
.uae-lit .uae-dots{fill:rgba(217,226,134,.55);}
.uae-lit path{fill:rgba(217,226,134,.05);stroke:var(--lime);stroke-width:1.6;vector-effect:non-scaling-stroke;stroke-linejoin:round;}
.uae-trace{fill:none;stroke:var(--lime);stroke-width:2.6;stroke-linecap:round;
  stroke-dasharray:.05 .95;stroke-dashoffset:1;opacity:.9;}
.uae-trace--2{stroke-dasharray:.018 .982;stroke-width:2;opacity:.55;}
.uae-arc{fill:none;stroke:var(--lime);stroke-width:1.6;stroke-linecap:round;
  stroke-dasharray:1;stroke-dashoffset:1;opacity:.7;}
.uae-city .uae-dot{fill:var(--bone);opacity:.85;}
.uae-city.is-home .uae-dot{fill:var(--lime);opacity:1;}
.uae-pulse{fill:none;stroke:var(--lime);stroke-width:1;vector-effect:non-scaling-stroke;opacity:0;transform-box:fill-box;transform-origin:center;}
.uae-city text{font-size:13px;font-weight:500;fill:var(--bone);opacity:.55;letter-spacing:.06em;transition:opacity .4s ease,fill .4s ease;}
html[lang="ar"] .uae-city text{letter-spacing:0;font-size:15px;}
.uae-city.is-home text{fill:var(--lime);opacity:1;font-weight:600;font-size:15px;}
.uae-city.is-quiet text{opacity:0;}
.uae-city.is-near text{opacity:1;fill:var(--lime);}
.uae-city.is-near .uae-dot{fill:var(--lime);opacity:1;}

/* the loops: light runs the coast, lines reach out from Ajman, the cities breathe */
html.js .uae-base{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 3.2s cubic-bezier(.65,0,.35,1);}
html.js .hero--mark.is-live .uae-base{stroke-dashoffset:0;}
html.js .uae-lit,html.js .uae-dots{opacity:0;transition:opacity 1.6s ease 1.2s;}
html.js .hero--mark.is-live .uae-lit,html.js .hero--mark.is-live .uae-dots{opacity:1;}
html.js .uae-cities{opacity:0;transition:opacity 1.2s ease 2s;}
html.js .hero--mark.is-live .uae-cities{opacity:1;}
.hero--mark.is-live .uae-trace{animation:uaeTrace 18s linear 2.4s infinite;}
.hero--mark.is-live .uae-trace--2{animation:uaeTrace 11s linear 3s infinite reverse;}
.hero--mark.is-live .uae-arc{animation:uaeArc 7s cubic-bezier(.65,0,.35,1) calc(2.6s + var(--i) * 1.1s) infinite;}
.hero--mark.is-live .uae-pulse{animation:uaePulse 3.6s ease-out 2.4s infinite;}
.hero--mark.is-live .uae-city:nth-child(2n) .uae-pulse{animation-delay:3.6s;}
.hero--mark.is-live .uae-city.is-home .uae-pulse{animation-duration:2.4s;}
@keyframes uaeTrace{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes uaeArc{0%{stroke-dashoffset:1;opacity:.8}40%{stroke-dashoffset:0;opacity:.8}75%,100%{stroke-dashoffset:-1;opacity:0}}
@keyframes uaePulse{0%{transform:scale(.3);opacity:.9}100%{transform:scale(2.4);opacity:0}}
.hero--mark.is-paused *{animation-play-state:paused !important;}
html.is-bot .uae-base{stroke-dashoffset:0;}
html.is-bot .uae-lit,html.is-bot .uae-dots,html.is-bot .uae-cities{opacity:1;}
@media (prefers-reduced-motion:reduce){
  .uae-trace,.uae-arc{display:none;}
  .hero--mark .uae-pulse{animation:none !important;}
  html.js .uae-base{transition:none;stroke-dashoffset:0;}
  html.js .uae-lit,html.js .uae-dots,html.js .uae-cities{opacity:1;transition:none;}
}
@media (prefers-reduced-motion:reduce){
  .hero-mark-wrap,.uae-map{transition:none;}
  html.js .hero--mark .hero-mark-wrap,html.js .hero--mark .uae-map{transform:none;opacity:1;}
}
@media (max-width:899px){
  /* the logo top-left over the Gulf, the map filling the width below it */
  .hero-split{min-height:min(560px,66svh);align-items:stretch;}
  .hero-mark-wrap{align-self:start;}
  .hero--mark .hero-stage{width:min(340px,62vw,38svh);}
  .uae-bg{align-self:end;width:112%;margin-inline-end:-6%;}
  .uae-map{max-height:none;}
  html.js .hero--mark:not(.is-live) .uae-map{transform:translateY(6%);}
  .uae-city text{font-size:22px;}
  .uae-city.is-home text{font-size:24px;}
}

/* ---- hero 2 ---- */
.hero-about{background:var(--bone);padding-block:var(--s16);}
.hero-about .about-ed-grid{grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:var(--s16);}
.hero-about .about-ed-mark{max-width:440px;width:100%;justify-self:center;}
.hero-about-h1{margin:0;color:var(--green);font-size:var(--t1);line-height:var(--t1-lh);letter-spacing:-.025em;font-weight:600;max-width:none;}
html[lang="ar"] .hero-about-h1{letter-spacing:0;}
.hero-about .lead{margin:var(--s6) 0 0;max-width:46ch;color:var(--muted);}
.hero-about-cta{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s8);}
.hero-about-cta .btn{min-height:56px;padding-inline:var(--s8);}
.hero-about-more{margin-top:var(--s8);padding-top:var(--s8);border-top:1px solid var(--line);}
.hero-about-h2{margin:0;color:var(--green);font-size:var(--t2);line-height:var(--t2-lh);font-weight:600;}
.hero-about-more .about-ed-text{margin:var(--s3) 0 0;font-size:var(--t4);line-height:var(--t4-lh);max-width:60ch;}
.hero-about .about-ed-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--s8);margin-top:var(--s6);max-width:none;}
.hero-about .about-ed-list li:nth-last-child(2){border-bottom:1px solid var(--line);}
.hero-about .about-ed-link{margin-top:var(--s6);}
.hero-about .about-ed-list li{padding:var(--s3) 0;}
@media (max-width:899px){
  .hero-about .about-ed-grid{grid-template-columns:minmax(0,1fr);gap:var(--s6);}
  .hero-about .about-ed-mark{max-width:200px;}
  .hero-about-h1{max-width:none;}
}
@media (max-width:599px){
  .hero-about{padding-block:var(--s16);}
  .hero-about .about-ed-list{grid-template-columns:minmax(0,1fr);}
  .hero-about .about-ed-list li:nth-last-child(2){border-bottom:0;}
  .hero-about-cta{flex-direction:column;}
  .hero-about-cta .btn{width:100%;}
}
@media (max-width:599px){ .uae-city.is-quiet text{opacity:0 !important;} }

/* hero 2: list above the buttons, "More about us" under them */
.hero-about .about-ed-list{margin-top:var(--s8);}
.hero-about-more{margin-top:var(--s6);padding-top:0;border-top:0;}
.hero-about .hero-about-more .about-ed-link{margin-top:0;}

/* ==========================================================================
   ENQUIRY FORM — three short steps (main.js §3)
   ========================================================================== */
.lead-steps fieldset{border:0;margin:0;padding:0;min-width:0;}
.lead-steps legend{padding:0;margin:0 0 var(--s6);font-size:var(--t2);line-height:var(--t2-lh);font-weight:600;color:var(--green);}
.lead-steps .form-step + .form-step{margin-top:var(--s12);}
.lead-steps .field-label{display:block;margin-bottom:var(--s3);font-size:13px;line-height:var(--caps-lh);font-weight:600;color:var(--ink);}

/* the meter: "Step 1 of 3" and a thin bar */
.steps-meter{display:none;align-items:center;gap:var(--s4);margin-bottom:var(--s8);}
.steps-count{font-size:var(--t4-caps);line-height:var(--caps-lh);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);white-space:nowrap;}
html[lang="ar"] .steps-count{letter-spacing:0;text-transform:none;font-size:14px;}
.steps-bar{flex:1;height:4px;border-radius:4px;background:var(--line);overflow:hidden;}
.steps-bar i{display:block;height:100%;width:33%;background:var(--green);border-radius:4px;transition:width .5s cubic-bezier(.16,1,.3,1);}

/* one step at a time once JS is running */
.lead-steps.is-stepped .steps-meter{display:flex;}
.lead-steps.is-stepped .form-step{display:none;margin-top:0;}
.lead-steps.is-stepped .form-step.is-current{display:block;animation:stepIn .45s cubic-bezier(.16,1,.3,1);}
@keyframes stepIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* topic and location picks: big, tappable */
.pick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3);}
.pick-grid--2{grid-template-columns:repeat(2,minmax(0,1fr));}
.pick{position:relative;display:block;cursor:pointer;}
.pick input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer;}
.pick-box{display:flex;align-items:center;gap:var(--s3);min-height:56px;height:100%;padding:var(--s3) var(--s4);border:1px solid var(--line);border-radius:var(--radius);
  background:#fff;color:var(--ink);font-size:var(--t4);line-height:1.35;font-weight:500;
  transition:border-color .2s ease,background-color .2s ease,color .2s ease;}
.pick:hover .pick-box{border-color:var(--green);}
.pick input:checked + span{background:var(--green);border-color:var(--green);color:var(--lime);}
.pick input:focus-visible + span{outline:2px solid var(--green);outline-offset:2px;}

.lead-steps textarea{min-height:112px;}
.step-actions{display:flex;gap:var(--s3);margin-top:var(--s6);}
.step-actions .btn{min-height:56px;}
.step-actions .btn-primary{flex:1;}
.lead-steps:not(.is-stepped) .step-back,.lead-steps:not(.is-stepped) .step-next{display:none;}
.lead-steps .form-note{margin-top:var(--s4);}
.field-error{margin:0 0 var(--s2);color:#A4473A;font-size:14px;line-height:1.5;}
.field-error[hidden]{display:none;}

@media (max-width:599px){
  .pick-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (prefers-reduced-motion:reduce){
  .lead-steps.is-stepped .form-step.is-current{animation:none;}
  .steps-bar i{transition:none;}
}

/* topic and location buttons: an icon badge beside the words */
.pick-box .ico{flex-shrink:0;--ico-bg:var(--bone-2);--ico-fg:var(--green);transition:background-color .2s ease,color .2s ease;}
.pick input:checked + .pick-box .ico{--ico-bg:rgba(217,226,134,.16);--ico-fg:var(--lime);}

/* ==========================================================================
   HOME ENQUIRY — green section, the form in a light card
   ========================================================================== */
.enquire-home{position:relative;isolation:isolate;
  background:radial-gradient(ellipse 60% 70% at 85% 30%,#2E5155 0%,transparent 70%),var(--green);}
.enquire-home::before{content:"";position:absolute;inset:auto 0 0 0;height:160px;z-index:-1;pointer-events:none;
  background:url("../img/pattern.png") center bottom/auto 100% repeat-x;opacity:.03;}
.enquire-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--s12);align-items:center;}

/* left: the promise */
.enquire-home .enquire-title{color:var(--lime);margin:0;}
.enquire-home .lead{margin:var(--s4) 0 0;color:var(--muted-on-green);max-width:40ch;}
.enquire-home h3.enquire-next-h{color:var(--lime);}
.enquire-next-h{margin:var(--s12) 0 var(--s4);font-size:var(--t4-caps);line-height:var(--caps-lh);letter-spacing:.16em;text-transform:uppercase;color:var(--lime);font-weight:600;}
html[lang="ar"] .enquire-next-h{letter-spacing:0;text-transform:none;font-size:14px;}
.enquire-next{list-style:none;margin:0 0 var(--s8);padding:0;}
.enquire-next li{display:flex;align-items:center;gap:var(--s4);padding:var(--s4) 0;border-top:1px solid var(--line-on-green);}
.enquire-next li:last-child{border-bottom:1px solid var(--line-on-green);}
.enquire-next li p{margin:0;color:var(--bone);font-size:var(--t4);line-height:var(--t4-lh);}
.enquire-next .ico{flex-shrink:0;--ico-bg:rgba(217,226,134,.12);--ico-fg:var(--lime);}

/* right: the card */
.enquire-card{background:var(--bone);color:var(--ink);border-radius:var(--radius-lg);padding:var(--s8) var(--s8) var(--s8);
  box-shadow:inset 0 0 0 1px rgba(217,226,134,.25);}
.enquire-card .lead-steps legend{color:var(--green);}
.enquire-card .steps-count{color:var(--green);}
.enquire-card .steps-bar{background:rgba(34,60,63,.12);}
.enquire-card .steps-bar i{background:linear-gradient(90deg,var(--green),#4E7A6F);}
.enquire-card .pick-box{background:#fff;border-color:rgba(34,60,63,.14);}
.enquire-card .pick:hover .pick-box{border-color:var(--green);background:#FBFBF6;}
.enquire-card .pick input:checked + .pick-box{background:var(--green);border-color:var(--green);color:var(--lime);}
.enquire-card .field input,.enquire-card .field textarea{background:#fff;}
.enquire-card .btn-primary{background:var(--green);color:var(--lime);border-color:var(--green);}
.enquire-card .btn-primary:hover{background:#2E5155;border-color:#2E5155;color:var(--lime);}
.enquire-card .btn-ghost{color:var(--green);border-color:rgba(34,60,63,.3);}
.enquire-card .form-note{color:var(--muted);}

@media (max-width:1023px){
  .enquire-grid{grid-template-columns:minmax(0,1fr);gap:var(--s8);}
  .enquire-home .lead{max-width:none;}
}
@media (max-width:599px){
  .enquire-card{padding:var(--s6) var(--s4);margin-inline:calc(var(--s2) * -1);}
  .enquire-next-h{margin-top:var(--s8);}
}
.enquire-card .pick-box{padding:var(--s3);gap:var(--s3);}

/* ==========================================================================
   HERO 2 — premium: the mark in a green arch, a lime marker on "your place"
   ========================================================================== */
.hero-about{position:relative;isolation:isolate;
  background:radial-gradient(ellipse 45% 55% at 100% 0%,rgba(217,226,134,.22),transparent 65%),
             radial-gradient(ellipse 40% 50% at 0% 100%,rgba(34,60,63,.06),transparent 70%),var(--bone);}
.hero-about::after{content:"";position:absolute;inset:auto 0 0 0;height:120px;z-index:-1;pointer-events:none;
  background:url("../img/pattern.png") center bottom/auto 100% repeat-x;opacity:.05;}
.hero-about .about-ed-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s16);}

/* the arch: the logo's own gateway shape, holding the drawn mark */
.hero-arch{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;
  aspect-ratio:auto;width:100%;max-width:420px;height:min(580px,72vh);justify-self:center;
  padding:var(--s16) var(--s8) var(--s24);border-radius:999px 999px var(--radius-lg) var(--radius-lg);
  background:radial-gradient(ellipse 80% 60% at 50% 38%,#34595D 0%,var(--green) 72%);color:var(--lime);overflow:hidden;
  box-shadow:0 40px 80px -48px rgba(34,60,63,.7);}
.hero-arch-lines,.hero-arch-lines::before,.hero-arch-lines::after{position:absolute;border-radius:999px 999px var(--radius) var(--radius);
  border:1px solid rgba(217,226,134,.28);pointer-events:none;}
.hero-arch-lines{inset:var(--s4);}
.hero-arch-lines::before{content:"";inset:var(--s6);border-color:rgba(217,226,134,.16);}
.hero-arch-lines::after{content:"";inset:var(--s12);border-color:rgba(217,226,134,.08);}
.hero-arch .about-ed-svg{width:68%;}
.hero-arch .about-ed-svg .mk-line{stroke:var(--lime);}
.hero-arch:hover .mk-fill,.about-ed-mark.hero-arch:hover .mk-fill{fill:#E8EEA6;}
.hero-arch-cap{position:absolute;left:0;right:0;bottom:var(--s12);text-align:center;
  font-size:var(--t4-caps);line-height:var(--caps-lh);letter-spacing:.3em;text-transform:uppercase;color:var(--lime);opacity:.75;}
html[lang="ar"] .hero-arch-cap{letter-spacing:0;font-size:15px;}

/* the words */
.hero-kicker{display:flex;align-items:center;gap:var(--s3);margin:0 0 var(--s6);color:var(--green);
  font-size:var(--t4-caps);line-height:var(--caps-lh);letter-spacing:.2em;text-transform:uppercase;font-weight:600;}
.hero-kicker::before{content:"";width:32px;height:2px;border-radius:2px;background:var(--lime-dim);flex-shrink:0;}
html[lang="ar"] .hero-kicker{letter-spacing:0;text-transform:none;font-size:14px;}
.hero-about-h1 em{font-style:normal;padding:0 .08em;margin:0 -.08em;
  background:linear-gradient(180deg,transparent 60%,var(--lime) 60%,var(--lime) 90%,transparent 90%);
  -webkit-box-decoration-break:clone;box-decoration-break:clone;}

/* the four points as small cards */
.hero-about .about-ed-list{gap:var(--s3);margin-top:var(--s8);}
.hero-about .about-ed-list li,.hero-about .about-ed-list li:last-child,.hero-about .about-ed-list li:nth-last-child(2){
  border:1px solid rgba(34,60,63,.10);border-radius:var(--radius);background:rgba(255,255,255,.72);padding:var(--s3) var(--s4);}
.hero-about .about-ed-list .ico{--ico-bg:var(--green);--ico-fg:var(--lime);}

/* buttons */
.hero-about-cta .btn-primary{background:var(--green);border-color:var(--green);color:var(--lime);}
.hero-about-cta .btn-primary:hover{background:#2E5155;border-color:#2E5155;color:var(--lime);}
.hero-about-cta .btn-ghost{border-color:rgba(34,60,63,.35);}

@media (max-width:899px){
  .hero-arch{max-width:280px;height:340px;padding:var(--s12) var(--s6) var(--s16);}
  .hero-arch-cap{bottom:var(--s8);}
}
.hero-about-h1 em{white-space:nowrap;}
@media (max-width:899px){
  .hero-about .about-ed-grid{grid-template-columns:minmax(0,1fr);gap:var(--s8);}
  .hero-arch{height:320px;max-width:260px;}
}

/* home enquiry: one column — heading, the form card, WhatsApp */
.enquire-grid{grid-template-columns:minmax(0,1fr);gap:var(--s8);justify-items:center;text-align:center;}
.enquire-intro{max-width:640px;}
.enquire-home .lead{margin-inline:auto;}
.enquire-card{width:100%;max-width:840px;text-align:start;}
.enquire-wa{margin-top:calc(var(--s2) * -1);}
@media (max-width:599px){ .enquire-wa{width:100%;} }

/* home: enquiry + location in one section — the Ajman map under the green, a visit bar under the form */
.enquire-home.map-bg,html[dir="rtl"] .enquire-home.map-bg{background-color:var(--green);
  background-image:linear-gradient(180deg,rgba(34,60,63,.95) 0%,rgba(34,60,63,.84) 55%,rgba(34,60,63,.93) 100%),url("../img/ajman-map.jpg");
  background-size:cover,cover;background-position:center,62% 45%;}
.enquire-home .map-credit{bottom:var(--s3);}
.visit-bar{width:100%;max-width:840px;display:flex;align-items:center;gap:var(--s4);text-align:start;
  padding:var(--s6);border-radius:var(--radius-lg);background:rgba(34,60,63,.72);
  box-shadow:inset 0 0 0 1px rgba(217,226,134,.22);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);}
.visit-bar > .ico{flex-shrink:0;--ico-bg:rgba(217,226,134,.14);--ico-fg:var(--lime);}
.visit-text{flex:1;min-width:0;}
.enquire-home .visit-title{margin:0;color:var(--lime);font-size:var(--t3);line-height:var(--t3-lh);font-weight:600;}
.visit-note{margin:var(--s1) 0 0;color:var(--muted-on-green);font-size:var(--t4);line-height:var(--t4-lh);}
.visit-actions{display:flex;gap:var(--s3);flex-shrink:0;}
.visit-actions .btn{min-height:48px;white-space:nowrap;}
@media (max-width:899px){
  .visit-bar{flex-wrap:wrap;}
  .visit-text{flex-basis:calc(100% - 64px);}
  .visit-actions{width:100%;flex-direction:column;}
  .visit-actions .btn{width:100%;}
}
.enquire-home{padding-block:var(--s16);}
.enquire-home .enquire-grid{gap:var(--s6);}
.enquire-home .lead{margin-top:var(--s2);}
.enquire-home .lead-steps legend{margin-bottom:var(--s4);}
.enquire-home .steps-meter{margin-bottom:var(--s6);}
.visit-bar{padding:var(--s4) var(--s6);}

/* ==========================================================================
   NAV — frosted green bar, links in a soft pill track, the language as a globe
   ========================================================================== */
.site-header{background:rgba(34,60,63,.92);-webkit-backdrop-filter:saturate(1.3) blur(14px);backdrop-filter:saturate(1.3) blur(14px);
  border-bottom:1px solid rgba(217,226,134,.14);box-shadow:0 12px 32px -24px rgba(0,0,0,.6);}
.header-inner{min-height:64px;gap:var(--s6);}
.brand img{height:30px;}
.header-tools{gap:var(--s2);}

@media (min-width:901px){
  .nav{gap:var(--s1);padding:var(--s1);border-radius:999px;background:rgba(242,240,235,.05);
    box-shadow:inset 0 0 0 1px rgba(217,226,134,.14);}
  .nav a{padding:var(--s2) var(--s4);border-radius:999px;border-bottom:0;opacity:1;color:rgba(242,240,235,.82);
    transition:color .18s ease,background-color .18s ease;}
  .nav a:hover{background:rgba(217,226,134,.10);color:var(--lime);}
  .nav a[aria-current="page"]{background:var(--lime);color:var(--green);}
}
@media (min-width:901px) and (max-width:1100px){ .nav a{padding:var(--s2) var(--s3);} }

/* the globe */
.lang-toggle{position:relative;width:40px;height:40px;padding:0;border-radius:50%;display:inline-grid;place-items:center;
  background:rgba(242,240,235,.05);border:1px solid rgba(217,226,134,.3);color:var(--lime);cursor:pointer;
  transition:background-color .18s ease,color .18s ease,border-color .18s ease;}
.lang-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;
  transition:transform .6s cubic-bezier(.16,1,.3,1);}
.lang-toggle:hover{background:var(--lime);color:var(--green);border-color:var(--lime);}
.lang-toggle:hover svg{transform:rotate(-20deg);}
.lang-code{position:absolute;top:-4px;inset-inline-end:-6px;min-width:20px;height:18px;padding:0 4px;border-radius:9px;
  display:grid;place-items:center;background:var(--lime);color:var(--green);font-size:10px;line-height:1;font-weight:700;letter-spacing:.02em;
  box-shadow:0 0 0 2px var(--green);font-family:inherit;}
.lang-toggle:hover .lang-code{background:var(--bone);}
.nav-toggle{width:40px;height:40px;border-radius:50%;border-color:rgba(217,226,134,.3);background:rgba(242,240,235,.05);}
@media (max-width:900px){
  .nav{background:rgba(27,49,52,.98);}
  .nav a[aria-current="page"]{color:var(--lime);}
}
@media (prefers-reduced-motion:reduce){ .lang-toggle svg{transition:none;} .lang-toggle:hover svg{transform:none;} }

/* footer: the way into the portal (account / CRM sign-in) */
.f-portal{display:inline-flex;align-items:center;gap:var(--s2);margin-top:var(--s6);padding:var(--s2) var(--s4);border-radius:999px;
  border:1px solid rgba(217,226,134,.35);color:var(--lime);text-decoration:none;font-size:13px;font-weight:600;letter-spacing:.04em;
  transition:background-color .18s ease,color .18s ease,border-color .18s ease;}
.f-portal svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.f-portal:hover{background:var(--lime);color:var(--green);border-color:var(--lime);}
.site-footer .f-portal{color:var(--lime);}
.site-footer .f-portal:hover{color:var(--green);}

/* enquiry form: country code + number, and the live checks under each field */
.phone-row{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr);gap:var(--s2);}
.phone-row select{padding-inline-end:var(--s8);}
.phone-row input{letter-spacing:.02em;}
.field-check{margin:var(--s2) 0 0;font-size:14px;line-height:1.5;}
.field-check.is-ok{color:#3F6B3A;}
.field-check.is-ok::before{content:"✓ ";font-weight:700;}
.field-check.is-err{color:#A4473A;}
.field-check.is-warn{color:#8A6A1F;}
.field-check .linklike{background:none;border:0;padding:0;font:inherit;color:var(--green);font-weight:600;text-decoration:underline;cursor:pointer;}
.lead-steps input[aria-invalid="true"]{border-color:#C4675A;}
@media (max-width:420px){ .phone-row{grid-template-columns:minmax(0,1fr);} }
