:root{
    --navy-deep:#070F12;
    --navy:#0A171B;
    --navy-mid:#0E2226;
    --panel:#0D1E22;
    --steel:#9AB8BC;
    --steel-dim:#5E7B7F;
    --blue:#049199;
    --blue-lt:#3FD1CE;
    --white:#F2F8F8;
    --line:rgba(154,184,188,0.16);
    --ff-display:'Space Grotesk','IBM Plex Sans',system-ui,sans-serif;
    --ff-body:'IBM Plex Sans',system-ui,sans-serif;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{ background:var(--navy-deep); color:var(--white); font-family:var(--ff-body); line-height:1.55; overflow-x:hidden; -webkit-font-smoothing:antialiased; }
  ::selection{ background:var(--blue); color:var(--navy-deep); }
  a{ color:inherit; text-decoration:none; }
  img,svg{ max-width:100%; display:block; }
  .wrap{ max-width:1160px; margin:0 auto; padding:0 28px; }

  /* ---------- Nav ---------- */
  header.site{ position:fixed; top:0; left:0; right:0; z-index:50; backdrop-filter:blur(10px);
    background:linear-gradient(to bottom, rgba(8,14,24,0.9), rgba(8,14,24,0)); padding:18px 0 30px; }
  .nav{ display:flex; align-items:center; justify-content:space-between; }
  .brand{ display:flex; align-items:center; gap:12px; font-family:var(--ff-display); font-weight:600; font-size:1.02rem; }
  .brand-logo{ height:38px; width:auto; filter:brightness(1.15); }
  .footer-brand .brand-logo{ height:44px; }
  .navlinks{ display:flex; gap:30px; font-size:0.9rem; color:var(--steel); }
  .navlinks a:hover{ color:var(--blue-lt); }
  .nav-right{ display:flex; align-items:center; gap:16px; }
  .nav-cta{ border:1px solid var(--blue); color:var(--blue-lt); padding:9px 18px; border-radius:3px; font-size:0.86rem; transition:.2s ease; }
  .nav-cta:hover{ background:var(--blue); color:#fff; }

  .nav-toggle{ display:none; flex-direction:column; justify-content:center; gap:5px; width:36px; height:36px; border:1px solid rgba(154,184,188,0.28); border-radius:4px; background:rgba(10,23,27,0.4); }
  .nav-toggle span{ display:block; width:16px; height:1.5px; margin:0 auto; background:var(--steel); transition:transform .25s ease, opacity .25s ease; }
  .nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
  .nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

  .mobile-menu{ display:none; flex-direction:column; gap:2px; max-height:0; overflow:hidden;
    background:rgba(8,16,20,0.98); backdrop-filter:blur(10px); border-top:1px solid var(--line);
    transition:max-height .35s ease; }
  .mobile-menu a{ padding:16px 28px; font-size:0.98rem; color:var(--steel); border-bottom:1px solid var(--line); }
  .mobile-menu a:hover{ color:var(--blue-lt); }
  .mobile-menu.is-open{ max-height:70vh; overflow-y:auto; }
  .mobile-cta{ margin:16px 28px; text-align:center; border-bottom:none !important; }

  @media (max-width:780px){
    .navlinks{ display:none; }
    .nav-right .nav-cta{ display:none; }
    .nav-toggle{ display:flex; }
    .mobile-menu{ display:flex; }
  }

  /* ---------- Hero ---------- */
  .hero{ position:relative; min-height:92svh; display:flex; align-items:center; border-bottom:1px solid var(--line); padding-bottom:90px; }
  .hero-bg{ position:absolute; inset:0; z-index:0; overflow:hidden; background:
      radial-gradient(ellipse 70% 60% at 82% 15%, rgba(4,145,153,0.16), transparent 60%),
      var(--navy-deep); }
  .hero-canvas-layer{ position:absolute; inset:0; z-index:1; opacity:0.5; }
  #heroCanvas{ width:100%; height:100%; display:block; }
  .hero-glow{ position:absolute; border-radius:50%; filter:blur(80px); z-index:1; pointer-events:none; }
  .hero-glow-a{ width:520px; height:520px; top:-140px; right:-60px; background:radial-gradient(circle, rgba(63,209,206,0.26), transparent 70%); }
  .hero-glow-b{ width:420px; height:420px; bottom:-160px; left:-80px; background:radial-gradient(circle, rgba(4,145,153,0.18), transparent 70%); }
  .hero-grid{ position:absolute; inset:0; z-index:1; opacity:0.22;
    background-image:linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);
    background-size:56px 56px; mask-image:radial-gradient(ellipse 70% 60% at 66% 40%, black, transparent 85%); }
  .hero-spotlight{ position:absolute; inset:0; z-index:1; pointer-events:none; opacity:0;
    background:radial-gradient(circle 520px at var(--mx,50%) var(--my,40%), rgba(63,209,206,0.18), transparent 70%);
    transition:opacity .4s ease, background .1s ease; }
  .hero:hover .hero-spotlight{ opacity:1; }

  .hero-split{ position:relative; z-index:2; display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center; padding-top:56px; }
  .hero-content{ max-width:600px; }

  .badge-row{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:22px; }
  .badge-pill{ display:inline-flex; align-items:center; gap:8px; font-size:0.78rem; letter-spacing:0.02em; color:var(--steel);
    border:1px solid rgba(154,184,188,0.28); background:rgba(10,23,27,0.4); backdrop-filter:blur(6px);
    padding:8px 14px; border-radius:100px; }
  .badge-pill .dot{ width:6px; height:6px; border-radius:50%; background:var(--blue-lt); display:inline-block; box-shadow:0 0 10px var(--blue-lt); animation:dotPulse 2s ease-in-out infinite; }
  @keyframes dotPulse{ 0%,100%{ opacity:0.5; transform:scale(0.85);} 50%{ opacity:1; transform:scale(1.1);} }

  h1.hero-h{ font-family:var(--ff-display); font-weight:600; font-size:clamp(2.6rem,6.4vw,5.2rem); line-height:1.03; letter-spacing:-0.01em; color:var(--white); }
  .hero-h-accent{ background:linear-gradient(100deg, var(--blue-lt) 0%, #B8F3E8 45%, var(--blue-lt) 100%);
    background-size:200% auto; -webkit-background-clip:text; background-clip:text; color:transparent;
    animation:accentShine 6s linear infinite; }
  @keyframes accentShine{ to{ background-position:200% center; } }
  .hero-sub{ margin-top:20px; max-width:52ch; color:var(--steel); font-size:1.14rem; line-height:1.65; }
  .hero-actions{ margin-top:28px; display:flex; gap:16px; flex-wrap:wrap; }
  .btn{ position:relative; display:inline-flex; align-items:center; gap:10px; padding:15px 28px; border-radius:3px; font-size:0.94rem; font-weight:500; transition:.25s ease; overflow:hidden; }
  .btn span{ position:relative; z-index:1; }
  .btn-solid{ background:var(--blue); color:#fff; }
  .btn-solid::before{ content:''; position:absolute; inset:0; background:linear-gradient(100deg, transparent, rgba(255,255,255,0.35), transparent); transform:translateX(-120%); transition:transform .6s ease; }
  .btn-solid:hover::before{ transform:translateX(120%); }
  .btn-solid:hover{ transform:translateY(-2px); box-shadow:0 10px 30px rgba(4,145,153,0.4); }
  .btn-outline{ border:1px solid rgba(154,184,188,0.4); color:var(--white); backdrop-filter:blur(6px); }
  .btn-outline:hover{ border-color:var(--blue-lt); color:var(--blue-lt); transform:translateY(-2px); }

  .hero-visual{ position:relative; height:520px; transition:transform .3s ease; }
  .hero-card{ position:absolute; border-radius:10px; overflow:hidden; border:1px solid rgba(154,184,188,0.22);
    box-shadow:0 30px 70px rgba(0,0,0,0.5); background:var(--panel); }
  .hero-card img{ width:100%; height:100%; object-fit:cover; filter:saturate(1) contrast(1.06); }
  .hero-card-main{ inset:0 8% 12% 0; z-index:2; }
  .hero-card-main img, .hero-card-accent img{ position:absolute; inset:0; opacity:0; transition:opacity 1.6s ease; }
  .hero-card-main img.is-active, .hero-card-accent img.is-active{ opacity:1; }
  .hero-card-sheen{ position:absolute; inset:0; background:linear-gradient(200deg, rgba(63,209,206,0.14), transparent 55%); mix-blend-mode:overlay; pointer-events:none; }
  .hero-card-accent{ width:46%; aspect-ratio:4/5; left:-6%; bottom:-6%; z-index:3; box-shadow:0 24px 55px rgba(0,0,0,0.55); }
  .hero-float-chip{ position:absolute; top:6%; right:2%; z-index:4; background:rgba(10,23,27,0.75); backdrop-filter:blur(14px);
    border:1px solid rgba(154,184,188,0.24); border-radius:8px; padding:16px 20px; box-shadow:0 18px 40px rgba(0,0,0,0.4); }
  .hero-float-chip b{ display:block; font-family:var(--ff-display); font-size:1.5rem; color:var(--blue-lt); font-weight:600; }
  .hero-float-chip span{ color:var(--steel); font-size:0.78rem; }
  @media (max-width:980px){
    .hero{ min-height:auto; padding-top:150px; padding-bottom:70px; }
    .hero-split{ grid-template-columns:1fr; padding-top:0; }
    .hero-visual{ height:380px; margin-top:32px; }
  }
  @media (max-width:560px){
    .hero-visual{ height:280px; }
    .hero-card-accent{ display:none; }
    h1.hero-h{ font-size:2.1rem; }
    .hero-sub{ font-size:1rem; }
  }

  .hero-stats-float{ position:absolute; left:0; right:0; bottom:0; z-index:2; transform:translateY(50%); }
  .hero-stats-float .wrap{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
  .stat-glass{ background:rgba(13,27,32,0.55); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
    border:1px solid rgba(154,184,188,0.18); border-radius:6px; padding:26px 24px;
    box-shadow:0 20px 50px rgba(0,0,0,0.35); transition:transform .3s ease, border-color .3s ease; }
  .stat-glass:hover{ transform:translateY(-4px); border-color:rgba(63,209,206,0.4); }
  .stat-glass b{ display:block; font-family:var(--ff-display); font-size:2.1rem; color:var(--white); font-weight:600; font-variant-numeric:tabular-nums; }
  .stat-glass span{ color:var(--steel); font-size:0.85rem; }
  @media (max-width:760px){
    .hero-stats-float{ position:relative; transform:none; margin-top:70px; }
    .hero-stats-float .wrap{ grid-template-columns:1fr; }
  }

  .scroll-cue{ position:absolute; bottom:30px; left:50%; transform:translateX(-50%); z-index:3; color:var(--steel-dim); font-size:0.74rem; letter-spacing:0.08em; display:flex; flex-direction:column; align-items:center; gap:10px; }
  .scroll-cue .stem{ width:1px; height:32px; background:linear-gradient(var(--blue-lt), transparent); animation:stemPulse 2.4s ease-in-out infinite; }
  @keyframes stemPulse{ 0%,100%{opacity:0.3;} 50%{opacity:1;} }

  section{ position:relative; padding:104px 0; }
  .section-head{ max-width:740px; margin-bottom:52px; }
  .kicker{ color:var(--blue-lt); font-size:0.84rem; letter-spacing:0.04em; margin-bottom:14px; display:block; }
  h2{ font-family:var(--ff-display); font-weight:600; font-size:clamp(1.7rem,3.2vw,2.5rem); color:var(--white); line-height:1.16; }
  .lede{ margin-top:16px; color:var(--steel); font-size:1.02rem; max-width:64ch; }
  @media (max-width:760px){
    section{ padding:64px 0; }
    .section-head{ margin-bottom:36px; }
    .wrap{ padding:0 20px; }
  }

  /* ---------- About ---------- */
  .about{ border-bottom:1px solid var(--line); padding-top:170px; }
  @media (max-width:760px){ .about{ padding-top:96px; } }
  .about-grid{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:60px; align-items:start; }
  .about-copy p{ color:var(--steel); margin-bottom:18px; max-width:58ch; }
  .about-copy p strong{ color:var(--white); font-weight:500; }
  .about-panel{ border:1px solid var(--line); border-radius:4px; padding:30px; background:linear-gradient(160deg, rgba(4,145,153,0.06), rgba(14,27,46,0.5)); }
  .about-panel dl{ display:grid; grid-template-columns:auto 1fr; gap:13px 20px; }
  .about-panel dt{ color:var(--steel-dim); font-size:0.82rem; }
  .about-panel dd{ color:var(--white); font-size:0.94rem; }
  .about-panel .divider{ grid-column:1/-1; height:1px; background:var(--line); margin:5px 0; }
  @media (max-width:860px){ .about-grid{ grid-template-columns:1fr; gap:40px; } }

  /* ---------- About v2 (editorial) ---------- */
  .about-grid-v2{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:72px; align-items:center; }
  .about-visual{ position:relative; }
  .about-image-frame{ position:relative; border-radius:8px; overflow:hidden; border:1px solid rgba(154,184,188,0.22);
    box-shadow:0 30px 70px rgba(0,0,0,0.45); aspect-ratio:4/5; }
  .about-image-frame img{ width:100%; height:100%; object-fit:cover; filter:saturate(0.92); transition:transform .8s cubic-bezier(.16,.8,.24,1); }
  .about-visual:hover .about-image-frame img{ transform:scale(1.04); }
  .about-image-glow{ position:absolute; inset:0; background:linear-gradient(200deg, rgba(4,145,153,0.25), transparent 55%); mix-blend-mode:overlay; pointer-events:none; }
  .about-float-card{ position:absolute; left:-28px; bottom:-28px; background:rgba(10,23,27,0.72); backdrop-filter:blur(14px);
    border:1px solid rgba(154,184,188,0.22); border-radius:6px; padding:22px 26px; box-shadow:0 20px 45px rgba(0,0,0,0.4); max-width:230px; }
  .about-float-card b{ display:block; font-family:var(--ff-display); font-size:2rem; color:var(--blue-lt); font-weight:600; }
  .about-float-card span{ color:var(--steel); font-size:0.82rem; line-height:1.4; display:block; margin-top:4px; }
  .lead-graf{ font-size:1.08rem; color:var(--steel) !important; }
  .specialty-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:36px; }
  .specialty-item{ display:flex; align-items:center; gap:12px; border:1px solid var(--line); border-radius:4px; padding:14px 16px;
    transition:border-color .3s ease, background .3s ease, transform .3s ease; }
  .specialty-item svg{ width:26px; height:26px; flex-shrink:0; }
  .specialty-item span{ color:var(--white); font-size:0.9rem; font-weight:500; }
  .specialty-item:hover{ border-color:var(--blue-lt); background:rgba(4,145,153,0.06); transform:translateY(-2px); }
  @media (max-width:900px){
    .about-grid-v2{ grid-template-columns:1fr; gap:56px; }
    .about-visual{ max-width:420px; margin:0 auto 20px; }
  }
  @media (max-width:520px){
    .about-float-card{ position:static; margin-top:16px; max-width:none; }
  }

  /* ---------- Case studies ---------- */
  .cases{ border-bottom:1px solid var(--line); }
  .case-list{ display:grid; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:4px; overflow:hidden; }
  .case-row{ background:var(--navy-deep); padding:26px 30px; display:grid; grid-template-columns:1fr 2.4fr; gap:24px; align-items:center; transition:background .3s ease; }
  .case-row:hover{ background:var(--navy-mid); }
  .case-tag{ color:var(--blue-lt); font-family:var(--ff-display); font-size:0.92rem; }
  .case-row p{ color:var(--steel); font-size:0.95rem; }
  @media (max-width:700px){ .case-row{ grid-template-columns:1fr; gap:8px; padding:20px; } }

  /* ---------- Products (illustrated) ---------- */
  .products{ border-bottom:1px solid var(--line); }
  .prod-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
  .prod-card{ background:var(--navy-deep); padding:0; display:flex; flex-direction:column; transition:background .3s ease; }
  .prod-card:hover{ background:var(--navy-mid); }
  .prod-art{ aspect-ratio:4/3; overflow:hidden; border-bottom:1px solid var(--line); position:relative; }
  .prod-art img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s cubic-bezier(.16,.8,.24,1); filter:saturate(0.92) brightness(0.96); }
  .prod-card:hover .prod-art img{ transform:scale(1.06); }
  .prod-art::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(7,15,18,0) 60%, rgba(7,15,18,0.35)); pointer-events:none; }
  .prod-body{ padding:22px 24px 28px; flex:1; display:flex; flex-direction:column; }
  .prod-body h3{ font-family:var(--ff-display); font-weight:600; font-size:1.08rem; margin-bottom:8px; color:var(--white); }
  .prod-body p{ color:var(--steel); font-size:0.88rem; flex:1; }
  @media (max-width:900px){ .prod-grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:520px){ .prod-grid{ grid-template-columns:1fr; } }

  /* ---------- Equipment directory ---------- */
  .equipment{ border-bottom:1px solid var(--line); background:linear-gradient(180deg, rgba(4,145,153,0.03), transparent 40%); }
  .eq-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
  .eq-card{ border:1px solid var(--line); border-radius:4px; padding:24px; transition:border-color .3s ease, transform .3s ease; }
  .eq-card:hover{ border-color:var(--blue-lt); transform:translateY(-3px); }
  .eq-head{ display:flex; align-items:center; gap:12px; margin-bottom:16px; }
  .eq-head img{ width:52px; height:52px; object-fit:cover; border-radius:4px; flex-shrink:0; border:1px solid var(--line); background:#fff; }
  .eq-head h3{ font-family:var(--ff-display); font-weight:600; font-size:0.98rem; color:var(--white); line-height:1.3; }
  .eq-tags{ display:flex; flex-wrap:wrap; gap:6px; }
  .eq-tags span{ font-size:0.76rem; color:var(--steel); border:1px solid var(--line); border-radius:2px; padding:4px 8px; }
  @media (max-width:960px){ .eq-grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:620px){ .eq-grid{ grid-template-columns:1fr; } }

  /* ---------- Services ---------- */
  .services{ border-bottom:1px solid var(--line); }
  .svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
  .svc-card{ border:1px solid var(--line); border-radius:4px; padding:30px; }
  .svc-card .svc-num{ color:var(--blue-lt); font-family:var(--ff-display); font-size:0.82rem; }
  .svc-card h3{ font-family:var(--ff-display); font-weight:600; font-size:1.14rem; margin:18px 0 10px; color:var(--white); }
  .svc-card p{ color:var(--steel); font-size:0.9rem; }
  @media (max-width:860px){ .svc-grid{ grid-template-columns:1fr; } }

  /* ---------- Partners ---------- */
  .partners{ border-bottom:1px solid var(--line); }
  .partner-strip{ display:flex; flex-wrap:wrap; gap:14px; }
  .partner-chip{ border:1px solid var(--line); border-radius:3px; padding:14px 20px; color:var(--steel); font-family:var(--ff-display); font-size:0.92rem; transition:.2s ease; }
  .partner-chip:hover{ border-color:var(--blue-lt); color:var(--white); }

  /* ---------- Partner marquee ---------- */
  .marquee-wrap{ overflow:hidden; -webkit-mask-image:linear-gradient(90deg, transparent, black 8%, black 92%, transparent);
    mask-image:linear-gradient(90deg, transparent, black 8%, black 92%, transparent); }
  .marquee-track{ display:flex; align-items:center; gap:56px; width:max-content; animation:marqueeScroll 34s linear infinite; }
  .marquee-wrap:hover .marquee-track{ animation-play-state:paused; }
  .marquee-logo{ height:96px; display:flex; align-items:center; flex-shrink:0; opacity:0.85; transition:opacity .3s ease; }
  .marquee-logo:hover{ opacity:1; }
  .marquee-logo img{ height:100%; width:auto; object-fit:contain; }
  .marquee-logo.logo-card{ background:#fff; padding:14px 20px; border-radius:4px; }
  .marquee-logo.logo-card img{ height:68px; }
  .marquee-text{ color:var(--navy-deep); font-family:var(--ff-display); font-weight:600; font-size:1.1rem; white-space:nowrap;
    background:#fff; padding:0 22px; border-radius:4px; }
  @keyframes marqueeScroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
  @media (prefers-reduced-motion:reduce){ .marquee-track{ animation:none; flex-wrap:wrap; } }
  .partner-note{ color:var(--steel-dim); font-size:0.86rem; margin-top:24px; max-width:64ch; }

  /* ---------- Field-proven installations gallery ---------- */
  .field{ border-bottom:1px solid var(--line); }
  .field-grid{ display:grid; grid-template-columns:1fr 1fr; grid-template-rows:auto auto; gap:16px; }
  .field-tile-wide{ grid-column:1/-1; }
  .field-tile{ position:relative; border-radius:6px; overflow:hidden; border:1px solid var(--line); aspect-ratio:16/9; }
  .field-tile-wide{ aspect-ratio:21/9; }
  .field-tile img{ width:100%; height:100%; object-fit:cover; filter:saturate(0.85); transition:transform .6s cubic-bezier(.16,.8,.24,1); }
  .field-tile:hover img{ transform:scale(1.05); }
  .field-cap{ position:absolute; left:0; right:0; bottom:0; padding:16px 20px;
    background:linear-gradient(180deg, transparent, rgba(3,9,11,0.9)); color:var(--white); font-size:0.86rem; }
  @media (max-width:760px){ .field-grid{ grid-template-columns:1fr; } .field-tile-wide{ aspect-ratio:16/9; } }

  /* ---------- Capability strip / parallax ---------- */
  .capstrip{ position:relative; padding:150px 0; overflow:hidden; border-bottom:1px solid var(--line); }
  @media (max-width:760px){ .capstrip{ padding:80px 0; } }
  .cap-bg{ position:absolute; inset:-12% -12%; z-index:0; }
  .cap-bg img{ width:100%; height:100%; object-fit:cover; filter:saturate(0.7) brightness(0.55); }
  .cap-bg::after{ content:''; position:absolute; inset:0;
    background:
      linear-gradient(180deg, rgba(3,9,11,0.85) 0%, rgba(3,9,11,0.55) 40%, rgba(3,9,11,0.9) 100%),
      radial-gradient(circle at 50% 50%, rgba(4,145,153,0.12), transparent 60%); }
  .cap-content{ position:relative; z-index:1; text-align:center; max-width:780px; margin:0 auto; }
  .cap-content .lede{ margin-left:auto; margin-right:auto; }

  /* ---------- Locations / hours ---------- */
  .visit{ border-bottom:1px solid var(--line); }
  .visit-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
  .visit-card{ border:1px solid var(--line); border-radius:4px; padding:28px; }
  .visit-card h3{ font-family:var(--ff-display); font-size:1.02rem; margin-bottom:14px; color:var(--white); font-weight:600; }
  .visit-card p{ color:var(--steel); font-size:0.9rem; margin-bottom:6px; }
  .map-link{ display:flex; align-items:flex-start; gap:12px; color:var(--steel); padding:14px; border:1px solid var(--line); border-radius:3px; margin-top:14px; transition:.2s ease; }
  .map-link:hover{ border-color:var(--blue-lt); color:var(--white); }
  .map-link svg{ flex-shrink:0; margin-top:2px; }
  .tel-link{ display:inline-flex; align-items:center; gap:8px; color:var(--blue-lt); font-size:0.92rem; margin-top:4px; }
  .tel-link:hover{ color:var(--white); }
  .hours-row{ display:flex; justify-content:space-between; padding:11px 0; border-bottom:1px solid var(--line); color:var(--steel); font-size:0.92rem; }
  .hours-row:last-child{ border-bottom:none; }
  .hours-row span:last-child{ color:var(--white); }
  .note-line{ color:var(--steel-dim); font-size:0.84rem; margin-top:16px; }
  @media (max-width:900px){ .visit-grid{ grid-template-columns:1fr; } }

  /* ---------- Footer ---------- */
  footer{ padding:76px 0 40px; }
  .footer-top{ display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:48px; padding-bottom:52px; border-bottom:1px solid var(--line); }
  .footer-brand .brand{ margin-bottom:16px; }
  .footer-brand p{ color:var(--steel-dim); max-width:38ch; font-size:0.9rem; }
  .footer-col h4{ font-size:0.8rem; letter-spacing:0.04em; color:var(--steel-dim); margin-bottom:16px; font-weight:500; }
  .footer-col a, .footer-col p{ display:block; color:var(--steel); font-size:0.92rem; margin-bottom:10px; }
  .footer-col a:hover{ color:var(--blue-lt); }
  .footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:28px; flex-wrap:wrap; gap:12px; }
  .footer-bottom p{ color:var(--steel-dim); font-size:0.8rem; }
  @media (max-width:760px){ .footer-top{ grid-template-columns:1fr; gap:32px; } }

  [data-parallax]{ will-change:transform; }

  /* ---------- Scroll reveals ---------- */
  [data-reveal]{
    opacity:0; transform:translateY(28px);
    transition:opacity .8s cubic-bezier(.16,.8,.24,1), transform .8s cubic-bezier(.16,.8,.24,1);
    transition-delay:var(--reveal-delay, 0s);
  }
  [data-reveal].is-visible{ opacity:1; transform:translateY(0); }
  [data-reveal-scale]{
    opacity:0; transform:scale(.94);
    transition:opacity .7s ease, transform .7s cubic-bezier(.16,.8,.24,1);
    transition-delay:var(--reveal-delay, 0s);
  }
  [data-reveal-scale].is-visible{ opacity:1; transform:scale(1); }

  /* ---------- Hero load-in sequence ---------- */
  .eyebrow-line, h1.hero-h, .hero-sub, .hero-actions, .hero-stats{
    opacity:0; transform:translateY(18px);
    animation:heroIn .9s cubic-bezier(.16,.8,.24,1) forwards;
  }
  .eyebrow-line{ animation-delay:.15s; }
  h1.hero-h{ animation-delay:.3s; }
  .hero-sub{ animation-delay:.48s; }
  .hero-actions{ animation-delay:.64s; }
  .hero-stats{ animation-delay:.82s; }
  @keyframes heroIn{ to{ opacity:1; transform:translateY(0); } }

  /* ---------- Micro-interactions ---------- */
  .prod-card, .svc-card, .case-row, .visit-card, .about-panel{
    transition:transform .35s cubic-bezier(.16,.8,.24,1), border-color .35s ease, background .35s ease;
  }
  .prod-card:hover{ transform:translateY(-4px); }
  .svc-card:hover{ transform:translateY(-4px); border-color:var(--blue-lt); }
  .visit-card:hover{ border-color:var(--blue-lt); }
  .prod-art svg circle, .prod-art svg path{ transition:filter .35s ease; }
  .prod-card:hover .prod-art svg{ filter:drop-shadow(0 0 10px rgba(63,209,206,0.45)); }
  .partner-chip{ transition:transform .3s ease, border-color .2s ease, color .2s ease; }
  .partner-chip:hover{ transform:translateY(-2px); }
  .btn-solid, .btn-outline, .nav-cta{ transition:transform .25s ease, background .25s ease, border-color .25s ease, color .25s ease, box-shadow .25s ease; }
  .btn-solid:hover{ box-shadow:0 8px 24px rgba(4,145,153,0.35); }
  .tel-link, .map-link, .footer-col a{ transition:color .2s ease, transform .2s ease; }
  .tel-link:hover{ transform:translateX(2px); }

  /* ---------- Nav CTA pulse ---------- */
  .nav-cta{ position:relative; }
  .nav-cta::after{
    content:''; position:absolute; inset:-1px; border-radius:3px;
    box-shadow:0 0 0 0 rgba(4,145,153,0.5);
    animation:ctaPulse 3s ease-out infinite;
    pointer-events:none;
  }
  @keyframes ctaPulse{
    0%{ box-shadow:0 0 0 0 rgba(4,145,153,0.45); }
    70%{ box-shadow:0 0 0 9px rgba(4,145,153,0); }
    100%{ box-shadow:0 0 0 0 rgba(4,145,153,0); }
  }

  /* ---------- Animated section dividers ---------- */
  .kicker{ position:relative; padding-left:18px; }
  .kicker::before{
    content:''; position:absolute; left:0; top:50%; transform:translateY(-50%);
    width:10px; height:1px; background:var(--blue-lt);
    animation:kickerGrow 1.6s ease-in-out infinite;
  }
  @keyframes kickerGrow{ 0%,100%{ width:10px; opacity:.5; } 50%{ width:16px; opacity:1; } }

  /* ---------- Animated stat counters cursor ---------- */
  .stat b{ font-variant-numeric:tabular-nums; }

  @media (prefers-reduced-motion:reduce){
    .eyebrow-line, h1.hero-h, .hero-sub, .hero-actions, .hero-stats{ animation:none; opacity:1; transform:none; }
    [data-reveal], [data-reveal-scale]{ opacity:1; transform:none; transition:none; }
    .nav-cta::after{ animation:none; }
    .kicker::before{ animation:none; }
    .prod-card:hover, .svc-card:hover, .partner-chip:hover{ transform:none; }
  }
  @media (prefers-reduced-motion:reduce){
    html{ scroll-behavior:auto; }
    [data-parallax]{ transform:none !important; }
    .scroll-cue .stem{ animation:none; }
    #heroCanvas{ display:none; }
  }
