@charset "UTF-8";
/* =====================================================================
   BASSAMAD — Design System
   ---------------------------------------------------------------------
   بسامد means "frequency". The whole visual language is built from that:
   a signal read against a deep indigo field, marked by a spectrum trace
   that runs indigo → gold → cyan. That trace is the one signature device,
   reused as the scroll indicator, the section-title rule, the nav
   underline and the card hairline. Everything else stays quiet.

   Layer order — this file loads after webteck-color-schemes, and tokens
   are declared on :root:root so they also outrank the theme's inline
   Redux :root block.

   1. Tokens
   2. Parent-theme variable remap
   3. Elementor global remap
   4. Base & typography
   5. Signature: the spectrum trace
   6. Components
   7. WooCommerce
   8. Motion primitives
   9. Accessibility, responsive, print
   ===================================================================== */

/* ---------------------------------------------------------------------
   1. TOKENS
   ------------------------------------------------------------------ */
:root:root {
  /* — Indigo: the field ————————————————————————————— */
  --bd-indigo-50:  #F1F0FA;
  --bd-indigo-100: #DFDCF2;
  --bd-indigo-200: #BFB9E6;
  --bd-indigo-300: #9990D6;
  --bd-indigo-400: #7466C3;
  --bd-indigo-500: #5B4FC4;  /* carrier — interactive lift */
  --bd-indigo-600: #3E3190;
  --bd-indigo-700: #31287C;  /* signal indigo — brand core */
  --bd-indigo-800: #241D5C;
  --bd-indigo-900: #1B1650;  /* deep field */
  --bd-indigo-950: #0D0A28;

  /* — Gold: the accent ——————————————————————————————— */
  --bd-gold-50:  #FBF6EC;
  --bd-gold-100: #F4E9D3;
  --bd-gold-200: #E8D2A6;
  --bd-gold-300: #DCBA77;
  --bd-gold-400: #D4A24C;  /* trace gold — primary accent */
  --bd-gold-500: #B9873A;
  --bd-gold-600: #966C2E;
  --bd-gold-700: #7C6942;  /* bronze — inherited brand tone */
  --bd-gold-800: #574A2E;

  /* — Spectrum cyan: signature only ——————————————————— */
  --bd-cyan: #3FD0D8;

  /* — Ink: cool neutrals tuned to the indigo ——————————— */
  --bd-ink-950: #080E1C;
  --bd-ink-900: #0F1730;
  --bd-ink-800: #141D38;
  --bd-ink-700: #2A3350;
  --bd-ink-600: #444D6B;
  --bd-ink-500: #5D6580;
  --bd-ink-400: #737887;
  --bd-ink-300: #9AA0B0;
  --bd-ink-200: #C7CCD8;
  --bd-ink-100: #E4E7EE;
  --bd-ink-50:  #F4F6FA;
  --bd-white:   #FFFFFF;

  /* — Status ——————————————————————————————————————— */
  --bd-success: #1E9E6A;
  --bd-warning: #D4A24C;
  --bd-danger:  #D6455D;

  /* — Semantic ————————————————————————————————————— */
  --bd-bg:          var(--bd-white);
  --bd-bg-subtle:   var(--bd-ink-50);
  --bd-bg-inverse:  var(--bd-indigo-900);
  --bd-text:        var(--bd-ink-500);
  --bd-heading:     var(--bd-ink-800);
  --bd-brand:       var(--bd-indigo-700);
  --bd-accent:      var(--bd-gold-400);
  --bd-border:      #E3E6EF;
  --bd-border-soft: #EEF0F6;

  /* — Type ————————————————————————————————————————— */
  --bd-font: 'Vazirmatn', 'Vazirmatn VF', 'IRANSans', 'Segoe UI', system-ui, -apple-system, 'Helvetica Neue', sans-serif;
  --bd-font-num: var(--bd-font);

  /* Fluid scale, 1.20 → 1.25 ratio. Persian sets larger than Latin at
     the same optical size, so the base sits at 16.5px not 16. */
  --bd-fs-xs:   clamp(0.75rem,  0.72rem + 0.15vw, 0.8125rem);
  --bd-fs-sm:   clamp(0.875rem, 0.85rem + 0.15vw, 0.9375rem);
  --bd-fs-base: clamp(1rem,     0.97rem + 0.2vw,  1.0625rem);
  --bd-fs-md:   clamp(1.0625rem,1.02rem + 0.25vw, 1.1875rem);
  --bd-fs-lg:   clamp(1.25rem,  1.17rem + 0.4vw,  1.5rem);
  --bd-fs-xl:   clamp(1.5rem,   1.35rem + 0.75vw, 2rem);
  --bd-fs-2xl:  clamp(1.875rem, 1.6rem + 1.35vw,  2.75rem);
  --bd-fs-3xl:  clamp(2.25rem,  1.85rem + 2vw,    3.5rem);
  --bd-fs-4xl:  clamp(2.75rem,  2.1rem + 3.2vw,   4.5rem);

  /* Persian needs air between lines; Latin headings need less. */
  --bd-lh-body:    1.95;
  --bd-lh-relaxed: 1.8;
  --bd-lh-snug:    1.55;
  --bd-lh-tight:   1.35;

  --bd-fw-light:  300;
  --bd-fw-normal: 400;
  --bd-fw-medium: 500;
  --bd-fw-semi:   600;
  --bd-fw-bold:   700;
  --bd-fw-black:  800;

  /* — Space: 4px base, geometric above 24 ————————————— */
  --bd-space-1:  4px;
  --bd-space-2:  8px;
  --bd-space-3:  12px;
  --bd-space-4:  16px;
  --bd-space-5:  24px;
  --bd-space-6:  32px;
  --bd-space-7:  48px;
  --bd-space-8:  64px;
  --bd-space-9:  96px;
  --bd-section:  clamp(72px, 8vw, 128px);
  --bd-container: 1244px;
  --bd-gutter: 24px;

  /* — Radius ——————————————————————————————————————— */
  --bd-r-xs:   4px;
  --bd-r-sm:   8px;
  --bd-r-md:   14px;
  --bd-r-lg:   22px;
  --bd-r-xl:   32px;
  --bd-r-full: 999px;

  /* — Elevation: shadows carry the indigo, never neutral black ——— */
  --bd-sh-1: 0 1px 2px rgba(27, 22, 80, 0.06), 0 1px 3px rgba(27, 22, 80, 0.05);
  --bd-sh-2: 0 2px 6px rgba(27, 22, 80, 0.06), 0 6px 16px rgba(27, 22, 80, 0.07);
  --bd-sh-3: 0 4px 12px rgba(27, 22, 80, 0.07), 0 16px 34px rgba(27, 22, 80, 0.10);
  --bd-sh-4: 0 8px 24px rgba(27, 22, 80, 0.09), 0 28px 60px rgba(27, 22, 80, 0.14);
  --bd-sh-brand: 0 10px 30px rgba(49, 40, 124, 0.28);
  --bd-sh-gold:  0 10px 28px rgba(212, 162, 76, 0.30);

  /* — Motion ——————————————————————————————————————— */
  --bd-ease:      cubic-bezier(0.22, 0.61, 0.36, 1);
  --bd-ease-out:  cubic-bezier(0.16, 1, 0.3, 1);
  --bd-ease-in:   cubic-bezier(0.5, 0, 0.75, 0);
  --bd-dur-fast:  160ms;
  --bd-dur:       280ms;
  --bd-dur-slow:  560ms;

  /* — The signature gradient ————————————————————————— */
  --bd-spectrum: linear-gradient(
    90deg,
    var(--bd-indigo-700) 0%,
    var(--bd-indigo-500) 28%,
    var(--bd-gold-400) 58%,
    var(--bd-cyan) 84%,
    var(--bd-indigo-700) 100%
  );

  --bd-z-header: 1000;
  --bd-z-overlay: 1200;
  --bd-z-progress: 1400;
}

