/* ===== Video hero (subpage) ===== */
    .sub-hero{
      position:relative;
      min-height: clamp(420px, 58vh, 640px);
      display:flex;
      align-items:center;
      overflow:hidden;
      background:#0b1022;
      border-bottom:1px solid var(--line);
    }
    .sub-hero video{
      position:absolute; inset:0;
      width:100%; height:100%;
      object-fit:cover;
      transform:scale(1.02);
    }
    .sub-hero .overlay{
      position:absolute; inset:0;
      background:
     radial-gradient(circle at 14% 20%, rgba(47, 107, 255, 0.34), transparent 30%), radial-gradient(circle at 82% 16%, rgba(25, 167, 206, 0.24), transparent 26%), radial-gradient(circle at 74% 78%, rgba(224, 168, 0, 0.16), transparent 24%), linear-gradient(135deg, #0a2f7a 0%, #144fb8 34%, #0f6f92 72%, #6f5600 100%);
      pointer-events:none;
    }
    .sub-hero .inner{
      position:relative;
      z-index:2;
      width:100%;
      padding: 44px 0;
    }
    .crumbs{
      display:flex; align-items:center; gap:10px;
      color: rgba(255,255,255,.80);
      font-size: 13px;
      margin-bottom: 12px;
    }
    .crumbs a{ color: rgba(255,255,255,.80); }
    .crumbs a:hover{ color:#fff; }
    .crumb-dot{ width:4px;height:4px;border-radius:999px;background: rgba(255,255,255,.55); }

    .hero-row{
      display:grid;
      grid-template-columns: 1.1fr .9fr;
      gap: 18px;
      align-items:end;
      margin-top: 10px;
    }

    .sub-hero h1{
      margin:0;
      color:#fff;
      font-size: clamp(30px, 3.8vw, 50px);
      letter-spacing:-.9px;
      line-height:1.08;
      text-shadow: 0 12px 40px rgba(0,0,0,.35);
    }
    .sub-hero p{
      margin: 12px 0 0;
      color: rgba(255,255,255,.86);
      font-size: 14px;
      line-height: 1.85;
      max-width: 78ch;
      text-shadow: 0 10px 28px rgba(0,0,0,.25);
    }

    .hero-badges{
      display:flex; flex-wrap:wrap; gap:10px; margin-top: 14px;
    }
    .badge{
      display:inline-flex; align-items:center; gap:8px;
      padding:8px 12px;
      border-radius:999px;
      background: rgba(255,255,255,.16);
      border: 1px solid rgba(255,255,255,.24);
      color: rgba(255,255,255,.92);
      font-size:12px;
      font-weight:500;
      -webkit-backdrop-filter: blur(10px);
      backdrop-filter: blur(10px);
      transition: background .3s ease, transform .3s ease;
    }
    .badge:hover{
      background: rgba(255,255,255,.26);
      transform: translateY(-2px);
    }
    .spark{
      width:10px; height:10px; border-radius:50%;
      background: var(--accent-grad, linear-gradient(135deg, #F59E0B, #FFB800));
      box-shadow: 0 0 0 6px rgba(255, 184, 0, .14);
      animation: sparkPulse 2.4s ease-in-out infinite;
    }
    @keyframes sparkPulse{
      0%,100%{ box-shadow: 0 0 0 4px rgba(255, 184, 0, .18); }
      50%{ box-shadow: 0 0 0 9px rgba(255, 184, 0, .06); }
    }

    /* ===== Hero entrance animation (plays on page load) ===== */
    .hero-anim{
      opacity:0;
      transform: translateY(22px);
      animation: heroIn .9s cubic-bezier(.2,.7,.3,1) forwards;
    }
    .hero-anim.d1{ animation-delay:.05s; }
    .hero-anim.d2{ animation-delay:.18s; }
    .hero-anim.d3{ animation-delay:.32s; }
    .hero-anim.d4{ animation-delay:.46s; }
    .hero-anim.d5{ animation-delay:.60s; }
    @keyframes heroIn{
      to{ opacity:1; transform: translateY(0); }
    }

    .hero-card{
      border-radius: 22px;
      border:1px solid rgba(255,255,255,.22);
      background: rgba(255,255,255,.12);
      -webkit-backdrop-filter: blur(14px);
      backdrop-filter: blur(14px);
      box-shadow: 0 26px 70px rgba(0,0,0,.28);
      padding: 16px;
      color:#fff;
      transition: transform .35s ease, box-shadow .35s ease;
    }
    .hero-card:hover{
      transform: translateY(-4px);
      box-shadow: 0 34px 80px rgba(0,0,0,.34);
    }
    .hero-card b{ display:block; margin-bottom:8px; letter-spacing:-.2px; }
    .hero-card ul{ margin:0; padding-left:18px; color: rgba(255,255,255,.86); font-size: 13px; line-height:1.8; }

    .hero-actions{
      display:flex;
      gap: 12px;
      flex-wrap:wrap;
      margin-top: 16px;
    }

    /* ===== Sections ===== */
    .section{ padding: 56px 0; background: var(--bg); }
    .section.alt{ background: var(--bg-soft); }

    .section-head{
      display:flex;
      align-items:flex-end;
      justify-content:space-between;
      gap:16px;
      margin-bottom: 18px;
    }
    .section-head h2{ margin:0; font-size: 26px; letter-spacing:-.5px; }
    .section-head p{ margin:0; color: var(--muted); font-size: 14px; line-height:1.8; max-width: 78ch; }

    /* Media grids */
    .media-grid-3{
      display:grid;
      grid-template-columns: 1.15fr .85fr .85fr;
      gap: 14px;
    }
    .media-box{
      position:relative;
      border-radius: var(--radius2);
      border:1px solid var(--line);
      background:#fff;
      box-shadow: var(--shadow);
      overflow:hidden;
      min-height: 240px;
      transition: transform .4s ease, box-shadow .4s ease;
    }
    .media-box:hover{
      transform: translateY(-6px);
      box-shadow: 0 26px 60px rgba(15,23,42,.18);
    }
    .media-box.tall{ min-height: 360px; }
    .media-box img{
      position:absolute; inset:0;
      width:100%; height:100%;
      object-fit:cover;
      display:block;
      transition: transform .7s cubic-bezier(.2,.7,.3,1);
    }
    .media-box:hover img{
      transform: scale(1.06);
    }

    /* stronger scrim so the caption always reads on any photo */
    .media-box:after{
      content:"";
      position:absolute; inset:0;
      background: linear-gradient(180deg,
        rgba(8,12,30,0) 38%,
        rgba(8,12,30,.18) 62%,
        rgba(8,12,30,.62) 100%);
      pointer-events:none;
    }

    /* ===== Glass caption panel — readable on any image ===== */
    .media-caption{
      position:absolute;
      left: 12px;
      bottom: 12px;
      right: 12px;
      z-index:2;
      display:flex;
      flex-direction:column;
      gap:3px;
      padding: 12px 14px;
      border-radius: 14px;
      background: rgba(10, 16, 40, .55);
      border: 1px solid rgba(255,255,255,.16);
      border-left: 3px solid #FFB800;
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      color:#fff;
      transform: translateY(4px);
      transition: transform .4s ease, background .4s ease;
    }
    .media-box:hover .media-caption{
      transform: translateY(0);
      background: rgba(10, 16, 40, .68);
    }
    .media-caption b{ font-size: 13.5px; letter-spacing:-.1px; }
    .media-caption span{ font-size: 12px; color: rgba(255,255,255,.85); line-height:1.55; }

    /* Service cards */
    .svc-grid{
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px;
      margin-top: 14px;
    }
    .svc{
      border-radius: var(--radius2);
      border:1px solid var(--line);
      background:#fff;
      box-shadow: var(--shadow2);
      padding: 16px;
      transition: transform .35s ease, box-shadow .35s ease;
    }
    .svc:hover{
      transform: translateY(-4px);
      box-shadow: 0 18px 44px rgba(15,23,42,.12);
    }
    .svc .top{ display:flex; align-items:center; gap:10px; margin-bottom: 8px; }
    .svc .icon{
      width:42px;height:42px;border-radius: 16px;
      display:grid;place-items:center;
      border:1px solid var(--line);
      /* Mixed brand gradient for the icons */
      background: linear-gradient(135deg, rgba(16, 168, 116, .10), rgba(255, 184, 0, .10));
      color: var(--teal);
      box-shadow: var(--shadow2);
      flex:0 0 auto;
      transition: transform .35s ease;
    }
    .svc:hover .icon{ transform: scale(1.1) rotate(-4deg); }
    .svc h3{ margin:0; font-size: 14px; letter-spacing:-.15px; }
    .svc p{ margin: 8px 0 0; color: var(--muted); font-size: 13px; line-height:1.8; }
    .svc ul{ margin: 10px 0 0; padding-left: 18px; color: var(--muted); font-size: 13px; line-height:1.85; }

    /* CTA band */
    .cta-band{
      border-radius: 30px;
      border:1px solid var(--line);
      background:
        radial-gradient(1100px 340px at 20% 20%, rgba(16, 168, 116, .10), transparent 60%),
        radial-gradient(1100px 340px at 80% 80%, rgba(255, 184, 0, .10), transparent 60%),
        #fff;
      box-shadow: var(--shadow);
      padding: 24px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 16px;
      margin-top: 18px;
      position:relative;
      overflow:hidden;
    }
    /* soft moving sheen across the CTA band */
    .cta-band::before{
      content:"";
      position:absolute;
      top:0; bottom:0;
      width:160px;
      left:-200px;
      background: linear-gradient(105deg, transparent, rgba(255,255,255,.55), transparent);
      transform: skewX(-12deg);
      animation: ctaSheen 6s ease-in-out infinite;
      pointer-events:none;
    }
    @keyframes ctaSheen{
      0%, 55%{ left:-200px; }
      75%{ left:110%; }
      100%{ left:110%; }
    }
    .cta-band h3{ margin:0; font-size: 18px; letter-spacing:-.25px; }
    .cta-band p{ margin: 8px 0 0; color: var(--muted); font-size: 13px; line-height:1.75; max-width: 72ch; }

    /* ===== Why Businesses Choose TrechPro (dark trust band) ===== */
    /* higher specificity + !important so no global section/background
       rule in style.css can turn this band white */
    section.why-section{
      position:relative;
      overflow:hidden;
      padding: 64px 0;
      background-color:#0d1335 !important; /* solid fallback */
      background-image:
        radial-gradient(700px 360px at 88% 12%, rgba(47,107,255,.22), transparent 60%),
        radial-gradient(560px 320px at 6% 90%, rgba(255,184,0,.14), transparent 62%),
        linear-gradient(150deg, #0a1230 0%, #11183f 100%) !important;
      color:#fff;
    }
    .why-section::before{
      content:"";
      position:absolute; inset:0;
      background-image: radial-gradient(rgba(255,255,255,.05) 1px, transparent 1.5px);
      background-size: 26px 26px;
      pointer-events:none;
    }
    .why-section .container{ position:relative; z-index:1; }

    .why-eyebrow{
      display:inline-flex; align-items:center; gap:9px;
      font-size:12px; font-weight:700;
      letter-spacing:.2em; text-transform:uppercase;
      color:#FFB800;
      margin-bottom:12px;
    }
    .why-eyebrow::before{ content:"★"; font-size:11px; }

    .why-section h2{
      margin:0 0 10px;
      font-size: 28px;
      letter-spacing:-.5px;
      color:#fff;
    }
    .why-section .why-sub{
      margin:0 0 28px;
      color: rgba(255,255,255,.78);
      font-size:14px;
      line-height:1.8;
      max-width: 70ch;
    }

    .why-grid{
      display:grid;
      grid-template-columns: 1.15fr .85fr;
      gap: 32px;
      align-items:center;
    }

    /* feature chips with gold checks */
    .why-list{
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      margin:0; padding:0;
      list-style:none;
    }
    .why-list li{
      display:flex;
      align-items:flex-start;
      gap:11px;
      padding: 13px 15px;
      border-radius: 16px;
      background: rgba(255,255,255,.07);
      border: 1px solid rgba(255,255,255,.13);
      font-size: 13.5px;
      font-weight:500;
      line-height:1.5;
      color: rgba(255,255,255,.92);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      transition: transform .3s ease, background .3s ease, border-color .3s ease;
    }
    .why-list li:hover{
      transform: translateY(-3px);
      background: rgba(255,255,255,.11);
      border-color: rgba(255,184,0,.4);
    }
    .why-list .check{
      flex:0 0 auto;
      width:22px; height:22px;
      border-radius:50%;
      display:grid; place-items:center;
      background: linear-gradient(135deg, #ffd83a, #e39a00);
      color:#1a1404;
      font-size:11px;
      font-weight:800;
      margin-top:1px;
    }
    /* last (odd) chip spans both columns for a clean finish */
    .why-list li:last-child:nth-child(odd){ grid-column: 1 / -1; }

    /* stats panel */
    .why-stats{
      display:grid;
      grid-template-columns: 1fr;
      gap: 14px;
    }
    .stat-card{
      position:relative;
      border-radius: 20px;
      padding: 20px 22px;
      background: rgba(255,255,255,.08);
      border: 1px solid rgba(255,255,255,.15);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      overflow:hidden;
      transition: transform .3s ease, border-color .3s ease;
    }
    .stat-card:hover{
      transform: translateY(-3px);
      border-color: rgba(255,184,0,.45);
    }
    .stat-card::after{
      content:"";
      position:absolute;
      right:-30px; top:-30px;
      width:110px; height:110px;
      border-radius:50%;
      background: radial-gradient(circle, rgba(255,184,0,.16), transparent 70%);
      pointer-events:none;
    }
    .stat-num{
      display:block;
      font-size: clamp(34px, 4vw, 46px);
      font-weight: 800;
      line-height:1;
      letter-spacing:-1px;
      background: linear-gradient(135deg, #fff27a 0%, #ffd83a 40%, #f5b21a 100%);
      -webkit-background-clip:text;
      background-clip:text;
      color:transparent;
    }
    .stat-label{
      display:block;
      margin-top:6px;
      font-size:13px;
      font-weight:500;
      color: rgba(255,255,255,.82);
    }

    @media (max-width: 980px){
      .why-grid{ grid-template-columns: 1fr; }
      .why-stats{ grid-template-columns: repeat(3, 1fr); }
      .stat-card{ padding:16px; }
    }
    @media (max-width: 640px){
      .why-list{ grid-template-columns: 1fr; }
      .why-list li:last-child:nth-child(odd){ grid-column: auto; }
      .why-stats{ grid-template-columns: 1fr; }
    }

    /* ===== Reveal (with stagger via JS transition-delay) ===== */
    .reveal{
      opacity:0;
      transform: translateY(18px);
      transition: opacity .8s cubic-bezier(.2,.7,.3,1), transform .8s cubic-bezier(.2,.7,.3,1);
    }
    .reveal.show{ opacity:1; transform: translateY(0); }

    /* ===== Reduced motion ===== */
    @media (prefers-reduced-motion: reduce){
      .hero-anim{ animation:none; opacity:1; transform:none; }
      .reveal{ opacity:1; transform:none; transition:none; }
      .spark{ animation:none; }
      .cta-band::before{ animation:none; }
      .media-box, .media-box img, .media-caption,
      .svc, .svc .icon, .hero-card, .badge,
      .why-list li, .stat-card{ transition:none; }
    }

    @media (max-width: 980px){
      .hero-row{ grid-template-columns: 1fr; }
      .media-grid-3{ grid-template-columns: 1fr; }
      .media-box.tall{ min-height: 280px; }
      .svc-grid{ grid-template-columns: 1fr; }
      .cta-band{ flex-direction:column; align-items:flex-start; }
    }
    .about-hero-slider{
  position: relative;
  min-height: 250px;
  max-width: 760px;
  margin-top: 10px;
}
.about-hero-slide{
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  transform: translateY(24px);
  transition: opacity .8s ease, transform .8s ease, visibility .8s ease;
}
.about-hero-slide.active{
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.hero-kicker{
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: #ffd83a;
  font-size: .82rem;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.hero-kicker::before{ content: "◆"; font-size: .6rem; }

.tagline-slide .tagline-h{
  margin: 0;
  max-width: 720px;
  color: #fff;
  font-size: clamp(34px, 4vw, 54px);
  line-height: 1.1;
  letter-spacing: -1.2px;
  font-weight: 800;
  text-shadow: 0 12px 40px rgba(0,0,0,.35);
}
.tagline-slide p{
  margin: 8px 0 0;
  max-width: 720px;
  font-size: clamp(28px, 3.2vw, 44px);
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: -1px;
  text-shadow: none;
  background: linear-gradient(135deg, #fff27a 0%, #ffd83a 26%, #f5b21a 58%, #d98a12 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.about-hero-dots{ display: flex; gap: 10px; margin-top: 10px; }
.about-hero-dots button{
  width: 34px; height: 5px;
  border: none; border-radius: 99px;
  background: rgba(255,255,255,.38);
  cursor: pointer; padding: 0;
  transition: background .3s ease, width .3s ease;
}
.about-hero-dots button.active{ width: 48px; background: #ffd83a; }

@media (max-width: 700px){
  .about-hero-slider{ min-height: 240px; }
  .tagline-slide .tagline-h{ font-size: clamp(28px, 8vw, 40px); }
  .tagline-slide p{ font-size: clamp(24px, 7vw, 34px); }
}

.intro-badges{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.intro-badges .badge{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 15px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(175,62,166,.06), rgba(35,146,236,.07), rgba(237,171,23,.07)), #fff;
  border: 1px solid var(--line, #e6e9f2);
  color: #1f2a4d;
  font-size: 12.5px;
  font-weight: 600;
  box-shadow: 0 4px 14px rgba(15,23,42,.06);
  backdrop-filter: none;            /* drop the hero's blur on a solid bg */
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.intro-badges .badge:hover{
  transform: translateY(-2px);
  border-color: rgba(245,178,26,.55);
  box-shadow: 0 10px 24px rgba(15,23,42,.10);
}
.intro-badges .spark{
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: linear-gradient(135deg, #f5b21a, #2f6bff);
  box-shadow: 0 0 0 4px rgba(245,178,26,.14);
  animation: none;                  /* no pulse needed on the light section */
}