﻿/* ============================================================
   Ø±Ø³Ø§ ÙˆØ¨ â€” Design System
   Tech-blue agency, fully RTL, motion-rich.
   ============================================================ */

/* ---- Local Persian font (self-contained, works offline) ---- */
@font-face {
  font-family: "RasaSans";
  src: url("../fonts/rasa-regular.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}

/* RASA FINAL CASCADE v5 — loaded last so older experimental layers cannot
   destabilize the hero or hide content when the theme changes. */
body.home .hero, body.page-id-39 .hero { min-height:min(820px,100svh)!important; padding:clamp(108px,12vh,138px) 0 clamp(56px,7vh,88px)!important; border-radius:0!important; background:linear-gradient(90deg,rgba(3,13,37,.96),rgba(5,24,60,.84) 43%,rgba(5,24,60,.3)),url('../img/rasa-home-growth-atmosphere.png') center/cover no-repeat!important; }
body.home .hero .container, body.page-id-39 .hero .container { width:min(1180px,calc(100% - 42px))!important; grid-template-columns:minmax(0,.92fr) minmax(390px,1.08fr)!important; gap:clamp(32px,6vw,86px)!important; }
body.home .hero-copy, body.page-id-39 .hero-copy { max-width:610px!important; }
body.home .hero h1, body.page-id-39 .hero h1 { font-size:clamp(40px,5.2vw,72px)!important; line-height:1.22!important; letter-spacing:-.045em; text-wrap:balance; }
body.home .hero p, body.page-id-39 .hero p { max-width:590px; color:rgba(228,240,255,.82)!important; font-size:clamp(16px,1.45vw,20px)!important; line-height:2.05!important; }
body.home .rasa-growth-hero-art, body.page-id-39 .rasa-growth-hero-art { min-height:500px!important; isolation:isolate; }
body.home .rasa-growth-hero-art::before, body.page-id-39 .rasa-growth-hero-art::before { content:""; position:absolute; inset:11% 6% 7%; border:1px solid rgba(106,215,255,.22); border-radius:50%; transform:rotate(-18deg) scaleX(1.18); box-shadow:0 0 0 24px rgba(62,163,255,.035),inset 0 0 50px rgba(37,190,255,.06); pointer-events:none; }
body.home .rasa-logo-hero-mark, body.page-id-39 .rasa-logo-hero-mark { width:min(430px,76%)!important; filter:drop-shadow(0 28px 54px rgba(0,0,0,.38)) drop-shadow(0 0 38px rgba(71,213,255,.42)); }
body.home .features-grid, body.page-id-39 .features-grid { position:relative; grid-template-columns:repeat(4,minmax(0,1fr))!important; gap:16px!important; max-width:1160px!important; }
body.home .features-grid .feature, body.page-id-39 .features-grid .feature { min-height:214px; padding:26px 22px 22px!important; border:1px solid var(--rasa-home-line,rgba(55,137,218,.16))!important; border-radius:24px!important; background:linear-gradient(150deg,var(--rasa-home-surface,rgba(255,255,255,.82)),color-mix(in srgb,var(--rasa-home-surface,rgba(255,255,255,.82)) 74%,transparent))!important; box-shadow:0 14px 32px rgba(15,69,138,.07)!important; overflow:hidden; }
body.home .features-grid .feature:hover, body.page-id-39 .features-grid .feature:hover { transform:translateY(-8px)!important; border-color:rgba(42,174,255,.55)!important; box-shadow:0 24px 50px rgba(16,96,189,.16)!important; }
body.home .features-grid .feature h3, body.page-id-39 .features-grid .feature h3 { font-size:clamp(17px,1.45vw,21px)!important; color:var(--rasa-home-ink,#081a3b)!important; }
body.home .features-grid .feature p, body.page-id-39 .features-grid .feature p { color:var(--rasa-home-muted,#5b6f8f)!important; line-height:1.9; }
body.home .rhd-brand-wall, body.page-id-39 .rhd-brand-wall { min-height:235px; padding:44px clamp(20px,5vw,70px)!important; background:linear-gradient(120deg,rgba(7,23,54,.91),rgba(11,45,91,.76)),url('../img/rasa-brand-network.png') center/cover no-repeat!important; border:1px solid rgba(87,205,255,.24)!important; border-radius:30px!important; box-shadow:0 24px 62px rgba(3,20,58,.2)!important; }
body.home .rhd-brand-wall img, body.page-id-39 .rhd-brand-wall img { filter:grayscale(1) brightness(2) contrast(.82)!important; opacity:.74!important; }
html:not(.theme-dark) body.home .hero, html:not(.theme-dark) body.page-id-39 .hero { background:linear-gradient(90deg,rgba(249,252,255,.94),rgba(244,249,255,.82) 40%,rgba(240,247,255,.28)),url('../img/rasa-light-wave.png') center/cover no-repeat!important; color:#081a3b; }
html:not(.theme-dark) body.home .hero h1, html:not(.theme-dark) body.page-id-39 .hero h1 { color:#081a3b!important; text-shadow:none; }
html:not(.theme-dark) body.home .hero p, html:not(.theme-dark) body.page-id-39 .hero p { color:#536987!important; }
html:not(.theme-dark) body.home .rhd-brand-wall, html:not(.theme-dark) body.page-id-39 .rhd-brand-wall { background:linear-gradient(120deg,rgba(245,250,255,.92),rgba(225,242,255,.78)),url('../img/rasa-light-wave.png') center/cover no-repeat!important; border-color:rgba(23,125,230,.16)!important; }
html:not(.theme-dark) body.home .rhd-brand-wall img, html:not(.theme-dark) body.page-id-39 .rhd-brand-wall img { filter:grayscale(1) contrast(.72)!important; opacity:.65!important; }
body.home .rasa-scroll-stage > .rasa-scroll-scene, body.page-id-39 .rasa-scroll-stage > .rasa-scroll-scene { transform:translate3d(0,calc(var(--rasa-scroll-depth,0) * -18px),0); opacity:.82; }
body.rasa-at-page-end .rasa-bottom-consult { position:absolute!important; left:50%!important; right:auto!important; bottom:32px!important; transform:translateX(-50%)!important; z-index:12!important; }
body.rasa-at-page-end { padding-bottom:0!important; }
@media (max-width:900px) { body.home .hero .container,body.page-id-39 .hero .container{grid-template-columns:1fr!important;text-align:center;} body.home .rasa-growth-hero-art,body.page-id-39 .rasa-growth-hero-art{order:-1;min-height:330px!important;} body.home .features-grid,body.page-id-39 .features-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;} }
@media (max-width:560px) { body.home .hero,body.page-id-39 .hero{min-height:auto!important;padding-top:96px!important;} body.home .rasa-growth-hero-art,body.page-id-39 .rasa-growth-hero-art{min-height:280px!important;} body.home .features-grid,body.page-id-39 .features-grid{grid-template-columns:1fr!important;} body.rasa-at-page-end .rasa-bottom-consult{bottom:20px!important;width:calc(100% - 28px);} }
@media (prefers-reduced-motion:reduce) { body.home .features-grid .feature,body.page-id-39 .features-grid .feature,body.home .rasa-scroll-stage > .rasa-scroll-scene,body.page-id-39 .rasa-scroll-stage > .rasa-scroll-scene,.rasa-bottom-consult{transition:none!important;transform:none!important;} }
@font-face {
  font-family: "RasaSans";
  src: url("../fonts/rasa-medium.woff2") format("woff2");
  font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "RasaSans";
  src: url("../fonts/rasa-bold.woff2") format("woff2");
  font-weight: 800; font-style: normal; font-display: swap;
}
/* Display font (Morabba) â€” for big headings */
@font-face {
  font-family: "RasaDisplay";
  src: url("../fonts/display-semibold.woff2") format("woff2");
  font-weight: 600 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "RasaDisplay";
  src: url("../fonts/display-bold.woff2") format("woff2");
  font-weight: 800; font-style: normal; font-display: swap;
}

:root {
  --font-display: "RasaDisplay", "RasaSans", Tahoma, sans-serif;
  /* Blue palette */
  --navy-900: #060f29;
  --navy-800: #0a1a3f;
  --navy-700: #0f2657;
  --blue-600: #1e6bff;
  --blue-500: #2f7bff;
  --blue-400: #4f93ff;
  --cyan-400: #34d2ff;
  --ink: #0c1736;
  --muted: #3c465e;   /* darkened from #5b6b88 for clearly-readable body text */
  --line: #e6ecf7;
  --paper: #ffffff;
  --paper-2: #f4f8ff;
  --paper-3: #eaf1ff;
  --card: #ffffff;
  --header-bg: rgba(255,255,255,.86);
  --dots-opacity: 1;

  --grad-blue: linear-gradient(135deg, #1e6bff 0%, #34d2ff 100%);
  --grad-deep: linear-gradient(160deg, #0a1a3f 0%, #0f2657 55%, #143a8c 100%);

  --shadow-sm: 0 4px 14px rgba(15,38,87,.08);
  --shadow-md: 0 16px 40px rgba(15,38,87,.12);
  --shadow-lg: 0 30px 70px rgba(15,38,87,.18);
  --shadow-blue: 0 18px 40px rgba(30,107,255,.35);

  --r-sm: 12px; --r-md: 18px; --r-lg: 26px; --r-xl: 36px;
  --maxw: 1200px;
  --header-h: 78px;
}

/* ---- Night theme (day/night toggle) ---- */
html.theme-dark {
  --ink: #e8eefc;
  --muted: #aebbd8;   /* lightened from #93a4c6 for clearly-readable body text on dark */
  --line: #1e2d4a;
  --paper: #0a1426;
  --paper-2: #0d1a32;
  --paper-3: #112143;
  --card: #101d35;
  --header-bg: rgba(10,20,38,.82);
  --dots-opacity: .12;

  --shadow-sm: 0 4px 14px rgba(0,0,0,.35);
  --shadow-md: 0 16px 40px rgba(0,0,0,.45);
  --shadow-lg: 0 30px 70px rgba(0,0,0,.55);
}
html { color-scheme: light; }
html.theme-dark { color-scheme: dark; }
/* smooth fade between day/night */
body, .site-header, .card, .post-card, .testi, .faq-item,
.widget, .info-card, .team-card, .form-card { transition: background-color .35s ease, color .35s ease, border-color .35s ease; }

/* day/night toggle button */
.theme-toggle {
  width: 44px; height: 44px; border-radius: 50%; flex: none;
  border: 1.6px solid var(--line); background: var(--card); color: var(--blue-600);
  display: flex; align-items: center; justify-content: center; cursor: pointer;
  box-shadow: var(--shadow-sm); transition: transform .25s, border-color .25s, color .25s, background .25s;
}
.theme-toggle svg { display: block; }
.theme-toggle:hover { transform: translateY(-3px) rotate(-12deg); border-color: var(--blue-400); }
.theme-toggle svg { width: 24px; height: 24px; flex: none; transition: opacity .25s, transform .4s; }
.theme-toggle .ico-moon { display: none; }
html.theme-dark .theme-toggle { color: var(--cyan-400); }
html.theme-dark .theme-toggle .ico-sun { display: none; }
html.theme-dark .theme-toggle .ico-moon { display: block; }

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; overflow-x: clip; max-width: 100%; }
body {
  font-family: "RasaSans", Tahoma, "Segoe UI", sans-serif;
  direction: rtl;
  text-align: right;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.85;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
ul { list-style: none; }

.container { width: 100%; max-width: var(--maxw); margin-inline: auto; padding-inline: 22px; }
.section { padding: 96px 0; position: relative; }
.section--tight { padding: 70px 0; }

/* ---- Typography ---- */
h1,h2,h3,h4 { font-weight: 800; line-height: 1.4; color: var(--ink); letter-spacing: 0; }
/* Elegant display font (Morabba) on big headings + key numbers */
h1, h2, .hero h1, .page-hero h1, .single-hero h1, .section-head h2, .cta-inner h2,
.hero-stats .num, .price, .feature h3, .plan .price {
  font-family: var(--font-display); font-weight: 800; line-height: 1.5; letter-spacing: 0;
}
h3, h4 { font-family: "RasaSans", Tahoma, sans-serif; }
.text-grad, .eyebrow, .btn { font-family: inherit; }
.eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 600; font-size: 14px; color: var(--blue-600);
  background: var(--paper-3); padding: 7px 16px; border-radius: 100px;
  margin-bottom: 18px;
}
.eyebrow::before { content:""; width: 8px; height: 8px; border-radius: 50%; background: var(--grad-blue); }
.section-head { max-width: 660px; margin: 0 auto 56px; text-align: center; }
.section-head h2 { font-size: clamp(28px, 4vw, 42px); }
.section-head p { color: var(--muted); font-size: 17px; margin-top: 14px; }
.text-grad { background: var(--grad-blue); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* ---- Buttons ---- */
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 700; font-size: 17px; padding: 12px 24px; border-radius: 100px;
  border: 0; cursor: pointer; transition: transform .25s, box-shadow .25s, background .25s;
  white-space: nowrap;
}
.btn svg { width: 18px; height: 18px; }
/* compact button variant */
.btn-sm { padding: 9px 18px; font-size: 14px; }
/* header CTA stays compact in the slim bar */
.header-actions .btn { padding: 9px 18px; font-size: 14px; }
.btn-primary { background: var(--grad-blue); color: #fff; box-shadow: var(--shadow-blue); }
.btn-primary:hover { transform: translateY(-3px); box-shadow: 0 24px 50px rgba(30,107,255,.45); }
.btn-ghost { background: rgba(255,255,255,.08); color: #fff; border: 1px solid rgba(255,255,255,.25); }
.btn-ghost:hover { background: rgba(255,255,255,.16); transform: translateY(-3px); }
.btn-outline { background: var(--card); color: var(--blue-600); border: 1.6px solid var(--line); box-shadow: var(--shadow-sm); }
.btn-outline:hover { border-color: var(--blue-400); transform: translateY(-3px); box-shadow: var(--shadow-md); }

/* ============================================================
   HEADER
   ============================================================ */
.site-header {
  position: fixed; inset: 0 0 auto 0; height: var(--header-h); z-index: 100;
  display: flex; align-items: center;
  transition: background .3s, box-shadow .3s, height .3s;
}
.site-header.scrolled {
  background: var(--header-bg); backdrop-filter: blur(14px);
  box-shadow: 0 6px 24px rgba(15,38,87,.08); height: 66px;
}
.site-header .container { display: flex; align-items: center; justify-content: flex-start; gap: 20px; }
/* brand + nav hug the right; the controls (theme toggle + CTA) get pushed to the far left */
.site-header .nav { margin-inline-end: auto; }
.brand { display: flex; align-items: center; gap: 12px; font-weight: 800; font-size: 22px; }
.brand .logo-mark {
  width: 42px; height: 42px; border-radius: 12px; background: var(--grad-blue);
  display: grid; place-items: center; color: #fff; font-size: 20px; box-shadow: var(--shadow-blue);
  transform: rotate(-6deg); transition: transform .3s;
}
.brand:hover .logo-mark { transform: rotate(0deg) scale(1.05); }
.brand b { color: var(--blue-600); }
.site-header.solid .brand, .site-header.scrolled .brand { color: var(--ink); }

/* Brand logo image */
.brand-logo { height: 54px; width: auto; display: block; transition: height .3s, filter .3s; }
.site-header.scrolled .brand-logo { height: 46px; }
.site-header:not(.scrolled) .brand-logo { filter: brightness(0) invert(1); } /* white over dark hero */
.brand--footer { display: inline-block; margin-bottom: 16px; }
.brand--footer .brand-logo { height: 92px; filter: brightness(0) invert(1); opacity: .96; }
@media (max-width: 768px) { .brand-logo { height: 46px; } .site-header.scrolled .brand-logo { height: 42px; } }

.nav { display: flex; align-items: center; gap: 22px; }
.nav a { font-weight: 600; font-size: 16px; position: relative; padding: 6px 0; transition: color .2s; }
.nav a::after {
  content:""; position: absolute; bottom: 0; right: 0; height: 2px; width: 0;
  background: var(--grad-blue); transition: width .28s;
}
.nav a:hover::after, .nav a.current::after { width: 100%; }
.header-actions { display: flex; align-items: center; gap: 14px; }

/* ---- Header dropdown (Ø®Ø¯Ù…Ø§Øª) ---- */
.has-dropdown { position: relative; }
.dd-toggle { display: inline-flex !important; align-items: center; gap: 5px; }
.dd-caret { width: 15px; height: 15px; transition: transform .25s; }
.has-dropdown:hover .dd-caret { transform: rotate(180deg); }
.dd-mobile-toggle { display: none; }
.dropdown {
  position: absolute; top: calc(100% + 16px); right: 0;
  width: min(520px, 94vw);
  background: var(--card);
  border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  border-radius: 20px;
  box-shadow: 0 34px 70px -26px rgba(8, 20, 50, .42), 0 12px 30px rgba(8, 20, 50, .10);
  padding: 14px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px;
  opacity: 0; visibility: hidden; transform: translateY(12px) scale(.98); transform-origin: top right;
  transition: opacity .26s ease, transform .26s cubic-bezier(.2,.8,.2,1), visibility .26s; z-index: 120;
}
/* a thin gradient hairline along the top edge for a premium finish */
.dropdown::after {
  content:""; position: absolute; top: 0; right: 18px; left: 18px; height: 3px; border-radius: 3px;
  background: var(--grad-blue); opacity: .9;
}
.dropdown::before { content:""; position: absolute; top: -16px; right: 0; left: 0; height: 16px; } /* hover bridge */
.has-dropdown:hover .dropdown { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }
.dd-item { display: flex !important; align-items: center; gap: 12px; padding: 11px 12px !important; border-radius: 14px; color: var(--ink) !important; transition: background .22s, transform .22s, box-shadow .22s; }
.dd-item:hover { background: var(--paper-2); transform: translateX(-3px); box-shadow: 0 8px 20px -12px rgba(30,107,255,.5); }
.dd-item::after { display: none; }
.dd-text { min-width: 0; }
.dd-ic { width: 44px; height: 44px; flex: none; border-radius: 13px; background: var(--paper-3); color: var(--blue-600); display: grid; place-items: center; transition: background .25s, color .25s, transform .25s; }
.dd-ic svg { width: 21px; }
.dd-item:hover .dd-ic { background: var(--grad-blue); color: #fff; transform: scale(1.08) rotate(-3deg); box-shadow: var(--shadow-blue); }
.dd-text b { display: block; font-size: 14.5px; font-weight: 700; line-height: 1.35; } .dd-text small { display:block; color: var(--muted); font-size: 12px; line-height: 1.3; margin-top: 1px; }

/* Dropdown panel links keep their own colours (beat page-specific header overrides). */
.site-header .dropdown .dd-item { color: var(--ink) !important; }
.site-header .dropdown .dd-item .dd-text b { color: var(--ink) !important; transition: color .22s; }
.site-header .dropdown .dd-item .dd-text small { color: var(--muted) !important; transition: color .22s; }
.site-header .dropdown .dd-item:hover,
.site-header .dropdown .dd-item:focus-visible,
.site-header .dropdown .dd-item.current {
  background: color-mix(in srgb, var(--blue-600) 12%, var(--paper-2)) !important;
  box-shadow: 0 12px 30px -16px rgba(30,107,255,.55) !important;
  transform: translateX(-4px);
}
.site-header .dropdown .dd-item:hover .dd-text b,
.site-header .dropdown .dd-item:focus-visible .dd-text b,
.site-header .dropdown .dd-item.current .dd-text b { color: var(--blue-600) !important; }
.site-header .dropdown .dd-item:hover .dd-text small,
.site-header .dropdown .dd-item.current .dd-text small {
  color: color-mix(in srgb, var(--blue-600) 52%, var(--muted)) !important;
}
.site-header .dropdown .dd-item:hover .dd-ic,
.site-header .dropdown .dd-item:focus-visible .dd-ic,
.site-header .dropdown .dd-item.current .dd-ic {
  background: var(--grad-blue) !important;
  color: #fff !important;
  box-shadow: var(--shadow-blue);
}
.site-header .dropdown .dd-item.current {
  border: 1px solid color-mix(in srgb, var(--blue-600) 30%, transparent);
}
.has-dropdown:hover > .dd-toggle::after,
.has-dropdown:has(.dd-item:hover) > .dd-toggle::after,
.has-dropdown:has(.dd-item.current) > .dd-toggle::after { width: 100%; }

/* light header (over hero) text — top-level links only; dropdown items styled above */
.site-header:not(.scrolled) .nav > a,
.site-header:not(.scrolled) .nav > .has-dropdown > .dd-toggle,
.site-header:not(.scrolled) .brand { color: #fff; }

.menu-toggle { display: none; background: none; border: 0; cursor: pointer; width: 44px; height: 44px; }
.menu-toggle span { display: block; height: 2.4px; width: 24px; margin: 5px auto; background: currentColor; border-radius: 2px; transition: .3s; }
.site-header:not(.scrolled) .menu-toggle { color: #fff; }
.site-header.scrolled .menu-toggle { color: var(--ink); }

/* ============================================================
   HERO  (balanced two-column, NOT crowded to one side)
   ============================================================ */
.hero {
  position: relative; min-height: 100vh; display: flex; align-items: center;
  background: var(--grad-deep); color: #fff; overflow: hidden; padding-top: var(--header-h);
  /* Pin the hero to its own stable GPU layer so its gradient backing store is
     not dropped/repainted when the heavy animated children (blob, glass-card
     & header backdrop-filters, particles) thrash the compositor â€” that eviction
     is what made the background "disappear and come back". */
  transform: translateZ(0); -webkit-backface-visibility: hidden; backface-visibility: hidden;
}
.hero::before { /* gradient mesh glow */
  content:""; position: absolute; inset: 0;
  background:
    radial-gradient(600px 400px at 80% 20%, rgba(52,210,255,.22), transparent 60%),
    radial-gradient(700px 500px at 15% 75%, rgba(30,107,255,.30), transparent 60%);
}
.hero::after { /* subtle grid */
  content:""; position: absolute; inset: 0; opacity: .35;
  background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 48px 48px; mask-image: radial-gradient(circle at 50% 40%, #000, transparent 75%);
}
.hero .container { position: relative; z-index: 2; display: grid; grid-template-columns: 1.05fr .95fr; gap: 50px; align-items: center; }
.hero-copy { max-width: 560px; }
.hero-copy .eyebrow { background: rgba(255,255,255,.12); color: #dbe8ff; }
.hero-copy .eyebrow::before { background: var(--cyan-400); }
.hero h1 { color: #fff; font-size: clamp(34px, 5.4vw, 60px); line-height: 1.28; }
.hero h1 .text-grad { background: linear-gradient(120deg,#34d2ff,#9ec3ff); -webkit-background-clip:text; background-clip:text; color: transparent; }
.hero p { color: #c4d3f5; font-size: 19px; margin: 22px 0 34px; }
.hero-actions { display: flex; gap: 16px; flex-wrap: wrap; }
.hero-stats { display: flex; gap: 34px; margin-top: 46px; }
.hero-stats .num { font-size: 30px; font-weight: 800; color: #fff; }
.hero-stats .lbl { font-size: 14px; color: #9fb4e0; }

/* hero visual: floating glass cards + orbit (clean, no clipped circles) */
.hero-visual { position: relative; height: 460px; }
.orbit {
  position: absolute; inset: 0; margin: auto; width: 360px; height: 360px; border-radius: 50%;
  border: 1.5px dashed rgba(255,255,255,.25); top: 50%; right: 50%; transform: translate(50%,-50%);
  animation: spin 26s linear infinite;
}
.orbit::before { content:""; position: absolute; inset: 38px; border-radius: 50%; border: 1.5px dashed rgba(255,255,255,.16); }
.blob {
  position: absolute; top: 50%; right: 50%; transform: translate(50%,-50%);
  width: 280px; height: 280px; border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, rgba(52,210,255,.9), rgba(30,107,255,.65) 55%, rgba(15,38,87,.2) 80%);
  filter: blur(2px); box-shadow: 0 40px 90px rgba(30,107,255,.45);
  animation: float 6s ease-in-out infinite;
}
.glass-card {
  position: absolute; background: rgba(255,255,255,.1); backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.22); border-radius: var(--r-md); padding: 14px 18px;
  display: flex; align-items: center; gap: 12px; color: #fff; box-shadow: var(--shadow-md);
  animation: float 5.5s ease-in-out infinite;
}
.glass-card .ic { width: 38px; height: 38px; border-radius: 10px; background: var(--grad-blue); display: grid; place-items: center; }
.glass-card .t { font-weight: 700; font-size: 15px; } .glass-card .s { font-size: 12px; color: #bcd0f5; }
.gc-1 { top: 12%; right: 4%; animation-delay: .2s; }
.gc-2 { bottom: 14%; right: 56%; animation-delay: 1.1s; }
.gc-3 { top: 46%; right: -2%; animation-delay: .7s; }

@keyframes float { 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-16px) } }
@keyframes spin { to { transform: translate(50%,-50%) rotate(360deg) } }

/* ============================================================
   LOGOS / TRUST STRIP
   ============================================================ */
.trust { background: var(--paper-2); border-block: 1px solid var(--line); }
.trust .container { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding-block: 26px; }
.trust .t-lbl { color: var(--muted); font-weight: 600; }
.trust .t-logos { display: flex; gap: 40px; flex-wrap: wrap; opacity: .7; font-weight: 800; font-size: 20px; color: #9fb0d0; }

/* ============================================================
   SERVICES  (clean card hover â€” no half-circles)
   ============================================================ */
.grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 26px; }
.card {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 34px 30px;
  position: relative; overflow: hidden; transition: transform .3s, box-shadow .3s, border-color .3s;
}
.card::before { /* soft corner glow contained inside card */
  content:""; position: absolute; top: -40px; left: -40px; width: 140px; height: 140px;
  background: radial-gradient(circle, rgba(30,107,255,.16), transparent 70%);
  opacity: 0; transition: opacity .35s;
}
.card:hover { transform: translateY(-10px); box-shadow: var(--shadow-lg); border-color: transparent; }
.card:hover::before { opacity: 1; }
.card .icon {
  width: 62px; height: 62px; border-radius: 18px; background: var(--paper-3); color: var(--blue-600);
  display: grid; place-items: center; margin-bottom: 22px; transition: background .35s, color .35s, transform .35s;
}
.card .icon svg { width: 30px; height: 30px; }
.card:hover .icon { background: var(--grad-blue); color: #fff; transform: rotate(-6deg) scale(1.06); }
.card h3 { font-size: 21px; margin-bottom: 10px; }
.card p { color: var(--muted); font-size: 15.5px; }
.card .more { margin-top: 18px; display: inline-flex; align-items: center; gap: 7px; color: var(--blue-600); font-weight: 700; font-size: 15px; }
.card .more svg { width: 18px; transition: transform .25s; }
.card:hover .more svg { transform: translateX(-5px); }

/* ============================================================
   PRICING (dark navy section)
   ============================================================ */
.pricing { background: var(--grad-deep); color: #fff; }
.pricing .section-head h2 { color: #fff; }
.pricing .section-head p { color: #b9c8ec; }
.price-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; align-items: stretch; }
.plan {
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); border-radius: var(--r-lg);
  padding: 36px 30px; transition: transform .3s, background .3s, border-color .3s; position: relative;
}
.plan:hover { transform: translateY(-8px); background: rgba(255,255,255,.09); }
.plan.featured { background: var(--grad-blue); border-color: transparent; box-shadow: var(--shadow-blue); transform: scale(1.04); }
.plan.featured:hover { transform: scale(1.04) translateY(-8px); }
.plan .badge { position: absolute; top: 20px; left: 24px; background: rgba(255,255,255,.2); padding: 5px 12px; border-radius: 100px; font-size: 12px; font-weight: 700; }
.plan h3 { color: #fff; font-size: 20px; }
.plan .price { font-size: 38px; font-weight: 800; color: #fff; margin: 14px 0 4px; }
.plan .price span { font-size: 15px; font-weight: 600; color: #b9c8ec; }
.plan ul { margin: 22px 0 28px; display: grid; gap: 13px; }
.plan li { display: flex; align-items: center; gap: 10px; color: #d6e1f7; font-size: 15px; }
.plan li svg { width: 19px; color: var(--cyan-400); flex: none; }
.plan.featured li { color: #fff; } .plan.featured li svg { color: #fff; }
.plan .btn { width: 100%; justify-content: center; }

/* ---- Tariffs: tabbed categories ---- */
.tariff-tabs {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 44px;
  background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); border-radius: 100px; padding: 8px;
}
.ttab {
  display: inline-flex; align-items: center; gap: 9px; border: 0; cursor: pointer; font: inherit;
  font-weight: 700; font-size: 15px; padding: 11px 22px; border-radius: 100px;
  background: transparent; color: #c3d2f0; transition: background .25s, color .25s, box-shadow .25s;
}
.ttab:hover { color: #fff; }
.ttab .ttab-ic { display: grid; place-items: center; } .ttab .ttab-ic svg { width: 19px; }
.ttab.active { background: var(--grad-blue); color: #fff; box-shadow: var(--shadow-blue); }
.tpanel { display: none; animation: tpanelIn .45s ease both; }
.tpanel.active { display: block; }
@keyframes tpanelIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
#tariffs-top { scroll-margin-top: 80px; }
@media (max-width: 768px) {
  .tariff-tabs { border-radius: 18px; flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; -webkit-overflow-scrolling: touch; }
  .ttab { white-space: nowrap; flex: none; padding: 10px 16px; font-size: 14px; }
}

/* ============================================================
   FEATURES / WHY US
   ============================================================ */
.features-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 22px; }
.feature { text-align: center; padding: 30px 20px; }
.feature .fic {
  width: 72px; height: 72px; border-radius: 50%; margin: 0 auto 18px; display: grid; place-items: center;
  background: var(--paper-3); color: var(--blue-600); transition: transform .3s, background .3s, color .3s;
}
.feature .fic svg { width: 32px; }
.feature:hover .fic { background: var(--grad-blue); color: #fff; transform: translateY(-6px); }
.feature h3 { font-size: 18px; margin-bottom: 8px; }
.feature p { color: var(--muted); font-size: 14.5px; }

/* ============================================================
   PORTFOLIO  (image STAYS visible on hover; overlay slides up)
   ============================================================ */
.grid-2 { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.work {
  position: relative; border-radius: var(--r-lg); overflow: hidden; aspect-ratio: 4/3;
  box-shadow: var(--shadow-sm); transition: transform .35s, box-shadow .35s;
}
.work:hover { transform: translateY(-8px); box-shadow: var(--shadow-lg); }
.work .ph { position: absolute; inset: 0; transition: transform .5s; }
.work:hover .ph { transform: scale(1.06); }            /* image scales, never disappears */
.work .ph::after { content:""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(6,15,41,.78), rgba(6,15,41,0) 55%); }
.work .meta {
  position: absolute; inset-inline: 0; bottom: 0; padding: 22px; color: #fff;
  transform: translateY(14px); opacity: .92; transition: transform .35s;
}
.work:hover .meta { transform: translateY(0); }
.work .meta .tag { font-size: 12.5px; color: var(--cyan-400); font-weight: 700; }
.work .meta h3 { color: #fff; font-size: 19px; }
/* decorative gradient placeholders (no external images needed) */
.ph-1{ background: linear-gradient(135deg,#1e6bff,#34d2ff);} .ph-2{ background: linear-gradient(135deg,#0f2657,#1e6bff);} .ph-3{ background: linear-gradient(135deg,#143a8c,#34d2ff);}
.ph-4{ background: linear-gradient(135deg,#2f7bff,#0a1a3f);} .ph-5{ background: linear-gradient(135deg,#34d2ff,#1e6bff);} .ph-6{ background: linear-gradient(135deg,#1e6bff,#0f2657);}

/* ============================================================
   CTA banner (blue, replaces yellow)
   ============================================================ */
.cta-band { position: relative; }
.cta-inner {
  background: var(--grad-blue); border-radius: var(--r-xl); padding: 56px 50px; color: #fff;
  display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap;
  position: relative; overflow: hidden; box-shadow: var(--shadow-blue);
}
.cta-inner::before { content:""; position: absolute; top:-60px; left:-30px; width: 240px; height: 240px; border-radius: 50%; background: rgba(255,255,255,.14); }
.cta-inner::after { content:""; position: absolute; bottom:-80px; right: 10%; width: 200px; height: 200px; border-radius: 50%; background: rgba(255,255,255,.1); }
.cta-inner h2 { color: #fff; font-size: clamp(24px,3.2vw,34px); position: relative; }
.cta-inner p { color: #e3edff; margin-top: 8px; position: relative; }
.cta-inner .btn { position: relative; }
.cta-inner .btn-primary { background: #fff; color: var(--blue-600); }
.cta-inner .btn-primary:hover { background: #fff; }

/* ============================================================
   CONTACT + FOOTER (clearly visible)
   ============================================================ */
.contact { background: var(--paper-2); }
.contact .wrap { display: grid; grid-template-columns: 1fr 1.1fr; gap: 44px; align-items: start; }
.contact-info h2 { font-size: clamp(26px,3.4vw,36px); }
.contact-info p { color: var(--muted); margin: 14px 0 26px; }
.contact-list { display: grid; gap: 16px; }
.contact-list li { display: flex; align-items: center; gap: 14px; font-weight: 600; }
.contact-list .ci { width: 50px; height: 50px; border-radius: 14px; background: var(--card); color: var(--blue-600); display: grid; place-items: center; box-shadow: var(--shadow-sm); flex: none; }
.contact-list .ci svg { width: 22px; }
.contact-list small { display: block; color: var(--muted); font-weight: 500; font-size: 13px; }
.form-card { background: var(--card); border-radius: var(--r-lg); padding: 34px; box-shadow: var(--shadow-md); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.field { margin-bottom: 16px; }
.field label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 7px; }
.field input, .field textarea {
  width: 100%; padding: 13px 16px; border: 1.5px solid var(--line); border-radius: 12px; font: inherit;
  background: var(--paper-2); transition: border-color .2s, background .2s; color: var(--ink);
}
.field input:focus, .field textarea:focus { outline: 0; border-color: var(--blue-400); background: var(--card); }
.field textarea { min-height: 120px; resize: vertical; }
.form-card .btn { width: 100%; justify-content: center; }

.site-footer { background: var(--navy-900); color: #c7d3ee; padding: 64px 0 26px; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 34px; }
.site-footer .brand { color: #fff; margin-bottom: 16px; }
.site-footer p { color: #93a4cb; font-size: 15px; }
.footer-col h4 { color: #fff; font-size: 16px; margin-bottom: 18px; }
.footer-col a { display: block; color: #9fb0d0; padding: 6px 0; font-size: 15px; transition: color .2s, padding-inline-start .2s; }
.footer-col a:hover { color: #fff; padding-inline-start: 6px; }
.socials { display: flex; gap: 12px; margin-top: 18px; }
.socials a { width: 42px; height: 42px; border-radius: 12px; background: rgba(255,255,255,.07); display: grid; place-items: center; color: #cdd9f3; transition: background .25s, transform .25s; }
.socials a:hover { background: var(--grad-blue); color: #fff; transform: translateY(-4px); }
.socials svg { width: 20px; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.08); margin-top: 44px; padding-top: 22px; text-align: center; color: #7d8fb8; font-size: 14px; }

/* Global Elementor footer refresh */
.rw-global-footer {
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  max-width: 100vw;
  padding: 0 0 24px;
  background:
    radial-gradient(760px 360px at 16% 6%, rgba(52,210,255,.22), transparent 62%),
    radial-gradient(620px 320px at 86% 18%, rgba(30,107,255,.20), transparent 60%),
    linear-gradient(145deg, #071225 0%, #0b1831 46%, #08101f 100%);
}
.rw-global-footer,
.rw-global-footer * {
  box-sizing: border-box;
}
.elementor-location-footer,
.rw-footer-con,
.rw-footer-con .elementor-widget-html,
.rw-footer-con .elementor-widget-container {
  width: 100%;
  max-width: 100vw;
  overflow-x: clip;
}
.rw-global-footer .container {
  width: 100%;
  max-width: var(--maxw);
  margin-inline: auto;
}
.rw-global-footer::before {
  opacity: .75;
  filter: drop-shadow(0 -12px 24px rgba(52,210,255,.08));
}
.rw-foot-glow {
  position: absolute;
  width: 260px;
  height: 260px;
  border-radius: 999px;
  pointer-events: none;
  z-index: -1;
  opacity: .28;
  filter: blur(28px);
  animation: rwFootFloat 10s ease-in-out infinite alternate;
}
.rw-foot-glow-a { top: 52px; right: 8%; background: #34d2ff; }
.rw-foot-glow-b { bottom: 80px; left: 10%; background: #1e6bff; animation-delay: -4s; }
.rw-foot-cta {
  padding: 58px 0 34px;
}
.rw-foot-cta-grid {
  display: grid;
  grid-template-columns: minmax(0,1.2fr) auto;
  align-items: center;
  gap: 28px;
  padding: 30px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 26px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.12), rgba(255,255,255,.045)),
    linear-gradient(120deg, rgba(30,107,255,.30), rgba(52,210,255,.11));
  box-shadow: 0 24px 70px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.16);
  backdrop-filter: blur(12px);
}
.rw-foot-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #8fe8ff;
  font-weight: 800;
  font-size: 13px;
  margin-bottom: 10px;
}
.rw-foot-kicker::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #34d2ff;
  box-shadow: 0 0 0 8px rgba(52,210,255,.13);
}
.rw-foot-cta h2 {
  color: #fff;
  margin: 0 0 10px;
  font-size: clamp(24px,3vw,36px);
  line-height: 1.45;
}
.rw-foot-cta p {
  max-width: 760px;
  margin: 0;
  color: #d8e5ff;
  font-size: 16px;
  line-height: 2;
}
.rw-foot-cta-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.rw-foot-primary,
.rw-foot-phone {
  min-height: 52px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  transition: transform .25s, box-shadow .25s, background .25s, color .25s;
}
.rw-foot-primary {
  padding: 0 24px;
  color: #071225;
  font-weight: 900;
  background: linear-gradient(120deg, #fff 0%, #dff8ff 48%, #34d2ff 100%);
  box-shadow: 0 14px 34px rgba(52,210,255,.25);
}
.rw-foot-phone {
  flex-direction: column;
  align-items: flex-start;
  min-width: 170px;
  padding: 8px 16px;
  color: #fff;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
}
.rw-foot-phone span { color: #9fb0d0; font-size: 12px; }
.rw-foot-phone b { color: #fff; letter-spacing: .2px; }
.rw-foot-primary:hover,
.rw-foot-phone:hover {
  transform: translateY(-4px);
  color: #fff;
}
.rw-foot-primary:hover {
  background: linear-gradient(120deg, #1e6bff, #34d2ff);
  box-shadow: 0 18px 42px rgba(30,107,255,.34);
}
.rw-foot-contact-band {
  border: 0;
  padding-bottom: 34px;
  margin-bottom: 40px;
}
.rw-foot-contact-band .fband {
  min-height: 92px;
  padding: 18px;
  border-radius: 20px;
  background: rgba(255,255,255,.055);
  border: 1px solid rgba(255,255,255,.09);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
.rw-foot-contact-band .fband:hover {
  transform: translateY(-5px);
  background: rgba(255,255,255,.09);
  box-shadow: 0 18px 42px rgba(0,0,0,.22);
}
.rw-foot-contact-band .fband-ic {
  border-radius: 16px;
  background: linear-gradient(145deg, rgba(52,210,255,.20), rgba(30,107,255,.20));
}
.rw-foot-grid {
  position: relative;
  grid-template-columns: minmax(260px,1.35fr) repeat(3,minmax(160px,1fr));
  gap: 28px;
}
.rw-foot-grid > * {
  min-width: 0;
}
.rw-foot-grid::before {
  content: "";
  position: absolute;
  inset: -22px -20px auto;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(52,210,255,.42), transparent);
}
.rw-foot-brand p {
  max-width: 420px;
  color: #b8c7e6;
  line-height: 2;
}
.rw-global-footer .brand--footer {
  max-width: 170px;
}
.rw-global-footer .brand--footer .brand-logo {
  max-width: 150px;
  height: auto;
  max-height: 92px;
  object-fit: contain;
}
.rw-foot-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 18px 0 6px;
}
.rw-foot-trust span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 4px 11px;
  border-radius: 999px;
  background: rgba(52,210,255,.10);
  color: #dbeafe;
  border: 1px solid rgba(52,210,255,.18);
  font-size: 12.5px;
  font-weight: 700;
}
.rw-global-footer .footer-col {
  padding: 4px 0;
}
.rw-global-footer .footer-col h4 {
  position: relative;
  margin-bottom: 18px;
  padding-bottom: 12px;
}
.rw-global-footer .footer-col h4::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 38px;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, #34d2ff, #1e6bff);
}
.rw-global-footer .footer-col a,
.rw-global-footer .foot-hours {
  border-radius: 12px;
  overflow-wrap: anywhere;
}
.rw-global-footer .footer-col a:hover {
  color: #fff;
  background: rgba(255,255,255,.055);
  padding-inline-start: 10px;
  padding-inline-end: 10px;
}
.rw-foot-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  text-align: initial;
}
.rw-foot-bottom a {
  color: #9fb0d0;
  margin-inline-start: 14px;
}
.rw-foot-bottom a:hover { color: #fff; }
@keyframes rwFootFloat {
  from { transform: translate3d(0,0,0) scale(1); }
  to { transform: translate3d(24px,-18px,0) scale(1.08); }
}
@media (max-width: 980px) {
  .rw-foot-cta-grid { grid-template-columns: 1fr; }
  .rw-foot-cta-actions { justify-content: flex-start; }
  .rw-foot-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
  .rw-global-footer { padding-bottom: 18px; }
  .elementor-location-footer,
  .rw-footer-con,
  .rw-global-footer {
    overflow-x: hidden;
  }
  .rw-global-footer .container {
    max-width: 100%;
    padding-inline: 14px;
  }
  .rw-foot-cta { padding-top: 42px; }
  .rw-foot-cta-grid { padding: 22px; border-radius: 20px; }
  .rw-foot-cta-actions { display: grid; grid-template-columns: 1fr; }
  .rw-foot-primary, .rw-foot-phone { width: 100%; }
  .rw-foot-grid { grid-template-columns: 1fr; }
  .rw-global-footer .footer-about,
  .rw-global-footer .footer-col {
    width: 100%;
    text-align: right;
  }
  .rw-global-footer .brand--footer .brand-logo {
    width: 96px;
    max-width: 96px;
  }
  .rw-foot-brand p { max-width: 100%; }
  .rw-foot-bottom { flex-direction: column; align-items: flex-start; }
  .rw-foot-bottom a { margin-inline-start: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .rw-foot-glow { animation: none !important; }
  .rw-foot-primary:hover,
  .rw-foot-phone:hover,
  .rw-foot-contact-band .fband:hover { transform: none; }
}

/* ============================================================
   PAGE HERO (inner pages)
   ============================================================ */
.page-hero { background: var(--grad-deep); color: #fff; padding: calc(var(--header-h) + 70px) 0 80px; text-align: center; position: relative; overflow: hidden; }
.page-hero::before { content:""; position: absolute; inset: 0; background: radial-gradient(600px 300px at 70% 10%, rgba(52,210,255,.2), transparent 60%); }
.page-hero h1 { color: #fff; font-size: clamp(30px,4.6vw,48px); position: relative; }
.page-hero .crumb { color: #aebfe6; margin-top: 14px; position: relative; }
.page-hero .crumb a:hover { color: #fff; }

/* ============================================================
   SCROLL REVEAL / ENTRANCE ANIMATIONS
   ============================================================ */
/* Content is VISIBLE BY DEFAULT â€” the entrance is a pure enhancement that can
   never leave a section hidden. JS adds `.in` (on scroll, or via a safety net);
   that just plays the keyframe. If the JS never runs, everything still shows. */
.reveal { opacity: 1; transform: none; }
.reveal.in { animation: revealIn .7s cubic-bezier(.2,.7,.2,1) both; }
@keyframes revealIn { from { opacity: 0; transform: translateY(34px); } to { opacity: 1; transform: none; } }
.reveal.in[data-d="1"]{ animation-delay:.08s } .reveal.in[data-d="2"]{ animation-delay:.16s }
.reveal.in[data-d="3"]{ animation-delay:.24s } .reveal.in[data-d="4"]{ animation-delay:.32s }
.reveal.in[data-d="5"]{ animation-delay:.40s } .reveal.in[data-d="6"]{ animation-delay:.48s }
.hero-anim { opacity: 0; transform: translateY(26px); animation: heroIn .9s cubic-bezier(.2,.7,.2,1) forwards; }
.hero-anim[data-d="1"]{ animation-delay:.15s } .hero-anim[data-d="2"]{ animation-delay:.3s }
.hero-anim[data-d="3"]{ animation-delay:.45s } .hero-anim[data-d="4"]{ animation-delay:.6s }
@keyframes heroIn { to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .reveal,.hero-anim { opacity: 1 !important; transform: none !important; animation: none !important; }
  .blob,.orbit,.glass-card { animation: none !important; }
  .ambient,
  .btn-primary, .text-grad, .hero h1 .text-grad,
  .hero::before, .page-hero::before, .section-pill span, .brand-logo,
  .section-head h2, .cta-inner, .pc-cat, .live-dot, .live-ring,
  .blob, .glass-card .ic, .lm-track { animation: none !important; }
  .ambient { display: none !important; }
}

/* ============================================================
   MOBILE  â€” clean header, NO redundant call/consult buttons
   ============================================================ */
@media (max-width: 980px) {
  .grid-3,.price-grid,.grid-2 { grid-template-columns: 1fr 1fr; }
  .features-grid { grid-template-columns: 1fr 1fr; }
  .hero .container { grid-template-columns: 1fr; }
  .hero-visual { height: 340px; order: -1; }
  .contact .wrap, .footer-grid { grid-template-columns: 1fr; }
  .footer-grid { gap: 26px; }
}
@media (max-width: 768px) {
  .section { padding: 64px 0; }
  /* header controls on phones (the drawer itself is defined in one block below) */
  .menu-toggle { display: block; margin-inline-start: 4px; }
  .header-actions { display: none; }
  .theme-toggle { margin-inline-start: auto; width: 40px; height: 40px; }
  .grid-3,.price-grid,.grid-2,.features-grid { grid-template-columns: 1fr; }
  .plan.featured { transform: none; } .plan.featured:hover { transform: translateY(-8px); }
  .form-row { grid-template-columns: 1fr; }
  .hero-stats { gap: 22px; } .hero-stats .num { font-size: 24px; }
  .cta-inner { padding: 38px 26px; text-align: center; justify-content: center; }
}
/* ============================================================
   MOBILE NAV DRAWER  (rebuilt 2026-06-22 â€” single source of truth)
   The slide-in "sidebar" menu on phones. Markup: <nav class="nav"> holding
   plain <a> links, <div class="has-dropdown"> accordion groups, and one
   <a class="nav-cta"> button. main.js toggles `.open` on .nav and `.show`
   on .nav-backdrop; backdrop / link clicks close it.
   ============================================================ */
@media (max-width: 768px) {
  /* the panel: full height, slides in from the right (RTL) */
  .nav {
    position: fixed; top: 0; right: 0; bottom: 0; left: auto;
    width: min(86vw, 340px); max-width: 340px;
    background: var(--card);
    box-shadow: -14px 0 44px rgba(8, 20, 50, .30);
    display: flex; flex-direction: column; align-items: stretch; gap: 0;
    padding: calc(var(--header-h) + 16px) 22px 28px;
    transform: translateX(100%);
    transition: transform .32s ease;
    z-index: 1000;
    overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
  }
  .nav.open { transform: translateX(0); }
  .nav::-webkit-scrollbar { width: 0; }

  /* links â€” always readable on the panel, in both light & dark themes */
  .nav a { display: block; width: 100%; color: var(--ink) !important;
    font-size: 16px; font-weight: 600; padding: 14px 2px;
    border-bottom: 1px solid var(--line); }
  .nav a::after { display: none !important; }            /* kill the desktop hover underline */
  .nav a:hover, .nav a.current { color: var(--blue-600) !important; }

  /* one clear call-to-action button, full width at the bottom of the drawer */
  .nav .nav-cta { display: flex !important; justify-content: center;
    width: 100%; margin-top: 20px; color: #fff !important; border-bottom: 0; }

  /* dropdown groups become tap-to-expand accordions (the "+" button) */
  .has-dropdown { position: relative; width: 100%; border-bottom: 1px solid var(--line); }
  .has-dropdown .dd-toggle { display: flex; width: 100%; padding: 14px 2px !important;
    border: 0 !important; color: var(--ink) !important; }
  .has-dropdown .dd-caret { display: none; }
  .dd-mobile-toggle { display: grid; place-items: center; position: absolute; top: 8px; left: 0;
    width: 38px; height: 38px; background: var(--paper-3); color: var(--blue-600);
    border: 0; border-radius: 10px; font-size: 22px; line-height: 1; cursor: pointer;
    transition: transform .3s, background .3s, color .3s; }
  .has-dropdown.open .dd-mobile-toggle { transform: rotate(45deg); background: var(--grad-blue); color: #fff; }
  .dropdown { position: static; width: 100%; opacity: 1; visibility: visible; transform: none;
    box-shadow: none; border: 0; padding: 0; max-height: 0; overflow: hidden;
    transition: max-height .32s ease; display: block; }
  .has-dropdown.open .dropdown { max-height: 1100px; padding-bottom: 8px; }
  .dropdown .dd-item { padding: 11px 8px !important; border-bottom: 0 !important; color: var(--ink) !important; }
  .dropdown .dd-ic { width: 38px; height: 38px; }
}

/* dim backdrop behind the open drawer */
.nav-backdrop { position: fixed; inset: 0; background: rgba(6, 15, 41, .5);
  opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s; z-index: 999; }
.nav-backdrop.show { opacity: 1; visibility: visible; }

/* ============================================================
   HEADER MENU — beautify (desktop dropdown done above; here: the
   hamburger→× morph and the mobile slide-out drawer polish)
   ============================================================ */
.menu-toggle span { transition: transform .32s cubic-bezier(.2,.8,.2,1), opacity .2s ease; transform-origin: center; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7.4px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; transform: scaleX(.3); }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7.4px) rotate(-45deg); }

@media (max-width: 768px) {
  .menu-toggle { position: relative; z-index: 1001; }
  /* the drawer: rounded leading edge, deeper float, hairline border */
  .nav {
    border-radius: 24px 0 0 24px;
    box-shadow: -22px 0 60px rgba(8, 20, 50, .34);
    border-inline-start: 1px solid color-mix(in srgb, var(--line) 60%, transparent);
  }
  /* a quiet "منو" label strip at the top of the drawer */
  .nav::before {
    content: "منو"; display: block; font-size: 12px; font-weight: 800; letter-spacing: 3px;
    color: var(--muted); padding: 0 4px 12px; margin-bottom: 6px;
    border-bottom: 1px dashed color-mix(in srgb, var(--line) 80%, transparent);
  }
  /* top-level links become soft tappable rows */
  .nav > a { border-radius: 12px; padding-inline: 10px !important; }
  .nav > a:hover, .nav > a.current { background: var(--paper-2); }
  /* an expanded group gets an inset panel so its items read as a set */
  .has-dropdown.open { background: var(--paper-2); border-radius: 16px; padding-bottom: 4px; border-bottom-color: transparent; }
  .has-dropdown.open .dd-toggle { color: var(--blue-600) !important; }
  .dropdown::after { display: none; }            /* the desktop top-accent bar — off inside the accordion */
  .dropdown .dd-item { border-radius: 12px; margin: 0 4px; }
  .dropdown .dd-item:hover,
  .dropdown .dd-item.current { background: color-mix(in srgb, var(--blue-600) 10%, var(--paper-2)) !important; }
  .dropdown .dd-item:hover .dd-text b,
  .dropdown .dd-item.current .dd-text b { color: var(--blue-600) !important; }
  /* refined "+" expander */
  .dd-mobile-toggle { box-shadow: var(--shadow-sm); }
  /* soften + blur the backdrop */
  .nav-backdrop { background: rgba(6, 15, 41, .55); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
}

/* the nav CTA duplicates the header CTA on desktop â€” hide it only there */
@media (min-width: 769px) { .nav .nav-cta { display: none; } }

/* ============================================================
   SCROLL PROGRESS BAR
   ============================================================ */
.scroll-progress {
  position: fixed; top: 0; right: 0; height: 3px; width: 0%;
  background: var(--grad-blue); z-index: 200; transition: width .1s linear;
}

/* ============================================================
   FILTERABLE PORTFOLIO
   ============================================================ */
.filter-bar { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-bottom: 40px; }
.filter-btn {
  border: 1.5px solid var(--line); background: var(--card); color: var(--muted);
  font: inherit; font-weight: 700; font-size: 15px; padding: 10px 22px; border-radius: 100px;
  cursor: pointer; transition: all .25s;
}
.filter-btn:hover { border-color: var(--blue-400); color: var(--blue-600); }
.filter-btn.active { background: var(--grad-blue); color: #fff; border-color: transparent; box-shadow: var(--shadow-blue); }
.work.hide { display: none; }
[data-cat].hide { display: none !important; }
.work { animation: workIn .5s both; }
/* filter bar sitting on the dark pricing background */
.pricing .filter-btn { background: rgba(255,255,255,.06); color: #c3d2f0; border-color: rgba(255,255,255,.16); }
.pricing .filter-btn:hover { color: #fff; border-color: rgba(255,255,255,.4); }
.pricing .filter-btn.active { background: var(--grad-blue); color: #fff; border-color: transparent; }
@keyframes workIn { from { opacity: 0; transform: scale(.94) } to { opacity: 1; transform: none } }

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.testi-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.testi {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 30px;
  position: relative; transition: transform .3s, box-shadow .3s;
}
.testi:hover { transform: translateY(-8px); box-shadow: var(--shadow-lg); }
.testi .quote { font-size: 54px; line-height: .6; color: var(--paper-3); font-family: Georgia, serif; height: 22px; }
.testi p { color: var(--ink); font-size: 15.5px; margin: 10px 0 22px; }
.testi .who { display: flex; align-items: center; gap: 13px; }
.testi .av { width: 48px; height: 48px; border-radius: 50%; background: var(--grad-blue); color: #fff; display: grid; place-items: center; font-weight: 800; flex: none; }
.testi .who b { display: block; font-size: 15px; } .testi .who small { color: var(--muted); }
.stars { display: flex; gap: 3px; margin-top: 14px; color: #ffb020; }
.stars svg { width: 16px; fill: currentColor; stroke: none; }

/* ============================================================
   FAQ ACCORDION
   ============================================================ */
.faq-wrap { max-width: 820px; margin: 0 auto; display: grid; gap: 14px; }
.faq-item { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; transition: box-shadow .25s; }
.faq-item.open { box-shadow: var(--shadow-md); border-color: transparent; }
.faq-q {
  width: 100%; text-align: right; background: none; border: 0; font: inherit; font-weight: 700; font-size: 17px;
  color: var(--ink); padding: 20px 24px; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 14px;
}
.faq-q .pm { width: 30px; height: 30px; flex: none; border-radius: 50%; background: var(--paper-3); color: var(--blue-600); display: grid; place-items: center; transition: transform .3s, background .3s, color .3s; font-size: 20px; }
.faq-item.open .pm { background: var(--grad-blue); color: #fff; transform: rotate(45deg); }
.faq-a { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.faq-a p { padding: 0 24px 22px; color: var(--muted); font-size: 15.5px; line-height: 1.9; }

/* ============================================================
   BLOG
   ============================================================ */
.blog-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 26px; }
.post-card {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden;
  display: flex; flex-direction: column; transition: transform .3s, box-shadow .3s, border-color .3s;
}
.post-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-lg); border-color: transparent; }
.pc-thumb { position: relative; display: block; aspect-ratio: 16/10; overflow: hidden; }
.pc-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.post-card:hover .pc-thumb img { transform: scale(1.06); }
.pc-thumb::after { content:""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(6,15,41,.35), transparent 60%); }
.pc-date { position: absolute; bottom: 12px; right: 12px; z-index: 2; background: rgba(255,255,255,.92); color: var(--blue-600); font-weight: 700; font-size: 12.5px; padding: 5px 12px; border-radius: 100px; }
.pc-body { padding: 24px; display: flex; flex-direction: column; flex: 1; }
.pc-body h3 { font-size: 19px; line-height: 1.5; margin-bottom: 10px; }
.pc-body h3 a:hover { color: var(--blue-600); }
.pc-body p { color: var(--muted); font-size: 15px; flex: 1; }
.pc-body .more { margin-top: 16px; display: inline-flex; align-items: center; gap: 7px; color: var(--blue-600); font-weight: 700; font-size: 15px; }
.pc-body .more svg { width: 18px; transition: transform .25s; }
.post-card:hover .more svg { transform: translateX(-5px); }

.blog-pagination { margin-top: 44px; text-align: center; }
.blog-pagination .page-numbers {
  display: inline-grid; place-items: center; min-width: 44px; height: 44px; padding: 0 12px; margin: 0 4px;
  border-radius: 12px; border: 1.5px solid var(--line); background: var(--card); color: var(--ink); font-weight: 700; transition: all .2s;
}
.blog-pagination .page-numbers:hover { border-color: var(--blue-400); color: var(--blue-600); }
.blog-pagination .page-numbers.current { background: var(--grad-blue); color: #fff; border-color: transparent; }

/* ---- Single post typography ---- */
.post-body .reveal { font-size: 17px; line-height: 2.05; color: #2a3658; }
.post-body h2 { font-size: 26px; margin: 38px 0 16px; }
.post-body h3 { font-size: 21px; margin: 28px 0 12px; }
.post-body p { margin-bottom: 18px; }
.post-body ul, .post-body ol { margin: 0 22px 20px 0; display: grid; gap: 10px; }
.post-body li { list-style: disc; color: #2a3658; }
.post-body a { color: var(--blue-600); font-weight: 600; }
.post-body blockquote { border-right: 4px solid var(--blue-500); background: var(--paper-2); padding: 16px 22px; border-radius: 0 12px 12px 0; margin: 0 0 20px; color: var(--ink); }
.post-foot { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 44px; padding-top: 28px; border-top: 1px solid var(--line); }

/* ============================================================
   SINGLE POST â€” two-column layout (text left, sidebar right)
   ============================================================ */
.single-layout { display: grid; grid-template-columns: 320px 1fr; gap: 40px; align-items: start; }
.single-main { min-width: 0; }
.single-main .post-body, .single-main.post-body { max-width: none; }

.single-sidebar { position: sticky; top: 90px; display: grid; gap: 22px; }
.widget { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 22px; box-shadow: var(--shadow-sm); }
.widget-title { font-size: 18px; margin-bottom: 16px; padding-right: 14px; position: relative; }
.widget-title::before { content:""; position: absolute; right: 0; top: 4px; bottom: 4px; width: 4px; border-radius: 4px; background: var(--grad-blue); }
.widget .search-form { min-width: 0; }

.widget-cats { display: grid; gap: 4px; }
.widget-cats a { display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; border-radius: 11px; color: var(--ink); font-weight: 600; font-size: 15px; transition: background .2s, color .2s; }
.widget-cats a:hover, .widget-cats a.on { background: var(--paper-2); color: var(--blue-600); }
.widget-cats a span { background: var(--paper-3); color: var(--blue-600); font-size: 12.5px; font-weight: 700; min-width: 26px; text-align: center; padding: 2px 8px; border-radius: 100px; }
.widget-cats a:hover span, .widget-cats a.on span { background: var(--grad-blue); color: #fff; }

.widget-posts { display: grid; gap: 14px; }
.widget-posts a { display: flex; gap: 12px; align-items: center; }
.wp-thumb { position: relative; width: 64px; height: 64px; flex: none; border-radius: 12px; overflow: hidden; }
.wp-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.wp-thumb .pc-ico svg { width: 26px; height: 26px; }
.wp-body { min-width: 0; }
.wp-body b { display: block; font-size: 14px; font-weight: 700; line-height: 1.6; color: var(--ink); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; transition: color .2s; }
.widget-posts a:hover .wp-body b { color: var(--blue-600); }
.wp-body small { color: var(--muted); font-size: 12.5px; }

.widget-cta { background: var(--grad-deep); border: 0; color: #fff; text-align: center; }
.widget-cta h3 { color: #fff; font-size: 18px; margin-bottom: 8px; }
.widget-cta p { color: #c4d3f5; font-size: 14px; margin-bottom: 18px; }
.widget-cta .btn { width: 100%; justify-content: center; }

.share-row { display: flex; align-items: center; gap: 10px; margin-bottom: 26px; flex-wrap: wrap; }
.share-lbl { font-weight: 700; color: var(--muted); font-size: 14px; }
.share-btn { width: 40px; height: 40px; border-radius: 50%; border: 0; cursor: pointer; display: grid; place-items: center; color: #fff; transition: transform .2s, opacity .2s; }
.share-btn:hover { transform: translateY(-3px); }
.share-btn svg { width: 19px; }
.s-tg { background: #229ed2; } .s-wa { background: #25d366; } .s-in { background: #0a66c2; } .s-cp { background: var(--blue-600); }

@media (max-width: 960px) {
  .single-layout { grid-template-columns: 1fr; }
  .single-main { order: 1; }
  .single-sidebar { order: 2; position: static; grid-template-columns: 1fr 1fr; }
  .widget-cta { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .single-sidebar { grid-template-columns: 1fr; }
}

/* ---- Homepage latest-articles section uses .blog-grid too ---- */
@media (max-width: 980px) { .blog-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 768px) { .blog-grid { grid-template-columns: 1fr; } .post-foot .btn { flex: 1; justify-content: center; } }

/* ---- Blog toolbar: search + category pills ---- */
.blog-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin-bottom: 40px; }
.cat-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.cat-pill {
  display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px; border-radius: 100px;
  border: 1.5px solid var(--line); background: var(--card); color: var(--muted); font-weight: 700; font-size: 14.5px; transition: all .22s;
}
.cat-pill:hover { border-color: var(--blue-400); color: var(--blue-600); }
.cat-pill.active { background: var(--grad-blue); color: #fff; border-color: transparent; box-shadow: var(--shadow-blue); }
.cat-pill .cnt { font-size: 12px; background: var(--paper-3); color: var(--blue-600); border-radius: 100px; padding: 1px 8px; }
.cat-pill.active .cnt { background: rgba(255,255,255,.25); color: #fff; }

.search-form { position: relative; display: flex; min-width: 240px; }
.search-field {
  width: 100%; padding: 12px 18px 12px 48px; border: 1.5px solid var(--line); border-radius: 100px;
  font: inherit; background: var(--paper-2); color: var(--ink); transition: border-color .2s, background .2s;
}
.search-field:focus { outline: 0; border-color: var(--blue-400); background: var(--card); }
.search-submit {
  position: absolute; left: 5px; top: 50%; transform: translateY(-50%); width: 38px; height: 38px;
  border: 0; border-radius: 50%; background: var(--grad-blue); color: #fff; cursor: pointer; display: grid; place-items: center;
}
.search-submit svg { width: 18px; }

/* ---- Category badge + cover icon on cards ---- */
.pc-cat { position: relative; z-index: 1; align-self: flex-start; display: inline-block; margin-bottom: 10px; font-size: 12.5px; font-weight: 700; color: var(--blue-600); background: var(--paper-3); padding: 4px 12px; border-radius: 100px; }
.pc-cat:hover { background: var(--blue-600); color: #fff; }
.pc-ico { position: absolute; inset: 0; display: grid; place-items: center; color: rgba(255,255,255,.85); z-index: 1; }
.pc-ico svg { width: 56px; height: 56px; opacity: .9; }

/* ---- Featured (wide) article card ---- */
.post-card--wide { grid-column: 1 / -1; flex-direction: row; }
.post-card--wide .pc-thumb { width: 46%; aspect-ratio: auto; min-height: 320px; flex: none; }
.post-card--wide .pc-ico svg { width: 84px; height: 84px; }
.post-card--wide .pc-body { padding: 40px; justify-content: center; }
.post-card--wide .pc-body h3 { font-size: 27px; }
.post-card--wide .pc-body p { flex: none; font-size: 16px; margin-top: 6px; }
@media (max-width: 820px) {
  .post-card--wide { flex-direction: column; }
  .post-card--wide .pc-thumb { width: 100%; min-height: 0; aspect-ratio: 16/10; }
  .post-card--wide .pc-body { padding: 24px; }
  .post-card--wide .pc-body h3 { font-size: 21px; }
}

/* ---- Single-post cover hero (main photo) ---- */
.single-hero {
  position: relative; padding: calc(var(--header-h) + 70px) 0 56px; color: #fff;
  background-size: cover; background-position: center; text-align: center; overflow: hidden;
}
.single-hero::before { content:""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,15,41,.55), rgba(6,15,41,.82)); }
.single-hero .container { position: relative; z-index: 1; max-width: 860px; }
.single-hero .crumb { color: #c9d6f5; } .single-hero .crumb a:hover { color: #fff; }
.single-hero h1 { color: #fff; font-size: clamp(26px, 4.2vw, 44px); line-height: 1.4; margin-top: 12px; }
.sh-excerpt { max-width: 680px; margin: 18px auto 0; color: #dbe6ff; font-size: 17px; line-height: 1.9; }
.sh-cat { display: inline-flex; align-items: center; gap: 8px; background: var(--grad-blue); color: #fff; font-weight: 700; font-size: 14px; padding: 7px 16px; border-radius: 100px; margin-top: 6px; box-shadow: var(--shadow-blue); }
.sh-cat .sh-ic { display: grid; place-items: center; } .sh-cat svg { width: 16px; }
.sh-meta { display: flex; gap: 22px; justify-content: center; flex-wrap: wrap; margin-top: 20px; color: #d3def7; font-size: 14.5px; }
.sh-meta span { display: inline-flex; align-items: center; gap: 7px; } .sh-meta svg { width: 17px; }

/* ---- Single-post editorial enhancements ---- */
.scroll-progress { position: fixed; z-index: 1200; top: 0; right: 0; width: 0; height: 4px; background: var(--grad-blue); box-shadow: 0 1px 8px rgba(30,107,255,.35); transition: width .08s linear; }
.article-copy { max-width: 760px; margin-inline: auto; }
.article-copy > :first-child { margin-top: 0; }
.article-copy img { max-width: 100%; height: auto; border-radius: var(--r-md); }
.article-copy h2, .article-copy h3 { scroll-margin-top: 105px; }
.post-toc { max-width: 760px; margin: 0 auto 34px; padding: 22px 24px; background: var(--paper-2); border: 1px solid var(--line); border-right: 4px solid var(--blue-500); border-radius: 0 var(--r-lg) var(--r-lg) 0; }
.post-toc-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.post-toc-head strong { color: var(--ink); font-size: 18px; }
.toc-kicker, .author-kicker { color: var(--blue-600); font-size: 12px; font-weight: 800; letter-spacing: .02em; }
.post-toc ol { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.post-toc li { list-style: none; margin: 0; }
.post-toc .toc-level-3 { padding-right: 18px; }
.post-toc a { display: block; color: var(--muted); font-size: 14.5px; line-height: 1.75; font-weight: 600; }
.post-toc a:hover { color: var(--blue-600); }
.post-author { max-width: 760px; margin: 42px auto 0; padding: 20px 22px; display: flex; align-items: center; gap: 16px; background: var(--paper-2); border: 1px solid var(--line); border-radius: var(--r-lg); }
.author-avatar, .author-avatar img { width: 72px; height: 72px; border-radius: 50%; flex: none; }
.author-avatar { overflow: hidden; background: var(--paper-3); }
.author-copy { min-width: 0; display: grid; gap: 3px; }
.author-copy strong { font-size: 18px; }
.author-copy strong a { color: var(--ink); }
.author-copy strong a:hover { color: var(--blue-600); }
.author-copy p { margin: 4px 0 0; color: var(--muted); font-size: 14px; line-height: 1.8; }
.post-nav { max-width: 760px; margin: 26px auto 0; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.post-nav-card { position: relative; min-height: 112px; padding: 18px 20px; display: flex; flex-direction: column; justify-content: center; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow-sm); transition: transform .2s, border-color .2s, box-shadow .2s; }
.post-nav-card:hover { transform: translateY(-3px); border-color: var(--blue-400); box-shadow: var(--shadow-md); }
.post-nav-card span { color: var(--muted); font-size: 12px; font-weight: 800; margin-bottom: 6px; }
.post-nav-card strong { color: var(--ink); font-size: 15px; line-height: 1.7; padding-left: 26px; }
.post-nav-card em { position: absolute; top: 50%; transform: translateY(-50%); color: var(--blue-600); font-style: normal; }
.post-nav-prev em { right: 16px; } .post-nav-prev strong, .post-nav-prev span { padding-right: 24px; }
.post-nav-next em { left: 16px; } .post-nav-next strong, .post-nav-next span { padding-left: 24px; }
.post-nav-next em svg { transform: rotate(180deg); }

/* ---- Post tags ---- */
.post-tags { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.post-tags span { color: var(--muted); font-weight: 700; }
.post-tags a { background: var(--paper-2); border: 1px solid var(--line); color: var(--blue-600); font-weight: 600; font-size: 14px; padding: 5px 14px; border-radius: 100px; }
.post-tags a:hover { background: var(--blue-600); color: #fff; border-color: transparent; }

@media (max-width: 768px) {
  .blog-toolbar { flex-direction: column; align-items: stretch; }
  .search-form { min-width: 0; }
}

@media (max-width: 560px) {
  .single-hero { padding-bottom: 42px; }
  .sh-excerpt { font-size: 15px; line-height: 1.8; margin-top: 14px; }
  .sh-meta { gap: 10px 16px; font-size: 13px; }
  .post-toc { padding: 18px; margin-bottom: 26px; }
  .post-toc-head { align-items: flex-start; flex-direction: column; gap: 3px; }
  .post-author { align-items: flex-start; padding: 18px; }
  .post-nav { grid-template-columns: 1fr; }
  .post-nav-card { min-height: 96px; }
}

/* ============================================================
   BLOG â€” meharat-style featured block + horizontal rows (blue)
   ============================================================ */
.blog-featured { background: var(--grad-deep); padding: calc(var(--header-h) + 46px) 0 64px; position: relative; overflow: hidden; }
.blog-featured::before { content:""; position: absolute; inset: 0; background: radial-gradient(700px 360px at 80% 10%, rgba(52,210,255,.16), transparent 60%), radial-gradient(600px 400px at 10% 90%, rgba(30,107,255,.22), transparent 60%); }
.bf-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.5fr 1fr; gap: 22px; }

.bf-main { position: relative; display: block; border-radius: var(--r-lg); overflow: hidden; min-height: 410px; box-shadow: var(--shadow-lg); }
.bf-main img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.bf-main:hover img { transform: scale(1.05); }
.bf-main .pc-ico svg { width: 96px; height: 96px; }
.bf-main::after { content:""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(6,15,41,.92), rgba(6,15,41,.1) 72%); }
.bf-main-body { position: absolute; inset-inline: 0; bottom: 0; z-index: 1; padding: 30px; color: #fff; }
.bf-main-body h3 { color: #fff; font-size: 25px; line-height: 1.5; margin: 12px 0 8px; }
.bf-main-body p { color: #cdd9f3; font-size: 15px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.bf-date { display: inline-flex; align-items: center; gap: 6px; color: #aebfe6; font-size: 13.5px; margin-top: 12px; } .bf-date svg { width: 15px; }

.bf-side { display: grid; grid-template-rows: repeat(3, 1fr); gap: 16px; }
.bf-item { display: flex; gap: 13px; align-items: center; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); border-radius: var(--r-md); padding: 12px; transition: background .25s, transform .25s; }
.bf-item:hover { background: rgba(255,255,255,.11); transform: translateX(-5px); }
.bf-thumb { position: relative; width: 80px; height: 80px; flex: none; border-radius: 12px; overflow: hidden; }
.bf-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bf-thumb .pc-ico svg { width: 30px; height: 30px; }
.bf-it-body { min-width: 0; }
.bf-it-body h4 { color: #fff; font-size: 14.5px; line-height: 1.6; margin: 6px 0 4px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.bf-item .pc-cat { background: rgba(255,255,255,.15); color: #dbe8ff; }
.bf-item .bf-date { margin-top: 0; font-size: 12.5px; }

.section-pill { text-align: center; margin-bottom: 34px; }
.section-pill span { display: inline-block; background: var(--grad-blue); color: #fff; font-weight: 800; font-size: 18px; padding: 11px 30px; border-radius: 100px; box-shadow: var(--shadow-blue); }

.rows-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.post-row { display: flex; gap: 16px; background: var(--paper-2); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 14px; transition: transform .3s, box-shadow .3s, border-color .3s, background .3s; }
.post-row:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); border-color: transparent; background: var(--card); }
.post-row:nth-child(4n+2), .post-row:nth-child(4n+3) { background: var(--paper-3); }
.post-row:hover { background: var(--card); }
.pr-thumb { position: relative; width: 132px; height: 132px; flex: none; border-radius: 14px; overflow: hidden; }
.pr-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.post-row:hover .pr-thumb img { transform: scale(1.07); }
.pr-thumb .pc-ico svg { width: 42px; height: 42px; }
.pr-body { display: flex; flex-direction: column; min-width: 0; padding: 4px 2px; }
.pr-body h3 { font-size: 16.5px; line-height: 1.6; color: var(--ink); margin: 8px 0 6px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.post-row:hover .pr-body h3 { color: var(--blue-600); }
.pr-body p { color: var(--muted); font-size: 13.5px; line-height: 1.8; flex: 1; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pr-meta { display: flex; align-items: center; justify-content: space-between; margin-top: 12px; font-size: 13px; color: var(--muted); }
.pr-more { display: inline-flex; align-items: center; gap: 5px; color: var(--blue-600); font-weight: 700; }
.pr-more svg { width: 15px; transition: transform .25s; }
.post-row:hover .pr-more svg { transform: translateX(-4px); }

@media (max-width: 980px) {
  .bf-grid { grid-template-columns: 1fr; }
  .bf-side { grid-template-rows: none; grid-template-columns: 1fr 1fr 1fr; }
  .rows-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .bf-main { min-height: 320px; } .bf-main-body h3 { font-size: 20px; }
  .bf-side { grid-template-columns: 1fr; }
  .section-pill span { font-size: 16px; }
  .pr-thumb { width: 104px; height: 104px; }
  .pr-body h3 { font-size: 15px; }
}
@media (max-width: 420px) {
  .post-row { flex-direction: column; }
  .pr-thumb { width: 100%; height: 170px; }
}

/* ============================================================
   CATALOG PAGE
   ============================================================ */
.grid-4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 22px; }
.cat-track { display: flex; align-items: center; gap: 11px; font-size: 20px; color: var(--ink); margin: 6px 0 22px; padding-bottom: 14px; border-bottom: 2px solid var(--line); }
.cat-track svg { width: 24px; color: var(--blue-600); flex: none; }
.pricing .cat-track { color: #fff; border-color: rgba(255,255,255,.14); }
.cat-qty { display: inline-block; align-self: flex-start; margin-bottom: 14px; font-weight: 800; font-size: 14px; color: #fff; background: var(--grad-blue); padding: 5px 14px; border-radius: 100px; box-shadow: var(--shadow-blue); }
.cat-list { display: grid; gap: 13px; margin-top: 4px; }
.cat-list li { position: relative; padding-right: 22px; color: var(--muted); font-size: 15px; line-height: 1.85; }
.cat-list li::before { content:""; position: absolute; right: 0; top: 11px; width: 9px; height: 9px; border-radius: 50%; background: var(--grad-blue); }
.cat-list b { color: var(--ink); }
@media (max-width: 980px) { .grid-4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .grid-4 { grid-template-columns: 1fr; } .cat-track { font-size: 18px; } }

/* ============================================================
   FLOATING ACTION BUTTONS (WhatsApp + Back-to-top)
   ============================================================ */
.fab-stack { position: fixed; bottom: 22px; right: 22px; z-index: 120; display: flex; flex-direction: column; gap: 12px; }
.fab {
  width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; color: #fff;
  box-shadow: var(--shadow-md); cursor: pointer; border: 0; transition: transform .25s, opacity .25s, visibility .25s;
}
.fab svg { width: 26px; }
.fab-wa { background: #25d366; animation: fabPulse 2.4s infinite; }
.fab-wa:hover { transform: scale(1.1); }
.fab-top { background: var(--grad-blue); opacity: 0; visibility: hidden; }
.fab-top.show { opacity: 1; visibility: visible; }
.fab-top:hover { transform: translateY(-4px); }
@keyframes fabPulse { 0%{ box-shadow: 0 0 0 0 rgba(37,211,102,.5) } 70%{ box-shadow: 0 0 0 14px rgba(37,211,102,0) } 100%{ box-shadow: 0 0 0 0 rgba(37,211,102,0) } }

/* ============================================================
   RESPONSIVE â€” new components + finer mobile tuning
   ============================================================ */
@media (max-width: 980px) {
  .testi-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
  :root { --header-h: 64px; }
  .container { padding-inline: 16px; }
  .section-head { margin-bottom: 38px; }
  .section-head h2 { font-size: 26px; }
  .hero { min-height: auto; padding-block: calc(var(--header-h) + 40px) 56px; }
  .hero h1 { font-size: 30px; line-height: 1.4; }
  .hero p { font-size: 16px; }
  .hero-actions { width: 100%; }
  .hero-actions .btn { flex: 1; justify-content: center; }
  .hero-stats { flex-wrap: wrap; gap: 18px 26px; margin-top: 34px; }
  .hero-visual { height: 300px; }
  .blob { width: 220px; height: 220px; } .orbit { width: 280px; height: 280px; }
  .glass-card { padding: 10px 13px; } .glass-card .s { display: none; }
  .gc-1 { right: 0; } .gc-3 { right: auto; left: 0; }
  .testi-grid { grid-template-columns: 1fr; }
  .trust .container { justify-content: center; text-align: center; }
  .trust .t-logos { gap: 22px; justify-content: center; font-size: 17px; }
  .filter-bar { gap: 9px; }
  .filter-btn { padding: 8px 16px; font-size: 14px; }
  .faq-q { font-size: 15.5px; padding: 16px 18px; }
  .cta-inner h2 { font-size: 22px; }
  .fab-stack { bottom: 16px; right: 16px; }
  .fab { width: 50px; height: 50px; }
  .page-hero { padding-block: calc(var(--header-h) + 46px) 56px; }
  .page-hero h1 { font-size: 28px; }
}
@media (max-width: 420px) {
  .hero-stats > div { flex: 1 0 40%; }
  .btn { font-size: 15px; padding: 12px 20px; }
}

/* (Mobile dropdown accordions are now defined in the consolidated
   MOBILE NAV DRAWER block above â€” single source of truth.) */

/* ============================================================
   ABOUT â€” team + info cards
   ============================================================ */
.team-card { display: flex; gap: 20px; align-items: center; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 28px; transition: transform .3s, box-shadow .3s, border-color .3s; }
.team-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); border-color: transparent; }
.team-av { width: 86px; height: 86px; flex: none; border-radius: 50%; background: var(--grad-blue); color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 26px; box-shadow: var(--shadow-blue); }
.team-info h3 { font-size: 21px; }
.team-role { display: inline-block; color: var(--blue-600); font-weight: 700; font-size: 14px; margin: 5px 0 9px; }
.team-info p { color: var(--muted); font-size: 14.5px; }

.info-card { display: block; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 32px 26px; text-align: center; transition: transform .3s, box-shadow .3s, border-color .3s; }
.info-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-lg); border-color: transparent; }
.info-card .ci { width: 64px; height: 64px; border-radius: 18px; background: var(--paper-3); color: var(--blue-600); display: grid; place-items: center; margin: 0 auto 18px; transition: background .3s, color .3s; }
.info-card:hover .ci { background: var(--grad-blue); color: #fff; }
.info-card .ci svg { width: 28px; }
.info-card h3 { font-size: 19px; margin-bottom: 8px; }
.info-card p { color: var(--muted); font-size: 15px; line-height: 1.9; }
.info-card small { color: var(--muted); font-size: 13px; }
.info-link { display: inline-flex; align-items: center; gap: 6px; color: var(--blue-600); font-weight: 700; font-size: 14px; margin-top: 14px; }
.info-link svg { width: 16px; transition: transform .25s; }
.info-card:hover .info-link svg { transform: translateX(-5px); }

/* ============================================================
   FOOTER â€” contact band + richer contact column
   ============================================================ */
.footer-band { border-bottom: 1px solid rgba(255,255,255,.08); padding-bottom: 30px; margin-bottom: 40px; }
.footer-band-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.fband { display: flex; align-items: center; gap: 14px; color: #c7d3ee; transition: color .2s; }
.fband:hover { color: #fff; }
.fband-ic { width: 50px; height: 50px; flex: none; border-radius: 14px; background: rgba(255,255,255,.07); display: grid; place-items: center; color: var(--cyan-400); transition: background .25s, color .25s, transform .25s; }
.fband:hover .fband-ic { background: var(--grad-blue); color: #fff; transform: translateY(-3px); }
.fband-ic svg { width: 22px; }
.fband small { display: block; color: #8fa1c8; font-size: 12.5px; }
.fband b { font-size: 15px; color: #fff; font-weight: 700; }
.footer-contact-col a { display: flex; align-items: flex-start; gap: 9px; }
.footer-contact-col a svg { width: 17px; flex: none; margin-top: 5px; color: var(--cyan-400); }
.foot-hours { display: flex; align-items: center; gap: 9px; color: #9fb0d0; font-size: 14px; padding: 6px 0; }
.foot-hours svg { width: 17px; color: var(--cyan-400); }
@media (max-width: 768px) { .footer-band-grid { grid-template-columns: 1fr; gap: 14px; } }

/* ============================================================
   CUSTOM CURSOR (mouse theme)
   ============================================================ */
html,
body {
  cursor: url("../img/cursors/glass-arrow-light.svg") 3 2, auto;
}
html.theme-dark,
html.theme-dark body {
  cursor: url("../img/cursors/glass-arrow-dark.svg") 3 2, auto;
}
a,
button,
[role="button"],
[role="tab"],
summary,
label[for],
select,
input[type="button"],
input[type="submit"],
input[type="reset"],
input[type="checkbox"],
input[type="radio"],
input[type="range"] {
  cursor: pointer !important;
}
input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]),
textarea,
[contenteditable="true"] {
  cursor: text !important;
}
:disabled,
[aria-disabled="true"] { cursor: not-allowed !important; }
[draggable="true"] { cursor: grab; }
[draggable="true"]:active { cursor: grabbing; }
@media (hover: none), (pointer: coarse) {
  html, body { cursor: auto; }
}

/* ============================================================
   STYLED SCROLLBAR (browser theme)
   ============================================================ */
* { scrollbar-width: thin; scrollbar-color: var(--blue-500) var(--paper-2); }
::-webkit-scrollbar { width: 12px; height: 12px; }
::-webkit-scrollbar-track { background: var(--paper-2); }
::-webkit-scrollbar-thumb { background: linear-gradient(var(--blue-600), var(--cyan-400)); border-radius: 100px; border: 3px solid var(--paper-2); }
::-webkit-scrollbar-thumb:hover { background: var(--blue-600); }
::selection { background: var(--blue-500); color: #fff; }

/* team grid = 2 columns (override legacy .grid-2) */
.team-grid { grid-template-columns: 1fr 1fr; gap: 24px; }
@media (max-width: 768px) { .team-grid { grid-template-columns: 1fr; } }

/* ============================================================
   INTERESTING HOVERS + SCROLL ANIMATION VARIANTS
   ============================================================ */
/* Button sheen sweep */
.btn { position: relative; overflow: hidden; }
.btn > * { position: relative; z-index: 1; }
.btn::after { content:""; position: absolute; top: 0; bottom: 0; left: -120%; width: 55%; z-index: 0;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.38), transparent); transform: skewX(-18deg); transition: left .6s ease; }
.btn:hover::after { left: 150%; }
.btn-outline::after { background: linear-gradient(100deg, transparent, rgba(30,107,255,.18), transparent); }

/* Widget hover lift */
.widget { transition: transform .3s, box-shadow .3s; }
.widget:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }

/* Animated gradient ring on key cards */
.info-card, .team-card, .plan { position: relative; }
.info-card::after, .team-card::after, .plan::after {
  content:""; position: absolute; inset: 0; border-radius: inherit; padding: 1.6px; pointer-events: none; opacity: 0; transition: opacity .3s;
  background: linear-gradient(135deg, var(--blue-500), var(--cyan-400));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
}
.info-card:hover::after, .team-card:hover::after, .plan:hover::after { opacity: 1; }

/* 3D tilt prep */
.card, .work, .info-card, .team-card, .plan, .post-card { transform-style: preserve-3d; }

/* Icon pop on card hover (extra) */
.feature:hover .fic, .card:hover .icon { animation: iconPop .5s ease; }
@keyframes iconPop { 0%,100% { } 40% { transform: translateY(-8px) scale(1.12) rotate(-6deg); } }

/* Scroll-reveal direction variants (auto-assigned by JS). Default state is
   visible (no offset); each direction only animates when `.in` is added, so a
   missed reveal never leaves content shifted/hidden. */
.reveal.in[data-anim="right"] { animation-name: revealRight; }
.reveal.in[data-anim="left"]  { animation-name: revealLeft; }
.reveal.in[data-anim="scale"] { animation-name: revealScale; }
.reveal.in[data-anim="up"]    { animation-name: revealIn; }
@keyframes revealRight { from { opacity: 0; transform: translateX(44px); }  to { opacity: 1; transform: none; } }
@keyframes revealLeft  { from { opacity: 0; transform: translateX(-44px); } to { opacity: 1; transform: none; } }
@keyframes revealScale { from { opacity: 0; transform: scale(.9); }        to { opacity: 1; transform: none; } }

/* ============================================================
   SVG DECORATIVE BACKGROUNDS
   ============================================================ */
/* faint dot texture on light/transparent sections */
body { background-color: var(--paper); background-image: url("../img/dots.svg"); }

/* line-grid overlay on dark sections */
.pricing   { background-image: url("../img/grid.svg"), var(--grad-deep); }
.page-hero { background-image: url("../img/grid.svg"), var(--grad-deep); }
.blog-featured { background-image: url("../img/grid.svg"), var(--grad-deep); }

/* wave divider rising into the footer */
.site-footer { position: relative; }
.site-footer::before {
  content:""; position: absolute; left: 0; right: 0; top: 0; height: 78px;
  transform: translateY(-99%); background: url("../img/wave.svg") no-repeat; background-size: 100% 100%; pointer-events: none;
}

/* blob accents */
.contact { position: relative; overflow: hidden; }
.contact::before {
  content:""; position: absolute; width: 440px; height: 440px; top: -130px; left: -130px; z-index: 0;
  background: url("../img/blob.svg") no-repeat center/contain; opacity: .07; pointer-events: none;
}
.contact .container { position: relative; z-index: 1; }

/* ============================================================
   LIVE / AMBIENT ANIMATIONS  (always-running, RTL-safe, offline)
   ============================================================ */

/* 1) Flowing gradient on primary buttons & gradient text */
.btn-primary {
  background: linear-gradient(110deg, #1e6bff 0%, #34d2ff 50%, #1e6bff 100%);
  background-size: 220% 100%;
  animation: gradFlow 6s linear infinite;
}
.text-grad, .hero h1 .text-grad {
  background: linear-gradient(120deg,#34d2ff,#9ec3ff,#34d2ff);
  background-size: 220% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: gradFlow 7s linear infinite;
}
@keyframes gradFlow { to { background-position: -220% 0; } }

/* 2) Breathing aurora glow inside the dark hero & page-hero */
.hero::before { animation: auroraBreathe 12s ease-in-out infinite; }
.page-hero::before { animation: auroraBreathe 13s ease-in-out infinite; }
.page-hero > .container { position: relative; z-index: 1; }
@keyframes auroraBreathe {
  0%,100% { transform: translate3d(0,0,0) scale(1);   opacity: .9; }
  50%     { transform: translate3d(0,-14px,0) scale(1.06); opacity: 1; }
}

/* 3) Living blob: float + breathe */
.blob { animation: float 6s ease-in-out infinite, blobBreathe 9s ease-in-out infinite; }
@keyframes blobBreathe {
  /* glow "breathes" via box-shadow only â€” animating filter:blur() forced a
     full re-rasterization of the blurred orb every frame (paint flicker). The
     static blur(2px) on .blob stays. */
  0%,100% { box-shadow: 0 40px 90px rgba(30,107,255,.45); }
  50%     { box-shadow: 0 50px 120px rgba(52,210,255,.6); }
}
.glass-card .ic { animation: icBob 4.5s ease-in-out infinite; }
@keyframes icBob { 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-5px) } }

/* 4) Floating ambient particles (injected by JS into .hero & .page-hero) */
.ambient { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 1; }
.ambient i {
  position: absolute; bottom: -12px; display: block; border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #9ee6ff, #34d2ff 60%, rgba(30,107,255,0) 72%);
  opacity: 0; animation: floatUp linear infinite;
}
@keyframes floatUp {
  0%   { transform: translateY(0) translateX(0) scale(.6); opacity: 0; }
  12%  { opacity: .9; }
  85%  { opacity: .55; }
  100% { transform: translateY(-115vh) translateX(var(--drift,20px)) scale(1); opacity: 0; }
}

/* 5) Pulsing glow on section pills & brand logo */
.section-pill span { animation: glowPulse 3.4s ease-in-out infinite; }
@keyframes glowPulse {
  0%,100% { box-shadow: var(--shadow-blue); }
  50%     { box-shadow: 0 0 0 6px rgba(30,107,255,.18), 0 18px 40px rgba(52,210,255,.5); }
}
.brand-logo { animation: logoFloat 5s ease-in-out infinite; }
@keyframes logoFloat { 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-3px) } }

/* 6) Shimmer sweep across section headings */
.section-head h2 { position: relative; overflow: hidden; }
.section-head h2::after {
  content:""; position: absolute; top: 0; left: -60%; width: 45%; height: 100%;
  background: linear-gradient(100deg, transparent, rgba(52,210,255,.28), transparent);
  transform: skewX(-18deg); animation: sweep 5.5s ease-in-out infinite; pointer-events: none;
}
@keyframes sweep { 0%,60%{ left:-60% } 100%{ left:130% } }

/* 7) CTA panel slow gradient drift + breathing orbs */
.cta-inner {
  background: linear-gradient(125deg,#1e6bff,#34d2ff,#1e6bff);
  background-size: 200% 200%; animation: ctaDrift 10s ease infinite;
}
@keyframes ctaDrift { 0%,100%{ background-position: 0% 50% } 50%{ background-position: 100% 50% } }

/* 8) Slow rotating decorative blob on contact */
.contact::before { animation: spinSlow 40s linear infinite; }
@keyframes spinSlow { to { transform: rotate(360deg); } }

/* 9) Twinkle for portfolio card icon overlays */
.pc-ico svg { animation: twinkle 3s ease-in-out infinite; }
@keyframes twinkle { 0%,100%{ opacity:.85; transform:scale(1) } 50%{ opacity:.4; transform:scale(.92) } }

/* ============================================================
   BRAND LOGO MARQUEE  (moving slide of trusted brands)
   ============================================================ */
.trust .container { justify-content: center; padding-bottom: 14px; }
.trust .t-lbl { display: block; text-align: center; }
.logo-marquee {
  position: relative; overflow: hidden; padding: 6px 0 20px;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.lm-track { display: flex; direction: ltr; width: max-content; align-items: center; animation: marquee 30s linear infinite; }
.logo-marquee:hover .lm-track { animation-play-state: paused; }
.lm-item {
  display: inline-flex; align-items: center;
  font-weight: 800; font-size: 23px; color: #9fb0d0; white-space: nowrap; letter-spacing: .3px;
  margin-inline-start: 60px;   /* per-item gap â†’ perfectly periodic loop */
  opacity: .8; transition: color .25s, opacity .25s, transform .25s;
}
.lm-item:hover { color: var(--blue-600); opacity: 1; transform: translateY(-2px); }
@keyframes marquee { to { transform: translateX(-50%); } }

/* Brand logos in the marquee (shown instead of the name when a logo exists) */
.lm-item--logo { opacity: 1; }
.lm-logo {
  display: block; height: 34px; width: auto; max-width: 130px;
  object-fit: contain; object-position: center;
  filter: grayscale(1); opacity: .65;
  transition: filter .25s, opacity .25s, transform .25s;
}
.lm-item--logo:hover .lm-logo { filter: grayscale(0); opacity: 1; transform: translateY(-2px); }
.lm-name { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (max-width: 640px) { .lm-logo { height: 26px; max-width: 100px; } }

/* ============================================================
   GENERIC SLIDER / CAROUSEL  (auto-advancing)
   ============================================================ */
.slider { position: relative; overflow: visible; padding: 8px 58px 6px; }
/* clip horizontally (so slides don't bleed into the arrow gutters) while
   leaving vertical room for card hover-lift and shadows */
.slider-viewport { clip-path: inset(-40px 0px -40px 0px); }
.slider-track { --gap: 24px; display: flex; gap: var(--gap); will-change: transform; transition: transform .6s cubic-bezier(.22,.7,.2,1); }
.slider-track > .slide {
  flex: 0 0 calc((100% - (var(--per,3) - 1) * var(--gap)) / var(--per,3));
  min-width: 0;
}
/* arrows */
.slider-arrow {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
  width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid var(--line);
  background: var(--card); color: var(--blue-600); cursor: pointer;
  display: grid; place-items: center; box-shadow: var(--shadow-md);
  transition: transform .25s, background .25s, color .25s, opacity .25s;
}
.slider-arrow:hover { background: var(--grad-blue); color: #fff; border-color: transparent; transform: translateY(-50%) scale(1.08); }
.slider-arrow svg { width: 20px; height: 20px; }
.slider-next { left: 8px; }    /* RTL: forward arrow on the left, inside the gutter  */
.slider-prev { right: 8px; }   /* RTL: back arrow on the right, inside the gutter    */
.slider-arrow[disabled] { opacity: .35; cursor: default; pointer-events: none; }
/* dots */
.slider-dots { display: flex; justify-content: center; gap: 9px; margin-top: 22px; }
.slider-dots button {
  width: 9px; height: 9px; border-radius: 50%; border: 0; padding: 0; cursor: pointer;
  background: var(--line); transition: width .3s, background .3s;
}
.slider-dots button.on { width: 26px; border-radius: 6px; background: var(--grad-blue); }
@media (max-width: 768px) {
  .slider { padding-inline: 4px; }   /* no arrow gutters needed */
  .slider-arrow { display: none; }   /* phones swipe instead */
  .slider-track { --gap: 16px; }
}

/* ============================================================
   "WHY US" FEATURES  â†’  two-column cards
   ============================================================ */
.features-grid { grid-template-columns: 1fr 1fr; gap: 20px; max-width: 920px; margin: 0 auto; }
.feature {
  text-align: right; display: flex; gap: 18px; align-items: flex-start; padding: 26px 28px;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm); transition: transform .3s, box-shadow .3s, border-color .3s;
}
.feature:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); border-color: transparent; }
.feature .fic { margin: 0; flex: none; }
.feature h3 { margin-bottom: 6px; }
@media (max-width: 768px) { .features-grid { grid-template-columns: 1fr; } }

/* ============================================================
   HEADER  â€” richer & mobile-friendly
   ============================================================ */
.site-header.scrolled { border-bottom: 1px solid var(--line); }
.site-header.scrolled::after {
  content:""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px;
  background: var(--grad-blue); opacity: .65;
}
.site-header { position: fixed; } /* (keeps anchor for ::after) */

/* Profile pages start with a dark hero, but the global header must remain
   readable before the first scroll in the light theme as well. */
html:not(.theme-dark) body.single-rasa_person .site-header:not(.scrolled) {
  background: rgba(255,255,255,.94);
  color: #0c1736;
  border-bottom: 1px solid #e6ecf7;
  box-shadow: 0 10px 30px rgba(15,23,42,.06);
  backdrop-filter: blur(16px);
}
html:not(.theme-dark) body.single-rasa_person .site-header:not(.scrolled) :is(.nav a,.dd-toggle) { color: #0c1736; }
html:not(.theme-dark) body.single-rasa_person .site-header:not(.scrolled) :is(.nav a,.dd-toggle):hover,
html:not(.theme-dark) body.single-rasa_person .site-header:not(.scrolled) :is(.nav a,.dd-toggle).current { color: #1e6bff; }
html:not(.theme-dark) body.single-rasa_person .site-header:not(.scrolled) .brand-logo { filter: none; }
html:not(.theme-dark) body.single-rasa_person .site-header:not(.scrolled) .theme-toggle {
  background: #f4f8ff;
  color: #1e6bff;
  border-color: #e6ecf7;
}

@media (max-width: 768px) {
  /* always give the bar a defined, frosted look so the logo & buttons pop */
  .site-header { background: var(--header-bg); backdrop-filter: blur(14px); box-shadow: 0 6px 22px rgba(15,38,87,.10); height: 64px; }
  .site-header:not(.scrolled) .brand-logo { filter: none; }   /* logo no longer over dark hero */
  /* header icon-buttons: equal size, clearly defined in BOTH light & dark
     themes (a neutral translucent fill so they never blend into the bar),
     and the hamburger lines flex-centred inside the button */
  .menu-toggle, .theme-toggle {
    width: 42px; height: 42px; box-shadow: var(--shadow-sm);
    background: rgba(120, 134, 170, .16); border: 1.5px solid rgba(120, 134, 170, .34);
  }
  .theme-toggle { border-radius: 50%; }
  .menu-toggle { border-radius: 13px; display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 5px; }
  .menu-toggle span { margin: 0; width: 22px; }
  .site-header:not(.scrolled) .menu-toggle { color: var(--ink); }
}

/* ============================================================
   HERO â€” beautiful & engaging on phones
   ============================================================ */
@media (max-width: 860px) {
  .hero { min-height: auto; padding-bottom: 60px; }
  .hero .container { grid-template-columns: 1fr; gap: 36px; text-align: center; }
  .hero-copy { max-width: 600px; margin: 0 auto; }
  .hero-actions, .hero-stats { justify-content: center; }
  .hero-stats { gap: 28px; }
  .hero .eyebrow { margin-inline: auto; }
}
@media (max-width: 860px) {
  .hero-visual { height: 340px; order: -1; }   /* show the lively visual ABOVE the text */
  .orbit { width: 290px; height: 290px; }
  .blob { width: 230px; height: 230px; }
}
/* phones: a single clean glowing orb â€” the floating cards overlap on narrow
   screens, so we hide them here and let the breathing orb + particles carry it */
@media (max-width: 600px) {
  .hero-visual { height: 240px; max-width: 320px; margin: 0 auto; }
  .hero-visual .glass-card { display: none !important; }
  .blob { width: 170px; height: 170px; }
  .orbit { width: 230px; height: 230px; }
}
@media (max-width: 480px) {
  .hero h1 { font-size: 29px; line-height: 1.32; }
  .hero p { font-size: 16px; }
  .hero-stats { gap: 16px; } .hero-stats .num { font-size: 22px; }
}

/* rasa-home-hero-fix: keep the orb centered while it floats. The old
   `float` keyframes replaced the centering transform, so right:50% aligned
   the orb's edge instead of its center. */
.hero .blob {
  animation: rasaBlobFloat 6s ease-in-out infinite, blobBreathe 9s ease-in-out infinite;
}
@keyframes rasaBlobFloat {
  0%,100% { transform: translate(50%, -50%) translateY(0); }
  50%     { transform: translate(50%, -50%) translateY(-16px); }
}

/* Elementor's page CSS can reapply the global dark ink token inside the hero.
   The hero always sits on the deep blue surface, so its copy must stay light
   in both theme modes. */
.hero .hero-copy h1,
.hero .hero-copy .elementor-heading-title,
.hero .hero-copy p,
.hero .hero-stats .lbl {
  color: #fff !important;
}
.hero .hero-copy p { color: #c4d3f5 !important; }
.elementor .hero .hero-copy .elementor-widget-text-editor p {
  color: #c4d3f5 !important;
}

/* Remove the leftover inset edges from Elementor's absolute-positioning
   normalization so the orbit and orb use the exact same geometric center. */
.hero .orbit,
.hero .blob {
  inset: auto;
  top: 50%;
  right: 50%;
  left: auto;
  bottom: auto;
  margin: 0;
}

/* 3D brand mark replaces the old glowing orb while keeping the orbit motion. */
.hero .blob { display: none !important; }
.hero .hero-logo-3d {
  position: absolute;
  top: 50%;
  right: 50%;
  width: 280px;
  height: 280px;
  object-fit: contain;
  transform: translate(50%, -50%);
  filter: drop-shadow(0 28px 34px rgba(0,0,0,.34)) drop-shadow(0 0 24px rgba(52,210,255,.28));
  animation: rasaLogoFloat 6s ease-in-out infinite;
  z-index: 1;
}
@keyframes rasaLogoFloat {
  0%,100% { transform: translate(50%, -50%) translateY(0) rotate(-2deg); }
  50%     { transform: translate(50%, -50%) translateY(-10px) rotate(2deg); }
}
@media (max-width: 860px) {
  .hero .hero-logo-3d { width: 230px; height: 230px; }
}
@media (max-width: 600px) {
  .hero .hero-visual {
    width: min(100%, 320px) !important;
    min-width: 0 !important;
    justify-self: center;
  }
  .hero .hero-logo-3d {
    width: 170px !important;
    min-width: 170px !important;
    max-width: none !important;
    height: 170px !important;
    flex: 0 0 170px !important;
  }
}

/* Header uses the same 3D mark, with contrast-safe treatment in both themes. */
.site-header .brand-logo,
.elementor .site-header .brand-logo {
  width: 54px;
  height: 54px;
  max-width: none;
  object-fit: contain;
  filter: drop-shadow(0 3px 5px rgba(0,0,0,.62)) drop-shadow(0 0 9px rgba(52,210,255,.42)) !important;
  opacity: 1;
}
.site-header.scrolled .brand-logo,
.elementor .site-header.scrolled .brand-logo {
  width: 46px;
  height: 46px;
}
@media (max-width: 768px) {
  .site-header .brand-logo,
  .elementor .site-header .brand-logo {
    width: 46px;
    height: 46px;
  }
  .site-header.scrolled .brand-logo,
  .elementor .site-header.scrolled .brand-logo {
    width: 42px;
    height: 42px;
  }
}

#services { position: relative; overflow: hidden; }
#services::before {
  content:""; position: absolute; width: 380px; height: 380px; top: -120px; right: -120px; z-index: 0;
  background: url("../img/blob.svg") no-repeat center/contain; opacity: .06; pointer-events: none;
}
#services .container { position: relative; z-index: 1; }

/* ===== Elementor hybrid compatibility =====
   When the original markup lives inside Elementor HTML widgets, Elementor's
   `.elementor img { height:auto }` (specificity 0,1,1) overrides the single-class
   `.brand-logo` height. Re-assert the header logo sizing at matching specificity. */
.elementor .site-header .brand-logo { height: 54px; width: auto; }
.elementor .site-header.scrolled .brand-logo { height: 46px; }
@media (max-width: 768px) {
  .elementor .site-header .brand-logo { height: 46px; }
  .elementor .site-header.scrolled .brand-logo { height: 42px; }
}
/* The header logo vanished on mobile: inside the Elementor HTML widget the brand
   anchor lost its `display:flex`, so on phones (where the theme-toggle's
   `margin-inline-start:auto` removes all free space) the logo collapsed to 0 width.
   Re-assert the brand as a non-shrinking flex box and uncap/auto-size the logo so
   it always keeps its intrinsic size. Match `.elementor .site-header` specificity. */
.elementor .site-header .brand { display: flex !important; flex: 0 0 auto; align-items: center; }
/* width:auto on the logo collapses to 0 inside the flex row (Elementor's
   `.elementor img{height:auto}` defeats intrinsic sizing & aspect-ratio here), so
   pin an explicit width to match each height (logo.png is 1000Ã—1156, ratio .865). */
.elementor .site-header .brand-logo { width: 47px; max-width: none; flex: 0 0 auto; }
.elementor .site-header.scrolled .brand-logo { width: 40px; }
@media (max-width: 768px) {
  .elementor .site-header .brand-logo { width: 40px; }
  .elementor .site-header.scrolled .brand-logo { width: 36px; }
}
/* Brand marquee logos: same fight as the header logo. Inside the Elementor HTML
   widget, `.elementor img{height:auto}` (0,1,1) beat `.lm-logo` (0,1,0) and the
   logos rendered at full natural size. Re-assert at matching specificity. */
.elementor .lm-logo { height: 34px; width: auto; max-width: 130px; flex: 0 0 auto; }
@media (max-width: 640px) { .elementor .lm-logo { height: 26px; max-width: 100px; } }

/* Elementor widgets default to a max-width container; let our full-bleed
   sections control their own width. */
.elementor-widget-html .elementor-widget-container { overflow: visible; }

/* ============================================================
   NATIVE-ELEMENTOR BRIDGE
   Lets the original rasaweb classes drive layout on native
   Elementor widgets by neutralising Elementor's auto wrapper
   divs (so the original direct-child grids/flex see real
   children), and re-applying the .btn look to native buttons.
   Scoped to page/single content so header/footer are untouched.
   ============================================================ */
.page :is(.rw-section,.elementor-section) .elementor-widget-wrap,
.single :is(.rw-section,.elementor-section) .elementor-widget-wrap { display: contents; }
.page :is(.rw-section,.elementor-section) .elementor-widget:not(.elementor-widget-html),
.page :is(.rw-section,.elementor-section) .elementor-widget:not(.elementor-widget-html) > .elementor-widget-container,
.single :is(.rw-section,.elementor-section) .elementor-widget:not(.elementor-widget-html),
.single :is(.rw-section,.elementor-section) .elementor-widget:not(.elementor-widget-html) > .elementor-widget-container { display: contents; }
.page :is(.rw-section,.elementor-section) .e-con > .e-con-inner,
.single :is(.rw-section,.elementor-section) .e-con > .e-con-inner { display: contents; }
/* containers must fill the column instead of shrink-wrapping to content
   (original rasaweb grids are block-level full width); narrow blocks like
   .section-head / .hero-copy still cap themselves via their own max-width */
.page :is(.rw-section,.elementor-section) .e-con, .single :is(.rw-section,.elementor-section) .e-con { width: 100%; }
.page :is(.rw-section,.elementor-section) > .elementor-container,
.single :is(.rw-section,.elementor-section) > .elementor-container { display: block; width: 100%; max-width: none; padding: 0; margin: 0; }
.page .elementor-widget-html > .elementor-widget-container,
.single .elementor-widget-html > .elementor-widget-container { display: block; }

/* native button â†’ rasaweb .btn */
.page .btn .elementor-button,
.single .btn .elementor-button {
  display: inline-flex; align-items: center; gap: 8px; font-family: inherit;
  font-weight: 700; font-size: 15px; line-height: 1.85; padding: 11px 22px;
  border-radius: 100px; border: 0; cursor: pointer; white-space: nowrap;
  transition: transform .25s, box-shadow .25s, background .25s;
}
.page .btn .elementor-button svg, .single .btn .elementor-button svg { width: 18px; height: 18px; }
.page .btn-primary .elementor-button, .single .btn-primary .elementor-button { background: var(--grad-blue); color: #fff; box-shadow: var(--shadow-blue); }
.page .btn-primary .elementor-button:hover, .single .btn-primary .elementor-button:hover { transform: translateY(-3px); box-shadow: 0 24px 50px rgba(30,107,255,.45); }
.page .btn-ghost .elementor-button, .single .btn-ghost .elementor-button { background: rgba(255,255,255,.08); color: #fff; border: 1px solid rgba(255,255,255,.25); }
.page .btn-ghost .elementor-button:hover, .single .btn-ghost .elementor-button:hover { background: rgba(255,255,255,.16); transform: translateY(-3px); }
.page .btn-outline .elementor-button, .single .btn-outline .elementor-button { background: var(--card); color: var(--blue-600); border: 1.6px solid var(--line); box-shadow: var(--shadow-sm); }
.page .btn-outline .elementor-button:hover, .single .btn-outline .elementor-button:hover { border-color: var(--blue-400); transform: translateY(-3px); box-shadow: var(--shadow-md); }
.page .elementor-button-wrapper, .single .elementor-button-wrapper { display: inline-block; }
/* .btn is now a display:contents wrapper, so its ::after sheen mis-positions â€” suppress it */
.page .btn::after, .single .btn::after { content: none; }

/* Elementor containers default to flex-column; restore row for original row-flex blocks */
.page .hero-actions, .single .hero-actions { flex-direction: row; flex-wrap: wrap; }
.page .hero-stats, .single .hero-stats { flex-direction: row; }
.page .cta-inner, .single .cta-inner { flex-direction: row; }
.page .who, .single .who { flex-direction: row; }

/* ============================================================
   NATIVE ICON / LIST / PILL BRIDGE
   Maps Elementor's native Icon, Icon-List & Heading widgets onto
   the original rasaweb look (so we no longer need HTML islands for
   service/feature icons, "more" links, plan lists, and pills).
   ============================================================ */

/* -- native Icon widget: collapse its inner wrapper so .elementor-icon
      becomes the styled box that the original .icon / .fic provided -- */
.page .card .elementor-widget-icon .elementor-icon-wrapper,
.page .feature .elementor-widget-icon .elementor-icon-wrapper { display: contents; }

.page .card .elementor-widget-icon .elementor-icon {
  width: 62px; height: 62px; border-radius: 18px; background: var(--paper-3); color: var(--blue-600);
  display: grid; place-items: center; margin-bottom: 22px; font-size: 30px;
  transition: background .35s, color .35s, transform .35s;
}
.page .card:hover .elementor-widget-icon .elementor-icon { background: var(--grad-blue); color: #fff; transform: rotate(-6deg) scale(1.06); }
.page .card .elementor-widget-icon .elementor-icon svg { width: 30px; height: 30px; }

.page .feature .elementor-widget-icon .elementor-icon {
  width: 72px; height: 72px; border-radius: 50%; margin: 0 auto 18px; background: var(--paper-3); color: var(--blue-600);
  display: grid; place-items: center; font-size: 32px;
  transition: transform .3s, background .3s, color .3s;
}
.page .feature:hover .elementor-widget-icon .elementor-icon { background: var(--grad-blue); color: #fff; transform: translateY(-6px); }
.page .feature .elementor-widget-icon .elementor-icon svg { width: 32px; height: 32px; }

/* -- native Button used as the plain ".more" text-link with trailing arrow -- */
.page .card .more .elementor-button {
  margin-top: 18px; display: inline-flex; align-items: center; gap: 7px;
  color: var(--blue-600); font-weight: 700; font-size: 15px;
  background: none; border: none; box-shadow: none; padding: 0; border-radius: 0;
}
.page .card .more .elementor-button:hover { background: none; transform: none; }
.page .card .more .elementor-button .elementor-button-icon { display: inline-flex; }
.page .card .more .elementor-button .elementor-button-icon svg { width: 18px; height: 18px; transition: transform .25s; }
.page .card:hover .more .elementor-button .elementor-button-icon svg { transform: translateX(-5px); }
.page .more::after { content: none; }

/* -- native Icon-List widget used for plan feature lists -- */
.page .plan .elementor-icon-list-items { margin: 22px 0 28px; padding: 0; display: grid; gap: 13px; list-style: none; }
.page .plan .elementor-icon-list-item { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0; border: none; }
.page .plan .elementor-icon-list-item:not(:last-child) { border-bottom: none; padding-bottom: 0; margin-bottom: 0; }
.page .plan .elementor-icon-list-icon { display: flex; align-items: center; }
.page .plan .elementor-icon-list-icon svg { width: 19px; height: 19px; color: var(--cyan-400); }
.page .plan .elementor-icon-list-text { color: #d6e1f7; font-size: 15px; padding: 0; }

/* -- pills/labels as native Heading widgets: re-establish their box,
      since the global display:contents bridge would otherwise flatten them -- */
.page :is(.rw-section,.elementor-section) .elementor-widget.eyebrow,
.page :is(.rw-section,.elementor-section) .elementor-widget.badge { display: inline-flex !important; }
.page :is(.rw-section,.elementor-section) .elementor-widget.t-lbl,
.page :is(.rw-section,.elementor-section) .elementor-widget.price { display: block !important; }
.page .elementor-widget.eyebrow .elementor-heading-title,
.page .elementor-widget.badge .elementor-heading-title,
.page .elementor-widget.t-lbl .elementor-heading-title,
.page .elementor-widget.price .elementor-heading-title { font: inherit; color: inherit; margin: 0; }

/* ============================================================
   NATIVE BRIDGE â€” inner pages (catalog / about / services)
   ============================================================ */

/* light eyebrow variant (page-hero & dark pricing heads) */
.page .eyebrow--light { background: rgba(255,255,255,.12); color: #dbe8ff; }
.page .eyebrow--light::before { background: var(--cyan-400); }

/* cat-qty pill as native heading */
.page :is(.rw-section,.elementor-section) .elementor-widget.cat-qty { display: inline-block !important; align-self: flex-start; }
.page .elementor-widget.cat-qty .elementor-heading-title { font: inherit; color: inherit; margin: 0; }

/* cat-track: native container (icon + heading inline) */
.page .cat-track { flex-direction: row; align-items: center; }
.page .cat-track .elementor-icon-wrapper, .page .cat-track .elementor-icon { display: contents; }
.page .cat-track .elementor-icon svg { width: 24px; height: 24px; color: var(--blue-600); flex: none; }
.page .cat-track .elementor-heading-title { font: inherit; color: inherit; margin: 0; }

/* card_list head (icon + title) + the plain styled list via text-editor */
.page .cat-list-head { flex-direction: row; align-items: center; gap: 10px; margin-bottom: 14px; }
.page .cat-list-head .elementor-icon-wrapper, .page .cat-list-head .elementor-icon { display: contents; }
.page .cat-list-head .elementor-icon svg { width: 24px; height: 24px; color: var(--blue-600); flex: none; }

/* plan optional description line */
.page .plan .plan-desc p { color: #b9c8ec; font-size: 14.5px; margin: 8px 0 6px; }

/* team cards as native containers */
.page .team-card { flex-direction: row; align-items: center; }
.page :is(.rw-section,.elementor-section) .elementor-widget.team-av { display: grid !important; }
.page .elementor-widget.team-av .elementor-heading-title { font: inherit; color: inherit; margin: 0; }
.page :is(.rw-section,.elementor-section) .elementor-widget.team-role { display: inline-block !important; }
.page .elementor-widget.team-role .elementor-heading-title { font: inherit; color: inherit; margin: 0; }

/* ============================================================
   TYPOGRAPHY BRIDGE â€” native Heading/Text/Button/List widgets
   must use the rasaweb type system (RasaSans / RasaDisplay +
   theme colors), NOT the Elementor Kit globals (Roboto / Roboto
   Slab / #7A7A7A) that post-XX.css applies to widgets.
   ============================================================ */
.page .elementor-heading-title,
.single .elementor-heading-title {
  font-family: "RasaSans", Tahoma, "Segoe UI", sans-serif !important;
  color: var(--ink) !important;   /* force theme ink so the Elementor Kit can't wash headings out (dark-on-dark) */
  font-weight: 800;
  line-height: 1.4;
}
.page h1.elementor-heading-title, .page h2.elementor-heading-title,
.single h1.elementor-heading-title, .single h2.elementor-heading-title {
  font-family: var(--font-display) !important;
  line-height: 1.5;
}
.page .elementor-widget-text-editor, .page .elementor-widget-text-editor p,
.page .elementor-icon-list-item, .page .elementor-icon-list-text,
.page .elementor-button, .page .elementor-button-text,
.single .elementor-widget-text-editor, .single .elementor-widget-text-editor p,
.single .elementor-icon-list-item, .single .elementor-icon-list-text,
.single .elementor-button, .single .elementor-button-text {
  font-family: "RasaSans", Tahoma, "Segoe UI", sans-serif !important;
}
/* default body-text colour for native text widgets â€” forced so the Elementor
   Kit's light grey (#7A7A7A) can never win and leave text unreadable. Contextual
   rules below restate their own colour with !important where a lighter tone is wanted. */
.page .elementor-widget-text-editor, .page .elementor-widget-text-editor p,
.single .elementor-widget-text-editor, .single .elementor-widget-text-editor p { color: var(--ink) !important; }
/* card / feature / section descriptions keep the (now-darker) muted tone, readable in both themes */
.page .card .elementor-widget-text-editor, .page .card .elementor-widget-text-editor p,
.page .feature .elementor-widget-text-editor, .page .feature .elementor-widget-text-editor p,
.page .section-head .elementor-widget-text-editor, .page .section-head .elementor-widget-text-editor p,
.single .card .elementor-widget-text-editor p, .single .feature .elementor-widget-text-editor p { color: var(--muted) !important; }

/* ============================================================
   WP ADMIN BAR â€” offset the fixed header & scroll bar so the
   logged-in toolbar (32px / 46px mobile) doesn't cover them.
   ============================================================ */
body.admin-bar .site-header { top: 32px; }
body.admin-bar .scroll-progress { top: 32px; }
@media screen and (max-width: 782px) {
  body.admin-bar .site-header { top: 46px; }
  body.admin-bar .scroll-progress { top: 46px; }
}

/* ============================================================
   HEADER/FOOTER FULL-WIDTH + PILL WIDTH FIXES
   ============================================================ */
.rw-header-con, .rw-footer-con { width: 100%; max-width: 100%; padding: 0; --content-width: 100%; }
.rw-header-con > .elementor-widget, .rw-footer-con > .elementor-widget,
.rw-header-con .elementor-widget-html, .rw-footer-con .elementor-widget-html,
.rw-header-con .site-header, .rw-footer-con .site-footer { width: 100% !important; max-width: 100% !important; }

/* pills/labels must hug their text, not stretch to the flex column width */
.page :is(.rw-section,.elementor-section) .elementor-widget.eyebrow,
.page :is(.rw-section,.elementor-section) .elementor-widget.badge,
.page :is(.rw-section,.elementor-section) .elementor-widget.t-lbl,
.single :is(.rw-section,.elementor-section) .elementor-widget.eyebrow {
  width: fit-content !important; max-width: 100%;
}
.page .section-head, .single .section-head,
.page .page-hero .container, .page .trust .container { align-items: center; }

/* ============================================================
   BLOG â€” centered hero, single-row filter bar, full-width post grid
   ============================================================ */
/* The site-wide bridge flattens Elementor wrappers (display:contents) on .page
   content â€” that turned the blog heading into a 0-width flex item (text pushed
   to the right) and made the pagination a flex SIBLING of the grid (the "1 2"
   floating beside card 1). Restore normal block flow for the hero + posts. */
.blog-head .elementor-widget-wrap, .blog-head .elementor-widget,
.blog-head .elementor-widget .elementor-widget-container,
.blog-list .elementor-widget-wrap, .blog-list .elementor-widget-posts,
.blog-list .elementor-widget-posts > .elementor-widget-container { display: block !important; }

/* #1 hero centered + subtitle ; #7 tight spacing under it */
.blog-head { padding-block: calc(var(--header-h) + 26px) 0; text-align: center; }
.blog-head .elementor-heading-title { text-align: center !important; width: 100%; }
.blog-head .elementor-widget-text-editor,
.blog-head .elementor-widget-text-editor p {
  text-align: center; color: var(--muted) !important; font-size: 17px; margin-top: 6px;
}

/* #2 + #7 single-row filter bar, modest top gap */
.blog-filters { padding-block: 14px 8px; }
.blog-filter-bar .elementor-widget-wrap,
.blog-filter-bar .elementor-element-populated {
  display: flex !important; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm); padding: 16px 18px;
}
/* dissolve the Elementor widget wrappers so the JSF filter roots become the
   flex items (the bridge's display:contents fragmented them otherwise) */
.blog-filter-bar .elementor-widget,
.blog-filter-bar .elementor-widget > .elementor-widget-container { display: contents !important; }
.blog-filter-bar .jet-smart-filters-search.jet-filter { flex: 1 1 240px; min-width: 0; }
.blog-filter-bar .jet-smart-filters-select.jet-filter { flex: 0 0 210px; }
.blog-filter-bar .jet-smart-filters-apply-button { flex: 0 0 auto; }
.blog-filter-bar .jet-search-filter,
.blog-filter-bar .jet-search-filter__input-wrapper { width: 100%; }
.blog-filter-bar .jet-search-filter__input,
.blog-filter-bar select.jet-select__control {
  width: 100% !important; max-width: 100% !important; height: 48px; box-sizing: border-box;
  padding: 12px 16px; border: 1px solid var(--line); border-radius: 12px;
  background: var(--paper); color: var(--ink); font-family: inherit; font-size: 15px;
}
.blog-filter-bar .jet-search-filter__submit { display: none; }   /* keep a single Apply button */
.blog-filter-bar .jet-apply-filters__button,
.blog-filter-bar .apply-filters__button {
  height: 48px; padding: 0 26px; border: 0; border-radius: 12px; cursor: pointer;
  background: var(--grad-blue); color: #fff; font-weight: 700; font-family: inherit; font-size: 15px;
}

/* #3 featured image, #5 equal heights, card styling */
.blog-list .elementor-posts-container { align-items: stretch; }
.blog-list .elementor-post {
  display: flex; flex-direction: column; height: 100%;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-md);
  overflow: hidden; box-shadow: var(--shadow-sm); transition: transform .25s, box-shadow .25s;
}
.blog-list .elementor-post:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.blog-list .elementor-post__thumbnail { aspect-ratio: 16 / 9; min-height: 170px; overflow: hidden; }
.blog-list .elementor-post__thumbnail img { width: 100%; height: 100%; object-fit: cover; }
.blog-list .elementor-post__text { padding: 16px 18px; display: flex; flex-direction: column; flex: 1 1 auto; }
.blog-list .elementor-post__title { font-size: 17px; line-height: 1.6; margin-bottom: 8px; }
.blog-list .elementor-post__title a { color: var(--ink); font-weight: 700; }
.blog-list .elementor-post__excerpt p { color: var(--muted); font-size: 14.5px; }
.blog-list .elementor-post__meta-data { color: var(--muted); font-size: 12.5px; }
/* #6 read-more pinned to the bottom so card footers align */
.blog-list .elementor-post__read-more { margin-top: auto; color: var(--blue-600); font-weight: 700; }

/* #4 pagination â€” full width, centered, BELOW the grid (was floating beside card 1) */
.blog-list .elementor-pagination {
  grid-column: 1 / -1; width: 100%; margin-top: 30px;
  display: flex; justify-content: center; gap: 8px;
}
.blog-list .elementor-pagination .page-numbers {
  min-width: 40px; height: 40px; display: inline-grid; place-items: center; padding: 0 6px;
  border: 1px solid var(--line); border-radius: 10px; color: var(--ink); background: var(--card); text-decoration: none;
}
.blog-list .elementor-pagination .page-numbers.current {
  background: var(--grad-blue); color: #fff; border-color: transparent;
}

/* JSF's select widget defaults to a 150px width — let it fill its slot */
.blog-filter-bar .jet-select { max-width: 100% !important; flex-basis: auto !important; width: 100%; }
@media (max-width: 768px) {
  /* clean full-width vertical stack on phones */
  .blog-filter-bar .elementor-widget-wrap,
  .blog-filter-bar .elementor-element-populated { flex-direction: column; align-items: stretch; gap: 10px; padding: 14px; }
  .blog-filter-bar .jet-smart-filters-search.jet-filter,
  .blog-filter-bar .jet-smart-filters-select.jet-filter,
  .blog-filter-bar .jet-smart-filters-apply-button { flex: 0 0 auto !important; width: 100%; }
  .blog-filter-bar .jet-select,
  .blog-filter-bar select.jet-select__control,
  .blog-filter-bar .jet-search-filter,
  .blog-filter-bar .jet-search-filter__input,
  .blog-filter-bar .apply-filters__button,
  .blog-filter-bar .jet-apply-filters__button {
    width: 100% !important; max-width: 100% !important; flex-basis: 100% !important; box-sizing: border-box;
  }
}

/* ============================================================
   Audit fixes — Chaty z-index, pricing/footer safety, form feedback
   ============================================================ */
/* 15) keep the Chaty floating widget below critical CTAs */
#chaty-widget, .chaty-widget, div[id*="chaty"], div[class*="chaty"],
#wpchaty-container, .wpchaty-container { z-index: 9999 !important; }

/* 14) pricing plans size to content + equal-height row (no forced height) */
.plans, .plans-grid, .pricing-grid, .tariff-grid { align-items: stretch; }
.plan { height: auto; align-self: stretch; }

/* 13) footer copyright must never clip on the inline-start edge */
.footer-bottom { overflow: visible; padding-inline: 16px; }

/* F) contact form inline success/error feedback */
.form-note { min-height: 1.2em; transition: opacity .3s; }
.form-note.ok  { color: var(--blue-600) !important; }
.form-note.err { color: #e5484d !important; }
.field.invalid input, .field.invalid textarea { border-color: #e5484d !important; }

/* Tariffs — proposal packages (audience tagline, struck original price, single-package grid) */
.plan-aud { color: var(--muted); font-size: 13px; line-height: 1.7; margin: -4px 0 14px; min-height: 2.6em; }
.plan .price del { color: #93a4cb; font-size: .6em; font-weight: 600; margin-inline-end: 6px; opacity: .85; }
.price-grid--solo { grid-template-columns: minmax(0, 470px); justify-content: center; }

/* ===== Single post: keep the article a normal full-width block =====
   The native display:contents bridge flattens theme-post-content (a dynamic
   widget, not an HTML island) into narrow columns. Restore block flow. */
.single .elementor-element-sbcol > .elementor-widget-wrap,
.single .elementor-element-sbcol > .elementor-element-populated,
.single .elementor-element-sbcol > .elementor-element-populated > .elementor-widget-wrap,
.single .elementor-widget-theme-post-content,
.single .elementor-widget-theme-post-content > .elementor-widget-container {
  display: block !important;
}
.single .elementor-widget-theme-post-content .elementor-widget-container { column-count: 1 !important; columns: auto !important; }
.single .elementor-widget-theme-post-content :is(p, ul, ol, h2, h3, h4, blockquote, figure, img) {
  display: block; float: none; width: auto; max-width: 100%;
}
.single .elementor-widget-theme-post-content ul, .single .elementor-widget-theme-post-content ol { padding-inline-start: 1.4em; }
.single .elementor-widget-theme-post-content li { display: list-item; }

/* ============================================================
   Single post — Tat-Chob-style layout (article + sidebar)
   ============================================================ */
.sp-wrap { max-width: min(1500px, 95vw); margin-inline: auto; padding-inline: 20px;
  display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 44px; align-items: start; }
.sp-main { min-width: 0; }
.sp-feat { border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-md); margin-bottom: 26px; aspect-ratio: 16 / 8; }
.sp-feat img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sp-title { font-size: clamp(26px, 3.4vw, 38px); line-height: 1.45; color: var(--ink); margin: 0 0 16px; }
.sp-excerpt { max-width: 780px; color: var(--muted); font-size: 17px; line-height: 1.9; margin: -4px 0 18px; }
.sp-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; padding-bottom: 20px; margin-bottom: 26px; border-bottom: 1px solid var(--line); }
.sp-meta-i { display: inline-flex; align-items: center; gap: 7px; color: var(--muted); font-size: 14px; }
.sp-meta-i svg { width: 17px; height: 17px; color: var(--blue-500); }
.sp-meta-cat { background: var(--paper-3); color: var(--blue-600) !important; padding: 5px 12px; border-radius: 999px; }
.sp-meta-cat svg { color: currentColor; }
.rw-sp-progress { position: fixed; z-index: 1200; top: 0; right: 0; width: 0; height: 4px; background: var(--grad-blue); box-shadow: 0 1px 8px rgba(30,107,255,.35); pointer-events: none; }
.sp-sticky-tools { position: sticky; top: calc(var(--header-h) + 12px); z-index: 30; display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin: 0 0 28px; padding: 10px 12px; background: color-mix(in srgb, var(--card) 94%, transparent); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-sm); backdrop-filter: blur(12px); }
.sp-sticky-cat { display: inline-flex; align-items: center; gap: 7px; flex: none; padding: 7px 12px; border-radius: 999px; background: var(--paper-3); color: var(--blue-600); font-size: 13px; font-weight: 800; }
.sp-sticky-cat:hover { background: var(--blue-600); color: #fff; }
.sp-sticky-cat svg { width: 16px; height: 16px; }
.sp-share { display: flex; flex: 1; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; margin: 0; }
.sp-share > span { color: var(--muted); font-size: 13px; font-weight: 700; margin-left: 4px; }
.sp-share a, .sp-copy { display: inline-flex; align-items: center; justify-content: center; min-height: 36px; padding: 7px 13px; border: 1px solid var(--line); border-radius: 999px; background: var(--card); color: var(--blue-600); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; transition: background .2s, color .2s, transform .2s; }
.sp-share a:hover, .sp-copy:hover { background: var(--blue-600); color: #fff; transform: translateY(-2px); }
.sp-toc { max-width: 820px; margin: 0 0 34px; padding: 20px 22px; background: var(--paper-2); border: 1px solid var(--line); border-right: 4px solid var(--blue-500); border-radius: 0 var(--r-lg) var(--r-lg) 0; }
.sp-toc-head { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.sp-toc-head span, .sp-author > div > span { color: var(--blue-600); font-size: 12px; font-weight: 800; }
.sp-toc-head strong { color: var(--ink); font-size: 18px; }
.sp-toc ol { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.sp-toc li { list-style: none; margin: 0; }
.sp-toc-l3 { padding-right: 18px; }
.sp-toc a { color: var(--muted); font-size: 14px; line-height: 1.75; font-weight: 600; }
.sp-toc a:hover { color: var(--blue-600); }
.sp-content { color: var(--ink); font-size: 17px; line-height: 2.1; }
.sp-content > * { margin: 0 0 1.3em; }
.sp-content h2, .sp-content h3, .sp-content h4 { color: var(--ink); line-height: 1.6; margin: 1.6em 0 .7em; font-family: var(--font-display); scroll-margin-top: 100px; }
.sp-content h2 { font-size: 24px; } .sp-content h3 { font-size: 20px; }
.sp-content p { color: var(--muted); }
.sp-content a { color: var(--blue-600); font-weight: 600; }
.sp-content strong, .sp-content b { color: var(--ink); }
.sp-content ul, .sp-content ol { padding-inline-start: 1.5em; color: var(--muted); }
.sp-content li { margin-bottom: .5em; }
.sp-content img { max-width: 100%; height: auto; border-radius: var(--r-md); margin: 1em auto; display: block; }
.sp-content blockquote { border-inline-start: 4px solid var(--blue-500); background: var(--paper-2); padding: 14px 20px; border-radius: 12px; color: var(--ink); }
.sp-content figure { margin: 1.4em 0; } .sp-content figcaption { text-align: center; color: var(--muted); font-size: 13px; margin-top: 8px; }
.sp-author { display: flex; align-items: center; gap: 16px; margin-top: 42px; padding: 20px 22px; background: var(--paper-2); border: 1px solid var(--line); border-radius: var(--r-lg); }
.sp-author-avatar, .sp-author-avatar img { width: 72px; height: 72px; border-radius: 50%; flex: none; }
.sp-author-avatar { overflow: hidden; background: var(--paper-3); }
.sp-author > div:last-child { display: grid; gap: 3px; min-width: 0; }
.sp-author strong { color: var(--ink); font-size: 18px; }
.sp-author p { margin: 4px 0 0; color: var(--muted); font-size: 14px; line-height: 1.8; }
.sp-nav { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; margin-top: 24px; }
.sp-nav a { position: relative; min-height: 108px; padding: 18px 20px; display: flex; flex-direction: column; justify-content: center; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow-sm); transition: transform .2s, border-color .2s, box-shadow .2s; }
.sp-nav a:hover { transform: translateY(-3px); border-color: var(--blue-400); box-shadow: var(--shadow-md); }
.sp-nav a span { color: var(--muted); font-size: 12px; font-weight: 800; margin-bottom: 6px; }
.sp-nav a strong { color: var(--ink); font-size: 15px; line-height: 1.7; padding-left: 20px; }
.sp-nav a svg { position: absolute; top: 50%; width: 18px; color: var(--blue-600); }
.sp-nav .sp-nav-prev svg { right: 16px; transform: translateY(-50%); }
.sp-nav .sp-nav-prev strong { padding-right: 20px; padding-left: 0; }
.sp-nav .sp-nav-next svg { left: 16px; transform: translateY(-50%) rotate(180deg); }
.single .elementor-widget-shortcode,
.single .elementor-widget-shortcode > .elementor-widget-container,
.single .elementor-widget-shortcode .elementor-widget-wrap,
.single .elementor-widget-shortcode .elementor-column,
.single .elementor-widget-shortcode .elementor-container { overflow: visible !important; }
.sp-aside { align-self: start; display: flex; flex-direction: column; gap: 22px; overflow: visible; }
.sp-sidebar-placeholder { display: none; flex: none; }
.sp-sidebar-sticky { position: sticky; top: 160px; z-index: 1500; align-self: start; display: flex; flex-direction: column; gap: 22px; }
.sp-box { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-md); box-shadow: var(--shadow-sm); padding: 20px; }
.sp-box-t { font-size: 17px; color: var(--ink); margin: 0 0 16px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.sp-rel { display: flex; flex-direction: column; gap: 14px; }
.sp-rel-i { display: flex; align-items: center; gap: 12px; }
.sp-rel-th { flex: 0 0 64px; width: 64px; height: 64px; border-radius: 12px; overflow: hidden; background: var(--paper-3); }
.sp-rel-th img { width: 100%; height: 100%; object-fit: cover; }
.sp-rel-t { font-size: 14px; font-weight: 600; color: var(--ink); line-height: 1.7; }
.sp-rel-i:hover .sp-rel-t { color: var(--blue-600); }
.sp-cats { list-style: none; margin: 0; padding: 0; }
.sp-cats li { border-bottom: 1px solid var(--line); }
.sp-cats li:last-child { border-bottom: 0; }
.sp-cats a { display: flex; justify-content: space-between; align-items: center; padding: 10px 2px; color: var(--muted); font-size: 14.5px; }
.sp-cats a:hover { color: var(--blue-600); }
.sp-cats b { color: var(--blue-500); font-weight: 600; font-size: 13px; }
.sp-cta { background: var(--grad-deep); border-color: transparent; text-align: center; }
.sp-cta h3 { color: #fff; }
.sp-cta p { color: #c4d3f5; font-size: 14px; line-height: 1.9; margin: 0 0 16px; }
.sp-cta .btn { width: 100%; justify-content: center; }
@media (max-width: 980px) {
  .sp-wrap { grid-template-columns: 1fr; gap: 26px; }
  .sp-aside, .sp-sidebar-sticky { position: static; }
  .sp-feat { aspect-ratio: 16 / 9; }
}
@media (max-width: 560px) {
  .sp-excerpt { font-size: 15px; line-height: 1.8; }
  .sp-sticky-tools { top: 8px; gap: 8px; padding: 9px; }
  .sp-sticky-cat { width: 100%; justify-content: center; }
  .sp-share { gap: 7px; }
  .sp-share > span { width: 100%; margin-bottom: 2px; }
  .sp-toc { padding: 18px; }
  .sp-toc-head { flex-direction: column; align-items: flex-start; gap: 3px; }
  .sp-author { align-items: flex-start; padding: 18px; }
  .sp-nav { grid-template-columns: 1fr; }
}

/* ============================================================
   BLOG — 8088-style layout: right sidebar (search + category)
   alongside the post grid. The two Elementor columns of the
   .blog-list section: .blog-side (sidebar) + .blog-posts-col.
   ============================================================ */
.blog-list .blog-side {
  position: sticky; top: calc(var(--header-h) + 18px);
  background: var(--card); border: 1px solid var(--line);
  border-radius: var(--r-lg); box-shadow: var(--shadow-sm);
  padding: 24px 22px; display: flex; flex-direction: column; gap: 6px;
}
/* tidy Elementor's default widget spacing inside the panel */
.blog-side .elementor-widget { margin: 0 !important; }
.blog-side .elementor-widget-container { margin: 0; }

/* section titles with a small gradient accent bar */
.blog-side-t { font-size: 15px; font-weight: 700; color: var(--ink); margin: 20px 0 11px; display: flex; align-items: center; gap: 9px; }
.blog-side-t:first-child { margin-top: 0; }
.blog-side-t::before { content: ""; width: 4px; height: 16px; border-radius: 4px; background: var(--grad-blue); flex: none; }

/* fill the panel width */
.blog-side .jet-smart-filters-search,
.blog-side .jet-smart-filters-select,
.blog-side .jet-search-filter,
.blog-side .jet-select { width: 100% !important; max-width: 100% !important; box-sizing: border-box; }

/* search box — rounded, themed, focus ring */
.blog-side .jet-search-filter { position: relative; }
.blog-side .jet-search-filter__input {
  width: 100% !important; box-sizing: border-box !important; height: 48px !important;
  padding: 0 16px !important; border: 1.5px solid var(--line) !important; border-radius: 12px !important;
  background: var(--paper-2); color: var(--ink); font-size: 14.5px !important; font-weight: 600; font-family: inherit;
  transition: border-color .2s, box-shadow .2s, background .2s;
}
.blog-side .jet-search-filter__input::placeholder { color: var(--muted); font-weight: 500; }
.blog-side .jet-search-filter__input:focus {
  outline: none; border-color: var(--blue-500); background: var(--card);
  box-shadow: 0 0 0 3px rgba(30,107,255,.14);
}
/* the search applies as you type — hide Jet's redundant submit/reset buttons */
.blog-side .jet-search-filter__submit,
.blog-side .jet-search-filter__reset { display: none !important; }

/* category select — custom chevron, themed, focus ring */
.blog-side .jet-select { position: relative; }
.blog-side .jet-select__control,
.blog-side select {
  width: 100% !important; box-sizing: border-box !important; height: 48px !important;
  padding: 0 16px 0 42px !important; border: 1.5px solid var(--line) !important; border-radius: 12px !important;
  background-color: var(--paper-2); color: var(--ink); font-size: 14.5px !important; font-weight: 600; font-family: inherit; cursor: pointer; line-height: normal !important;
  -webkit-appearance: none; -moz-appearance: none; appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2390a0c0' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: left 14px center;
  transition: border-color .2s, box-shadow .2s, background-color .2s;
}
.blog-side .jet-select__control:focus,
.blog-side select:focus {
  outline: none; border-color: var(--blue-500); background-color: var(--card);
  box-shadow: 0 0 0 3px rgba(30,107,255,.14);
}

/* hide the redundant apply button (filters apply instantly) */
.blog-side .elementor-widget-jet-smart-filters-apply-button,
.blog-side .jet-smart-filters-apply-button { display: none !important; }

/* keep the post grid comfortable inside the narrower main column */
/* The global bridge forces `section > .elementor-container` to display:block
   (line ~1353), which collapses this 2-column layout — the sidebar and posts
   stack as right-aligned blocks instead of sitting side by side. Restore a
   flex row: fixed-width sidebar (right, RTL) + flexible post grid (left). */
.page .blog-layout > .elementor-container {
  display: flex !important; flex-wrap: nowrap; align-items: flex-start; gap: 30px; width: 100%;
}
.blog-layout .elementor-column.blog-side { flex: 0 0 300px !important; width: 300px !important; max-width: 300px; }
.blog-layout .elementor-column.blog-posts-col { flex: 1 1 0 !important; width: auto !important; min-width: 0; }
.blog-list .blog-posts-col { min-width: 0; }
@media (max-width: 1024px) {
  .page .blog-layout > .elementor-container { flex-direction: column; gap: 0; }
  .blog-layout .elementor-column.blog-side,
  .blog-layout .elementor-column.blog-posts-col { flex: 1 1 auto !important; width: 100% !important; max-width: none; }
  .blog-list .blog-side { position: static; margin-bottom: 24px; }
}

/* ============================================================
   SERVICE PAGES — stats strip, why-us list, FAQ accordion
   ============================================================ */
.svc-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 22px; text-align: center; }
.svc-stat { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 28px 18px; box-shadow: var(--shadow-sm); transition: transform .3s, box-shadow .3s; }
.svc-stat:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.svc-stat .n { font-size: clamp(28px,3.4vw,40px); font-weight: 800; color: var(--blue-600); line-height: 1; }
.svc-stat .l { color: var(--muted); font-size: 14.5px; margin-top: 10px; }
@media (max-width: 760px){ .svc-stats { grid-template-columns: 1fr 1fr; } }

ul.svc-why { display: grid; grid-template-columns: repeat(2,1fr); gap: 16px; max-width: 920px; margin: 0 auto; padding: 0; }
ul.svc-why li { display: flex; gap: 12px; align-items: flex-start; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-md); padding: 16px 18px; color: var(--ink); font-weight: 600; font-size: 15px; list-style: none; }
ul.svc-why li svg { width: 22px; height: 22px; color: var(--blue-500); flex: none; margin-top: 1px; }
@media (max-width: 640px){ ul.svc-why { grid-template-columns: 1fr; } }

.faq { max-width: 820px; margin: 0 auto; display: flex; flex-direction: column; gap: 14px; }
/* scoped under .faq so these DON'T clash with the home page's .faq-wrap FAQ
   (which reuses .faq-item/.faq-a with a max-height:0 accordion) */
.faq .faq-item { background: var(--card); border: 1px solid var(--line); border-radius: var(--r-md); padding: 2px 20px; box-shadow: var(--shadow-sm); }
.faq .faq-item summary { cursor: pointer; list-style: none; padding: 17px 0; font-weight: 700; color: var(--ink); font-size: 16px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.faq .faq-item summary::-webkit-details-marker { display: none; }
.faq .faq-item summary::after { content: "+"; font-size: 24px; color: var(--blue-600); font-weight: 300; transition: transform .25s; flex: none; }
.faq .faq-item[open] summary::after { transform: rotate(45deg); }
.faq .faq-item .faq-a { color: var(--muted); font-size: 15px; line-height: 2; padding: 0 0 18px; }

/* service "what's included" — clean check-list cards (the global .feature class
   is a horizontal why-us card, which looks sparse for short deliverable items) */
.svc-feats { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.svc-feats .fi {
  display: flex; align-items: center; gap: 12px; background: var(--card);
  border: 1px solid var(--line); border-radius: var(--r-md); padding: 18px 20px;
  box-shadow: var(--shadow-sm); transition: transform .3s, box-shadow .3s, border-color .3s;
}
.svc-feats .fi:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: transparent; }
.svc-feats .fi svg { width: 23px; height: 23px; color: var(--blue-500); flex: none; }
.svc-feats .fi span { font-weight: 600; color: var(--ink); font-size: 14.5px; line-height: 1.7; }
@media (max-width: 860px) { .svc-feats { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .svc-feats { grid-template-columns: 1fr; } }

/* --- service-page polish (FAQ open, section spacing, centered service cards) --- */
/* #2 FAQ: the home FAQ's global .faq-a{max-height:0} clips our <details> answer */
.faq .faq-item .faq-a { max-height: none !important; overflow: visible !important; }
/* #3 our plain-HTML service sections get no Elementor section padding -> add it */
.svc-page .rw-section { padding: 84px 0; }
@media (max-width: 768px) { .svc-page .rw-section { padding: 54px 0; } }
/* #5 5 service cards (3+2) -> center the last row */
.svc-cards { display: flex; flex-wrap: wrap; justify-content: center; gap: 26px; }
.svc-cards > .info-card { flex: 0 1 300px; max-width: 340px; }
@media (max-width: 720px) { .svc-cards > .info-card { flex: 1 1 100%; max-width: none; } }

/* ============================================================
   Per-page hero background photos (uploaded 2026-07)
   A dark navy overlay is layered over each image so the white
   page title stays fully readable, matching the deep hero look.
   ============================================================ */
.page-id-5  .page-hero { background: linear-gradient(rgba(8,17,44,.72), rgba(8,17,44,.86)), url(/wp-content/uploads/2026/07/hero-services.webp)  center / cover no-repeat; }
.page-id-6  .page-hero { background: linear-gradient(rgba(8,17,44,.70), rgba(8,17,44,.84)), url(/wp-content/uploads/2026/07/hero-about.webp)     center / cover no-repeat; }
.page-id-7  .page-hero { background: linear-gradient(rgba(8,17,44,.72), rgba(8,17,44,.86)), url(/wp-content/uploads/2026/07/hero-contact.webp)   center / cover no-repeat; }
.page-id-10 .page-hero { background: linear-gradient(rgba(8,17,44,.72), rgba(8,17,44,.86)), url(/wp-content/uploads/2026/07/hero-portfolio.webp) center / cover no-repeat; }
.page-id-11 .page-hero { background: linear-gradient(rgba(8,17,44,.72), rgba(8,17,44,.86)), url(/wp-content/uploads/2026/07/hero-tariffs.webp)   center / cover no-repeat; }

/* Blog uses a boxed .blog-head title band instead of .page-hero; give it the
   same photo-hero treatment with white text over a dark overlay. */
.page-id-18 .blog-head {
  background: linear-gradient(rgba(8,17,44,.72), rgba(8,17,44,.86)), url(/wp-content/uploads/2026/07/hero-blog.webp) center / cover no-repeat;
  padding-block: calc(var(--header-h) + 48px) 48px !important;
  position: relative; overflow: hidden;
}
.page-id-18 .blog-head .elementor-heading-title { color: #fff !important; }
.page-id-18 .blog-head .elementor-widget-text-editor,
.page-id-18 .blog-head .elementor-widget-text-editor p { color: #dbe6ff !important; }

/* ============================================================
   Unified minimal icon system (2026-07)
   Every icon on the site is a stroke-based line SVG living inside
   an .elementor wrapper. Normalise them all to ONE thin stroke
   weight with round joins so the whole site shares a single,
   simple, theme-consistent icon language. Colour stays contextual
   (theme blue on light surfaces, light on dark) via currentColor.
   ============================================================ */
:root { --icon-sw: 1.6; }
.elementor svg,
.site-header svg,
.site-footer svg {
  stroke-width: var(--icon-sw);
  stroke-linecap: round;
  stroke-linejoin: round;
}
/* Keep the badge treatment calm & simple: drop the rotate/scale
   flourishes on hover, leaving a quiet colour shift only. */
.site-header .dropdown .dd-item:hover .dd-ic,
.site-header .dropdown .dd-item.current .dd-ic,
.page .card:hover .elementor-widget-icon .elementor-icon,
.feature:hover .fic,
.page .feature:hover .elementor-widget-icon .elementor-icon,
.fband:hover .fband-ic { transform: none; }

/* ============================================================
   BESPOKE SERVICE PAGES (2026-07)
   Each service page carries `.svc-bespoke` on its wrapper plus an
   inline accent triplet (--accent / --accent-2 / --accent-soft).
   Shared parts are re-skinned to the accent; each service also has
   ONE signature section (below) unique to it.
   ============================================================ */
.svc-bespoke { --accent:var(--blue-600); --accent-2:var(--cyan-400); --accent-soft:rgba(30,107,255,.13); }

/* --- accent re-skin of the shared blocks --- */
.svc-bespoke .page-hero::after{ content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(760px 340px at 50% -12%, var(--accent-soft), transparent 70%); }
.svc-bespoke .page-hero .eyebrow::before{ background:var(--accent-2); }
.svc-bespoke .svc-stat .n{ color:var(--accent); }
.svc-bespoke ul.svc-why li svg{ color:var(--accent); }
.svc-bespoke ul.svc-why li:hover{ border-color:var(--accent); box-shadow:0 10px 26px var(--accent-soft); }
.svc-bespoke .svc-feats .fi svg{ color:var(--accent); }
.svc-bespoke .svc-feats .fi:hover{ border-color:var(--accent); }
.svc-bespoke .info-card:hover .ci{ background:linear-gradient(135deg,var(--accent),var(--accent-2)); }
.svc-bespoke .info-card:hover{ border-color:transparent; box-shadow:0 22px 50px var(--accent-soft); }
.svc-bespoke .cta-inner{ background:linear-gradient(125deg,var(--accent),var(--accent-2),var(--accent)); background-size:200% 200%; }
.svc-bespoke .cta-inner .btn-primary{ color:var(--accent); }
.svc-bespoke .btn-primary{ background:linear-gradient(135deg,var(--accent),var(--accent-2)); box-shadow:0 16px 34px var(--accent-soft); }
.svc-bespoke .faq-item.open .pm{ background:linear-gradient(135deg,var(--accent),var(--accent-2)); }
/* section eyebrow chip used by signature sections */
.sig-eyebrow{ display:inline-flex; align-items:center; gap:8px; font-weight:800; font-size:13px;
  color:var(--accent); background:var(--accent-soft); padding:7px 15px; border-radius:999px; margin-bottom:14px; }
.sig-eyebrow::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--accent); }
.sig-wrap{ max-width:1040px; margin:0 auto; }

/* ============ 1) website-design → browser mockup + tech chips ============ */
.mock-browser{ background:var(--card); border:1px solid var(--line); border-radius:18px; overflow:hidden; box-shadow:var(--shadow-lg); max-width:840px; margin:0 auto; }
.mock-bar{ display:flex; align-items:center; gap:14px; padding:13px 16px; background:var(--paper-2); border-bottom:1px solid var(--line); }
.mock-dots{ display:flex; gap:7px; } .mock-dots i{ width:12px; height:12px; border-radius:50%; background:#c9d4ea; }
.mock-dots i:nth-child(1){ background:#ff5f57 } .mock-dots i:nth-child(2){ background:#febc2e } .mock-dots i:nth-child(3){ background:#28c840 }
.mock-url{ flex:1; height:26px; border-radius:8px; background:var(--paper-3); display:flex; align-items:center; padding:0 12px; color:var(--muted); font-size:12.5px; direction:ltr; }
.mock-screen{ padding:22px; display:grid; gap:14px; }
.mock-hero-row{ display:grid; grid-template-columns:1.3fr .9fr; gap:14px; }
.mock-skel{ background:linear-gradient(90deg,var(--paper-3) 25%,var(--paper-2) 37%,var(--paper-3) 63%); background-size:400% 100%; animation:skel 1.8s ease infinite; border-radius:8px; }
@keyframes skel{ 0%{background-position:100% 0} 100%{background-position:-100% 0} }
.mock-block{ height:120px; border-radius:12px; background:linear-gradient(135deg,var(--accent),var(--accent-2)); opacity:.9; }
.mock-lines{ display:grid; gap:10px; align-content:start; } .mock-lines .mock-skel{ height:13px; } .mock-lines .mock-skel.w7{ width:70% } .mock-lines .mock-skel.w5{ width:50% }
.mock-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; } .mock-cards .mock-skel{ height:64px; }
.tech-chips{ display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-top:26px; }
.tech-chips span{ background:var(--card); border:1px solid var(--line); color:var(--ink); font-weight:700; font-size:13.5px; padding:9px 16px; border-radius:999px; box-shadow:var(--shadow-sm); }
.tech-chips span b{ color:var(--accent); }

/* ============ 2) external-seo → authority growth graph + DR gauge ============ */
.seo-graph{ display:grid; grid-template-columns:1.4fr .8fr; gap:26px; align-items:stretch; }
.graph-card,.gauge-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); padding:24px; box-shadow:var(--shadow-md); }
.graph-card h4,.gauge-card h4{ font-size:15px; color:var(--muted); font-weight:700; margin-bottom:6px; }
.graph-card .big{ font-size:30px; font-weight:800; color:var(--accent); }
.graph-svg{ width:100%; height:170px; margin-top:8px; overflow:visible; }
.graph-svg .ln{ fill:none; stroke:var(--accent); stroke-width:3; stroke-linecap:round; stroke-dasharray:1400; stroke-dashoffset:1400; }
.reveal.in .graph-svg .ln, .graph-svg .ln{ animation:draw 2.1s ease .2s forwards; }
@keyframes draw{ to{ stroke-dashoffset:0 } }
.graph-svg .ar{ fill:var(--accent); opacity:.12; }
.graph-svg .dot{ fill:var(--accent); }
.gauge-card{ display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.gauge{ width:150px; height:150px; border-radius:50%; display:grid; place-items:center; position:relative;
  background:conic-gradient(var(--accent) var(--deg,0deg), var(--paper-3) 0); transition:--deg 1.4s ease; }
.gauge::before{ content:""; position:absolute; inset:14px; border-radius:50%; background:var(--card); }
.gauge b{ position:relative; font-size:34px; font-weight:800; color:var(--accent); }
.gauge small{ position:relative; display:block; color:var(--muted); font-size:12px; font-weight:700; }

/* ============ 3) internal-seo → on-page score + keyword rankings ============ */
.audit-panel{ display:grid; grid-template-columns:.85fr 1.15fr; gap:26px; align-items:center; }
.score-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); padding:30px; box-shadow:var(--shadow-md); text-align:center; }
.score-ring{ width:180px; height:180px; border-radius:50%; margin:0 auto 16px; display:grid; place-items:center; position:relative;
  background:conic-gradient(var(--accent) var(--deg,0deg), var(--paper-3) 0); }
.score-ring::before{ content:""; position:absolute; inset:16px; border-radius:50%; background:var(--card); }
.score-ring b{ position:relative; font-size:44px; font-weight:800; color:var(--accent); }
.score-ring span{ position:relative; display:block; font-size:12px; color:var(--muted); font-weight:700; }
.rank-rows{ display:grid; gap:12px; }
.rank-row{ display:flex; align-items:center; gap:14px; background:var(--card); border:1px solid var(--line); border-radius:var(--r-md); padding:14px 18px; box-shadow:var(--shadow-sm); }
.rank-row .kw{ flex:1; font-weight:700; color:var(--ink); font-size:14.5px; }
.rank-row .pos{ font-weight:800; color:var(--accent); font-size:16px; }
.rank-row .up{ display:inline-flex; align-items:center; gap:4px; color:#16a34a; font-size:12.5px; font-weight:800; }
.rank-row .up svg{ width:14px; height:14px; }

/* ============ 4) divar-store → Divar listing cards ============ */
.divar-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.dv-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .3s, box-shadow .3s; }
.dv-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.dv-thumb{ height:120px; background:linear-gradient(135deg,var(--accent-soft),var(--paper-3)); display:grid; place-items:center; color:var(--accent); position:relative; }
.dv-thumb svg{ width:40px; height:40px; opacity:.8; }
.dv-badge{ position:absolute; top:10px; inset-inline-start:10px; background:var(--accent); color:#fff; font-size:11px; font-weight:800; padding:4px 10px; border-radius:999px; }
.dv-body{ padding:14px 16px; } .dv-body h5{ font-size:15px; margin:0 0 8px; color:var(--ink); }
.dv-price{ color:var(--accent); font-weight:800; font-size:15px; }
.dv-meta{ display:flex; align-items:center; gap:6px; color:var(--muted); font-size:12.5px; margin-top:8px; }
.dv-meta svg{ width:14px; height:14px; }

/* ============ 5) site-redesign → before / after drag slider ============ */
.ba-slider{ position:relative; max-width:860px; margin:0 auto; aspect-ratio:16/8.4; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg); border:1px solid var(--line); user-select:none; touch-action:none; }
.ba-layer{ position:absolute; inset:0; display:grid; place-items:center; text-align:center; padding:26px; }
.ba-before{ background:repeating-linear-gradient(45deg,#e9edf3,#e9edf3 14px,#e2e7ef 14px,#e2e7ef 28px); color:#8a93a6; }
.ba-after{ background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:#fff; clip-path:inset(0 0 0 var(--split,50%)); }
html[dir="rtl"] .ba-after{ clip-path:inset(0 var(--split,50%) 0 0); }
.ba-tag{ position:absolute; top:14px; font-size:12px; font-weight:800; padding:5px 12px; border-radius:999px; background:rgba(0,0,0,.35); color:#fff; }
.ba-before .ba-tag{ inset-inline-end:14px; } .ba-after .ba-tag{ inset-inline-start:14px; background:rgba(255,255,255,.25); }
.ba-lbl{ font-size:clamp(20px,3vw,30px); font-weight:800; }
.ba-handle{ position:absolute; top:0; bottom:0; inset-inline-start:var(--split,50%); width:3px; background:#fff; box-shadow:0 0 0 1px rgba(0,0,0,.08); transform:translateX(50%); }
.ba-grip{ position:absolute; top:50%; inset-inline-start:var(--split,50%); width:44px; height:44px; margin-inline-start:-22px; margin-top:-22px; border-radius:50%; background:#fff; box-shadow:var(--shadow-md); display:grid; place-items:center; color:var(--accent); cursor:ew-resize; }
.ba-grip svg{ width:22px; height:22px; }

/* ============ 6) content-marketing → editorial pipeline + article cards ============ */
.pipeline{ display:flex; flex-wrap:wrap; justify-content:center; gap:0; margin-bottom:34px; }
.pl-step{ position:relative; flex:1 1 150px; min-width:130px; text-align:center; padding:0 6px; }
.pl-ic{ width:60px; height:60px; margin:0 auto 12px; border-radius:18px; background:var(--accent-soft); color:var(--accent); display:grid; place-items:center; position:relative; z-index:1; }
.pl-ic svg{ width:26px; height:26px; }
.pl-step:not(:last-child)::after{ content:""; position:absolute; top:30px; inset-inline-start:-50%; width:100%; height:3px; background:var(--accent-soft); z-index:0; }
.pl-step b{ display:block; font-size:14px; color:var(--ink); }
.article-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.ac-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .3s, box-shadow .3s; }
.ac-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.ac-top{ height:96px; background:linear-gradient(135deg,var(--accent),var(--accent-2)); position:relative; }
.ac-type{ position:absolute; bottom:10px; inset-inline-start:12px; background:rgba(255,255,255,.22); color:#fff; font-size:11px; font-weight:800; padding:4px 10px; border-radius:999px; }
.ac-body{ padding:15px 16px; } .ac-body h5{ font-size:14.5px; margin:0 0 8px; color:var(--ink); line-height:1.6; }
.ac-body .meta{ color:var(--muted); font-size:12px; display:flex; gap:10px; }

/* ============ 7) corporate-website → trust logos + result cards ============ */
.logos-strip{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; margin-bottom:30px; }
.logos-strip span{ height:56px; min-width:120px; padding:0 22px; border-radius:14px; background:var(--card); border:1px solid var(--line); box-shadow:var(--shadow-sm); display:grid; place-items:center; color:var(--muted); font-weight:800; font-size:15px; letter-spacing:.5px; }
.result-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.rc-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); padding:28px 24px; box-shadow:var(--shadow-sm); border-top:4px solid var(--accent); }
.rc-card .rc-n{ font-size:34px; font-weight:800; color:var(--accent); line-height:1; }
.rc-card p{ color:var(--muted); font-size:14.5px; margin-top:10px; }

/* ============ 8) personal-website → profile card + folio gallery ============ */
.profile-card{ display:grid; grid-template-columns:.8fr 1.2fr; gap:26px; align-items:center; background:var(--card); border:1px solid var(--line); border-radius:var(--r-xl); padding:32px; box-shadow:var(--shadow-md); }
.pf-avatar{ aspect-ratio:1; border-radius:24px; background:linear-gradient(145deg,var(--accent),var(--accent-2)); display:grid; place-items:center; color:#fff; font-size:56px; font-weight:800; box-shadow:var(--shadow-lg); }
.pf-body h3{ font-size:22px; margin-bottom:4px; } .pf-role{ color:var(--accent); font-weight:800; font-size:14px; margin-bottom:14px; }
.pf-skills{ display:grid; gap:12px; margin-top:8px; }
.pf-skill{ } .pf-skill .t{ display:flex; justify-content:space-between; font-size:13px; font-weight:700; margin-bottom:5px; color:var(--ink); }
.pf-bar{ height:8px; border-radius:999px; background:var(--paper-3); overflow:hidden; }
.pf-bar i{ display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,var(--accent),var(--accent-2)); width:var(--v,70%); }
.folio-gallery{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:26px; }
.folio-gallery a,.folio-gallery span{ aspect-ratio:4/3; border-radius:var(--r-md); background:linear-gradient(135deg,var(--accent-soft),var(--paper-3)); border:1px solid var(--line); display:grid; place-items:center; color:var(--accent); transition:transform .3s; }
.folio-gallery span:hover{ transform:translateY(-5px) scale(1.02); }
.folio-gallery svg{ width:30px; height:30px; opacity:.75; }

/* ============ 9) ecommerce → storefront product grid ============ */
.shop-mock{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-lg); max-width:900px; margin:0 auto; }
.shop-top{ display:flex; align-items:center; justify-content:space-between; padding:15px 20px; background:linear-gradient(135deg,var(--accent),var(--accent-2)); color:#fff; }
.shop-top b{ font-size:16px; } .shop-cats{ display:flex; gap:16px; font-size:12.5px; opacity:.9; }
.shop-cats span:first-child{ font-weight:800; opacity:1; }
.shop-cart{ display:inline-flex; align-items:center; gap:7px; background:rgba(255,255,255,.2); padding:6px 12px; border-radius:999px; font-size:12.5px; font-weight:800; }
.shop-cart svg{ width:16px; height:16px; }
.shop-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; padding:20px; }
.sp-card{ border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; background:var(--card); transition:transform .3s, box-shadow .3s; }
.sp-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-md); }
.sp-img{ height:90px; background:linear-gradient(135deg,var(--accent-soft),var(--paper-3)); display:grid; place-items:center; color:var(--accent); position:relative; }
.sp-img svg{ width:34px; height:34px; opacity:.8; } .sp-off{ position:absolute; top:8px; inset-inline-start:8px; background:var(--accent); color:#fff; font-size:10.5px; font-weight:800; padding:3px 8px; border-radius:999px; }
.sp-b{ padding:12px; } .sp-b h5{ font-size:13px; margin:0 0 8px; color:var(--ink); }
.sp-row{ display:flex; align-items:center; justify-content:space-between; }
.sp-price{ color:var(--accent); font-weight:800; font-size:14px; } .sp-price del{ color:var(--muted); font-weight:600; font-size:11px; margin-inline-start:5px; }
.sp-add{ width:30px; height:30px; border-radius:9px; background:var(--accent); color:#fff; display:grid; place-items:center; } .sp-add svg{ width:15px; height:15px; }

/* ============ 10) website-redesign → impact panel + uplift bars ============ */
.impact-panel{ display:grid; grid-template-columns:1fr 1fr; gap:26px; align-items:center; }
.impact-shots{ display:grid; gap:16px; }
.imp-shot{ border-radius:var(--r-md); border:1px solid var(--line); overflow:hidden; box-shadow:var(--shadow-sm); }
.imp-cap{ font-size:12px; font-weight:800; padding:8px 14px; }
.imp-old .imp-cap{ background:#eef1f6; color:#8a93a6; } .imp-old .imp-body{ height:78px; background:repeating-linear-gradient(45deg,#eef1f6,#eef1f6 12px,#e6eaf1 12px,#e6eaf1 24px); }
.imp-new .imp-cap{ background:var(--accent-soft); color:var(--accent); } .imp-new .imp-body{ height:78px; background:linear-gradient(135deg,var(--accent),var(--accent-2)); }
.uplift-bars{ display:grid; gap:18px; }
.ub{ } .ub .t{ display:flex; justify-content:space-between; font-size:13.5px; font-weight:700; margin-bottom:6px; color:var(--ink); } .ub .t b{ color:var(--accent); }
.ub-track{ height:10px; border-radius:999px; background:var(--paper-3); overflow:hidden; }
.ub-track i{ display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,var(--accent),var(--accent-2)); width:var(--v,60%); }

/* --- shared responsive for signature sections --- */
@media (max-width:820px){
  .seo-graph,.audit-panel,.impact-panel,.profile-card{ grid-template-columns:1fr; }
  .divar-cards,.article-cards,.result-cards,.shop-grid{ grid-template-columns:1fr 1fr; }
  .folio-gallery{ grid-template-columns:repeat(3,1fr); }
  .mock-hero-row{ grid-template-columns:1fr; }
}
@media (max-width:520px){
  .divar-cards,.article-cards,.result-cards,.shop-grid,.folio-gallery{ grid-template-columns:1fr 1fr; }
  .pl-step{ flex-basis:44%; margin-bottom:18px; } .pl-step::after{ display:none; }
  .tech-chips span{ font-size:12px; }
}

/* before/after slider: anchor each big label to its own outer side so they
   never overlap at the divider */
.ba-layer{ display:block; }
.ba-tag{ z-index:2; }
.ba-lbl{ position:absolute; top:50%; transform:translateY(-50%); max-width:42%; line-height:1.5; }
.ba-before .ba-lbl{ inset-inline-end:7%; text-align:center; }
.ba-after .ba-lbl{ inset-inline-start:7%; text-align:center; }

/* (Per-service colour theming was reverted — all service pages keep the
   site's single blue theme; only their LAYOUTS differ. The accent below
   resolves to the site blue for every page, see .svc-bespoke base rule.) */

/* photo before/after: dark readable tags on any screenshot bg */
.ba-photo .ba-tag{ background:rgba(10,19,48,.78); color:#fff; }

/* fix: قبل tag belongs over the BEFORE (old) side = right; بعد over the AFTER (new) side = left */
.ba-before .ba-tag{ inset-inline-start:14px; inset-inline-end:auto; }
.ba-after .ba-tag{ inset-inline-end:14px; inset-inline-start:auto; }

/* Footer layout polish */
.elementor-location-footer,
.elementor-location-footer .elementor-widget-html,
.rw-footer-con,
.rw-footer-con > .e-con-inner,
.site-footer {
  overflow-x: clip;
}

.elementor-location-footer .elementor-widget-html > .elementor-widget-container {
  width: 100%;
}

.site-footer {
  padding-bottom: max(34px, env(safe-area-inset-bottom));
}

.footer-band-grid,
.footer-grid {
  min-width: 0;
}

.fband,
.footer-col a,
.foot-hours,
.footer-bottom {
  min-width: 0;
  overflow-wrap: anywhere;
}

.footer-contact-col a,
.foot-hours {
  line-height: 1.85;
}

.rasaweb-credit {
  border-top: 1px solid rgba(255,255,255,.08) !important;
  background: #071225 !important;
  color: #8fa1c8 !important;
  padding: 14px 96px 18px !important;
}

.rasaweb-credit a {
  color: #34d2ff !important;
}

@media (max-width: 768px) {
  .site-footer {
    padding-top: 46px;
    padding-bottom: 34px;
  }

  .footer-band {
    margin-bottom: 30px;
    padding-bottom: 24px;
  }

  .footer-grid {
    gap: 22px;
  }

  .footer-bottom {
    margin-top: 30px;
    padding: 20px 16px 0;
    line-height: 1.9;
  }

  .rasaweb-credit {
    padding-inline: 72px 18px !important;
    text-align: start !important;
  }
}

@media (max-width: 420px) {
  .rasaweb-credit {
    padding-inline: 64px 16px !important;
  }
}

/* Service page hero: shared visual language with a category-aware accent. */
.service-page-hero {
  --service-accent: #29c8ff;
  min-height: 280px;
  display: flex;
  align-items: flex-end;
  text-align: right;
  background-image: linear-gradient(105deg, rgba(5,14,39,.96) 6%, rgba(7,24,63,.78) 55%, color-mix(in srgb, var(--service-accent) 42%, transparent) 120%), url("../img/service-hero.svg");
  background-position: center;
  background-size: cover;
}
.service-page-hero::before { background: radial-gradient(520px 260px at 15% 15%, color-mix(in srgb, var(--service-accent) 34%, transparent), transparent 70%); opacity: .8; }
.service-page-hero::after { content: ""; position: absolute; inset: auto 0 0; height: 1px; background: linear-gradient(90deg, transparent, var(--service-accent), transparent); opacity: .75; }
.service-page-hero > .container { width: 100%; position: relative; z-index: 1; }
.service-page-hero .service-hero-kicker { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 12px; color: var(--service-accent); font-size: 12px; font-weight: 800; letter-spacing: .12em; }
.service-page-hero .service-hero-kicker::before { content: ""; width: 28px; height: 2px; border-radius: 2px; background: var(--service-accent); box-shadow: 0 0 18px var(--service-accent); }
.service-page-hero h1 { max-width: 780px; margin-inline: 0; font-size: clamp(32px,5vw,58px); text-shadow: 0 8px 28px rgba(0,0,0,.2); }
.service-page-hero .crumb { color: rgba(229,242,255,.72); }
.service-page-hero .crumb a { color: #c8eaff; }
.service-page-hero--website-design, .service-page-hero--ecommerce-website, .service-page-hero--personal-website, .service-page-hero--corporate-website, .service-page-hero--site-redesign { --service-accent: #36d7ff; }
.service-page-hero--support-site, .service-page-hero--support-three-months, .service-page-hero--support-six-months, .service-page-hero--support-one-year { --service-accent: #77e7c0; }
.service-page-hero--seo, .service-page-hero--internal-seo, .service-page-hero--external-seo, .service-page-hero--technical-seo { --service-accent: #a1b9ff; }
.service-page-hero--content-marketing, .service-page-hero--text-content, .service-page-hero--visual-content, .service-page-hero--video-content, .service-page-hero--podcast-content, .service-page-hero--advertising-teaser { --service-accent: #e6a8ff; }
.service-page-hero--marketplace, .service-page-hero--digikala, .service-page-hero--snapp-shop, .service-page-hero--tapsi-shop, .service-page-hero--basalam, .service-page-hero--divar-store { --service-accent: #ffc86b; }
.service-page-hero--internal-social, .service-page-hero--bale, .service-page-hero--rubika, .service-page-hero--eitaa, .service-page-hero--rubino { --service-accent: #52c9ff; }
.service-page-hero--external-social, .service-page-hero--telegram, .service-page-hero--whatsapp, .service-page-hero--instagram { --service-accent: #70a8ff; }
.service-page-hero--organizational-management, .service-page-hero--crm, .service-page-hero--erp { --service-accent: #65e0d1; }
@media (max-width: 700px) {
  .service-page-hero { min-height: 245px; padding-block: calc(var(--header-h) + 42px) 52px; background-position: 62% center; }
  .service-page-hero h1 { font-size: clamp(28px,8vw,42px); }
  .service-page-hero .crumb { font-size: 13px; line-height: 1.9; }
}
@media (prefers-reduced-motion: reduce) { .service-page-hero .hero-anim { animation: none !important; opacity: 1 !important; transform: none !important; } }

/* RASA HOMEPAGE RESET v5 — one final, coherent layer over the accumulated
   homepage experiments. Keeps the existing markup and portfolio motion, but
   gives the front page a stable visual system in both themes. */
body.home, body.page-id-39 {
  --rasa-home-ink: #081a3b;
  --rasa-home-muted: #5b6f8f;
  --rasa-home-surface: rgba(255,255,255,.82);
  --rasa-home-line: rgba(55,137,218,.16);
  --rasa-home-accent: #1687ff;
  --rasa-home-cyan: #35d8ff;
  overflow-x: clip;
}
html.theme-dark body.home, html.theme-dark body.page-id-39 {
  --rasa-home-ink: #f3f8ff;
  --rasa-home-muted: #a9bdd9;
  --rasa-home-surface: rgba(10,28,61,.76);
  --rasa-home-line: rgba(128,204,255,.17);
  --rasa-home-accent: #5ab9ff;
  --rasa-home-cyan: #68e5ff;
}

/* Hero: stable two-column art direction, no clipped boxes or accidental white
   text on the light theme. */
body.home .hero, body.page-id-39 .hero {
  min-height: min(820px, 100svh) !important;
  padding: clamp(108px, 12vh, 138px) 0 clamp(56px, 7vh, 88px) !important;
  background:
    linear-gradient(90deg, rgba(3,13,37,.96) 0%, rgba(5,24,60,.84) 43%, rgba(5,24,60,.30) 100%),
    url('../img/rasa-home-growth-atmosphere.png') center/cover no-repeat !important;
  border-radius: 0 !important;
}
body.home .hero::before, body.page-id-39 .hero::before { opacity: .35; mix-blend-mode: screen; }
body.home .hero .container, body.page-id-39 .hero .container {
  width: min(1180px, calc(100% - 42px)) !important;
  grid-template-columns: minmax(0, .92fr) minmax(390px, 1.08fr) !important;
  align-items: center !important;
  gap: clamp(32px, 6vw, 86px) !important;
}
body.home .hero-copy, body.page-id-39 .hero-copy { max-width: 610px !important; }
body.home .hero h1, body.page-id-39 .hero h1 { font-size: clamp(40px, 5.2vw, 72px) !important; line-height: 1.22 !important; letter-spacing: -.045em; text-wrap: balance; }
body.home .hero p, body.page-id-39 .hero p { max-width: 590px; color: rgba(228,240,255,.82) !important; font-size: clamp(16px, 1.45vw, 20px) !important; line-height: 2.05 !important; }
body.home .hero-actions, body.page-id-39 .hero-actions { gap: 12px !important; }
body.home .rasa-growth-hero-art, body.page-id-39 .rasa-growth-hero-art { min-height: 500px !important; isolation: isolate; }
body.home .rasa-growth-hero-art::before, body.page-id-39 .rasa-growth-hero-art::before { content:""; position:absolute; inset:11% 6% 7%; border:1px solid rgba(106,215,255,.22); border-radius:50%; transform:rotate(-18deg) scaleX(1.18); box-shadow:0 0 0 24px rgba(62,163,255,.035), inset 0 0 50px rgba(37,190,255,.06); pointer-events:none; }
body.home .rasa-logo-hero-mark, body.page-id-39 .rasa-logo-hero-mark { width:min(430px, 76%) !important; filter:drop-shadow(0 28px 54px rgba(0,0,0,.38)) drop-shadow(0 0 38px rgba(71,213,255,.42)); }
body.home .rasa-growth-orbit--one, body.page-id-39 .rasa-growth-orbit--one { width:80%; right:0; top:10%; border-color:rgba(68,210,255,.35); }
body.home .rasa-growth-orbit--two, body.page-id-39 .rasa-growth-orbit--two { width:52%; left:0; bottom:8%; border-color:rgba(153,132,255,.38); }

/* Light theme: the hero remains high-contrast but the entire composition is
   light, so toggling themes never produces an unreadable half-dark page. */
html:not(.theme-dark) body.home .hero, html:not(.theme-dark) body.page-id-39 .hero {
  background:
    linear-gradient(90deg, rgba(249,252,255,.94) 0%, rgba(244,249,255,.82) 40%, rgba(240,247,255,.28) 100%),
    url('../img/rasa-light-wave.png') center/cover no-repeat !important;
  color: var(--rasa-home-ink);
}
html:not(.theme-dark) body.home .hero h1, html:not(.theme-dark) body.page-id-39 .hero h1,
html:not(.theme-dark) body.home .hero .hero-copy h1, html:not(.theme-dark) body.page-id-39 .hero .hero-copy h1 { color: var(--rasa-home-ink) !important; text-shadow:none; }
html:not(.theme-dark) body.home .hero p, html:not(.theme-dark) body.page-id-39 .hero p { color: #536987 !important; }
html:not(.theme-dark) body.home .hero-copy .eyebrow, html:not(.theme-dark) body.page-id-39 .hero-copy .eyebrow { background:rgba(255,255,255,.72); color:#1164c5; border-color:rgba(23,125,230,.18); }
html:not(.theme-dark) body.home .rasa-growth-hero-art::before, html:not(.theme-dark) body.page-id-39 .rasa-growth-hero-art::before { border-color:rgba(26,128,232,.17); box-shadow:0 0 0 24px rgba(37,145,255,.035),inset 0 0 50px rgba(37,145,255,.08); }

/* Categories: compact editorial cards with a real visual rhythm. */
body.home .features-grid, body.page-id-39 .features-grid { position:relative; grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:16px !important; max-width:1160px !important; }
body.home .features-grid .feature, body.page-id-39 .features-grid .feature { min-height:214px; padding:26px 22px 22px !important; border:1px solid var(--rasa-home-line) !important; border-radius:24px !important; background:linear-gradient(150deg,var(--rasa-home-surface),color-mix(in srgb,var(--rasa-home-surface) 74%, transparent)) !important; box-shadow:0 14px 32px rgba(15,69,138,.07) !important; overflow:hidden; }
body.home .features-grid .feature::before, body.page-id-39 .features-grid .feature::before { content:""; position:absolute; inset:auto -18% -50% 18%; height:130px; background:radial-gradient(circle,rgba(46,198,255,.23),transparent 68%); opacity:.75; transition:transform .45s ease,opacity .3s ease; }
body.home .features-grid .feature:hover, body.page-id-39 .features-grid .feature:hover { transform:translateY(-8px) !important; border-color:rgba(42,174,255,.55) !important; box-shadow:0 24px 50px rgba(16,96,189,.16) !important; }
body.home .features-grid .feature:hover::before, body.page-id-39 .features-grid .feature:hover::before { transform:translateY(-24px) scale(1.18); opacity:1; }
body.home .features-grid .feature .rasa-feature-chip, body.page-id-39 .features-grid .feature .rasa-feature-chip { position:relative; z-index:1; width:46px; height:46px; margin-bottom:22px; border-radius:15px; color:var(--rasa-home-accent); background:color-mix(in srgb,var(--rasa-home-accent) 12%,transparent); box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--rasa-home-accent) 22%,transparent); }
body.home .features-grid .feature h3, body.page-id-39 .features-grid .feature h3 { position:relative; z-index:1; font-size:clamp(17px,1.45vw,21px) !important; margin-bottom:10px !important; color:var(--rasa-home-ink); }
body.home .features-grid .feature p, body.page-id-39 .features-grid .feature p { position:relative; z-index:1; color:var(--rasa-home-muted) !important; line-height:1.9; }

/* Brands: make it feel like a living network instead of a plain logo strip. */
body.home .rhd-brand-wall, body.page-id-39 .rhd-brand-wall { min-height:235px; padding:44px clamp(20px,5vw,70px) !important; background:linear-gradient(120deg,rgba(7,23,54,.91),rgba(11,45,91,.76)),url('../img/rasa-brand-network.png') center/cover no-repeat !important; border:1px solid rgba(87,205,255,.24) !important; border-radius:30px !important; box-shadow:0 24px 62px rgba(3,20,58,.2) !important; }
body.home .rhd-brand-wall::before, body.page-id-39 .rhd-brand-wall::before { opacity:.45; }
body.home .rhd-brand-wall img, body.page-id-39 .rhd-brand-wall img { filter:grayscale(1) brightness(2) contrast(.82) !important; opacity:.74 !important; }
body.home .rhd-brand-wall a:hover img, body.page-id-39 .rhd-brand-wall a:hover img { filter:grayscale(0) brightness(1.1) !important; opacity:1 !important; }
html:not(.theme-dark) body.home .rhd-brand-wall, html:not(.theme-dark) body.page-id-39 .rhd-brand-wall { background:linear-gradient(120deg,rgba(245,250,255,.92),rgba(225,242,255,.78)),url('../img/rasa-light-wave.png') center/cover no-repeat !important; border-color:rgba(23,125,230,.16) !important; }
html:not(.theme-dark) body.home .rhd-brand-wall img, html:not(.theme-dark) body.page-id-39 .rhd-brand-wall img { filter:grayscale(1) contrast(.72) !important; opacity:.65 !important; }

/* Extra SVG-like ambient layers and scroll response. */
body.home .rasa-scroll-stage, body.page-id-39 .rasa-scroll-stage { isolation:isolate; }
body.home .rasa-scroll-stage > .rasa-scroll-scene, body.page-id-39 .rasa-scroll-stage > .rasa-scroll-scene { opacity:.7; transform:translate3d(0,calc(var(--rasa-scroll-depth,0) * -18px),0); transition:opacity .4s ease; }
body.home .rasa-scroll-stage.rasa-inview > .rasa-scroll-scene, body.page-id-39 .rasa-scroll-stage.rasa-inview > .rasa-scroll-scene { opacity:1; }
body.home .section:not(.hero):nth-of-type(odd), body.page-id-39 .section:not(.hero):nth-of-type(odd) { background-image:url('../img/rasa-light-wave.png'); background-position:center; background-size:cover; }
html.theme-dark body.home .section:not(.hero):nth-of-type(odd), html.theme-dark body.page-id-39 .section:not(.hero):nth-of-type(odd) { background-image:linear-gradient(rgba(5,17,43,.9),rgba(5,17,43,.92)),url('../img/rasa-home-growth-atmosphere.png'); }

/* Bottom CTA docks into the page tail once the visitor reaches the end. */
.rasa-bottom-consult { transition:position .3s ease,transform .3s ease,box-shadow .3s ease; }
body.rasa-at-page-end .rasa-bottom-consult { position:absolute !important; left:50% !important; right:auto !important; bottom:32px !important; transform:translateX(-50%) !important; z-index:12 !important; box-shadow:0 18px 44px rgba(2,18,58,.28) !important; }
body.rasa-at-page-end { padding-bottom:0 !important; }
@media (max-width:900px) { body.home .hero .container, body.page-id-39 .hero .container { grid-template-columns:1fr !important; text-align:center; }.hero-copy,.hero-actions,.hero-stats { margin-inline:auto; justify-content:center; }.rasa-growth-hero-art { order:-1; min-height:330px !important; } body.home .features-grid,body.page-id-39 .features-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media (max-width:560px) { body.home .hero,body.page-id-39 .hero { min-height:auto !important; padding-top:96px !important; }.rasa-growth-hero-art { min-height:280px !important; }.rasa-logo-hero-mark { width:min(300px,75vw) !important; } body.home .features-grid,body.page-id-39 .features-grid { grid-template-columns:1fr !important; } body.home .features-grid .feature,body.page-id-39 .features-grid .feature { min-height:172px; } body.rasa-at-page-end .rasa-bottom-consult { bottom:20px !important; width:calc(100% - 28px); } }
@media (prefers-reduced-motion:reduce) { body.home .features-grid .feature,body.page-id-39 .features-grid .feature,body.home .rasa-scroll-stage > .rasa-scroll-scene,body.page-id-39 .rasa-scroll-stage > .rasa-scroll-scene,.rasa-bottom-consult { transition:none !important; transform:none !important; } }

/* RASA HOMEPAGE GROWTH NETWORK v1 — scoped to the front page only. */
body.home .hero, body.page-id-39 .hero {
  isolation: isolate;
  background:
    radial-gradient(680px 560px at 79% 52%, rgba(13,138,255,.22), transparent 68%),
    radial-gradient(430px 340px at 18% 10%, rgba(81,222,255,.14), transparent 70%),
    linear-gradient(118deg, #030b20 6%, #061735 54%, #082454 100%) !important;
}
body.home .hero::after, body.page-id-39 .hero::after { z-index: -1; opacity: .66; background-image: linear-gradient(rgba(87,205,255,.065) 1px, transparent 1px), linear-gradient(90deg, rgba(87,205,255,.065) 1px, transparent 1px); background-size: 54px 54px; }
body.home .hero .container, body.page-id-39 .hero .container { position: relative; z-index: 1; }
.rasa-growth-hero-art { position: relative; min-height: 500px; display: grid; place-items: center; overflow: visible; }
.rasa-logo-hero-mark { position:relative; z-index:2; width:min(470px, 82%); height:auto; filter:drop-shadow(0 30px 50px rgba(0,0,0,.38)) drop-shadow(0 0 32px rgba(48,203,255,.34)); transform-origin:50% 50%; animation:rasaLogoHeroFloat 11s cubic-bezier(.45,.05,.55,.95) infinite; }
.rasa-growth-orbit { position: absolute; border: 1px solid rgba(92,211,255,.26); border-radius: 50%; pointer-events: none; }
.rasa-growth-orbit--one { width: 70%; aspect-ratio: 1; right: 4%; top: 12%; animation: rasaOrbit 20s linear infinite; }
.rasa-growth-orbit--two { width: 42%; aspect-ratio: 1; left: 6%; bottom: 8%; border-color: rgba(115,143,255,.36); animation: rasaOrbit 14s linear reverse infinite; }
.rasa-growth-pulse { position: absolute; width: 15px; height: 15px; border-radius: 50%; background: #5ee8ff; box-shadow: 0 0 0 7px rgba(94,232,255,.12), 0 0 28px #5ee8ff; animation: rasaPulse 2.8s ease-out infinite; }
.rasa-growth-pulse--one { right: 24%; top: 24%; }.rasa-growth-pulse--two { left: 23%; bottom: 26%; animation-delay: 1.2s; background: #9a8cff; }
@keyframes rasaLogoHeroFloat { 0%,100% { transform:translate3d(0,0,0) rotate(-2deg) scale(1); } 45% { transform:translate3d(-9px,-16px,0) rotate(2.25deg) scale(1.025); } 70% { transform:translate3d(5px,-8px,0) rotate(.5deg) scale(1.012); } }
@keyframes rasaOrbit { to { transform: rotate(360deg); } }
@keyframes rasaPulse { 50% { transform: scale(1.45); opacity: .56; } }

body.home .section, body.page-id-39 .section, body.home .rhd-section, body.page-id-39 .rhd-section { padding-block: clamp(56px, 6vw, 88px); }
body.home :is(.section-head h2,.rhd-head h2,.rasa-services-head h2), body.page-id-39 :is(.section-head h2,.rhd-head h2,.rasa-services-head h2) { font-size: clamp(31px, 3.7vw, 54px); line-height: 1.24; }
@media (hover:hover) and (pointer:fine) { body.home :is(.feature,.work,.rhd-post-card,.rasa-svc-card), body.page-id-39 :is(.feature,.work,.rhd-post-card,.rasa-svc-card) { transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease, background-color .28s ease; } body.home :is(.feature,.work,.rhd-post-card,.rasa-svc-card):hover, body.page-id-39 :is(.feature,.work,.rhd-post-card,.rasa-svc-card):hover { transform: translateY(-8px); box-shadow: 0 22px 48px rgba(5,31,83,.18); border-color: rgba(63,198,255,.52); background-color: color-mix(in srgb, var(--surface, #fff) 92%, #61d9ff); } }
.rasa-portfolio-summary { margin: 8px 0 0; font-size: 13px; line-height: 1.8; color: var(--muted, #60718e); }

.rasa-home-social-dock { position: fixed; z-index: 70; left: 18px; top: 50%; transform: translateY(-50%); display: grid; gap: 7px; padding: 8px; border: 1px solid rgba(100,192,255,.3); border-radius: 16px; background: color-mix(in srgb, var(--surface, #fff) 84%, transparent); box-shadow: 0 14px 38px rgba(4,23,60,.18); backdrop-filter: blur(14px); }
.rasa-home-social-dock a { width: 38px; height: 38px; display: grid; place-items: center; color: var(--text, #061735); border-radius: 11px; transition: transform .2s ease, background .2s ease, color .2s ease; }
.rasa-home-social-dock a:hover { color:#fff; background:#087ff5; transform: translateX(3px); }.rasa-home-social-dock svg { width: 18px; height: 18px; fill: currentColor; }

.rasa-blog-slider-shell { position: relative; }.rasa-blog-slider-controls { display:flex; justify-content:flex-start; gap:8px; margin: 0 0 20px; }.rasa-blog-slider-controls button { width:42px; height:42px; border:1px solid color-mix(in srgb, var(--line,#dce7f5) 85%, #42cfff); border-radius:12px; color:var(--text,#061735); background:var(--surface,#fff); cursor:pointer; font:inherit; transition:.2s ease; }.rasa-blog-slider-controls button:hover { color:#fff; background:#087ff5; border-color:#087ff5; }
body.home .rhd-blog-grid[data-rasa-slider], body.page-id-39 .rhd-blog-grid[data-rasa-slider] { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(280px, 31vw); grid-template-columns:none; overflow-x:auto; gap:20px; padding:4px 2px 18px; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:#38c6ff transparent; }.rhd-blog-grid[data-rasa-slider] > * { scroll-snap-align:start; }

.rasa-card-dialog { width:min(520px, calc(100vw - 32px)); border:0; border-radius:22px; padding:0; color:var(--text,#071a3a); background:var(--surface,#fff); box-shadow:0 28px 80px rgba(2,12,37,.4); }.rasa-card-dialog::backdrop { background:rgba(2,11,31,.68); backdrop-filter:blur(5px); }.rasa-card-dialog__body { padding:30px; }.rasa-card-dialog h2 { margin:0 44px 12px 0; font-size:28px; }.rasa-card-dialog p { margin:0; line-height:2; color:var(--muted,#62718d); }.rasa-card-dialog button { position:absolute; inset:14px 14px auto auto; width:34px; height:34px; border:0; border-radius:10px; color:inherit; background:color-mix(in srgb, var(--surface-alt,#eff5ff) 86%, #62d7ff); cursor:pointer; font-size:22px; }.feature[data-rasa-dialog] { cursor:pointer; }
.theme-dark .rasa-home-social-dock { background:rgba(11,25,54,.78); }.theme-dark .rasa-blog-slider-controls button { background:#102346; color:#e8f4ff; }.theme-dark .rasa-card-dialog { background:#102346; color:#edf7ff; }.theme-dark .rasa-card-dialog p,.theme-dark .rasa-portfolio-summary { color:#a9bddc; }
@media (max-width: 760px) { .rasa-growth-hero-art { min-height:310px; }.rasa-logo-hero-mark { width:min(340px,74vw); }.rasa-growth-orbit--one { right:11%; }.rasa-home-social-dock { top:auto; bottom:18px; left:50%; transform:translateX(-50%); grid-auto-flow:column; grid-template-columns:repeat(2,1fr); }.rasa-home-social-dock a:hover { transform:translateY(-2px); } body.home .rhd-blog-grid[data-rasa-slider],body.page-id-39 .rhd-blog-grid[data-rasa-slider] { grid-auto-columns:84vw; } }
@media (prefers-reduced-motion: reduce) { .rasa-logo-hero-mark,.rasa-growth-orbit,.rasa-growth-pulse { animation:none !important; } body.home :is(.feature,.work,.rhd-post-card,.rasa-svc-card),body.page-id-39 :is(.feature,.work,.rhd-post-card,.rasa-svc-card) { transition:none; } }

/* Homepage editorial article rail: replaces the raw scroll-grid treatment. */
body.home .rhd-blog-section .rasa-blog-slider-shell, body.page-id-39 .rhd-blog-section .rasa-blog-slider-shell { margin-top:26px; }
body.home .rhd-blog-section .rasa-blog-slider-controls, body.page-id-39 .rhd-blog-section .rasa-blog-slider-controls { display:flex; align-items:center; justify-content:space-between; min-height:48px; margin:0 0 14px; padding:0 2px; }
.rasa-blog-slider-label { color:var(--text,#061735); font-size:13px; font-weight:800; letter-spacing:.02em; }.rasa-blog-slider-label::before { content:""; display:inline-block; width:24px; height:2px; margin-inline-end:9px; vertical-align:middle; background:#28cfff; box-shadow:0 0 12px rgba(40,207,255,.7); }
.rasa-blog-slider-actions { display:inline-flex; gap:7px; }.rasa-blog-slider-controls button { width:40px; height:40px; border-radius:50%; }
body.home .rhd-blog-grid.rasa-editorial-rail, body.page-id-39 .rhd-blog-grid.rasa-editorial-rail { display:flex; gap:18px; grid-template-columns:none; grid-auto-flow:unset; grid-auto-columns:unset; overflow-x:auto; overscroll-behavior-inline:contain; padding:4px 2px 20px; scroll-padding-inline:2px; scroll-snap-type:inline mandatory; scrollbar-width:none; }
body.home .rhd-blog-grid.rasa-editorial-rail::-webkit-scrollbar, body.page-id-39 .rhd-blog-grid.rasa-editorial-rail::-webkit-scrollbar { display:none; }
body.home .rhd-blog-grid.rasa-editorial-rail .rhd-post-card, body.page-id-39 .rhd-blog-grid.rasa-editorial-rail .rhd-post-card { flex:0 0 clamp(276px,24vw,340px); min-width:0; margin:0; scroll-snap-align:start; border:1px solid color-mix(in srgb,var(--line,#dbe8f6) 88%,#46cfff); border-radius:20px; overflow:hidden; background:var(--surface,#fff); box-shadow:0 10px 30px rgba(10,31,75,.08); }
body.home .rhd-blog-grid.rasa-editorial-rail .rhd-post-card.rasa-editorial-featured, body.page-id-39 .rhd-blog-grid.rasa-editorial-rail .rhd-post-card.rasa-editorial-featured { flex-basis:clamp(360px,35vw,500px); border-color:rgba(51,202,255,.56); box-shadow:0 18px 42px rgba(7,77,170,.14); }
body.home .rhd-blog-grid.rasa-editorial-rail .rhd-post-card .rhd-post-media,body.page-id-39 .rhd-blog-grid.rasa-editorial-rail .rhd-post-card .rhd-post-media { aspect-ratio:16/9; overflow:hidden; }.rhd-blog-grid.rasa-editorial-rail .rhd-post-card .rhd-post-media img { width:100%; height:100%; object-fit:cover; }.rhd-blog-grid.rasa-editorial-rail .rhd-post-card .rhd-post-body { padding:20px; }.rhd-blog-grid.rasa-editorial-rail .rhd-post-card h3 { font-size:clamp(18px,1.45vw,22px); line-height:1.58; }.rhd-blog-grid.rasa-editorial-rail .rhd-post-card p { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.theme-dark .rasa-blog-slider-label { color:#edf7ff; }.theme-dark .rhd-blog-grid.rasa-editorial-rail .rhd-post-card { background:#0d2042; border-color:rgba(126,204,255,.22); box-shadow:0 12px 32px rgba(0,0,0,.22); }.theme-dark .rhd-blog-grid.rasa-editorial-rail .rhd-post-card.rasa-editorial-featured { border-color:rgba(79,210,255,.52); }
@media (max-width:760px) { body.home .rhd-blog-grid.rasa-editorial-rail .rhd-post-card,body.home .rhd-blog-grid.rasa-editorial-rail .rhd-post-card.rasa-editorial-featured,body.page-id-39 .rhd-blog-grid.rasa-editorial-rail .rhd-post-card,body.page-id-39 .rhd-blog-grid.rasa-editorial-rail .rhd-post-card.rasa-editorial-featured { flex-basis:84vw; }.rasa-blog-slider-label { font-size:12px; }.rhd-blog-grid.rasa-editorial-rail .rhd-post-card .rhd-post-body { padding:18px; } }

/* Standard article rail: every article has the same weight, with edge controls. */
body.home .rhd-blog-section .rasa-standard-rail-shell,body.page-id-39 .rhd-blog-section .rasa-standard-rail-shell { position:relative; padding-inline:58px; }
body.home .rhd-blog-grid.rasa-standard-rail,body.page-id-39 .rhd-blog-grid.rasa-standard-rail { display:flex; gap:18px; overflow-x:auto; overscroll-behavior-inline:contain; padding:4px 2px 20px; scroll-padding-inline:2px; scroll-snap-type:inline mandatory; scrollbar-width:none; }
body.home .rhd-blog-grid.rasa-standard-rail::-webkit-scrollbar,body.page-id-39 .rhd-blog-grid.rasa-standard-rail::-webkit-scrollbar { display:none; }
body.home .rhd-blog-grid.rasa-standard-rail .rhd-post-card,body.page-id-39 .rhd-blog-grid.rasa-standard-rail .rhd-post-card { flex:0 0 clamp(275px,28vw,350px); min-width:0; margin:0; scroll-snap-align:start; border:1px solid color-mix(in srgb,var(--line,#dbe8f6) 88%,#46cfff); border-radius:20px; overflow:hidden; background:var(--surface,#fff); box-shadow:0 10px 30px rgba(10,31,75,.08); }
body.home .rasa-standard-rail-shell .rasa-blog-slider-controls,body.page-id-39 .rasa-standard-rail-shell .rasa-blog-slider-controls { position:absolute; z-index:3; inset:0; margin:0; pointer-events:none; }
.rasa-standard-rail-shell .rasa-blog-slider-controls button { position:absolute; top:50%; width:44px; height:44px; border-radius:50%; transform:translateY(-50%); pointer-events:auto; box-shadow:0 10px 24px rgba(5,25,68,.2); }.rasa-standard-rail-shell .rasa-rail-prev { left:0; }.rasa-standard-rail-shell .rasa-rail-next { right:0; }
.theme-dark .rhd-blog-grid.rasa-standard-rail .rhd-post-card { background:#0d2042; border-color:rgba(126,204,255,.22); box-shadow:0 12px 32px rgba(0,0,0,.22); }
@media (max-width:760px) { body.home .rhd-blog-section .rasa-standard-rail-shell,body.page-id-39 .rhd-blog-section .rasa-standard-rail-shell { padding-inline:0; } body.home .rhd-blog-grid.rasa-standard-rail .rhd-post-card,body.page-id-39 .rhd-blog-grid.rasa-standard-rail .rhd-post-card { flex-basis:84vw; } body.home .rasa-standard-rail-shell .rasa-blog-slider-controls,body.page-id-39 .rasa-standard-rail-shell .rasa-blog-slider-controls { display:none; } }

/* RASA SIGNATURE HEADER v1 */
@media (min-width: 769px) {
  .site-header { height:86px; padding-top:12px; transition:height .28s ease,padding .28s ease,background .28s ease,box-shadow .28s ease,border-color .28s ease; }
  .site-header::before { content:""; position:absolute; inset:10px max(22px,calc((100% - 1240px)/2)) auto; height:66px; border:1px solid transparent; border-radius:20px; pointer-events:none; transition:.28s ease; }
  .site-header:not(.scrolled)::before { background:linear-gradient(110deg,rgba(4,16,44,.52),rgba(7,33,79,.2)); border-color:rgba(148,225,255,.16); box-shadow:inset 0 1px rgba(255,255,255,.08),0 12px 34px rgba(0,10,34,.12); backdrop-filter:blur(14px); }
  .site-header.scrolled { height:74px; padding-top:4px; background:rgba(6,20,50,.82); border-bottom:1px solid rgba(105,208,255,.16); box-shadow:0 10px 30px rgba(0,14,44,.18); backdrop-filter:blur(18px); }
  .site-header .container { position:relative; z-index:1; gap:26px; }
  .site-header .brand { padding-inline:6px 2px; }.site-header .brand-logo { height:48px; filter:drop-shadow(0 0 12px rgba(89,214,255,.24)); }.site-header.scrolled .brand-logo { height:43px; filter:drop-shadow(0 0 8px rgba(89,214,255,.14)); }
  .site-header .nav { gap:25px; }.site-header .nav > a,.site-header .nav > .has-dropdown > .dd-toggle { font-size:14px; font-weight:750; letter-spacing:-.01em; }
  .site-header:not(.scrolled) .nav > a:not(.nav-cta),.site-header:not(.scrolled) .nav > .has-dropdown > .dd-toggle { color:rgba(242,250,255,.88); }
  .site-header .nav > a::after,.site-header .nav > .has-dropdown > .dd-toggle::after { right:50%; bottom:-8px; width:0; height:2px; border-radius:2px; transform:translateX(50%); background:#54dcff; box-shadow:0 0 12px #54dcff; transition:width .22s ease; }
  .site-header .nav > a:hover::after,.site-header .nav > a.current::after,.site-header .nav > .has-dropdown > .dd-toggle:hover::after,.site-header .nav > .has-dropdown > .dd-toggle.current::after { width:calc(100% - 6px); }
  .site-header .nav .rasa-header-cta { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:0 17px; margin-inline-start:4px; color:#fff!important; background:linear-gradient(135deg,#1179fa,#3dd8ff); border:1px solid rgba(197,246,255,.42); border-radius:13px; box-shadow:0 9px 22px rgba(0,129,255,.26); }.site-header .nav .rasa-header-cta::after { display:none; }.site-header .nav .rasa-header-cta:hover { transform:translateY(-2px); box-shadow:0 13px 28px rgba(0,129,255,.35); }
  .site-header .nav > a[href$="/contact/"]:not(.nav-cta) { display:none; }
  .theme-toggle { border:1px solid rgba(128,218,255,.26); background:rgba(255,255,255,.08); box-shadow:inset 0 1px rgba(255,255,255,.08); }
}
@media (prefers-reduced-motion:reduce) { .site-header,.site-header::before,.site-header .nav .rasa-header-cta { transition:none!important; } }

/* RASA SIGNATURE BRAND HEADER v4 */
@media (min-width:769px) {
  .site-header.rasa-signature-header {
    height:96px !important;
    padding-top:12px !important;
    overflow:visible;
    background:transparent !important;
    box-shadow:none !important;
  }
  .site-header.rasa-signature-header::before {
    content:"";
    position:absolute;
    z-index:0;
    inset:10px max(20px,calc((100% - 1240px)/2)) auto;
    height:72px !important;
    border:1px solid rgba(137,220,255,.2);
    border-radius:22px !important;
    background:linear-gradient(115deg,rgba(4,18,48,.92),rgba(8,39,84,.78));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 18px 50px rgba(0,12,40,.22);
    backdrop-filter:blur(20px) saturate(145%);
    opacity:1 !important;
    transform:none !important;
    pointer-events:none;
    transition:height .25s ease,background .25s ease,border-color .25s ease,box-shadow .25s ease;
  }
  .site-header.rasa-signature-header::after {
    content:"";
    position:absolute;
    z-index:1;
    top:10px;
    right:max(48px,calc((100% - 1180px)/2));
    width:112px;
    height:2px;
    border-radius:0 0 8px 8px;
    background:linear-gradient(90deg,transparent,#33d5ff,#2b7cff,transparent);
    box-shadow:0 0 16px rgba(51,213,255,.65);
    pointer-events:none;
  }
  .site-header.rasa-signature-header.scrolled { height:82px !important; padding-top:4px !important; }
  .site-header.rasa-signature-header.scrolled::before { top:4px !important; height:66px !important; box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 14px 38px rgba(0,12,40,.2); }
  .site-header.rasa-signature-header.scrolled::after { top:4px; }

  .site-header.rasa-signature-header .container {
    position:relative;
    z-index:2;
    width:min(100% - 40px,1200px);
    min-height:72px;
    padding-inline:18px;
    gap:18px;
    flex-wrap:nowrap;
  }
  .site-header.rasa-signature-header.scrolled .container { min-height:66px; }

  .site-header.rasa-signature-header .brand {
    order:1;
    flex:0 0 auto;
    gap:10px;
    padding:0;
    color:#fff;
  }
  .site-header.rasa-signature-header .brand::after { display:none !important; }
  .site-header.rasa-signature-header .brand-logo {
    width:46px !important;
    height:52px !important;
    filter:drop-shadow(0 7px 12px rgba(0,0,0,.34)) drop-shadow(0 0 10px rgba(72,211,255,.28)) !important;
    transition:transform .28s cubic-bezier(.16,1,.3,1),filter .28s ease;
  }
  .site-header.rasa-signature-header .brand:hover .brand-logo { transform:perspective(240px) rotateY(-10deg) translateY(-2px); filter:drop-shadow(0 9px 14px rgba(0,0,0,.38)) drop-shadow(0 0 15px rgba(72,211,255,.46)) !important; }
  .rasa-brand-copy { display:grid; gap:2px; min-width:76px; line-height:1; white-space:nowrap; }
  .rasa-brand-copy b { color:#f7fbff; font-size:15px; font-weight:900; letter-spacing:-.035em; }
  .rasa-brand-copy small { color:#68dfff; font-size:8px; font-weight:750; letter-spacing:.04em; }

  .site-header.rasa-signature-header .nav {
    order:2;
    flex:1 1 auto;
    min-width:0;
    justify-content:center;
    gap:clamp(14px,1.35vw,24px);
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }
  .site-header.rasa-signature-header .nav > a,
  .site-header.rasa-signature-header .nav > .has-dropdown > .dd-toggle {
    min-height:42px;
    display:inline-flex;
    align-items:center;
    padding:0 3px;
    border-radius:11px;
    color:rgba(241,249,255,.84);
    font-size:13px;
    font-weight:760;
    transition:color .2s ease,background .2s ease,transform .2s ease;
  }
  .site-header.rasa-signature-header .nav > a:not(.rasa-header-cta):hover,
  .site-header.rasa-signature-header .nav > a.current,
  .site-header.rasa-signature-header .nav > .has-dropdown > .dd-toggle:hover,
  .site-header.rasa-signature-header .nav > .has-dropdown > .dd-toggle.current { color:#fff; background:rgba(75,205,255,.09); }
  .site-header.rasa-signature-header .nav > a::after,
  .site-header.rasa-signature-header .nav > .has-dropdown > .dd-toggle::after {
    right:50%;
    bottom:2px;
    width:0;
    height:3px;
    border-radius:5px;
    transform:translateX(50%);
    background:#52ddff;
    box-shadow:0 0 10px rgba(82,221,255,.75);
    transition:width .22s cubic-bezier(.16,1,.3,1);
  }
  .site-header.rasa-signature-header .nav > a:hover::after,
  .site-header.rasa-signature-header .nav > a.current::after,
  .site-header.rasa-signature-header .nav > .has-dropdown > .dd-toggle:hover::after,
  .site-header.rasa-signature-header .nav > .has-dropdown > .dd-toggle.current::after { width:18px; }
  .site-header.rasa-signature-header .nav > a[href$="/contact/"]:not(.nav-cta) { display:none !important; }
  .site-header.rasa-signature-header .nav .rasa-header-cta {
    position:relative;
    min-height:44px;
    padding:0 18px;
    margin-inline-start:2px;
    overflow:hidden;
    color:#fff !important;
    border:1px solid rgba(211,248,255,.45);
    border-radius:14px;
    background:linear-gradient(135deg,#176cff 0%,#27aaff 52%,#43ddff 100%);
    box-shadow:0 10px 25px rgba(15,132,255,.33),inset 0 1px 0 rgba(255,255,255,.28);
  }
  .site-header.rasa-signature-header .nav .rasa-header-cta::after { display:none; }
  .site-header.rasa-signature-header .nav .rasa-header-cta::before {
    content:"";
    position:absolute;
    inset:-120% auto auto -45%;
    width:34%;
    height:340%;
    background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);
    transform:rotate(18deg);
    transition:left .45s cubic-bezier(.16,1,.3,1);
  }
  .site-header.rasa-signature-header .nav .rasa-header-cta:hover { transform:translateY(-2px); box-shadow:0 14px 30px rgba(15,132,255,.42),inset 0 1px 0 rgba(255,255,255,.3); }
  .site-header.rasa-signature-header .nav .rasa-header-cta:hover::before { left:120%; }

  .rasa-header-command {
    order:3;
    position:static !important;
    display:flex !important;
    align-items:center;
    gap:8px;
    width:auto !important;
    margin:0 !important;
    padding:0 !important;
    transform:none !important;
    background:none !important;
    border:0 !important;
    box-shadow:none !important;
  }
  .rasa-header-command .header-phone {
    min-height:44px;
    display:flex;
    align-items:center;
    gap:8px;
    padding:5px 11px;
    border:1px solid rgba(126,215,255,.18);
    border-radius:14px;
    color:#f3fbff;
    background:rgba(255,255,255,.07);
    transition:background .2s ease,border-color .2s ease,transform .2s ease;
  }
  .rasa-header-command .header-phone:hover { background:rgba(75,205,255,.13); border-color:rgba(97,218,255,.42); transform:translateY(-1px); }
  .rasa-header-command .header-phone svg { width:18px; height:18px; color:#59dcff; flex:none; }
  .rasa-header-phone-copy { display:grid; gap:2px; line-height:1; white-space:nowrap; }
  .rasa-header-phone-copy small { color:rgba(218,240,255,.64); font-size:8px; font-weight:700; }
  .rasa-header-phone-copy b { color:#fff; font-size:11px; font-weight:850; direction:ltr; }
  .rasa-header-command .header-socials { display:flex; align-items:center; gap:5px; }
  .rasa-header-command .header-socials a {
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    border:1px solid rgba(126,215,255,.16);
    border-radius:12px;
    color:rgba(230,247,255,.78);
    background:rgba(255,255,255,.055);
    transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease;
  }
  .rasa-header-command .header-socials a:hover { color:#fff; background:rgba(50,204,255,.16); border-color:rgba(82,221,255,.44); transform:translateY(-2px); }
  .rasa-header-command .header-socials svg { width:17px; height:17px; }

  .site-header.rasa-signature-header .theme-toggle {
    order:4;
    width:44px;
    height:44px;
    margin:0;
    border:1px solid rgba(126,215,255,.2);
    border-radius:14px;
    color:#72e4ff;
    background:rgba(255,255,255,.07);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
  }
  .site-header.rasa-signature-header .theme-toggle:hover { transform:translateY(-2px); color:#fff; border-color:rgba(82,221,255,.48); background:rgba(50,204,255,.14); }

  html:not(.theme-dark) body:not(.home) .site-header.rasa-signature-header:not(.scrolled)::before,
  html:not(.theme-dark) .site-header.rasa-signature-header.scrolled::before {
    background:linear-gradient(115deg,rgba(255,255,255,.96),rgba(241,248,255,.91));
    border-color:rgba(35,126,230,.17);
    box-shadow:inset 0 1px 0 #fff,0 16px 38px rgba(18,66,132,.12);
  }
  html:not(.theme-dark) body:not(.home) .site-header.rasa-signature-header:not(.scrolled) .brand,
  html:not(.theme-dark) .site-header.rasa-signature-header.scrolled .brand,
  html:not(.theme-dark) body:not(.home) .site-header.rasa-signature-header:not(.scrolled) .nav > a,
  html:not(.theme-dark) body:not(.home) .site-header.rasa-signature-header:not(.scrolled) .nav > .has-dropdown > .dd-toggle,
  html:not(.theme-dark) .site-header.rasa-signature-header.scrolled .nav > a,
  html:not(.theme-dark) .site-header.rasa-signature-header.scrolled .nav > .has-dropdown > .dd-toggle { color:#14284c; }
  html:not(.theme-dark) body:not(.home) .site-header.rasa-signature-header:not(.scrolled) .rasa-brand-copy b,
  html:not(.theme-dark) .site-header.rasa-signature-header.scrolled .rasa-brand-copy b { color:#0c2349; }
  html:not(.theme-dark) body:not(.home) .site-header.rasa-signature-header:not(.scrolled) .rasa-header-command .header-phone,
  html:not(.theme-dark) .site-header.rasa-signature-header.scrolled .rasa-header-command .header-phone { color:#10264a; background:rgba(31,117,224,.055); border-color:rgba(31,117,224,.14); }
  html:not(.theme-dark) body:not(.home) .site-header.rasa-signature-header:not(.scrolled) .rasa-header-phone-copy b,
  html:not(.theme-dark) .site-header.rasa-signature-header.scrolled .rasa-header-phone-copy b { color:#10264a; }
  html:not(.theme-dark) body:not(.home) .site-header.rasa-signature-header:not(.scrolled) .rasa-header-phone-copy small,
  html:not(.theme-dark) .site-header.rasa-signature-header.scrolled .rasa-header-phone-copy small { color:#536987; }
  html:not(.theme-dark) body:not(.home) .site-header.rasa-signature-header:not(.scrolled) .rasa-header-command .header-socials a,
  html:not(.theme-dark) .site-header.rasa-signature-header.scrolled .rasa-header-command .header-socials a,
  html:not(.theme-dark) body:not(.home) .site-header.rasa-signature-header:not(.scrolled) .theme-toggle,
  html:not(.theme-dark) .site-header.rasa-signature-header.scrolled .theme-toggle { color:#176ad8; background:rgba(31,117,224,.055); border-color:rgba(31,117,224,.15); }
}

@media (min-width:769px) and (max-width:1180px) {
  .site-header.rasa-signature-header .container { gap:12px; padding-inline:14px; }
  .site-header.rasa-signature-header .nav { gap:12px; }
  .site-header.rasa-signature-header .nav > a,
  .site-header.rasa-signature-header .nav > .has-dropdown > .dd-toggle { font-size:12px; }
  .rasa-brand-copy { display:none; }
  .rasa-header-command .header-socials { display:none; }
}
@media (min-width:769px) and (max-width:940px) { .rasa-header-command { display:none !important; } }
@media (max-width:768px) { .rasa-header-command,.rasa-brand-copy { display:none !important; } }
@media (prefers-reduced-motion:reduce) {
  .site-header.rasa-signature-header *,
  .site-header.rasa-signature-header::before,
  .site-header.rasa-signature-header::after { transition:none !important; animation:none !important; }
}

/* RASA VISUAL SYSTEM v1 — image-led navigation, fast search and restrained parallax */
.rasa-header-search,.rasa-header-language { min-height:36px; display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:0 10px; border:1px solid rgba(126,215,255,.18); border-radius:11px; color:#eaf9ff; background:rgba(255,255,255,.055); font:inherit; cursor:pointer; transition:background .2s ease,border-color .2s ease,transform .2s ease; }
.rasa-header-search svg,.rasa-header-language svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.rasa-header-search span { font-size:10px; font-weight:800; }
.rasa-header-language span { font-size:10px; font-weight:900; direction:ltr; }
.rasa-header-search:hover,.rasa-header-language:hover { color:#fff; background:rgba(50,204,255,.16); border-color:rgba(82,221,255,.44); transform:translateY(-1px); }
.rasa-header-language[aria-disabled="true"] { cursor:not-allowed; opacity:.82; }
.rasa-search-panel { position:absolute; z-index:20; top:82px; left:50%; width:min(480px,calc(100vw - 32px)); padding:18px; transform:translateX(-50%); border:1px solid rgba(100,212,255,.25); border-radius:20px; background:rgba(7,24,57,.96); box-shadow:0 24px 70px rgba(0,13,45,.32); backdrop-filter:blur(20px); }
.rasa-search-panel[hidden] { display:none; }
.rasa-search-panel__top { display:flex; align-items:center; justify-content:space-between; color:#f3fbff; font-weight:850; font-size:14px; }
.rasa-search-close { border:0; color:#9ceaff; background:transparent; font-size:24px; cursor:pointer; line-height:1; }
.rasa-search-field { display:flex; align-items:center; gap:9px; margin-top:14px; padding:0 12px; min-height:48px; border:1px solid rgba(112,214,255,.24); border-radius:13px; background:rgba(255,255,255,.08); }
.rasa-search-field svg { width:18px; height:18px; fill:none; stroke:#66ddff; stroke-width:1.8; stroke-linecap:round; }
.rasa-search-field input { width:100%; border:0; outline:0; color:#fff; background:transparent; font:inherit; font-size:13px; }
.rasa-search-field input::placeholder { color:rgba(231,248,255,.55); }
.rasa-search-results { display:grid; gap:6px; margin-top:12px; max-height:280px; overflow:auto; }
.rasa-search-result { display:flex; align-items:center; gap:10px; padding:11px 10px; border-radius:11px; color:#eefaff; text-decoration:none; font-size:12px; font-weight:750; transition:background .18s ease,transform .18s ease; }
.rasa-search-result:hover { background:rgba(68,210,255,.13); transform:translateX(-3px); }
.rasa-search-result__icon { display:grid; place-items:center; width:24px; height:24px; border-radius:8px; color:#62ddff; background:rgba(68,210,255,.12); }
.rasa-search-result__icon-svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.rasa-search-empty { margin:4px 0; color:rgba(231,248,255,.64); font-size:12px; line-height:1.8; }
html:not(.theme-dark) .rasa-header-search,html:not(.theme-dark) .rasa-header-language { color:#176ad8; background:rgba(31,117,224,.055); border-color:rgba(31,117,224,.15); }
html:not(.theme-dark) .rasa-search-panel { color:#14284c; background:rgba(255,255,255,.97); border-color:rgba(31,117,224,.18); box-shadow:0 24px 70px rgba(18,66,132,.18); }
html:not(.theme-dark) .rasa-search-panel__top { color:#14284c; }
html:not(.theme-dark) .rasa-search-field { background:#f4f8ff; border-color:rgba(31,117,224,.18); }
html:not(.theme-dark) .rasa-search-field input { color:#14284c; }
html:not(.theme-dark) .rasa-search-field input::placeholder,html:not(.theme-dark) .rasa-search-empty { color:#647899; }
html:not(.theme-dark) .rasa-search-result { color:#14284c; }

/* Replace decorative emoji-style affordances with a calm icon treatment. */
.site-header .dd-item::before,.site-header .dd-item::after { content:none !important; }
.site-header .dd-ic { display:grid; place-items:center; border-radius:11px; color:#4bdcff; background:rgba(54,205,255,.1); box-shadow:inset 0 0 0 1px rgba(87,219,255,.13); }
.site-header .rasa-menu-web .dropdown,.site-header .rasa-menu-growth .dropdown { overflow:hidden; }
.site-header .rasa-menu-web .dropdown::before,.site-header .rasa-menu-growth .dropdown::before { content:""; display:block; height:92px; margin:-18px -18px 12px; background-position:center; background-size:cover; border-bottom:1px solid rgba(95,215,255,.2); }
.site-header .rasa-menu-web .dropdown::before { background-image:linear-gradient(90deg,rgba(4,18,48,.2),rgba(4,18,48,.58)),url('../img/rasa-menu-web-design.png'); }
.site-header .rasa-menu-growth .dropdown::before { background-image:linear-gradient(90deg,rgba(4,18,48,.2),rgba(4,18,48,.58)),url('../img/rasa-menu-growth.png'); }
.site-header .rasa-menu-web .dropdown::before,.site-header .rasa-menu-growth .dropdown::before { display:none; }
.site-header .dropdown .rasa-menu-banner { display:flex; align-items:flex-end; gap:12px; min-height:88px; margin:0 0 12px; padding:12px; overflow:hidden; position:relative; border:1px solid rgba(100,216,255,.24); border-radius:14px; background:#071a3b; color:#fff; }
.site-header .dropdown .rasa-menu-banner::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(4,18,48,.15),rgba(4,18,48,.76)); pointer-events:none; }
.site-header .dropdown .rasa-menu-banner img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.9; }
.site-header .dropdown .rasa-menu-banner > div { position:relative; z-index:1; display:grid; gap:3px; }
.site-header .dropdown .rasa-menu-banner b { font-size:13px; font-weight:900; }
.site-header .dropdown .rasa-menu-banner small { max-width:230px; color:rgba(232,249,255,.76); font-size:10px; line-height:1.7; }
html:not(.theme-dark) .site-header .dropdown .rasa-menu-banner { border-color:rgba(31,117,224,.2); }
.testi { position:relative; overflow:hidden; border-color:color-mix(in srgb,var(--line,#dbe8f6) 78%,#3fd8ff); }
.testi::before { content:""; position:absolute; inset:0 auto 0 0; width:3px; background:linear-gradient(180deg,#2f7bff,#43d9ff); opacity:.8; }
.testi .av { overflow:hidden; position:relative; isolation:isolate; box-shadow:0 0 0 4px color-mix(in srgb,var(--paper,#fff) 85%,#43d9ff),0 10px 22px rgba(8,37,88,.14); }
.testi .av::after { content:""; position:absolute; inset:0; border-radius:inherit; box-shadow:inset 0 0 0 1px rgba(255,255,255,.42); pointer-events:none; }
.testi .av img { width:100%; height:100%; display:block; object-fit:cover; }
.rasa-project-label { position:absolute; right:12px; bottom:12px; z-index:2; padding:7px 10px; border:1px solid rgba(255,255,255,.25); border-radius:8px; color:#fff; background:rgba(5,20,52,.78); backdrop-filter:blur(8px); font-size:11px; font-weight:850; pointer-events:none; box-shadow:0 10px 24px rgba(0,10,35,.22); }
.rhd-portfolio-grid .pf-work .thumb,.rhd-portfolio-grid .pf-work .image,.rhd-portfolio-grid .pf-work .pf-thumb,.rhd-portfolio-grid .pf-work figure { position:relative; }
.rhd-brand-wall { position:relative; overflow:hidden; border:1px solid rgba(75,204,255,.14); border-radius:18px; background:linear-gradient(120deg,rgba(43,139,255,.08),rgba(62,217,255,.025)); box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 18px 42px rgba(10,45,105,.07); }
.rhd-brand-wall::before { content:""; position:absolute; inset:0; background:linear-gradient(110deg,transparent 0%,rgba(78,214,255,.12) 42%,transparent 68%); transform:translateX(45%); pointer-events:none; }
.rhd-brand-wall::after { content:""; position:absolute; inset:auto 0 0; height:1px; background:linear-gradient(90deg,transparent,#43d9ff,transparent); opacity:.65; }
.rhd-brand-wall img,.rhd-brand-wall svg { filter:grayscale(1); opacity:.62; transition:filter .22s ease,opacity .22s ease,transform .22s ease; }
.rhd-brand-wall a:hover img,.rhd-brand-wall a:hover svg,.rhd-brand-wall img:hover,.rhd-brand-wall svg:hover { filter:grayscale(0); opacity:1; transform:translateY(-3px); }
@media (max-width:768px) { .site-header .dropdown .rasa-menu-banner { min-height:72px; margin:4px 4px 8px; } .site-header .dropdown .rasa-menu-banner small { display:none; } .rasa-project-label { right:8px; bottom:8px; } }

/* Hero image layer and a restrained scroll depth effect; existing card scroll effects remain untouched. */
body.home .rasa-growth-hero,body.page-id-39 .rasa-growth-hero { min-height:clamp(650px,calc(100svh - 8px),860px); background-image:linear-gradient(90deg,rgba(4,15,42,.94) 0%,rgba(4,18,48,.74) 48%,rgba(4,18,48,.45) 100%),url('../img/rasa-home-visual.png'); background-position:center;background-size:cover; }
.rasa-parallax-ready { transform:translate3d(0,var(--rasa-parallax-y,0),0); transition:transform .45s cubic-bezier(.2,.7,.2,1); }
.rasa-growth-hero .rasa-parallax-ready { will-change:transform; }
.rasa-home-social-dock { color:#0b2a55; background:rgba(255,255,255,.93); border-color:rgba(29,126,220,.18); box-shadow:0 14px 32px rgba(13,50,105,.16); }
.rasa-home-social-dock a { color:currentColor; }
html.theme-dark .rasa-home-social-dock { color:#e9f9ff; background:rgba(8,28,65,.9); border-color:rgba(83,214,255,.28); box-shadow:0 16px 38px rgba(0,0,0,.3); }
.rasa-home-social-dock a:hover { color:#54ddff; background:rgba(65,211,255,.14); }
html.theme-dark .testi { border-color:rgba(92,213,255,.2); background:#0d2042; }
html.theme-dark .testi .av { box-shadow:0 0 0 4px rgba(70,209,255,.12),0 12px 28px rgba(0,0,0,.24); }
html.theme-dark .rhd-brand-wall { background:linear-gradient(120deg,rgba(41,133,255,.12),rgba(62,217,255,.035)); border-color:rgba(90,218,255,.18); box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 18px 42px rgba(0,0,0,.2); }
[data-tooltip] { position:relative; }
[data-tooltip]::after { content:attr(data-tooltip); position:absolute; z-index:50; right:50%; bottom:calc(100% + 9px); width:max-content; max-width:180px; padding:6px 9px; border-radius:8px; color:#fff; background:#102957; box-shadow:0 8px 20px rgba(0,15,50,.2); font-size:10px; font-weight:700; line-height:1.5; opacity:0; visibility:hidden; pointer-events:none; transform:translate(50%,4px); transition:opacity .16s ease,transform .16s ease,visibility .16s ease; }
[data-tooltip]:hover::after,[data-tooltip]:focus-visible::after { opacity:1; visibility:visible; transform:translate(50%,0); }
@media (max-width:1180px) { .rasa-header-search span { display:none; } .rasa-header-search,.rasa-header-language { width:36px; padding:0; } }
@media (max-width:768px) { .rasa-search-panel { top:68px; } body.home .rasa-growth-hero,body.page-id-39 .rasa-growth-hero { min-height:calc(100svh - 64px); background-position:58% center; } .rasa-parallax-ready { transform:none !important; } }
@media (prefers-reduced-motion:reduce) { .rasa-parallax-ready { transform:none !important; transition:none !important; } [data-tooltip]::after { transition:none; } }

/* RASA HERO RESTORE v2 — keep the liked 3D-logo hero visible in the first viewport. */
.rasa-header-command .header-socials[hidden] { display:none !important; }
.site-header .dropdown .rasa-menu-banner { grid-column:1 / -1; width:100%; }
body.home .hero,body.page-id-39 .hero {
  min-height:100svh !important;
  padding-top:clamp(88px,10svh,118px) !important;
  padding-bottom:clamp(24px,4svh,44px) !important;
  align-items:center !important;
  background:
    radial-gradient(620px 420px at 78% 22%, rgba(53,211,255,.18), transparent 62%),
    radial-gradient(520px 420px at 20% 74%, rgba(30,107,255,.22), transparent 66%),
    linear-gradient(118deg,#031029 0%,#061a3d 54%,#082a62 100%) !important;
}
body.home .hero .container,body.page-id-39 .hero .container {
  min-height:auto !important;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr) !important;
  gap:clamp(22px,3.2vw,44px) !important;
  align-items:center !important;
}
body.home .hero-copy,body.page-id-39 .hero-copy { max-width:600px; }
body.home .hero h1,body.page-id-39 .hero h1 {
  font-size:clamp(35px,4.7vw,58px) !important;
  line-height:1.3 !important;
}
body.home .hero p,body.page-id-39 .hero p {
  max-width:620px;
  margin-block:clamp(16px,2.4svh,24px) clamp(20px,3svh,30px) !important;
  font-size:clamp(16px,1.38vw,18px) !important;
}
body.home .hero-stats,body.page-id-39 .hero-stats { margin-top:clamp(24px,4svh,38px) !important; }
body.home .rasa-growth-hero-art,body.page-id-39 .rasa-growth-hero-art {
  min-height:clamp(330px,52svh,470px) !important;
}
body.home .rasa-logo-hero-mark,body.page-id-39 .rasa-logo-hero-mark {
  width:min(390px,72%) !important;
}
body.home .rasa-growth-hero-art .glass-card,body.page-id-39 .rasa-growth-hero-art .glass-card {
  transform:scale(.92);
  transform-origin:center;
}
body.home .rasa-growth-hero-art .gc-1,body.page-id-39 .rasa-growth-hero-art .gc-1 { top:12%; right:10%; }
body.home .rasa-growth-hero-art .gc-2,body.page-id-39 .rasa-growth-hero-art .gc-2 { bottom:10%; right:52%; }
body.home .rasa-growth-hero-art .gc-3,body.page-id-39 .rasa-growth-hero-art .gc-3 { top:50%; right:2%; }
@media (max-width:900px) {
  body.home .hero,body.page-id-39 .hero { min-height:auto !important; padding-top:92px !important; }
  body.home .hero .container,body.page-id-39 .hero .container { grid-template-columns:1fr !important; }
  body.home .rasa-growth-hero-art,body.page-id-39 .rasa-growth-hero-art { min-height:320px !important; order:-1; }
  body.home .rasa-logo-hero-mark,body.page-id-39 .rasa-logo-hero-mark { width:min(310px,68vw) !important; }
  body.home .hero-stats,body.page-id-39 .hero-stats { flex-wrap:wrap; gap:18px 26px; }
}

/* RASA HERO RESTORE v3 — return the premium 3D-logo hero without hiding the logo. */
body.home .hero,body.page-id-39 .hero {
  min-height:clamp(690px,100svh,860px) !important;
  padding-top:clamp(94px,10svh,122px) !important;
  padding-bottom:clamp(28px,4svh,48px) !important;
  overflow:hidden !important;
}
body.home .hero .container,body.page-id-39 .hero .container {
  grid-template-columns:minmax(440px,1.02fr) minmax(440px,.98fr) !important;
  gap:clamp(30px,4vw,62px) !important;
}
body.home .hero-copy,body.page-id-39 .hero-copy { align-self:center; }
body.home .hero h1,body.page-id-39 .hero h1 {
  font-size:clamp(40px,5.15vw,68px) !important;
  max-width:640px;
}
body.home .hero p,body.page-id-39 .hero p {
  max-width:650px;
  font-size:clamp(17px,1.45vw,20px) !important;
}
body.home .rasa-growth-hero-art,body.page-id-39 .rasa-growth-hero-art {
  position:relative !important;
  min-height:clamp(500px,63svh,610px) !important;
  width:100%;
  isolation:isolate;
  order:0 !important;
}
body.home .rasa-logo-hero-mark,body.page-id-39 .rasa-logo-hero-mark {
  position:absolute !important;
  z-index:3 !important;
  top:50%;
  right:50%;
  width:min(560px,88%) !important;
  max-height:78svh;
  object-fit:contain;
  opacity:1 !important;
  visibility:visible !important;
  transform:translate(50%,-50%) rotate(-2deg) !important;
  animation:rasaHeroLogoAlive 10s cubic-bezier(.45,.05,.55,.95) infinite !important;
  filter:drop-shadow(0 34px 52px rgba(0,0,0,.42)) drop-shadow(0 0 34px rgba(62,218,255,.34)) !important;
}
body.home .rasa-growth-orbit,body.page-id-39 .rasa-growth-orbit {
  z-index:1;
  top:50% !important;
  right:50% !important;
  transform:translate(50%,-50%);
}
body.home .rasa-growth-orbit--one,body.page-id-39 .rasa-growth-orbit--one { width:min(520px,86%) !important; }
body.home .rasa-growth-orbit--two,body.page-id-39 .rasa-growth-orbit--two { width:min(340px,58%) !important; left:auto !important; bottom:auto !important; }
body.home .rasa-growth-pulse,body.page-id-39 .rasa-growth-pulse { z-index:2; }
body.home .rasa-growth-hero-art .glass-card,body.page-id-39 .rasa-growth-hero-art .glass-card {
  z-index:4;
  transform:none !important;
  border-radius:18px;
}
body.home .rasa-growth-hero-art .gc-1,body.page-id-39 .rasa-growth-hero-art .gc-1 { top:18% !important; right:8% !important; }
body.home .rasa-growth-hero-art .gc-2,body.page-id-39 .rasa-growth-hero-art .gc-2 { bottom:10% !important; right:54% !important; }
body.home .rasa-growth-hero-art .gc-3,body.page-id-39 .rasa-growth-hero-art .gc-3 { top:51% !important; right:1% !important; }
.rasa-card-dialog .rasa-modal-lead { display:inline-flex; margin-bottom:10px; color:#137dff; font-size:12px; font-weight:900; }
.rasa-card-dialog .rasa-modal-action { display:inline-flex; align-items:center; justify-content:center; min-height:42px; margin-top:22px; padding:0 18px; border-radius:12px; color:#fff; background:linear-gradient(135deg,#176cff,#43ddff); font-weight:850; box-shadow:0 14px 30px rgba(23,108,255,.25); }
.rhd-portfolio-grid .pf-work .pf-shot { position:relative; }
@keyframes rasaHeroLogoAlive {
  0%,100% { transform:translate(50%,-50%) rotate(-2deg) scale(1); }
  45% { transform:translate(calc(50% - 10px),calc(-50% - 17px)) rotate(2.2deg) scale(1.025); }
  72% { transform:translate(calc(50% + 6px),calc(-50% - 8px)) rotate(.5deg) scale(1.012); }
}
@media (max-width:980px) {
  body.home .hero,body.page-id-39 .hero { min-height:auto !important; }
  body.home .hero .container,body.page-id-39 .hero .container { grid-template-columns:1fr !important; }
  body.home .rasa-growth-hero-art,body.page-id-39 .rasa-growth-hero-art { order:-1 !important; min-height:clamp(360px,50svh,470px) !important; }
  body.home .rasa-logo-hero-mark,body.page-id-39 .rasa-logo-hero-mark { width:min(420px,76vw) !important; }
}
@media (max-width:620px) {
  body.home .rasa-growth-hero-art,body.page-id-39 .rasa-growth-hero-art { min-height:330px !important; }
  body.home .rasa-logo-hero-mark,body.page-id-39 .rasa-logo-hero-mark { width:min(320px,76vw) !important; }
  body.home .rasa-growth-hero-art .glass-card,body.page-id-39 .rasa-growth-hero-art .glass-card { display:none; }
}

/* RASA HERO CINEMATIC v4 — branded growth control-room, softer than v3 and visible in one viewport. */
body.has-rasa-bottom-consult { padding-bottom:88px; }
body.home .hero,
body.page-id-39 .hero {
  min-height:calc(100svh - 8px) !important;
  padding-top:clamp(82px,8.5svh,108px) !important;
  padding-bottom:clamp(28px,4svh,44px) !important;
  overflow:hidden !important;
  isolation:isolate;
  background:
    radial-gradient(760px 460px at 76% 18%, rgba(69,211,255,.22), transparent 65%),
    radial-gradient(680px 430px at 18% 72%, rgba(28,107,255,.24), transparent 68%),
    linear-gradient(120deg,#030b21 0%,#061b41 53%,#092e67 100%) !important;
}
html:not(.theme-dark) body.home .hero,
html:not(.theme-dark) body.page-id-39 .hero {
  background:
    radial-gradient(780px 450px at 73% 18%, rgba(55,193,255,.24), transparent 66%),
    radial-gradient(700px 440px at 16% 74%, rgba(34,111,255,.18), transparent 70%),
    linear-gradient(120deg,#f7fbff 0%,#eaf5ff 48%,#dcecff 100%) !important;
}
body.home .hero::before,
body.page-id-39 .hero::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  opacity:.52;
  background-image:
    url("data:image/svg+xml,%3Csvg width='112' height='112' viewBox='0 0 112 112' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%235edcff' stroke-opacity='.22'%3E%3Cpath d='M0 56h112M56 0v112'/%3E%3Ccircle cx='56' cy='56' r='34'/%3E%3C/g%3E%3C/svg%3E"),
    linear-gradient(90deg,transparent,rgba(84,222,255,.1),transparent);
  background-size:112px 112px,100% 100%;
  transform:translate3d(0,calc(var(--rasa-scroll-depth,0) * -18px),0);
  pointer-events:none;
}
body.home .hero::after,
body.page-id-39 .hero::after {
  content:"";
  position:absolute;
  inset:auto -8% -22% -8%;
  height:42%;
  z-index:0;
  background:radial-gradient(closest-side at 50% 0%, rgba(66,219,255,.22), transparent 72%);
  filter:blur(4px);
  pointer-events:none;
}
body.home .hero .container,
body.page-id-39 .hero .container {
  position:relative;
  z-index:1;
  grid-template-columns:minmax(420px,.98fr) minmax(420px,1.02fr) !important;
  gap:clamp(28px,4vw,58px) !important;
  align-items:center !important;
}
body.home .hero-copy,
body.page-id-39 .hero-copy {
  position:relative;
  max-width:640px !important;
  align-self:center;
}
body.home .hero h1,
body.page-id-39 .hero h1 {
  max-width:680px;
  margin:0;
  font-size:clamp(38px,4.85vw,64px) !important;
  line-height:1.26 !important;
  letter-spacing:-.04em;
  text-wrap:balance;
}
body.home .hero p,
body.page-id-39 .hero p {
  max-width:620px;
  margin-block:clamp(15px,2svh,22px) clamp(20px,2.8svh,30px) !important;
  font-size:clamp(16px,1.28vw,19px) !important;
  line-height:2.05 !important;
}
body.home .hero-stats,
body.page-id-39 .hero-stats {
  margin-top:clamp(22px,3.4svh,34px) !important;
  gap:clamp(18px,2.6vw,34px) !important;
}
body.home .rasa-growth-hero-art,
body.page-id-39 .rasa-growth-hero-art {
  position:relative !important;
  min-height:clamp(420px,55svh,560px) !important;
  border:1px solid rgba(112,218,255,.16);
  border-radius:34px;
  background:
    radial-gradient(circle at 48% 45%, rgba(64,217,255,.18), transparent 35%),
    linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.015));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12), 0 34px 80px rgba(0,11,38,.24);
  overflow:visible;
  transform:translate3d(0,calc(var(--rasa-scroll-depth,0) * 14px),0);
}
html:not(.theme-dark) body.home .rasa-growth-hero-art,
html:not(.theme-dark) body.page-id-39 .rasa-growth-hero-art {
  border-color:rgba(29,125,230,.15);
  background:
    radial-gradient(circle at 48% 45%, rgba(51,190,255,.22), transparent 36%),
    linear-gradient(145deg,rgba(255,255,255,.82),rgba(235,246,255,.5));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9), 0 30px 70px rgba(24,83,155,.15);
}
body.home .rasa-growth-hero-art::before,
body.page-id-39 .rasa-growth-hero-art::before {
  content:"";
  position:absolute;
  inset:7%;
  border-radius:50%;
  background:
    url("data:image/svg+xml,%3Csvg viewBox='0 0 500 500' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%235bddff' stroke-opacity='.35'%3E%3Cellipse cx='250' cy='250' rx='226' ry='92'/%3E%3Cellipse cx='250' cy='250' rx='182' ry='74' transform='rotate(58 250 250)'/%3E%3Cellipse cx='250' cy='250' rx='150' ry='62' transform='rotate(-42 250 250)'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;
  opacity:.82;
  animation:rasaHeroOrbitDrift 18s linear infinite;
}
body.home .rasa-growth-hero-art::after,
body.page-id-39 .rasa-growth-hero-art::after {
  content:"";
  position:absolute;
  inset:14%;
  border-radius:999px;
  background:radial-gradient(circle, rgba(62,217,255,.18), transparent 62%);
  filter:blur(18px);
}
body.home .rasa-logo-hero-mark,
body.page-id-39 .rasa-logo-hero-mark {
  position:absolute !important;
  z-index:4 !important;
  top:50% !important;
  right:50% !important;
  width:min(455px,78%) !important;
  max-height:64svh !important;
  object-fit:contain !important;
  opacity:1 !important;
  visibility:visible !important;
  transform:translate(50%,-50%) rotate(-2deg) !important;
  animation:rasaHeroLogoAlive 9s cubic-bezier(.45,.05,.55,.95) infinite !important;
  filter:drop-shadow(0 28px 42px rgba(0,0,0,.36)) drop-shadow(0 0 24px rgba(76,221,255,.26)) !important;
}
body.home .rasa-growth-hero-art .glass-card,
body.page-id-39 .rasa-growth-hero-art .glass-card {
  z-index:5 !important;
  max-width:190px;
  border-radius:18px !important;
  background:linear-gradient(145deg,rgba(19,42,82,.72),rgba(19,42,82,.42)) !important;
  border-color:rgba(119,222,255,.26) !important;
  box-shadow:0 18px 44px rgba(0,12,40,.24), inset 0 1px 0 rgba(255,255,255,.13) !important;
  backdrop-filter:blur(14px);
}
body.home .rasa-growth-hero-art .gc-1,
body.page-id-39 .rasa-growth-hero-art .gc-1 { top:13% !important; right:7% !important; }
body.home .rasa-growth-hero-art .gc-2,
body.page-id-39 .rasa-growth-hero-art .gc-2 { bottom:9% !important; right:50% !important; }
body.home .rasa-growth-hero-art .gc-3,
body.page-id-39 .rasa-growth-hero-art .gc-3 { top:51% !important; right:2% !important; }
@keyframes rasaHeroOrbitDrift {
  from { transform:rotate(0deg) scale(1); }
  to { transform:rotate(360deg) scale(1); }
}

/* RASA STICKY CONSULT v1 */
.rasa-bottom-consult {
  position:fixed;
  left:50%;
  bottom:max(18px, env(safe-area-inset-bottom));
  z-index:9998;
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px;
  border:1px solid rgba(108,218,255,.2);
  border-radius:22px;
  color:#fff;
  background:linear-gradient(135deg,rgba(8,19,55,.96),rgba(18,0,129,.94));
  box-shadow:0 20px 55px rgba(1,9,40,.34), inset 0 1px 0 rgba(255,255,255,.14);
  transform:translateX(-50%);
  animation:rasaStickyConsult .55s cubic-bezier(.2,.9,.2,1) both;
  backdrop-filter:blur(18px);
}
.rasa-bottom-consult a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:44px;
  padding:0 16px;
  border-radius:16px;
  color:#fff;
  font-weight:900;
  white-space:nowrap;
  text-decoration:none;
}
.rasa-bottom-consult svg { width:19px; height:19px; fill:currentColor; flex:0 0 auto; }
.rasa-bottom-consult__phone { background:#1010a8; box-shadow:inset 0 1px 0 rgba(255,255,255,.15); }
.rasa-bottom-consult__lead { background:linear-gradient(135deg,#172dff,#7b2cff); box-shadow:0 12px 24px rgba(54,48,255,.28), inset 0 1px 0 rgba(255,255,255,.16); }
.rasa-bottom-consult a:hover { transform:translateY(-2px); filter:saturate(1.1); }
@keyframes rasaStickyConsult {
  from { opacity:0; transform:translate(-50%,18px) scale(.96); }
  to { opacity:1; transform:translate(-50%,0) scale(1); }
}

/* RASA PREMIUM DROPDOWNS v2 */
.site-header .rasa-premium-dropdown .dropdown {
  overflow:hidden;
  border-radius:22px;
  border:1px solid rgba(100,217,255,.18);
  background:
    radial-gradient(340px 160px at 78% 0%, rgba(72,216,255,.15), transparent 70%),
    linear-gradient(145deg,rgba(5,18,46,.98),rgba(8,30,68,.96));
  box-shadow:0 28px 70px rgba(0,10,38,.3), inset 0 1px 0 rgba(255,255,255,.09);
}
html:not(.theme-dark) .site-header .rasa-premium-dropdown .dropdown {
  background:
    radial-gradient(340px 160px at 78% 0%, rgba(54,190,255,.16), transparent 70%),
    linear-gradient(145deg,rgba(255,255,255,.98),rgba(238,247,255,.96));
  box-shadow:0 26px 62px rgba(17,77,154,.16), inset 0 1px 0 #fff;
}
.site-header .dropdown .rasa-menu-banner {
  min-height:122px !important;
  padding:16px !important;
  border-radius:18px !important;
  border-color:rgba(107,222,255,.26) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 14px 28px rgba(0,12,42,.16);
}
.rasa-menu-banner__badge {
  position:absolute;
  z-index:2;
  top:12px;
  right:12px;
  display:inline-flex;
  min-height:26px;
  align-items:center;
  padding:0 10px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  color:#e9fbff;
  background:rgba(5,20,52,.42);
  backdrop-filter:blur(10px);
  font-size:10px;
  font-weight:900;
}
.site-header .rasa-dropdown-link {
  position:relative;
  display:flex !important;
  align-items:center;
  gap:10px;
  min-height:48px;
  padding:10px 12px !important;
  border-radius:14px;
  transition:background .2s ease, transform .2s ease, color .2s ease;
}
.site-header .rasa-dropdown-link:hover {
  background:rgba(69,213,255,.12) !important;
  transform:translateX(-3px);
}
.rasa-dropdown-link__icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  flex:0 0 32px;
  border-radius:11px;
  color:#5de2ff;
  background:rgba(79,211,255,.11);
  box-shadow:inset 0 0 0 1px rgba(104,223,255,.18);
}
.rasa-dropdown-link__icon svg { width:17px; height:17px; fill:currentColor; }

/* RASA SERVICE CATS POLISH v1 */
.rasa-scroll-stage { position:relative; isolation:isolate; }
.rasa-scroll-scene {
  position:absolute;
  z-index:-1;
  inset:-34px;
  pointer-events:none;
  opacity:.72;
  background:
    url("data:image/svg+xml,%3Csvg width='170' height='170' viewBox='0 0 170 170' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%235fdcff' stroke-opacity='.18'%3E%3Cpath d='M10 85h150M85 10v150'/%3E%3Ccircle cx='85' cy='85' r='52'/%3E%3Cpath d='M28 28 142 142M142 28 28 142'/%3E%3C/g%3E%3C/svg%3E") center/170px 170px repeat;
  transform:translate3d(0,calc(var(--rasa-scroll-depth,0) * -28px),0);
}
.rasa-scroll-scene--1 { opacity:.45; transform:translate3d(calc(var(--rasa-scroll-depth,0) * 24px),calc(var(--rasa-scroll-depth,0) * -16px),0); }
.rasa-scroll-scene--2 { opacity:.55; transform:translate3d(calc(var(--rasa-scroll-depth,0) * -22px),calc(var(--rasa-scroll-depth,0) * 18px),0); }
.rasa-service-cats-polish {
  position:relative;
  overflow:visible;
  gap:clamp(16px,2.2vw,26px) !important;
}
.rasa-feature-aurora {
  position:relative;
  min-height:230px;
  overflow:hidden;
  border-radius:24px !important;
  border:1px solid rgba(75,202,255,.16) !important;
  background:
    linear-gradient(var(--surface,#fff),var(--surface,#fff)) padding-box,
    linear-gradient(135deg,rgba(51,137,255,.38),rgba(68,224,255,.08),rgba(51,137,255,.2)) border-box !important;
  box-shadow:0 20px 55px rgba(9,46,108,.08), inset 0 1px 0 rgba(255,255,255,.7);
  transform:translateY(18px);
  opacity:.78;
  transition:transform .45s cubic-bezier(.2,.8,.2,1), opacity .45s ease, box-shadow .25s ease, border-color .25s ease;
}
.rasa-feature-aurora.rasa-inview { transform:translateY(0); opacity:1; transition-delay:calc(var(--rasa-card-index,0) * 55ms); }
.rasa-feature-aurora::before {
  content:"";
  position:absolute;
  inset:-35% -20% auto auto;
  width:72%;
  aspect-ratio:1;
  border-radius:999px;
  background:radial-gradient(circle, rgba(66,216,255,.22), transparent 68%);
  transform:translate3d(calc(var(--rasa-scroll-depth,0) * 18px),calc(var(--rasa-scroll-depth,0) * -12px),0);
}
.rasa-feature-aurora::after {
  content:"";
  position:absolute;
  inset:auto 18px 18px 18px;
  height:1px;
  background:linear-gradient(90deg,transparent,#4edcff,transparent);
  opacity:.55;
}
.rasa-feature-aurora:hover {
  border-color:rgba(72,216,255,.4) !important;
  box-shadow:0 26px 70px rgba(18,96,192,.15), 0 0 0 1px rgba(70,221,255,.18) inset;
  transform:translateY(-6px);
}
.rasa-feature-chip {
  position:absolute;
  top:20px;
  left:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:15px;
  color:#1883ff;
  background:rgba(44,135,255,.1);
  box-shadow:inset 0 0 0 1px rgba(48,139,255,.14);
}
.rasa-feature-chip svg { width:21px; height:21px; fill:currentColor; }
html.theme-dark .rasa-feature-aurora {
  background:
    linear-gradient(#0c2146,#0c2146) padding-box,
    linear-gradient(135deg,rgba(78,218,255,.34),rgba(35,98,255,.14),rgba(78,218,255,.08)) border-box !important;
  box-shadow:0 24px 58px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.04);
}

/* RASA BRAND CONSTELLATION v1 */
.rhd-brand-wall.rasa-brand-constellation {
  min-height:150px;
  padding:clamp(18px,2vw,26px);
  border-radius:28px;
  border-color:rgba(83,210,255,.22);
  background:
    radial-gradient(520px 180px at 80% 0%, rgba(65,211,255,.18), transparent 70%),
    linear-gradient(135deg,rgba(255,255,255,.9),rgba(239,247,255,.65));
}
html.theme-dark .rhd-brand-wall.rasa-brand-constellation {
  background:
    radial-gradient(520px 180px at 80% 0%, rgba(65,211,255,.13), transparent 70%),
    linear-gradient(135deg,rgba(8,24,55,.96),rgba(9,33,75,.78));
}
.rasa-brand-orbit {
  position:absolute;
  inset:14px;
  border:1px solid rgba(80,216,255,.16);
  border-radius:999px;
  transform:rotate(calc(var(--rasa-scroll-depth,0) * 9deg));
  pointer-events:none;
}
.rasa-brand-orbit--two { inset:32px 14%; opacity:.5; transform:rotate(calc(var(--rasa-scroll-depth,0) * -12deg)); }
.rhd-brand-wall.rasa-brand-constellation img,
.rhd-brand-wall.rasa-brand-constellation svg {
  position:relative;
  z-index:1;
  padding:10px 14px;
  border-radius:16px;
  background:rgba(255,255,255,.54);
  filter:grayscale(.35);
  opacity:.82;
}
html.theme-dark .rhd-brand-wall.rasa-brand-constellation img,
html.theme-dark .rhd-brand-wall.rasa-brand-constellation svg { background:rgba(255,255,255,.06); }

/* RASA PORTFOLIO TITLES v1 */
.rasa-portfolio-media-polish { position:relative !important; overflow:hidden; }
.rasa-portfolio-title-on-image {
  position:absolute;
  z-index:8;
  right:14px;
  bottom:14px;
  max-width:calc(100% - 28px);
  padding:9px 12px;
  border:1px solid rgba(255,255,255,.26);
  border-radius:14px;
  color:#fff;
  background:linear-gradient(135deg,rgba(4,17,49,.82),rgba(10,33,76,.6));
  box-shadow:0 12px 30px rgba(0,11,42,.26);
  backdrop-filter:blur(12px);
  font-size:13px;
  font-weight:950;
  pointer-events:none;
}
.rasa-portfolio-media-polish::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:7;
  background:linear-gradient(180deg,transparent 52%,rgba(3,13,35,.58));
  pointer-events:none;
  opacity:.85;
}
.rasa-portfolio-title-below{
  display:flex;
  align-items:center;
  gap:8px;
  margin:12px 2px 0;
  color:var(--rasa-home-ink,#081a3b);
  font-size:15px;
  font-weight:950;
  line-height:1.7;
}
.rasa-portfolio-title-below::before{
  content:"";
  width:18px;
  height:3px;
  flex:0 0 auto;
  border-radius:999px;
  background:linear-gradient(90deg,#1682ff,#48dcff);
  box-shadow:0 0 16px rgba(72,220,255,.32);
}
html.theme-dark .rasa-portfolio-title-below{color:#f3f8ff;}

/* RASA SMART MODAL v2 */
.rasa-card-dialog {
  width:min(620px,calc(100vw - 32px)) !important;
  border-radius:28px !important;
  background:
    radial-gradient(420px 200px at 88% 0%, rgba(70,216,255,.18), transparent 70%),
    var(--surface,#fff) !important;
}
.rasa-card-dialog__body { padding:34px !important; }
.rasa-card-dialog .rasa-modal-lead {
  min-height:30px;
  align-items:center;
  padding:0 12px;
  border-radius:999px;
  background:rgba(36,130,255,.09);
}
.rasa-card-dialog p { font-size:15px; }
.rasa-card-dialog__points {
  display:grid;
  gap:10px;
  margin:20px 0 0;
  padding:0;
  list-style:none;
}
.rasa-card-dialog__points li {
  position:relative;
  padding:10px 38px 10px 12px;
  border:1px solid rgba(53,154,255,.13);
  border-radius:14px;
  background:rgba(45,139,255,.055);
  color:var(--text,#071a3a);
  font-weight:750;
}
.rasa-card-dialog__points li::before {
  content:"";
  position:absolute;
  right:12px;
  top:50%;
  width:14px;
  height:14px;
  border-radius:5px;
  background:linear-gradient(135deg,#1682ff,#48dcff);
  transform:translateY(-50%) rotate(45deg);
}
html.theme-dark .rasa-card-dialog__points li {
  color:#ecf8ff;
  border-color:rgba(92,216,255,.17);
  background:rgba(76,205,255,.07);
}

/* RASA SCROLL MOTION v1 */
.rasa-title-kinetic {
  background:linear-gradient(90deg,currentColor 0%,#62ddff 48%,currentColor 100%);
  background-size:220% 100%;
  -webkit-background-clip:text;
  background-clip:text;
  animation:rasaTitleSweep 7s ease-in-out infinite;
}
.rasa-scroll-stage,
.pf-work,
.testi,
.rhd-post-card {
  transition:opacity .55s ease, transform .55s cubic-bezier(.2,.8,.2,1);
}
.rasa-scroll-stage:not(.rasa-inview),
.pf-work:not(.rasa-inview),
.testi:not(.rasa-inview),
.rhd-post-card:not(.rasa-inview) {
  opacity:.86;
  transform:translateY(16px);
}
.rasa-scroll-stage.rasa-inview,
.pf-work.rasa-inview,
.testi.rasa-inview,
.rhd-post-card.rasa-inview {
  opacity:1;
  transform:translateY(0);
}
@keyframes rasaTitleSweep {
  0%,100% { background-position:0% 50%; }
  50% { background-position:100% 50%; }
}

@media (max-width:980px) {
  body.home .hero,
  body.page-id-39 .hero { min-height:auto !important; padding-top:92px !important; }
  body.home .hero .container,
  body.page-id-39 .hero .container { grid-template-columns:1fr !important; }
  body.home .rasa-growth-hero-art,
  body.page-id-39 .rasa-growth-hero-art { order:-1 !important; min-height:clamp(340px,48svh,460px) !important; border-radius:26px; }
  body.home .rasa-logo-hero-mark,
  body.page-id-39 .rasa-logo-hero-mark { width:min(360px,76vw) !important; }
  .rasa-bottom-consult { width:calc(100vw - 24px); justify-content:center; border-radius:20px; }
  .rasa-bottom-consult a { flex:1; padding-inline:8px; font-size:12px; }
}
@media (max-width:620px) {
  body.has-rasa-bottom-consult { padding-bottom:78px; }
  body.home .rasa-growth-hero-art,
  body.page-id-39 .rasa-growth-hero-art { min-height:310px !important; }
  body.home .rasa-growth-hero-art .glass-card,
  body.page-id-39 .rasa-growth-hero-art .glass-card { display:none !important; }
  .rasa-bottom-consult { bottom:10px; gap:6px; padding:6px; }
  .rasa-bottom-consult a { min-height:42px; border-radius:14px; }
}
@media (prefers-reduced-motion:reduce) {
  .rasa-bottom-consult,
  .rasa-title-kinetic,
  body.home .rasa-growth-hero-art::before,
  body.page-id-39 .rasa-growth-hero-art::before,
  body.home .rasa-logo-hero-mark,
  body.page-id-39 .rasa-logo-hero-mark {
    animation:none !important;
  }
  .rasa-scroll-stage,
  .pf-work,
  .testi,
  .rhd-post-card,
  .rasa-feature-aurora {
    transition:none !important;
    transform:none !important;
    opacity:1 !important;
  }
}

/* RASA LAST VISUAL OVERRIDES v5 */
body.home .hero,body.page-id-39 .hero{min-height:min(820px,100svh)!important;padding:clamp(108px,12vh,138px) 0 clamp(56px,7vh,88px)!important;border-radius:0!important;background:linear-gradient(90deg,rgba(3,13,37,.96),rgba(5,24,60,.84) 43%,rgba(5,24,60,.3)),url('../img/rasa-home-growth-atmosphere.png') center/cover no-repeat!important;}
body.home .hero .container,body.page-id-39 .hero .container{width:min(1180px,calc(100% - 42px))!important;grid-template-columns:minmax(0,.92fr) minmax(390px,1.08fr)!important;gap:clamp(32px,6vw,86px)!important;}
body.home .hero h1,body.page-id-39 .hero h1{font-size:clamp(40px,5.2vw,72px)!important;line-height:1.22!important;letter-spacing:-.045em;text-wrap:balance;}
body.home .hero p,body.page-id-39 .hero p{max-width:590px;color:rgba(228,240,255,.82)!important;font-size:clamp(16px,1.45vw,20px)!important;line-height:2.05!important;}
body.home .rasa-growth-hero-art,body.page-id-39 .rasa-growth-hero-art{min-height:500px!important;isolation:isolate;}
body.home .rasa-logo-hero-mark,body.page-id-39 .rasa-logo-hero-mark{width:min(430px,76%)!important;filter:drop-shadow(0 28px 54px rgba(0,0,0,.38)) drop-shadow(0 0 38px rgba(71,213,255,.42));}
body.home .features-grid,body.page-id-39 .features-grid{position:relative;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:16px!important;max-width:1160px!important;}
body.home .features-grid .feature,body.page-id-39 .features-grid .feature{min-height:214px;padding:26px 22px 22px!important;border:1px solid var(--rasa-home-line,rgba(55,137,218,.16))!important;border-radius:24px!important;background:var(--rasa-home-surface,rgba(255,255,255,.82))!important;box-shadow:0 14px 32px rgba(15,69,138,.07)!important;overflow:hidden;}
body.home .features-grid .feature:hover,body.page-id-39 .features-grid .feature:hover{transform:translateY(-8px)!important;border-color:rgba(42,174,255,.55)!important;box-shadow:0 24px 50px rgba(16,96,189,.16)!important;}
body.home .features-grid .feature h3,body.page-id-39 .features-grid .feature h3{font-size:clamp(17px,1.45vw,21px)!important;color:var(--rasa-home-ink,#081a3b)!important;}
body.home .features-grid .feature p,body.page-id-39 .features-grid .feature p{color:var(--rasa-home-muted,#5b6f8f)!important;line-height:1.9;}
body.home .rhd-brand-wall,body.page-id-39 .rhd-brand-wall{min-height:235px;padding:44px clamp(20px,5vw,70px)!important;background:linear-gradient(120deg,rgba(7,23,54,.91),rgba(11,45,91,.76)),url('../img/rasa-brand-network.png') center/cover no-repeat!important;border:1px solid rgba(87,205,255,.24)!important;border-radius:30px!important;box-shadow:0 24px 62px rgba(3,20,58,.2)!important;}
body.home .rhd-brand-wall img,body.page-id-39 .rhd-brand-wall img{filter:grayscale(1) brightness(2) contrast(.82)!important;opacity:.74!important;}
html:not(.theme-dark) body.home .hero,html:not(.theme-dark) body.page-id-39 .hero{background:linear-gradient(90deg,rgba(249,252,255,.94),rgba(244,249,255,.82) 40%,rgba(240,247,255,.28)),url('../img/rasa-light-wave.png') center/cover no-repeat!important;color:#081a3b;}
html:not(.theme-dark) body.home .hero h1,html:not(.theme-dark) body.page-id-39 .hero h1{color:#081a3b!important;text-shadow:none;}
html:not(.theme-dark) body.home .hero p,html:not(.theme-dark) body.page-id-39 .hero p{color:#536987!important;}
html:not(.theme-dark) body.home .rhd-brand-wall,html:not(.theme-dark) body.page-id-39 .rhd-brand-wall{background:linear-gradient(120deg,rgba(245,250,255,.92),rgba(225,242,255,.78)),url('../img/rasa-light-wave.png') center/cover no-repeat!important;border-color:rgba(23,125,230,.16)!important;}
html:not(.theme-dark) body.home .rhd-brand-wall img,html:not(.theme-dark) body.page-id-39 .rhd-brand-wall img{filter:grayscale(1) contrast(.72)!important;opacity:.65!important;}
body.home .rasa-scroll-stage> .rasa-scroll-scene,body.page-id-39 .rasa-scroll-stage> .rasa-scroll-scene{transform:translate3d(0,calc(var(--rasa-scroll-depth,0) * -18px),0);opacity:.82;}
body.rasa-at-page-end .rasa-bottom-consult{position:absolute!important;left:50%!important;right:auto!important;bottom:32px!important;transform:translateX(-50%)!important;z-index:12!important;}body.rasa-at-page-end{padding-bottom:0!important;}
@media (max-width:900px){body.home .hero .container,body.page-id-39 .hero .container{grid-template-columns:1fr!important;text-align:center;}body.home .rasa-growth-hero-art,body.page-id-39 .rasa-growth-hero-art{order:-1;min-height:330px!important;}body.home .features-grid,body.page-id-39 .features-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}}
@media (max-width:560px){body.home .hero,body.page-id-39 .hero{min-height:auto!important;padding-top:96px!important;}body.home .rasa-growth-hero-art,body.page-id-39 .rasa-growth-hero-art{min-height:280px!important;}body.home .features-grid,body.page-id-39 .features-grid{grid-template-columns:1fr!important;}body.rasa-at-page-end .rasa-bottom-consult{bottom:20px!important;width:calc(100% - 28px);}}
body.home,body.page-id-39{--rasa-home-ink:#081a3b;--rasa-home-muted:#5b6f8f;--rasa-home-surface:rgba(255,255,255,.82);--rasa-home-line:rgba(55,137,218,.16);overflow-x:clip;}html.theme-dark body.home,html.theme-dark body.page-id-39{--rasa-home-ink:#f3f8ff;--rasa-home-muted:#a9bdd9;--rasa-home-surface:rgba(10,28,61,.76);--rasa-home-line:rgba(128,204,255,.17);}

/* RASA LIGHT THEME CLEANUP v6 — no photographic wave behind light content. */
html:not(.theme-dark) body.home .hero,html:not(.theme-dark) body.page-id-39 .hero{
  background-color:#f8fbff!important;
  background-image:radial-gradient(520px 300px at 12% 20%,rgba(62,180,255,.11),transparent 68%),radial-gradient(460px 320px at 88% 72%,rgba(106,132,255,.09),transparent 68%),linear-gradient(rgba(32,123,219,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(32,123,219,.045) 1px,transparent 1px)!important;
  background-size:auto,auto,54px 54px,54px 54px!important;
}
html:not(.theme-dark) body.home .hero::after,html:not(.theme-dark) body.page-id-39 .hero::after{opacity:.65!important;background-image:linear-gradient(rgba(32,123,219,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(32,123,219,.04) 1px,transparent 1px)!important;background-size:54px 54px!important;}
html:not(.theme-dark) body.home .section:not(.hero):nth-of-type(odd),html:not(.theme-dark) body.page-id-39 .section:not(.hero):nth-of-type(odd),html:not(.theme-dark) body.home .rhd-section:nth-of-type(odd),html:not(.theme-dark) body.page-id-39 .rhd-section:nth-of-type(odd){background-color:#fbfdff!important;background-image:radial-gradient(420px 220px at 15% 10%,rgba(58,193,255,.07),transparent 70%),linear-gradient(rgba(41,123,219,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(41,123,219,.035) 1px,transparent 1px)!important;background-size:auto,54px 54px,54px 54px!important;}
html:not(.theme-dark) body.home .rhd-brand-wall,html:not(.theme-dark) body.page-id-39 .rhd-brand-wall{background:#fff!important;border-color:rgba(31,117,224,.13)!important;box-shadow:0 18px 45px rgba(23,83,157,.08)!important;}
html:not(.theme-dark) body.home .rhd-brand-wall::before,html:not(.theme-dark) body.page-id-39 .rhd-brand-wall::before{background:radial-gradient(circle at 20% 20%,rgba(51,193,255,.09),transparent 48%)!important;opacity:1!important;}
html:not(.theme-dark) body.home .rasa-scroll-scene,html:not(.theme-dark) body.page-id-39 .rasa-scroll-scene{opacity:.34!important;}

/* RASA PATTERN FIX v7 — remove the repeated circle-cross SVG layer that was
   overpowering the hero and the section backgrounds. */
body.home .rasa-scroll-scene,body.page-id-39 .rasa-scroll-scene{background:none!important;opacity:0!important;}
body.home .hero,body.page-id-39 .hero{background:radial-gradient(620px 520px at 76% 48%,rgba(17,119,255,.22),transparent 68%),radial-gradient(430px 350px at 20% 14%,rgba(63,213,255,.12),transparent 70%),linear-gradient(118deg,#030b20 6%,#061735 55%,#092858 100%)!important;}
html:not(.theme-dark) body.home .hero,html:not(.theme-dark) body.page-id-39 .hero{background-color:#f8fbff!important;background-image:radial-gradient(520px 300px at 12% 20%,rgba(62,180,255,.11),transparent 68%),radial-gradient(460px 320px at 88% 72%,rgba(106,132,255,.09),transparent 68%),linear-gradient(rgba(32,123,219,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(32,123,219,.045) 1px,transparent 1px)!important;background-size:auto,auto,54px 54px,54px 54px!important;}

/* RASA HERO FIT v8 — complete first viewport on desktop. */
@media (min-width:901px){
  body.home .hero,body.page-id-39 .hero{height:calc(100svh - 4px)!important;min-height:620px!important;max-height:860px!important;padding:clamp(88px,10vh,112px) 0 24px!important;overflow:hidden!important;}
  body.home .hero .container,body.page-id-39 .hero .container{height:100%;align-items:center!important;}
  body.home .rasa-growth-hero-art,body.page-id-39 .rasa-growth-hero-art{min-height:0!important;height:min(66vh,500px)!important;max-height:500px;}
  body.home .hero-stats,body.page-id-39 .hero-stats{margin-top:clamp(18px,3vh,30px)!important;}
  body.home .hero p,body.page-id-39 .hero p{margin:16px 0 24px!important;}
}
@media (max-width:900px){body.home .hero,body.page-id-39 .hero{min-height:calc(100svh - 8px)!important;padding-top:92px!important;padding-bottom:46px!important;}}

/* RASA HERO CLIP FIX v9 — keep viewport sizing but never crop hero content. */
@media (min-width:901px){body.home .hero,body.page-id-39 .hero{overflow:visible!important;}}

/* RASA HERO STABLE v10 — prevent an oversized text column from pushing the
   3D visual into a second, cropped row. */
@media (min-width:901px){
  body.home .hero .container,body.page-id-39 .hero .container{grid-template-columns:minmax(0,1.12fr) minmax(400px,.88fr)!important;gap:clamp(30px,5vw,64px)!important;}
  body.home .hero h1,body.page-id-39 .hero h1{font-size:clamp(42px,4.2vw,60px)!important;line-height:1.18!important;}
  body.home .hero-actions,body.page-id-39 .hero-actions{margin-top:22px!important;flex-wrap:nowrap!important;}
  body.home .hero-stats,body.page-id-39 .hero-stats{margin-top:24px!important;}
}
html:not(.theme-dark) body.home .hero .hero-copy p,html:not(.theme-dark) body.page-id-39 .hero .hero-copy p{color:#526a8e!important;}

/* RASA HERO FIT REFINEMENT v11 — keep the whole hero in the first viewport. */
@media (min-width:901px){
  body.home .hero,body.page-id-39 .hero{
    height:calc(100svh - 4px)!important;
    min-height:600px!important;
    max-height:820px!important;
    padding:76px 0 18px!important;
    overflow:hidden!important;
  }
  body.home .hero .container,body.page-id-39 .hero .container{
    height:100%!important;
    align-items:center!important;
    grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr)!important;
    gap:clamp(28px,4.4vw,56px)!important;
  }
  body.home .hero h1,body.page-id-39 .hero h1{
    font-size:clamp(38px,3.7vw,54px)!important;
    line-height:1.14!important;
    letter-spacing:0!important;
  }
  body.home .hero p,body.page-id-39 .hero p{
    max-width:560px!important;
    margin:10px 0 14px!important;
    font-size:16px!important;
    line-height:1.8!important;
  }
  body.home .hero-actions,body.page-id-39 .hero-actions{
    margin-top:12px!important;
    gap:12px!important;
  }
  body.home .hero-actions .btn,body.page-id-39 .hero-actions .btn{
    min-height:42px!important;
    padding:9px 18px!important;
  }
  body.home .hero-stats,body.page-id-39 .hero-stats{
    margin-top:12px!important;
    gap:16px!important;
  }
  body.home .hero-stats .num,body.page-id-39 .hero-stats .num{font-size:25px!important;line-height:1.1!important;}
  body.home .hero-stats .lbl,body.page-id-39 .hero-stats .lbl{font-size:12px!important;line-height:1.4!important;}
  body.home .rasa-growth-hero-art,body.page-id-39 .rasa-growth-hero-art{
    height:min(56vh,420px)!important;
    max-height:420px!important;
  }
  body.home .rasa-logo-hero-mark,body.page-id-39 .rasa-logo-hero-mark{width:min(370px,72%)!important;}
}

/* RASA HERO VIEWPORT LOCK v12 — compact desktop rhythm for 720px-tall screens. */
@media (min-width:901px) and (max-height:760px){
  body.home .hero,body.page-id-39 .hero{
    min-height:0!important;
    padding:66px 0 14px!important;
  }
  body.home .hero .container,body.page-id-39 .hero .container{
    grid-template-columns:minmax(0,1.12fr) minmax(350px,.88fr)!important;
  }
  body.home .hero h1,body.page-id-39 .hero h1{
    font-size:clamp(34px,3.35vw,46px)!important;
    line-height:1.1!important;
  }
  body.home .hero p,body.page-id-39 .hero p{
    max-width:520px!important;
    margin:8px 0 10px!important;
    font-size:15px!important;
    line-height:1.65!important;
  }
  body.home .hero-actions,body.page-id-39 .hero-actions{margin-top:8px!important;}
  body.home .hero-actions .btn,body.page-id-39 .hero-actions .btn{
    min-height:38px!important;
    padding:8px 16px!important;
  }
  body.home .hero-stats,body.page-id-39 .hero-stats{
    margin-top:8px!important;
    gap:12px!important;
  }
  body.home .hero-stats .num,body.page-id-39 .hero-stats .num{font-size:22px!important;}
  body.home .hero-stats .lbl,body.page-id-39 .hero-stats .lbl{font-size:11px!important;}
  body.home .rasa-growth-hero-art,body.page-id-39 .rasa-growth-hero-art{
    height:min(50vh,360px)!important;
    max-height:360px!important;
  }
  body.home .rasa-logo-hero-mark,body.page-id-39 .rasa-logo-hero-mark{width:min(320px,70%)!important;}
}

/* RASA TECHNOLOGY ORBIT LOGO v13 — icon-led digital network around the mark. */
body.home .rasa-growth-hero-art,
body.page-id-39 .rasa-growth-hero-art{
  --rasa-orbit-line:rgba(83,211,255,.28);
  --rasa-orbit-soft:rgba(44,154,255,.12);
  --rasa-orbit-node:rgba(7,23,54,.72);
  border-radius:0!important;
}
html:not(.theme-dark) body.home .rasa-growth-hero-art,
html:not(.theme-dark) body.page-id-39 .rasa-growth-hero-art{
  --rasa-orbit-line:rgba(29,126,235,.23);
  --rasa-orbit-soft:rgba(32,150,255,.10);
  --rasa-orbit-node:rgba(255,255,255,.78);
}
body.home .rasa-growth-hero-art::before,
body.page-id-39 .rasa-growth-hero-art::before{
  inset:10% 4% 7%!important;
  border-color:var(--rasa-orbit-line)!important;
  box-shadow:0 0 0 18px var(--rasa-orbit-soft),inset 0 0 58px rgba(75,215,255,.10)!important;
  animation:rasaTechOrbitDrift 18s linear infinite!important;
}
body.home .rasa-growth-hero-art::after,
body.page-id-39 .rasa-growth-hero-art::after{
  content:"";
  position:absolute;
  inset:18% 15%;
  z-index:0;
  border:1px solid var(--rasa-orbit-line);
  border-radius:50%;
  transform:rotate(24deg) scaleX(1.28);
  background:radial-gradient(circle at 50% 50%,rgba(54,202,255,.12),transparent 48%);
  filter:drop-shadow(0 0 22px rgba(61,196,255,.18));
  pointer-events:none;
  animation:rasaTechOrbitCounter 22s linear infinite;
}
.rasa-tech-ring,
.rasa-tech-beam,
.rasa-tech-node{
  position:absolute;
  pointer-events:none;
}
.rasa-tech-ring{
  z-index:1;
  border:1px dashed var(--rasa-orbit-line);
  border-radius:50%;
  opacity:.86;
}
.rasa-tech-ring--outer{
  inset:6% 1% 5%;
  transform:rotate(-12deg) scaleX(1.2);
  animation:rasaTechOrbitDrift 26s linear infinite reverse;
}
.rasa-tech-ring--inner{
  inset:27% 24%;
  transform:rotate(32deg) scaleX(1.36);
  opacity:.6;
  animation:rasaTechOrbitCounter 19s linear infinite;
}
.rasa-tech-beam{
  z-index:1;
  height:1px;
  width:42%;
  background:linear-gradient(90deg,transparent,var(--rasa-orbit-line),transparent);
  opacity:.72;
  filter:drop-shadow(0 0 10px rgba(62,211,255,.28));
}
.rasa-tech-beam--one{top:31%;right:13%;transform:rotate(-22deg);}
.rasa-tech-beam--two{bottom:30%;left:13%;transform:rotate(19deg);}
.rasa-tech-node{
  z-index:4;
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  color:#46d9ff;
  border:1px solid rgba(91,213,255,.32);
  border-radius:15px;
  background:linear-gradient(145deg,var(--rasa-orbit-node),rgba(19,74,135,.56));
  box-shadow:0 16px 36px rgba(0,28,82,.22),inset 0 1px 0 rgba(255,255,255,.18);
  backdrop-filter:blur(12px);
  animation:rasaTechNodeFloat 6.5s ease-in-out infinite;
}
html:not(.theme-dark) .rasa-tech-node{
  color:#147ee8;
  border-color:rgba(18,128,235,.20);
  box-shadow:0 14px 34px rgba(31,113,204,.13),inset 0 1px 0 rgba(255,255,255,.76);
}
.rasa-tech-node svg{width:21px;height:21px;}
.node-search{top:16%;right:28%;animation-delay:-1.1s;}
.node-code{top:42%;left:7%;animation-delay:-2.4s;}
.node-share{right:7%;bottom:25%;animation-delay:-3.2s;}
.node-chart{left:30%;bottom:12%;animation-delay:-4.6s;}
body.home .rasa-logo-hero-mark,
body.page-id-39 .rasa-logo-hero-mark{
  z-index:3!important;
  filter:drop-shadow(0 26px 44px rgba(0,0,0,.34)) drop-shadow(0 0 30px rgba(65,214,255,.36))!important;
}
body.home .rasa-growth-hero-art .glass-card,
body.page-id-39 .rasa-growth-hero-art .glass-card{
  z-index:5!important;
  min-height:52px!important;
  padding:10px 12px!important;
  border-radius:17px!important;
  border-color:rgba(98,214,255,.24)!important;
  background:linear-gradient(145deg,rgba(9,28,63,.72),rgba(22,74,135,.52))!important;
  box-shadow:0 16px 34px rgba(0,25,75,.22)!important;
}
html:not(.theme-dark) body.home .rasa-growth-hero-art .glass-card,
html:not(.theme-dark) body.page-id-39 .rasa-growth-hero-art .glass-card{
  background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(231,244,255,.62))!important;
  border-color:rgba(28,132,232,.18)!important;
  box-shadow:0 14px 32px rgba(31,113,204,.10)!important;
}
body.home .rasa-growth-hero-art .glass-card .ic,
body.page-id-39 .rasa-growth-hero-art .glass-card .ic{
  width:34px!important;
  height:34px!important;
  border-radius:11px!important;
}
body.home .rasa-growth-hero-art .glass-card .t,
body.page-id-39 .rasa-growth-hero-art .glass-card .t{font-size:13px!important;}
body.home .rasa-growth-hero-art .glass-card .s,
body.page-id-39 .rasa-growth-hero-art .glass-card .s{font-size:11px!important;}
@media (min-width:901px) and (max-height:760px){
  .rasa-tech-node{width:38px;height:38px;border-radius:13px;}
  .rasa-tech-node svg{width:18px;height:18px;}
  .rasa-tech-ring--outer{inset:8% 2% 8%;}
  .rasa-tech-ring--inner{inset:30% 25%;}
  body.home .rasa-growth-hero-art .glass-card,
  body.page-id-39 .rasa-growth-hero-art .glass-card{transform:scale(.9)!important;}
}
@media (max-width:760px){
  .rasa-tech-beam,.rasa-tech-ring--inner{display:none!important;}
  .rasa-tech-node{width:38px;height:38px;border-radius:13px;}
  .node-code,.node-chart{display:none!important;}
}
@media (prefers-reduced-motion:reduce){
  .rasa-tech-ring,
  .rasa-tech-node,
  body.home .rasa-growth-hero-art::before,
  body.page-id-39 .rasa-growth-hero-art::before,
  body.home .rasa-growth-hero-art::after,
  body.page-id-39 .rasa-growth-hero-art::after{animation:none!important;}
}
@keyframes rasaTechOrbitDrift{
  from{transform:rotate(-12deg) scaleX(1.2);}
  to{transform:rotate(348deg) scaleX(1.2);}
}
@keyframes rasaTechOrbitCounter{
  from{transform:rotate(32deg) scaleX(1.28);}
  to{transform:rotate(-328deg) scaleX(1.28);}
}
@keyframes rasaTechNodeFloat{
  0%,100%{transform:translate3d(0,0,0);}
  50%{transform:translate3d(0,-10px,0);}
}

/* RASA HERO DARK ATMOSPHERE v14 — one cinematic hero mood in light and dark. */
body.home .hero,
body.page-id-39 .hero,
html:not(.theme-dark) body.home .hero,
html:not(.theme-dark) body.page-id-39 .hero{
  color:#f5fbff!important;
  background:
    radial-gradient(680px 500px at 72% 46%,rgba(30,149,255,.34),transparent 68%),
    radial-gradient(460px 360px at 22% 18%,rgba(70,221,255,.16),transparent 70%),
    linear-gradient(118deg,#030b20 5%,#061735 54%,#092858 100%)!important;
}
body.home .hero::after,
body.page-id-39 .hero::after,
html:not(.theme-dark) body.home .hero::after,
html:not(.theme-dark) body.page-id-39 .hero::after{
  opacity:.54!important;
  background-image:
    linear-gradient(rgba(99,216,255,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(99,216,255,.055) 1px,transparent 1px)!important;
  background-size:54px 54px!important;
}
html:not(.theme-dark) body.home .hero h1,
html:not(.theme-dark) body.page-id-39 .hero h1,
html:not(.theme-dark) body.home .hero .hero-copy h1,
html:not(.theme-dark) body.page-id-39 .hero .hero-copy h1{
  color:#f6fbff!important;
  text-shadow:0 18px 44px rgba(0,17,52,.34)!important;
}
html:not(.theme-dark) body.home .hero .hero-copy p,
html:not(.theme-dark) body.page-id-39 .hero .hero-copy p,
html:not(.theme-dark) body.home .hero p,
html:not(.theme-dark) body.page-id-39 .hero p{
  color:rgba(219,235,255,.82)!important;
}
html:not(.theme-dark) body.home .hero-copy .eyebrow,
html:not(.theme-dark) body.page-id-39 .hero-copy .eyebrow{
  color:#eaf8ff!important;
  background:rgba(255,255,255,.12)!important;
  border-color:rgba(107,220,255,.24)!important;
}
html:not(.theme-dark) body.home .hero-stats .num,
html:not(.theme-dark) body.page-id-39 .hero-stats .num{color:#fff!important;}
html:not(.theme-dark) body.home .hero-stats .lbl,
html:not(.theme-dark) body.page-id-39 .hero-stats .lbl{color:rgba(205,225,252,.78)!important;}
html:not(.theme-dark) body.home .rasa-growth-hero-art,
html:not(.theme-dark) body.page-id-39 .rasa-growth-hero-art{
  --rasa-orbit-line:rgba(91,218,255,.28);
  --rasa-orbit-soft:rgba(44,154,255,.12);
  --rasa-orbit-node:rgba(7,23,54,.70);
}
html:not(.theme-dark) .rasa-tech-node{
  color:#56dcff!important;
  background:linear-gradient(145deg,rgba(8,28,67,.72),rgba(20,78,142,.54))!important;
  border-color:rgba(91,213,255,.30)!important;
  box-shadow:0 16px 36px rgba(0,28,82,.22),inset 0 1px 0 rgba(255,255,255,.18)!important;
}
html:not(.theme-dark) body.home .rasa-growth-hero-art .glass-card,
html:not(.theme-dark) body.page-id-39 .rasa-growth-hero-art .glass-card{
  color:#f4fbff!important;
  background:linear-gradient(145deg,rgba(9,28,63,.72),rgba(22,74,135,.52))!important;
  border-color:rgba(98,214,255,.24)!important;
  box-shadow:0 16px 34px rgba(0,25,75,.22)!important;
}

/* RASA CONSULT MODAL v1 */
body.rasa-consult-open{overflow:hidden;}
.rasa-consult-modal[hidden]{display:none!important;}
.rasa-consult-modal{
  position:fixed;
  inset:0;
  z-index:10020;
  display:grid;
  place-items:center;
  padding:20px;
  direction:rtl;
}
.rasa-consult-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(2,8,28,.68);
  backdrop-filter:blur(12px);
}
.rasa-consult-modal__panel{
  position:relative;
  width:min(720px,calc(100vw - 28px));
  max-height:min(88svh,760px);
  overflow:auto;
  padding:clamp(22px,4vw,34px);
  border:1px solid rgba(105,218,255,.24);
  border-radius:28px;
  color:#eef8ff;
  background:
    radial-gradient(420px 260px at 18% 8%,rgba(74,215,255,.16),transparent 70%),
    linear-gradient(145deg,rgba(5,16,43,.96),rgba(8,31,72,.94));
  box-shadow:0 34px 90px rgba(0,9,35,.45),inset 0 1px 0 rgba(255,255,255,.12);
  outline:none;
  transform-origin:50% 85%;
  animation:rasaConsultIn .28s cubic-bezier(.2,.9,.2,1) both;
}
html:not(.theme-dark) .rasa-consult-modal__panel{
  color:#071a3a;
  background:
    radial-gradient(420px 260px at 18% 8%,rgba(48,190,255,.16),transparent 70%),
    linear-gradient(145deg,rgba(255,255,255,.98),rgba(235,246,255,.96));
  border-color:rgba(24,128,235,.18);
  box-shadow:0 34px 90px rgba(15,67,139,.20),inset 0 1px 0 #fff;
}
.rasa-consult-modal__close{
  position:absolute;
  top:16px;
  left:16px;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px solid rgba(115,220,255,.22);
  border-radius:14px;
  color:currentColor;
  background:rgba(255,255,255,.08);
  cursor:pointer;
}
.rasa-consult-modal__close svg,
.rasa-consult-submit svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.rasa-consult-modal__kicker{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 12px;
  border-radius:999px;
  color:#78e6ff;
  background:rgba(93,220,255,.10);
  border:1px solid rgba(93,220,255,.18);
  font-size:12px;
  font-weight:900;
  letter-spacing:0;
}
html:not(.theme-dark) .rasa-consult-modal__kicker{color:#1479dd;background:rgba(33,145,255,.08);border-color:rgba(33,145,255,.16);}
.rasa-consult-modal__head h2{
  margin:14px 0 10px;
  color:currentColor;
  font-size:clamp(24px,3vw,34px);
  line-height:1.35;
}
.rasa-consult-modal__head p{
  max-width:620px;
  margin:0 0 22px;
  color:rgba(218,235,255,.78);
  line-height:1.9;
}
html:not(.theme-dark) .rasa-consult-modal__head p{color:#526984;}
.rasa-consult-form{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.rasa-consult-form label{
  display:grid;
  gap:8px;
  color:currentColor;
  font-weight:850;
}
.rasa-consult-form label span{font-size:13px;}
.rasa-consult-form input,
.rasa-consult-form select,
.rasa-consult-form textarea{
  width:100%;
  min-height:48px;
  border:1px solid rgba(117,220,255,.20);
  border-radius:16px;
  padding:0 14px;
  color:#f4fbff;
  background:rgba(255,255,255,.075);
  outline:none;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.rasa-consult-form select{
  appearance:none;
  -webkit-appearance:none;
  padding-left:42px;
  background-image:
    linear-gradient(45deg,transparent 50%,currentColor 50%),
    linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-position:18px 21px,12px 21px;
  background-size:6px 6px,6px 6px;
  background-repeat:no-repeat;
  color-scheme:dark;
}
.rasa-consult-form select option,
.rasa-consult-form select optgroup{
  color:#eef8ff;
  background:#071a3a;
}
.rasa-consult-form textarea{padding-block:12px;resize:vertical;line-height:1.8;}
html:not(.theme-dark) .rasa-consult-form input,
html:not(.theme-dark) .rasa-consult-form select,
html:not(.theme-dark) .rasa-consult-form textarea{
  color:#071a3a;
  background:rgba(255,255,255,.82);
  border-color:rgba(24,128,235,.16);
}
html:not(.theme-dark) .rasa-consult-form select{
  color-scheme:light;
}
html:not(.theme-dark) .rasa-consult-form select option,
html:not(.theme-dark) .rasa-consult-form select optgroup{
  color:#071a3a;
  background:#ffffff;
}
.rasa-consult-form input:focus,
.rasa-consult-form select:focus,
.rasa-consult-form textarea:focus{
  border-color:#4bddff;
  box-shadow:0 0 0 4px rgba(75,221,255,.13);
}
.rasa-consult-form__wide,
.rasa-consult-submit,
.rasa-consult-form__note{grid-column:1 / -1;}
.rasa-consult-submit{
  min-height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border:0;
  border-radius:18px;
  color:#fff;
  background:linear-gradient(135deg,#1682ff,#47d8ff);
  box-shadow:0 18px 36px rgba(29,148,255,.28);
  font-weight:950;
  cursor:pointer;
}
.rasa-consult-form--sent .rasa-consult-submit{background:linear-gradient(135deg,#12b981,#36d399);}
.rasa-consult-form__note{
  margin:0;
  color:rgba(218,235,255,.72);
  font-size:13px;
  line-height:1.8;
}
html:not(.theme-dark) .rasa-consult-form__note{color:#5b6f8f;}
@media (max-width:640px){
  .rasa-consult-modal{padding:12px;}
  .rasa-consult-modal__panel{border-radius:22px;padding:22px 16px;}
  .rasa-consult-form{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){
  .rasa-consult-modal__panel{animation:none!important;}
}
@keyframes rasaConsultIn{
  from{opacity:0;transform:translateY(18px) scale(.97);}
  to{opacity:1;transform:translateY(0) scale(1);}
}

/* RASA CONSULT SELECT FIX v2 */
.rasa-consult-form select:invalid{color:rgba(218,235,255,.62);}
html:not(.theme-dark) .rasa-consult-form select:invalid{color:#7b8da8;}