/* ---------------------------------------------------------------------
   2. PARENT-THEME VARIABLE REMAP
   Webteck reads everything from these; remapping them re-skins the whole
   parent stylesheet in one move.
   ------------------------------------------------------------------ */
:root:root {
  --theme-color:     var(--bd-indigo-700);
  --theme-color2:    var(--bd-gold-400);
  --title-color:     var(--bd-ink-800);
  --body-color:      var(--bd-ink-500);
  --smoke-color:     var(--bd-ink-50);
  --smoke-color2:    #E9ECF6;
  --black-color:     var(--bd-ink-950);
  --black-color2:    var(--bd-ink-950);
  --gray-color:      var(--bd-ink-300);
  --white-color:     var(--bd-white);
  --light-color:     var(--bd-ink-400);
  --yellow-color:    var(--bd-gold-400);
  --success-color:   var(--bd-success);
  --error-color:     var(--bd-danger);
  --th-border-color: var(--bd-border);
  --title-font:      var(--bd-font);
  --body-font:       var(--bd-font);
  --main-container:  var(--bd-container);
  --container-gutters: var(--bd-gutter);
  --section-space:   var(--bd-section);
  --section-space-mobile: clamp(56px, 10vw, 80px);
  --section-title-space: var(--bd-space-7);
}

/* ---------------------------------------------------------------------
   3. ELEMENTOR GLOBAL REMAP
   The kit still shipped Elementor's factory palette. Point the global
   slots at the brand so existing widgets inherit it without re-editing
   every page.
   ------------------------------------------------------------------ */
:root:root {
  --e-global-color-primary:   var(--bd-indigo-700);
  --e-global-color-secondary: var(--bd-ink-800);
  --e-global-color-text:      var(--bd-ink-500);
  --e-global-color-accent:    var(--bd-gold-400);

  --e-global-typography-primary-font-family:   'Vazirmatn';
  --e-global-typography-secondary-font-family: 'Vazirmatn';
  --e-global-typography-text-font-family:      'Vazirmatn';
  --e-global-typography-accent-font-family:    'Vazirmatn';
}

/* ---------------------------------------------------------------------
   4. BASE & TYPOGRAPHY
   ------------------------------------------------------------------ */
html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: 110px;
}

body {
  font-family: var(--bd-font);
  font-size: var(--bd-fs-base);
  font-weight: var(--bd-fw-normal);
  line-height: var(--bd-lh-body);
  color: var(--bd-text);
  background-color: var(--bd-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  /* Persian is never tracked. */
  letter-spacing: normal;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.sec-title, .box-title, .blog-title, .product_title, .entry-title {
  font-family: var(--bd-font);
  color: var(--bd-heading);
  letter-spacing: normal;
  text-wrap: balance;
}

h1, .h1 { font-size: var(--bd-fs-3xl); font-weight: var(--bd-fw-black); line-height: var(--bd-lh-tight); }
h2, .h2 { font-size: var(--bd-fs-2xl); font-weight: var(--bd-fw-bold);  line-height: var(--bd-lh-tight); }
h3, .h3 { font-size: var(--bd-fs-xl);  font-weight: var(--bd-fw-bold);  line-height: var(--bd-lh-snug); }
h4, .h4 { font-size: var(--bd-fs-lg);  font-weight: var(--bd-fw-semi);  line-height: var(--bd-lh-snug); }
h5, .h5 { font-size: var(--bd-fs-md);  font-weight: var(--bd-fw-semi);  line-height: var(--bd-lh-snug); }
h6, .h6 { font-size: var(--bd-fs-base);font-weight: var(--bd-fw-semi);  line-height: var(--bd-lh-snug); }

p { line-height: var(--bd-lh-body); }
p:last-child { margin-bottom: 0; }

/* Persian has no letter case — undo any inherited uppercasing so words
   don't get mangled, but keep it for Latin-only utility labels. */
:lang(fa) .sub-title,
:lang(fa) .th-btn,
html[lang^="fa"] .sub-title,
html[lang^="fa"] .th-btn {
  text-transform: none;
}

/* Numerals align in tables, prices and counters. */
table, .counter-card, .price, .amount, .woocommerce-Price-amount,
.bd-counter-number, .quantity input {
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum' 1;
}

a {
  color: var(--bd-brand);
  text-decoration: none;
  transition: color var(--bd-dur-fast) var(--bd-ease);
}
a:hover { color: var(--bd-gold-500); }

::selection {
  background: var(--bd-indigo-700);
  color: var(--bd-white);
}

img { max-width: 100%; height: auto; }

hr {
  border: 0;
  height: 1px;
  background: var(--bd-border);
  opacity: 1;
}

/* Section eyebrow — a small label that names the section, not decoration */
.sub-title {
  font-size: var(--bd-fs-sm);
  font-weight: var(--bd-fw-semi);
  color: var(--bd-gold-600);
  display: inline-flex;
  align-items: center;
  gap: var(--bd-space-2);
}

.sec-title {
  font-size: var(--bd-fs-2xl);
  font-weight: var(--bd-fw-black);
  line-height: var(--bd-lh-tight);
  color: var(--bd-heading);
}

/* ---------------------------------------------------------------------
   5. SIGNATURE — THE SPECTRUM TRACE
   One device, four placements. Nothing else in the system draws a line.
   ------------------------------------------------------------------ */

/* 5a. Scroll progress — the page read as a swept frequency */
.bd-progress {
  position: fixed;
  inset-block-start: 0;
  inset-inline: 0;
  height: 3px;
  z-index: var(--bd-z-progress);
  background: transparent;
  pointer-events: none;
}
.bd-progress__bar {
  height: 100%;
  width: 100%;
  background: var(--bd-spectrum);
  background-size: 200% 100%;
  transform-origin: right center;   /* RTL: fills from the right */
  transform: scaleX(0);
  will-change: transform;
}
html[dir="ltr"] .bd-progress__bar { transform-origin: left center; }

/* 5b. Section-title rule */
.bd-rule {
  display: block;
  height: 2px;
  width: 68px;
  border-radius: var(--bd-r-full);
  background: var(--bd-spectrum);
  background-size: 200% 100%;
  margin-block-start: var(--bd-space-3);
  position: relative;
  overflow: hidden;
}
.bd-rule::after {
  content: "";
  position: absolute;
  inset-block: 0;
  inline-size: 30%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.85), transparent);
  animation: bd-sweep 3.2s var(--bd-ease) infinite;
}
@keyframes bd-sweep {
  0%   { transform: translateX(-140%); }
  60%, 100% { transform: translateX(360%); }
}

/* 5c. Nav underline (see .main-menu below) and 5d. card hairline
       (see .bd-card-hairline) reuse --bd-spectrum. */

/* ---------------------------------------------------------------------
   6. COMPONENTS
   ------------------------------------------------------------------ */

/* 6a. Buttons ------------------------------------------------------- */
.th-btn {
  --btn-bg: var(--bd-indigo-700);
  --btn-fg: var(--bd-white);
  --btn-bg-hover: var(--bd-indigo-800);

  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--bd-space-2);
  font-family: var(--bd-font);
  font-size: var(--bd-fs-sm);
  font-weight: var(--bd-fw-semi);
  line-height: 1.2;
  letter-spacing: normal;
  padding: 15px 32px;
  border: 0;
  border-radius: var(--bd-r-sm);
  background-color: var(--btn-bg);
  color: var(--btn-fg);
  box-shadow: var(--bd-sh-1);
  transition:
    background-color var(--bd-dur) var(--bd-ease),
    color var(--bd-dur) var(--bd-ease),
    box-shadow var(--bd-dur) var(--bd-ease),
    transform var(--bd-dur) var(--bd-ease);
}

