/* ==========================================================================
   EPS — Elegant Pergola System · design system v2
   Layout and component structure follow a clean "premium pergola" template
   (light neutral sections, floating nav bar, product card row, round mode
   buttons, icon cards, dark band, carousels, FAQ, consultation form),
   with a glass / light layer on top: frosted surfaces, light sweeps,
   and headings that light up word by word as you scroll.
   ========================================================================== */

:root {
  --ink: #171A17;
  --ink-2: #2C2F2C;
  --muted: #666966;
  --line: #E6E6E2;
  --line-strong: #D3D9D4;
  --white: #FFFFFF;
  --beige: #F5F4F2;
  --grey: #F9F9F8;
  --dark: #032B10;
  --green: #063B16;
  --sage: #87977D;
  --sage-soft: #B9C6B1;
  --cream: #F5F5F0;
  --sans: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --wrap: 1180px;
  --pad: 20px;
  --ease: cubic-bezier(.22, .8, .24, 1);
  --glass: rgba(255, 255, 255, .62);
  --glass-dark: rgba(20, 24, 21, .38);
  --glass-border: rgba(255, 255, 255, .55);
}
html[lang="ar"] { --sans: "IBM Plex Sans Arabic", "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif; }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; font-family: var(--sans); font-size: 16px; line-height: 24px; color: var(--ink);
  background: var(--white); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img, svg, video, canvas { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
h1, h2, h3, h4, p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
:focus-visible { outline: 2px solid var(--green); outline-offset: 3px; border-radius: 2px; }
::selection { background: var(--sage-soft); color: var(--ink); }

.wrap { width: 100%; max-width: calc(var(--wrap) + var(--pad) * 2); margin: 0 auto; padding: 0 var(--pad); }
.skip { position: absolute; inset-inline-start: 12px; top: -60px; z-index: 200; background: var(--ink); color: #fff; padding: 10px 16px; }
.skip:focus { top: 12px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* ---------- type ---------- */
.h1 { font-size: 40px; line-height: 48px; font-weight: 700; letter-spacing: -.01em; }
.h2 { font-size: 24px; line-height: 32px; font-weight: 500; letter-spacing: -.01em; }
.h2 b, .h2 strong, .h1 b { font-weight: 700; }
.h3 { font-size: 22px; line-height: 28px; font-weight: 600; }
.lead { font-size: 16px; line-height: 24px; color: var(--muted); }
.muted { color: var(--muted); }
.small { font-size: 12px; line-height: 20px; color: var(--muted); }
.eyebrow { display: inline-block; font-size: 12px; line-height: 20px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--sage); }
html[lang="ar"] .eyebrow { letter-spacing: 0; }
.sec-head { max-width: 720px; margin: 0 auto 44px; text-align: center; display: grid; gap: 10px; }
.sec-head--row { max-width: none; display: flex; align-items: end; justify-content: space-between; gap: 24px; text-align: start; flex-wrap: wrap; }
.sec-head--row > div { max-width: 560px; display: grid; gap: 10px; }
@media (min-width: 1024px) {
  .h1 { font-size: 48px; line-height: 56px; }
  .h2 { font-size: 36px; line-height: 44px; }
}

/* shining text: the bold part of headings carries a slow light sweep */
.shine {
  background: linear-gradient(100deg, var(--ink) 0%, var(--ink) 40%, #7c9a70 50%, var(--ink) 60%, var(--ink) 100%);
  background-size: 250% 100%; -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: shine 6s var(--ease) infinite;
}
.dark .shine, .on-photo .shine { background-image: linear-gradient(100deg, #fff 0%, #fff 40%, #cfe0c4 50%, #fff 60%, #fff 100%); }
@keyframes shine { 0% { background-position: 120% 0; } 60%, 100% { background-position: -30% 0; } }
/* lit words inside a shine span keep the gradient */
.shine .w, .shine .w.on { color: transparent !important; }

/* scroll-lit words */
[data-lit] .w { color: #C9CDC9; transition: color .5s var(--ease), text-shadow .7s var(--ease); }
[data-lit] .w.on { color: inherit; }
[data-lit] .w.hot { text-shadow: 0 0 18px rgba(135, 151, 125, .6), 0 0 2px rgba(255, 255, 255, .7); }
.dark [data-lit] .w { color: rgba(255, 255, 255, .22); }
.dark [data-lit] .w.on { color: #fff; }
.dark [data-lit] .w.hot { text-shadow: 0 0 22px rgba(205, 228, 190, .75); }
.statement { font-size: 26px; line-height: 36px; font-weight: 500; letter-spacing: -.01em; max-width: 1000px; margin: 0 auto; text-align: center; }
.statement b { font-weight: 700; }
@media (min-width: 1024px) { .statement { font-size: 40px; line-height: 54px; } }

/* ---------- buttons ---------- */
.btn {
  position: relative; overflow: hidden; isolation: isolate;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px;
  padding: 10px 18px; background: var(--ink); color: #fff; border: 1px solid var(--ink); border-radius: 2px;
  font-size: 13px; line-height: 20px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase;
  transition: background .3s, color .3s, border-color .3s, transform .3s var(--ease), box-shadow .3s;
}
html[lang="ar"] .btn { letter-spacing: 0; font-size: 14px; }
.btn::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .4) 50%, transparent 70%);
  transform: translateX(-120%); transition: transform .8s var(--ease);
}
.btn:hover::after { transform: translateX(120%); }
.btn:hover { box-shadow: 0 10px 26px rgba(6, 59, 22, .22); transform: translateY(-1px); }
.btn--light { background: #fff; color: var(--ink); border-color: #fff; }
.btn--line { background: transparent; color: var(--ink); border-color: var(--ink); }
.btn--line:hover { background: var(--ink); color: #fff; }
.btn--glass { background: rgba(255, 255, 255, .14); color: #fff; border-color: rgba(255, 255, 255, .5); backdrop-filter: blur(14px) saturate(150%); -webkit-backdrop-filter: blur(14px) saturate(150%); }
.btn--glass:hover { background: rgba(255, 255, 255, .28); }
.btn[disabled] { opacity: .5; pointer-events: none; }

/* ---------- glass surfaces ---------- */
.glass {
  background: var(--glass); border: 1px solid var(--glass-border);
  backdrop-filter: blur(20px) saturate(170%); -webkit-backdrop-filter: blur(20px) saturate(170%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .85), 0 12px 40px rgba(16, 24, 18, .08);
}
.sheen { position: relative; overflow: hidden; }
.sheen::before {
  content: ""; position: absolute; top: -50%; bottom: -50%; width: 40%; left: -70%; z-index: 2; pointer-events: none;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .5), transparent);
  transform: skewX(-18deg); opacity: 0;
}
.sheen:hover::before { opacity: 1; left: 140%; transition: left 1.1s var(--ease), opacity .2s; }

/* ---------- top logo strip + nav ---------- */
.topbar { height: 90px; display: flex; align-items: center; justify-content: center; background: #fff; position: relative; z-index: 3; }
.topbar img { height: 60px; width: auto; }

.lang-toggle { min-height: 40px; min-width: 44px; padding: 0 12px; font-size: 13px; font-weight: 700; border: 1px solid var(--line-strong); border-radius: 999px; background: rgba(255,255,255,.5); }
.lang-toggle:hover { border-color: currentColor; }

.nav { position: absolute; left: 0; right: 0; bottom: 32px; z-index: 60; pointer-events: none; }
.nav__bar {
  pointer-events: auto; margin: 0 auto; width: max-content; max-width: calc(100% - 32px);
  display: flex; align-items: center; gap: 6px; padding: 14px 16px; border-radius: 4px;
  background: var(--glass-dark); border: 1px solid rgba(255, 255, 255, .24);
  backdrop-filter: blur(18px) saturate(160%); -webkit-backdrop-filter: blur(18px) saturate(160%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), 0 20px 50px rgba(0, 0, 0, .18);
  color: #fff; position: relative; overflow: hidden;
}
.nav__bar::after { /* travelling light along the top edge */
  content: ""; position: absolute; top: 0; height: 1px; width: 30%; left: -30%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .95), transparent);
  animation: travel 7s linear infinite; pointer-events: none;
}
@keyframes travel { to { left: 110%; } }
.nav__logo { display: none; align-items: center; padding: 0 14px 0 2px; }
.nav__logo img { height: 44px; width: auto; }
.nav__links { display: flex; align-items: center; gap: 2px; }
.nav__links a { display: inline-flex; align-items: center; min-height: 46px; padding: 0 12px; font-size: 15px; font-weight: 600; text-transform: uppercase; position: relative; white-space: nowrap; }
html[lang="ar"] .nav__links a { text-transform: none; }
.nav__links a::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 9px; height: 1px; background: currentColor; transform: scaleX(0); transition: transform .35s var(--ease); }
.nav__links a:hover::after, .nav__links a[aria-current="page"]::after { transform: scaleX(1); }
.nav__links a.nav__products { border: 1px solid rgba(255, 255, 255, .7); border-radius: 2px; margin: 0 4px; padding: 0 18px; }
.nav__links a.nav__products::after { display: none; }
.nav__cta.btn { background: #fff; color: var(--ink); border-color: #fff; font-size: 15px; min-height: 46px; margin-inline-start: 2px; }
.nav__lang { color: #fff; border-color: rgba(255,255,255,.5); background: rgba(255,255,255,.08); margin-inline-start: 6px; }
.nav__burger { display: none; width: 44px; height: 44px; border-radius: 50%; align-items: center; justify-content: center; flex-direction: column; gap: 5px; }
.nav__burger span { width: 18px; height: 1.5px; background: currentColor; transition: transform .3s; }

/* floating state (after the hero, and always on pages without a hero) */
.nav.is-fixed, .nav-solid .nav { position: fixed; top: 12px; bottom: auto; }
.nav.is-fixed { animation: navIn .55s var(--ease); }
@keyframes navIn { from { transform: translateY(-120%); opacity: 0; } }
.nav.is-fixed .nav__bar, .nav-solid .nav__bar { background: rgba(255, 255, 255, .74); color: var(--ink); border-color: rgba(255, 255, 255, .9); box-shadow: inset 0 1px 0 #fff, 0 10px 40px rgba(16, 24, 18, .12); padding: 10px 16px; }
.nav.is-fixed .nav__bar::after, .nav-solid .nav__bar::after { background: linear-gradient(90deg, transparent, rgba(135, 151, 125, .95), transparent); }
.nav.is-fixed .nav__logo, .nav-solid .nav__logo { display: flex; }
.nav.is-fixed .nav__products, .nav-solid .nav__products { border-color: var(--ink-2) !important; }
.nav.is-fixed .nav__cta.btn, .nav-solid .nav__cta.btn { background: var(--ink); color: #fff; border-color: var(--ink); }
.nav.is-fixed .nav__lang, .nav-solid .nav__lang { color: var(--ink); border-color: var(--line-strong); background: rgba(255,255,255,.5); }

/* mobile menu */
.menu {
  position: fixed; inset: 0; z-index: 55; padding: 100px 24px 40px; display: flex; flex-direction: column; justify-content: space-between; gap: 24px;
  background: rgba(255, 255, 255, .84); backdrop-filter: blur(24px) saturate(170%); -webkit-backdrop-filter: blur(24px) saturate(170%);
  opacity: 0; visibility: hidden; transition: opacity .4s, visibility .4s; overflow-y: auto;
}
.menu-open { overflow: hidden; }
.menu-open .menu { opacity: 1; visibility: visible; }
.menu ol { display: grid; gap: 2px; }
.menu__link { display: flex; align-items: center; min-height: 58px; font-size: 26px; font-weight: 600; border-bottom: 1px solid var(--line); }
.menu__link[aria-current="page"] { color: var(--green); }
.menu__foot { display: flex; flex-wrap: wrap; gap: 10px; }
.menu__foot a { min-height: 44px; display: inline-flex; align-items: center; padding: 0 16px; border: 1px solid var(--line-strong); border-radius: 999px; font-size: 14px; font-weight: 600; }

@media (max-width: 1180px) {
  .topbar { display: none; }
  .nav, .nav.is-fixed { position: fixed; top: 10px; bottom: auto; animation: none; }
  .nav__bar, .nav.is-fixed .nav__bar, .nav-solid .nav__bar { width: calc(100% - 20px); max-width: none; justify-content: space-between; padding: 6px 6px 6px 12px; background: rgba(255, 255, 255, .76); color: var(--ink); border-color: rgba(255,255,255,.9); }
  [dir="rtl"] .nav__bar { padding: 6px 12px 6px 6px; }
  .nav__logo { display: flex; padding: 0; }
  .nav__logo img { height: 42px; }
  .nav__links, .nav__cta { display: none !important; }
  .nav__burger { display: inline-flex; }
  .nav__lang, .nav.is-fixed .nav__lang { color: var(--ink); border-color: var(--line-strong); margin-inline-start: auto; }
  .nav__bar::after { background: linear-gradient(90deg, transparent, rgba(135, 151, 125, .95), transparent); }
  .menu-open .nav__burger span:first-child { transform: translateY(3.25px) rotate(45deg); }
  .menu-open .nav__burger span:last-child { transform: translateY(-3.25px) rotate(-45deg); }
}

/* ---------- hero ---------- */
.hero { position: relative; height: min(680px, calc(100svh - 90px)); min-height: 540px; overflow: hidden; background: #2b302c; color: #fff; }
.hero__slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.6s var(--ease); }
.hero__slide.is-active { opacity: 1; }
.hero__slide img { width: 100%; height: 100%; object-fit: cover; }
.hero__slide.is-active img { animation: kb 9s linear forwards; }
@keyframes kb { from { transform: scale(1.12); } to { transform: scale(1.0); } }
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10, 14, 11, .42), rgba(10, 14, 11, .32) 45%, rgba(10, 14, 11, .58)); z-index: 1; }
.hero__content { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 0 20px 130px; gap: 22px; }
.hero__title { font-size: 30px; line-height: 38px; font-weight: 700; text-transform: uppercase; text-shadow: 0 2px 30px rgba(0, 0, 0, .25); }
html[lang="ar"] .hero__title { text-transform: none; line-height: 1.4; }
.hero__title span { display: block; }
.hero__sub { max-width: 560px; font-size: 16px; line-height: 24px; color: rgba(255, 255, 255, .9); }
.hero__ctas { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.hero__dots { position: absolute; z-index: 3; bottom: 6px; left: 50%; transform: translateX(-50%); display: flex; gap: 2px; }
.hero__dot { width: 22px; height: 22px; display: grid; place-items: center; }
.hero__dot::before { content: ""; width: 6px; height: 6px; border-radius: 3px; background: rgba(255, 255, 255, .5); transition: width .4s, background .4s; }
.hero__dot.is-active::before { width: 18px; background: #fff; }
@media (min-width: 1024px) { .hero__title { font-size: 44px; line-height: 52px; } }
@media (max-width: 1180px) {
  .hero { height: 100svh; max-height: 780px; }
  .hero__content { padding: 90px 20px 56px; }
}

/* page hero (inner pages) */
.phero { position: relative; height: 540px; overflow: hidden; color: #fff; background: #2b302c; }
.phero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; animation: kb 12s linear forwards; }
.phero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10, 14, 11, .45), rgba(10, 14, 11, .58)); }
.phero__content { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 16px; padding: 0 20px 120px; }
.phero__content .lead { color: rgba(255, 255, 255, .88); max-width: 640px; }
.phero .eyebrow { color: var(--sage-soft); }
@media (max-width: 1180px) { .phero { height: 480px; } .phero__content { padding: 90px 20px 30px; } }

/* ---------- sections ---------- */
.section { padding: 64px 0; }
@media (min-width: 1024px) { .section { padding: 96px 0; } }
.bg-beige { background: var(--beige); }
.bg-grey { background: var(--grey); }
.dark { background: var(--dark); color: #fff; }
.dark .lead, .dark .muted { color: rgba(255, 255, 255, .74); }
.dark .eyebrow { color: var(--sage-soft); }

/* reveal */
.js .rv { opacity: 0; transform: translateY(22px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.js .rv.is-in { opacity: 1; transform: none; }
.d1 { transition-delay: .08s !important; } .d2 { transition-delay: .16s !important; } .d3 { transition-delay: .24s !important; } .d4 { transition-delay: .32s !important; }

/* ---------- product card row ---------- */
.cards4 { display: grid; gap: 20px; grid-template-columns: repeat(4, 1fr); }
.pcard { display: grid; gap: 14px; align-content: start; text-align: start; }
.pcard__img { aspect-ratio: 280 / 300; overflow: hidden; position: relative; background: #ddd; }
.pcard__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--ease); }
.pcard:hover .pcard__img img { transform: scale(1.06); }
.pcard__img::after { content: ""; position: absolute; inset: 0; box-shadow: inset 0 0 0 1px rgba(255,255,255,.35); pointer-events: none; }
.pcard__t { font-size: 24px; line-height: 30px; font-weight: 600; }
.pcard__s { font-size: 16px; line-height: 24px; color: var(--muted); margin-top: -8px; }
@media (max-width: 1023px) { .cards4 { grid-template-columns: repeat(2, 1fr); } .pcard__t { font-size: 20px; line-height: 26px; } }
@media (max-width: 560px) {
  .cards4 { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 78%; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 calc(var(--pad) * -1); padding: 0 var(--pad) 8px; scrollbar-width: none; }
  .cards4::-webkit-scrollbar { display: none; }
  .cards4 > * { scroll-snap-align: start; }
}

/* ---------- seasons ---------- */
.seasons { display: grid; gap: 28px; align-items: center; }
.seasons__copy { display: grid; gap: 20px; text-align: center; justify-items: center; }
.seasons__modes { display: flex; gap: 36px; justify-content: center; }
.mode { display: flex; flex-direction: column; align-items: center; gap: 14px; font-size: 12px; line-height: 20px; color: var(--muted); }
.mode__c {
  position: relative; width: 72px; height: 72px; border-radius: 50%; display: grid; place-items: center; overflow: hidden;
  border: 2px solid var(--line-strong); color: var(--ink);
  background: radial-gradient(120% 120% at 30% 20%, rgba(255,255,255,.95), rgba(238,242,238,.7));
  box-shadow: inset 0 1px 2px #fff, inset 0 -6px 14px rgba(16, 24, 18, .05), 0 6px 18px rgba(16, 24, 18, .06);
  transition: transform .45s var(--ease), background .45s, color .45s, border-color .45s, box-shadow .45s;
}
.mode__c::after { content: ""; position: absolute; top: 4px; left: 14%; right: 14%; height: 40%; border-radius: 50%; background: linear-gradient(180deg, rgba(255,255,255,.8), rgba(255,255,255,0)); pointer-events: none; }
.mode__c svg { width: 24px; height: 24px; transition: transform .45s var(--ease); position: relative; z-index: 1; }
.mode[data-mode="day"] .mode__c svg { width: 12px; height: 12px; }
.mode:hover .mode__c { transform: translateY(-2px); border-color: var(--sage); }
.mode[aria-pressed="true"] .mode__c {
  transform: scale(1.06); border-color: var(--ink); color: #fff;
  background: radial-gradient(120% 120% at 30% 15%, #51624f, var(--ink) 62%);
  box-shadow: 0 0 0 6px rgba(135, 151, 125, .16), 0 14px 30px rgba(6, 59, 22, .28), inset 0 1px 1px rgba(255,255,255,.35);
}
.mode[aria-pressed="true"] .mode__c::after { opacity: .3; }
.mode[aria-pressed="true"] .mode__c svg { transform: scale(1.12); }
.mode[aria-pressed="true"] { color: var(--ink); font-weight: 600; }
.mode-cap { min-height: 96px; max-width: 470px; }
.mode-cap h3 { font-size: 18px; line-height: 26px; font-weight: 700; margin-bottom: 4px; }
.mode-cap p { font-size: 14px; line-height: 22px; color: var(--muted); }
.mode-cap.swap { animation: capIn .6s var(--ease); }
@keyframes capIn { from { opacity: 0; transform: translateY(8px); } }

.stage { position: relative; width: 100%; aspect-ratio: 800 / 540; user-select: none; -webkit-user-select: none; touch-action: pan-y; }
.stage svg, .stage canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.stage canvas { pointer-events: none; }
.st-day, .st-night, .st-rain, .st-day-only, .st-not-day { transition: opacity 1.1s var(--ease); }
.st-day, .st-night, .st-rain, .st-not-day { opacity: 0; }
[data-state="day"] .st-day, [data-state="night"] .st-night, [data-state="rain"] .st-rain { opacity: 1; }
[data-state="night"] .st-not-day, [data-state="rain"] .st-not-day { opacity: 1; }
[data-state="night"] .st-day-only, [data-state="rain"] .st-day-only { opacity: 0; }
.stage .ff { transition: fill 1.1s var(--ease); }
@media (min-width: 1024px) {
  .seasons { grid-template-columns: 554px 1fr; gap: 40px; }
  .seasons__copy { text-align: start; justify-items: start; }
  .seasons__modes { justify-content: flex-start; }
}

/* ---------- icon cards (features) ---------- */
.icards { display: grid; gap: 16px; grid-template-columns: 1fr; max-width: 980px; margin: 0 auto; }
@media (min-width: 760px) { .icards { grid-template-columns: 1fr 1fr; gap: 20px; } }
.icard {
  display: flex; gap: 24px; align-items: center; padding: 26px 24px; background: rgba(255, 255, 255, .85); border: 1px solid var(--line);
  border-radius: 4px; transition: transform .5s var(--ease), box-shadow .5s, border-color .5s;
}
.icard:hover { transform: translateY(-4px); box-shadow: 0 22px 46px rgba(16, 24, 18, .08); border-color: #fff; }
.icard__i {
  flex: none; width: 64px; height: 64px; border-radius: 50%; border: 1.5px solid var(--ink); display: grid; place-items: center;
  background: radial-gradient(circle at 30% 25%, #fff, #eef1ed);
  transition: background .5s, color .5s, box-shadow .5s;
}
.icard__i svg { width: 30px; height: 30px; }
.icard:hover .icard__i { background: radial-gradient(circle at 30% 25%, #51624f, var(--ink) 65%); color: #fff; box-shadow: 0 0 0 6px rgba(135,151,125,.15), 0 0 24px rgba(135,151,125,.5); }
.icard h3 { font-size: 18px; line-height: 26px; font-weight: 700; margin-bottom: 4px; }
.icard p { font-size: 14px; line-height: 22px; color: var(--muted); }

/* ---------- split (media + text) ---------- */
.split { display: grid; gap: 32px; align-items: center; }
.split__media { position: relative; overflow: hidden; aspect-ratio: 16 / 10; border-radius: 4px; }
.split__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.split:hover .split__media img { transform: scale(1.04); }
.split__media::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(125deg, rgba(255,255,255,.24), transparent 42%); }
.split__badge { position: absolute; inset-inline-start: 16px; bottom: 16px; z-index: 2; padding: 10px 14px; border-radius: 4px; font-size: 13px; line-height: 18px; font-weight: 700; color: var(--ink); }
.split__text { display: grid; gap: 16px; justify-items: start; }
@media (min-width: 1024px) { .split { grid-template-columns: 1.05fr 1fr; gap: 64px; } .split--rev .split__media { order: 2; } }

/* stat cards */
.scards { display: grid; gap: 16px; grid-template-columns: repeat(var(--cols, 5), 1fr); margin-top: 48px; }
.scard { position: relative; padding: 24px 20px; border: 1px solid var(--line); border-radius: 4px; background: #fff; display: grid; gap: 4px; overflow: hidden; }
.scard::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 2px; background: linear-gradient(90deg, transparent, var(--sage), transparent); transform: scaleX(0); transition: transform 1.4s var(--ease); }
.scard.is-in::before { transform: scaleX(1); }
.scard__n { font-size: 34px; line-height: 40px; font-weight: 700; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.scard__l { font-size: 14px; color: var(--muted); }
@media (max-width: 1023px) { .scards { grid-template-columns: repeat(2, 1fr); } .scards > :last-child:nth-child(odd) { grid-column: 1 / -1; } }

/* ---------- 3-card band ---------- */
.cards3 { display: grid; gap: 20px; grid-template-columns: repeat(3, 1fr); }
.c3 { display: grid; gap: 12px; align-content: start; text-align: start; }
.c3__img { aspect-ratio: 380 / 490; overflow: hidden; position: relative; }
.c3__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--ease); }
.c3:hover .c3__img img { transform: scale(1.06); }
.c3__t { font-size: 22px; line-height: 28px; font-weight: 600; }
.c3__s { font-size: 14px; line-height: 20px; color: var(--muted); margin-top: -6px; }
.dark .c3__s { color: rgba(255, 255, 255, .72); }
.band-foot { display: flex; justify-content: center; margin-top: 40px; }
@media (max-width: 900px) {
  .cards3 { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 78%; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 calc(var(--pad) * -1); padding: 0 var(--pad) 8px; scrollbar-width: none; }
  .cards3::-webkit-scrollbar { display: none; }
  .cards3 > * { scroll-snap-align: start; }
}

/* ---------- carousel ---------- */
.car__track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 40px) / 3); gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.car__track::-webkit-scrollbar { display: none; }
.car__track > * { scroll-snap-align: start; }
.car__dots { display: flex; justify-content: center; gap: 2px; margin-top: 22px; }
.car__dots button { width: 22px; height: 22px; display: grid; place-items: center; }
.car__dots button::before { content: ""; width: 6px; height: 6px; border-radius: 3px; background: #C9CCC9; transition: width .4s, background .4s; }
.car__dots button[aria-current="true"]::before { background: var(--ink); width: 18px; }
@media (max-width: 900px) { .car__track { grid-auto-columns: 78%; } }

.proj { position: relative; display: block; width: 100%; text-align: start; overflow: hidden; aspect-ratio: 380 / 490; background: #ccc; }
.proj img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.proj:hover img { transform: scale(1.06); }
.proj__cap {
  position: absolute; left: 12px; right: 12px; bottom: 12px; z-index: 2; padding: 12px 14px; border-radius: 4px; color: #fff;
  background: rgba(20, 24, 21, .3); border: 1px solid rgba(255, 255, 255, .3);
  backdrop-filter: blur(16px) saturate(160%); -webkit-backdrop-filter: blur(16px) saturate(160%);
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  transition: transform .5s var(--ease), background .5s;
}
.proj:hover .proj__cap { transform: translateY(-4px); background: rgba(20, 24, 21, .42); }
.proj__cat { display: block; font-size: 12px; line-height: 18px; color: rgba(255, 255, 255, .8); }
.proj__title { display: block; font-size: 16px; line-height: 22px; font-weight: 700; }
.proj__plus { flex: none; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 255, 255, .92); color: var(--ink); }
[dir="rtl"] .proj__plus svg { transform: scaleX(-1); }
.proj.is-hidden { display: none; }

/* ---------- marquee (glass bar) ---------- */
.marquee {
  position: relative; overflow: hidden; padding: 22px 0; border-block: 1px solid rgba(255, 255, 255, .8);
  background: linear-gradient(180deg, rgba(255,255,255,.75), rgba(255,255,255,.4));
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  box-shadow: inset 0 1px 0 #fff, 0 16px 40px rgba(16, 24, 18, .06);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.marquee::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(100deg, transparent 40%, rgba(255,255,255,.9) 50%, transparent 60%); background-size: 300% 100%; animation: shine 6s linear infinite; opacity: .7; }
.marquee__track { display: flex; width: max-content; animation: marq var(--dur, 40s) linear infinite; }
.marquee:hover .marquee__track { animation-play-state: paused; }
.marquee__group { display: flex; align-items: center; flex: none; }
.client { display: inline-flex; align-items: center; padding: 0 26px; font-size: 22px; line-height: 32px; font-weight: 600; white-space: nowrap; color: var(--ink-2); transition: color .3s, text-shadow .3s; }
.client::after { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--sage); margin-inline-start: 52px; box-shadow: 0 0 10px rgba(135,151,125,.9); }
.client:hover { color: var(--green); text-shadow: 0 0 18px rgba(135, 151, 125, .6); }
.client[lang="ar"] { font-family: "IBM Plex Sans Arabic", sans-serif; }
@keyframes marq { to { transform: translateX(-50%); } }
[dir="rtl"] .marquee__track { animation-name: marqR; }
@keyframes marqR { from { transform: translateX(-50%); } to { transform: translateX(0); } }
.dark .marquee { background: linear-gradient(180deg, rgba(255,255,255,.1), rgba(255,255,255,.03)); border-color: rgba(255,255,255,.16); box-shadow: inset 0 1px 0 rgba(255,255,255,.2); }
.dark .marquee::after { opacity: .25; }
.dark .client { color: #fff; }
.dark .client:hover { color: var(--sage-soft); }

/* ---------- warranty ---------- */
.warranty { display: grid; gap: 32px; align-items: center; max-width: 980px; margin: 0 auto; }
.warranty__card {
  justify-self: center; width: 100%; max-width: 360px; padding: 40px 28px; display: grid; justify-items: center; gap: 10px; text-align: center;
  border-radius: 6px; background: linear-gradient(150deg, rgba(255,255,255,.96), rgba(244,246,242,.75)); border: 1px solid var(--line);
  box-shadow: inset 0 1px 0 #fff, 0 30px 60px rgba(16, 24, 18, .08);
}
.warranty__shield { width: 84px; height: 84px; border-radius: 50%; border: 1.5px solid var(--ink); display: grid; place-items: center; background: radial-gradient(circle at 30% 25%, #fff, #eef1ec); box-shadow: 0 0 0 8px rgba(135,151,125,.12), 0 0 30px rgba(135,151,125,.4); margin-bottom: 6px; }
.warranty__shield svg { width: 38px; height: 38px; }
.warranty__n { font-size: 56px; line-height: 60px; font-weight: 700; letter-spacing: -.03em; }
.warranty__l { font-size: 14px; color: var(--muted); }
.warranty__text { display: grid; gap: 16px; justify-items: start; }
@media (min-width: 900px) { .warranty { grid-template-columns: 360px 1fr; gap: 72px; } }

/* ---------- FAQ ---------- */
.faq { display: grid; gap: 28px; }
.faq__head { display: grid; gap: 10px; align-content: start; }
.faq__list { display: grid; gap: 10px; }
.faq details { border: 1px solid var(--line); border-radius: 4px; background: #fff; transition: box-shadow .4s, border-color .4s; }
.faq details[open] { box-shadow: 0 16px 36px rgba(16, 24, 18, .07); border-color: #fff; }
.faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 52px; padding: 12px 16px; font-size: 15px; line-height: 22px; font-weight: 600; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; flex: none; width: 14px; height: 14px; background: linear-gradient(currentColor, currentColor) center / 14px 1.5px no-repeat, linear-gradient(currentColor, currentColor) center / 1.5px 14px no-repeat; transition: transform .4s var(--ease); }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { padding: 0 16px 16px; font-size: 14px; line-height: 22px; color: var(--muted); }
@media (min-width: 900px) { .faq { grid-template-columns: 1fr 1.6fr; gap: 64px; align-items: start; } }

/* ---------- form ---------- */
.form-card { max-width: 820px; margin: 0 auto; padding: 32px 24px; border-radius: 6px; position: relative; }
@media (min-width: 760px) { .form-card { padding: 40px; } }
.form__grid { display: grid; gap: 18px 24px; grid-template-columns: 1fr 1fr; position: relative; }
.field { display: grid; gap: 8px; min-width: 0; align-content: start; }
.field--full { grid-column: 1 / -1; }
.field label, .field legend { font-size: 14px; line-height: 20px; font-weight: 600; padding: 0; }
.field i { color: var(--green); font-style: normal; }
.field input, .field textarea {
  width: 100%; min-height: 44px; padding: 10px 12px; font: inherit; font-size: 14px; color: var(--ink);
  border: 1px solid var(--line-strong); border-radius: 2px; background: rgba(255, 255, 255, .9);
  transition: border-color .3s, box-shadow .3s;
}
.field textarea { min-height: 120px; resize: vertical; }
.field input:focus, .field textarea:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 4px rgba(135, 151, 125, .22); }
.field__err { display: none; font-size: 12px; line-height: 18px; color: #A3321F; }
.field.has-error input, .field.has-error textarea { border-color: #A3321F; }
.field.has-error .field__err { display: block; }
fieldset.field { border: 0; margin: 0; padding: 0; min-width: 0; }
.ptypes { display: flex; flex-wrap: wrap; gap: 8px; }
.ptypes legend { margin-bottom: 8px; float: left; width: 100%; }
.ptype { position: relative; }
.ptype input { position: absolute; opacity: 0; width: 1px; height: 1px; min-height: 0; padding: 0; }
.ptype span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1px solid var(--line-strong); border-radius: 999px; font-size: 14px; background: rgba(255, 255, 255, .85); cursor: pointer; transition: all .3s; }
.ptype input:checked + span { background: var(--ink); color: #fff; border-color: var(--ink); box-shadow: 0 8px 20px rgba(6, 59, 22, .2); }
.ptype input:focus-visible + span { outline: 2px solid var(--green); outline-offset: 2px; }
.ptypes.has-error .field__err { display: block; }
.form__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 24px; }
.form__fine { font-size: 12px; line-height: 18px; color: var(--muted); max-width: 460px; }
.form__done { display: none; }
.form.is-done .form__grid, .form.is-done .form__foot { display: none; }
.form.is-done .form__done { display: grid; gap: 12px; outline: none; justify-items: start; }
.form__done .h3 { font-size: 22px; }
.hp { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); opacity: 0; pointer-events: none; }
@media (max-width: 640px) { .form__grid { grid-template-columns: 1fr; } }

.ph-tag { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; line-height: 18px; font-weight: 600; background: #F3EFE4; color: #7A5B14; border: 1px solid #E8DFC6; }
.notice { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; margin-bottom: 28px; border-radius: 4px; border: 1px solid #E8DFC6; background: #FBF8F0; font-size: 14px; line-height: 22px; color: #5d4a1d; }

/* ---------- contact cards ---------- */
.ccards { display: grid; gap: 20px; grid-template-columns: repeat(3, 1fr); }
.ccard { display: grid; gap: 4px; padding: 24px; border: 1px solid var(--line); border-radius: 4px; background: #fff; align-content: start; transition: transform .5s var(--ease), box-shadow .5s; min-width: 0; }
a.ccard:hover { transform: translateY(-4px); box-shadow: 0 20px 44px rgba(16, 24, 18, .08); }
.ccard__i { width: 48px; height: 48px; border-radius: 50%; border: 1.5px solid var(--ink); display: grid; place-items: center; margin-bottom: 12px; background: radial-gradient(circle at 30% 25%, #fff, #eef1ed); }
.ccard__i svg { width: 22px; height: 22px; }
.ccard h3 { font-size: 16px; line-height: 24px; font-weight: 700; }
.ccard p { font-size: 14px; color: var(--muted); overflow-wrap: anywhere; }
@media (max-width: 900px) { .ccards { grid-template-columns: 1fr; } }

.map { position: relative; height: 440px; border-radius: 4px; overflow: hidden; border: 1px solid var(--line); background: #e9ebe8; }
.map iframe { width: 100%; height: 100%; border: 0; filter: grayscale(.85) contrast(1.05); }
.map__card { position: absolute; inset-inline-start: 16px; bottom: 16px; max-width: min(340px, calc(100% - 32px)); padding: 18px 20px; border-radius: 4px; display: grid; gap: 4px; justify-items: start; }
.map__card h3 { font-size: 18px; line-height: 24px; font-weight: 700; }
.map__card p { font-size: 13px; line-height: 20px; color: var(--muted); }

/* ---------- filters / project grid ---------- */
.filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.filter { min-height: 44px; padding: 0 16px; border: 1px solid var(--line-strong); border-radius: 999px; font-size: 14px; font-weight: 600; background: #fff; transition: all .3s; }
.filter sup { font-size: 10px; margin-inline-start: 4px; color: var(--muted); }
.filter[aria-pressed="true"] { background: var(--ink); color: #fff; border-color: var(--ink); box-shadow: 0 8px 20px rgba(6,59,22,.18); }
.filter[aria-pressed="true"] sup { color: rgba(255,255,255,.7); }
.pgrid { display: grid; gap: 20px; grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .pgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .pgrid { grid-template-columns: 1fr; } }
.clist { columns: 3 220px; column-gap: 40px; margin-top: 28px; }
.clist li { font-size: 20px; line-height: 40px; font-weight: 600; break-inside: avoid; }

/* ---------- timeline (round year buttons, same as the mode buttons) ---------- */
.tl { display: grid; gap: 32px; align-items: center; }
.tl__side { display: grid; gap: 24px; justify-items: start; }
.tl__years { display: flex; gap: 24px; }
.tl__y .mode__c { width: 84px; height: 84px; font-size: 17px; font-weight: 700; }
.tl__panel { display: grid; gap: 10px; min-height: 150px; justify-items: start; }
.tl__panel h3 { font-size: 24px; line-height: 30px; font-weight: 700; }
.tl__img { aspect-ratio: 16 / 10; overflow: hidden; border-radius: 4px; position: relative; }
.tl__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .8s var(--ease), transform 1.2s var(--ease); transform: scale(1.04); }
.tl__img img.is-on { opacity: 1; transform: none; }
@media (min-width: 1024px) { .tl { grid-template-columns: 1fr 1.1fr; gap: 64px; } }

/* ---------- brands ---------- */
.brands { display: grid; gap: 16px; grid-template-columns: repeat(3, 1fr); }
.brand { min-height: 104px; display: grid; place-items: center; align-content: center; gap: 2px; text-align: center; padding: 16px; border: 1px solid var(--line); border-radius: 4px; background: #fff; font-size: 19px; font-weight: 700; transition: transform .5s var(--ease), box-shadow .5s; }
.brand:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(16,24,18,.07); }
.brand small { display: block; font-size: 12px; font-weight: 500; color: var(--muted); }
@media (min-width: 900px) { .brands { grid-template-columns: repeat(6, 1fr); } }
@media (max-width: 560px) { .brands { grid-template-columns: repeat(2, 1fr); } }

/* ---------- product catalogue ---------- */
.prod-grid { display: grid; gap: 20px; grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .prod-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .prod-grid { grid-template-columns: 1fr; } }
.prod { display: grid; gap: 12px; align-content: start; }
.prod__img { aspect-ratio: 4 / 3; overflow: hidden; position: relative; display: block; width: 100%; }
.prod__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--ease); }
.prod:hover .prod__img img { transform: scale(1.05); }
.prod h3 { font-size: 22px; line-height: 28px; font-weight: 600; }
.prod p { font-size: 14px; line-height: 22px; color: var(--muted); }
.prod__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.prod__actions .btn { font-size: 12px; padding: 8px 14px; }
.groupnav { position: sticky; top: 96px; z-index: 20; display: flex; gap: 4px; overflow-x: auto; padding: 6px; border-radius: 999px; margin: 0 auto 48px; width: max-content; max-width: 100%; scrollbar-width: none; }
.groupnav::-webkit-scrollbar { display: none; }
.groupnav a { flex: none; min-height: 44px; display: inline-flex; align-items: center; padding: 0 16px; border-radius: 999px; font-size: 14px; font-weight: 600; transition: background .3s, color .3s; }
.groupnav a.is-on { background: var(--ink); color: #fff; }
@media (max-width: 1180px) { .groupnav { top: 80px; } }
.pgroup { scroll-margin-top: 170px; }
.pgroup + .pgroup { margin-top: 72px; }
.pgroup__h { margin-bottom: 28px; }

/* ---------- dialog ---------- */
.dlg { position: fixed; inset: 0; z-index: 120; display: grid; place-items: center; padding: 16px; }
.dlg[hidden] { display: none; }
.dlg__back { position: absolute; inset: 0; background: rgba(10, 14, 11, .45); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); opacity: 0; transition: opacity .4s; }
.dlg__panel { position: relative; width: min(1040px, 100%); max-height: calc(100svh - 32px); overflow: auto; display: grid; background: #fff; border-radius: 6px; box-shadow: 0 40px 100px rgba(0, 0, 0, .3); opacity: 0; transform: translateY(24px) scale(.98); transition: opacity .45s var(--ease), transform .45s var(--ease); }
.dlg.is-open .dlg__back { opacity: 1; }
.dlg.is-open .dlg__panel { opacity: 1; transform: none; }
.dlg__close { position: absolute; top: 12px; inset-inline-end: 12px; z-index: 3; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.85); backdrop-filter: blur(10px); box-shadow: 0 4px 14px rgba(0,0,0,.12); }
.dlg__media { background: #eee; min-width: 0; }
.dlg__media > img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: opacity .3s; }
.dlg__thumbs { display: flex; gap: 8px; padding: 8px; }
.dlg__thumbs:empty { display: none; }
.dlg__thumbs button { width: 64px; height: 48px; overflow: hidden; border-radius: 2px; opacity: .6; border: 2px solid transparent; }
.dlg__thumbs button[aria-current="true"] { opacity: 1; border-color: var(--ink); }
.dlg__thumbs img { width: 100%; height: 100%; object-fit: cover; }
.dlg__body { padding: 28px; display: grid; gap: 10px; align-content: start; justify-items: start; }
.dlg__body h3 { font-size: 26px; line-height: 32px; font-weight: 700; }
.dlg__body h4 { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; margin-top: 10px; color: var(--sage); }
html[lang="ar"] .dlg__body h4 { letter-spacing: 0; font-size: 13px; }
.dlg__body p, .dlg__body li { font-size: 14px; line-height: 22px; color: var(--muted); }
.dlg__body ul { display: grid; gap: 4px; }
.dlg__body li::before { content: "— "; color: var(--sage); }
.dlg__body .btn { margin-top: 14px; }
@media (min-width: 860px) { .dlg__panel { grid-template-columns: 1.1fr 1fr; } .dlg__media { display: grid; grid-template-rows: 1fr auto; } .dlg__media > img { aspect-ratio: auto; height: 100%; min-height: 520px; } }

/* ---------- footer ---------- */
.footer { background: var(--beige); padding: 64px 0 28px; }
.footer__top { display: grid; gap: 36px; grid-template-columns: 1.4fr repeat(3, 1fr); }
.footer__brand { display: grid; gap: 18px; align-content: start; justify-items: start; }
.footer__logo { height: 70px; width: auto; }
.footer__brand p { font-size: 14px; line-height: 22px; color: var(--muted); max-width: 300px; }
.footer h4 { font-size: 13px; font-weight: 500; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin-bottom: 12px; }
html[lang="ar"] .footer h4 { letter-spacing: 0; }
.footer li a, .footer li > span { display: inline-flex; align-items: center; min-height: 36px; font-size: 14px; }
.footer li a:hover { color: var(--green); }
.socials { display: flex; gap: 4px; margin-inline-start: -10px; }
.socials a { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; transition: background .3s, color .3s, box-shadow .3s; }
.socials a:hover { background: var(--ink); color: #fff; box-shadow: 0 0 20px rgba(135,151,125,.5); }
.socials svg { width: 20px; height: 20px; }
.footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 44px; padding-top: 20px; border-top: 1px solid var(--line); font-size: 13px; color: var(--muted); }
.ph { color: #7A5B14; }
@media (max-width: 900px) { .footer__top { grid-template-columns: 1fr 1fr; } .footer__brand { grid-column: 1 / -1; } }

.wa-float { position: fixed; z-index: 70; inset-inline-end: 18px; bottom: 18px; width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: #1f7a45; box-shadow: 0 12px 30px rgba(0,0,0,.2); }
.wa-float svg { width: 28px; height: 28px; }
.wa-float[hidden] { display: none; }

/* page transition veil */
.page-veil { position: fixed; inset: 0; z-index: 300; background: #fff; pointer-events: none; opacity: 1; transition: opacity .5s var(--ease); }
.is-ready .page-veil { opacity: 0; }
.is-leaving .page-veil { opacity: 1; transition-duration: .3s; }

/* light that follows the pointer over glass sections (desktop) */
@media (hover: hover) and (min-width: 1024px) {
  .glow-field { position: relative; }
  .glow-field::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(460px circle at var(--mx, 50%) var(--my, 50%), rgba(135, 151, 125, .16), transparent 60%); }
  .dark.glow-field::before { background: radial-gradient(520px circle at var(--mx, 50%) var(--my, 50%), rgba(185, 198, 177, .14), transparent 60%); }
  .glow-field > * { position: relative; }
}

@media (prefers-reduced-motion: reduce) {
  .js .rv { opacity: 1; transform: none; }
  .shine, .nav__bar::after, .marquee::after { animation: none; }
  .marquee__track { animation-duration: 240s; }
  .hero__slide.is-active img, .phero > img { animation: none; }
}

/* bold part of headings = <em> (keeps the existing translations), with the shine */
.h1 em, .h2 em, .statement em, .hero__title em {
  font-style: normal; font-weight: 700;
  background: linear-gradient(100deg, currentColor 0%, currentColor 40%, #7c9a70 50%, currentColor 60%, currentColor 100%);
  background-size: 250% 100%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  animation: shine 6s var(--ease) infinite;
}
.dark .h1 em, .dark .h2 em, .dark .statement em, .phero .h1 em, .hero__title em {
  background-image: linear-gradient(100deg, #fff 0%, #fff 40%, #d4e6c8 50%, #fff 60%, #fff 100%);
}
[data-lit] em { background: none !important; animation: none !important; -webkit-text-fill-color: currentColor; }
[data-lit] em .w {
  background: linear-gradient(100deg, var(--ink) 0%, var(--ink) 40%, #7c9a70 50%, var(--ink) 60%, var(--ink) 100%);
  background-size: 250% 100%; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  animation: shine 6s var(--ease) infinite; opacity: .28; transition: opacity .5s var(--ease), filter .6s;
}
.dark [data-lit] em .w { background-image: linear-gradient(100deg, #fff 0%, #fff 40%, #d4e6c8 50%, #fff 60%, #fff 100%); }
[data-lit] em .w.on { opacity: 1; }
[data-lit] em .w.hot { filter: drop-shadow(0 0 10px rgba(135,151,125,.7)); }
@media (prefers-reduced-motion: reduce) { .h1 em, .h2 em, .statement em, .hero__title em { animation: none; } }

@media (max-width: 1023px) {
  .seasons__copy { display: contents; }
  .seasons__copy > * { order: 1; text-align: center; justify-self: center; }
  .seasons .stage { order: 2; }
  .seasons .seasons__modes { order: 3; }
  .seasons .mode-cap { order: 4; }
  .seasons .seasons__note { order: 5; }
}
.seasons__note { font-size: 12px; line-height: 18px; color: var(--muted); }
[dir="rtl"] .marquee { direction: ltr; }

/* live 3D season scene */
.stage { border-radius: 6px; overflow: hidden; }
.stage canvas.three { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.is-3d .stage > svg, .is-3d .stage > canvas:not(.three) { display: none; }
.is-3d .stage { aspect-ratio: 16 / 10; box-shadow: 0 30px 60px -30px rgba(16, 24, 18, .35); }
@media (max-width: 1023px) { .is-3d .stage { aspect-ratio: 4 / 3.4; } }

/* ===== v2.1: bolder scroll-lit text ===== */
.h2 { font-weight: 600; }
.h2 em, .h1 em, .statement em { font-weight: 800; }
.statement { font-weight: 600; }
[data-lit] .w { color: #A3AAA3; }
[data-lit] .w.on { color: var(--ink); }
[data-lit] .w.hot { text-shadow: 0 0 22px rgba(108, 140, 96, .75), 0 0 2px rgba(255,255,255,.8); }
[data-lit] em .w { opacity: .5; }
.dark [data-lit] .w { color: rgba(255, 255, 255, .4); }
.dark [data-lit] .w.on { color: #fff; }
.dark [data-lit] .w.hot { text-shadow: 0 0 26px rgba(205, 228, 190, .9); }
@media (max-width: 760px) {
  .h2 { font-size: 28px; line-height: 36px; }
  .statement { font-size: 28px; line-height: 38px; }
}

/* ===== v2.1: hero, phone first ===== */
.hero__pill {
  display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 0 14px; border-radius: 999px;
  font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: #fff;
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.35);
  backdrop-filter: blur(14px) saturate(160%); -webkit-backdrop-filter: blur(14px) saturate(160%);
}
.hero__pill::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #cfe0c4; box-shadow: 0 0 10px #cfe0c4; }
html[lang="ar"] .hero__pill { letter-spacing: 0; font-size: 13px; }
.hero__title em { font-style: normal; }
@media (min-width: 1024px) { .hero__title { font-size: 56px; line-height: 62px; } }
@media (max-width: 760px) {
  .hero { height: 100svh; min-height: 620px; max-height: none; }
  .hero::after { background: linear-gradient(180deg, rgba(10,14,11,.35) 0%, rgba(10,14,11,.1) 30%, rgba(10,14,11,.55) 62%, rgba(10,14,11,.88) 100%); }
  .hero__content { justify-content: flex-end; align-items: flex-start; text-align: start; padding: 96px 20px 54px; gap: 16px; }
  .hero__title { font-size: 40px; line-height: 44px; letter-spacing: -.02em; text-transform: none; }
  html[lang="ar"] .hero__title { font-size: 38px; line-height: 1.35; }
  .hero__title span + span { color: #cfe0c4; }
  .hero__sub { font-size: 16px; line-height: 24px; color: rgba(255,255,255,.86); }
  .hero__ctas { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 6px; }
  .hero__ctas .btn { min-height: 50px; padding: 10px 12px; font-size: 12px; }
  .hero__ctas .btn:first-child { grid-column: 1 / -1; font-size: 13px; }
  .hero__dots { left: 20px; transform: none; bottom: 18px; }
  [dir="rtl"] .hero__dots { left: auto; right: 20px; }
  .phero { height: 78svh; min-height: 520px; }
  .phero__content { justify-content: flex-end; padding: 96px 20px 44px; }
  .phero::after { background: linear-gradient(180deg, rgba(10,14,11,.35), rgba(10,14,11,.15) 35%, rgba(10,14,11,.85)); }
  .section { padding: 56px 0; }
  .sec-head { margin-bottom: 32px; }
  .pcard__t { font-size: 20px; }
  .seasons__modes { gap: 28px; }
}
@media (max-width: 760px) { .hero__ctas .btn { text-align: center; line-height: 16px; } }
