/* =========================================================
   U DEL — design system
   Swiss-editorial logistics. White space, black type, red signal.
   ========================================================= */

:root {
  --red: #e30613;
  --red-ink: #c00510;           /* red for text on white (AA) */
  --red-soft: #fde8e9;
  --ink: #1a1a1c;
  --ink-2: #3c3c42;
  --muted: #6a6b73;
  --line: #e9eaed;
  --tint: #f7f7f8;
  --white: #ffffff;
  --dark-2: #242428;
  --dark-line: rgba(255, 255, 255, 0.12);
  --wa: #128c4a;
  --green: #0e8a43;
  --green-ink: #0b6e35;
  --green-soft: #e9f7ef;

  --f-latin: 'Manrope', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
  --f-arabic: 'Cairo', 'Segoe UI', Tahoma, Arial, sans-serif;
  --font: var(--f-latin);

  --wrap: 1240px;
  --gutter: clamp(20px, 4vw, 40px);
  --section: clamp(72px, 9vw, 128px);
  --radius: 6px;
  --radius-lg: 14px;
  --shadow: 0 1px 2px rgba(26, 26, 28, 0.04), 0 8px 24px -12px rgba(26, 26, 28, 0.18);
  --shadow-lg: 0 2px 4px rgba(26, 26, 28, 0.04), 0 24px 48px -24px rgba(26, 26, 28, 0.28);
  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --header-h: 84px;
}

html[lang^='ar'] { --font: var(--f-arabic), var(--f-latin); }

*,
*::before,
*::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h) + 16px);
}

body {
  margin: 0;
  font-family: var(--font);
  font-size: 17px;
  line-height: 1.6;
  color: var(--ink);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
html[lang^='ar'] body { font-size: 18px; line-height: 1.75; }

img, svg { display: block; max-width: 100%; }
a { color: inherit; }
p { margin: 0 0 1em; }
h1, h2, h3, h4 { margin: 0; font-weight: 800; }
ul, ol { margin: 0; padding: 0; list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--red); outline-offset: 3px; border-radius: 2px; }
main:focus { outline: none; }
[hidden] { display: none !important; }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip {
  position: absolute; inset-inline-start: 16px; top: -60px; z-index: 100;
  background: var(--ink); color: #fff; padding: 10px 16px; border-radius: var(--radius);
  text-decoration: none; font-weight: 700;
}
.skip:focus { top: 12px; }

.wrap { width: 100%; max-width: calc(var(--wrap) + var(--gutter) * 2); margin-inline: auto; padding-inline: var(--gutter); }

/* RTL: mirror directional icons */
[dir='rtl'] .flip-rtl { transform: scaleX(-1); }
.rot45 { transform: rotate(45deg); }

/* ---------- Type ---------- */
.display {
  font-size: clamp(2.5rem, 6.2vw, 5.6rem);
  line-height: 1;
  letter-spacing: -0.04em;
  font-weight: 800;
  margin-bottom: 0.32em;
  text-wrap: balance;
}
.h1 {
  font-size: clamp(2.1rem, 4.6vw, 4rem);
  line-height: 1.04;
  letter-spacing: -0.035em;
  margin-bottom: 0.4em;
  text-wrap: balance;
}
.h2 {
  font-size: clamp(1.75rem, 3.3vw, 2.85rem);
  line-height: 1.08;
  letter-spacing: -0.03em;
  margin-bottom: 0.45em;
  text-wrap: balance;
}
.h3 { font-size: clamp(1.25rem, 1.8vw, 1.5rem); line-height: 1.2; letter-spacing: -0.02em; margin-bottom: 0.5em; }
.h4 { font-size: 1.12rem; line-height: 1.3; letter-spacing: -0.01em; font-weight: 750; margin-bottom: 0.4em; }

html[lang^='ar'] .display,
html[lang^='ar'] .h1,
html[lang^='ar'] .h2,
html[lang^='ar'] .h3,
html[lang^='ar'] .h4 { letter-spacing: 0; line-height: 1.3; }
html[lang^='ar'] .display { font-size: clamp(2.3rem, 5.4vw, 4.8rem); line-height: 1.22; }
html[lang^='ar'] .h1 { line-height: 1.28; }

.h2-light { color: #fff; }
.lead { font-size: clamp(1.05rem, 1.35vw, 1.2rem); color: var(--ink-2); max-width: 62ch; }
.lead-lg { font-size: clamp(1.1rem, 1.6vw, 1.32rem); }
.lead-light { color: rgba(255, 255, 255, 0.72); }
.label {
  font-size: 0.74rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--muted); margin-bottom: 0.6em;
}
html[lang^='ar'] .label { letter-spacing: 0; text-transform: none; font-size: 0.85rem; }