/* The scan: a narrow highlight sweeps the button on hover — the same
   gesture as the spectrum trace, at component scale. */
.th-btn::before {
  content: "";
  position: absolute;
  inset-block: 0;
  inset-inline-start: -60%;
  inline-size: 45%;
  z-index: -1;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.22), transparent);
  transform: skewX(-18deg);
  transition: inset-inline-start var(--bd-dur-slow) var(--bd-ease-out);
}
.th-btn:hover::before,
.th-btn:focus-visible::before { inset-inline-start: 120%; }

.th-btn:hover,
.th-btn:focus-visible {
  background-color: var(--btn-bg-hover);
  color: var(--btn-fg);
  box-shadow: var(--bd-sh-brand);
  transform: translateY(-2px);
}
.th-btn:active { transform: translateY(0); box-shadow: var(--bd-sh-1); }

.th-btn i, .th-btn svg { transition: transform var(--bd-dur) var(--bd-ease); }
.th-btn:hover i { transform: translateX(-3px); }
html[dir="ltr"] .th-btn:hover i { transform: translateX(3px); }

/* Accent button — gold on indigo pages */
.th-btn.style2,
.th-btn.style4 {
  --btn-bg: var(--bd-gold-400);
  --btn-fg: var(--bd-ink-950);
  --btn-bg-hover: var(--bd-gold-300);
}
.th-btn.style2:hover, .th-btn.style4:hover { box-shadow: var(--bd-sh-gold); }

/* Quiet button */
.th-btn.style3,
.th-btn.style-border,
.th-btn.style-border2,
.th-btn.th-border {
  --btn-bg: transparent;
  --btn-fg: var(--bd-indigo-700);
  --btn-bg-hover: var(--bd-indigo-700);
  box-shadow: inset 0 0 0 1.5px var(--bd-indigo-700);
}
.th-btn.style3:hover,
.th-btn.style-border:hover,
.th-btn.style-border2:hover,
.th-btn.th-border:hover {
  color: var(--bd-white);
  box-shadow: inset 0 0 0 1.5px var(--bd-indigo-700), var(--bd-sh-brand);
}

.th-btn.style-radius { border-radius: var(--bd-r-full); }
.th-btn.btn-fw { inline-size: 100%; }

/* 6b. Header & navigation ------------------------------------------- */
.th-header {
  --header-bg: var(--bd-white);
  transition: box-shadow var(--bd-dur) var(--bd-ease), background-color var(--bd-dur) var(--bd-ease);
}

/* Condensed state, applied by JS past 80px */
.th-header.bd-condensed .sticky-wrapper.sticky,
.th-header.bd-condensed .menu-area,
body.bd-scrolled .sticky-wrapper.sticky {
  background-color: rgba(255, 255, 255, 0.88);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  backdrop-filter: saturate(180%) blur(14px);
  box-shadow: var(--bd-sh-2);
}

.main-menu a {
  font-family: var(--bd-font);
  font-size: var(--bd-fs-base);
  font-weight: var(--bd-fw-medium);
  color: var(--bd-ink-700);
  letter-spacing: normal;
  position: relative;
}
.main-menu > ul > li > a::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  inset-block-end: 6px;
  block-size: 2px;
  border-radius: var(--bd-r-full);
  background: var(--bd-spectrum);
  background-size: 200% 100%;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform var(--bd-dur) var(--bd-ease-out);
}
html[dir="ltr"] .main-menu > ul > li > a::after { transform-origin: left center; }
.main-menu > ul > li:hover > a::after,
.main-menu > ul > li.current-menu-item > a::after,
.main-menu > ul > li.current-menu-ancestor > a::after { transform: scaleX(1); }

.main-menu > ul > li:hover > a,
.main-menu > ul > li.current-menu-item > a { color: var(--bd-indigo-700); }

.main-menu ul.sub-menu {
  border: 1px solid var(--bd-border-soft);
  border-radius: var(--bd-r-md);
  box-shadow: var(--bd-sh-3);
  padding: var(--bd-space-2);
  overflow: hidden;
}
.main-menu ul.sub-menu li a {
  border-radius: var(--bd-r-xs);
  font-size: var(--bd-fs-sm);
  transition: background-color var(--bd-dur-fast) var(--bd-ease), color var(--bd-dur-fast) var(--bd-ease), padding-inline-start var(--bd-dur-fast) var(--bd-ease);
}
.main-menu ul.sub-menu li a:hover {
  background-color: var(--bd-indigo-50);
  color: var(--bd-indigo-700);
}

/* 6c. Cards — services, blog, team, process, projects ---------------- */
.service-card,
.blog-card,
.team-box,
.process-card,
.project-card,
.feature-wrapper,
.counter-card,
.accordion-card,
.price-box {
  position: relative;
  border-radius: var(--bd-r-md);
  background-color: var(--bd-white);
  border: 1px solid var(--bd-border-soft);
  box-shadow: var(--bd-sh-1);
  transition:
    transform var(--bd-dur) var(--bd-ease),
    box-shadow var(--bd-dur) var(--bd-ease),
    border-color var(--bd-dur) var(--bd-ease);
}

/* The card hairline — the trace again, drawn along the top edge */
.service-card::after,
.blog-card::after,
.team-box::after,
.process-card::after,
.price-box::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  inset-block-start: 0;
  block-size: 2px;
  border-radius: var(--bd-r-full) var(--bd-r-full) 0 0;
  background: var(--bd-spectrum);
  background-size: 200% 100%;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform var(--bd-dur-slow) var(--bd-ease-out);
  pointer-events: none;
}
html[dir="ltr"] .service-card::after,
html[dir="ltr"] .blog-card::after,
html[dir="ltr"] .team-box::after,
html[dir="ltr"] .process-card::after,
html[dir="ltr"] .price-box::after { transform-origin: left center; }

.service-card:hover, .blog-card:hover, .team-box:hover,
.process-card:hover, .project-card:hover, .feature-wrapper:hover,
.price-box:hover {
  transform: translateY(-6px);
  box-shadow: var(--bd-sh-3);
  border-color: var(--bd-indigo-100);
}
.service-card:hover::after, .blog-card:hover::after, .team-box:hover::after,
.process-card:hover::after, .price-box:hover::after { transform: scaleX(1); }

.service-card img, .blog-card img, .team-box img, .project-card img {
  transition: transform var(--bd-dur-slow) var(--bd-ease-out);
}
.service-card:hover img, .blog-card:hover img,
.team-box:hover img, .project-card:hover img { transform: scale(1.04); }

/* Icon medallions */
.service-card .service-card_icon,
.process-card .process-card_icon,
.feature-wrapper .feature-icon {
  background: linear-gradient(140deg, var(--bd-indigo-700), var(--bd-indigo-900));
  color: var(--bd-white);
  box-shadow: var(--bd-sh-brand);
  transition: transform var(--bd-dur) var(--bd-ease), box-shadow var(--bd-dur) var(--bd-ease);
}
.service-card:hover .service-card_icon,
.process-card:hover .process-card_icon {
  transform: translateY(-3px) rotate(-4deg);
  box-shadow: var(--bd-sh-gold);
}

/* 6d. Forms --------------------------------------------------------- */
input[type="text"], input[type="email"], input[type="url"],
input[type="password"], input[type="search"], input[type="number"],
input[type="tel"], input[type="date"], textarea, select,
.form-control, .form-select {
  font-family: var(--bd-font);
  font-size: var(--bd-fs-sm);
  color: var(--bd-ink-800);
  background-color: var(--bd-white);
  border: 1px solid var(--bd-border);
  border-radius: var(--bd-r-sm);
  padding: 13px 18px;
  transition: border-color var(--bd-dur-fast) var(--bd-ease), box-shadow var(--bd-dur-fast) var(--bd-ease);
}
input:focus, textarea:focus, select:focus,
.form-control:focus, .form-select:focus {
  border-color: var(--bd-indigo-500);
  box-shadow: 0 0 0 4px rgba(91, 79, 196, 0.14);
  outline: none;
}
::placeholder { color: var(--bd-ink-300); opacity: 1; }

