html { scroll-behavior: smooth; }
    body { font-family: Inter, sans-serif; background: #faf9f7; color: #181818; }
    h1,h2,h3,h4 { font-family: Manrope, Inter, sans-serif; }
    ::selection { background: #e52920; color: #fff; }

    /* Reveal animations are progressive enhancement: content remains visible if JS/preview blocks observers. */
    .reveal, .reveal-left, .reveal-right {
      opacity: 1;
      transform: none;
      transition: opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1);
    }
    .reveal-enabled .reveal { opacity: 0; transform: translateY(34px); }
    .reveal-enabled .reveal-left { opacity: 0; transform: translateX(-34px); }
    .reveal-enabled .reveal-right { opacity: 0; transform: translateX(34px); }
    .is-visible { opacity: 1 !important; transform: translate(0,0) !important; }

    .stagger > * { opacity: 1; transform: none; }
    .reveal-enabled .stagger > * { opacity: 0; transform: translateY(22px); }
    .stagger.is-visible > * {
      animation: staggerIn .7s cubic-bezier(.22,1,.36,1) forwards;
    }
    .stagger.is-visible > *:nth-child(1) { animation-delay: .05s; }
    .stagger.is-visible > *:nth-child(2) { animation-delay: .12s; }
    .stagger.is-visible > *:nth-child(3) { animation-delay: .19s; }
    .stagger.is-visible > *:nth-child(4) { animation-delay: .26s; }
    .stagger.is-visible > *:nth-child(5) { animation-delay: .33s; }
    .stagger.is-visible > *:nth-child(6) { animation-delay: .40s; }

    @keyframes staggerIn {
      to { opacity: 1; transform: translateY(0); }
    }

    @keyframes floatSlow {
      0%,100% { transform: translateY(0) rotate(0deg); }
      50% { transform: translateY(-14px) rotate(1deg); }
    }

    @keyframes pulseSoft {
      0%,100% { box-shadow: 0 0 0 0 rgba(229,41,32,.12); }
      50% { box-shadow: 0 0 0 16px rgba(229,41,32,0); }
    }

    .float-slow { animation: floatSlow 7s ease-in-out infinite; }
    .pulse-soft { animation: pulseSoft 2.8s ease-in-out infinite; }

    .hero-grid {
      background-image:
        linear-gradient(rgba(229,41,32,.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(229,41,32,.055) 1px, transparent 1px);
      background-size: 46px 46px;
    }

    .product-card img,
    .image-zoom img { transition: transform .8s cubic-bezier(.22,1,.36,1); }
    .product-card:hover img,
    .image-zoom:hover img { transform: scale(1.06); }

    .btn-arrow svg { transition: transform .25s ease; }
    .btn-arrow:hover svg { transform: translateX(4px); }

    .marquee-track {
      display: flex;
      width: max-content;
      animation: marquee 24s linear infinite;
    }
    @keyframes marquee {
      to { transform: translateX(-50%); }
    }

    .process-line::before {
      content: "";
      position: absolute;
      left: 23px;
      top: 48px;
      bottom: -28px;
      width: 1px;
      background: linear-gradient(to bottom, #e52920, rgba(229,41,32,.08));
    }
    .process-item:last-child .process-line::before { display: none; }


    @media (min-width: 768px) {
      .process-line::before {
        left: 50%;
        top: 48px;
        bottom: auto;
        width: calc(100% + 1px);
        height: 1px;
        background: linear-gradient(90deg, #e52920, rgba(229,41,32,.08));
      }
      .process-item:last-child .process-line::before { display: block; }
    }

    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
      }
    }
  
    /* ---------- PREMIUM PACKAGING VISUAL SYSTEM ---------- */
    :root {
      --brand: #e52920;
      --brand-dark: #a51d18;
      --ink: #181818;
      --paper: #faf9f7;
      --line: rgba(24,24,24,.10);
    }

    body { overflow-x: hidden; }

    /* .nav-scrolled is defined once in main.css so every page matches. */

    .page-progress {
      position: fixed;
      inset: 0 0 auto 0;
      height: 3px;
      transform-origin: left;
      transform: scaleX(0);
      background: linear-gradient(90deg, #e52920, #ff6b5e, #e52920);
      z-index: 100;
      box-shadow: 0 0 18px rgba(229,41,32,.45);
    }

    .hero-grid {
      background-image:
        linear-gradient(rgba(229,41,32,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(229,41,32,.035) 1px, transparent 1px);
      background-size: 42px 42px;
      mask-image: linear-gradient(to bottom, black, transparent 92%);
    }

    .hero-orbit {
      animation: orbit 14s linear infinite;
      transform-origin: center;
    }

    .hero-pulse {
      animation: pulseRing 3.8s ease-in-out infinite;
    }

    .float-slow {
      animation: floatBox 6s ease-in-out infinite;
    }

    .float-slower {
      animation: floatBox 8s ease-in-out 1s infinite;
    }

    .shine {
      position: relative;
      overflow: hidden;
    }
    .shine::after {
      content: "";
      position: absolute;
      inset: -20% auto -20% -45%;
      width: 35%;
      transform: skewX(-18deg) translateX(-180%);
      background: linear-gradient(90deg, transparent, rgba(255,255,255,.42), transparent);
      animation: shineSweep 5.5s ease-in-out infinite;
      pointer-events: none;
    }

    .premium-card {
      position: relative;
      isolation: isolate;
      transition: transform .55s cubic-bezier(.22,1,.36,1),
                  box-shadow .55s cubic-bezier(.22,1,.36,1),
                  border-color .4s ease;
      will-change: transform;
    }
    .premium-card:hover {
      transform: translateY(-10px);
      box-shadow: 0 28px 80px rgba(24,24,24,.12);
      border-color: rgba(229,41,32,.24);
    }

    .tilt-card {
      transform-style: preserve-3d;
      will-change: transform;
    }

    .tilt-card .tilt-content {
      transform: translateZ(24px);
    }

    .btn-premium {
      position: relative;
      overflow: hidden;
      isolation: isolate;
    }
    .btn-premium::before {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(110deg, transparent 25%, rgba(255,255,255,.25) 48%, transparent 70%);
      transform: translateX(-120%);
      transition: transform .7s ease;
    }
    .btn-premium:hover::before { transform: translateX(120%); }

    /* CSS-only dummy packaging imagery.
       These replace stock photos with reusable, lightweight box illustrations. */
    .dummy-box-image {
      position: relative;
      min-height: 100%;
      overflow: hidden;
      background:
        radial-gradient(circle at 20% 20%, rgba(229,41,32,.09) 0 1px, transparent 1.5px) 0 0 / 18px 18px,
        linear-gradient(145deg, #f8f4ee, #e9e0d3);
      display: grid;
      place-items: center;
      isolation: isolate;
    }
    .dummy-box-image::before {
      content: "";
      position: absolute;
      width: 62%;
      height: 62%;
      border: 1px solid rgba(229,41,32,.16);
      border-radius: 28px;
      animation: boxHalo 4.5s ease-in-out infinite;
    }
    .box-art {
      position: relative;
      width: min(62%, 300px);
      aspect-ratio: 1.15 / 1;
      transform-style: preserve-3d;
      animation: boxFloat 5.8s ease-in-out infinite;
      filter: drop-shadow(0 28px 24px rgba(67,48,28,.22));
    }
    .box-front, .box-side, .box-top {
      position: absolute;
      border: 2px solid rgba(86,60,30,.32);
      background: linear-gradient(145deg, #d5a76a, #b98243);
    }
    .box-front {
      left: 12%;
      bottom: 8%;
      width: 62%;
      height: 58%;
      clip-path: polygon(0 8%, 100% 0, 100% 100%, 0 100%);
    }
    .box-side {
      right: 4%;
      bottom: 8%;
      width: 26%;
      height: 58%;
      clip-path: polygon(0 0, 100% 13%, 100% 92%, 0 100%);
      background: linear-gradient(90deg, #a96f37, #8f5d2f);
    }
    .box-top {
      left: 12%;
      top: 10%;
      width: 62%;
      height: 25%;
      transform: skewY(-7deg);
      background: linear-gradient(145deg, #e5bc82, #c99658);
    }
    .box-tape {
      position: absolute;
      left: 38%;
      top: 8%;
      width: 12%;
      height: 82%;
      background: rgba(249,224,172,.72);
      box-shadow: inset 0 0 0 1px rgba(123,87,39,.13);
    }
    .box-print {
      position: absolute;
      left: 29%;
      top: 39%;
      width: 28%;
      height: 18%;
      border: 2px solid rgba(229,41,32,.78);
      color: #a51d18;
      display: grid;
      place-items: center;
      font-size: clamp(8px, 1vw, 12px);
      font-weight: 900;
      letter-spacing: .16em;
      transform: rotate(-1deg);
      background: rgba(255,248,236,.25);
    }
    .box-barcode {
      position: absolute;
      right: 17%;
      bottom: 18%;
      width: 12%;
      height: 15%;
      background: repeating-linear-gradient(90deg, #2a2119 0 2px, transparent 2px 4px);
      opacity: .58;
    }
    .box-corner {
      position: absolute;
      width: 9px;
      height: 9px;
      border-radius: 2px;
      background: rgba(229,41,32,.75);
      box-shadow: 0 0 18px rgba(229,41,32,.25);
    }
    .box-corner.one { top: 18%; left: 15%; }
    .box-corner.two { top: 17%; right: 14%; }
    .box-corner.three { bottom: 14%; left: 10%; }

    .dummy-box-image.red .box-front {
      background: linear-gradient(145deg, #d8a27e, #b66d48);
    }
    .dummy-box-image.red .box-side {
      background: linear-gradient(90deg, #9e5538, #7d412d);
    }
    .dummy-box-image.red .box-print {
      background: rgba(229,41,32,.92);
      color: white;
      border-color: #8f1d17;
    }
    .dummy-box-image.white .box-front {
      background: linear-gradient(145deg, #f3efe8, #d9d2c6);
    }
    .dummy-box-image.white .box-side {
      background: linear-gradient(90deg, #c9c0b2, #aaa091);
    }
    .dummy-box-image.white .box-print {
      background: rgba(229,41,32,.08);
    }

    .image-label {
      position: absolute;
      left: 18px;
      bottom: 18px;
      z-index: 5;
      padding: 9px 12px;
      border-radius: 999px;
      border: 1px solid rgba(255,255,255,.55);
      background: rgba(24,24,24,.72);
      color: white;
      font-size: 10px;
      font-weight: 800;
      letter-spacing: .13em;
      text-transform: uppercase;
      backdrop-filter: blur(12px);
    }

    .floating-chip {
      animation: chipFloat 5s ease-in-out infinite;
    }
    .floating-chip:nth-child(2) { animation-delay: 1.2s; }
    .floating-chip:nth-child(3) { animation-delay: 2.1s; }

    .marquee-track {
      display: flex;
      width: max-content;
      animation: marquee 26s linear infinite;
    }
    .marquee:hover .marquee-track { animation-play-state: paused; }

    .marquee-tag {
      flex: 0 0 auto;
      border: 1px solid #e5e7eb;
      border-radius: 9999px;
      background: #f8f7f5;
      padding: .5rem 1.25rem;
      color: #6b7280;
      font-size: .75rem;
      font-weight: 800;
      letter-spacing: .16em;
      text-transform: uppercase;
      transition: background-color .25s ease, border-color .25s ease, color .25s ease, transform .25s ease;
    }

    .marquee-tag:hover {
      border-color: #e52920;
      background: #e52920;
      color: #fff;
      transform: translateY(-2px);
    }

    .scan-line {
      position: absolute;
      left: 0;
      right: 0;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(229,41,32,.65), transparent);
      animation: scan 4s ease-in-out infinite;
      pointer-events: none;
    }

    .section-number {
      font-variant-numeric: tabular-nums;
      font-feature-settings: "tnum";
    }

    @keyframes floatBox {
      0%,100% { transform: translateY(0) rotate(0deg); }
      50% { transform: translateY(-8px) rotate(.35deg); }
    }
    @keyframes boxFloat {
      0%,100% { transform: translateY(0) rotateX(2deg) rotateY(-5deg); }
      50% { transform: translateY(-13px) rotateX(-2deg) rotateY(5deg); }
    }
    @keyframes orbit {
      from { transform: rotate(0deg); }
      to { transform: rotate(360deg); }
    }
    @keyframes pulseRing {
      0%,100% { opacity: .35; transform: scale(.96); }
      50% { opacity: .8; transform: scale(1.04); }
    }
    @keyframes boxHalo {
      0%,100% { transform: scale(.94); opacity: .25; }
      50% { transform: scale(1.04); opacity: .65; }
    }
    @keyframes shineSweep {
      0%, 55% { transform: translateX(-180%); }
      75%,100% { transform: translateX(420%); }
    }
    @keyframes chipFloat {
      0%,100% { transform: translateY(0); }
      50% { transform: translateY(-7px); }
    }
    @keyframes marquee {
      from { transform: translateX(0); }
      to { transform: translateX(-50%); }
    }
    @keyframes scan {
      0% { top: 8%; opacity: 0; }
      15% { opacity: 1; }
      70% { opacity: .8; }
      100% { top: 92%; opacity: 0; }
    }

    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
      }
    }

  
    .section-kicker {
      display: inline-flex;
      align-items: center;
      gap: .65rem;
    }
    .section-kicker::before {
      content: "";
      width: 28px;
      height: 1px;
      border-radius: 99px;
      background: var(--brand);
      box-shadow: 0 0 14px rgba(229,41,32,.25);
    }

    .industry-card {
      position: relative;
      min-height: 190px;
      overflow: hidden;
      isolation: isolate;
      transition: transform .5s cubic-bezier(.22,1,.36,1), box-shadow .5s ease, border-color .4s ease;
    }
    .industry-card::before {
      content: "";
      position: absolute;
      inset: 0;
      background: radial-gradient(circle at 90% 10%, rgba(229,41,32,.12), transparent 34%);
      opacity: .75;
      transition: transform .6s ease, opacity .4s ease;
      z-index: -1;
    }
    .industry-card:hover {
      transform: translateY(-9px);
      border-color: rgba(229,41,32,.28);
      box-shadow: 0 25px 60px rgba(24,24,24,.10);
    }
    .industry-card:hover::before {
      transform: scale(1.2);
      opacity: 1;
    }
    .industry-index {
      transition: transform .5s cubic-bezier(.22,1,.36,1), background .3s ease, color .3s ease;
    }
    .industry-card:hover .industry-index {
      transform: rotate(-7deg) scale(1.08);
      background: var(--brand);
      color: white;
    }
    .industry-line {
      position: absolute;
      left: 24px;
      right: 24px;
      bottom: 20px;
      height: 2px;
      transform-origin: left;
      transform: scaleX(.25);
      background: linear-gradient(90deg, var(--brand), transparent);
      transition: transform .55s ease;
    }
    .industry-card:hover .industry-line { transform: scaleX(1); }

    .process-shell {
      position: relative;
      margin-top: 3.5rem;
      padding: 1px;
      border-radius: 2rem;
      background: linear-gradient(135deg, rgba(229,41,32,.20), rgba(24,24,24,.04), rgba(229,41,32,.10));
    }
    .process-grid {
      position: relative;
      border-radius: calc(2rem - 1px);
      background: white;
    }
    .process-progress {
      position: absolute;
      left: calc(3rem + ((100% - 6rem) / 12));
      right: calc(3rem + ((100% - 6rem) / 12));
      top: 84px;
      height: 2px;
      background: #eee;
    }
    .process-progress::after {
      content: "";
      position: absolute;
      left: 0;
      top: 0;
      width: 78%;
      height: 100%;
      background: linear-gradient(90deg, var(--brand), rgba(229,41,32,.15));
      animation: processGrow 2.4s cubic-bezier(.22,1,.36,1) both;
      transform-origin: left;
    }
    .process-step {
      position: relative;
      z-index: 2;
      transition: transform .45s cubic-bezier(.22,1,.36,1);
    }
    .process-step:hover { transform: translateY(-8px); }
    .process-node {
      position: relative;
      margin: 0 auto;
      width: 72px;
      height: 72px;
      display: grid;
      place-items: center;
      border-radius: 50%;
      background: white;
      border: 1px solid rgba(229,41,32,.22);
      box-shadow: 0 14px 34px rgba(24,24,24,.10);
    }
    .process-node::before {
      content: "";
      position: absolute;
      inset: -7px;
      border: 1px dashed rgba(229,41,32,.25);
      border-radius: inherit;
      animation: orbit 12s linear infinite;
    }
    .process-number {
      display: grid;
      place-items: center;
      width: 48px;
      height: 48px;
      border-radius: 50%;
      background: var(--brand);
      color: white;
      font-weight: 900;
      font-size: 13px;
      box-shadow: 0 10px 24px rgba(229,41,32,.22);
    }

    .client-panel {
      position: relative;
      overflow: hidden;
      border: 1px solid rgba(24,24,24,.08);
      background: white;
      border-radius: 1.5rem;
      box-shadow: 0 18px 55px rgba(24,24,24,.06);
    }
    .client-panel::before {
      content: "";
      position: absolute;
      inset: 0;
      background:
        linear-gradient(90deg, rgba(229,41,32,.04) 1px, transparent 1px),
        linear-gradient(rgba(229,41,32,.04) 1px, transparent 1px);
      background-size: 24px 24px;
      mask-image: linear-gradient(to bottom, black, transparent 75%);
      pointer-events: none;
    }
    .client-logo {
      position: relative;
      display: grid;
      place-items: center;
      min-height: 88px;
      border: 1px solid rgba(24,24,24,.09);
      border-radius: 1.1rem;
      background: rgba(255,255,255,.82);
      color: #8a8a8a;
      font-weight: 900;
      letter-spacing: -.02em;
      transition: transform .4s ease, color .3s ease, border-color .3s ease, box-shadow .4s ease;
    }
    .client-logo::after {
      content: "";
      position: absolute;
      width: 34px;
      height: 2px;
      left: 18px;
      bottom: 13px;
      background: var(--brand);
      opacity: .2;
      transition: width .35s ease, opacity .35s ease;
    }
    .client-logo:hover {
      transform: translateY(-6px);
      color: var(--brand);
      border-color: rgba(229,41,32,.25);
      box-shadow: 0 18px 40px rgba(24,24,24,.08);
    }
    .client-logo:hover::after {
      width: 58px;
      opacity: .75;
    }

    .testimonial-card {
      position: relative;
      overflow: hidden;
    }
    .testimonial-card::before {
      content: "";
      position: absolute;
      width: 220px;
      height: 220px;
      right: -70px;
      top: -90px;
      border-radius: 50%;
      border: 1px solid rgba(229,41,32,.10);
      box-shadow: 0 0 0 25px rgba(229,41,32,.025), 0 0 0 50px rgba(229,41,32,.018);
    }
    .quote-mark {
      display: grid;
      place-items: center;
      width: 62px;
      height: 62px;
      border-radius: 18px;
      background: var(--brand);
      color: white;
      font-family: Georgia, serif;
      font-size: 40px;
      line-height: 1;
      box-shadow: 0 16px 30px rgba(229,41,32,.22);
    }
    .testimonial-meta {
      display: flex;
      align-items: center;
      gap: .75rem;
      padding-top: 1.4rem;
      margin-top: 1.4rem;
      border-top: 1px solid rgba(24,24,24,.08);
    }
    .testimonial-avatar {
      display: grid;
      place-items: center;
      width: 46px;
      height: 46px;
      border-radius: 14px;
      background: #fff2f1;
      color: var(--brand);
      font-weight: 900;
      border: 1px solid rgba(229,41,32,.12);
    }

    @keyframes processGrow {
      from { transform: scaleX(0); }
      to { transform: scaleX(1); }
    }

    @media (max-width: 767px) {
      .process-progress {
        left: 56px;
        right: auto;
        top: 56px;
        bottom: 56px;
        width: 2px;
        height: auto;
      }
      .process-progress::after {
        width: 100%;
        height: 72%;
        animation-name: processGrowMobile;
      }
      .process-grid { padding: 1.25rem; }
      .process-step {
        display: grid;
        grid-template-columns: 72px 1fr;
        column-gap: 1rem;
        text-align: left;
      }
      .process-node { margin: 0; }
    }
    @keyframes processGrowMobile {
      from { transform: scaleY(0); }
      to { transform: scaleY(1); }
    }

  

    .google-trust-badge {
      transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
    }
    .google-trust-badge:hover {
      transform: translateY(-3px);
      border-color: rgba(229,41,32,.22);
      box-shadow: 0 14px 34px rgba(24,24,24,.09);
    }
    .google-g-mark {
      font-family: Arial, sans-serif;
      font-weight: 900;
      font-size: 17px;
      background: conic-gradient(from -35deg, #4285f4 0 25%, #34a853 25% 45%, #fbbc05 45% 65%, #ea4335 65% 82%, #4285f4 82% 100%);
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }
    .google-stars {
      letter-spacing: 1px;
      color: #f5b400;
      font-size: 10px;
    }

    /* Premium testimonial carousel — CSS provides the core interaction, JS only enhances autoplay. */
    .testimonial-shell { position: relative; }
    .testimonial-viewport {
      display: flex;
      gap: 1.25rem;
      width: 100%;
      overflow-x: auto;
      overflow-y: hidden;
      padding: .25rem .1rem 1.25rem;
      scroll-snap-type: x mandatory;
      scroll-behavior: smooth;
      overscroll-behavior-x: contain;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      touch-action: pan-x;
      scroll-padding-inline: .1rem;
    }
    .testimonial-viewport::-webkit-scrollbar { display: none; }
    .testimonial-slide {
      position: relative;
      flex: 0 0 calc((100% - 2.5rem) / 3);
      min-width: calc((100% - 2.5rem) / 3);
      scroll-snap-align: start;
      scroll-snap-stop: always;
    }
    .testimonial-card {
      position: relative;
      min-height: 405px;
      height: 100%;
      overflow: hidden;
      transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
    }
    .testimonial-card::after {
      content: "";
      position: absolute;
      width: 180px;
      height: 180px;
      right: -80px;
      top: -90px;
      border-radius: 50%;
      border: 1px solid rgba(229,41,32,.10);
      box-shadow: 0 0 0 18px rgba(229,41,32,.025);
      pointer-events: none;
    }
    .testimonial-card:hover {
      transform: translateY(-6px);
      border-color: rgba(229,41,32,.18);
      box-shadow: 0 24px 55px rgba(24,24,24,.10);
    }
    .testimonial-rating {
      display: flex;
      gap: .18rem;
      color: #f5b400;
      font-size: 14px;
      letter-spacing: .08em;
    }
    .testimonial-quote {
      margin-top: 2rem;
      font-family: Georgia, "Times New Roman", serif;
      font-size: 1.2rem;
      font-style: italic;
      line-height: 1.9;
      color: #202020;
    }
    .testimonial-meta {
      margin-top: 1.6rem;
      padding-top: 1.2rem;
      border-top: 1px solid rgba(24,24,24,.08);
    }
    .testimonial-avatar {
      display: grid;
      place-items: center;
      width: 48px;
      height: 48px;
      flex: 0 0 48px;
      border-radius: 50%;
      background: #fff2f1;
      color: var(--brand);
      font-weight: 900;
      border: 1px solid rgba(229,41,32,.14);
    }
    .testimonial-side-arrow {
      position: absolute;
      top: 50%;
      z-index: 5;
      display: grid;
      place-items: center;
      width: 52px;
      height: 52px;
      border: 1px solid #e5e7eb;
      border-radius: 50%;
      background: rgba(255,255,255,.98);
      color: #374151;
      font-size: 34px;
      line-height: 1;
      text-decoration: none;
      box-shadow: 0 12px 30px rgba(24,24,24,.12);
      transform: translateY(-50%);
      transition: transform .25s ease, border-color .25s ease, color .25s ease, box-shadow .25s ease;
    }
    .testimonial-side-arrow:hover {
      color: var(--brand);
      border-color: rgba(229,41,32,.35);
      box-shadow: 0 16px 36px rgba(24,24,24,.16);
    }
    .testimonial-side-arrow.prev { left: -26px; }
    .testimonial-side-arrow.next { right: -26px; }
    .testimonial-dots {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: .55rem;
      margin-top: 1.15rem;
    }
    .testimonial-dot {
      display: block;
      width: 10px;
      height: 10px;
      border-radius: 999px;
      background: #d8dce2;
      transition: width .3s ease, background .3s ease, transform .3s ease;
    }
    .testimonial-dot.active,
    .testimonial-dot:hover {
      width: 30px;
      background: var(--brand);
    }
    @media (max-width: 900px) {
      .testimonial-slide {
        flex-basis: calc((100% - 1.25rem) / 2);
        min-width: calc((100% - 1.25rem) / 2);
      }
      .testimonial-side-arrow.prev { left: -12px; }
      .testimonial-side-arrow.next { right: -12px; }
    }
    @media (max-width: 640px) {
      .testimonial-slide {
        flex-basis: 100%;
        min-width: 100%;
      }
      .testimonial-card { min-height: 430px; }
      .testimonial-side-arrow {
        width: 46px;
        height: 46px;
        font-size: 30px;
      }
      .testimonial-side-arrow.prev { left: 8px; }
      .testimonial-side-arrow.next { right: 8px; }
      .testimonial-viewport { gap: 1rem; }
    }

  
    /* =========================================================
       TESTIMONIAL GRID — SAME ALIGNMENT AS ALL MAIN SECTIONS
       ========================================================= */
    #testimonials .testimonial-shell {
      position: relative;
      width: 100%;
      max-width: none;
      margin: 48px auto 0;
    }

    #testimonials .testimonial-viewport {
      width: 100%;
      max-width: none;
      margin: 0 auto;
      padding: .25rem 0 1.25rem;
      box-sizing: border-box;
    }

    #testimonials .testimonial-slide {
      box-sizing: border-box;
    }

    @media (max-width: 900px) {
      #testimonials .testimonial-viewport {
        padding-left: 0;
        padding-right: 0;
      }
    }

    @media (max-width: 640px) {
      #testimonials .testimonial-viewport {
        padding-left: 0;
        padding-right: 0;
      }

      #testimonials .testimonial-side-arrow.prev {
        left: 4px;
      }

      #testimonials .testimonial-side-arrow.next {
        right: 4px;
      }
    }

  
    /* Testimonial carousel alignment: the viewport itself must stay inside
       the same centered page grid as the heading and Clients section. */
    #testimonials .testimonial-viewport {
      position: relative;
      left: 0;
      right: auto;
      transform: none;
      margin-left: 0 !important;
      margin-right: 0 !important;
      width: 100%;
      max-width: 100%;
      box-sizing: border-box;
      justify-content: flex-start;
      scroll-padding-left: 0;
    }

    #testimonials .testimonial-shell {
      position: relative;
      left: 0;
      width: 100%;
      max-width: 100%;
      margin-left: 0 !important;
      margin-right: 0 !important;
      box-sizing: border-box;
    }

  
    /* =========================================================
       WHY CHOOSE US — PREMIUM CARD SIZING
       ========================================================= */
    #why-choose-us,
    .why-choose-us-section {
      width: 100%;
    }

    .why-choose-us-section .why-choose-card {
      min-height: 300px;
      padding: 2.5rem;
      display: flex;
      flex-direction: column;
      justify-content: flex-start;
    }

    .why-choose-us-section .why-choose-card h3 {
      font-size: clamp(1.25rem, 1.5vw, 1.5rem);
      line-height: 1.25;
    }

    .why-choose-us-section .why-choose-card p {
      max-width: 34rem;
      font-size: 1rem;
      line-height: 1.75;
    }

    .why-choose-us-section .why-choose-card > div:first-child {
      margin-bottom: 1.5rem;
    }

    @media (min-width: 1024px) {
      .why-choose-us-section .why-choose-card {
        min-height: 330px;
        padding: 3rem;
      }
    }

    @media (min-width: 1440px) {
      .why-choose-us-section .why-choose-card {
        min-height: 350px;
        padding: 3.25rem;
      }
    }

    @media (max-width: 767px) {
      .why-choose-us-section .why-choose-card {
        min-height: 260px;
        padding: 2rem;
      }
    }

  
/* =========================================================
   WHY CHOOSE US — FULL-WIDTH CARD GRID
   ========================================================= */
.why-choose-us-section .why-choose-card {
  min-width: 0;
  min-height: 330px;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.why-choose-us-section .why-choose-card h3 {
  font-size: clamp(1.25rem, 1.45vw, 1.55rem);
  line-height: 1.3;
  max-width: 16rem;
}

.why-choose-us-section .why-choose-card p {
  max-width: 20rem;
  font-size: 1rem;
  line-height: 1.75;
}

.why-choose-us-section .why-choose-number {
  flex: 0 0 auto;
}

@media (min-width: 1280px) {
  .why-choose-us-section .why-choose-card {
    min-height: 350px;
    padding: 2.5rem;
  }
  .why-choose-us-section .why-choose-card p {
    max-width: 22rem;
  }
}

@media (max-width: 1023px) {
  .why-choose-us-section .why-choose-card {
    min-height: 290px;
  }
}

@media (max-width: 639px) {
  .why-choose-us-section .why-choose-card {
    min-height: 250px;
    padding: 1.75rem;
  }
}

  
    /* =========================================================
       OUR PRODUCTS — MOBILE SLIDER
       Desktop/tablet keep the existing grid.
       On small screens, products become a one-card-at-a-time
       horizontal slider controlled by the two arrow buttons.
       ========================================================= */
    .products-mobile-viewport {
      width: 100%;
    }

    .products-mobile-viewport .product-mobile-slide {
      min-width: 0;
    }

    .products-mobile-controls {
      position: relative;
      z-index: 5;
    }

    .products-slider-arrow {
      -webkit-tap-highlight-color: transparent;
    }

    @media (max-width: 767px) {
      .products-mobile-viewport {
        display: flex !important;
        flex-wrap: nowrap;
        gap: 1rem;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        scroll-behavior: smooth;
        scrollbar-width: none;
        -ms-overflow-style: none;
        overscroll-behavior-x: contain;
        touch-action: pan-x;
        padding: 0.15rem 0.1rem 0.5rem;
      }

      .products-mobile-viewport::-webkit-scrollbar {
        display: none;
      }

      .products-mobile-viewport .product-mobile-slide {
        flex: 0 0 100%;
        width: 100%;
        max-width: 100%;
        scroll-snap-align: start;
        scroll-snap-stop: always;
      }

      .products-mobile-viewport .product-mobile-slide .relative.h-64 {
        height: 15rem;
      }

      .products-mobile-viewport .product-mobile-slide .p-6 {
        padding: 1.35rem;
      }

      .products-mobile-viewport .product-mobile-slide h3 {
        font-size: 1.2rem;
      }

      .products-mobile-controls .products-slider-arrow {
        box-shadow: 0 8px 24px rgba(15, 23, 42, .08);
      }
    }

  


@media (max-width: 767px) {
  #products .mobile-product-controls {
    position: relative;
    width: min(100%, 22rem);
    margin: 2rem auto 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.15rem;
  }

  #products .mobile-product-arrow {
    position: relative;
    isolation: isolate;
    width: 3.65rem;
    height: 3.65rem;
    min-width: 3.65rem;
    border-radius: 9999px;
    border: 1px solid rgba(148,163,184,.24);
    background: rgba(255,255,255,.96);
    color: #334155;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 28px rgba(15,23,42,.08),0 2px 6px rgba(15,23,42,.05);
    transition: transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s ease,border-color .22s ease,color .22s ease,background .22s ease;
    -webkit-tap-highlight-color: transparent;
  }

  #products .mobile-product-arrow::before {
    content:"";
    position:absolute;
    inset:-3px;
    border-radius:inherit;
    border:1px solid rgba(239,68,68,.12);
    opacity:0;
    transform:scale(.88);
    transition:opacity .22s ease,transform .22s ease;
    z-index:-1;
  }

  #products .mobile-product-arrow svg {
    width:1.35rem;
    height:1.35rem;
    stroke-width:2.3;
    transition:transform .22s cubic-bezier(.2,.8,.2,1);
  }

  #products .mobile-product-arrow:not(:disabled):hover {
    transform:translateY(-3px);
    border-color:rgba(239,68,68,.35);
    color:#ef2b24;
    box-shadow:0 16px 34px rgba(239,43,36,.13),0 4px 10px rgba(15,23,42,.06);
  }

  #products .mobile-product-arrow:not(:disabled):hover::before {
    opacity:1;
    transform:scale(1);
  }

  #products .mobile-product-arrow:first-child:not(:disabled):hover svg {
    transform:translateX(-3px);
  }

  #products .mobile-product-arrow:last-child:not(:disabled):hover svg {
    transform:translateX(3px);
  }

  #products .mobile-product-arrow:active:not(:disabled) {
    transform:translateY(0) scale(.94);
    box-shadow:0 7px 18px rgba(15,23,42,.10);
  }

  #products .mobile-product-arrow:focus-visible {
    outline:none;
    border-color:#ef2b24;
    box-shadow:0 0 0 4px rgba(239,43,36,.14),0 12px 28px rgba(15,23,42,.10);
  }

  #products .mobile-product-arrow:disabled {
    opacity:.42;
    cursor:not-allowed;
    background:#f8fafc;
    color:#94a3b8;
    box-shadow:none;
  }

  #products .mobile-product-arrow:last-child:not(:disabled) {
    border-color:rgba(239,43,36,.42);
    background:linear-gradient(180deg,#fff 0%,#fff7f6 100%);
    color:#ef2b24;
  }

  #products .mobile-product-count {
    min-width:4.65rem;
    height:3.05rem;
    padding:0 .9rem;
    border-radius:9999px;
    border:1px solid rgba(226,232,240,.9);
    background:rgba(255,255,255,.88);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.22rem;
    color:#475569;
    font-size:.92rem;
    font-weight:800;
    letter-spacing:.025em;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 7px 20px rgba(15,23,42,.055);
    backdrop-filter:blur(10px);
  }

  #products .mobile-product-count .current {
    color:#111827;
    font-size:1rem;
  }

  #products .mobile-product-count .separator {
    color:#cbd5e1;
    font-weight:500;
  }

  #products .mobile-product-count .total {
    color:#64748b;
  }

  #products .mobile-product-swipe-hint {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.42rem;
    margin-top:.85rem;
    color:#94a3b8;
    font-size:.68rem;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
  }

  #products .mobile-product-swipe-hint svg {
    width:.85rem;
    height:.85rem;
  }
}

