/* ============================================================
   SITE SHELL — additions for the multi-page layout.
   Loaded last, after fonts.css, sections.css and base.css.
   ============================================================ */

/* ---------- header ---------- */
.nav a[aria-current="page"]{ color:var(--brand); background:color-mix(in oklab, var(--brand) 9%, transparent); }
.drawer a[aria-current="page"]{ color:var(--brand); }
a.icon-btn{ text-decoration:none; }
.brand__mark{ width:38px; height:38px; }
.mark{ display:block; overflow:visible; }

/* ---------- country page: list-your-company band ---------- */
.list-cta{
  display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap;
  padding:clamp(26px,3.6vw,44px); border-radius:var(--r-xl);
  background:var(--pri-900); color:#E9EDFB;
}
html[data-theme="dark"] .list-cta{ background:var(--surface-2); border:1px solid var(--line); }
.list-cta h2{ font-size:clamp(24px,2.8vw,36px); color:#fff; max-width:24ch; }
.list-cta .lede{ margin-top:12px; color:#BCC5E6; max-width:56ch; }

/* assistant mark sits on the launcher without the old yellow tile */
.ad-launch .bot-mark, .ad-hero .bot-mark{ box-shadow:var(--shadow-3); }

/* ---------- inner page heading ---------- */
.page-head{ padding:clamp(48px,6vw,88px) 0 clamp(28px,3.5vw,48px); }
.page-head h1{ font-size:clamp(32px,4.6vw,58px); font-weight:720; max-width:22ch; }
.page-head .lede{ margin-top:18px; }
.page-head__note{
  margin-top:22px; display:inline-block; padding:8px 16px; border-radius:999px;
  background:var(--surface-2); border:1px solid var(--line); color:var(--muted);
  font-size:13px; font-weight:600;
}
.page-head--home{ padding-bottom:clamp(48px,6vw,88px); }
.page-head--home h1{ max-width:18ch; font-weight:780; }
/* the positioning line sits under the slogan, lighter and smaller */
.home-sub{ margin-top:14px; font-size:clamp(19px,2.3vw,29px); font-weight:400; line-height:1.4; color:var(--ink-2); max-width:34ch; }
.page-head--home .lede{ margin-top:14px; }

/* back-link above the title of a nested page */
.crumb{
  display:inline-flex; align-items:center; gap:8px; min-height:32px; margin-bottom:14px;
  font-size:13.5px; font-weight:640; color:var(--accent);
}
.crumb::before{ content:"←"; }
html[dir="rtl"] .crumb::before{ content:"→"; }
.crumb:hover{ text-decoration:underline; text-underline-offset:4px; }

/* a category with nothing listed yet */
.empty{
  display:flex; flex-direction:column; align-items:flex-start; gap:20px;
  padding:clamp(28px,4vw,48px); border:1px dashed var(--line-strong); border-radius:var(--r-lg);
  background:var(--surface);
}
.empty__t{ font-size:17px; color:var(--ink-2); max-width:52ch; }

.svc-grid--two{ grid-template-columns:repeat(2,1fr); max-width:860px; }
@media (max-width:600px){ .svc-grid--two{ grid-template-columns:1fr; } }

/* ---------- home: services and countries ---------- */
.svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:980px){ .svc-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .svc-grid{ grid-template-columns:1fr; } }
.svc{ display:block; }
.svc h3{ font-size:19.5px; margin-bottom:8px; }
.svc p{ font-size:14.5px; color:var(--muted); line-height:1.65; }

.country-grid{ display:flex; flex-wrap:wrap; gap:14px; }
.country{
  display:flex; align-items:center; gap:14px; padding:16px 22px; min-width:220px;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  transition:border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.country:hover{ border-color:var(--brand); box-shadow:var(--shadow-2); }
.country b{ font-size:17px; font-weight:660; }
.country__s{
  margin-inline-start:auto; font-size:12px; font-weight:700; color:var(--brand);
  padding:4px 10px; border-radius:999px; background:color-mix(in oklab, var(--brand) 10%, transparent);
}

/* ---------- plans ---------- */
.plan-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:start; }
@media (max-width:900px){ .plan-grid{ grid-template-columns:1fr; } }
.plan h2{ font-size:20px; }
.plan__price{ margin-top:14px; display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.plan__price b{ font-size:44px; font-weight:720; color:var(--brand); line-height:1; }
.plan__price span{ font-size:14px; color:var(--muted); font-weight:560; }
.plan__approx{ display:block; margin-top:6px; font-size:13px; color:var(--muted); }
.plan__d{ margin-top:16px; font-size:14.5px; color:var(--ink-2); line-height:1.65; }
.plan--top{ border-color:color-mix(in oklab, var(--accent) 55%, var(--line)); box-shadow:var(--shadow-2); }

/* ---------- country page: in-page links ---------- */
.subnav{ border-bottom:1px solid var(--line); background:var(--bg); }
.subnav__in{ display:flex; gap:6px; overflow-x:auto; padding-block:10px; scrollbar-width:none; }
.subnav__in::-webkit-scrollbar{ display:none; }
.subnav a{
  flex:none; padding:8px 14px; min-height:36px; border-radius:999px; font-size:13.5px; font-weight:600;
  color:var(--ink-2); border:1px solid var(--line); white-space:nowrap;
  transition:border-color .2s, color .2s;
}
.subnav a:hover{ border-color:var(--brand); color:var(--brand); }
/* the one link that leaves the page sits apart from the in-page ones */
.subnav a.subnav__out{ margin-inline-start:auto; border-color:transparent; color:var(--brand); background:color-mix(in oklab, var(--brand) 10%, transparent); }
@media (pointer:coarse), (max-width:760px){ .subnav a{ min-height:44px; padding:12px 16px; } }

/* ---------- footer ---------- */
.footer__brand{ display:flex; align-items:center; gap:11px; margin-bottom:14px; }
.footer__brand b{ font-size:16px; color:#fff; }
.footer__blurb{ font-size:13.5px; color:#A3AFD6; line-height:1.68; max-width:38ch; }
.dev-credit a{ display:inline-block; padding:7px 2px; min-height:32px; color:#D7DEF6; text-decoration:underline; text-underline-offset:3px; }
.footer__note{ flex-basis:100%; opacity:.72; }

/* ============================================================
   SOURCED DATA — everything that prints a figure with its source
   ============================================================ */
a.src, .src-line a, .rec__src a, .stat__src a, .dcard__src a, .ad-src a{
  color:inherit; text-decoration:underline; text-decoration-color:color-mix(in oklab, currentColor 40%, transparent);
  text-underline-offset:3px;
}
a.src:hover, .src-line a:hover, .rec__src a:hover, .stat__src a:hover, .dcard__src a:hover, .ad-src a:hover{
  color:var(--brand); text-decoration-color:currentColor;
}
.src-line{ font-size:12px; color:var(--muted); margin-top:6px; line-height:1.5; }
.muted{ color:var(--muted); font-size:14px; }
h4.sub{
  font-size:12px; letter-spacing:.13em; text-transform:uppercase; color:var(--muted);
  margin-bottom:12px; font-weight:700;
}
html[lang="ar"] h4.sub{ letter-spacing:.02em; text-transform:none; font-size:13.5px; }

/* the situation notice under the hero figures */
.notice{ background:var(--bg); padding:clamp(20px,3vw,34px) 0 0; }
.notice__in{
  display:flex; gap:14px; align-items:flex-start; padding:20px 22px; border-radius:var(--r-lg);
  border:1px solid color-mix(in oklab, var(--clay) 40%, var(--line));
  background:color-mix(in oklab, var(--clay) 7%, var(--surface));
}
.notice__in > svg{ flex:none; margin-top:2px; color:var(--clay); }
.notice__in b{ display:block; font-size:16px; margin-bottom:6px; }
.notice__in p{ font-size:14.5px; color:var(--ink-2); line-height:1.7; max-width:92ch; }

/* facts */
.facts{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.fact{
  display:grid; grid-template-columns:minmax(92px,auto) 1fr; gap:4px 14px; align-items:baseline;
  padding:12px 14px; border:1px solid var(--line); border-radius:var(--r-md); background:var(--surface);
}
.fact__v{ font-size:16px; font-weight:720; color:var(--brand); }
.fact__b{ display:flex; flex-direction:column; grid-column:2; }
.fact:not(:has(.fact__v)) .fact__b{ grid-column:1 / -1; }
.fact__t{ font-size:14.5px; font-weight:580; line-height:1.45; }
.fact__p{ font-weight:500; color:var(--muted); font-size:.92em; }
.fact__n{ font-size:13px; color:var(--muted); line-height:1.55; margin-top:3px; }
@media (max-width:520px){ .fact{ grid-template-columns:1fr; } .fact__b{ grid-column:1; } }

.sheet__lede{ margin-top:10px; font-size:15.5px; color:var(--ink-2); line-height:1.7; }
.study-cta{
  display:flex; flex-direction:column; align-items:flex-start; gap:14px; padding:18px 20px;
  border-radius:var(--r-md); background:var(--surface-2); border:1px solid var(--line);
}
.study-cta p{ font-size:14px; color:var(--ink-2); line-height:1.6; }

/* sector card footer now carries one sourced fact */
.sec-card__f{ display:block; line-height:1.5; }
.sec-card__f b{ color:var(--brand); }

/* map: sector mode marks states, it no longer shades a score */
.st-path.is-on{ fill:var(--brand); }
.kv dd small{ font-size:.6em; font-weight:600; color:var(--muted); }
.kv__n{ font-size:12px; color:var(--muted); line-height:1.5; margin-top:6px; }
.kv .src-line{ margin-top:6px; }
.detail .kv{ grid-template-columns:1fr; }
.adv-list li > span{ display:block; }
.situation{
  padding:16px 18px; border-radius:var(--r-md);
  border:1px solid color-mix(in oklab, var(--clay) 36%, var(--line));
  background:color-mix(in oklab, var(--clay) 6%, var(--surface));
}
.situation p{ font-size:14px; line-height:1.65; }
.rank-row--text{ align-items:flex-start; flex-direction:column; gap:3px; }
.rank-row--text .rank-row__d{ font-size:13px; color:var(--muted); line-height:1.5; }
.rank-row:focus-visible{ outline:2.5px solid var(--accent); outline-offset:2px; }

/* projects */
.proj-list{ display:flex; flex-direction:column; gap:10px; }
.proj{ grid-template-columns:1fr auto; }
.proj__d{ font-size:13.5px; color:var(--ink-2); line-height:1.6; margin-top:8px; }
.proj__val{ font-size:19px; font-weight:740; color:var(--brand); letter-spacing:-.02em; white-space:nowrap; }
.detail .proj, .sheet .proj{ grid-template-columns:1fr; }
.detail .proj__cta, .sheet .proj__cta{ align-items:flex-start; flex-direction:row; flex-wrap:wrap; gap:10px; align-items:center; }
@media (max-width:640px){
  .proj{ grid-template-columns:1fr; }
  .proj__cta{ align-items:flex-start; flex-direction:row; flex-wrap:wrap; gap:10px; align-items:center; }
}
.pill{ white-space:nowrap; }
.pill--active{ background:color-mix(in oklab,#12A594 16%,transparent); color:#0B6B60; }
.pill--announced{ background:color-mix(in oklab,var(--pri-600) 14%,transparent); color:var(--pri-700); }
.pill--suspended, .pill--unknown{ background:color-mix(in oklab,var(--acc-600) 18%,transparent); color:var(--acc-700); }
.pill--closed{ background:var(--surface-2); color:var(--ink-2); border:1px solid var(--line); }
.pill--cancelled{ background:color-mix(in oklab,var(--clay) 16%,transparent); color:#8E3420; }
html[data-theme="dark"] .pill--active{ color:#5FD9C8; }
html[data-theme="dark"] .pill--announced{ color:var(--pri-300); }
html[data-theme="dark"] .pill--suspended, html[data-theme="dark"] .pill--unknown{ color:var(--acc-400); }
html[data-theme="dark"] .pill--cancelled{ color:#F2A08C; }

/* value chains carry no cost column any more */
.chain-link--plain{ grid-template-columns:auto 1fr; }

/* dashboard */
.dcard__v small{ font-size:.42em; font-weight:600; color:var(--muted); letter-spacing:0; }
.dcard__d{ color:var(--muted); font-weight:600; margin-top:4px; }
.dcard__range{ display:flex; justify-content:space-between; font-size:12px; color:var(--muted); font-family:var(--font-num); margin-top:4px; }
.dcard__n{ font-size:12.5px; color:var(--muted); line-height:1.5; margin-top:10px; }

/* open data */
.ds-list{ display:flex; flex-direction:column; gap:11px; }
a.ds-row{ color:inherit; transition:border-color .2s var(--ease), box-shadow .2s var(--ease); }
a.ds-row:hover{ border-color:var(--brand); box-shadow:var(--shadow-2); }
.co__tel{ font-size:15px; font-weight:700; color:var(--brand); min-height:32px; display:inline-flex; align-items:center; }

/* investor guide */
.guide-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
@media (max-width:860px){ .guide-grid{ grid-template-columns:1fr; } }
.guide-item{
  display:flex; flex-direction:column; gap:9px; padding:22px; border-radius:var(--r-lg);
  border:1px solid var(--line); background:var(--surface);
}
.guide-item h3{ font-size:18px; line-height:1.35; }
.guide-item p{ font-size:14.5px; color:var(--ink-2); line-height:1.68; }
.guide-item__n{
  font-size:13.5px !important; color:var(--muted) !important;
  padding-inline-start:12px; border-inline-start:2px solid color-mix(in oklab, var(--acc-600) 60%, transparent);
}
html[lang="ar"] .gov-item__t{ letter-spacing:.02em; text-transform:none; }

/* list of every source */
.src-all{ margin-top:22px; border:1px solid var(--line); border-radius:var(--r-md); background:var(--surface); }
.src-all summary{ cursor:pointer; padding:14px 18px; font-weight:640; font-size:15px; min-height:44px; }
.src-all ol{ margin:0; padding:4px 18px 18px 40px; display:flex; flex-direction:column; gap:7px; font-size:13.5px; color:var(--ink-2); }
html[dir="rtl"] .src-all ol{ padding:4px 40px 18px 18px; }
.src-all a{ color:inherit; text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.src-all a:hover{ color:var(--brand); }

/* records open their sector */
.rec[data-sec]:not([data-sec=""]){ cursor:pointer; }

/* assistant */
.ad-facts{ margin:6px 0 0; padding:0; list-style:none; display:flex; flex-direction:column; gap:9px; }
.ad-facts li{ font-size:13.5px; line-height:1.55; padding-inline-start:11px; border-inline-start:2px solid var(--line-strong); }
.ad-src{ font-size:12px; color:var(--muted); }
.ad-dim{ font-size:12.5px; color:var(--muted); }
.ad-link{ color:var(--brand); font-weight:640; text-decoration:underline; text-underline-offset:3px; }

/* ============================================================
   COMMERCIAL PAGES — plans, studies, consulting, about
   ============================================================ */
.section--flush{ padding-top:0; }

.plan{ display:flex; flex-direction:column; }
.plan__lead{ margin-top:18px; font-size:13.5px; font-weight:660; color:var(--ink-2); }
.ticks{ list-style:none; margin:14px 0 0; padding:0; display:grid; gap:10px; }
.plan__lead + .ticks{ margin-top:10px; }
.ticks li{ position:relative; padding-inline-start:26px; font-size:14.5px; line-height:1.6; color:var(--ink-2); }
.ticks li::before{
  content:""; position:absolute; inset-inline-start:2px; top:.42em; width:12px; height:7px;
  border:2.2px solid var(--brand); border-top:0; border-inline-end:0; transform:rotate(-45deg);
}
html[dir="rtl"] .ticks li::before{ transform:scaleX(-1) rotate(-45deg); }
.plan__btn{ margin-top:24px; align-self:flex-start; }

.info-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.info-grid--two{ grid-template-columns:repeat(2,1fr); }
@media (max-width:980px){ .info-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .info-grid, .info-grid--two{ grid-template-columns:1fr; } }
.info h3{ font-size:18.5px; margin-bottom:8px; }
.info p{ font-size:14.5px; color:var(--muted); line-height:1.7; }

.steps{ list-style:none; margin:0; padding:0; display:grid; gap:14px; max-width:860px; }
.step{
  display:flex; gap:18px; align-items:flex-start; padding:20px 22px;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
}
.step__n{
  flex:none; width:38px; height:38px; border-radius:50%; display:grid; place-items:center;
  font-size:16px; font-weight:720; color:var(--brand);
  background:color-mix(in oklab, var(--brand) 11%, transparent);
}
.step h3{ font-size:17.5px; margin-bottom:4px; }
.step p{ font-size:14.5px; color:var(--muted); line-height:1.7; }

.faq{ display:grid; gap:10px; max-width:860px; }
.faq__i{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); }
.faq__i summary{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  min-height:56px; padding:14px 22px; cursor:pointer; list-style:none;
  font-size:16px; font-weight:640; color:var(--ink);
}
.faq__i summary::-webkit-details-marker{ display:none; }
.faq__i summary::after{
  content:""; flex:none; width:9px; height:9px; margin-top:-4px;
  border:2px solid var(--muted); border-top:0; border-inline-start:0; transform:rotate(45deg);
  transition:transform .2s var(--ease);
}
.faq__i[open] summary::after{ transform:rotate(-135deg); margin-top:4px; }
.faq__i p{ padding:0 22px 20px; font-size:14.5px; color:var(--ink-2); line-height:1.75; max-width:70ch; }

.request__act{ display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.request__by{ font-size:13px; color:#BCC5E6; }
.request__soon{
  padding:12px 18px; border-radius:var(--r-lg); border:1px dashed rgba(255,255,255,.28);
  font-size:14px; font-weight:600; color:#E9EDFB; max-width:34ch;
}

/* ============================================================
   LISTED COMPANIES and EXPORT OPPORTUNITIES
   ============================================================ */
.co{ position:relative; }
.co--top{ border-color:color-mix(in oklab, var(--accent) 55%, var(--line)); box-shadow:var(--shadow-1); }
.co__logo--img{ object-fit:contain; background:#fff; border:1px solid var(--line); }
.co__tags{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.co__tag{
  font-size:12px; font-weight:700; padding:3px 10px; border-radius:999px;
  color:var(--muted); background:var(--surface-2); border:1px solid var(--line);
}
html[data-theme="dark"] .verified{ color:var(--pri-300); }
.co__meta{ flex-wrap:wrap; }
.co__act{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-top:auto; padding-top:6px; }
.co__link{
  display:inline-flex; align-items:center; gap:8px; min-height:36px; padding:6px 14px; max-width:100%;
  border-radius:999px; border:1px solid var(--line); background:var(--surface);
  font-size:13.5px; font-weight:640; color:var(--brand);
  transition:border-color .2s var(--ease);
}
.co__link:hover{ border-color:var(--brand); }
.co__link span{ color:var(--muted); font-weight:600; }
.co__link bdi{ overflow-wrap:anywhere; }
.co__links{ display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
@media (pointer:coarse){ .co__link{ min-height:44px; } }

.co-filters{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:20px; }
.co-filters select{ min-height:44px; max-width:100%; }

.co-rows{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.co-row{
  width:100%; display:flex; align-items:center; gap:12px; padding:12px 14px; min-height:56px;
  text-align:start; cursor:pointer; border-radius:var(--r-md);
  border:1px solid var(--line); background:var(--surface);
  transition:border-color .2s var(--ease);
}
.co-row:hover{ border-color:var(--brand); }
.co-row:focus-visible{ outline:2.5px solid var(--accent); outline-offset:2px; }
.co-row__b{ flex:1; min-width:0; display:flex; flex-direction:column; }
.co-row .co__meta{ font-size:12.5px; color:var(--muted); line-height:1.5; }
.co-row .verified{ flex:none; }
.co-block__n{ font-size:12.5px !important; color:var(--muted) !important; margin-top:10px; line-height:1.6; }
.co-head{ display:flex; gap:14px; align-items:center; }
.co-head .co__meta{ font-size:13.5px; color:var(--muted); margin-bottom:8px; }
.co-photos{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.co-photos img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--r-md); border:1px solid var(--line); }
.sheet__p{ font-size:15px; color:var(--ink-2); line-height:1.75; }

/* map: how many companies are listed in a state */
.co-pin{ cursor:pointer; }
.co-pin circle{ fill:var(--accent); stroke:var(--surface); stroke-width:2.5; }
.co-pin text{ font-family:var(--font-num); font-size:21px; font-weight:760; fill:#1B1403; text-anchor:middle; pointer-events:none; }
.legend-pin{ background:var(--accent) !important; }
.map-legend{ display:flex; gap:8px 18px; flex-wrap:wrap; }

/* export opportunities */
.gem-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media (max-width:980px){ .gem-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .gem-grid{ grid-template-columns:1fr; } }
.gem{
  display:flex; flex-direction:column; gap:9px; padding:22px; text-align:start; cursor:pointer;
  border-radius:var(--r-lg); border:1px solid var(--line); background:var(--surface);
  transition:.28s var(--ease);
}
.gem:hover{
  transform:translateY(-4px); box-shadow:var(--shadow-2);
  border-color:color-mix(in oklab, var(--accent) 60%, var(--line));
}
.gem:focus-visible{ outline:2.5px solid var(--accent); outline-offset:2px; }
.gem h3{ font-size:18.5px; line-height:1.3; }
.gem__f{ display:flex; flex-direction:column; gap:2px; font-size:13px; color:var(--muted); line-height:1.5; }
.gem__f b{ font-size:24px; font-weight:740; color:var(--brand); letter-spacing:-.02em; }
.gem__k{
  margin-top:6px; font-size:12px; font-weight:720; color:color-mix(in oklab, var(--accent) 62%, var(--ink));
  letter-spacing:.1em; text-transform:uppercase;
}
html[lang="ar"] .gem__k{ letter-spacing:.02em; text-transform:none; font-size:13px; }
.gem__t{ font-size:14px; color:var(--ink-2); line-height:1.65; flex:1; }
.gem__s{ font-size:12.5px; color:var(--muted); padding-top:10px; border-top:1px solid var(--line); }
.facts--grid{ display:grid; grid-template-columns:repeat(2,1fr); }
@media (max-width:860px){ .facts--grid{ grid-template-columns:1fr; } }

/* ============================================================
   SERVICES WINDOW
   ============================================================ */
.svc{ display:flex; flex-direction:column; }
.svc__tag{
  margin-top:auto; align-self:flex-start; font-size:12px; font-weight:700; padding:4px 11px; border-radius:999px;
  color:var(--muted); background:var(--surface-2); border:1px solid var(--line);
}
.svc p + .svc__tag{ margin-top:16px; }
.svc__tag--on{ color:var(--brand); background:color-mix(in oklab, var(--brand) 10%, transparent); border-color:transparent; }
.co[hidden]{ display:none; }
.co__link--main{ background:color-mix(in oklab, var(--brand) 9%, var(--surface)); border-color:color-mix(in oklab, var(--brand) 30%, var(--line)); }
.ticks--wide{ max-width:860px; margin-bottom:28px; }
.ticks--wide li{ font-size:15.5px; }
.chip{ min-height:36px; }
@media (pointer:coarse){ .chip{ min-height:44px; } }

.visa{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,56px); align-items:start; }
@media (max-width:900px){ .visa{ grid-template-columns:1fr; } }
.req-form{
  display:grid; gap:16px; padding:clamp(20px,3vw,30px);
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-xl); box-shadow:var(--shadow-1);
}
.field{ display:grid; gap:7px; }
.field > span{ font-size:13.5px; font-weight:640; color:var(--ink-2); }
.field input, .field select, .field textarea{
  width:100%; min-height:46px; padding:10px 14px; font:inherit; font-size:16px; color:var(--ink);
  background:var(--bg); border:1px solid var(--line-strong); border-radius:var(--r-md);
}
.field textarea{ resize:vertical; line-height:1.6; }
.field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible{
  outline:2.5px solid var(--accent); outline-offset:1px; border-color:transparent;
}
.field [aria-invalid="true"]{ border-color:var(--clay); }
.req-form__act{ display:flex; gap:10px; flex-wrap:wrap; margin-top:4px; }
.req-form__hint{ font-size:13px; color:var(--muted); line-height:1.6; }
.guide-item--wide{ max-width:860px; }

/* ---------- dated developments ---------- */
.news-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.news-list--page{ margin-bottom:22px; }
.news{
  display:grid; grid-template-columns:96px 1fr; gap:4px 16px; align-items:baseline;
  padding:14px 16px; border:1px solid var(--line); border-radius:var(--r-md); background:var(--surface);
}
.news__d{ font-size:13px; font-weight:720; color:var(--brand); white-space:nowrap; }
.news__b{ display:flex; flex-direction:column; min-width:0; }
.news__t{ font-size:14.5px; line-height:1.65; color:var(--ink); }
.news__g{ font-size:12.5px; color:var(--muted); margin-top:4px; }
.detail .news, .sheet .news{ grid-template-columns:1fr; }
@media (max-width:600px){ .news{ grid-template-columns:1fr; } }

/* ============================================================
   EXCHANGE RATES
   ============================================================ */
.rate-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
@media (max-width:980px){ .rate-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .rate-grid{ grid-template-columns:1fr; } }
.rate-card{ display:flex; flex-direction:column; gap:6px; }
.rate-card__c{ font-size:12px; font-weight:720; letter-spacing:.08em; color:var(--muted); font-family:var(--font-num); }
.rate-card h3{ font-size:18px; }
.rate-card__v{ font-size:34px; font-weight:740; color:var(--brand); line-height:1.1; margin-top:8px; text-align:start; }
html[dir="rtl"] .rate-card__v{ text-align:right; }
.rate-card__m{ font-size:13px; color:var(--muted); }

.rate{ display:grid; grid-template-columns:1.25fr 1fr; gap:clamp(20px,3vw,36px); align-items:start; }
@media (max-width:900px){ .rate{ grid-template-columns:1fr; } }
.rate__box{
  padding:clamp(22px,3vw,34px); border-radius:var(--r-xl); border:1px solid var(--line);
  background:var(--surface); box-shadow:var(--shadow-1);
}
.rate__top{ display:flex; gap:10px 16px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.rate__date{ font-size:13.5px; color:var(--muted); }
.rate__date b{ color:var(--ink); font-weight:700; }
.rate__per{ margin-top:18px; font-size:14.5px; color:var(--ink-2); }
.rate__vals{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:14px; }
@media (max-width:420px){ .rate__vals{ grid-template-columns:1fr; } }
.rate__vals > div{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.rate__l{ font-size:13px; font-weight:700; color:var(--muted); }
.rate__v{ font-size:clamp(36px,5.2vw,58px); font-weight:760; color:var(--brand); line-height:1.05; letter-spacing:-.03em; text-align:start; }
html[dir="rtl"] .rate__v{ text-align:right; }
.rate__h{ font-size:12.5px; color:var(--muted); line-height:1.5; }
.rate__chg{ margin-top:18px; font-size:14px; color:var(--ink-2); }
.rate__chg b{ font-weight:720; color:var(--ink); }
.rate__note{ margin-top:10px; font-size:13.5px; color:var(--muted); line-height:1.6; }
.conv h2{ font-size:20px; }
.conv__out{ display:block; font-size:19px; font-weight:720; color:var(--ink); min-height:28px; overflow-wrap:anywhere; text-align:start; }
html[dir="rtl"] .conv__out{ text-align:right; }

.rate-chart{ margin:0 0 22px; max-width:860px; }
.rate-chart svg{ display:block; width:100%; height:150px; border-bottom:1px solid var(--line); }
.rate-chart figcaption{ display:flex; justify-content:space-between; gap:12px; margin-top:8px; font-size:12px; color:var(--muted); }
.rate-table{ max-width:860px; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; background:var(--surface); }
.rate-table table{ width:100%; border-collapse:collapse; }
.rate-table th, .rate-table td{ padding:12px 16px; text-align:start; font-size:14.5px; border-bottom:1px solid var(--line); }
.rate-table th{ font-size:13px; color:var(--muted); font-weight:700; background:var(--surface-2); }
.rate-table tr:last-child td{ border-bottom:0; }
html[dir="rtl"] .rate-table td[dir="ltr"]{ text-align:right; }
a.chip{ display:inline-flex; align-items:center; }
.plan__asof{ white-space:nowrap; }

.country--soon{ opacity:.75; cursor:default; }
.country--soon:hover{ border-color:var(--line); box-shadow:none; }
.country__s--soon{ color:var(--muted); background:var(--surface-2); }

/* ============================================================
   UX: tabs, registration gate, calculator
   ============================================================ */
.tabs{ position:sticky; top:var(--topbar-h, 64px); z-index:20; }
.tabs a[aria-current="page"]{ background:var(--ink); color:var(--bg); border-color:var(--ink); }
#sections > section[hidden]{ display:none; }

.lock{
  display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;
  margin-top:14px; padding:14px 18px; border-radius:var(--r-md);
  border:1px dashed color-mix(in oklab, var(--brand) 45%, var(--line)); background:color-mix(in oklab, var(--brand) 6%, var(--surface));
}
.lock p{ font-size:14px; color:var(--ink-2); line-height:1.6; margin:0; }
.lock--inline{ margin-top:0; padding:10px 14px; }
.guide-lock{ grid-column:1 / -1; }
.match-results .lock{ margin-top:0; }

.signup{ position:fixed; inset:0; z-index:120; display:grid; place-items:center; padding:16px; }
.signup[hidden]{ display:none; }
.signup__scrim{ position:absolute; inset:0; background:rgba(6,10,28,.6); backdrop-filter:blur(3px); }
.signup__box{
  position:relative; width:min(460px,100%); max-height:92vh; overflow:auto; display:grid; gap:14px;
  padding:clamp(22px,4vw,32px); border-radius:var(--r-xl); background:var(--bg); box-shadow:var(--shadow-3);
}
.signup__box h2{ font-size:22px; padding-inline-end:40px; }
.signup__lede{ font-size:14.5px; color:var(--ink-2); line-height:1.65; }
.signup__x{ position:absolute; top:14px; inset-inline-end:14px; }
.signup__err{ font-size:13.5px; color:var(--clay); font-weight:600; }
.toast{
  position:fixed; bottom:24px; inset-inline-start:50%; transform:translate(-50%, 20px); z-index:130;
  padding:12px 20px; border-radius:999px; background:var(--ink); color:var(--bg); font-size:14px; font-weight:600;
  opacity:0; transition:.3s var(--ease); pointer-events:none; max-width:calc(100% - 32px);
}
html[dir="rtl"] .toast{ transform:translate(50%, 20px); }
.toast.on{ opacity:1; transform:translate(-50%, 0); }
html[dir="rtl"] .toast.on{ transform:translate(50%, 0); }

.roi{ display:grid; grid-template-columns:minmax(260px,380px) 1fr; gap:clamp(20px,3vw,36px); align-items:start; }
@media (max-width:860px){ .roi{ grid-template-columns:1fr; } }
.roi__grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(160px,1fr)); gap:12px; }
.roi__t{ padding:16px 18px; border-radius:var(--r-md); border:1px solid var(--line); background:var(--surface); display:flex; flex-direction:column; gap:4px; }
.roi__l{ font-size:12.5px; font-weight:700; color:var(--muted); }
.roi__v{ font-size:24px; font-weight:740; color:var(--brand); letter-spacing:-.02em; text-align:start; }
html[dir="rtl"] .roi__v{ text-align:right; }
.roi__s{ font-size:12.5px; color:var(--muted); line-height:1.5; }
.roi__chart{ margin:18px 0 0; padding:14px 12px 8px; border:1px solid var(--line); border-radius:var(--r-md); background:var(--surface); }
.roi__chart svg{ display:block; width:100%; height:auto; direction:ltr; overflow:visible; }
.roi__chart figcaption{ margin-top:8px; font-size:12.5px; line-height:1.6; color:var(--muted); }
.roi__ax{ font-size:11.5px; fill:var(--muted); font-family:var(--font-num); }
.roi__lab{ font-size:12.5px; font-weight:700; fill:var(--ink); font-family:inherit; }
/* the verdict, break-even, sensitivity and actions under the tiles */
.roi__verdict{ padding:16px 18px; border-radius:var(--r-md); border:1px solid var(--line); border-inline-start:5px solid var(--brand); background:var(--surface); margin-bottom:14px; }
.roi__verdict b{ display:block; font-size:16px; margin-bottom:6px; }
.roi__verdict p{ font-size:14px; line-height:1.7; color:var(--ink-2); }
.roi__verdict--ok{ border-inline-start-color:#1f8f5f; }
.roi__verdict--warn{ border-inline-start-color:#d9961a; }
.roi__verdict--bad{ border-inline-start-color:#c62828; }
.roi__blk{ margin-top:18px; padding:16px 18px; border:1px solid var(--line); border-radius:var(--r-md); background:var(--surface); }
.roi__blk h3{ font-size:16px; margin-bottom:4px; }
.roi__blk > .roi__s{ display:block; margin-bottom:12px; }
.roi__be-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(160px,1fr)); gap:12px; }
.roi__be{ display:flex; flex-direction:column; gap:4px; padding:12px 14px; border-radius:var(--r-sm, 10px); background:var(--surface-2); }
.roi__be b{ font-size:20px; font-weight:740; color:var(--brand); letter-spacing:-.02em; text-align:start; }
.roi__tbl{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.roi__tbl table{ width:100%; border-collapse:collapse; font-size:13.5px; }
.roi__tbl th,.roi__tbl td{ padding:9px 10px; border-bottom:1px solid var(--line); text-align:start; white-space:nowrap; }
.roi__tbl thead th{ font-size:12px; color:var(--muted); font-weight:700; }
.roi__tbl tbody th{ font-weight:600; color:var(--ink); }
.roi__dot{ display:inline-block; width:9px; height:9px; border-radius:50%; margin-inline-end:6px; vertical-align:middle; }
.roi__dot--ok{ background:#1f8f5f; } .roi__dot--bad{ background:#c62828; }
.roi__details summary{ cursor:pointer; font-weight:700; font-size:15px; }
.roi__details[open] summary{ margin-bottom:10px; }
.roi__act{ display:flex; gap:10px; flex-wrap:wrap; margin-top:18px; }
.roi__empty{ padding:18px 20px; border:1px dashed var(--line-strong); border-radius:var(--r-md); background:var(--surface); }
.roi__empty > b{ display:block; font-size:16px; margin-bottom:10px; }
.roi__empty .ticks li{ font-size:14px; }
.roi__miss{ margin-top:12px; font-size:13.5px; color:#c62828; }
.roi__miss b{ font-weight:700; }
.req-form input.is-missing{ border-color:#c62828; }
.roi__n{ margin:16px 0; }

/* data-access plans: five cards, the medium one raised */
.plan-grid--access{ grid-template-columns:repeat(5,1fr); gap:14px; }
@media (max-width:1180px){ .plan-grid--access{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:760px){ .plan-grid--access{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .plan-grid--access{ grid-template-columns:1fr; } }
.plan--access{ padding:22px 20px; }
.plan--access h3{ font-size:18px; }
.plan--access .plan__price{ margin-top:10px; }
.plan--access .plan__price b{ font-size:34px; }
.plan--access .plan__price b:not(.num){ font-size:26px; }
.plan--access .ticks{ margin-top:12px; }
.plan--access .ticks li{ font-size:13.5px; }
.plan--access .plan__btn{ margin-top:auto; padding-top:0; }
.plan--access .plan__lead{ margin-top:14px; }
.plan__who{ margin-top:4px; font-size:13px; color:var(--muted); line-height:1.5; min-height:2.9em; }
.plan__seats{ display:inline-block; margin-top:6px; font-size:12.5px; font-weight:700; color:var(--brand); }
.plan-note{ margin-top:18px; font-size:13.5px; color:var(--muted); line-height:1.65; max-width:70ch; }
.plan--access .ticks + .plan__btn,.plan--access .plan__seats + .plan__btn,.plan--access .plan__price + .plan__btn{ margin-top:18px; }

.tabs{ top:70px; }
@media (max-width:760px){ .tabs{ top:64px; } }


/* ============================================================
   UX: home hero, paths, fuller map
   ============================================================ */
.hero--home .home-sub{ margin-top:12px; }
.hero--home .hero__lede{ margin-top:16px; }
.hero__trust b{ color:var(--ink); }
.hero__art--home{ display:block; color:inherit; }
.hero__art--home .silhouette{ transition:transform .5s var(--ease-out); }
.hero__art--home:hover .silhouette{ transform:scale(1.02); }
.hero__pin--home{ top:46%; inset-inline-start:52%; }
.hero__go{
  position:absolute; bottom:6%; inset-inline-end:4%; padding:9px 16px; border-radius:999px; min-height:36px; display:inline-flex; align-items:center;
  background:var(--brand); color:#fff; font-size:14px; font-weight:700; box-shadow:var(--shadow-2);
}
html[data-theme="dark"] .hero__go{ color:#050B22; }
.stat__src.num{ color:var(--muted); }

.path-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:900px){ .path-grid{ grid-template-columns:1fr; } }
.path{ display:flex; flex-direction:column; gap:10px; padding:26px; }
.path h3{ font-size:21px; }
.path p{ font-size:14.5px; color:var(--muted); line-height:1.65; flex:1; }
.path__p{ font-size:13px; font-weight:700; color:var(--brand); }
.path__cta{ margin-top:6px; font-size:14.5px; font-weight:700; color:var(--ink); }
.list-cta--free{ margin-top:28px; }

/* map: asset intensity and full-screen mode */
.st-path.is-on{ fill:color-mix(in oklab, var(--brand) calc(var(--lv, 1) * 100%), var(--map-base)); }
.map-shell--full{
  position:fixed; inset:0; z-index:110; background:var(--bg); padding:clamp(12px,2vw,28px);
  grid-template-columns:1.5fr 1fr; overflow:auto;
}
@media (max-width:1024px){ .map-shell--full{ grid-template-columns:1fr; } }
.map-shell--full .map-panel{ min-height:calc(100vh - 56px); display:flex; flex-direction:column; }
.map-shell--full .map-stage{ flex:1; display:flex; align-items:center; }
.map-shell--full .map-svg{ max-height:calc(100vh - 170px); }
#mapFull[aria-pressed="true"]{ background:var(--ink); color:var(--bg); }

/* ============================================================
   UX: search, deep-link landing
   ============================================================ */
.srch{ position:fixed; inset:0; z-index:125; display:flex; justify-content:center; align-items:flex-start; padding:min(10vh,90px) 16px 16px; }
.srch[hidden]{ display:none; }
.srch__scrim{ position:absolute; inset:0; background:rgba(6,10,28,.55); backdrop-filter:blur(3px); }
.srch__box{
  position:relative; width:min(680px,100%); max-height:80vh; display:flex; flex-direction:column;
  background:var(--bg); border-radius:var(--r-xl); box-shadow:var(--shadow-3); overflow:hidden;
}
.srch__form{ display:flex; align-items:center; gap:12px; padding:12px 14px 12px 18px; border-bottom:1px solid var(--line); color:var(--muted); }
.srch__form input{ flex:1; min-width:0; min-height:44px; font:inherit; font-size:17px; color:var(--ink); background:transparent; border:0; outline:none; }
.srch__out{ overflow:auto; padding:8px; }
.srch__hint{ padding:14px 12px; font-size:14px; color:var(--muted); line-height:1.6; }
.srch__list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:2px; }
.srch__r{ display:grid; grid-template-columns:auto 1fr; gap:4px 12px; align-items:baseline; padding:10px 12px; border-radius:var(--r-md); color:inherit; min-height:44px; }
.srch__r:hover, .srch__r:focus-visible{ background:var(--surface-2); outline:none; }
.srch__k{ font-size:11.5px; font-weight:720; color:var(--brand); letter-spacing:.04em; white-space:nowrap; padding-top:3px; }
.srch__t{ font-size:15px; font-weight:640; color:var(--ink); }
.srch__d{ grid-column:2; font-size:13px; color:var(--muted); line-height:1.55; }
@media (max-width:520px){ .srch__r{ grid-template-columns:1fr; } .srch__d{ grid-column:1; } }
.is-hit{ animation:hitPulse 2.4s var(--ease); }
@keyframes hitPulse{ 0%,60%{ box-shadow:0 0 0 3px color-mix(in oklab, var(--accent) 70%, transparent); } 100%{ box-shadow:none; } }

/* four icon buttons plus the mark are all a 320px bar can hold */
@media (max-width:400px){ .brand__txt{ display:none; } .brand{ gap:0; } }
.srch__k{ font-size:12px; }


/* ---------- assistant: enquiry form, link-styled button ---------- */
.ad-enq{ display:grid; gap:8px; margin-top:8px; }
.ad-enq input, .ad-enq textarea{
  width:100%; min-height:40px; padding:9px 12px; font:inherit; font-size:14px; color:var(--ink);
  background:var(--bg); border:1px solid var(--line-strong); border-radius:var(--r-md);
}
.ad-enq textarea{ resize:vertical; line-height:1.55; }
.ad-enq input:focus-visible, .ad-enq textarea:focus-visible{ outline:2.5px solid var(--accent); outline-offset:1px; border-color:transparent; }
.ad-enq__err{ font-size:13px; color:var(--clay); font-weight:600; margin:0; }
.ad-enq button{ justify-self:start; }
.ad-link--btn{ background:none; border:0; padding:0; font:inherit; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }

/* ============================================================
   HOME v2: motion layer (every effect here is decoration over
   real content and is switched off under prefers-reduced-motion)
   ============================================================ */
.hero--v2{ padding-top:clamp(52px,6.5vw,92px); padding-bottom:clamp(48px,6vw,84px); }
.hero__bg{ position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:0; }
.blob{ position:absolute; border-radius:50%; filter:blur(70px); opacity:.55; will-change:transform; }
.blob--1{ width:720px; height:720px; inset-inline-start:-180px; top:-260px; background:radial-gradient(circle, color-mix(in oklab,var(--pri-500) 38%,transparent), transparent 68%); animation:blobA 22s var(--ease) infinite alternate; }
.blob--2{ width:620px; height:620px; inset-inline-end:-160px; top:-120px; background:radial-gradient(circle, color-mix(in oklab,var(--acc-500) 34%,transparent), transparent 68%); animation:blobB 26s var(--ease) infinite alternate; }
.blob--3{ width:520px; height:520px; inset-inline-start:36%; bottom:-300px; background:radial-gradient(circle, color-mix(in oklab,var(--pri-500) 26%,transparent), transparent 68%); animation:blobC 30s var(--ease) infinite alternate; }
@keyframes blobA{ to{ transform:translate(120px,80px) scale(1.12); } }
@keyframes blobB{ to{ transform:translate(-90px,120px) scale(.92); } }
@keyframes blobC{ to{ transform:translate(-140px,-60px) scale(1.08); } }
html[data-theme="dark"] .blob{ opacity:.36; }
.hero__dots{
  position:absolute; inset:0; opacity:.55;
  background-image:radial-gradient(color-mix(in oklab,var(--ink) 18%,transparent) 1px, transparent 1.3px); background-size:26px 26px;
  -webkit-mask-image:radial-gradient(ellipse 70% 75% at 50% 40%, #000 15%, transparent 72%); mask-image:radial-gradient(ellipse 70% 75% at 50% 40%, #000 15%, transparent 72%);
}
.hero--v2 .hero__in{ grid-template-columns:1.02fr .98fr; }
@media (max-width:940px){ .hero--v2 .hero__in{ grid-template-columns:1fr; } }

/* headline: the words rise one after another */
.hero--v2 h1.is-split{ animation:none; }
h1.is-split .w{ display:inline-block; overflow:hidden; vertical-align:bottom; padding-bottom:.1em; margin-bottom:-.1em; }
h1.is-split .w > span{ display:inline-block; transform:translateY(112%); animation:wordUp .9s var(--ease-out) forwards; animation-delay:calc(.12s + var(--i) * .09s); }
@keyframes wordUp{ to{ transform:none; } }
.hero__link{ align-self:center; font-weight:700; font-size:14.5px; color:var(--brand); padding:8px 4px; min-height:36px; display:inline-flex; align-items:center; }
.btn--shine{ position:relative; overflow:hidden; }
.btn--shine::after{
  content:""; position:absolute; top:-40%; bottom:-40%; left:0; width:36%; pointer-events:none;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.42), transparent);
  transform:translateX(-220%) skewX(-18deg); animation:shine 5s var(--ease) 2s infinite;
}
@keyframes shine{ 0%{ transform:translateX(-220%) skewX(-18deg); } 30%,100%{ transform:translateX(400%) skewX(-18deg); } }

/* the map stage and the facts that take turns around it */
.hero__stage{ position:relative; }
.hf-wrap{ position:absolute; inset:0; pointer-events:none; }
.hf{
  position:absolute; pointer-events:auto; min-width:150px; max-width:220px; padding:11px 14px;
  background:color-mix(in oklab,var(--surface) 90%,transparent); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px);
  border:1px solid var(--line); border-radius:var(--r-md); box-shadow:var(--shadow-3); font-size:12.5px; line-height:1.4;
  transition:opacity .38s var(--ease), transform .8s var(--ease-out);
}
.hf b{ display:block; font-size:19px; font-weight:740; letter-spacing:-.02em; color:var(--brand); }
.hf b small{ font-size:12px; font-weight:600; color:var(--muted); letter-spacing:0; }
.hf span{ display:block; color:var(--ink-2); font-weight:600; }
.hf i{ display:block; font-style:normal; color:var(--faint); font-size:11.5px; margin-top:3px; }
.hf--1{ top:2%; inset-inline-start:0; }
.hf--2{ bottom:14%; inset-inline-start:-2%; }
.hf--3{ top:26%; inset-inline-end:-1%; }
.hf.in{ animation:floaty 8s var(--ease) infinite; }
.hf--2.in{ animation-duration:9s; animation-delay:1.2s; }
.hf--3.in{ animation-duration:7.5s; animation-delay:.6s; }
.hf.is-out{ opacity:0 !important; }
.hf.is-in b,.hf.is-in span,.hf.is-in i{ animation:hfIn .5s var(--ease-out) both; }
@keyframes hfIn{ from{ opacity:0; transform:translateY(-8px); } }
@media (max-width:940px){
  .hf-wrap{ position:static; display:flex; gap:10px; margin-top:14px; flex-wrap:wrap; }
  .hf{ position:static; flex:1 1 140px; max-width:none; }
  .hf.in{ animation:none; }
}
.hm-sweep{ animation:hmSweep 7s linear 1.8s infinite; mix-blend-mode:screen; }
html[data-theme="dark"] .hm-sweep{ opacity:.45; }
@keyframes hmSweep{ from{ transform:translateX(0); } to{ transform:translateX(1500px); } }
.hm-pin .hm-dot{ fill:#fff; stroke:var(--brand); stroke-width:2.5; }
.hm-pin .hm-ring{
  fill:none; stroke:var(--acc-500); stroke-width:2; transform-box:fill-box; transform-origin:center;
  animation:hmPing 2.8s ease-out infinite; animation-delay:calc(var(--d) * .35s);
}
.hm-pin .hm-ring--2{ animation-delay:calc(var(--d) * .35s + 1.4s); }
@keyframes hmPing{ 0%{ transform:scale(.5); opacity:.95; } 100%{ transform:scale(3.2); opacity:0; } }

/* latest developments strip */
.ticker{ display:flex; align-items:center; gap:16px; padding:10px clamp(16px,3vw,40px); border-block:1px solid var(--line); background:var(--surface); position:relative; z-index:1; }
.ticker__k{ display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:760; color:var(--brand); white-space:nowrap; flex:none; }
.ticker__k i{ width:8px; height:8px; border-radius:50%; background:var(--acc-500); animation:tickPulse 2s infinite; }
@keyframes tickPulse{ 0%{ box-shadow:0 0 0 0 color-mix(in oklab,var(--acc-500) 55%,transparent); } 100%{ box-shadow:0 0 0 9px transparent; } }
.ticker__clip{ flex:1; overflow:hidden; min-width:0; -webkit-mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.ticker__track{ display:inline-flex; gap:44px; white-space:nowrap; will-change:transform; }
.ticker__track.is-ready{ animation:marquee var(--dur,40s) linear infinite; }
html[dir="rtl"] .ticker__track.is-ready{ animation-name:marqueeRtl; }
.ticker:hover .ticker__track,.ticker:focus-within .ticker__track{ animation-play-state:paused; }
@keyframes marquee{ to{ transform:translateX(calc(-1 * var(--w))); } }
@keyframes marqueeRtl{ to{ transform:translateX(var(--w)); } }
.ticker__i{ display:inline-flex; align-items:baseline; gap:10px; font-size:13.5px; color:var(--ink-2); }
.ticker__i time{ font-size:12px; font-weight:700; color:var(--brand); }
.ticker__i:hover span{ color:var(--brand); text-decoration:underline; }
.ticker__all{ flex:none; font-size:13px; font-weight:700; color:var(--ink); white-space:nowrap; }
@media (max-width:640px){ .ticker__all{ display:none; } .ticker__k span{ display:none; } }

/* cards tilt under the mouse, with a light that follows it */
.tilt{ position:relative; overflow:hidden; transform-style:preserve-3d; }
.tilt::before{
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; opacity:0; transition:opacity .35s;
  background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%), color-mix(in oklab,var(--brand) 16%,transparent), transparent 62%);
}
.tilt:hover::before{ opacity:1; }
.tilt.is-tilt{ transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-4px); }
.tilt > *{ position:relative; }

/* three ways in */
.path.reveal{ transition-delay:calc(var(--i,0) * 90ms); }
.path__ico{ width:46px; height:46px; border-radius:13px; display:grid; place-items:center; background:color-mix(in oklab,var(--brand) 12%,transparent); color:var(--brand); margin-bottom:4px; }
.path__ico svg{ width:24px; height:24px; }

/* sectors as chips */
.schips{ display:flex; flex-wrap:wrap; gap:10px; }
.schip{
  display:inline-flex; align-items:center; gap:10px; padding:9px 10px 9px 14px; min-height:42px;
  border:1px solid var(--line); border-radius:999px; background:var(--surface); font-size:14px; font-weight:640; color:var(--ink);
  transition:border-color .25s, transform .25s var(--ease-out), box-shadow .25s, opacity .8s var(--ease-out);
}
html[dir="rtl"] .schip{ padding:9px 14px 9px 10px; }
.schip b{ font-size:11.5px; font-weight:700; color:var(--brand); background:color-mix(in oklab,var(--brand) 12%,transparent); padding:4px 9px; border-radius:999px; white-space:nowrap; }
.schip:hover{ border-color:var(--brand); transform:translateY(-2px); box-shadow:var(--shadow-2); }
.schip.reveal{ transition-delay:calc(var(--i,0) * 30ms); }
.schip.reveal.in:hover{ transition-delay:0s; }

/* hidden gems teaser */
.gem-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:900px){ .gem-grid{ grid-template-columns:1fr; } }
.gemc{ display:flex; flex-direction:column; gap:8px; padding:24px; border-top:4px solid var(--acc-500); }
.gemc.reveal{ transition-delay:calc(var(--i,0) * 90ms); }
.gemc__s{ font-size:12px; font-weight:700; color:var(--muted); }
.gemc h3{ font-size:19px; line-height:1.35; }
.gemc__k{ margin-top:6px; font-size:11.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); }
html[lang="ar"] .gemc__k{ letter-spacing:0; font-size:12.5px; }
.gemc p{ font-size:14px; color:var(--ink-2); line-height:1.65; }

/* plans on the home page are the short form */
.plan-grid--home .plan--access{ padding:18px 16px; }
.plan-grid--home .plan__who{ min-height:0; }
.stats--home .stat.reveal{ transition-delay:calc(var(--i,0) * 80ms); }

@media (prefers-reduced-motion:reduce){
  .blob,.btn--shine::after,.hm-sweep,.hm-ring,.ticker__track,.hf,.hf.in,.ticker__k i,.hf.is-in b,.hf.is-in span,.hf.is-in i{ animation:none !important; }
  h1.is-split .w > span{ transform:none; animation:none; }
  .tilt.is-tilt{ transform:none; }
}
/* tourist attractions: published places, not listings */
.place-warn{ padding:14px 18px; border-radius:var(--r-md); border:1px solid color-mix(in oklab,#d9961a 45%,var(--line)); background:color-mix(in oklab,#d9961a 9%,var(--surface)); font-size:14px; line-height:1.65; color:var(--ink-2); margin-bottom:18px; }
.place-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:14px; }
@media (max-width:820px){ .place-grid{ grid-template-columns:1fr; } }
.place{ display:flex; flex-direction:column; gap:7px; padding:22px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-xl); border-top:4px solid var(--brand); scroll-margin-top:90px; }
.place--natural{ border-top-color:#1f8f5f; }
.place--town{ border-top-color:var(--acc-500); }
.place__k{ font-size:12px; font-weight:800; color:var(--muted); }
.place h3{ font-size:19px; line-height:1.35; }
.place__m{ display:flex; gap:12px; flex-wrap:wrap; font-size:12.5px; color:var(--muted); }
.place__st{ display:inline-block; align-self:flex-start; font-size:12.5px; font-weight:700; color:var(--brand); background:color-mix(in oklab,var(--brand) 11%,transparent); padding:4px 10px; border-radius:999px; margin-top:2px; }
.place p{ font-size:14.5px; line-height:1.7; color:var(--ink-2); }
.place .src-line{ margin-top:4px; }
.place:target{ border-color:var(--brand); box-shadow:var(--shadow-2); }
/* ============================================================
   TOURIST ATTRACTIONS: photo hero, map, gallery, lightbox
   ============================================================ */
.pl-hero{ position:relative; overflow:hidden; color:#fff; background:#0B2A8F; padding:clamp(40px,6vw,84px) 0 clamp(36px,5vw,64px); }
.pl-hero__bg{ position:absolute; inset:0; background:var(--cover) center/cover no-repeat; }
.pl-hero__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(5,11,34,.86) 0%, rgba(5,11,34,.7) 48%, rgba(5,11,34,.35) 100%); }
html[dir="rtl"] .pl-hero__bg::after{ background:linear-gradient(270deg, rgba(5,11,34,.86) 0%, rgba(5,11,34,.7) 48%, rgba(5,11,34,.35) 100%); }
.pl-hero__in{ position:relative; z-index:1; display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(24px,4vw,64px); align-items:center; }
@media (max-width:900px){ .pl-hero__in{ grid-template-columns:1fr; } }
.pl-hero .crumb{ color:#fff; opacity:.8; }
.pl-hero h1{ color:#fff; font-size:clamp(32px,4.6vw,58px); margin-top:14px; animation:riseIn .8s var(--ease-out) .1s both; }
.pl-hero .lede{ color:rgba(255,255,255,.82); margin-top:14px; max-width:60ch; animation:riseIn .8s var(--ease-out) .22s both; }
.pl-hero__stats{ display:flex; gap:22px; flex-wrap:wrap; margin-top:24px; font-size:13px; color:rgba(255,255,255,.8); animation:riseIn .8s var(--ease-out) .34s both; }
.pl-hero__stats b{ display:block; font-size:30px; font-weight:740; color:#fff; letter-spacing:-.02em; line-height:1.1; }
.pl-hero__credit{ display:block; margin-top:22px; font-size:11.5px; color:rgba(255,255,255,.55); }
.pl-hero__credit a{ color:rgba(255,255,255,.75); text-decoration:underline; }
.pl-map{ position:relative; animation:riseIn 1s var(--ease-out) .3s both; }
.pl-map svg{ width:100%; height:auto; max-height:420px; overflow:visible; }
.pl-map__st{ fill:rgba(255,255,255,.12); stroke:rgba(255,255,255,.45); stroke-width:1.4; }
.pl-map__pin{ cursor:pointer; }
.pl-map__dot{ fill:var(--acc-500); stroke:#fff; stroke-width:2.5; transition:transform .25s var(--ease-out); transform-box:fill-box; transform-origin:center; }
.pl-map__ring{ fill:none; stroke:var(--acc-500); stroke-width:2; transform-box:fill-box; transform-origin:center; animation:hmPing 2.8s ease-out infinite; }
.pl-map__pin:hover .pl-map__dot,.pl-map__pin:focus-visible .pl-map__dot{ transform:scale(1.5); }
.pl-map__pin:focus-visible{ outline:none; }
.pl-map__hint{ display:block; text-align:center; margin-top:8px; font-size:12px; color:rgba(255,255,255,.6); }
@media (max-width:900px){ .pl-map svg{ max-height:300px; } }

.pl-body{ padding-top:28px; }
.pl-grid{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:230px; gap:14px; margin-top:16px; grid-auto-flow:dense; }
@media (max-width:1000px){ .pl-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .pl-grid{ grid-template-columns:1fr; grid-auto-rows:240px; } }
.pl-card{
  position:relative; overflow:hidden; border-radius:var(--r-xl); background:#0B2A8F; color:#fff; cursor:pointer;
  box-shadow:var(--shadow-1); transition:transform .4s var(--ease-out), box-shadow .4s; isolation:isolate; scroll-margin-top:90px;
}
.pl-card--lead{ grid-column:span 2; grid-row:span 2; }
@media (max-width:600px){ .pl-card--lead{ grid-column:span 1; grid-row:span 1; } }
.pl-card:hover,.pl-card:focus-visible,.pl-card.is-lit{ transform:translateY(-4px); box-shadow:var(--shadow-3); }
.pl-card:focus-visible{ outline:3px solid var(--acc-500); outline-offset:2px; }
.pl-card.is-lit{ outline:3px solid var(--acc-500); }
.pl-card__img{ position:absolute; inset:0; }
.pl-card__img img,.pl-card__img svg{ width:100%; height:100%; object-fit:cover; display:block; transition:transform 1.1s var(--ease-out); }
.pl-card:hover .pl-card__img img,.pl-card.is-lit .pl-card__img img{ transform:scale(1.06); }
.pl-card::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(5,11,34,.05) 30%, rgba(5,11,34,.55) 65%, rgba(5,11,34,.9) 100%); transition:opacity .4s; }
.pl-card__st{ position:absolute; top:12px; inset-inline-start:12px; z-index:2; font-size:11.5px; font-weight:700; padding:5px 10px; border-radius:999px; background:rgba(255,255,255,.92); color:#0B2A8F; max-width:calc(100% - 24px); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pl-card--natural .pl-card__st{ color:#1f8f5f; }
.pl-card__ov{ position:absolute; inset-inline:0; bottom:0; z-index:2; padding:16px 18px; display:flex; flex-direction:column; gap:4px; }
.pl-card__k{ font-size:11.5px; font-weight:700; color:rgba(255,255,255,.75); }
.pl-card__ov h3{ font-size:18px; line-height:1.3; color:#fff; text-shadow:0 1px 8px rgba(0,0,0,.4); }
.pl-card--lead .pl-card__ov h3{ font-size:clamp(20px,2.4vw,30px); }
.pl-card__ov p{ font-size:13px; line-height:1.55; color:rgba(255,255,255,.85); max-height:0; opacity:0; overflow:hidden; transition:max-height .45s var(--ease-out), opacity .35s, margin-top .35s; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; }
.pl-card:hover .pl-card__ov p,.pl-card:focus-visible .pl-card__ov p,.pl-card.is-lit .pl-card__ov p{ max-height:5em; opacity:1; margin-top:4px; }
.pl-card--lead .pl-card__ov p{ max-height:5em; opacity:1; margin-top:4px; }
@media (hover:none){ .pl-card__ov p{ max-height:5em; opacity:1; margin-top:4px; } }
.pl-credit{ font-size:11px; color:rgba(255,255,255,.65); }
.pl-credit:hover{ color:#fff; text-decoration:underline; }

/* lightbox */
.plx{ position:fixed; inset:0; z-index:120; display:grid; place-items:center; padding:16px; }
.plx__scrim{ position:absolute; inset:0; background:rgba(5,11,34,.78); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); animation:fadeUp .3s both; }
.plx__box{ position:relative; width:min(1040px, 100%); max-height:calc(100vh - 32px); overflow:auto; background:var(--surface); color:var(--ink); border-radius:var(--r-xl); box-shadow:var(--shadow-3); display:grid; grid-template-columns:1.25fr 1fr; animation:riseIn .4s var(--ease-out) both; }
@media (max-width:820px){ .plx__box{ grid-template-columns:1fr; } }
.plx__media{ position:relative; background:#0B2A8F; min-height:280px; }
.plx__media img,.plx__media svg{ width:100%; height:100%; min-height:280px; max-height:70vh; object-fit:cover; display:block; }
@media (max-width:820px){ .plx__media img,.plx__media svg{ max-height:46vh; } }
.plx__credit{ position:absolute; bottom:8px; inset-inline-end:10px; font-size:11px; color:#fff; background:rgba(5,11,34,.55); padding:3px 8px; border-radius:999px; }
.plx__credit a{ color:#fff; }
.plx__body{ padding:26px 26px 22px; display:flex; flex-direction:column; gap:10px; }
.plx__k{ font-size:12.5px; font-weight:700; color:var(--muted); }
.plx__body h2{ font-size:clamp(20px,2.2vw,28px); line-height:1.3; }
.plx__near{ font-size:13.5px; color:var(--muted); }
.plx__d{ font-size:15px; line-height:1.75; color:var(--ink-2); }
.plx__n{ margin-top:auto; font-size:12.5px; color:var(--faint); }
.plx__btn{ position:absolute; z-index:3; width:40px; height:40px; border-radius:50%; border:0; background:rgba(255,255,255,.92); color:#0B2A8F; display:grid; place-items:center; cursor:pointer; box-shadow:var(--shadow-2); }
.plx__btn:hover{ background:#fff; }
.plx__x{ top:12px; inset-inline-end:12px; }
.plx__nav{ top:50%; transform:translateY(-50%); }
.plx__prev{ inset-inline-start:12px; } .plx__next{ inset-inline-end:12px; }
html[dir="rtl"] .plx__nav svg{ transform:scaleX(-1); }
@media (max-width:820px){ .plx__nav{ top:auto; bottom:12px; transform:none; } }
@media (prefers-reduced-motion:reduce){ .pl-map__ring,.pl-hero h1,.pl-hero .lede,.pl-hero__stats,.pl-map,.plx__scrim,.plx__box{ animation:none !important; } .pl-card,.pl-card__img img{ transition:none; } }
.plx[hidden]{ display:none; }

.pl-map{ padding:14px 14px 10px; border-radius:var(--r-xl); background:rgba(5,11,34,.42); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); border:1px solid rgba(255,255,255,.14); }

@media (max-width:820px){ .plx__body{ padding-bottom:72px; } .plx__n{ margin-top:8px; } }

/* ============================================================
   HOME: routes flying into the map, the globe section
   ============================================================ */
.hm-route{ fill:none; stroke:var(--acc-500); stroke-width:2; stroke-dasharray:6 8; opacity:.55; animation:routeDash 1.2s linear infinite; }
@keyframes routeDash{ to{ stroke-dashoffset:-14; } }
.hm-fly{ fill:var(--acc-500); stroke:#fff; stroke-width:2; filter:drop-shadow(0 0 6px color-mix(in oklab,var(--acc-500) 80%,transparent)); }
@media (prefers-reduced-motion:reduce){ .hm-routes{ display:none; } }

.globe-sec{ overflow:hidden; }
.globe__in{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,64px); align-items:center; }
@media (max-width:900px){ .globe__in{ grid-template-columns:1fr; } }
.globe__copy .s-head{ margin-bottom:22px; }
.country-grid--globe{ grid-template-columns:repeat(2,1fr); gap:12px; }
@media (max-width:520px){ .country-grid--globe{ grid-template-columns:1fr; } }
.country--live{ border-color:color-mix(in oklab,var(--brand) 40%,var(--line)); }
.country__go{ display:block; margin-top:8px; font-size:13px; font-weight:700; color:var(--brand); }
.country--soon{ position:relative; overflow:hidden; }
.country--soon::after{ content:""; position:absolute; inset:0; background:linear-gradient(100deg, transparent 30%, color-mix(in oklab,var(--acc-500) 18%,transparent) 50%, transparent 70%); transform:translateX(-120%); animation:soonSheen 4.5s var(--ease) infinite; }
@keyframes soonSheen{ 0%{ transform:translateX(-120%); } 40%,100%{ transform:translateX(120%); } }
.globe__cta{ margin-top:22px; }
.globe__stage{ position:relative; aspect-ratio:1; max-width:560px; margin-inline:auto; width:100%; }
.globe__cv{ display:block; width:100%; height:100%; }
.globe__labels{ position:absolute; inset:0; pointer-events:none; }
.globe__lab{
  position:absolute; top:0; left:0; margin:-34px 0 0 -10px; padding:5px 10px; border-radius:999px; font-size:12.5px; font-weight:700; white-space:nowrap;
  background:var(--surface); color:var(--ink); border:1px solid var(--line); box-shadow:var(--shadow-2); transition:opacity .3s;
}
.globe__lab.is-live{ background:var(--brand); color:#fff; border-color:var(--brand); }
html[data-theme="dark"] .globe__lab.is-live{ color:#050B22; }
.globe__lab.is-back{ opacity:0; }
@media (prefers-reduced-motion:reduce){ .country--soon::after{ animation:none; } }
.hm-route{ stroke-width:2.6; opacity:.7; }
.hm-fly{ r:7; }
.globe__lab{ margin:-16px 0 0 0; transform-origin:0 0; translate:-50% -100%; }

/* ============================================================
   HOME: the regional map in the hero
   ============================================================ */
.silhouette--region .rm-ctx{ fill:var(--map-base); stroke:var(--map-line); stroke-width:1.2; opacity:.7; }
.silhouette--region .sh-state{ stroke:#fff; stroke-width:1.8; stroke-opacity:.6; }
.silhouette--region .sh-state.lit2{ fill:var(--acc-500); }
.hm-pin .hm-lab{ font-size:22px; font-weight:800; fill:var(--ink); paint-order:stroke; stroke:var(--bg); stroke-width:6px; stroke-linejoin:round; font-family:inherit; }
.hm-pin .hm-lab--soon{ font-size:15px; font-weight:700; fill:var(--muted); }
.hm-pin.is-soon .hm-dot{ fill:var(--acc-500); stroke:#fff; stroke-width:2.5; }
.hero__art--region .hero__pin--home{ top:auto; bottom:10%; inset-inline-start:auto; inset-inline-end:4%; }
.hero__art--region .hero__go{ bottom:auto; top:4%; inset-inline-end:auto; inset-inline-start:4%; }
.hero--v2 .hf--1{ top:0; inset-inline-start:-2%; }
.hero--v2 .hf--2{ bottom:30%; inset-inline-start:-4%; }
.hero--v2 .hf--3{ top:42%; inset-inline-end:-2%; }

/* ============================================================
   PRICING: equal cards, tier colours, a ribbon on the chosen plan
   ============================================================ */
.plan-grid{ align-items:stretch; }
.plan{ height:100%; position:relative; overflow:hidden; transition:transform .35s var(--ease-out), box-shadow .35s; }
.plan::before{ content:""; position:absolute; inset-inline:0; top:0; height:5px; background:var(--tier, var(--brand)); }
.plan:hover{ transform:translateY(-4px); box-shadow:var(--shadow-3); }
.plan.reveal{ transition-delay:calc(var(--i,0) * 80ms); }
.plan--free{ --tier:var(--muted); } .plan--individual{ --tier:var(--pri-500); } .plan--team{ --tier:#1f8f5f; } .plan--business{ --tier:var(--brand); } .plan--enterprise{ --tier:var(--acc-500); }
.plan--basic{ --tier:var(--pri-500); } .plan--extended{ --tier:#1f8f5f; } .plan--featured{ --tier:var(--acc-500); }
.plan--top{ box-shadow:var(--shadow-3); border-color:color-mix(in oklab,var(--brand) 45%,var(--line)); }
.plan__ribbon{
  position:absolute; top:14px; inset-inline-end:-34px; transform:rotate(45deg); background:var(--acc-500); color:#050B22;
  font-size:11.5px; font-weight:800; padding:5px 40px; letter-spacing:.02em; box-shadow:var(--shadow-1);
}
html[dir="rtl"] .plan__ribbon{ transform:rotate(-45deg); }
.plan-grid--access{ grid-template-columns:repeat(5,1fr); gap:14px; }
@media (max-width:1180px){ .plan-grid--access{ grid-template-columns:repeat(5,1fr); gap:10px; } .plan--access{ padding:18px 14px; } .plan--access h3{ font-size:16px; } .plan--access .plan__price b{ font-size:28px; } }
@media (max-width:960px){ .plan-grid--access{ grid-template-columns:repeat(2,1fr); gap:14px; } .plan--access{ padding:22px 20px; } .plan--access h3{ font-size:18px; } .plan--access .plan__price b{ font-size:34px; } }
@media (max-width:520px){ .plan-grid--access{ grid-template-columns:1fr; } }
.plan--access .plan__btn{ margin-top:auto; }
.plan--access .ticks{ flex:1; }
.plan--list{ display:flex; flex-direction:column; }
.plan--list .plan__btn{ margin-top:auto; }
.plan--list .ticks{ flex:1; }
.hero__art--region .silhouette{ width:auto; max-width:100%; height:min(600px, 72vh); margin-inline:auto; display:block; }
@media (max-width:940px){ .hero__art--region .silhouette{ height:auto; width:100%; max-height:none; } }

.silhouette--region{ overflow:hidden; }

/* ============================================================
   HOME: the hero globe
   ============================================================ */
.hero__stage--globe{ position:relative; min-height:420px; }
.hglobe{ position:relative; width:min(100%, 620px); aspect-ratio:1; margin-inline:auto; cursor:grab; touch-action:pan-y; user-select:none; -webkit-user-select:none; }
.hglobe.is-drag{ cursor:grabbing; }
.hglobe__cv{ display:block; width:100%; height:100%; }
.hglobe .globe__labels{ position:absolute; inset:0; pointer-events:none; }
.hglobe .globe__lab{ font-size:13px; }
.hglobe__hint{ position:absolute; bottom:2%; left:50%; translate:-50% 0; font-size:12px; color:var(--muted); white-space:nowrap; pointer-events:none; opacity:.85; }
.hero__go--globe{ bottom:auto; top:6%; inset-inline-end:auto; inset-inline-start:2%; z-index:2; }
.hero__pin--globe{ top:auto; bottom:12%; inset-inline-start:auto; inset-inline-end:0; z-index:2; }
.hero--v2 .hf--1{ top:4%; inset-inline-end:0; inset-inline-start:auto; }
.hero--v2 .hf--2{ bottom:34%; inset-inline-start:-2%; }
.hero--v2 .hf--3{ top:46%; inset-inline-end:-2%; inset-inline-start:auto; display:none; }
@media (min-width:1300px){ .hero--v2 .hf--3{ display:block; } }
@media (max-width:940px){
  .hglobe{ width:min(100%, 440px); }
  .hero__go--globe,.hero__pin--globe{ position:static; display:inline-flex; margin-top:10px; }
  .hero__pin--globe{ margin-inline-start:10px; }
  .hero--v2 .hf--3{ display:block; }
}
/* the regional map in the global section */
.globe__stage--map{ aspect-ratio:auto; max-width:520px; }
.globe__stage--map .silhouette--region{ width:100%; height:auto; max-height:560px; }
/* the capitals of the covered countries sit close together: spread their labels */
.hglobe .globe__lab{ translate:-50% -100%; margin:-12px 0 0 0; }
.hglobe .globe__lab:nth-child(2){ translate:-110% 30%; }
.hglobe .globe__lab:nth-child(3){ translate:10% 30%; }
.hglobe .globe__lab:nth-child(4){ translate:-130% -40%; }

@media (max-width:940px){ .hero__pin--globe{ gap:8px; align-items:baseline; } }

.ticker__i b{ font-size:12px; font-weight:800; color:var(--ink); background:color-mix(in oklab,var(--brand) 10%,transparent); padding:2px 8px; border-radius:999px; }
.stats--home .stat__src{ font-size:12px; color:var(--muted); margin-top:4px; }

/* ============================================================
   LIGHT TOUCHES (2026-10-01): plan buttons, country hero, tabs
   ============================================================ */
/* plan buttons: an arrow that leads, a fill that grows, a ring that breathes */
/* the arrow sits inside the end padding, so the text itself stays exactly centred */
.btn--cta{ position:relative; overflow:hidden; gap:0; padding-inline:32px; }
.btn--cta > span{ position:relative; z-index:1; }
.btn--cta .btn__arr{ position:absolute; z-index:1; top:50%; inset-inline-end:11px; margin-top:-7.5px; transition:transform .3s var(--ease-out); }
html[dir="rtl"] .btn--cta .btn__arr{ transform:scaleX(-1); }
.btn--cta:hover .btn__arr{ transform:translateX(4px); }
html[dir="rtl"] .btn--cta:hover .btn__arr{ transform:scaleX(-1) translateX(4px); }
.btn--tier{ border-color:color-mix(in oklab,var(--tier,var(--brand)) 60%,var(--line-strong)); }
.btn--tier::before{ content:""; position:absolute; inset:0; background:var(--tier,var(--brand)); transform:scaleX(0); transform-origin:0 50%; transition:transform .38s var(--ease-out); }
html[dir="rtl"] .btn--tier::before{ transform-origin:100% 50%; }
.btn--tier:hover{ color:#fff; border-color:var(--tier,var(--brand)); background:transparent; }
.btn--tier:hover::before{ transform:scaleX(1); }
.plan--enterprise .btn--tier:hover,.plan--featured .btn--tier:hover,html[data-theme="dark"] .btn--tier:hover{ color:var(--pri-900); }
html[data-theme="dark"] .plan--enterprise .btn--tier:hover,html[data-theme="dark"] .plan--featured .btn--tier:hover{ color:#050B22; }
.btn--glow{ animation:ctaGlow 2.8s var(--ease) 1.2s infinite; }
@keyframes ctaGlow{
  0%{ box-shadow:0 0 0 0 color-mix(in oklab,var(--brand) 50%,transparent), var(--shadow-2); }
  60%,100%{ box-shadow:0 0 0 12px transparent, var(--shadow-2); }
}
.btn--glow:hover{ animation-play-state:paused; transform:translateY(-2px); }
.plan.is-pick{ border-color:var(--tier,var(--brand)); box-shadow:0 0 0 3px color-mix(in oklab,var(--tier,var(--brand)) 30%,transparent), var(--shadow-3); }
.plan.is-pick::after{
  content:"\2713"; position:absolute; top:12px; inset-inline-start:12px; width:26px; height:26px; border-radius:50%; z-index:2;
  background:var(--tier,var(--brand)); color:#fff; display:grid; place-items:center; font-weight:800; font-size:14px; line-height:1;
  animation:pickPop .45s var(--ease-out);
}
.plan--enterprise.is-pick::after,.plan--featured.is-pick::after{ color:var(--pri-900); }
@keyframes pickPop{ from{ transform:scale(.3); opacity:0; } 60%{ transform:scale(1.15); } to{ transform:none; opacity:1; } }
.request.is-flash{ animation:reqFlash 1.4s var(--ease); }
@keyframes reqFlash{ 0%{ box-shadow:0 0 0 0 color-mix(in oklab,var(--acc-500) 70%,transparent); } 100%{ box-shadow:0 0 0 22px transparent; } }

/* country hero: a light sweeps the map, the pins arrive one by one, the figures count */
.sh-sweep{ animation:shSweep 7s linear 2.4s infinite; mix-blend-mode:screen; opacity:.85; }
html[data-theme="dark"] .sh-sweep{ opacity:.4; }
@keyframes shSweep{ from{ transform:translateX(0); } to{ transform:translateX(var(--w,1700px)); } }
.hero__pin{ opacity:0; animation:floaty 7s var(--ease) infinite, pinIn .7s var(--ease-out) forwards; }
@keyframes pinIn{ to{ opacity:1; } }
.stats .stat{ animation:riseIn .7s var(--ease-out) both; animation-delay:calc(.2s + var(--i,0) * .09s); }

/* tabs: one pill slides between the tabs */
.tabs .subnav__in{ position:relative; }
.tabs .subnav__in a{ position:relative; z-index:1; }
.tabs a[aria-current="page"]{ background:transparent; border-color:transparent; color:var(--bg); }
.tabs__ind{ position:absolute; z-index:0; border-radius:999px; background:var(--ink); pointer-events:none; }
.tabs__ind.is-live{ transition:left .42s var(--ease-out), width .42s var(--ease-out), top .3s, height .3s; }
@media (prefers-reduced-motion:reduce){
  .btn--glow,.plan.is-pick::after,.request.is-flash,.sh-sweep,.hero__pin,.stats .stat{ animation:none !important; }
  .hero__pin,.stats .stat{ opacity:1; }
  .tabs__ind.is-live{ transition:none; }
}
/* ============================================================
   NEW SERVICES (2026-10-08): tools row, saved criteria, document
   request call-out, offers beside the plan grids, the API page
   ============================================================ */
.tools{ display:flex; gap:8px; flex-wrap:wrap; margin:6px 0 12px; }
.tool{
  display:inline-flex; align-items:center; gap:7px; padding:7px 12px; border-radius:999px; font-size:12.5px; font-weight:640;
  border:1px solid var(--line-strong); background:var(--surface); color:var(--ink); cursor:pointer; font-family:inherit;
  transition:border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease), transform .2s var(--ease);
}
.tool:hover{ border-color:var(--brand); color:var(--brand); background:color-mix(in oklab,var(--brand) 7%,transparent); }
.tool:active{ transform:translateY(1px); }
.tool--x:hover{ border-color:#c0392b; color:#c0392b; background:color-mix(in oklab,#c0392b 7%,transparent); }
.co-filters .tool{ margin-inline-start:auto; }
.crit{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:12px 14px; margin-bottom:12px; border-radius:var(--r-md);
  border:1px solid var(--line); background:var(--surface); font-size:13px; line-height:1.5;
}
.crit > svg{ flex:none; color:var(--acc-600); }
.crit > div{ flex:1 1 240px; display:flex; flex-direction:column; gap:2px; }
.crit b{ font-weight:700; }
.crit span{ color:var(--muted); }
.crit__act{ display:flex; gap:6px; flex-wrap:wrap; }
.crit--new{ border-color:color-mix(in oklab,var(--acc-500) 60%,var(--line)); background:color-mix(in oklab,var(--acc-500) 8%,var(--surface)); }
.crit--new > div > span{ color:var(--ink-2); font-weight:600; }
.docs-cta{
  margin-top:22px; display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:16px 18px; border-radius:var(--r-md);
  border:1px dashed var(--line-strong); background:var(--surface); font-size:13.5px; line-height:1.5;
}
.docs-cta > svg{ flex:none; color:var(--brand); }
.docs-cta > div{ flex:1 1 260px; display:flex; flex-direction:column; gap:2px; }
.docs-cta span{ color:var(--muted); }
.offer{ margin-top:22px; display:flex; align-items:center; justify-content:space-between; gap:22px; flex-wrap:wrap; padding:22px 24px; }
.offer > div{ flex:1 1 420px; }
.offer h3{ font-size:18px; }
.offer p{ margin-top:8px; font-size:14px; color:var(--ink-2); line-height:1.65; max-width:78ch; }
.offer.is-pick{ border-color:var(--brand); box-shadow:0 0 0 3px color-mix(in oklab,var(--brand) 30%,transparent); }
.api-table{ overflow-x:auto; border:1px solid var(--line); border-radius:var(--r-md); background:var(--surface); }
.api-table table{ width:100%; border-collapse:collapse; font-size:13.5px; }
.api-table th,.api-table td{ padding:10px 14px; text-align:start; border-bottom:1px solid var(--line); vertical-align:top; }
.api-table th{ font-size:12px; color:var(--muted); font-weight:700; }
.api-table tr:last-child td{ border-bottom:0; }
.api-table code,.s-head code{ font-family:var(--font-num, ui-monospace, monospace); font-size:12.5px; background:color-mix(in oklab,var(--brand) 8%,transparent); padding:2px 6px; border-radius:6px; }
.api-table a{ color:var(--brand); font-weight:700; }
.api-sample{ margin-top:18px; padding:16px 18px; border-radius:var(--r-md); background:var(--pri-900); color:#E9EDFB; font-size:12.5px; line-height:1.6; overflow-x:auto; text-align:left; }
html[data-theme="dark"] .api-sample{ background:var(--surface-2); border:1px solid var(--line); }