label { color: var(--bd-ink-700); font-weight: var(--bd-fw-medium); }

/* 6e. Footer -------------------------------------------------------- */
.footer-wrapper {
  background-color: var(--bd-indigo-950);
  color: var(--bd-ink-300);
}
.footer-wrapper .widget_title,
.footer-wrapper .footer-widget .widget_title,
.footer-wrapper h1, .footer-wrapper h2, .footer-wrapper h3,
.footer-wrapper h4, .footer-wrapper h5, .footer-wrapper h6 { color: var(--bd-white); }

.footer-wrapper a { color: var(--bd-ink-300); }
.footer-wrapper a:hover { color: var(--bd-gold-300); }

.footer-widget .widget_title::after,
.footer-widget .widget_title::before {
  background: var(--bd-spectrum);
  background-size: 200% 100%;
}

.copyright-wrap {
  background-color: var(--bd-indigo-950);
  border-block-start: 1px solid rgba(255, 255, 255, 0.08);
}

/* 6f. Breadcrumb ---------------------------------------------------- */
.breadcumb-wrapper {
  background-color: var(--bd-indigo-900);
  position: relative;
}
.breadcumb-wrapper::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(13, 10, 40, 0.55), rgba(27, 22, 80, 0.85));
  pointer-events: none;
}
.breadcumb-wrapper > * { position: relative; z-index: 1; }
.breadcumb-title { color: var(--bd-white); }
.breadcumb-menu li, .breadcumb-menu li a { color: var(--bd-indigo-100); }
.breadcumb-menu li a:hover { color: var(--bd-gold-300); }

/* 6g. Pagination & widgets ------------------------------------------ */
.th-pagination a, .th-pagination span,
.page-numbers li a, .page-numbers li span {
  border-radius: var(--bd-r-sm);
  border: 1px solid var(--bd-border);
  color: var(--bd-ink-600);
  font-weight: var(--bd-fw-medium);
  transition: all var(--bd-dur-fast) var(--bd-ease);
}
.th-pagination a:hover, .page-numbers li a:hover,
.th-pagination .active, .page-numbers li span.current {
  background-color: var(--bd-indigo-700);
  border-color: var(--bd-indigo-700);
  color: var(--bd-white);
  box-shadow: var(--bd-sh-brand);
}

.widget {
  border-radius: var(--bd-r-md);
  border: 1px solid var(--bd-border-soft);
  background: var(--bd-white);
  box-shadow: var(--bd-sh-1);
}
.widget .widget_title { color: var(--bd-heading); font-weight: var(--bd-fw-bold); }

/* 6h. Tables, quotes, code ------------------------------------------ */
table { border-color: var(--bd-border); }
th { color: var(--bd-heading); font-weight: var(--bd-fw-semi); background: var(--bd-ink-50); }

blockquote, .wp-block-quote {
  border-inline-start: 3px solid var(--bd-gold-400);
  background: var(--bd-ink-50);
  border-radius: var(--bd-r-sm);
  color: var(--bd-ink-700);
}

code, kbd, pre {
  font-family: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, monospace;
  font-size: 0.9em;
  direction: ltr;
  unicode-bidi: embed;
}
code { background: var(--bd-indigo-50); color: var(--bd-indigo-800); padding: 2px 6px; border-radius: var(--bd-r-xs); }

/* ---------------------------------------------------------------------
   7. WOOCOMMERCE
   ------------------------------------------------------------------ */
.woocommerce ul.products li.product,
.th-product {
  border-radius: var(--bd-r-md);
  border: 1px solid var(--bd-border-soft);
  background: var(--bd-white);
  box-shadow: var(--bd-sh-1);
  transition: transform var(--bd-dur) var(--bd-ease), box-shadow var(--bd-dur) var(--bd-ease);
}
.woocommerce ul.products li.product:hover,
.th-product:hover { transform: translateY(-6px); box-shadow: var(--bd-sh-3); }

.woocommerce span.onsale,
.th-product .product-tag {
  background: var(--bd-gold-400);
  color: var(--bd-ink-950);
  border-radius: var(--bd-r-full);
  font-weight: var(--bd-fw-semi);
  box-shadow: var(--bd-sh-gold);
}

.woocommerce .price, .woocommerce-Price-amount {
  color: var(--bd-indigo-700);
  font-weight: var(--bd-fw-bold);
}
.woocommerce del .woocommerce-Price-amount { color: var(--bd-ink-300); font-weight: var(--bd-fw-normal); }

.woocommerce .star-rating span::before,
.woocommerce .star-rating::before { color: var(--bd-gold-400); }

.woocommerce-message, .woocommerce-info, .woocommerce-error {
  border-radius: var(--bd-r-sm);
  border-top-color: var(--bd-indigo-700);
}
.woocommerce-message { border-top-color: var(--bd-success); }
.woocommerce-error { border-top-color: var(--bd-danger); }

/* ---------------------------------------------------------------------
   8. MOTION PRIMITIVES
   Applied by assets/js/bassamad.js. Every animated property is
   transform or opacity only — nothing that triggers layout.
   ------------------------------------------------------------------ */
[data-bd-reveal] {
  opacity: 0;
  will-change: transform, opacity;
  transition:
    opacity var(--bd-dur-slow) var(--bd-ease-out),
    transform var(--bd-dur-slow) var(--bd-ease-out);
  transition-delay: var(--bd-delay, 0ms);
}
[data-bd-reveal="up"]    { transform: translate3d(0, 26px, 0); }
[data-bd-reveal="down"]  { transform: translate3d(0, -26px, 0); }
[data-bd-reveal="start"] { transform: translate3d(28px, 0, 0); }
[data-bd-reveal="end"]   { transform: translate3d(-28px, 0, 0); }
[data-bd-reveal="scale"] { transform: scale(0.94); }
[data-bd-reveal="fade"]  { transform: none; }

[data-bd-reveal].bd-in {
  opacity: 1;
  transform: none;
}
/* Release the compositor hint once the animation is done. */
[data-bd-reveal].bd-done { will-change: auto; transition: none; }

/* Ambient lift for anything marked interactive */
.bd-lift { transition: transform var(--bd-dur) var(--bd-ease), box-shadow var(--bd-dur) var(--bd-ease); }
.bd-lift:hover { transform: translateY(-4px); box-shadow: var(--bd-sh-3); }

/* Counters hold their box while animating so digits don't reflow */
.bd-counter-number { font-variant-numeric: tabular-nums; }

/* Below-the-fold sections skip layout+paint until they approach the
   viewport. contain-intrinsic-size keeps the scrollbar honest. */
.bd-defer-render {
  content-visibility: visible;
  contain: none;
}

/* ---------------------------------------------------------------------
   9. BASSAMAD HOMEPAGE — SIGNAL LAB EDITORIAL
   Scoped repairs and presentation for Elementor document 3240. These
   rules intentionally outrank generated post CSS without modifying it.
   ------------------------------------------------------------------ */

/* Header: precise, calm and roomy ------------------------------------ */
.home.bassamad .th-header .menu-area {
  min-height: 92px;
  background: var(--bd-white);
  border-block-end: 1px solid rgba(49, 40, 124, 0.08);
}

.home.bassamad .th-header .header-logo img,
.home.bassamad .th-header .logo-bg img {
  inline-size: auto;
  max-block-size: 58px;
}

.home.bassamad .main-menu > ul > li {
  margin-inline: clamp(10px, 1.15vw, 19px);
}

.home.bassamad .main-menu > ul > li > a {
  min-block-size: 88px;
  display: inline-flex;
  align-items: center;
}