@media (min-width:768px) {
  #products .mobile-product-controls,
  #products .mobile-product-swipe-hint {
    display:none !important;
  }
}



  /* Brand navy requested for Instant Tool and Footer */
  #instant-tool,
  #instant-tools,
  .instant-tool-section,
  footer {
    background-color: #172B5D !important;
  }



/* ============================================================
   INSTANT TOOL — RESPONSIVE ENGAGEMENT FORM
   ============================================================ */
.instant-tool-section {
  isolation: isolate;
}

.instant-tool-section .reveal-left,
.instant-tool-section .reveal-right {
  min-width: 0;
}

.instant-tool-section input,
.instant-tool-section select {
  min-height: 50px;
}

.instant-tool-section input:focus,
.instant-tool-section select:focus {
  transform: translateY(-1px);
}

.instant-tool-section #estimatorSubmit {
  position: relative;
  overflow: hidden;
}

.instant-tool-section #estimatorSubmit::after {
  content: "";
  position: absolute;
  inset: 0;
  width: 30%;
  transform: translateX(-180%) skewX(-18deg);
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255,255,255,.28),
    transparent
  );
  transition: transform .7s ease;
}

.instant-tool-section #estimatorSubmit:hover::after {
  transform: translateX(420%) skewX(-18deg);
}

@media (max-width: 639px) {
  .instant-tool-section {
    padding-top: 4.5rem;
    padding-bottom: 4.5rem;
  }

  .instant-tool-section h2 {
    font-size: clamp(2.15rem, 10vw, 3rem);
  }

  .instant-tool-section .grid {
    min-width: 0;
  }

  .instant-tool-section .rounded-\[2rem\] {
    border-radius: 1.5rem;
  }

  .instant-tool-section #estimatorForm {
    width: 100%;
  }

  .instant-tool-section #estimatorSubmit {
    min-height: 54px;
  }
}

@media (min-width: 640px) and (max-width: 1023px) {
  .instant-tool-section > div > div {
    align-items: stretch;
  }

  .instant-tool-section .reveal-left {
    padding-right: 1rem;
  }
}

@media (min-width: 1280px) {
  .instant-tool-section .reveal-right {
    padding: 2.25rem;
  }
}



  #estimator,
  .instant-tool-section {
    background-color: #172B5D !important;
  }
