@font-face {
  font-family: 'Bodoni Moda';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url(/assets/bodoni-moda-latin-ext-variable.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Bodoni Moda';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url(/assets/bodoni-moda-latin-variable.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/lato-latin-ext-400.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/lato-latin-400.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/lato-latin-ext-700.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/lato-latin-700.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(/assets/lato-latin-ext-900.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Lato';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(/assets/lato-latin-900.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 110px;
  -webkit-text-size-adjust: 100%;
}
* { box-sizing: border-box; }
body { margin: 0; font-family: 'Lato', system-ui, sans-serif; }
img { max-width: 100%; }
main { display: block; }
.mobile-toggle {
  display: none;
  border: 0;
  background: transparent;
  cursor: pointer;
  font: inherit;
}
.skip-link {
  position: fixed;
  left: 16px;
  top: -100px;
  background: #fff;
  color: #881d41;
  padding: 12px 20px;
  z-index: 1000;
  border-radius: 12px;
}
.skip-link:focus { top: 16px; }
:focus-visible { outline: 3px solid #d0613c; outline-offset: 4px; }
.count { --n: var(--to); }
.count::before { content: none !important; }
.btn, .mobile-toggle {
  user-select: none;
  -webkit-user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.btn, .navlink { touch-action: manipulation; }
.btn:active { filter: brightness(.9); }
.foot { padding-bottom: calc(40px + env(safe-area-inset-bottom, 0px)) !important; }

/* The current page remains marked for touch and keyboard users. */
.topnav .navlink.on {
  background: rgba(136, 29, 65, .08);
  color: #881d41;
}
.topnav.dark .glass {
  background: rgba(12, 12, 16, .62);
  border-color: rgba(255, 255, 255, .16);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.topnav.dark .navlink.on {
  background: rgba(255, 255, 255, .16);
  color: #fff;
}

/* Full-screen heroes on every page, shared by English and Arabic. */
.pc .hero-card, .pc .hero-card.sub {
  min-height: 100vh;
  min-height: 100svh;
}
/* Overlay the header without subtracting its language-dependent height. */
.pc > .topnav {
  position: fixed !important;
  inset-inline: 0;
}
.pc > main > section:first-child { margin-top: 0 !important; }

/* Center service copy with equal space above and below. */
.pc .hero-services { justify-content: center; }
.pc .hero-services > .wrap {
  padding-top: 112px !important;
  padding-bottom: 112px !important;
}

/* The home headlines share three rows and a common vertical rhythm. */
.pc .hero-headline {
  font-size: clamp(32px, 4.5vw, 64px) !important;
  line-height: 1.25 !important;
}
.hero-line { display: block; white-space: nowrap; }
.hero-line .w { vertical-align: top; }
.pc .hero-home > .wrap {
  min-height: 100vh;
  min-height: 100svh;
  padding-top: clamp(120px, 18svh, 160px) !important;
  justify-content: space-between;
}

@media (max-width: 760px) {
  .mobile-toggle { display: block; }
  .topnav {
    padding-left: max(10px, env(safe-area-inset-left)) !important;
    padding-right: max(10px, env(safe-area-inset-right)) !important;
  }
  .topnav > .glass {
    position: relative;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 6px !important;
    padding-left: 12px !important;
  }
  .topnav > .glass > a { min-width: 0; }
  .topnav .logo-c, .topnav .logo-w { height: 22px !important; }
  .topnav .btn { padding: 0 12px !important; }
  .topnav .navlink { padding: 10px 8px; font-size: 14px; }
  .topnav .mobile-toggle { min-width: 44px; min-height: 44px; padding: 10px 6px; }
  .topnav nav#main-navigation {
    display: none !important;
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    flex-wrap: wrap;
    justify-content: center;
    padding: 12px 0;
  }
  .topnav nav#main-navigation[data-open] { display: flex !important; }
  .topnav:has([data-open]) > .glass { border-radius: 24px !important; }
  .svc[style*="grid-column"] { grid-column: auto !important; }
  .svc[style*="grid-row"] { grid-row: auto !important; }
  .hero-card > .wrap {
    padding-top: 136px !important;
    padding-bottom: 40px !important;
    gap: 28px !important;
  }
  .pc .hero-headline { font-size: clamp(23px, 7.2vw, 40px) !important; }
  .pc .hero-card.hero-home > .wrap { padding-top: 136px !important; }
  .hero-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px 12px;
    padding: 20px 16px;
  }
  .hero-stats .st { min-width: 0; gap: 8px; }
  .hero-stats .si { width: 32px; height: 32px; border-radius: 10px; }
  .hero-stats .si svg { width: 18px; height: 18px; }
  .hero-stats .v { font-size: clamp(24px, 6.5vw, 32px); }
  .hero-stats .l { font-size: 12px; line-height: 1.4; }
  .field input, .field textarea, .field select { font-size: 16px !important; }
  .pc .sec .wrap { min-width: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .w, .fade, .rv { opacity: 1 !important; transform: none !important; translate: none !important; }
}
@media print {
  .topnav, .mobile-toggle { display: none !important; }
  .w, .fade, .rv { opacity: 1 !important; transform: none !important; animation: none !important; }
}

/* Bodoni Moda is reserved for the copper heading accents. */
h1 .accent-word { font-family: 'Bodoni Moda', Georgia, serif; font-weight: 600; font-size: 1em; font-optical-sizing: auto; letter-spacing: -.015em; }

/* Recover the print-preview fade without changing the extracted logo pixels. */
/* Blend logo whites into each card, including inside the 3D transforms. */
.pc .wtile, .pc .chip { background: #fff; isolation: isolate; }
.pc img.client-logo-restored { mix-blend-mode: multiply; }
.pc img.client-logo-restored, .pc .chip:hover img.client-logo-restored {
  filter: brightness(var(--logo-brightness, 1)) invert(1) brightness(var(--logo-contrast, 1)) invert(1);
  opacity: 1;
}