/* Hero: retain Elementor's photographs and slider, improve hierarchy. */
.home.bassamad .elementor-element-4080adf,
.home.bassamad .elementor-element-2b43849 {
  overflow: hidden;
}

.home.bassamad .elementor-element-2b43849 .swiper-slide {
  block-size: clamp(520px, 43vw, 620px) !important;
}

.home.bassamad .elementor-element-2b43849 .swiper-slide-bg {
  filter: brightness(0.58) saturate(0.88) contrast(1.04);
  transform: scale(1.01);
}

.home.bassamad .elementor-element-2b43849 .swiper-slide-contents {
  max-inline-size: min(760px, 68vw) !important;
  padding: 40px 54px;
  border-inline-end: 2px solid var(--bd-gold-400);
  background: linear-gradient(90deg, rgba(13, 10, 40, 0.08), rgba(13, 10, 40, 0.44));
}

.home.bassamad .elementor-element-2b43849 .elementor-slide-heading {
  margin-block-end: 16px !important;
  color: var(--bd-white);
  font-size: clamp(2.25rem, 4.2vw, 3.75rem) !important;
  font-weight: var(--bd-fw-black);
  line-height: 1.35 !important;
  text-shadow: 0 3px 24px rgba(7, 5, 30, 0.55);
}

.home.bassamad .elementor-element-2b43849 .elementor-slide-description {
  max-inline-size: 690px;
  margin-inline: auto;
  color: rgba(255, 255, 255, 0.92);
  font-size: clamp(1rem, 1.3vw, 1.2rem);
  line-height: 1.95;
  text-shadow: 0 2px 12px rgba(7, 5, 30, 0.5);
}

.home.bassamad .elementor-element-2b43849 .elementor-swiper-button {
  inline-size: 48px;
  block-size: 48px;
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 50%;
  background: rgba(13, 10, 40, 0.48);
  color: var(--bd-white);
  transition: background-color var(--bd-dur) var(--bd-ease), border-color var(--bd-dur) var(--bd-ease), transform var(--bd-dur) var(--bd-ease);
}

.home.bassamad .elementor-element-2b43849 .elementor-swiper-button:hover,
.home.bassamad .elementor-element-2b43849 .elementor-swiper-button:focus-visible {
  background: var(--bd-gold-400);
  border-color: var(--bd-gold-400);
  color: var(--bd-indigo-950);
  transform: scale(1.05);
}

.elementor-swiper-button-next,
.elementor-swiper-button-prev,
.home.bassamad .elementor-element-2b43849 .elementor-swiper-button {
  border: none !important;
  box-shadow: none !important;
}

.elementor-swiper-button-next:hover,
.elementor-swiper-button-prev:hover,
.home.bassamad .elementor-element-2b43849 .elementor-swiper-button:hover,
.home.bassamad .elementor-element-2b43849 .elementor-swiper-button:focus-visible {
  border: none !important;
  background-color: transparent !important;
  box-shadow: none !important;
}

/* Why Bassamad: a legible editorial split --------------------------- */
.home.bassamad .elementor-element-3fa715ec {
  position: relative;
  overflow: hidden;
  padding: clamp(72px, 7vw, 104px) 24px !important;
  background:
    radial-gradient(circle at 88% 15%, rgba(63, 208, 216, 0.09), transparent 22%),
    var(--bd-white);
}

.home.bassamad .elementor-element-3fa715ec::before {
  content: "";
  position: absolute;
  inset-block: 12%;
  inset-inline-end: 0;
  inline-size: 5px;
  background: var(--bd-spectrum);
  opacity: 0.8;
}

.home.bassamad .elementor-element-3fa715ec > .elementor-container {
  max-inline-size: var(--bd-container);
  align-items: center;
  gap: clamp(42px, 5vw, 76px);
}

.home.bassamad .elementor-element-3c8b806e,
.home.bassamad .elementor-element-7bee6556 {
  min-inline-size: 0;
}

.home.bassamad .elementor-element-3c8b806e > .elementor-element-populated,
.home.bassamad .elementor-element-7bee6556 > .elementor-element-populated {
  padding: 0 !important;
}

.home.bassamad .elementor-element-29e8548a .title-area-wrap {
  text-align: right !important;
}

.home.bassamad .elementor-element-29e8548a .sec-title {
  margin-block-end: 24px;
  font-size: clamp(2rem, 3vw, 2.75rem);
}

.home.bassamad .elementor-element-5364708 {
  margin: 0 !important;
  color: var(--bd-ink-600);
  font-size: clamp(1rem, 1.1vw, 1.075rem) !important;
  text-align: right !important;
}

.home.bassamad .elementor-element-5364708 p {
  max-inline-size: 64ch;
  line-height: 1.95;
}

.home.bassamad .elementor-element-6eb98596 {
  inline-size: auto !important;
  max-inline-size: none !important;
  margin-block-start: 30px;
}

.home.bassamad .elementor-element-34f20b2 .elementor-widget-container {
  position: relative;
  padding: 14px 0 14px 14px;
}

.home.bassamad .elementor-element-34f20b2 .elementor-widget-container::before {
  content: "";
  position: absolute;
  inset: 0 20px 0 0;
  z-index: 0;
  border: 1px solid rgba(49, 40, 124, 0.14);
  border-radius: var(--bd-r-lg);
  background: var(--bd-indigo-50);
  transform: translate(-18px, 18px);
}

.home.bassamad .elementor-element-34f20b2 img {
  position: relative;
  z-index: 1;
  display: block;
  inline-size: 100%;
  border-radius: var(--bd-r-lg);
  box-shadow: var(--bd-sh-3);
}

/* Three service pillars --------------------------------------------- */
.home.bassamad .elementor-element-2044405 {
  padding: clamp(66px, 6vw, 88px) 24px 38px !important;
  background-color: var(--bd-bg-subtle) !important;
  background-size: min(520px, 42vw) auto !important;
  border-block-start: 1px solid var(--bd-border-soft);
}

.home.bassamad .elementor-element-2044405 .sec-title {
  color: var(--bd-indigo-700);
  font-size: clamp(2rem, 3vw, 2.75rem);
}

.home.bassamad .elementor-element-42fe484 {
  padding: 0 24px clamp(72px, 7vw, 102px) !important;
  background-color: var(--bd-bg-subtle) !important;
  background-size: min(780px, 55vw) auto !important;
}

.home.bassamad .elementor-element-42fe484 > .e-con-inner {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  max-inline-size: var(--bd-container);
}

.home.bassamad .elementor-element-862a910,
.home.bassamad .elementor-element-c5e64b1,
.home.bassamad .elementor-element-aa39696 {
  --width: auto !important;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  inline-size: auto !important;
  min-block-size: 330px;
  margin: 0 !important;
  padding: 30px 30px 28px !important;
  border: 1px solid rgba(49, 40, 124, 0.09);
  border-radius: var(--bd-r-md) !important;
  background: rgba(255, 255, 255, 0.97) !important;
  box-shadow: var(--bd-sh-2) !important;
  transition: transform var(--bd-dur) var(--bd-ease), box-shadow var(--bd-dur) var(--bd-ease), border-color var(--bd-dur) var(--bd-ease);
}

.home.bassamad .elementor-element-862a910::before,
.home.bassamad .elementor-element-c5e64b1::before,
.home.bassamad .elementor-element-aa39696::before {
  content: "";
  position: absolute;
  inset-block-start: 0;
  inset-inline: 0;
  block-size: 3px;
  background: var(--bd-spectrum);
  transform: scaleX(0.22);
  transform-origin: right center;
  transition: transform 420ms var(--bd-ease-out);
}

.home.bassamad .elementor-element-862a910:hover,
.home.bassamad .elementor-element-c5e64b1:hover,
.home.bassamad .elementor-element-aa39696:hover {
  border-color: var(--bd-indigo-100);
  box-shadow: var(--bd-sh-3) !important;
  transform: translateY(-5px);
}