.eyebrow {
  display: inline-flex; align-items: center; gap: 12px;
  font-size: 0.76rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--red-ink); margin-bottom: 1.25em;
}
.eyebrow::before { content: ''; width: 28px; height: 2px; background: var(--red); flex: none; }
html[lang^='ar'] .eyebrow { letter-spacing: 0; text-transform: none; font-size: 0.9rem; }
.section-dark .eyebrow, .cta-band .eyebrow { color: #ff5a63; }

.fine {
  display: flex; gap: 8px; align-items: flex-start;
  font-size: 0.86rem; color: var(--muted); margin: 20px 0 0; max-width: 80ch;
}
.fine .ico { flex: none; margin-top: 3px; }

/* ---------- Buttons ---------- */
.btn {
  --h: 48px;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: var(--h); padding: 0 22px;
  border: 1.5px solid transparent; border-radius: var(--radius);
  font-weight: 700; font-size: 0.98rem; line-height: 1.2; text-decoration: none; white-space: nowrap;
  cursor: pointer; transition: background-color .2s, color .2s, border-color .2s, transform .2s var(--ease), box-shadow .2s;
  -webkit-tap-highlight-color: transparent;
}
.btn .ico { width: 18px; height: 18px; transition: transform .25s var(--ease); }
.btn:hover .ico.flip-rtl { transform: translateX(3px); }
[dir='rtl'] .btn:hover .ico.flip-rtl { transform: scaleX(-1) translateX(3px); }
.btn-lg { --h: 56px; padding: 0 28px; font-size: 1.02rem; }
.btn-sm { --h: 40px; padding: 0 16px; font-size: 0.9rem; }
.btn-block { width: 100%; }
.btn-primary { background: var(--red); color: #fff; }
.btn-primary:hover { background: #c70511; box-shadow: 0 10px 24px -12px rgba(227, 6, 19, 0.6); }
.btn-dark { background: var(--ink); color: #fff; }
.btn-dark:hover { background: #000; }
.btn-ghost { background: transparent; border-color: var(--ink); color: var(--ink); }
.btn-ghost:hover { background: var(--ink); color: #fff; }
.btn-outline-light { border-color: rgba(255, 255, 255, 0.5); color: #fff; }
.btn-outline-light:hover { background: #fff; color: var(--ink); border-color: #fff; }
.btn-wa { background: var(--wa); color: #fff; }
.btn-wa:hover { background: #0e7a3f; }
.btn-link { min-height: 44px; padding: 0; color: var(--ink); border: 0; border-bottom: 1.5px solid currentColor; border-radius: 0; }
.btn-link:hover { color: var(--red-ink); }
.btn:active { transform: translateY(1px); }
.actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 28px; }

/* ---------- Header ---------- */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: saturate(1.4) blur(14px);
  -webkit-backdrop-filter: saturate(1.4) blur(14px);
  border-bottom: 1px solid transparent;
  transition: border-color .25s, box-shadow .25s;
}
.site-header.is-scrolled { border-color: var(--line); }
.header-inner { display: flex; align-items: center; gap: 24px; height: var(--header-h); }
.brand { display: inline-flex; text-decoration: none; flex: none; }
.nav-desktop { margin-inline-start: auto; }
.nav-desktop ul { display: flex; gap: 4px; }
.nav-desktop a {
  position: relative; display: block; padding: 10px 11px; text-decoration: none;
  font-size: 0.92rem; font-weight: 600; color: var(--ink-2); white-space: nowrap;
}
html[lang^='ar'] .nav-desktop a { font-size: 0.98rem; }
.nav-desktop a::after {
  content: ''; position: absolute; inset-inline: 11px; bottom: 4px; height: 2px;
  background: var(--red); transform: scaleX(0); transform-origin: var(--origin, left); transition: transform .3s var(--ease);
}
[dir='rtl'] .nav-desktop a::after { --origin: right; }
.nav-desktop a:hover { color: var(--ink); }
.nav-desktop a:hover::after,
.nav-desktop a[aria-current='page']::after { transform: scaleX(1); }
.nav-desktop a[aria-current='page'] { color: var(--ink); }
.header-actions { display: flex; align-items: center; gap: 10px; }
.lang-switch {
  display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 12px;
  border: 1px solid var(--line); border-radius: 999px; text-decoration: none; font-size: 0.86rem; font-weight: 700;
  transition: border-color .2s;
}
.lang-switch:hover { border-color: var(--ink); }
.ls-cur { color: var(--ink); }
.ls-sep { color: var(--line); }
.ls-other { color: var(--muted); font-family: var(--f-arabic), var(--f-latin); }
html[lang^='ar'] .ls-other { font-family: var(--f-latin); }
.burger {
  display: none; width: 44px; height: 44px; align-items: center; justify-content: center;
  border: 1px solid var(--line); border-radius: var(--radius); background: #fff; cursor: pointer;
}
.mobile-nav {
  border-top: 1px solid var(--line); background: #fff;
  max-height: calc(100dvh - var(--header-h)); overflow-y: auto;
  padding: 8px var(--gutter) 28px;
}
.mobile-nav ul li a {
  display: flex; align-items: center; min-height: 54px; border-bottom: 1px solid var(--line);
  text-decoration: none; font-size: 1.15rem; font-weight: 700;
}
.mobile-nav ul li a[aria-current='page'] { color: var(--red-ink); }
.mobile-nav-foot { display: grid; gap: 12px; margin-top: 22px; }
.mobile-nav-foot .lang-switch { justify-self: start; }

/* Logo */
.logo { display: inline-flex; align-items: center; }
.logo-img { width: auto; height: 48px; }
.logo-sm .logo-img { height: 60px; }
.logo-md .logo-img { height: 64px; }
@media (max-width: 760px) { .logo-sm .logo-img { height: 42px; } }
.logo-plate { background: #fff; padding: 12px 16px; border-radius: var(--radius); }
.logo-slot {
  display: inline-flex; flex-direction: column; justify-content: center; line-height: 1;
  height: 44px; padding: 0 12px; border: 1.5px dashed #c9cad0; border-radius: 4px; color: var(--ink);
  font-family: var(--f-latin);
}
.logo-slot-text { font-weight: 800; font-size: 1.05rem; letter-spacing: 0.02em; }
.logo-slot-sub { font-size: 0.55rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); margin-top: 3px; }
.logo-plate .logo-slot { border-color: #c9cad0; }

/* ---------- Sections ---------- */
.section { padding-block: var(--section); position: relative; }
.section-tight { padding-top: clamp(40px, 5vw, 64px); }
.section-flush { padding-top: 0; }
.section-tint { background: var(--tint); }
.section-dark { background: var(--ink); color: #fff; }
.section-dark p { color: rgba(255, 255, 255, 0.74); }
.s-head { margin-bottom: clamp(32px, 4vw, 56px); max-width: 860px; }
.s-head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: clamp(32px, 4vw, 56px); }
.s-head-row .s-head { margin-bottom: 0; }
.s-head-row > .btn-link { flex: none; margin-bottom: 10px; }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 96px); align-items: start; }
.split-center { align-items: center; }

/* Route line — the signature: a thin red dashed path that draws across sections */
.route-line {
  position: absolute; inset-inline: 0; bottom: 0; height: 2px; overflow: hidden;
  background-image: linear-gradient(90deg, var(--red) 0 14px, transparent 14px 26px);
  background-size: 26px 2px; opacity: .9;
  animation: route 1.6s linear infinite;
}
[dir='rtl'] .route-line { animation-direction: reverse; }
@keyframes route { to { background-position: 26px 0; } }

/* ---------- Hero ---------- */
.hero { position: relative; padding-block: clamp(40px, 6vw, 88px) clamp(56px, 7vw, 104px); }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.9fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.hero-for { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 22px; font-size: 0.92rem; color: var(--muted); }
.hero-for a { color: var(--ink); font-weight: 700; }
.hero-photo { margin: 0; }
.hero-photo { justify-self: center; max-width: 540px; width: 100%; }
.hero-photo img { border-radius: var(--radius-lg); width: 100%; height: auto; box-shadow: var(--shadow-lg); }
.hero-photo figcaption { font-size: 0.8rem; color: var(--muted); margin-top: 10px; text-align: center; }
.display .accent { color: var(--red); }

/* Flow schematic */
.flow { margin: 0; }
.flow-panel {
  position: relative; background: var(--ink); color: #fff; border-radius: var(--radius-lg);
  padding: 28px 28px 24px; padding-inline-end: 64px; box-shadow: var(--shadow-lg); overflow: hidden;
}
.flow-panel::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size: 28px 28px;
}
.flow-node {
  position: relative; display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: start;
  background: var(--dark-2); border: 1px solid var(--dark-line); border-radius: 10px; padding: 14px 16px;
}
.flow-hub { background: var(--red); border-color: var(--red); }
.flow-hub .flow-s, .flow-hub .flow-k { color: rgba(255,255,255,.85); }
.flow-k { font-size: 0.72rem; font-weight: 800; color: #ff5a63; letter-spacing: .08em; padding-top: 3px; font-family: var(--f-latin); }
.flow-t { margin: 0; font-weight: 800; font-size: 1.02rem; line-height: 1.25; }
.flow-s { margin: 2px 0 0; font-size: 0.82rem; color: rgba(255,255,255,.62); }
.flow-ico { width: 22px; height: 22px; opacity: .85; }
.flow-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.flow-chips span { font-size: 0.7rem; font-weight: 600; padding: 3px 8px; border-radius: 999px; background: rgba(255,255,255,.08); color: rgba(255,255,255,.85); }
html[lang^='ar'] .flow-chips span { font-size: 0.76rem; }
.flow-link { position: relative; height: 26px; margin-inline-start: 26px; }
.flow-link span {
  position: absolute; inset-inline-start: 0; top: 0; bottom: 0; width: 2px;
  background-image: linear-gradient(180deg, var(--red) 0 6px, transparent 6px 12px);
  background-size: 2px 12px; animation: flowDown 0.9s linear infinite;
}
@keyframes flowDown { to { background-position: 0 12px; } }
.flow-back {
  position: absolute; inset-inline-end: 26px; top: 40px; bottom: 74px; width: 2px;
  background-image: linear-gradient(0deg, rgba(255,255,255,.5) 0 6px, transparent 6px 12px);
  background-size: 2px 12px; animation: flowUp 1.2s linear infinite;
}
.flow-back::before {
  content: ''; position: absolute; top: -6px; left: -5px; border: 6px solid transparent; border-bottom-color: rgba(255,255,255,.6); border-top: 0;
}
@keyframes flowUp { to { background-position: 0 -12px; } }
.flow-back-label {
  position: relative; display: flex; gap: 8px; align-items: center; margin: 16px 0 0;
  font-size: 0.82rem; color: rgba(255,255,255,.72);
}
.flow figcaption { font-size: 0.76rem; color: var(--muted); margin-top: 10px; text-align: end; }

/* ---------- Page hero ---------- */
.page-hero { position: relative; padding-block: clamp(48px, 7vw, 104px) clamp(48px, 6vw, 88px); border-bottom: 1px solid var(--line); margin-bottom: clamp(56px, 7vw, 96px); }
.page-hero-sm { padding-block: clamp(40px, 6vw, 80px) clamp(32px, 4vw, 48px); }
.page-hero-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.8fr); gap: clamp(32px, 5vw, 80px); align-items: end; }
.page-hero-text .h1 { max-width: 18ch; }
html[lang^='ar'] .page-hero-text .h1 { max-width: 22ch; }
.hero-stat-stack { display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; }
.hero-stat-stack > div { background: #fff; padding: 22px 24px; display: flex; flex-direction: column; gap: 2px; }
.hero-stat-stack .big { font-size: clamp(2.4rem, 4vw, 3.4rem); font-weight: 800; letter-spacing: -0.04em; line-height: 1; color: var(--ink); font-family: var(--f-latin); }
.hero-stat-stack .big + span { color: var(--muted); font-weight: 600; }
.display-404 { color: var(--red); margin-bottom: 0.1em; }

/* ---------- Stats ---------- */
.section-stats { padding-top: clamp(64px, 7vw, 96px); }
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 2px solid var(--ink); }
.stat { padding: 26px 24px 26px 0; border-inline-end: 1px solid var(--line); }
[dir='rtl'] .stat { padding: 26px 0 26px 24px; }
.stat + .stat { padding-inline-start: 24px; }
.stat:last-child { border-inline-end: 0; }
.stat-value { font-size: clamp(2.6rem, 5vw, 4.4rem); font-weight: 800; letter-spacing: -0.045em; line-height: 1; margin: 0 0 14px; font-family: var(--f-latin); font-variant-numeric: tabular-nums; }
.stat-prefix { color: var(--red); font-weight: 700; margin-inline-end: 4px; font-size: .6em; vertical-align: .25em; }
.stat-label { font-weight: 750; margin: 0; line-height: 1.3; }
.stat-sub { color: var(--muted); font-size: 0.9rem; margin: 4px 0 0; }
.capacity { margin-top: 0; display: flex; flex-direction: column; justify-content: center; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius-lg); }
.capacity-head { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; margin-bottom: 14px; }
.capacity-title { font-weight: 750; margin: 0; }
.capacity-scale { display: flex; gap: 12px; font-size: .82rem; color: var(--muted); margin: 0; }
.capacity-scale span + span::before { content: '→ '; }
[dir='rtl'] .capacity-scale span + span::before { content: '← '; }
.capacity-track { display: flex; height: 52px; border-radius: 8px; overflow: hidden; background: var(--tint); }
.capacity-fill {
  flex: 0 0 var(--pct); background: var(--ink); color: #fff; display: flex; align-items: center; padding-inline: 14px;
  transform-origin: var(--origin, left); transition: transform 1.2s var(--ease);
}
[dir='rtl'] .capacity-fill { --origin: right; }
.capacity-free {
  flex: 1; display: flex; align-items: center; padding-inline: 14px; color: var(--ink-2);
  background-image: repeating-linear-gradient(-45deg, transparent 0 8px, rgba(227,6,19,.09) 8px 10px);
  border-inline-start: 2px solid var(--red);
}
.capacity-fill span, .capacity-free span { font-size: .82rem; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.capacity-note { margin: 12px 0 0; font-weight: 600; color: var(--red-ink); }
.js .capacity:not(.is-in) .capacity-fill { transform: scaleX(0); }

/* ---------- Problem / solution ---------- */
.cost-list { display: grid; gap: 0; margin-top: 28px; border-top: 1px solid var(--dark-line); }
.cost-list li { display: flex; gap: 12px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--dark-line); color: rgba(255,255,255,.86); }
.cost-list .ico { color: #ff5a63; flex: none; }
.solution { background: #fff; color: var(--ink); border-radius: var(--radius-lg); padding: clamp(28px, 4vw, 48px); }
.section-dark .solution p { color: var(--ink-2); }
.check-list { display: grid; gap: 12px; margin: 22px 0 28px; }
.check-list li { display: flex; gap: 12px; align-items: flex-start; }
.check-list .ico { flex: none; color: var(--red); margin-top: 3px; }
.check-list-lg li { font-size: 1.08rem; font-weight: 600; padding-bottom: 12px; border-bottom: 1px solid var(--line); }

/* ---------- Cards ---------- */
.cards { display: grid; gap: 16px; }
.cards-4 { grid-template-columns: repeat(4, 1fr); }
.card {
  position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line);
  border-radius: var(--radius-lg); padding: 28px 24px 24px; transition: transform .3s var(--ease), box-shadow .3s, border-color .3s;
}
.card:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: #d6d7dc; }
.card p { color: var(--ink-2); flex: 1; }
.card-icon {
  display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 10px;
  background: var(--red-soft); color: var(--red); margin-bottom: 22px;
}
.card-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; text-decoration: none; font-size: .92rem; margin-top: 8px; }
.card-link::after { content: ''; position: absolute; inset: 0; }
.card-link .ico { width: 16px; height: 16px; color: var(--red); transition: transform .25s var(--ease); }
.card:hover .card-link .ico { transform: translateX(4px); }
[dir='rtl'] .card:hover .card-link .ico { transform: scaleX(-1) translateX(4px); }
.cards-dark .card { background: var(--dark-2); border-color: var(--dark-line); color: #fff; }
.cards-dark .card p { color: rgba(255,255,255,.7); }
.cards-dark .card-icon { background: rgba(227,6,19,.16); color: #ff5a63; }
.cards-dark .card:hover { border-color: rgba(255,255,255,.3); }

/* Features */
.features { display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; }
.features.cols-3 { grid-template-columns: repeat(3, 1fr); }
.features.cols-4 { grid-template-columns: repeat(4, 1fr); }
.feature { display: flex; flex-direction: column; gap: 18px; background: #fff; padding: 28px 26px; transition: background-color .3s; }
.section-tint .feature { background: #fff; }
.feature:hover { background: #fcfcfd; }
.feature-icon { color: var(--red); }
.feature-icon .ico { width: 28px; height: 28px; }
.feature p { color: var(--ink-2); margin: 0; font-size: .97rem; }

/* Numbered */
.numbered { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px 28px; }
.numbered-item { border-top: 2px solid var(--ink); padding-top: 18px; }
.numbered-n { display: block; font-weight: 800; color: var(--red); font-size: .85rem; margin-bottom: 26px; font-family: var(--f-latin); }
.numbered-item p { color: var(--ink-2); margin: 0; font-size: .97rem; }

/* ---------- Coverage groups ---------- */
.groups { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.group-card {
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 22px 20px;
  display: flex; flex-direction: column; transition: border-color .3s, box-shadow .3s, transform .3s var(--ease);
}
.group-card:hover { border-color: #cfd0d6; box-shadow: var(--shadow); transform: translateY(-2px); }
.group-card header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 22px; }
.group-num { font-weight: 800; color: var(--red); font-size: .85rem; font-family: var(--f-latin); }
.group-count { font-size: .76rem; font-weight: 700; color: var(--muted); background: var(--tint); padding: 4px 10px; border-radius: 999px; }
.group-name { font-size: 1.14rem; line-height: 1.22; letter-spacing: -0.01em; margin-bottom: 16px; min-height: 2.44em; }
html[lang^='ar'] .group-name { letter-spacing: 0; line-height: 1.4; }
.zone-list { display: grid; gap: 0; margin-top: auto; }
.zone-list li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; padding: 9px 0; border-top: 1px solid var(--line); font-size: .95rem; font-weight: 600; }
.zone-list li::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--red); flex: none; transform: translateY(-2px); }
.zone-alt { color: var(--muted); font-weight: 500; font-size: .88rem; }
.zone-note { flex-basis: 100%; padding-inline-start: 16px; font-size: .76rem; font-weight: 600; color: var(--red-ink); }
.groups-full { grid-template-columns: repeat(3, 1fr); gap: 16px; }
.groups-full .group-card { padding: 26px 24px; }
.group-card.is-hidden, [data-zone].is-hidden { display: none; }
[data-zone].is-match .zone-name { background: linear-gradient(transparent 60%, rgba(227,6,19,.18) 60%); }

/* Finder */
.finder { display: grid; gap: 16px; margin-bottom: 28px; }
.finder-search { position: relative; display: flex; align-items: center; }
.finder-search > .ico { position: absolute; inset-inline-start: 18px; color: var(--muted); pointer-events: none; }
.finder-search input {
  width: 100%; height: 60px; padding-inline: 52px 160px; border: 1.5px solid var(--ink); border-radius: var(--radius);
  font-size: 1.05rem; background: #fff; -webkit-appearance: none; appearance: none;
}
.finder-search input:focus { outline: none; box-shadow: 0 0 0 4px rgba(227,6,19,.15); border-color: var(--red); }
.finder-count { position: absolute; inset-inline-end: 18px; font-size: .85rem; color: var(--muted); font-weight: 600; }
.filters { display: flex; flex-wrap: wrap; gap: 8px; }
.filter {
  min-height: 42px; padding: 0 16px; border: 1px solid var(--line); background: #fff; border-radius: 999px; font-weight: 650; font-size: .9rem; cursor: pointer;
  transition: background-color .2s, color .2s, border-color .2s;
}
.filter:hover { border-color: var(--ink); }
.filter.is-active { background: var(--ink); border-color: var(--ink); color: #fff; }
.empty { padding: 40px; border: 1.5px dashed #d0d1d6; border-radius: var(--radius-lg); text-align: center; }
.empty .actions { justify-content: center; }
.note { display: flex; gap: 16px; margin-top: 28px; padding: 20px 22px; background: var(--tint); border-radius: var(--radius-lg); border-inline-start: 3px solid var(--red); }
.note > .ico { color: var(--red); flex: none; }
.note p { margin: 0; color: var(--ink-2); }
.note-title { font-weight: 800; color: var(--ink) !important; margin-bottom: 4px !important; }

/* ---------- Process (home) ---------- */
.process { display: grid; grid-template-columns: repeat(5, 1fr); counter-reset: s; position: relative; }
.process::before {
  content: ''; position: absolute; top: 21px; inset-inline: 0; height: 2px;
  background-image: linear-gradient(90deg, var(--ink) 0 8px, transparent 8px 14px); background-size: 14px 2px;
}
.process li { position: relative; padding-inline-end: 20px; }
.process-n {
  position: relative; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%;
  background: #fff; border: 2px solid var(--ink); font-weight: 800; font-size: .9rem; margin-bottom: 18px; font-family: var(--f-latin);
  transition: background-color .3s, color .3s, border-color .3s;
}
.process li:hover .process-n { background: var(--red); border-color: var(--red); color: #fff; }
.process li:last-child .process-n { background: var(--ink); color: #fff; }
.process-t { display: block; font-weight: 750; font-size: 1.06rem; line-height: 1.3; }

/* ---------- Steps (how page) ---------- */
.steps { position: relative; display: grid; gap: 0; }
.step { position: relative; display: grid; grid-template-columns: 56px 120px 1fr; gap: 0 24px; padding-block: 36px; border-top: 1px solid var(--line); }
.step:last-child { border-bottom: 1px solid var(--line); }
.step-rail { position: relative; }
.step-rail::before { content: ''; position: absolute; top: -36px; bottom: -36px; inset-inline-start: 50%; width: 2px; background: var(--line); }
.step:first-child .step-rail::before { top: 14px; }
.step:last-child .step-rail::before { bottom: auto; height: 50px; }
.step-dot { position: absolute; top: 10px; inset-inline-start: calc(50% - 9px); width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--ink); background: #fff; transition: background-color .4s, border-color .4s, transform .4s var(--ease); }
.step.is-in .step-dot { background: var(--red); border-color: var(--red); transform: scale(1.1); }
.step-n { font-size: clamp(2.6rem, 5vw, 4.2rem); font-weight: 800; letter-spacing: -0.05em; line-height: .9; color: var(--line); transition: color .6s; font-family: var(--f-latin); }
.step.is-in .step-n { color: var(--ink); }
.step-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.step-cols p:last-child { margin: 0; color: var(--ink-2); }
.step-you p:last-child { display: flex; gap: 10px; align-items: flex-start; font-weight: 650; color: var(--ink) !important; }
.step-you .ico { color: var(--red); flex: none; margin-top: 5px; }

/* ---------- Services page ---------- */
.service-blocks { display: grid; gap: 0; }
.service-block { display: grid; grid-template-columns: 120px minmax(0, 1.1fr) minmax(0, 1fr); gap: 32px; padding-block: 48px; border-top: 1px solid var(--line); scroll-margin-top: calc(var(--header-h) + 24px); }
.service-block:last-child { border-bottom: 1px solid var(--line); }
.service-index { display: flex; flex-direction: column; gap: 18px; font-weight: 800; color: var(--red); font-family: var(--f-latin); }
.service-ico { width: 40px; height: 40px; color: var(--ink); }
.service-points .check-list { margin: 0; }

/* ---------- Trial & pricing ---------- */
.trial {
  display: grid; grid-template-columns: auto minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: center;
  padding: clamp(32px, 5vw, 64px); border: 2px solid var(--ink); border-radius: var(--radius-lg); position: relative; overflow: hidden;
}
.trial::after { content: ''; position: absolute; inset-inline-end: 0; top: 0; width: 10px; height: 100%; background: var(--red); }
.trial-nums { display: flex; align-items: baseline; gap: 10px; font-family: var(--f-latin); font-weight: 800; letter-spacing: -0.06em; line-height: .85; font-size: clamp(4.2rem, 9vw, 8.5rem); direction: ltr; }
.trial-nums span:last-child { color: var(--red); }
.trial-or { color: var(--line); font-weight: 300; }
.trial .actions { margin-top: 20px; }
.pricing {
  display: grid; grid-template-columns: 1.4fr 1fr auto; gap: 24px 40px; align-items: center;
  margin-top: 20px; padding: 28px 32px; background: var(--tint); border-radius: var(--radius-lg);
}
.pricing-title { font-weight: 700; margin: 0 0 6px; color: var(--ink-2); }
.pricing-price { margin: 0; font-size: clamp(1.4rem, 2.4vw, 1.9rem); font-weight: 800; letter-spacing: -0.02em; line-height: 1.2; }
.pricing-price-sm { font-size: 1.35rem; margin-bottom: 10px; }
.pricing-price sup, .pricing-note sup { color: var(--red); }
.pricing-note { margin: 0; font-size: .86rem; color: var(--muted); }

/* ---------- CTA band ---------- */
.cta-band { background: var(--ink); color: #fff; padding-block: clamp(64px, 8vw, 112px); position: relative; overflow: hidden; }
.cta-band::before {
  content: ''; position: absolute; top: 0; inset-inline: 0; height: 2px;
  background-image: linear-gradient(90deg, var(--red) 0 14px, transparent 14px 26px); background-size: 26px 2px; animation: route 1.6s linear infinite;
}
.cta-band-inner { display: grid; grid-template-columns: minmax(0, 1.2fr) auto; gap: 32px 64px; align-items: end; }
.cta-band .h2 { font-size: clamp(2rem, 4.2vw, 3.6rem); max-width: 16ch; }
html[lang^='ar'] .cta-band .h2 { max-width: 20ch; }
.cta-band .actions { margin-top: 0; }

/* ---------- Channels ---------- */
.channels { display: grid; gap: 10px; }
.channel {
  display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: center; padding: 16px 18px; min-height: 72px;
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); text-decoration: none; transition: border-color .2s, transform .25s var(--ease), box-shadow .25s;
}
.channel:hover { border-color: var(--ink); transform: translateY(-2px); box-shadow: var(--shadow); }
.channel-icon { display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; border-radius: 10px; background: var(--tint); }
.channel-primary { background: var(--wa); border-color: var(--wa); color: #fff; }
.channel-primary .channel-icon { background: rgba(255,255,255,.16); }
.channel-primary .channel-label { color: rgba(255,255,255,.8) !important; }
.channel-primary:hover { border-color: var(--wa); }
.channel-text { display: flex; flex-direction: column; min-width: 0; }
.channel-label { font-size: .8rem; font-weight: 600; color: var(--muted); }
.channel-value { font-weight: 800; font-size: 1.05rem; overflow: hidden; text-overflow: ellipsis; text-align: start; }
[dir='rtl'] .channel-value { text-align: right; }
.channel-go { opacity: .5; }

/* ---------- Forms ---------- */
.form-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; align-items: start; }
.form-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: clamp(24px, 4vw, 48px); box-shadow: var(--shadow); }
.form-aside { display: grid; gap: 16px; position: sticky; top: calc(var(--header-h) + 20px); }
.aside-card { background: var(--tint); border-radius: var(--radius-lg); padding: 26px; }
.aside-card p { color: var(--ink-2); }
.aside-wa { background: var(--ink); color: #fff; }
.aside-wa p { color: rgba(255,255,255,.72); }
.aside-wa .card-icon { background: rgba(255,255,255,.1); color: #fff; }
.aside-phone { display: block; margin-top: 14px; text-align: center; font-weight: 800; text-decoration: none; color: #fff; }
.form { margin-top: 28px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 18px; }
.field { display: flex; flex-direction: column; gap: 8px; min-width: 0; margin: 0; padding: 0; border: 0; }
.field-full { grid-column: 1 / -1; }
.field label, .field legend { font-weight: 700; font-size: .92rem; padding: 0; }
.field legend { margin-bottom: 10px; }
.req { color: var(--red); margin-inline-start: 3px; }
.opt, .hint { font-weight: 500; color: var(--muted); font-size: .84rem; }
.hint { display: block; margin-top: 2px; }
.field input:not([type='checkbox']):not([type='radio']), .field select, .field textarea {
  width: 100%; min-height: 52px; padding: 12px 14px; border: 1.5px solid #d5d6db; border-radius: var(--radius); background: #fff; font-size: 16px;
  transition: border-color .2s, box-shadow .2s; -webkit-appearance: none; appearance: none;
}
.field textarea { resize: vertical; min-height: 128px; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: #a7a8b0; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 4px rgba(26,26,28,.08); }
.field input::placeholder, .field textarea::placeholder { color: #9a9ba3; }
[dir='rtl'] .field input[dir='ltr'] { text-align: right; }
.select-wrap { position: relative; }
.select-wrap::after { content: ''; position: absolute; inset-inline-end: 16px; top: 50%; width: 8px; height: 8px; border-right: 2px solid var(--ink); border-bottom: 2px solid var(--ink); transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.field select { padding-inline-end: 40px; }
.field.has-error input, .field.has-error select, .field.has-error textarea { border-color: var(--red); background: #fff8f8; }
.field-error { margin: 0; min-height: 0; font-size: .84rem; font-weight: 600; color: var(--red-ink); }
.field-error:empty { display: none; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip-check { position: relative; cursor: pointer; }
.chip-check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.chip-check span {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1.5px solid #d5d6db; border-radius: 999px; font-weight: 650; font-size: .92rem;
  transition: background-color .2s, color .2s, border-color .2s;
}
.chip-check:hover span { border-color: var(--ink); }
.chip-check input:checked + span { background: var(--ink); border-color: var(--ink); color: #fff; }
.chip-check input:focus-visible + span { outline: 2px solid var(--red); outline-offset: 2px; }
.field.has-error .chip-check span { border-color: var(--red); }
.check { display: grid; grid-template-columns: 24px 1fr; gap: 12px; align-items: start; font-weight: 500 !important; font-size: .92rem !important; color: var(--ink-2); cursor: pointer; }
.check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.check-box { width: 24px; height: 24px; border: 1.5px solid #b9bac1; border-radius: 5px; display: inline-flex; align-items: center; justify-content: center; color: transparent; transition: background-color .2s, border-color .2s; }
.check input:checked + .check-box { background: var(--red); border-color: var(--red); color: #fff; }
.check input:focus-visible + .check-box { outline: 2px solid var(--red); outline-offset: 2px; }
.field.has-error .check-box { border-color: var(--red); }
.check a { color: var(--ink); font-weight: 700; }
.hp { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.form-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }
.form-summary { margin: 0; color: var(--red-ink); font-weight: 700; }
.btn-submit { margin-inline-start: auto; }
.btn-submit .spinner { display: none; width: 18px; height: 18px; border: 2px solid rgba(255,255,255,.4); border-top-color: #fff; border-radius: 50%; animation: spin .8s linear infinite; }
.btn-submit.is-loading { pointer-events: none; opacity: .85; }
.btn-submit.is-loading .spinner { display: inline-block; }
.btn-submit.is-loading .ico { display: none; }
@keyframes spin { to { transform: rotate(360deg); } }
.form-status { margin-top: 20px; }
.form-status:focus { outline: none; }
.status-ok, .status-err { display: flex; gap: 16px; padding: 20px; border-radius: var(--radius-lg); }
.status-ok { background: #edf8f1; border: 1px solid #bfe5cd; }
.status-err { background: #fff2f2; border: 1px solid #f6c9cc; }
.status-icon { flex: none; display: inline-flex; width: 40px; height: 40px; border-radius: 50%; align-items: center; justify-content: center; background: #fff; }
.status-ok .status-icon { color: var(--wa); }
.status-err .status-icon { color: var(--red); }
.status-title { font-weight: 800; margin-bottom: 4px; }
.status-ok p, .status-err p { color: var(--ink-2); }
.form.is-done .form-grid, .form.is-done .form-foot { display: none; }
.hint-banner { display: flex; gap: 10px; align-items: flex-start; padding: 14px 16px; background: var(--tint); border-radius: var(--radius); font-size: .92rem; color: var(--ink-2); margin: 16px 0 0; }
.hint-banner .ico { flex: none; color: var(--red); margin-top: 3px; }
.hint-banner a { font-weight: 700; color: var(--ink); }

/* Mini steps */
.mini-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.mini-steps li { background: #fff; border-radius: var(--radius-lg); padding: 26px; border: 1px solid var(--line); }
.mini-n { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--red); color: #fff; font-weight: 800; font-size: .88rem; margin-bottom: 20px; font-family: var(--f-latin); }
.mini-steps p { color: var(--ink-2); margin: 0; }

/* ---------- About ---------- */
.story { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 96px); }
.story-mark { display: flex; flex-direction: column; gap: 6px; font-weight: 800; letter-spacing: -0.04em; font-size: clamp(2rem, 4.4vw, 3.8rem); line-height: 1; }
html[lang^='ar'] .story-mark { letter-spacing: 0; line-height: 1.3; }
.story-mark span:nth-child(2) { color: var(--red); }
.story-mark span:nth-child(3) { color: #c4c5cb; }
.story-text p:not(.lead) { color: var(--ink-2); }

/* ---------- FAQ ---------- */
.faq-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 40px; align-items: start; }
.faq { border-top: 2px solid var(--ink); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary {
  display: grid; grid-template-columns: 44px 1fr 28px; gap: 12px; align-items: center; padding: 22px 0; cursor: pointer; list-style: none;
  font-weight: 750; font-size: clamp(1.02rem, 1.4vw, 1.16rem); line-height: 1.35;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary:hover .faq-q { color: var(--red-ink); }
.faq-n { color: var(--red); font-size: .82rem; font-weight: 800; font-family: var(--f-latin); }
.faq-toggle { display: inline-flex; color: var(--ink); transition: transform .3s var(--ease); }
.faq-item[open] .faq-toggle { transform: rotate(45deg); }
.faq-a { padding: 0 0 24px; padding-inline-start: 56px; }
.faq-a p { color: var(--ink-2); max-width: 68ch; }
.faq-more { position: sticky; top: calc(var(--header-h) + 20px); display: grid; gap: 10px; }
.faq-more p { margin-bottom: 8px; }

/* ---------- Prose / legal ---------- */
.prose { max-width: 780px; }
.prose h2 { font-size: 1.3rem; letter-spacing: -0.01em; margin: 2em 0 .6em; }
.prose h2:first-child { margin-top: 0; }
.prose p { color: var(--ink-2); }
.dl { margin: 0; border-top: 1px solid var(--line); }
.dl-row { display: grid; grid-template-columns: 240px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.dl dt { font-weight: 700; }
.dl dd { margin: 0; color: var(--ink-2); }
.tbc { display: inline-block; font-size: .82rem; font-weight: 700; color: #8a5a00; background: #fff4dc; padding: 2px 10px; border-radius: 999px; }

/* ---------- Footer (light, so the official logo sits on its natural ground) ---------- */
.site-footer { background: var(--tint); color: var(--ink-2); padding-block: 72px 32px; border-top: 1px solid var(--line); }
.f-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap: 40px; padding-bottom: 48px; border-bottom: 1px solid var(--line); }
.f-brand .logo-img { height: 72px; }
.f-brand p { margin-top: 20px; max-width: 40ch; font-size: .95rem; }
.f-b2b { font-size: .82rem !important; color: var(--muted); }
.f-title { font-size: .76rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--ink); margin-bottom: 18px; }
html[lang^='ar'] .f-title { letter-spacing: 0; font-size: .9rem; }
.f-col ul { display: grid; gap: 4px; }
.f-col a { display: inline-flex; gap: 10px; min-height: 36px; align-items: center; text-decoration: none; transition: color .2s; }
.f-col a:hover { color: var(--red-ink); }
.f-col a .brand-ico { width: 18px; height: 18px; flex: none; }
.f-muted { color: var(--muted); padding-top: 6px; font-size: .92rem; }
.f-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; padding-top: 24px; font-size: .84rem; color: var(--muted); }
.f-bottom p { margin: 0; }
.f-legal { display: flex; flex-wrap: wrap; gap: 20px; }
.f-legal a { text-decoration: none; }
.f-legal a:hover { color: var(--ink); }

/* ---------- Sticky mobile CTA ---------- */
.sticky-cta { display: none; }

/* ---------- Reveal ---------- */
.js .reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--ease), transform .7s var(--ease); transition-delay: calc(var(--i, 0) * 70ms); }
.js .reveal.is-in { opacity: 1; transform: none; }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 1180px) {
  .nav-desktop a { padding-inline: 8px; font-size: .88rem; }
  .groups { grid-template-columns: repeat(3, 1fr); }
  .features.cols-4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1060px) {
  :root { --header-h: 64px; }
  .nav-desktop, .header-cta { display: none; }
  .header-actions { margin-inline-start: auto; }
  .burger { display: inline-flex; }
  .hero-grid, .page-hero-grid { grid-template-columns: 1fr; }
  .page-hero-grid { align-items: start; }
  .cards-4 { grid-template-columns: repeat(2, 1fr); }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .stat:nth-child(2) { border-inline-end: 0; }
  .stat:nth-child(3) { padding-inline-start: 0; }
  .stat:nth-child(n + 3) { border-top: 1px solid var(--line); }
  .split, .story, .trial { grid-template-columns: 1fr; }
  .numbered { grid-template-columns: repeat(2, 1fr); }
  .service-block { grid-template-columns: 1fr; gap: 18px; }
  .service-index { flex-direction: row; align-items: center; }
  .form-layout, .faq-wrap { grid-template-columns: 1fr; }
  .form-aside, .faq-more { position: static; }
  .pricing { grid-template-columns: 1fr; }
  .pricing .btn { justify-self: start; }
  .cta-band-inner { grid-template-columns: 1fr; align-items: start; }
  .f-grid { grid-template-columns: 1fr 1fr; }
  .f-brand { grid-column: 1 / -1; }
  .process { grid-template-columns: 1fr; gap: 0; }
  .process::before { top: 0; bottom: 0; width: 2px; height: auto; inset-inline-start: 21px; inset-inline-end: auto; background-image: linear-gradient(180deg, var(--ink) 0 8px, transparent 8px 14px); background-size: 2px 14px; }
  .process li { display: flex; align-items: center; gap: 18px; padding-block: 8px; }
  .process-n { margin: 0; flex: none; }
  .groups-full { grid-template-columns: repeat(2, 1fr); }
  .hero-text .display { max-width: 16ch; }
  html[lang^='ar'] .hero-text .display { max-width: 20ch; }
}

@media (max-width: 760px) {
  body { font-size: 16px; padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
  html[lang^='ar'] body { font-size: 17px; }
  .lang-switch .ls-sep, .header-actions > .lang-switch .ls-cur { display: none; }
  .groups, .groups-full { grid-template-columns: 1fr; }
  .group-name { min-height: 0; }
  .cards-4, .features.cols-3, .features.cols-4, .mini-steps, .numbered { grid-template-columns: 1fr; }
  .numbered { gap: 28px; }
  .stat-value { font-size: 2.6rem; }
  .stat { padding-inline-end: 12px !important; }
  .stat + .stat { padding-inline-start: 12px; }
  .stat:nth-child(3) { padding-inline-start: 0 !important; }
  .stat-sub { font-size: .82rem; }
  .capacity { padding: 18px; }
  .capacity-head { flex-direction: column; gap: 4px; }
  .capacity-track { height: auto; flex-direction: column; border-radius: 8px; }
  .capacity-fill { flex-basis: auto; width: var(--pct); min-width: 60%; min-height: 44px; transform-origin: left; }
  [dir='rtl'] .capacity-fill { transform-origin: right; }
  .capacity-free { min-height: 44px; border-inline-start: 0; border-top: 2px solid var(--red); }
  .form-grid { grid-template-columns: 1fr; }
  .s-head-row { flex-direction: column; align-items: flex-start; }
  .s-head-row > .btn-link { margin-bottom: 0; }
  .step { grid-template-columns: 32px 1fr; gap: 0 16px; }
  .step-n { grid-column: 2; font-size: 2.4rem; margin-bottom: 10px; }
  .step-body { grid-column: 2; }
  .step-rail { grid-row: 1 / span 2; }
  .step-cols { grid-template-columns: 1fr; gap: 14px; }
  .faq-item summary { grid-template-columns: 32px 1fr 24px; }
  .faq-a { padding-inline-start: 0; }
  .dl-row { grid-template-columns: 1fr; gap: 2px; }
  .f-grid { grid-template-columns: 1fr; }
  .finder-search input { padding-inline-end: 18px; height: 56px; }
  .finder-count { position: static; display: block; }
  .finder-search { flex-direction: column; align-items: stretch; gap: 8px; }
  .finder-search > .ico { top: 16px; }
  .filters { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scrollbar-width: none; }
  .filters::-webkit-scrollbar { display: none; }
  .filter { flex: none; }
  .flow-panel { padding: 20px; padding-inline-end: 50px; }
  .flow-back { inset-inline-end: 20px; }
  .trial::after { width: 100%; height: 8px; top: auto; bottom: 0; }
  .actions .btn-lg { flex: 1 1 100%; }
  .actions .btn-link { flex: none; }
  .btn { white-space: normal; text-align: center; }
  .sticky-cta {
    display: grid; grid-template-columns: 1.3fr 1fr; gap: 8px; position: fixed; inset-inline: 0; bottom: 0; z-index: 40;
    padding: 10px var(--gutter) calc(10px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.96);
    border-top: 1px solid var(--line); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
    transform: translateY(0); transition: transform .3s var(--ease);
  }
  .sticky-cta .btn { min-height: 50px; padding: 0 12px; }
  .sticky-cta.is-hidden { transform: translateY(110%); }
  .site-footer { padding-bottom: 32px; }
}

@media (max-width: 380px) {
  .stats-grid { grid-template-columns: 1fr; }
  .stat { border-inline-end: 0 !important; padding-inline: 0 !important; border-top: 1px solid var(--line); }
  .stat:first-child { border-top: 0; }
  .logo-slot { padding: 0 8px; }
  .lang-switch { padding: 0 10px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; transition-delay: 0ms !important; }
  .js .reveal { opacity: 1; transform: none; }
  .js .capacity:not(.is-in) .capacity-fill { transform: none; }
}

@media print {
  .site-header, .sticky-cta, .cta-band, .site-footer { display: none; }
}

/* Odd item counts: let the last feature fill the remaining row */
.features.cols-4 > .feature:last-child:nth-child(4n + 3) { grid-column: span 2; }
.features.cols-3 > .feature:last-child:nth-child(3n + 2) { grid-column: span 2; }
@media (max-width: 1180px) { .features.cols-4 > .feature:last-child:nth-child(odd) { grid-column: span 2; } }
@media (max-width: 760px) { .features > .feature:last-child { grid-column: auto !important; } }
.f-col a .f-ico { width: 18px; height: 18px; color: var(--red); flex: none; }

/* ---------- Delivery rate (green highlight) ---------- */
.perf-row { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 16px; margin-top: 40px; align-items: stretch; }
.delivery {
  display: grid; grid-template-columns: 112px 1fr; gap: 22px; align-items: center;
  padding: 24px; border-radius: var(--radius-lg); background: var(--green-soft); border: 1px solid #c5e8d3;
}
.delivery-ring { width: 112px; height: 112px; transform: rotate(-90deg); }
[dir='rtl'] .delivery-ring { transform: rotate(-90deg) scaleY(-1); }
.ring-track { fill: none; stroke: #cfe9da; stroke-width: 10; }
.ring-fill { fill: none; stroke: var(--green); stroke-width: 10; stroke-linecap: round; stroke-dasharray: var(--dash); stroke-dashoffset: var(--off); transition: stroke-dashoffset 1.6s var(--ease); }
.js .delivery:not(.is-in) .ring-fill { stroke-dashoffset: var(--dash); }
.delivery-label { margin: 0; font-size: .76rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--green-ink); }
html[lang^='ar'] .delivery-label { letter-spacing: 0; font-size: .9rem; }
.delivery-value { margin: 2px 0 4px; font-family: var(--f-latin); font-weight: 800; font-size: clamp(2.6rem, 4.4vw, 3.6rem); line-height: 1; letter-spacing: -0.04em; color: var(--green); font-variant-numeric: tabular-nums; }
html[lang^='ar'] .delivery-value { text-align: right; }
.delivery-gt, .delivery-pct { font-size: .55em; vertical-align: .35em; margin-inline: 2px; }
.delivery-desc { margin: 0; font-weight: 700; color: var(--ink); line-height: 1.4; }
.delivery-note { margin: 6px 0 0; font-size: .82rem; color: var(--green-ink); }
.delivery-compact { margin-top: 16px; }
.stack-green { background: var(--green-soft) !important; }
.stack-green .big { color: var(--green) !important; }
.stack-green .big + span { color: var(--green-ink) !important; }
@media (max-width: 1060px) { .perf-row { grid-template-columns: 1fr; } }
@media (max-width: 420px) { .delivery { grid-template-columns: 76px 1fr; gap: 14px; padding: 18px; } .delivery-ring { width: 76px; height: 76px; } }
@media (prefers-reduced-motion: reduce) { .js .delivery:not(.is-in) .ring-fill { stroke-dashoffset: var(--off); } }

/* ---------- Tarifs ---------- */
.price-card { background: var(--ink); color: #fff; border-radius: var(--radius-lg); padding: 28px 28px 24px; box-shadow: var(--shadow-lg); position: relative; overflow: hidden; }
.price-card::after { content: ''; position: absolute; inset-inline: 0; bottom: 0; height: 4px; background-image: linear-gradient(90deg, var(--red) 0 14px, transparent 14px 24px); background-size: 24px 4px; animation: route 1.6s linear infinite; }
.price-card-from { margin: 0; font-size: .8rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #ff5a63; }
html[lang^='ar'] .price-card-from { letter-spacing: 0; font-size: .95rem; }
.price-card-value { margin: 6px 0 0; font-family: var(--f-latin); font-weight: 800; font-size: clamp(4rem, 8vw, 6rem); line-height: .9; letter-spacing: -0.05em; display: flex; align-items: baseline; gap: 8px; }
html[lang^='ar'] .price-card-value { justify-content: flex-end; }
.price-card-value small { font-size: .3em; letter-spacing: 0; color: rgba(255,255,255,.7); }
.price-card-per { margin: 8px 0 22px; color: rgba(255,255,255,.72); font-weight: 600; }
.price-card-facts { display: grid; gap: 10px; border-top: 1px solid var(--dark-line); padding-top: 18px; }
.price-card-facts li { display: flex; gap: 10px; align-items: flex-start; font-size: .92rem; color: rgba(255,255,255,.86); }
.price-card-facts .ico { color: #ff5a63; flex: none; margin-top: 2px; }

.tarifs-layout { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.tarifs-panel { position: sticky; top: calc(var(--header-h) + 20px); display: grid; gap: 18px; }
.tarifs-panel .h3 { margin: 0; }
.tarifs-updated { margin: -10px 0 0; font-size: .86rem; color: var(--muted); }
.tarifs-panel .finder { margin: 0; }
.tarifs-panel .finder-search input { height: 52px; padding-inline-end: 16px; }
@media (min-width: 761px) { .filters-stack { flex-wrap: wrap; } }
.filter span { opacity: .55; margin-inline-start: 4px; font-variant-numeric: tabular-nums; }
.filter.is-active span { opacity: .75; }
.tarifs-panel .fine { margin: 0; }
.note-sm { margin: 0; padding: 14px 16px; gap: 10px; font-size: .9rem; align-items: flex-start; }
.note-sm .ico { margin-top: 3px; }
.tarifs-panel-cta { display: grid; gap: 10px; }

.route-wrap { min-width: 0; }
.route-head, .route-foot { display: flex; justify-content: space-between; gap: 16px; align-items: center; font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
html[lang^='ar'] .route-head, html[lang^='ar'] .route-foot { letter-spacing: 0; font-size: .9rem; }
.route-head { padding-bottom: 14px; border-bottom: 2px solid var(--ink); }
.route-foot { padding-top: 16px; }
.route-compass { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); }
.route-compass::before { content: ''; width: 10px; height: 10px; border-radius: 50%; border: 2px solid var(--red); }
.route { position: relative; padding: 6px 0; }
.route::before { content: ''; position: absolute; top: 0; bottom: 0; inset-inline-start: 11px; width: 2px; background: var(--line); }
.route-progress { position: absolute; top: 0; bottom: 0; inset-inline-start: 11px; width: 2px; pointer-events: none; list-style: none; }
.route-progress span { display: block; width: 2px; height: var(--p, 0%); background: var(--red); transition: height .15s linear; }
.route-group { position: relative; display: flex; align-items: baseline; gap: 14px; padding: 30px 0 12px; padding-inline-start: 40px; }
.route-group:first-of-type { padding-top: 14px; }
.rg-dot { position: absolute; inset-inline-start: 3px; top: calc(50% + 2px); width: 18px; height: 18px; border-radius: 4px; background: var(--ink); transform: translateY(-50%) rotate(45deg); }
.route-group:first-of-type .rg-dot { top: calc(50% - 6px); }
.rg-name { font-size: 1.15rem; letter-spacing: -0.01em; margin: 0; }
.rg-count { font-size: .78rem; font-weight: 700; color: var(--muted); }
.stop { position: relative; display: grid; grid-template-columns: auto 1fr 130px 96px; align-items: center; gap: 14px; min-height: 58px; padding-inline-start: 40px; border-bottom: 1px solid var(--line); transition: background-color .25s; }
.stop:hover { background: linear-gradient(90deg, var(--tint), transparent 70%); }
[dir='rtl'] .stop:hover { background: linear-gradient(270deg, var(--tint), transparent 70%); }
.stop-dot { position: absolute; inset-inline-start: 6px; top: 50%; width: 12px; height: 12px; margin-top: -6px; border-radius: 50%; background: #fff; border: 2px solid #c9cad0; transition: border-color .3s, background-color .3s, transform .3s var(--ease); }
.stop.is-passed .stop-dot { border-color: var(--red); background: var(--red); }
.stop:hover .stop-dot { transform: scale(1.3); border-color: var(--red); }
.stop-name { grid-column: 1; display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; font-weight: 700; font-size: 1.04rem; }
.stop-alt { font-weight: 500; font-size: .88rem; color: var(--muted); }
.stop-note { flex-basis: 100%; font-size: .78rem; font-weight: 600; color: var(--red-ink); }
.stop-leader { grid-column: 2; height: 1px; border-bottom: 1px dotted #c9cad0; align-self: center; min-width: 24px; }
.stop-price { grid-column: 4; justify-self: end; font-family: var(--f-latin); white-space: nowrap; font-variant-numeric: tabular-nums; }
.stop-price b { font-size: 1.35rem; font-weight: 800; letter-spacing: -0.02em; }
.stop-price span { font-size: .8rem; font-weight: 700; color: var(--muted); }
html[lang^='ar'] .stop-price span { font-family: var(--f-arabic); }
.stop-quote { font-family: var(--font); font-size: .82rem; font-weight: 700; color: var(--muted); background: var(--tint); padding: 5px 10px; border-radius: 999px; }
.stop.is-hidden, .route-group.is-hidden { display: none; }
.stop.is-match .stop-name > :first-child, .stop.is-match .stop-name { color: var(--ink); }
.stop.is-match { background: #fff6f6; }

@media (max-width: 1060px) {
  .tarifs-layout { grid-template-columns: 1fr; }
  .tarifs-panel { position: static; }
}
@media (max-width: 520px) {
  .stop { gap: 10px; padding-inline-start: 34px; }
  .stop-leader { display: none; }
  .stop-name { grid-column: 1 / 3; }
  .route-group { padding-inline-start: 34px; }
  .route-head .route-col { display: none; }
}

/* =========================================================
   Motion layer
   ========================================================= */
/* Smooth cross-page transitions (supported browsers; others navigate normally) */
@view-transition { navigation: auto; }
.site-header { view-transition-name: site-header; }
::view-transition-old(root) { animation: vtOut .28s var(--ease) both; }
::view-transition-new(root) { animation: vtIn .42s var(--ease) both; }
@keyframes vtOut { to { opacity: 0; transform: translateY(-8px); } }
@keyframes vtIn { from { opacity: 0; transform: translateY(14px); } }

/* Scroll progress, docked under the header */
.scroll-progress { position: absolute; inset-inline: 0; bottom: -1px; height: 2px; pointer-events: none; }
.scroll-progress span { display: block; height: 100%; width: 100%; background: var(--red); transform: scaleX(var(--sp, 0)); transform-origin: var(--origin, left); }
[dir='rtl'] .scroll-progress span { --origin: right; }

/* Smart header: tucks away when reading down, returns when scrolling up */
.site-header { transition: transform .35s var(--ease), border-color .25s; }
.site-header.is-tucked { transform: translateY(-100%); }

/* Headline: words rise in sequence */
.hero-title .w { display: inline-block; }
.js .hero-title .w { opacity: 0; transform: translateY(.38em); filter: blur(6px); animation: wordIn .9s var(--ease) forwards; animation-delay: calc(120ms + var(--w) * 70ms); }
@keyframes wordIn { to { opacity: 1; transform: none; filter: blur(0); } }

/* Hero visual tilt */
.hero-photo { perspective: 1200px; }
.hero-photo img { transition: transform .5s var(--ease), box-shadow .5s; transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); will-change: transform; }

/* Departures-board ticker */
.ticker { display: flex; align-items: stretch; border-block: 1px solid var(--line); background: #fff; overflow: hidden; }
.ticker-label { flex: none; display: inline-flex; align-items: center; gap: 10px; padding: 0 22px; background: var(--ink); color: #fff; font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }
html[lang^='ar'] .ticker-label { letter-spacing: 0; font-size: .88rem; }
.ticker-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--red); box-shadow: 0 0 0 0 rgba(227,6,19,.6); animation: pulse 1.8s infinite; }
@keyframes pulse { 70% { box-shadow: 0 0 0 8px rgba(227,6,19,0); } 100% { box-shadow: 0 0 0 0 rgba(227,6,19,0); } }
.ticker-viewport { flex: 1; overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.ticker-track { display: inline-flex; align-items: center; white-space: nowrap; padding-block: 16px; animation: tick 70s linear infinite; }
.ticker:hover .ticker-track { animation-play-state: paused; }
[dir='rtl'] .ticker-track { animation-name: tickRtl; }
@keyframes tick { to { transform: translateX(-50%); } }
@keyframes tickRtl { to { transform: translateX(50%); } }
.ticker-dup { display: inline-flex; align-items: center; }
.tick-item { font-weight: 750; font-size: .98rem; padding-inline: 14px; color: var(--ink); }
.tick-sep { color: var(--red); display: inline-flex; }
@media (max-width: 760px) { .ticker-label { padding: 0 14px; } .tick-item { font-size: .9rem; padding-inline: 10px; } }

@media (prefers-reduced-motion: reduce) {
  .js .hero-title .w { opacity: 1; transform: none; filter: none; animation: none; }
  .ticker-track { animation: none; }
  .site-header.is-tucked { transform: none; }
  @view-transition { navigation: none; }
}

.stop-delay { grid-column: 3; display: inline-flex; align-items: center; gap: 6px; justify-self: start; font-size: .8rem; font-weight: 700; padding: 4px 10px; border-radius: 999px; white-space: nowrap; }
.stop-delay .ico { width: 14px; height: 14px; }
.stop-delay-daily { color: var(--green-ink); background: var(--green-soft); }
.stop-delay-24h, .stop-delay-48h { color: #8a5a00; background: #fff4dc; }
.route-cols { display: inline-flex; gap: 0; }
.route-col-delay { width: 144px; }
.route-cols .route-col:last-child { width: 96px; text-align: end; }
@media (max-width: 760px) {
  .route-head .route-cols { display: none; }
  .stop { grid-template-columns: auto 1fr auto; row-gap: 4px; padding-block: 10px; }
  .stop-name { grid-column: 1 / 3; }
  .stop-leader { display: none; }
  .stop-delay { grid-column: 1 / 3; grid-row: 2; font-size: .74rem; padding: 2px 8px; }
  .stop-price { grid-column: 3; grid-row: 1 / span 2; align-self: center; }
}
.pricing-actions { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }

/* ---------- Groups v2 ---------- */
.group-head { display: grid; gap: 10px; margin-bottom: 16px; }
.group-top { display: flex; justify-content: space-between; align-items: center; }
.group-card header.group-head { margin-bottom: 16px; }
.group-card .group-name { min-height: 0; margin: 0; }
.group-meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.badge { display: inline-flex; align-items: center; gap: 5px; font-size: .74rem; font-weight: 700; padding: 3px 9px; border-radius: 999px; white-space: nowrap; }
.badge .ico { width: 13px; height: 13px; }
.badge-daily { color: var(--green-ink); background: var(--green-soft); }
.badge-24h, .badge-48h { color: #8a5a00; background: #fff4dc; }
.group-price { font-family: var(--f-latin); font-size: .8rem; font-weight: 800; color: var(--ink); padding: 3px 9px; border-radius: 999px; background: var(--tint); }
.zone-more a { font-weight: 800; color: var(--red-ink); text-decoration: none; font-size: .9rem; }
.zone-more::before { display: none !important; }
.zone-more a:hover { text-decoration: underline; }

.groups-full { grid-template-columns: 1fr !important; gap: 14px; }
.group-row {
  display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 28px; align-items: start;
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 26px 28px;
  transition: border-color .3s, box-shadow .3s; scroll-margin-top: calc(var(--header-h) + 20px);
}
.group-row:hover, .group-row.is-focus { border-color: #cfd0d6; box-shadow: var(--shadow); }
.group-row.is-focus { border-color: var(--red); }
.group-row .group-head { margin: 0; position: sticky; top: calc(var(--header-h) + 16px); }
.group-row .group-name { font-size: 1.4rem; margin: 0; }
.group-row .zone-list { margin: 0; }
.zone-list-cols { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 24px; }
.zone-list-cols li { border-top: 1px solid var(--line); }
.group-row.is-hidden { display: none; }
@media (max-width: 1060px) {
  .group-row { grid-template-columns: 1fr; gap: 16px; }
  .group-row .group-head { position: static; }
  .zone-list-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) { .zone-list-cols { grid-template-columns: 1fr; } .group-row { padding: 20px; } }

/* ---------- Coverage map ---------- */
.map { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 20px; align-items: start; }
.map-main { margin: 0; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; }
.map-svg { display: block; width: 100%; height: auto; }
.map-main figcaption, .map-inset-wrap figcaption { display: flex; gap: 8px; align-items: flex-start; padding: 12px 16px; font-size: .78rem; color: var(--muted); border-top: 1px solid var(--line); }
.map-main figcaption .ico { flex: none; margin-top: 2px; }
.m-sea { fill: #fbfcfd; }
.m-grid { stroke: #eceef2; stroke-width: 1; }
.m-deg { font: 600 10px var(--f-latin); fill: #b4b6bd; letter-spacing: .04em; }
.m-other { fill: #f4f5f7; stroke: #e3e5e9; stroke-width: 1; }
.m-land { fill: #eef0f3; stroke: #c9ccd3; stroke-width: 1.2; stroke-linejoin: round; }
.m-ocean { font: italic 600 15px var(--f-latin); fill: #a9b4c2; letter-spacing: .28em; text-transform: uppercase; }
html[lang^='ar'] .m-ocean { font-family: var(--f-arabic); letter-spacing: 0; font-style: normal; }
.m-metro { fill: rgba(227, 6, 19, .05); stroke: var(--red); stroke-width: 1.2; stroke-dasharray: 4 5; }
.m-metro-label { font: 800 12px var(--font); fill: var(--red-ink); letter-spacing: .08em; text-transform: uppercase; }
html[lang^='ar'] .m-metro-label { letter-spacing: 0; font-size: 14px; }
.m-route { fill: none; stroke: var(--red); stroke-width: 1.8; stroke-dasharray: 6 7; opacity: .75; animation: mRoute 1.4s linear infinite; transition: opacity .3s; }
@keyframes mRoute { to { stroke-dashoffset: -26; } }
.m-dot { fill: var(--red); stroke: #fff; stroke-width: 1.6; transition: r .2s, fill .3s, opacity .3s; }
.m-hub .m-dot { fill: var(--ink); stroke: #fff; stroke-width: 2.4; }
.m-pulse { fill: none; stroke: var(--red); stroke-width: 2; transform-box: fill-box; transform-origin: center; animation: mPulse 2.2s var(--ease) infinite; }
@keyframes mPulse { from { transform: scale(1); opacity: .9; } to { transform: scale(3.4); opacity: 0; } }
.m-label { font: 700 13px var(--font); fill: var(--ink); paint-order: stroke; stroke: #fbfcfd; stroke-width: 4px; stroke-linejoin: round; transition: opacity .3s; }
html[lang^='ar'] .m-label { font-size: 15px; }
.m-label-hub { font-size: 16px; font-weight: 800; }
.map-inset .m-label { font-size: 13px; }
.m-frame { fill: rgba(227, 6, 19, .06); stroke: var(--red); stroke-width: 1.4; }
.m-pt { cursor: default; }
.m-pt:hover .m-dot { r: 6; }
.map[data-active]:not([data-active='all']) .m-pt.is-dim { opacity: .14; }
.map[data-active]:not([data-active='all']) .m-route.is-dim { opacity: .08; }
.map-side { display: grid; gap: 14px; }
.map-side .label { margin: 0; }
.map-keys { display: grid; gap: 6px; }
.map-key { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 10px; min-height: 46px; padding: 0 14px; border: 1px solid var(--line); background: #fff; border-radius: 10px; cursor: pointer; text-align: start; font-weight: 700; transition: border-color .2s, background-color .2s, color .2s; }
.map-key:hover { border-color: var(--ink); }
.map-key.is-active { background: var(--ink); border-color: var(--ink); color: #fff; }
.map-key-num { font-family: var(--f-latin); font-size: .78rem; font-weight: 800; color: var(--red); }
.map-key.is-active .map-key-num { color: #ff5a63; }
.map-key-count { font-family: var(--f-latin); font-size: .8rem; font-weight: 800; padding: 2px 8px; border-radius: 999px; background: var(--tint); color: var(--ink); }
.map-key.is-active .map-key-count { background: rgba(255,255,255,.14); color: #fff; }
.map-inset-wrap { margin: 0; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; }
@media (max-width: 1060px) { .map { grid-template-columns: 1fr; } .map-side { grid-template-columns: 1fr 1fr; align-items: start; } .map-side .label { grid-column: 1 / -1; } .map-side > .btn { grid-column: 1 / -1; } }
@media (max-width: 640px) { .map-side { grid-template-columns: 1fr; } .m-deg { display: none; } }
@media (prefers-reduced-motion: reduce) { .m-route, .m-pulse { animation: none; } }

/* ---------- Toast ---------- */
.toast { position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom)); z-index: 80; transform: translate(-50%, 16px); opacity: 0; background: var(--ink); color: #fff; padding: 12px 18px; border-radius: 999px; font-weight: 700; font-size: .92rem; box-shadow: var(--shadow-lg); transition: opacity .25s, transform .25s var(--ease); pointer-events: none; white-space: nowrap; }
.toast.is-on { opacity: 1; transform: translate(-50%, 0); }
@media (max-width: 760px) { .toast { bottom: calc(86px + env(safe-area-inset-bottom)); } }
.logo picture, .hero-photo picture { display: contents; }

@media (max-width: 640px) {
  .map-main .m-label { font-size: 30px; stroke-width: 7px; }
  .map-main .m-label-hub { font-size: 34px; }
  .map-main .m-label-minor { display: none; }
  .map-main .m-dot { r: 8; stroke-width: 3; }
  .map-main .m-hub .m-dot { r: 12; }
  .map-main .m-ocean { font-size: 26px; }
  .map-main .m-metro-label { font-size: 22px; }
  .map-main .m-route { stroke-width: 3.5; }
  .map-inset .m-label { font-size: 15px; }
}
/* Labels are anchored geometrically, so the drawing keeps a fixed (LTR) anchor direction in both languages */
.map-svg { direction: ltr; }
@media (max-width: 640px) { .map-main .m-metro-label, .map-main .m-ocean { display: none; } }

/* ---------- Transit band (logo travelling through the operation) ---------- */
.transit { margin-bottom: clamp(36px, 4vw, 56px); padding: 26px 0 8px; border-top: 2px solid var(--ink); }
.transit-track { --edge: 64px; position: relative; height: 128px; }
.transit-road { position: absolute; inset-inline: var(--edge); top: 74px; height: 4px; border-radius: 4px; background: repeating-linear-gradient(90deg, #d9dbe0 0 14px, transparent 14px 24px); }
.transit-track::after { content: ''; position: absolute; inset-inline-start: var(--edge); top: 74px; height: 4px; border-radius: 4px; background: var(--red); width: 0; animation: transitFill 11s var(--ease) infinite; }
.transit-stop { position: absolute; top: 64px; inset-inline-start: calc(var(--edge) + (100% - 2 * var(--edge)) * var(--s) / 3); transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 12px; z-index: 1; }
[dir='rtl'] .transit-stop { transform: translateX(50%); }
.transit-pin { width: 24px; height: 24px; border-radius: 50%; background: #fff; border: 3px solid #c9cad0; box-shadow: 0 0 0 6px #fff; }
.transit-name { font-size: .86rem; font-weight: 800; color: var(--muted); white-space: nowrap; }
.transit-stop:nth-of-type(2) .transit-pin, .transit-stop:nth-of-type(2) .transit-name { animation: stop0 11s linear infinite; }
.transit-stop:nth-of-type(3) .transit-pin, .transit-stop:nth-of-type(3) .transit-name { animation: stop1 11s linear infinite; }
.transit-stop:nth-of-type(4) .transit-pin, .transit-stop:nth-of-type(4) .transit-name { animation: stop2 11s linear infinite; }
.transit-stop:nth-of-type(5) .transit-pin, .transit-stop:nth-of-type(5) .transit-name { animation: stop3 11s linear infinite; }
.transit-vehicle { position: absolute; top: 0; inset-inline-start: var(--edge); transform: translateX(-50%); z-index: 2; animation: transitDrive 11s var(--ease) infinite; }
[dir='rtl'] .transit-vehicle { transform: translateX(50%); }
.transit-card { position: relative; display: flex; align-items: center; gap: 8px; padding: 8px 14px 8px 12px; background: #fff; border-radius: 14px; box-shadow: 0 10px 28px -12px rgba(26,26,28,.45), 0 0 0 1px var(--line); animation: transitBob 1.1s ease-in-out infinite; }
.transit-card::after { content: ''; position: absolute; left: 50%; bottom: -8px; width: 14px; height: 14px; background: #fff; transform: translateX(-50%) rotate(45deg); box-shadow: 1px 1px 0 var(--line); }
.transit-card img { height: 34px; width: auto; display: block; }
.transit-box { color: var(--red); }
.transit-trail { position: absolute; top: 50%; inset-inline-end: 100%; width: 46px; height: 2px; margin-top: -1px; background: linear-gradient(90deg, transparent, rgba(227,6,19,.6)); border-radius: 2px; }
[dir='rtl'] .transit-trail { background: linear-gradient(270deg, transparent, rgba(227,6,19,.6)); }
.transit-trail::before, .transit-trail::after { content: ''; position: absolute; inset-inline-end: 4px; width: 30px; height: 2px; background: inherit; }
.transit-trail::before { top: -8px; } .transit-trail::after { top: 8px; width: 22px; }
@keyframes transitDrive {
  0% { inset-inline-start: var(--edge); opacity: 0; }
  3%, 8% { inset-inline-start: var(--edge); opacity: 1; }
  28%, 36% { inset-inline-start: calc(var(--edge) + (100% - 2 * var(--edge)) / 3); }
  56%, 64% { inset-inline-start: calc(var(--edge) + (100% - 2 * var(--edge)) * 2 / 3); }
  84%, 94% { inset-inline-start: calc(100% - var(--edge)); opacity: 1; }
  100% { inset-inline-start: calc(100% - var(--edge)); opacity: 0; }
}
@keyframes transitFill {
  0%, 8% { width: 0; opacity: 1; }
  28%, 36% { width: calc((100% - 2 * var(--edge)) / 3); }
  56%, 64% { width: calc((100% - 2 * var(--edge)) * 2 / 3); }
  84%, 94% { width: calc(100% - 2 * var(--edge)); opacity: 1; }
  100% { width: calc(100% - 2 * var(--edge)); opacity: 0; }
}
@keyframes transitBob { 50% { transform: translateY(-3px); } }
@keyframes stop0 { 0%, 2% { border-color: #c9cad0; color: var(--muted); } 4%, 95% { border-color: var(--red); background: var(--red); color: var(--ink); } 100% { border-color: #c9cad0; color: var(--muted); } }
@keyframes stop1 { 0%, 27% { border-color: #c9cad0; color: var(--muted); } 29%, 95% { border-color: var(--red); background: var(--red); color: var(--ink); } 100% { border-color: #c9cad0; color: var(--muted); } }
@keyframes stop2 { 0%, 55% { border-color: #c9cad0; color: var(--muted); } 57%, 95% { border-color: var(--red); background: var(--red); color: var(--ink); } 100% { border-color: #c9cad0; color: var(--muted); } }
@keyframes stop3 { 0%, 83% { border-color: #c9cad0; color: var(--muted); } 85%, 95% { border-color: var(--green); background: var(--green); color: var(--green-ink); } 100% { border-color: #c9cad0; color: var(--muted); } }
@media (max-width: 640px) {
  .transit-track { --edge: 38px; height: 118px; }
  .transit-card { padding: 6px 10px; } .transit-card img { height: 26px; } .transit-box { display: none; }
  .transit-name { font-size: .72rem; white-space: normal; text-align: center; max-width: 76px; line-height: 1.2; }
  .transit-road, .transit-track::after { top: 68px; } .transit-stop { top: 58px; }
}
@media (prefers-reduced-motion: reduce) {
  .transit-vehicle { animation: none; inset-inline-start: calc(100% - var(--edge)); opacity: 1; }
  .transit-track::after { animation: none; width: calc(100% - 2 * var(--edge)); }
  .transit-pin, .transit-name, .transit-card { animation: none !important; }
  .transit-pin { border-color: var(--red); background: var(--red); }
}

/* ---------- Group rows with their own map ---------- */
.group-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr) !important; gap: 32px !important; }
.group-side { display: grid; gap: 18px; align-content: start; min-width: 0; }
.group-row .group-head { position: static; }
.group-row .zone-list-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.group-map { min-width: 0; position: sticky; top: calc(var(--header-h) + 16px); }
.gmap { margin: 0; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; background: #fff; }
.gmap-svg .m-land { stroke-width: 1.4; }
.g-dot { fill: var(--red); stroke: #fff; stroke-width: 2; transform-box: fill-box; transform-origin: center; }
.g-hub .g-dot { fill: var(--ink); stroke-width: 2.6; }
.g-label { font: 700 12.5px var(--font); fill: var(--ink); paint-order: stroke; stroke: #fbfcfd; stroke-width: 4px; stroke-linejoin: round; }
html[lang^='ar'] .g-label { font-size: 13.5px; }
.g-label-hub { font-weight: 800; font-size: 14px; }
.g-route { fill: none; stroke: var(--red); stroke-width: 1.6; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 0; opacity: .7; }
.js .group-row:not(.is-in) .g-route { stroke-dashoffset: 1; }
.js .group-row:not(.is-in) .g-pt .g-dot { transform: scale(0); }
.js .group-row:not(.is-in) .g-label { opacity: 0; }
.g-route { transition: stroke-dashoffset 1.1s var(--ease) calc(200ms + var(--d) * 60ms); }
.g-pt .g-dot { transition: transform .5s cubic-bezier(.3,1.6,.5,1) calc(150ms + var(--d) * 60ms); }
.g-label { transition: opacity .5s var(--ease) calc(350ms + var(--d) * 60ms); }
.g-pt:hover .g-dot { transform: scale(1.35); }
.g-extra { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0; padding: 12px 14px; border-top: 1px solid var(--line); font-size: .82rem; color: var(--muted); font-weight: 600; }
.g-chip { padding: 3px 9px; border-radius: 999px; background: var(--tint); color: var(--ink); font-weight: 700; }
@media (max-width: 1060px) {
  .group-row { grid-template-columns: 1fr !important; }
  .group-map { position: static; order: -1; }
  .group-side { order: 0; }
}
.gmap-mobile { display: none !important; }
@media (max-width: 640px) { .gmap-desktop { display: none !important; } .gmap-mobile { display: block !important; } .gmap-svg .m-deg { display: none; } }
@media (prefers-reduced-motion: reduce) { .js .group-row .g-route { stroke-dashoffset: 0; } .js .group-row .g-dot { transform: none; } .js .group-row .g-label { opacity: 1; } }
.transit-card picture { display: contents; }
.transit-card img { flex: none; max-width: none; width: auto; height: 34px; }
@media (max-width: 640px) { .transit-card img { height: 26px; } }
.gmap-mobile .g-label { font-size: 11px; stroke-width: 3.5px; }
html[lang^='ar'] .gmap-mobile .g-label { font-size: 12px; }
.gmap-mobile .g-label-hub { font-size: 12.5px; }
.gmap-mobile .g-dot { r: 3.6; }
.gmap-mobile .g-hub .g-dot { r: 5; }
.g-leader { stroke: #9a9ca4; stroke-width: 1; stroke-dasharray: 2 2; transition: opacity .5s var(--ease) calc(350ms + var(--d) * 60ms); }
.js .group-row:not(.is-in) .g-leader { opacity: 0; }

/* =========================================================
   Compact redesign — product-like clarity
   Grid 1160px · body 17px · H1 36–48 · H2 24–30 · buttons 44–48
   ========================================================= */
:root { --wrap: 1160px; --header-h: 68px; --section: clamp(36px, 5vw, 64px); --line: #e6e7ea; --tint: #f6f6f7; --muted: #5e5f66; }
body { font-size: 17px; }
.display { font-size: clamp(2.125rem, 3.4vw, 3rem); line-height: 1.08; letter-spacing: -0.03em; }
.h1 { font-size: clamp(1.875rem, 3vw, 2.75rem); line-height: 1.1; letter-spacing: -0.028em; }
.h2 { font-size: clamp(1.5rem, 2.1vw, 1.875rem); line-height: 1.18; letter-spacing: -0.02em; }
.h3 { font-size: 1.2rem; }
html[lang^='ar'] .display { font-size: clamp(2rem, 3.2vw, 2.85rem); line-height: 1.35; }
html[lang^='ar'] .h1 { font-size: clamp(1.75rem, 2.8vw, 2.6rem); }
.lead { font-size: 1.0625rem; } .lead-lg { font-size: 1.125rem; }
.btn { --h: 46px; padding: 0 20px; font-size: .95rem; border-radius: 8px; }
.btn-lg { --h: 48px; padding: 0 22px; font-size: 1rem; }
.btn-sm { --h: 40px; padding: 0 16px; }
.page-hero { padding-block: clamp(36px, 5vw, 64px) clamp(32px, 4vw, 48px); margin-bottom: clamp(32px, 4vw, 48px); }
.route-line { display: none; }

/* Header */
.site-header { border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); }
.header-inner { height: var(--header-h); gap: 28px; }
.logo-sm .logo-img { height: 46px; }
.nav-desktop { margin-inline-start: auto; }
.nav-desktop ul { gap: 2px; }
.nav-desktop a { font-size: .95rem; padding: 10px 12px; }
.lang-switch { border: 0; padding: 0 8px; min-height: 40px; font-weight: 700; color: var(--muted); font-family: var(--f-arabic), var(--f-latin); }
html[lang^='ar'] .lang-switch { font-family: var(--f-latin); }
.lang-switch:hover { color: var(--ink); }
.mobile-nav .mobile-more { margin-top: 8px; }
.mobile-nav .mobile-more a { min-height: 46px; font-size: 1rem; font-weight: 600; color: var(--muted); }
.mobile-nav ul li a { min-height: 50px; font-size: 1.05rem; }

/* ---------- Home ---------- */
.h2-hero { padding-block: clamp(32px, 4.5vw, 56px) clamp(28px, 4vw, 48px); border-bottom: 1px solid var(--line); }
.h2-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(28px, 5vw, 72px); align-items: center; }
.h2-title { font-size: clamp(2.125rem, 3.6vw, 3rem); line-height: 1.08; letter-spacing: -0.03em; font-weight: 800; margin: 0 0 16px; max-width: 18ch; text-wrap: balance; }
html[lang^='ar'] .h2-title { font-size: clamp(1.875rem, 3.2vw, 2.75rem); line-height: 1.35; letter-spacing: 0; max-width: 20ch; }
.h2-title .accent { color: var(--red); }
.h2-lead { font-size: 1.0625rem; line-height: 1.6; color: var(--ink-2); max-width: 58ch; margin: 0 0 24px; }
.h2-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.h2-textlink { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; font-size: .95rem; color: var(--ink); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 4px; text-decoration-color: #c4c5cb; }
.h2-textlink:hover { text-decoration-color: var(--red); }
.h2-facts { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); font-size: .9rem; color: var(--ink-2); }
.h2-facts li { display: inline-flex; align-items: center; gap: 7px; }
.h2-facts .ico { color: var(--green); flex: none; }
.h2-visual { margin: 0; justify-self: end; width: 100%; max-width: 320px; }
.h2-visual img { width: 100%; height: auto; border-radius: 12px; border: 1px solid var(--line); display: block; }

.h2-section { padding-block: var(--section); }
.h2-tint { background: var(--tint); border-block: 1px solid var(--line); }
.h2-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 20px; }
.h2-h { font-size: clamp(1.5rem, 2.1vw, 1.875rem); line-height: 1.2; letter-spacing: -0.02em; margin: 0 0 6px; }
html[lang^='ar'] .h2-h { letter-spacing: 0; line-height: 1.4; }
.h2-head .h2-h { margin: 0; }
.h2-sub { color: var(--muted); margin: 0 0 20px; max-width: 60ch; }

.h2-services { display: grid; grid-template-columns: repeat(4, 1fr); border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.h2-services li { padding: 22px 22px 24px; border-inline-start: 1px solid var(--line); }
.h2-services li:first-child { border-inline-start: 0; }
.h2-ico { display: inline-flex; color: var(--red); margin-bottom: 14px; }
.h2-services h3 { font-size: 1.0625rem; margin: 0 0 6px; letter-spacing: -0.01em; }
.h2-services p { margin: 0; font-size: .95rem; color: var(--ink-2); line-height: 1.55; }

.h2-cov { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 56px); align-items: start; }
.manifest { background: #fff; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.mf-head, .mf-row summary { display: grid; grid-template-columns: minmax(0, 1.6fr) 64px minmax(0, 1.3fr) 92px 28px; gap: 12px; align-items: center; padding: 0 18px; }
.mf-head { min-height: 40px; font-size: .8rem; font-weight: 700; color: var(--muted); border-bottom: 1px solid var(--line); background: #fbfbfc; }
.mf-row { border-bottom: 1px solid var(--line); }
.mf-row:last-child { border-bottom: 0; }
.mf-row summary { min-height: 52px; cursor: pointer; list-style: none; }
.mf-row summary::-webkit-details-marker { display: none; }
.mf-row summary:hover { background: #fbfbfc; }
.mf-row summary:focus-visible { outline-offset: -2px; }
.mf-name { font-weight: 750; }
.mf-num, .mf-price { font-family: var(--f-latin); font-variant-numeric: tabular-nums; font-weight: 700; }
html[lang^='ar'] .mf-price { font-family: var(--font); }
.mf-delay { font-size: .9rem; color: var(--ink-2); }
.mf-meta { display: none; }
.mf-toggle { display: inline-flex; justify-content: center; color: var(--muted); transition: transform .2s var(--ease); }
.mf-row[open] .mf-toggle { transform: rotate(45deg); color: var(--red); }
.mf-cities { margin: 0; padding: 0 18px 16px; font-size: .92rem; line-height: 1.7; color: var(--ink-2); }
.h2-links { display: flex; flex-wrap: wrap; gap: 4px 24px; margin: 12px 0 0; }

.h2-h3 { font-size: 1.15rem; margin: 6px 0 16px; }
.h2-steps { display: grid; gap: 0; counter-reset: s; }
.h2-steps li { display: grid; grid-template-columns: 32px 1fr; gap: 14px; padding: 14px 0; border-top: 1px solid var(--line); }
.h2-steps li:last-child { border-bottom: 1px solid var(--line); }
.h2-step-n { width: 28px; height: 28px; border-radius: 50%; border: 1.5px solid var(--ink); display: inline-flex; align-items: center; justify-content: center; font: 800 .82rem var(--f-latin); }
.h2-steps h4 { margin: 2px 0 4px; font-size: 1rem; }
.h2-steps p { margin: 0; font-size: .93rem; color: var(--ink-2); line-height: 1.55; }

.h2-contact-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 48px; align-items: center; }
.h2-contact .h2-sub { margin: 0; }
.h2-contact-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: flex-end; max-width: 520px; }
.h2-contact-more { flex-basis: 100%; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px 20px; margin: 4px 0 0; font-size: .9rem; }
.h2-contact-more a { color: var(--muted); text-underline-offset: 3px; min-height: 36px; display: inline-flex; align-items: center; }
.h2-contact-more a:hover { color: var(--ink); }

/* Footer, compact */
.site-footer { padding-block: 36px 20px; }
.f-row { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1.2fr); gap: 28px 40px; align-items: start; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.f-brand .logo-img { height: 52px; }
.f-brand p { margin: 12px 0 0; font-size: .9rem; color: var(--muted); max-width: 36ch; }
.f-contact, .f-links { display: grid; gap: 2px; }
.f-links { grid-template-columns: 1fr 1fr; column-gap: 20px; }
.f-contact a, .f-links a { display: inline-flex; align-items: center; gap: 10px; min-height: 36px; text-decoration: none; font-size: .93rem; color: var(--ink-2); }
.f-contact a:hover, .f-links a:hover { color: var(--red-ink); }
.f-contact .f-ico { color: var(--red); }
.f-bottom { padding-top: 16px; font-size: .82rem; }

@media (max-width: 1060px) {
  .h2-services { grid-template-columns: repeat(2, 1fr); }
  .h2-services li:nth-child(3) { border-inline-start: 0; }
  .h2-services li:nth-child(n + 3) { border-top: 1px solid var(--line); }
  .h2-cov { grid-template-columns: 1fr; }
  .h2-contact-grid { grid-template-columns: 1fr; }
  .h2-contact-actions, .h2-contact-more { justify-content: flex-start; }
  .f-row { grid-template-columns: 1fr 1fr; }
  .f-brand { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
  .h2-hero-grid { grid-template-columns: 1fr; }
  .h2-visual { display: none; }
}
@media (max-width: 760px) {
  :root { --header-h: 60px; }
  body { font-size: 16px; }
  .logo-sm .logo-img { height: 40px; }
  .h2-title { font-size: clamp(1.75rem, 7.6vw, 2.125rem); }
  html[lang^='ar'] .h2-title { font-size: clamp(1.7rem, 7.4vw, 2.05rem); }
  .h2-lead { font-size: 1rem; }
  .h2-actions .btn { flex: 1 1 auto; }
  .h2-facts { gap: 6px 16px; font-size: .86rem; }
  .h2-head { flex-direction: column; align-items: flex-start; gap: 0; }
  .h2-services { grid-template-columns: 1fr; }
  .h2-services li { border-inline-start: 0 !important; border-top: 1px solid var(--line); display: grid; grid-template-columns: 28px 1fr; column-gap: 12px; padding: 16px; }
  .h2-services li:first-child { border-top: 0; }
  .h2-services .h2-ico { grid-row: 1 / span 2; margin: 2px 0 0; }
  .mf-head { display: none; }
  .mf-row summary { grid-template-columns: minmax(0, 1fr) auto 24px; grid-template-areas: 'name price t' 'meta meta t'; row-gap: 2px; padding: 12px 16px; min-height: 0; }
  .mf-name { grid-area: name; } .mf-price { grid-area: price; } .mf-toggle { grid-area: t; }
  .mf-num, .mf-delay { display: none; }
  .mf-meta { display: block !important; grid-area: meta; font-size: .85rem; color: var(--muted); }
  .mf-cities { padding: 0 16px 14px; }
  .h2-contact-actions .btn { flex: 1 1 100%; }
  .f-row { grid-template-columns: 1fr; }
  .f-links { grid-template-columns: 1fr 1fr; }
  .sticky-cta { padding-block: 8px calc(8px + env(safe-area-inset-bottom)); }
  .sticky-cta .btn { min-height: 44px; }
  body { padding-bottom: calc(64px + env(safe-area-inset-bottom)); }
}
/* Inner pages: same restraint as the homepage */
.eyebrow { text-transform: none; letter-spacing: 0; font-size: .9rem; margin-bottom: .8em; }
.eyebrow::before { width: 18px; }
.hero-stat-stack .big { font-size: clamp(1.75rem, 2.6vw, 2.25rem); }
.stat-value { font-size: clamp(2rem, 3.2vw, 2.75rem); }
.delivery-value { font-size: clamp(2rem, 3vw, 2.6rem); }
.price-card-value { font-size: clamp(2.75rem, 5vw, 3.75rem); }
.cta-band { padding-block: clamp(40px, 5vw, 64px); }
.cta-band .h2 { font-size: clamp(1.6rem, 2.6vw, 2.25rem); }
.s-head { margin-bottom: clamp(20px, 3vw, 32px); }
.section-tight { padding-top: clamp(28px, 3vw, 40px); }
.label, .f-title, .delivery-label, .price-card-from, .route-head, .route-foot, .ticker-label, .m-metro-label, .m-ocean { text-transform: none; letter-spacing: 0; }

/* =========================================================
   Motion system
   feedback 150–250 ms · entrances 350–600 ms · transform/opacity only
   ========================================================= */
:root {
  --t-fast: 160ms; --t: 220ms; --t-in: 520ms;
  --ease-out: cubic-bezier(.22, 1, .36, 1);
  --ring: 0 0 0 3px rgba(227, 6, 19, .32);
}

/* Section reveals with restrained stagger */
.js .reveal { opacity: 0; transform: translateY(14px); transition: opacity var(--t-in) var(--ease-out), transform var(--t-in) var(--ease-out); transition-delay: calc(var(--i, 0) * 60ms); }
.js .reveal.is-in { opacity: 1; transform: none; }

/* Hero entrance: eyebrow → headline words → visual → lead → actions */
.js .intro { opacity: 0; transform: translateY(12px); animation: introIn var(--t-in) var(--ease-out) forwards; animation-delay: calc(80ms + var(--n, 0) * 90ms); }
.js .intro .reveal { opacity: 1; transform: none; }
.js .hero-title .w { opacity: 0; transform: translateY(.3em); filter: none; animation: introIn 480ms var(--ease-out) forwards; animation-delay: calc(140ms + var(--w) * 40ms); }
@keyframes introIn { to { opacity: 1; transform: none; } }

/* Buttons: hover, pressed, focus */
.btn { transition: background-color var(--t-fast) ease, color var(--t-fast) ease, border-color var(--t-fast) ease, box-shadow var(--t) var(--ease-out), transform var(--t-fast) var(--ease-out); }
.btn:hover { transform: translateY(-1px); }
.btn-primary:hover { box-shadow: 0 8px 20px -10px rgba(227, 6, 19, .65); }
.btn-wa:hover { box-shadow: 0 8px 20px -10px rgba(18, 140, 74, .6); }
.btn:active { transform: translateY(0) scale(.98); box-shadow: none; transition-duration: 90ms; }
.btn:focus-visible { outline: none; box-shadow: var(--ring); }
.btn-link:hover { transform: none; }
.btn .ico.flip-rtl { transition: transform var(--t) var(--ease-out); }

/* Cards and grouped items: quiet lift */
.card, .group-card, .channel, .feature, .stat, .map-key, .social { transition: transform var(--t) var(--ease-out), box-shadow var(--t) var(--ease-out), border-color var(--t-fast) ease, background-color var(--t-fast) ease; }
.card:hover, .group-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px -18px rgba(26, 26, 28, .35); }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }

/* Transit band: steady glide, no bouncing */
.transit-card { animation: none; }

/* Ticker: slow, pauses on hover/focus */
.ticker-track { animation-duration: 110s; }
.ticker:hover .ticker-track, .ticker:focus-within .ticker-track { animation-play-state: paused; }

/* Mobile navigation: smooth open/close */
.burger-icon { position: relative; display: inline-flex; width: 24px; height: 24px; }
.burger-icon .ico { position: absolute; inset: 0; transition: opacity var(--t) ease, transform var(--t) var(--ease-out); }
.burger-icon .i-close { opacity: 0; transform: rotate(-90deg) scale(.6); }
.burger[aria-expanded='true'] .i-open { opacity: 0; transform: rotate(90deg) scale(.6); }
.burger[aria-expanded='true'] .i-close { opacity: 1; transform: none; }
.burger { transition: border-color var(--t-fast), background-color var(--t-fast); }
.burger:active { transform: scale(.96); }
.mobile-nav { display: none; }
@media (max-width: 1060px) {
  .site-header { position: sticky; }
  .mobile-nav {
    display: block; position: absolute; inset-inline: 0; top: 100%;
    box-shadow: 0 18px 30px -20px rgba(26, 26, 28, .35);
    opacity: 0; visibility: hidden; transform: translateY(-8px);
    transition: opacity var(--t) ease, transform 280ms var(--ease-out), visibility 0s linear 280ms;
  }
  .mobile-nav.is-open { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
  .mobile-nav li { opacity: 0; transform: translateY(6px); transition: opacity 260ms ease, transform 320ms var(--ease-out); transition-delay: calc(40ms + var(--i, 0) * 28ms); }
  .mobile-nav.is-open li { opacity: 1; transform: none; }
}

/* Social links (contact + footer) */
.social { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; text-decoration: none; font-weight: 650; font-size: .93rem; color: var(--ink); }
.social:hover { border-color: var(--ink); transform: translateY(-1px); }
.social .ico { flex: none; }

/* Contact section */
.contact-sec { background: var(--tint); border-top: 1px solid var(--line); }
.contact-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 440px); gap: 28px 64px; align-items: center; }
.contact-grid .h2 { margin-bottom: .35em; }
.contact-form-link { margin: 14px 0 0; }
.contact-form-link a { font-weight: 700; color: var(--ink); text-underline-offset: 4px; text-decoration-color: #c4c5cb; }
.contact-form-link a:hover { text-decoration-color: var(--red); }
.contact-card { display: grid; gap: 10px; padding: 22px; background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 1px 2px rgba(26,26,28,.04), 0 12px 32px -22px rgba(26,26,28,.35); }
.contact-meta { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 6px; }
@media (max-width: 860px) { .contact-grid { grid-template-columns: 1fr; } }

/* Footer contact icons */
.f-col li .ico { flex: none; }
.f-muted { display: flex; gap: 10px; align-items: flex-start; }
.f-col a { gap: 10px; }

/* Compact sizes for the restored home sections */
.trial-nums { font-size: clamp(3.5rem, 7vw, 6rem); }
.hero { padding-block: clamp(32px, 5vw, 64px) clamp(36px, 5vw, 64px); }
.hero-photo { max-width: 420px; justify-self: end; }
.hero-photo figcaption { margin-top: 8px; }
.ticker-track { padding-block: 13px; }
.section-stats { padding-top: clamp(36px, 4vw, 56px); }
.cost-list li .ico { color: #ff5a63; }

@media (prefers-reduced-motion: reduce) {
  .js .reveal, .js .intro, .js .hero-title .w { opacity: 1 !important; transform: none !important; animation: none !important; transition: none !important; }
  .btn:hover, .card:hover, .group-card:hover, .social:hover { transform: none; }
  .mobile-nav, .mobile-nav li { transition: none !important; }
}
@media (max-width: 1060px) { .hero-photo { max-width: 340px; justify-self: center; margin-inline: auto; } }
@media (max-width: 760px) { .hero-photo { max-width: 260px; } }

/* =========================================================
   Premium partnership form
   ========================================================= */
.form-premium { margin-top: 24px; display: grid; gap: 14px; }
.form-progress { display: grid; gap: 8px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: #fbfbfc; }
.form-progress-bar { height: 6px; border-radius: 6px; background: #e9eaed; overflow: hidden; }
.form-progress-bar span { display: block; height: 100%; width: 100%; background: linear-gradient(90deg, var(--red), #ff4a55); border-radius: 6px; transform: scaleX(var(--p, 0)); transform-origin: var(--origin, left); transition: transform 420ms var(--ease-out); }
[dir='rtl'] .form-progress-bar span { --origin: right; }
.form-progress.is-done .form-progress-bar span { background: var(--green); }
.form-progress-text { margin: 0; font-size: .84rem; font-weight: 700; color: var(--muted); font-variant-numeric: tabular-nums; }
.form-step { margin: 0; padding: 18px 18px 20px; border: 1px solid var(--line); border-radius: 14px; background: #fff; transition: border-color var(--t) ease, box-shadow var(--t) var(--ease-out); }
.form-step:focus-within { border-color: #d0d1d6; box-shadow: 0 14px 34px -24px rgba(26, 26, 28, .45); }
.step-legend { display: flex; align-items: center; gap: 10px; padding: 0; margin-bottom: 14px; font-weight: 800; font-size: 1rem; }
.step-n { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: var(--ink); color: #fff; font: 800 .8rem var(--f-latin); transition: background-color var(--t) ease, transform var(--t) var(--ease-out); }
.form-step:focus-within .step-n { background: var(--red); transform: scale(1.08); }
.form-step.is-complete .step-n { background: var(--green); }
.form-step .form-grid { gap: 16px 16px; }
.form-end { margin-top: 2px; }

/* Fields: focus glow, label tint, valid tick */
.form-premium .field { position: relative; }
.form-premium .field label, .form-premium .field legend { transition: color var(--t) ease; }
.form-premium .field:focus-within > label:not(.check) { color: var(--red-ink); }
.form-premium .field input:not([type='checkbox']):not([type='radio']), .form-premium .field select, .form-premium .field textarea {
  border-radius: 10px; background: #fcfcfd;
  transition: border-color var(--t-fast) ease, box-shadow var(--t) var(--ease-out), background-color var(--t-fast) ease;
}
.form-premium .field input:focus, .form-premium .field select:focus, .form-premium .field textarea:focus { background: #fff; border-color: var(--red); box-shadow: 0 0 0 4px rgba(227, 6, 19, .12); }
.field-ok { position: absolute; inset-inline-end: 12px; top: 41px; display: inline-flex; width: 22px; height: 22px; border-radius: 50%; align-items: center; justify-content: center; background: var(--green-soft); color: var(--green); opacity: 0; transform: scale(.4); transition: opacity var(--t) ease, transform 300ms cubic-bezier(.3, 1.6, .5, 1); pointer-events: none; }
html[lang^='ar'] .field-ok { top: 44px; }
.field.is-valid .field-ok { opacity: 1; transform: none; }
.field.is-valid input { padding-inline-end: 42px; }
.field-error:not(:empty) { animation: errIn 260ms var(--ease-out); }
@keyframes errIn { from { opacity: 0; transform: translateY(-4px); } }
.field.shake { animation: shake 320ms ease; }
@keyframes shake { 20% { transform: translateX(-5px); } 40% { transform: translateX(5px); } 60% { transform: translateX(-3px); } 80% { transform: translateX(2px); } }

/* Chips with an animated tick */
.chip-check span { gap: 0; transition: background-color var(--t-fast) ease, color var(--t-fast) ease, border-color var(--t-fast) ease, padding var(--t) var(--ease-out), transform var(--t-fast) ease; }
.chip-tick { width: 0; opacity: 0; transform: scale(.4); transition: width var(--t) var(--ease-out), opacity var(--t) ease, transform var(--t) var(--ease-out), margin var(--t) var(--ease-out); }
.chip-check input:checked + span .chip-tick { width: 14px; opacity: 1; transform: none; margin-inline-end: 7px; }
.chip-check:active span { transform: scale(.97); }

/* Success state */
.status-icon-ok .tick { stroke-dasharray: 1; stroke-dashoffset: 1; }
.form-status:not([hidden]) .status-icon-ok .tick { animation: tickDraw 520ms 120ms var(--ease-out) forwards; }
@keyframes tickDraw { to { stroke-dashoffset: 0; } }
.form-status:not([hidden]) .status-ok, .form-status:not([hidden]) .status-err { animation: statusIn 420ms var(--ease-out); }
@keyframes statusIn { from { opacity: 0; transform: translateY(10px) scale(.98); } }
.form.is-done .form-step, .form.is-done .form-progress, .form.is-done .form-end { display: none; }

@media (max-width: 760px) { .form-step { padding: 16px 14px; } }
@media (prefers-reduced-motion: reduce) {
  .field.shake, .field-error:not(:empty), .form-status:not([hidden]) .status-ok { animation: none; }
  .status-icon-ok .tick { stroke-dashoffset: 0; }
}

/* =========================================================
   Group explorer (home) — tabs, per-group map, southern locator
   ========================================================= */
.gx { background: #fff; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; box-shadow: 0 1px 2px rgba(26,26,28,.04), 0 24px 48px -36px rgba(26,26,28,.35); }
.gx-bar { display: flex; align-items: stretch; border-bottom: 1px solid var(--line); }
.gx-tabs { position: relative; display: flex; flex: 1; min-width: 0; overflow-x: auto; scrollbar-width: none; overscroll-behavior-x: contain; }
.gx-tabs::-webkit-scrollbar { display: none; }
.gx-tab { flex: 1 0 auto; display: grid; gap: 3px; align-content: center; min-height: 68px; padding: 12px 20px; border: 0; background: none; color: var(--muted); text-align: start; cursor: pointer; font: inherit; transition: background-color var(--t-fast) ease, color var(--t-fast) ease; }
.gx-tab + .gx-tab { border-inline-start: 1px solid var(--line); }
.gx-tab:hover { background: var(--tint); }
.gx-tab:focus-visible { outline: 2px solid var(--red); outline-offset: -4px; }
.gx-tab-name { font-weight: 800; font-size: 1rem; color: var(--ink-2); white-space: nowrap; transition: color var(--t-fast) ease; }
.gx-tab-meta { display: flex; align-items: center; gap: 8px; font-size: .8rem; font-weight: 650; white-space: nowrap; }
.gx-tab-meta > span:first-child { min-width: 22px; padding: 1px 7px; border-radius: 999px; background: var(--tint); color: var(--ink-2); text-align: center; font-family: var(--f-latin); transition: background-color var(--t) ease, color var(--t) ease; }
.gx-tab.is-active .gx-tab-name { color: var(--ink); }
.gx-tab.is-active .gx-tab-meta > span:first-child { background: var(--red); color: #fff; }
.gx-ink { position: absolute; left: 0; bottom: 0; height: 3px; width: 0; background: var(--red); border-radius: 3px 3px 0 0; transition: transform 480ms var(--ease-out), width 480ms var(--ease-out); pointer-events: none; }
.gx-arrows { display: flex; align-items: center; gap: 6px; padding-inline: 12px; border-inline-start: 1px solid var(--line); }
.gx-arrow { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line); background: #fff; color: var(--ink); cursor: pointer; transition: background-color var(--t-fast) ease, color var(--t-fast) ease, border-color var(--t-fast) ease, transform var(--t-fast) var(--ease-out); }
.gx-arrow:hover { background: var(--ink); border-color: var(--ink); color: #fff; }
.gx-arrow:active { transform: scale(.94); }
.gx-arrow .gx-back { transform: scaleX(-1); }
[dir='rtl'] .gx-arrow .gx-back { transform: none; }

.gx-body { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
.gx-maps { position: relative; border-inline-end: 1px solid var(--line); background: #fbfcfd; min-width: 0; }
.gx-stack { display: grid; min-width: 0; }
.gx-stack > * { grid-area: 1 / 1; min-width: 0; }
.gx-map, .gx-info { opacity: 0; visibility: hidden; transition: opacity 200ms ease, visibility 0s linear 200ms; }
.gx-map.is-active, .gx-info.is-active { opacity: 1; visibility: visible; transition: opacity 360ms ease, visibility 0s; }
.gx.is-in .gx-map.is-active { animation: gxIn 640ms var(--ease-out) both; }
.gx.is-in .gx-info.is-active { animation: gxIn 560ms var(--ease-out) 60ms both; }
@keyframes gxIn { from { opacity: 0; transform: translateX(calc(var(--dir, 1) * 28px)); } to { opacity: 1; transform: none; } }
.gx-map .gmap { border: 0; border-radius: 0; background: transparent; }
.gx-map .gmap-svg { display: block; width: 100%; height: auto; transform-origin: 50% 50%; }
.gx.is-in .gx-map.is-active .gmap-svg { animation: gxZoom 1100ms var(--ease-out) both; }
@keyframes gxZoom { from { transform: scale(1.07); } to { transform: none; } }
.gx-map .g-extra { background: #fff; }
/* map pieces replay each time a group opens */
.js .gx:not(.is-in) .g-route, .js .gx-map:not(.is-active) .g-route { stroke-dashoffset: 1; transition: stroke-dashoffset 0s linear 260ms; }
.js .gx:not(.is-in) .g-dot, .js .gx-map:not(.is-active) .g-dot { transform: scale(0); transition: transform 0s linear 260ms; }
.js .gx:not(.is-in) .g-label, .js .gx-map:not(.is-active) .g-label,
.js .gx:not(.is-in) .g-leader, .js .gx-map:not(.is-active) .g-leader { opacity: 0; transition: opacity 0s linear 260ms; }
.gx-map.is-active .g-route { transition: stroke-dashoffset 900ms var(--ease-out) calc(260ms + var(--d) * 45ms); }
.gx-map.is-active .g-dot { transition: transform 460ms cubic-bezier(.3,1.6,.5,1) calc(200ms + var(--d) * 45ms); }
.gx-map.is-active .g-label, .gx-map.is-active .g-leader { transition: opacity 420ms ease calc(420ms + var(--d) * 45ms); }

.gx-locator { position: absolute; top: 14px; inset-inline-end: 14px; width: 116px; margin: 0; padding: 4px; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 10px 24px -16px rgba(26,26,28,.45); pointer-events: none; }
.gx-loc { display: block; width: 100%; height: auto; direction: ltr; border-radius: 6px; }
.gx-loc .m-land { fill: #eceef1; stroke: #c3c6cd; stroke-width: .6; }
.gx-loc .m-other { fill: #f7f8f9; stroke: #e3e5e9; stroke-width: .5; }
.gx-ldot { fill: #b9bcc4; transition: fill 300ms ease; }
.gx-ldot.is-on { fill: var(--red); }
.gx-frame { fill: rgba(227, 6, 19, .08); stroke: var(--red); stroke-width: 1.4; transition: transform 700ms cubic-bezier(.65, 0, .35, 1); }

.gx-infos { padding: clamp(22px, 3vw, 36px); align-content: start; }
.gx-info { align-self: start; }
.gx-step { margin: 0; font-size: .85rem; font-weight: 700; color: var(--muted); font-family: var(--f-latin); }
html[lang^='ar'] .gx-step { font-family: var(--f-arabic); }
.gx-name { margin: 2px 0 14px; font-size: clamp(1.6rem, 2.5vw, 2.15rem); font-weight: 800; letter-spacing: -0.025em; line-height: 1.1; }
.gx-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.gx-count { margin: 22px 0 10px; font-size: .9rem; font-weight: 750; color: var(--ink-2); }
.gx-cities { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.gx-cities li { padding: 5px 11px; border-radius: 999px; background: var(--tint); border: 1px solid var(--line); font-size: .86rem; font-weight: 650; }
.gx.is-in .gx-info.is-active .gx-cities li { animation: chipIn 380ms var(--ease-out) both; animation-delay: calc(220ms + var(--k) * 24ms); }
@keyframes chipIn { from { opacity: 0; transform: translateY(6px) scale(.96); } }
.gx-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; margin-top: 26px; }
.gx-caption { display: flex; gap: 8px; align-items: flex-start; margin: 0; padding: 10px 16px; border-top: 1px solid var(--line); font-size: .78rem; color: var(--muted); }
.gx-caption .ico { flex: none; margin-top: 2px; }
@media (max-width: 960px) {
  .gx-body { grid-template-columns: 1fr; }
  .gx-maps { border-inline-end: 0; border-bottom: 1px solid var(--line); }
}
@media (max-width: 640px) {
  .gx-tab { min-height: 60px; padding: 10px 16px; }
  .gx-arrows { padding-inline: 8px; gap: 4px; }
  .gx-arrow { width: 36px; height: 36px; }
  .gx-locator { width: 78px; top: 10px; inset-inline-end: 10px; padding: 3px; }
  .gx-actions .btn-dark { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .gx-map, .gx-info, .gx-ink, .gx-frame { transition: none !important; animation: none !important; }
  .gx .gmap-svg, .gx-cities li { animation: none !important; }
  .js .gx .g-route { stroke-dashoffset: 0 !important; } .js .gx .g-dot { transform: none !important; } .js .gx .g-label, .js .gx .g-leader { opacity: 1 !important; }
}

/* =========================================================
   Tarifs — group selector with sliding highlight, rows that re-enter
   ========================================================= */
.tg-list { position: relative; display: grid; gap: 4px; }
.tg { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2px 10px; width: 100%; padding: 11px 14px; border: 0; border-radius: 10px; background: transparent; color: var(--ink); font: inherit; text-align: start; cursor: pointer; transition: color var(--t) ease, background-color var(--t-fast) ease; }
.tg:hover:not(.is-active) { background: var(--tint); }
.tg-name { font-weight: 750; font-size: .98rem; }
.tg-count { min-width: 26px; padding: 2px 8px; border-radius: 999px; background: var(--tint); font-size: .8rem; font-weight: 800; text-align: center; font-family: var(--f-latin); transition: background-color var(--t) ease, color var(--t) ease; }
.tg-meta { grid-column: 1 / -1; font-size: .8rem; font-weight: 600; color: var(--muted); transition: color var(--t) ease; }
.tg.is-active { color: #fff; }
.tg.is-active .tg-meta { color: rgba(255, 255, 255, .72); }
.tg.is-active .tg-count { background: var(--red); color: #fff; }
.tg-ink { position: absolute; left: 0; top: 0; z-index: 0; width: 0; height: 0; border-radius: 10px; background: var(--ink); transition: transform 420ms var(--ease-out), width 420ms var(--ease-out), height 420ms var(--ease-out); pointer-events: none; }
.tg:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
@media (max-width: 1060px) {
  .tg-list { grid-auto-flow: column; grid-auto-columns: max-content; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }
  .tg-list::-webkit-scrollbar { display: none; }
  .tg { width: auto; }
}
.stop.is-enter, .route-group.is-enter { animation: rowIn 420ms var(--ease-out) both; animation-delay: calc(var(--k, 0) * 26ms); }
@keyframes rowIn { from { opacity: 0; transform: translateY(8px); } }
.stop-price b { transition: color var(--t-fast) ease; }
.stop:hover .stop-price b { color: var(--red-ink); }
.group-row.is-enter { animation: rowIn 480ms var(--ease-out) both; animation-delay: calc(var(--k, 0) * 60ms); }
.group-row { transition: border-color 400ms ease, box-shadow 400ms ease; }
@media (prefers-reduced-motion: reduce) { .tg-ink { transition: none; } .stop.is-enter, .route-group.is-enter, .group-row.is-enter { animation: none; } }

/* Hero poster reads larger on phones */
@media (max-width: 760px) { .hero-photo { max-width: 340px; } }

/* Tarifs on tablets/phones: the group selector stays pinned while the list scrolls */
@media (max-width: 1060px) {
  .tarifs-panel { display: contents; }
  .tarifs-panel > .h3, .tarifs-updated, .tarifs-panel > .finder { order: 1; }
  .tarifs-panel > .tg-list { order: 2; position: sticky; top: var(--header-h); z-index: 6; background: rgba(255,255,255,.97); padding-block: 8px; border-bottom: 1px solid var(--line); }
  .route-wrap { order: 3; }
  .tarifs-panel > .note, .tarifs-panel > .fine, .tarifs-panel-cta { order: 4; }
  .tarifs-layout { gap: 16px; }
  .tarifs-updated { margin: -8px 0 0; }
  .tg { padding: 8px 12px; }
}
.group-row { scroll-margin-top: calc(var(--header-h) + 16px); }
@media (max-width: 1060px) {
  .tarifs-panel > .tg-list { transition: top 260ms var(--ease-out); }
  body:has(.site-header.is-tucked) .tarifs-panel > .tg-list { top: 0; }
}

/* Coverage card (inner page heroes) */
.cov-card { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 18px; align-items: center; justify-self: end; width: 100%; max-width: 420px; padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: #fff; color: var(--ink); text-decoration: none; box-shadow: 0 1px 2px rgba(26,26,28,.04), 0 18px 40px -30px rgba(26,26,28,.4); transition: border-color var(--t-fast) ease, box-shadow var(--t) var(--ease-out), transform var(--t) var(--ease-out); }
.cov-card:hover { border-color: #cfd0d6; transform: translateY(-2px); box-shadow: 0 2px 4px rgba(26,26,28,.04), 0 24px 48px -30px rgba(26,26,28,.45); }
.cov-map { display: block; width: 100%; height: auto; direction: ltr; background: #fbfcfd; border-radius: 10px; }
.cov-map .m-land { fill: #eceef1; stroke: #c3c6cd; stroke-width: .6; }
.cov-map .m-other { fill: #f7f8f9; stroke: #e3e5e9; stroke-width: .5; }
.cov-dot { fill: var(--red); stroke: #fff; stroke-width: .8; transform-box: fill-box; transform-origin: center; }
.cov-hub { fill: var(--ink); stroke-width: 1.2; }
.js .cov-card .cov-dot { transform: scale(0); }
.js .cov-card.is-in .cov-dot { animation: covDot 420ms cubic-bezier(.3,1.6,.5,1) forwards; animation-delay: calc(250ms + var(--k) * 28ms); }
@keyframes covDot { to { transform: none; } }
.cov-body { display: grid; gap: 4px; min-width: 0; }
.cov-num { font: 800 clamp(2.2rem, 3.4vw, 2.8rem)/1 var(--f-latin); letter-spacing: -0.04em; justify-self: start; }
.cov-text { font-weight: 700; color: var(--ink-2); line-height: 1.35; }
.cov-groups { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 8px; }
.cov-groups span { padding: 2px 8px; border-radius: 999px; background: var(--tint); font-size: .76rem; font-weight: 700; color: var(--ink-2); }
.cov-link { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; font-weight: 800; font-size: .9rem; }
.cov-link .ico { color: var(--red); transition: transform var(--t) var(--ease-out); }
.cov-card:hover .cov-link .ico { transform: translateX(3px); }
[dir='rtl'] .cov-card:hover .cov-link .ico { transform: scaleX(-1) translateX(3px); }
@media (max-width: 1060px) { .cov-card { justify-self: start; } }
@media (max-width: 420px) { .cov-card { grid-template-columns: 96px minmax(0, 1fr); gap: 14px; padding: 12px; } }
@media (prefers-reduced-motion: reduce) { .js .cov-card .cov-dot { transform: none; animation: none; } }

/* Home process: the route fills in red, stop by stop */
.process::after { content: ''; position: absolute; top: 21px; inset-inline: 0; height: 2px; background: var(--red); transform: scaleX(0); transform-origin: left; transition: transform 1600ms var(--ease-out) 200ms; }
[dir='rtl'] .process::after { transform-origin: right; }
.process.is-in::after { transform: scaleX(1); }
.process-n { z-index: 1; }
.js .process.is-in li:not(:last-child) .process-n { animation: stepOn 360ms ease forwards; animation-delay: calc(260ms + var(--i) * 300ms); }
@keyframes stepOn { to { background: var(--red); border-color: var(--red); color: #fff; } }
@media (max-width: 760px) {
  .process::after { top: 0; bottom: 0; width: 2px; height: auto; inset-inline-start: 21px; inset-inline-end: auto; transform: scaleY(0); transform-origin: top; }
  .process.is-in::after { transform: scaleY(1); }
}
@media (prefers-reduced-motion: reduce) { .process::after { transition: none; } .js .process.is-in li .process-n { animation: none; } }

/* =========================================================
   DESIGN.md layer — clinical blueprint on frosted paper
   Canvas #f5f5f5 · white cards 24px + hairline · pill controls 18px
   Geist 400/500/600 · achromatic, red as small accent, green for delivery/WhatsApp
   ========================================================= */
:root {
  --red: #e7000b;
  --red-ink: #c10007;
  --red-soft: #fef2f2;
  --ink: #0a0a0a;
  --ink-2: #171717;
  --muted: #737373;
  --line: #e5e5e5;
  --tint: #f5f5f5;
  --canvas: #f5f5f5;
  --surface-alt: #fafafa;
  --white: #ffffff;
  --dark-2: #171717;

  --f-latin: 'Geist', 'Inter', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  --radius: 18px;              /* buttons, inputs, badges */
  --radius-lg: 24px;           /* cards */
  --radius-nested: 10px;
  --pill: 999px;
  --shadow: 0 0 0 1px rgba(23, 23, 23, .05), 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);
  --shadow-lg: var(--shadow);
  --ring: 0 0 0 3px rgba(10, 10, 10, .18);
}

body {
  background: var(--canvas);
  color: var(--ink);
  font-size: 16px; line-height: 1.5;
  font-feature-settings: 'ss01' on, 'cv11' on;
}
html[lang^='ar'] body { font-size: 17px; line-height: 1.7; }
:focus-visible,
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.btn:focus-visible { outline: none; box-shadow: var(--ring); }

/* Type: 600 max, tight tracking on display sizes */
h1, h2, h3, h4,
.display, .h1, .h2, .h3, .h4, .h2-title, .h2-h, .h2-h3, .gx-name, .group-name, .rg-name, .story-mark,
.stat-value, .delivery-value, .price-card-value, .trial-nums, .cov-num, .hero-stat-stack .big, .step-n,
.status-title, .note-title, .flow-t, .channel-value, .stop-price b, .pricing-price { font-weight: 600; }
.display, .h2-title { letter-spacing: -0.05em; line-height: 1.1; }
.h1 { letter-spacing: -0.025em; line-height: 1.11; }
.h2, .h2-h, .gx-name { letter-spacing: -0.025em; line-height: 1.2; }
.h3, .h4 { letter-spacing: -0.0125em; }
.stat-value, .delivery-value, .price-card-value, .cov-num, .hero-stat-stack .big { letter-spacing: -0.05em; }
.trial-nums { letter-spacing: -0.05em; font-weight: 600; }
html[lang^='ar'] :is(.display, .h1, .h2, .h3, .h4, .h2-title, .h2-h, .gx-name) { letter-spacing: 0; }
.lead, .h2-lead, .h2-sub, .card p, .feature p, .h2-services p, .numbered-item p, .step-cols p:last-child, .prose p, .faq-a p, .story-text p:not(.lead) { color: var(--muted); }
.lead { color: #525252; }
.nav-desktop a, .mobile-nav ul li a, .filter, .chip-check span, .gx-tab-name, .tg-name, .map-key, .social, .card-link, .h2-textlink, .zone-list li, .stop-name, .mf-name, .stat-label, .process-t, .capacity-title, .field label, .field legend, .step-legend, .faq-item summary, .group-count, .gx-cities li { font-weight: 500; }
.f-title, .label, .delivery-label, .price-card-from, .route-head, .route-foot, .mf-head, .gx-step, .tarifs-updated, .adm-card dt { font-size: 12px; font-weight: 500; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
html[lang^='ar'] :is(.f-title, .label, .delivery-label, .price-card-from, .route-head, .route-foot, .mf-head, .gx-step) { letter-spacing: 0; text-transform: none; font-size: .85rem; }
.delivery-label { color: var(--green-ink); }
.price-card-from { color: rgba(255, 255, 255, .6); }

/* Eyebrow: quiet caption with a small ember mark */
.eyebrow { gap: 8px; font-size: 13px; font-weight: 500; color: var(--muted); }
.eyebrow::before { width: 6px; height: 6px; border-radius: 50%; background: var(--red); }
.section-dark .eyebrow, .cta-band .eyebrow { color: rgba(255, 255, 255, .6); }

/* ---------- Buttons: pill geometry, black primary ---------- */
.btn { --h: 40px; padding: 0 16px; border: 1px solid transparent; border-radius: var(--pill); font-size: 14px; font-weight: 500; gap: 8px; }
.btn-lg { --h: 44px; padding: 0 20px; font-size: 15px; }
.btn-sm { --h: 36px; padding: 0 12px; font-size: 13px; }
.btn .ico { width: 16px; height: 16px; }
.btn:hover { transform: none; }
.btn-primary, .btn-dark { background: var(--ink); color: #fafafa; }
.btn-primary:hover, .btn-dark:hover { background: #262626; box-shadow: none; }
.btn-ghost { background: var(--white); border-color: var(--line); color: var(--ink); }
.btn-ghost:hover { background: var(--canvas); color: var(--ink); border-color: var(--line); }
.btn-outline-light { border-color: rgba(255, 255, 255, .24); }
.btn-wa { background: var(--wa); color: #fff; }
.btn-wa:hover { background: #0e7a3f; box-shadow: none; }
.btn-link { min-height: 40px; border-bottom: 1px solid currentColor; font-weight: 500; }
.btn-link:hover { color: var(--ink); border-bottom-color: var(--muted); }
.btn:active { transform: scale(.98); }
.btn-submit .spinner { border-color: rgba(255, 255, 255, .35); border-top-color: #fff; }

/* ---------- Header: frosted paper ---------- */
.site-header { background: rgba(255, 255, 255, .8); border-bottom: 1px solid var(--line); backdrop-filter: saturate(1.2) blur(16px); -webkit-backdrop-filter: saturate(1.2) blur(16px); }
.nav-desktop a { font-size: 14px; color: var(--muted); padding: 8px 12px; border-radius: var(--pill); }
.nav-desktop a:hover, .nav-desktop a[aria-current='page'] { color: var(--ink); background: var(--canvas); }
.nav-desktop a::after { display: none; }
.lang-switch { min-height: 36px; padding: 0 12px; border-radius: var(--pill); background: var(--canvas); font-size: 13px; font-weight: 500; }
.burger { border-radius: var(--pill); border-color: var(--line); }
.mobile-nav { background: var(--white); }
.mobile-nav ul li a[aria-current='page'] { color: var(--ink); }
.mobile-nav ul li a[aria-current='page']::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--red); margin-inline-end: 10px; }
.scroll-progress span { background: var(--ink); }

/* ---------- Surfaces ---------- */
.section-tint, .h2-tint, .contact-sec { background: var(--white); border-color: var(--line); }
.page-hero, .h2-hero { border-bottom-color: var(--line); }
.site-footer { background: var(--surface-alt); color: var(--muted); }
.sticky-cta { background: rgba(255, 255, 255, .85); }
.ticker { background: var(--white); }
.ticker-label { font-size: 12px; font-weight: 500; }
.tick-item { font-weight: 500; }

/* Cards: white, 24px, hairline + whisper shadow */
.card, .group-card, .group-row, .form-card, .form-step, .mini-steps li, .map-main, .map-inset-wrap, .gmap, .gx,
.manifest, .h2-services, .contact-card, .cov-card, .features, .hero-stat-stack, .capacity, .channel, .solution, .empty, .adm-card, .adm-login {
  background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow);
}
.features, .hero-stat-stack { background: var(--line); }   /* 1px gaps draw the dividers */
.gx-map .gmap { border: 0; border-radius: 0; box-shadow: none; }
.card, .group-card, .feature, .mini-steps li, .channel, .group-row { padding: 20px; }
.card:hover, .group-card:hover, .channel:hover, .cov-card:hover, .group-row:hover, .group-row.is-focus {
  transform: none; border-color: #d4d4d4;
  box-shadow: 0 0 0 1px rgba(23, 23, 23, .05), 0 4px 12px -2px rgba(0, 0, 0, .08), 0 2px 4px -2px rgba(0, 0, 0, .06);
}
.group-row.is-focus { border-color: var(--ink); }
.form-step:focus-within { border-color: #d4d4d4; box-shadow: 0 0 0 1px rgba(23, 23, 23, .05), 0 4px 12px -2px rgba(0, 0, 0, .08); }
.feature:hover { background: var(--white); }
.h2-services li { padding: 20px; }
.aside-card, .pricing, .note, .hint-banner, .adm-text { background: var(--canvas); border-radius: var(--radius-lg); }
.hint-banner, .adm-text { border-radius: var(--radius-nested); }
.form-card .aside-card, .section-tint .pricing, .section-tint .note, .h2-tint .note { background: var(--canvas); }
.note { border-inline-start: 0; box-shadow: inset 3px 0 0 var(--red); }
[dir='rtl'] .note { box-shadow: inset -3px 0 0 var(--red); }
.trial { border: 1px solid var(--line); background: var(--white); box-shadow: var(--shadow); }
.trial::after { width: 6px; }
.trial-or { color: #d4d4d4; }

/* Dark panels stay achromatic, rounded like cards */
.flow-panel, .price-card, .aside-wa { background: var(--ink); border-radius: var(--radius-lg); box-shadow: var(--shadow); }
.flow-node { border-radius: var(--radius-nested); }
.flow-hub { background: #262626; border-color: #262626; }
.flow-hub .flow-k { color: #ff6467; }
.cards-dark .card { background: var(--dark-2); border-color: rgba(255, 255, 255, .1); box-shadow: none; }
.cards-dark .card-icon { background: rgba(255, 255, 255, .08); color: #fff; }
.solution { box-shadow: none; }

/* Icons: ink by default, red only as a small mark */
.card-icon { width: 40px; height: 40px; border-radius: var(--radius-nested); background: var(--canvas); color: var(--ink); margin-bottom: 16px; }
.feature-icon, .h2-ico, .service-ico, .f-contact .f-ico, .f-col a .f-ico, .note > .ico, .hint-banner .ico, .cov-link .ico, .card-link .ico { color: var(--ink); }
.feature-icon .ico { width: 24px; height: 24px; }
.aside-wa .card-icon { background: rgba(255, 255, 255, .1); color: #fff; }
.channel-icon { border-radius: var(--radius-nested); background: var(--canvas); }
.channel-primary { background: var(--wa); border-color: var(--wa); }
.channel-primary .channel-icon { background: rgba(255, 255, 255, .16); }

/* ---------- Badges & chips: 12px capsules ---------- */
.badge, .group-count, .group-price, .g-chip, .cov-groups span, .stop-quote, .stop-delay, .map-key-count, .tg-count, .gx-tab-meta > span:first-child, .filter span {
  border-radius: var(--pill); font-size: 12px; font-weight: 500; padding: 2px 8px;
}
.group-count, .group-price, .g-chip, .cov-groups span, .stop-quote, .map-key-count, .tg-count, .gx-tab-meta > span:first-child { background: var(--canvas); color: var(--ink-2); }
.badge-24h, .badge-48h, .stop-delay-24h, .stop-delay-48h { background: var(--canvas); color: var(--ink-2); }
.tbc { background: transparent; color: var(--ink); border: 1px solid var(--line); font-weight: 500; font-size: 12px; }
.gx-tab.is-active .gx-tab-meta > span:first-child, .tg.is-active .tg-count { background: #fafafa; color: var(--ink); }
.gx-ink { background: var(--ink); height: 2px; }
.gx-cities li { background: var(--canvas); border-color: transparent; font-size: 13px; }
.filter { min-height: 36px; padding: 0 14px; font-size: 13px; background: var(--white); border-color: var(--line); }
.filter:hover { border-color: #d4d4d4; background: var(--canvas); }
.filter.is-active { background: var(--ink); border-color: var(--ink); color: #fafafa; }
.map-key { border-radius: var(--radius); }
.map-key-num, .group-num, .numbered-n, .faq-n, .service-index { color: var(--red); font-weight: 500; }
.map-key.is-active .map-key-num { color: #ff6467; }
.map-key.is-active .map-key-count { background: rgba(255, 255, 255, .14); color: #fff; }
.social { border-radius: var(--pill); }
.social:hover { transform: none; background: var(--canvas); border-color: var(--line); }
.gx-arrow { border-color: var(--line); }
.tg, .tg-ink { border-radius: var(--radius); }
.gx-locator, .cov-map, .gx-loc { border-radius: var(--radius-nested); }
.h2-step-n, .process-n, .mini-n { font-weight: 500; }
.toast { background: var(--ink); font-weight: 500; font-size: 14px; box-shadow: var(--shadow); }

/* ---------- Inputs: soft fill, pill radius, hairline ring on focus ---------- */
.field input:not([type='checkbox']):not([type='radio']), .field select, .field textarea,
.form-premium .field input:not([type='checkbox']):not([type='radio']), .form-premium .field select, .form-premium .field textarea,
.adm-login input, .adm-tools input, .adm-card select {
  min-height: 44px; padding: 10px 14px; border: 1px solid transparent; border-radius: var(--radius);
  background: var(--canvas); font-size: 16px;
}
.field textarea, .form-premium .field textarea { border-radius: var(--radius-nested); min-height: 128px; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: var(--line); }
.field input:focus, .field select:focus, .field textarea:focus,
.form-premium .field input:focus, .form-premium .field select:focus, .form-premium .field textarea:focus,
.adm-login input:focus, .adm-tools input:focus {
  outline: none; background: var(--white); border-color: #d4d4d4; box-shadow: 0 0 0 3px rgba(10, 10, 10, .06);
}
.field input::placeholder, .field textarea::placeholder { color: var(--muted); }
.field.has-error input, .field.has-error select, .field.has-error textarea { border-color: var(--red); background: var(--white); }
.form-premium .field:focus-within > label:not(.check) { color: var(--ink); }
.select-wrap::after { border-color: var(--muted); }
.finder-search input { height: 48px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--white); font-size: 15px; box-shadow: var(--shadow); }
.finder-search input:focus { border-color: #d4d4d4; box-shadow: 0 0 0 3px rgba(10, 10, 10, .06); }
.tarifs-panel .finder-search input { height: 44px; }
.chip-check span { min-height: 40px; border: 1px solid var(--line); background: var(--white); font-size: 14px; }
.chip-check:hover span { border-color: #d4d4d4; background: var(--canvas); }
.chip-check input:checked + span { background: var(--ink); border-color: var(--ink); color: #fafafa; }
.check-box { border: 1px solid #d4d4d4; border-radius: 6px; background: var(--white); }
.check input:checked + .check-box { background: var(--ink); border-color: var(--ink); }
.form-progress { border-radius: var(--radius); background: var(--white); border-color: var(--line); }
.form-progress-bar { background: var(--canvas); }
.form-progress-bar span { background: var(--ink); }
.form-premium .form-step:focus-within .step-n { background: var(--red); }
.status-ok, .status-err { border-radius: var(--radius-lg); }
.status-ok { background: var(--green-soft); border-color: #c5e8d3; }
.status-err { background: var(--red-soft); border-color: #ffc9c9; }
.form-summary, .field-error { color: var(--red-ink); font-weight: 500; }

/* ---------- Tables & lists ---------- */
.mf-head { background: var(--surface-alt); }
.mf-row summary:hover { background: var(--surface-alt); }
.stop:hover, [dir='rtl'] .stop:hover { background: var(--surface-alt); }
.stop.is-match { background: var(--red-soft); }
.faq { border-top: 1px solid var(--line); }
.faq-item summary:hover .faq-q { color: var(--ink); }
.stats-grid { border-top: 1px solid var(--line); }
.route-head { border-bottom: 1px solid var(--line); }
.numbered-item, .transit { border-top-width: 1px; }
.delivery { border-radius: var(--radius-lg); }
.capacity-track { border-radius: var(--radius-nested); background: var(--canvas); }
.hero-photo img, .h2-visual img { border-radius: var(--radius-lg); border: 1px solid var(--line); box-shadow: var(--shadow); }

/* Footer & links */
.f-col a:hover, .f-contact a:hover, .f-links a:hover { color: var(--ink); }
.h2-textlink { text-decoration-color: #d4d4d4; text-decoration-thickness: 1px; }
.h2-textlink:hover, .contact-form-link a:hover { text-decoration-color: var(--ink); }
.zone-more a, .adm-links a { color: var(--ink); font-weight: 500; }

@media (max-width: 760px) {
  body { font-size: 16px; }
  .btn-lg { --h: 44px; }
  .card, .group-card, .feature, .channel, .group-row, .form-step { padding: 16px; }
}

/* =========================================================
   Colored icons — duotone pictograms with their own motion
   hue-* sets --ic on the icon and on its direct parent (tile)
   ========================================================= */
.hue-red, :has(> .hue-red) { --ic: #e7000b; }
.hue-orange, :has(> .hue-orange) { --ic: #f2620f; }
.hue-amber, :has(> .hue-amber) { --ic: #e8930c; }
.hue-green, :has(> .hue-green) { --ic: #16a34a; }
.hue-teal, :has(> .hue-teal) { --ic: #0d9488; }
.hue-sky, :has(> .hue-sky) { --ic: #0284c7; }
.hue-blue, :has(> .hue-blue) { --ic: #2563eb; }
.hue-indigo, :has(> .hue-indigo) { --ic: #4f46e5; }
.hue-violet, :has(> .hue-violet) { --ic: #7c3aed; }
.hue-pink, :has(> .hue-pink) { --ic: #db2777; }

.ico.ico-duo.ico-duo { color: var(--ic-s, var(--ic)); overflow: visible; }
.ico-duo .f { fill: var(--ic); fill-opacity: .16; stroke: none; }
.ico-duo .f2 { fill-opacity: .3; }
.ico-duo .sh { fill: var(--ic); fill-opacity: .22; stroke: none; transform-box: fill-box; transform-origin: center; }
.ico-duo .sp { opacity: 0; transition: opacity var(--t) ease, transform var(--t) var(--ease-out); }
.ico-duo .m, .ico-duo .sh { transform-box: fill-box; transform-origin: center; }
.ico-duo .dots circle { fill: currentColor; stroke: none; }
.ico-duo .laser { opacity: 0; stroke-width: 1.5; }
/* draw-in when the section scrolls into view */
.ico-duo [pathLength] { stroke-dasharray: 1; stroke-dashoffset: 0; transition: stroke-dashoffset 900ms var(--ease-out) 220ms; }
.js .reveal:not(.is-in) .ico-duo [pathLength] { stroke-dashoffset: 1; transition: none; }
.ico-duo .flow { stroke-dasharray: .14 .07; }

/* On dark panels the hue is lifted so it stays readable */
:is(.flow-panel, .price-card, .section-dark, .cta-band, .aside-wa, .cards-dark) .ico-duo { --ic-s: color-mix(in srgb, var(--ic) 62%, #fff); }
.flow-ico { opacity: 1; }
/* Inside status badges the icon follows the badge colour */
.badge .ico-duo, .stop-delay .ico-duo { --ic: currentColor; --ic-s: currentColor; }
.badge .ico-duo .f, .stop-delay .ico-duo .f { fill-opacity: .2; }

/* Tiles: tinted glass square that tilts toward the pointer */
.card-icon, .feature-icon, .channel-icon:not(.channel-primary .channel-icon) {
  display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 14px;
  background: linear-gradient(150deg, color-mix(in srgb, var(--ic, #737373) 18%, #fff), color-mix(in srgb, var(--ic, #737373) 6%, #fff));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ic, #737373) 22%, transparent), inset 0 1px 0 #fff, 0 6px 16px -10px color-mix(in srgb, var(--ic, #737373) 70%, transparent);
  translate: calc(var(--px, 0) * 5px) calc(var(--py, 0) * 5px);
  transition: transform 380ms var(--ease-out), box-shadow 380ms var(--ease-out), translate 160ms linear;
}
.feature-icon { margin-bottom: 2px; }
.card-icon .ico, .feature-icon .ico, .channel-icon .ico { width: 24px; height: 24px; }
.cards-dark .card-icon, .aside-wa .card-icon { background: color-mix(in srgb, var(--ic, #fff) 18%, #171717); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08); }
.service-ico { width: 36px; height: 36px; }
:is(.card, .feature, .channel, .service-block, .contact-card):hover :is(.card-icon, .feature-icon, .channel-icon) {
  transform: rotate(-6deg) scale(1.06);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ic, #737373) 32%, transparent), inset 0 1px 0 #fff, 0 14px 26px -12px color-mix(in srgb, var(--ic, #737373) 80%, transparent);
}

/* Hover motion: whichever card / link / button / row holds the icon */
:is(a, button, summary, label, .card, .feature, .channel, .social, .service-block, .flow-node, .contact-card, .note, .hint-banner, .fine, .hero-for, .price-card-facts li, .f-muted, .mini-steps li, .cov-card, .group-card):hover .ico-duo,
.ico-duo:hover { --play: running; }
.ico-duo .m, .ico-duo .sh { animation-duration: 1.1s; animation-iteration-count: infinite; animation-timing-function: var(--ease-out); animation-play-state: var(--play, paused); }
.ico-delivery .m { animation-name: icDrive; animation-duration: .6s; }
:is(a, button, .card, .feature, .channel, .service-block, .flow-node, .social, .contact-card, .f-muted, li):hover .ico-duo .sp, .ico-duo:hover .sp { opacity: 1; animation: icSpeed .6s linear infinite; }
.ico-tracking .flow { animation: icFlow 1.4s linear infinite; animation-play-state: var(--play, paused); }
.ico-returns .swing { animation-name: icSwing; }
.ico-cod .pop { animation-name: icPop; }
.ico-local .hop, .ico-info .hop { animation-name: icHop; animation-duration: .9s; }
.ico-local .sh { animation-name: icShadow; animation-duration: .9s; }
.ico-team .bob { animation-name: icBob; animation-duration: .9s; }
.ico-scan .laser { animation-name: icLaser; animation-duration: 1.3s; animation-timing-function: ease-in-out; }
.ico-api .ml { animation-name: icLeft; animation-duration: .9s; }
.ico-api .mr { animation-name: icRight; animation-duration: .9s; }
.ico-fair .redraw, .ico-system .redraw { animation-name: icRedraw; animation-duration: 1.6s; }
.ico-mail .redraw { animation: icRedraw 1.6s var(--ease-out) infinite; animation-play-state: var(--play, paused); }
.ico-mail .lift { animation-name: icLift; }
.ico-app .wiggle, .ico-phone .ring { animation-name: icRing; animation-duration: .8s; }
.ico-trial .hop, .ico-box .hop { animation-name: icBox; animation-duration: .9s; }
.ico-chat .dots circle { animation: icDot .9s ease-in-out infinite; animation-play-state: var(--play, paused); transform-box: fill-box; transform-origin: center; }
.ico-chat .dots circle:nth-child(2) { animation-delay: .15s; }
.ico-chat .dots circle:nth-child(3) { animation-delay: .3s; }
.ico-globe .spin { animation-name: icSpin; animation-duration: 1.8s; animation-timing-function: linear; }

@keyframes icDrive { 0%, 100% { transform: translate(0, 0); } 25% { transform: translate(1.2px, -.6px); } 50% { transform: translate(2px, 0); } 75% { transform: translate(1px, -.4px); } }
@keyframes icSpeed { from { transform: translateX(1px); opacity: 1; } to { transform: translateX(-2px); opacity: 0; } }
@keyframes icFlow { to { stroke-dashoffset: -.42; } }
@keyframes icSwing { 0%, 100% { transform: translateX(0); } 45% { transform: translateX(-2.2px); } }
@keyframes icPop { 0%, 100% { transform: scale(1); } 40% { transform: scale(1.55); } 60% { transform: scale(.9); } }
@keyframes icHop { 0%, 100% { transform: translateY(0) scale(1, 1); } 15% { transform: translateY(0) scale(1.06, .94); } 50% { transform: translateY(-3px) scale(.97, 1.04); } 85% { transform: translateY(0) scale(1.04, .96); } }
@keyframes icShadow { 0%, 100% { transform: scale(1); fill-opacity: .22; } 50% { transform: scale(.6); fill-opacity: .1; } }
@keyframes icBob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1.8px); } }
@keyframes icLaser { 0% { opacity: 0; transform: translateY(-6px); } 15%, 85% { opacity: 1; } 50% { transform: translateY(6px); } 100% { opacity: 0; transform: translateY(-6px); } }
@keyframes icLeft { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(-1.8px); } }
@keyframes icRight { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(1.8px); } }
@keyframes icRedraw { 0% { stroke-dashoffset: 1; } 55%, 100% { stroke-dashoffset: 0; } }
@keyframes icLift { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1.5px) rotate(-4deg); } }
@keyframes icRing { 0%, 100% { transform: rotate(0); } 15% { transform: rotate(-12deg); } 30% { transform: rotate(10deg); } 45% { transform: rotate(-8deg); } 60% { transform: rotate(5deg); } 75% { transform: rotate(0); } }
@keyframes icBox { 0%, 100% { transform: translateY(0) rotate(0); } 40% { transform: translateY(-2.5px) rotate(-5deg); } 70% { transform: translateY(0) rotate(2deg); } }
@keyframes icDot { 0%, 100% { transform: translateY(0); } 40% { transform: translateY(-2px); } }
@keyframes icSpin { 0% { transform: scaleX(1); } 25% { transform: scaleX(.15); } 50% { transform: scaleX(-1); } 75% { transform: scaleX(-.15); } 100% { transform: scaleX(1); } }

/* =========================================================
   Pointer — custom cursor, magnetic controls, card spotlight
   (fine pointers only; enabled by app.js with html.has-cursor)
   ========================================================= */
.has-cursor, .has-cursor * { cursor: none !important; }
.has-cursor :is(input:not([type='checkbox']):not([type='radio']), textarea, select, [contenteditable]) { cursor: text !important; }
.has-cursor select { cursor: pointer !important; }
.cursor-dot, .cursor-ring, .cursor-trail { position: fixed; top: 0; left: 0; pointer-events: none; z-index: 9999; }
.cursor-trail { width: 100vw; height: 100vh; z-index: 9997; }
.cursor-dot {
  width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 50%; background: var(--c, var(--red));
  transition: width 200ms var(--ease-out), height 200ms var(--ease-out), margin 200ms var(--ease-out), background-color 200ms ease, opacity 200ms ease;
}
.cursor-ring {
  width: 36px; height: 36px; margin: -18px 0 0 -18px; border-radius: 50%;
  border: 1.5px solid color-mix(in srgb, var(--c, #0a0a0a) 55%, transparent);
  background: color-mix(in srgb, var(--c, #0a0a0a) 0%, transparent);
  transition: width 320ms var(--ease-out), height 320ms var(--ease-out), margin 320ms var(--ease-out), border-color 220ms ease, background-color 220ms ease, border-radius 320ms var(--ease-out), opacity 200ms ease;
  z-index: 9998;
}
.cursor-ring::after {
  content: attr(data-label); position: absolute; inset: 0; display: grid; place-items: center;
  font: 600 10px/1 var(--f-latin); letter-spacing: .05em; text-transform: uppercase; color: #fff; opacity: 0; transition: opacity 200ms ease;
}
.cursor-hover .cursor-ring { width: 60px; height: 60px; margin: -30px 0 0 -30px; border-color: color-mix(in srgb, var(--c) 45%, transparent); background: color-mix(in srgb, var(--c) 14%, transparent); }
.cursor-hover .cursor-dot { width: 6px; height: 6px; margin: -3px 0 0 -3px; }
.cursor-view .cursor-ring { width: 76px; height: 76px; margin: -38px 0 0 -38px; background: color-mix(in srgb, var(--c) 88%, transparent); border-color: transparent; }
.cursor-view .cursor-ring::after { opacity: 1; }
.cursor-view .cursor-dot { opacity: 0; }
.cursor-text .cursor-ring { width: 4px; height: 30px; margin: -15px 0 0 -2px; border-radius: 2px; border-color: transparent; background: color-mix(in srgb, var(--c) 70%, transparent); }
.cursor-text .cursor-dot { opacity: 0; }
.cursor-dark .cursor-ring { --c: #fff; }
.cursor-dark .cursor-dot { --c: #fff; }
.cursor-down .cursor-ring { width: 26px; height: 26px; margin: -13px 0 0 -13px; }
.cursor-hidden .cursor-dot, .cursor-hidden .cursor-ring, html:not(.has-cursor) :is(.cursor-dot, .cursor-ring) { opacity: 0; }
.cursor-burst { position: fixed; top: 0; left: 0; z-index: 9998; pointer-events: none; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; border: 2px solid var(--c, var(--red)); animation: cBurst 600ms var(--ease-out) forwards; }
@keyframes cBurst { to { transform: scale(7); opacity: 0; border-width: .5px; } }

/* Magnetic controls follow the pointer a little (translate stays independent of transform) */
.has-cursor :is(.btn, .social, .gx-arrow, .lang-switch, .burger, .filter, .tg, .map-key) { translate: var(--mx2, 0) var(--my2, 0); transition-property: background-color, color, border-color, box-shadow, transform, translate; transition-duration: var(--t-fast), var(--t-fast), var(--t-fast), var(--t), var(--t-fast), 260ms; }
.has-cursor .btn > .ico { translate: var(--mx3, 0) var(--my3, 0); }

/* Spotlight that follows the pointer across cards and panels */
.has-cursor :is(.card, .feature, .channel, .group-card, .group-row, .form-step, .contact-card, .cov-card, .mini-steps li, .h2-services li, .trial, .capacity, .map-main, .manifest, .aside-card) {
  background-image: radial-gradient(260px circle at var(--sx, -999px) var(--sy, -999px), color-mix(in srgb, var(--ic, #e7000b) 9%, transparent), transparent 70%);
}
.has-cursor :is(.flow-panel, .price-card, .section-dark, .cta-band) {
  background-image: radial-gradient(420px circle at var(--sx, -999px) var(--sy, -999px), rgba(255, 255, 255, .07), transparent 70%);
}

@media (prefers-reduced-motion: reduce) {
  .ico-duo .m, .ico-duo .sh, .ico-duo .flow, .ico-duo .sp, .ico-chat .dots circle, .ico-mail .redraw { animation: none !important; }
  .js .reveal:not(.is-in) .ico-duo [pathLength] { stroke-dashoffset: 0; }
  .card-icon, .feature-icon, .channel-icon { translate: none; }
}