.home.bassamad .elementor-element-862a910:hover::before,
.home.bassamad .elementor-element-c5e64b1:hover::before,
.home.bassamad .elementor-element-aa39696:hover::before {
  transform: scaleX(1);
}

.home.bassamad .elementor-element-42fe484 img {
  inline-size: 76px !important;
  block-size: 76px;
  padding: 12px;
  border-radius: 20px;
  background: linear-gradient(145deg, var(--bd-indigo-700), var(--bd-indigo-900));
  box-shadow: 0 12px 26px rgba(49, 40, 124, 0.2);
  object-fit: contain;
}

.home.bassamad .elementor-element-42fe484 .elementor-heading-title {
  font-size: clamp(1.2rem, 1.7vw, 1.45rem) !important;
  font-weight: var(--bd-fw-bold);
  line-height: 1.55;
}

.home.bassamad .elementor-element-2da29db,
.home.bassamad .elementor-element-86fd6ed,
.home.bassamad .elementor-element-2c8dc36 {
  color: var(--bd-ink-500);
  font-size: 0.94rem !important;
  text-align: right !important;
}

.home.bassamad .elementor-element-2da29db p,
.home.bassamad .elementor-element-86fd6ed p,
.home.bassamad .elementor-element-2c8dc36 p {
  line-height: 1.9;
}

/* Teams: repaired three-up Swiper on an engineered indigo field ------ */
.home.bassamad .elementor-element-4194e73f {
  position: relative;
  overflow: hidden;
  padding: 0 !important;
  background:
    linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    var(--bd-indigo-900);
  background-size: 42px 42px;
}

.home.bassamad .elementor-element-4194e73f::after {
  content: "";
  position: absolute;
  inset-inline-start: -10%;
  inset-block-end: -120px;
  inline-size: 48%;
  block-size: 260px;
  border-radius: 50%;
  background: rgba(63, 208, 216, 0.08);
  filter: blur(70px);
  pointer-events: none;
}

.home.bassamad .elementor-element-3d16743e > .elementor-element-populated {
  padding: clamp(64px, 6vw, 88px) 24px 0 !important;
  background: transparent !important;
}

.home.bassamad .elementor-element-4194e73f .sec-title {
  color: var(--bd-white);
  font-size: clamp(2rem, 3vw, 2.75rem);
}

.home.bassamad .elementor-element-80ef370 {
  padding: 26px 24px clamp(76px, 7vw, 100px) !important;
}

.home.bassamad .elementor-element-540b357 .slider-area,
.home.bassamad .elementor-element-540b357 .th-slider {
  max-inline-size: var(--bd-container);
  margin-inline: auto;
}

.home.bassamad .elementor-element-540b357 .th-slider {
  overflow: hidden;
  padding: 8px 2px 22px;
}

.home.bassamad .elementor-element-540b357 .swiper-wrapper,
.home.bassamad .elementor-element-d3f2bcd .swiper-wrapper {
  align-items: stretch;
}

.home.bassamad .elementor-element-540b357 .swiper-slide,
.home.bassamad .elementor-element-d3f2bcd .swiper-slide {
  display: flex;
  block-size: auto;
}

.home.bassamad .elementor-element-540b357 .project-card5 {
  display: flex;
  flex-direction: column;
  inline-size: 100%;
  block-size: auto !important;
  min-block-size: 450px;
  padding: 14px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 18px;
  background: var(--bd-white);
  box-shadow: 0 22px 48px rgba(8, 5, 32, 0.24);
  transition: transform var(--bd-dur) var(--bd-ease), box-shadow var(--bd-dur) var(--bd-ease), border-color var(--bd-dur) var(--bd-ease);
}

.home.bassamad .elementor-element-540b357 .project-card5:hover {
  border-color: rgba(212, 162, 76, 0.72);
  box-shadow: 0 26px 54px rgba(8, 5, 32, 0.32);
  transform: translateY(-5px);
}

.home.bassamad .elementor-element-540b357 .project-img {
  aspect-ratio: 16 / 9;
  border-radius: 12px;
  background: var(--bd-indigo-50);
}

.home.bassamad .elementor-element-540b357 .project-img img {
  inline-size: 100%;
  block-size: 100%;
  border-radius: inherit;
  object-fit: cover;
}

.home.bassamad .elementor-element-540b357 .project-card5:hover .project-img img {
  transform: scale(1.035);
}

.home.bassamad .elementor-element-540b357 .project-content {
  flex: 1;
  padding: 24px 12px 14px;
}

.home.bassamad .elementor-element-540b357 .box-title,
.home.bassamad .elementor-element-540b357 .box-title a {
  color: var(--bd-indigo-800);
  font-size: 1.27rem;
  line-height: 1.55;
}

.home.bassamad .elementor-element-540b357 .desc-selector,
.home.bassamad .elementor-element-540b357 .team-text {
  color: var(--bd-ink-500) !important;
  font-size: 0.93rem;
  line-height: 1.9;
  text-align: right !important;
}

.home.bassamad .elementor-element-540b357 .line-btn {
  display: none !important;
}

.home.bassamad .elementor-element-540b357 .slider-arrow {
  display: none !important;
  inline-size: 48px;
  block-size: 48px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: var(--bd-indigo-700);
  color: var(--bd-white);
  box-shadow: 0 12px 30px rgba(8, 5, 32, 0.26);
}

.home.bassamad .elementor-element-540b357 .slider-arrow:hover,
.home.bassamad .elementor-element-540b357 .slider-arrow:focus-visible {
  border-color: var(--bd-gold-400);
  background: var(--bd-gold-400);
  color: var(--bd-indigo-950);
}

.home.bassamad .elementor-element-540b357 .slider-area > .slider-arrow {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  line-height: 48px;
  padding: 0;
  margin: 0;
  z-index: 10;
}

.home.bassamad .elementor-element-540b357 .slider-area > .slider-arrow.slider-prev {
  left: 16px;
  right: auto;
}

.home.bassamad .elementor-element-540b357 .slider-area > .slider-arrow.slider-next {
  right: 16px;
  left: auto;
}

/* Values: second repaired three-up slider --------------------------- */
.home.bassamad .elementor-element-5d57e34 {
  position: relative;
  overflow: hidden;
  padding: clamp(70px, 7vw, 96px) 24px clamp(78px, 7vw, 104px) !important;
  background:
    radial-gradient(circle at 12% 35%, rgba(63, 208, 216, 0.08), transparent 22%),
    var(--bd-white);
}

.home.bassamad .elementor-element-5d57e34::before {
  content: "";
  position: absolute;
  inset-block-start: 0;
  inset-inline: 0;
  block-size: 1px;
  background: linear-gradient(90deg, transparent, var(--bd-indigo-300), var(--bd-gold-400), transparent);
}

.home.bassamad .elementor-element-d3f125c > .elementor-element-populated {
  padding: 0 !important;
}

.home.bassamad .elementor-element-5d57e34 .sec-title {
  color: var(--bd-indigo-700);
  font-size: clamp(2rem, 3vw, 2.75rem);
}

.home.bassamad .elementor-element-d3f2bcd .slider-area,
.home.bassamad .elementor-element-d3f2bcd .th-slider {
  max-inline-size: var(--bd-container);
  margin-inline: auto;
}

.home.bassamad .elementor-element-d3f2bcd .th-slider {
  overflow: hidden;
  padding: 12px 2px 18px;
}

.home.bassamad .elementor-element-d3f2bcd .service-featured {
  display: flex;
  inline-size: 100%;
  block-size: 100%;
  text-align: right;
}

.home.bassamad .elementor-element-d3f2bcd .service-featured::before {
  display: none;
}

.home.bassamad .elementor-element-d3f2bcd .service-featured_content {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  inline-size: 100%;
  max-inline-size: none;
  min-block-size: 390px;
  margin: 0;
  padding: 32px 28px 70px;
  border: 1px solid var(--bd-border-soft);
  border-radius: var(--bd-r-md);
  background: var(--bd-white);
  box-shadow: var(--bd-sh-2);
  transition: transform var(--bd-dur) var(--bd-ease), box-shadow var(--bd-dur) var(--bd-ease), border-color var(--bd-dur) var(--bd-ease);
}

.home.bassamad .elementor-element-d3f2bcd .service-featured:hover .service-featured_content {
  border-color: var(--bd-indigo-100);
  box-shadow: var(--bd-sh-3);
  transform: translateY(-5px);
}

.home.bassamad .elementor-element-d3f2bcd .shape-icon {
  inline-size: 76px;
  block-size: 76px;
  margin: 0 0 24px !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.home.bassamad .elementor-element-d3f2bcd .shape-icon:before {
  background-color: transparent !important;
  display: none !important;
}

.home.bassamad .elementor-element-d3f2bcd .shape-icon img,
.home.bassamad .elementor-element-d3f2bcd .shape-icon svg,
.home.bassamad .elementor-element-d3f2bcd .shape-icon .elementor-icon {
  inline-size: 100% !important;
  block-size: 100% !important;
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: contain !important;
}

.home.bassamad .elementor-element-d3f2bcd .shape-icon .dots {
  display: none;
}

.home.bassamad .elementor-element-d3f2bcd .box-title {
  margin-block-end: 14px;
  font-size: 1.24rem;
  line-height: 1.55;
}

.home.bassamad .elementor-element-d3f2bcd .service-featured_text {
  max-inline-size: none;
  margin: 0;
  color: var(--bd-ink-500);
  font-size: 0.94rem !important;
  line-height: 1.9;
  text-align: right !important;
}

.home.bassamad .elementor-element-d3f2bcd .icon-btn {
  inset-block-end: 18px;
  inset-inline-start: 28px;
  inset-inline-end: auto;
  inline-size: 44px;
  block-size: 44px;
  border-radius: 12px;
  background: var(--bd-indigo-700);
  box-shadow: 0 8px 20px rgba(49, 40, 124, 0.24);
}

/* One explicit, keyboard-accessible control set for every Webteck
   carousel. It remains visible on touch screens where parent arrows hide. */
.home.bassamad .bd-slider-controls {
  position: relative;
  z-index: 8;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-block-start: 18px;
}

.home.bassamad .bd-slider-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  inline-size: 44px;
  block-size: 44px;
  padding: 0;
  border: 1px solid var(--bd-indigo-100);
  border-radius: 12px;
  background: var(--bd-white);
  color: var(--bd-indigo-700);
  box-shadow: var(--bd-sh-1);
  cursor: pointer;
  transition: transform var(--bd-dur-fast) var(--bd-ease), background-color var(--bd-dur-fast) var(--bd-ease), color var(--bd-dur-fast) var(--bd-ease);
}

.home.bassamad .bd-slider-prev::before { content: "\2192"; }
.home.bassamad .bd-slider-next::before { content: "\2190"; }

.home.bassamad .bd-slider-button:hover,
.home.bassamad .bd-slider-button:focus-visible {
  background: var(--bd-gold-400);
  color: var(--bd-indigo-950);
  transform: translateY(-2px);
}

.home.bassamad .bd-slider-status {
  min-inline-size: 58px;
  color: var(--bd-ink-500);
  font-size: var(--bd-fs-sm);
  font-variant-numeric: tabular-nums;
  text-align: center;
}

.home.bassamad .elementor-element-4194e73f .bd-slider-status {
  color: var(--bd-indigo-100);
}

/* Parent hover arrows disappear below 1300px. The unified controls above
   are clearer at every size, so avoid presenting two competing control sets. */
.home.bassamad .elementor-element-540b357 .slider-area > .slider-arrow,
.home.bassamad .elementor-element-540b357 .slider-arrow {
  display: none !important;
}

/* Footer: visible, compact and information-led ---------------------- */
.home.bassamad .footer-wrapper {
  position: relative;
  overflow: hidden;
  min-block-size: 0;
  background-color: var(--bd-indigo-950);
}

.home.bassamad .footer-wrapper::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, rgba(49, 40, 124, 0.44), rgba(13, 10, 40, 0.88));
  pointer-events: none;
}

.home.bassamad .footer-wrapper .elementor-container,
.home.bassamad .footer-wrapper .elementor-widget-wrap {
  position: relative;
  z-index: 1;
}

.home.bassamad .footer-wrapper .footer-widget,
.home.bassamad .footer-wrapper p,
.home.bassamad .footer-wrapper li,
.home.bassamad .footer-wrapper a {
  line-height: 1.9;
}

.home.bassamad .footer-wrapper .footer-widget {
  margin-block-end: 28px;
}

.home.bassamad .copyright-wrap {
  padding-block: 18px;
}

/* Scroll-to-top compatibility control. */
.bassamad .scroll-top {
  padding: 0;
  border: 0;
  cursor: pointer;
}

/* ---------------------------------------------------------------------
   9. ACCESSIBILITY, RESPONSIVE, PRINT
   ------------------------------------------------------------------ */
:focus-visible {
  outline: 3px solid var(--bd-gold-400);
  outline-offset: 3px;
  border-radius: var(--bd-r-xs);
}
/* Only suppress the ring for pointer users, never for keyboard. */
:focus:not(:focus-visible) { outline: none; }

.bd-skip-link {
  position: absolute;
  inset-inline-start: -9999px;
  inset-block-start: 0;
  z-index: var(--bd-z-progress);
  padding: 12px 22px;
  background: var(--bd-indigo-700);
  color: var(--bd-white);
  border-radius: 0 0 var(--bd-r-sm) var(--bd-r-sm);
  font-weight: var(--bd-fw-semi);
}
.bd-skip-link:focus {
  inset-inline-start: var(--bd-space-5);
  color: var(--bd-white);
}

.bd-sr-only {
  position: absolute;
  inline-size: 1px; block-size: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 991px) {
  :root:root { --bd-lh-body: 1.9; }
  .th-btn { padding: 13px 26px; }

  .home.bassamad .th-header .menu-area { min-height: 78px; }

  .home.bassamad .elementor-element-2b43849 .swiper-slide {
    block-size: clamp(500px, 72vw, 580px) !important;
  }

  .home.bassamad .elementor-element-3fa715ec > .elementor-container {
    flex-wrap: wrap;
    gap: 46px;
  }

  .home.bassamad .elementor-element-3c8b806e,
  .home.bassamad .elementor-element-7bee6556 {
    inline-size: 100% !important;
  }

  .home.bassamad .elementor-element-3c8b806e {
    order: 1;
  }

  .home.bassamad .elementor-element-7bee6556 {
    order: 2;
  }

  .home.bassamad .elementor-element-34f20b2 {
    max-inline-size: 620px;
    margin-inline: auto;
  }

  .home.bassamad .elementor-element-42fe484 > .e-con-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home.bassamad .elementor-element-aa39696 {
    grid-column: 1 / -1;
    inline-size: calc(50% - 10px) !important;
    justify-self: center;
  }

  .home.bassamad .elementor-element-862a910,
  .home.bassamad .elementor-element-c5e64b1,
  .home.bassamad .elementor-element-aa39696 {
    min-block-size: 320px;
  }

  .home.bassamad .elementor-element-4194e73f {
    padding: 0 !important;
  }
}

@media (max-width: 1024px) {
  /* The saved Elementor header container is marked hidden on both tablet
     and mobile. Override only that known container and keep its existing
     Elementor menu widget/functionality intact. */
  .home.bassamad .elementor-location-header,
  .home.bassamad .elementor-location-header .elementor-element-a458254,
  .home.bassamad .elementor-location-header .elementor-element-bf8b375,
  .home.bassamad .elementor-location-header .elementor-widget-container,
  .home.bassamad .elementor-location-header .elementor-shortcode,
  .home.bassamad .elementor-location-header .elementor-13674 {
    display: block !important;
    block-size: auto !important;
    min-block-size: 0;
  }

  .home.bassamad .elementor-13674 .elementor-element-3009abe5 {
    --display: flex !important;
    display: flex !important;
    inline-size: 100%;
    padding: 10px 20px !important;
    background: var(--bd-white);
    box-shadow: 0 6px 24px rgba(27, 22, 80, 0.1);
  }

  .home.bassamad .elementor-13674 .elementor-element-3009abe5 > .e-con-inner {
    inline-size: 100%;
    max-inline-size: var(--bd-container);
  }

  .home.bassamad .elementor-13674 .elementor-element-4b867af8 {
    --display: flex !important;
    --flex-direction: row !important;
    --justify-content: space-between !important;
    --align-items: center !important;
    --flex-wrap: nowrap !important;
    display: flex !important;
    flex-flow: row nowrap !important;
    justify-content: space-between !important;
    align-items: center !important;
    min-block-size: 58px;
    gap: 24px !important;
    padding: 0 !important;
    position: relative;
  }

  .home.bassamad .elementor-13674 .elementor-element-b8c9d61 {
    flex: 0 0 auto;
    inline-size: auto !important;
  }

  .home.bassamad .elementor-13674 .elementor-element-b8c9d61 img {
    display: block;
    inline-size: auto !important;
    block-size: 46px !important;
    max-inline-size: 178px !important;
  }

  .home.bassamad .elementor-13674 .elementor-element-1d4a2aad {
    --container-widget-width: 46px;
    --container-widget-flex-grow: 0;
    position: static;
    flex: 0 0 46px;
    inline-size: 46px !important;
    max-inline-size: 46px;
    margin-inline-start: auto;
  }

  .home.bassamad .elementor-13674 .elementor-element-1d4a2aad .elementor-nav-menu--main {
    display: none !important;
  }

  .home.bassamad .elementor-13674 .elementor-element-1d4a2aad .elementor-menu-toggle {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    inline-size: 46px;
    block-size: 46px;
    margin: 0 !important;
    padding: 0;
    border: 1px solid var(--bd-indigo-100);
    border-radius: 12px;
    background: var(--bd-indigo-700);
    color: var(--bd-white);
    font-size: 22px;
  }

  .home.bassamad .elementor-13674 .elementor-element-1d4a2aad .elementor-nav-menu--dropdown {
    position: absolute !important;
    inset-block-start: calc(100% + 10px);
    inset-inline: auto;
    left: 0;
    right: auto;
    inline-size: min(340px, calc(100vw - 40px)) !important;
    min-inline-size: min(340px, calc(100vw - 40px));
    max-inline-size: calc(100vw - 40px);
    margin: 0;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 14px;
    background: var(--bd-indigo-800);
    box-shadow: 0 24px 54px rgba(13, 10, 40, 0.26);
  }

  .home.bassamad .elementor-13674 .elementor-nav-menu--dropdown .menu-item-12633.bd-submenu-open > .sub-menu {
    position: static;
    display: block !important;
    inline-size: 100%;
    margin: 0;
    background: var(--bd-indigo-900);
  }

  .home.bassamad .elementor-13674 .elementor-nav-menu--dropdown .elementor-item,
  .home.bassamad .elementor-13674 .elementor-nav-menu--dropdown .elementor-sub-item {
    display: flex;
    align-items: center;
    inline-size: 100%;
    min-block-size: 48px;
    padding: 12px 20px;
    color: var(--bd-white);
    font-size: 0.95rem;
    line-height: 1.65;
    text-align: right;
    white-space: nowrap;
  }
}

@media (max-width: 767px) {
  .service-card, .blog-card, .team-box, .process-card { border-radius: var(--bd-r-sm); }
  .th-btn { inline-size: auto; }

  .home.bassamad .elementor-element-2b43849 .swiper-slide {
    block-size: clamp(510px, 138vw, 560px) !important;
  }

  .home.bassamad .elementor-element-2b43849 .swiper-slide-contents {
    max-inline-size: 88vw !important;
    padding: 24px 18px;
    border-inline-end-width: 1px;
    background: rgba(13, 10, 40, 0.28);
  }

  .home.bassamad .elementor-element-2b43849 .elementor-slide-heading {
    font-size: clamp(2rem, 9.5vw, 2.45rem) !important;
  }

  .home.bassamad .elementor-element-2b43849 .elementor-slide-description {
    max-inline-size: 31ch;
    font-size: 1rem;
    line-height: 1.95;
  }

  .home.bassamad .elementor-element-2b43849 .elementor-swiper-button {
    inline-size: 40px;
    block-size: 40px;
  }

  .home.bassamad .elementor-element-3fa715ec {
    padding: 58px 18px 64px !important;
  }

  .home.bassamad .elementor-element-3fa715ec > .elementor-container {
    gap: 34px;
  }

  .home.bassamad .elementor-element-5364708 {
    font-size: 1.02rem !important;
  }

  .home.bassamad .elementor-element-5364708 p {
    max-inline-size: 36ch;
    line-height: 2;
  }

  .home.bassamad .elementor-element-e3797e4 {
    text-align: right !important;
  }

  .home.bassamad .elementor-element-e3797e4 img {
    max-inline-size: 54px !important;
  }

  .home.bassamad .elementor-element-34f20b2 .elementor-widget-container {
    padding: 8px 0 8px 8px;
  }

  .home.bassamad .elementor-element-34f20b2 .elementor-widget-container::before {
    transform: translate(-10px, 10px);
  }

  .home.bassamad .elementor-element-2044405 {
    padding: 58px 18px 30px !important;
  }

  .home.bassamad .elementor-element-42fe484 {
    padding: 0 18px 66px !important;
  }

  .home.bassamad .elementor-element-42fe484 > .e-con-inner {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .home.bassamad .elementor-element-aa39696 {
    grid-column: auto;
    inline-size: auto !important;
  }

  .home.bassamad .elementor-element-862a910,
  .home.bassamad .elementor-element-c5e64b1,
  .home.bassamad .elementor-element-aa39696 {
    min-block-size: 0;
    padding: 26px 22px !important;
  }

  .home.bassamad .elementor-element-3d16743e > .elementor-element-populated {
    padding: 56px 18px 0 !important;
  }

  .home.bassamad .elementor-element-80ef370 {
    padding: 22px 18px 66px !important;
  }

  .home.bassamad .elementor-element-540b357 .project-card5 {
    min-block-size: 420px;
  }

  .home.bassamad .elementor-element-540b357 .slider-arrow {
    inline-size: 42px;
    block-size: 42px;
  }

  .home.bassamad .elementor-element-5d57e34 {
    padding: 58px 18px 68px !important;
  }

  .home.bassamad .elementor-element-d3f2bcd .service-featured_content {
    min-block-size: 370px;
    padding: 28px 22px 66px;
  }

  .home.bassamad .bd-slider-controls {
    margin-block-start: 12px;
  }

  .home.bassamad .bd-slider-button {
    inline-size: 46px;
    block-size: 46px;
  }
}

/* Honour the OS setting: kill motion, keep every state change legible. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
  [data-bd-reveal] { opacity: 1 !important; transform: none !important; }
  .bd-rule::after { display: none; }
  .bd-progress { display: none; }
}

@media print {
  .bd-progress, .th-header, .footer-wrapper, .breadcumb-wrapper { display: none !important; }
  body { color: #000; background: #fff; font-size: 12pt; }
  a[href]::after { content: " (" attr(href) ")"; font-size: 0.85em; color: #555; }
}
