
/* ===== Elementor bridge (loaded before the design system so its classes win ties) ===== */
:root{ --kit-widget-spacing:0px; --widgets-spacing:0px; --widgets-spacing-row:0px; --widgets-spacing-column:0px; }
:where(section).e-con{ padding-block:72px; }   /* the design system's bare `section{}` padding */
body.elementor-template-canvas{ background:var(--paper); }
/* neutralise the Elementor kit's default Roboto / accent colours so nothing can leak in */
body.elementor-kit-5, .elementor-kit-5{ --e-global-typography-primary-font-family:'Geist'; --e-global-typography-secondary-font-family:'Geist'; --e-global-typography-text-font-family:'Geist'; --e-global-typography-accent-font-family:'Geist'; --e-global-color-primary:var(--ink); --e-global-color-secondary:#5B6472; --e-global-color-text:var(--ink); --e-global-color-accent:#447DBF; }
button, input, textarea{ font-family:inherit; }

/* ===== Angel design system ===== */

  

  :root{
    --ink:#0B0D10;
    --paper:#FFFFFF;
    --panel:#F5F6F8;
    --line:#DDE1E8;
    --slate:#5B6472;
    --blue:#447DBF;
    --blue-soft:#36649A;
    --good:#2E9E63;
    --shadow: 0 30px 70px -30px rgba(15,25,40,.24);
  }
  
  

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0; background:var(--paper); color:var(--ink);
    font-family:'Geist',system-ui,-apple-system,'Segoe UI',sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{ margin:0; font-weight:500; letter-spacing:-0.035em; line-height:1.02; text-wrap:balance; }
  p{ margin:0; color:var(--slate); line-height:1.65; }
  .serif{ font-family:'Instrument Serif',serif; font-style:italic; font-weight:400; letter-spacing:0; }
  .mono{ font-family:'Geist Mono',ui-monospace,monospace; }
  a{ color:inherit; text-decoration:none; }
  img{max-width:100%;}
  .wrap{ max-width:1240px; margin-inline:auto; padding-inline:24px; }
  @media (min-width:640px){ .wrap{ padding-inline:44px; } }
  ::selection{ background:var(--blue); color:#fff; }

  .live-dot{ position:relative; width:7px; height:7px; border-radius:50%; background:var(--good); flex:none; }
  .live-dot::after{ content:""; position:absolute; inset:-5px; border-radius:50%; border:1px solid var(--good); animation:ring 2s ease-out infinite; }
  @keyframes ring{ from{ transform:scale(.6); opacity:.9; } to{ transform:scale(1.8); opacity:0; } }
  @media (prefers-reduced-motion: reduce){ .live-dot::after{ animation:none; } }

  /* ---------- utility + header ---------- */
  .utility{ background:var(--dark); color:#AEB6C2; font-size:12.5px; }
  .utility .wrap{ display:flex; justify-content:space-between; align-items:center; padding-block:9px; gap:12px; flex-wrap:wrap; }
  .utility a{ color:#fff; }
  .utility .sep{ opacity:.4; }

  header.top{ border-bottom:1px solid var(--line); background:var(--paper); box-shadow:0 1px 0 rgba(16,21,28,.03); }
  .top-bar{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding-block:18px; }
  .brand{ display:flex; align-items:center; gap:10px; }
  .brand img.logo{ height:30px; width:auto; display:block; }
  nav.links{ display:none; gap:36px; font-size:13.5px; font-weight:500; }
  nav.links a{ position:relative; padding-block:2px; }
  nav.links a::after{
    content:""; position:absolute; left:0; right:100%; bottom:-3px; height:2px; background:var(--blue);
    transition:right .3s cubic-bezier(.2,.8,.2,1);
  }
  nav.links a:hover::after{ right:0; }
  @media (min-width:900px){ nav.links{ display:flex; } }
  .btn{
    position:relative; display:inline-flex; align-items:center; gap:8px; font-size:13.5px; font-weight:700;
    padding:12px 20px; border-radius:2px; white-space:nowrap; flex:none;
    transition:transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s, background .3s, color .3s;
  }
  .btn:active{ transform:scale(.97) !important; }
  .btn-blue{ background:var(--blue); color:#fff; }
  .btn-blue:hover{ transform:translate(-2px,-2px); box-shadow:4px 4px 0 var(--ink); }
  .btn-ink{ border:2px solid var(--ink); color:var(--ink); }
  .btn-ink:hover{ background:var(--ink); color:var(--paper); }
  .btn-white{ border:2px solid #fff; color:#fff; }
  .btn-white:hover{ background:#fff; color:var(--ink); }
  @media (prefers-reduced-motion: reduce){ .btn{ transition:none; } }

  /* ---------- hero 2.0 ---------- */
  .reveal{ opacity:0; transform:translateY(20px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
  .reveal.in{ opacity:1; transform:translateY(0); }
  @media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }
  .hero2{ position:relative; overflow:hidden; padding-block:52px 90px; background:var(--paper); }
  .hero2-bgcircle{
    position:absolute; right:-12%; top:4%; width:640px; height:640px; max-width:70vw; border-radius:50%;
    background:radial-gradient(circle, rgba(var(--deco),.10), rgba(var(--deco),.02) 60%, transparent 72%);
    animation:h2CircleScale 14s ease-in-out infinite; z-index:0; pointer-events:none;
  }
  .hero2-bgcircle::after{
    content:""; position:absolute; inset:0; border-radius:50%; mix-blend-mode:overlay;
    background:radial-gradient(circle at 30% 30%, rgba(255,255,255,.6), transparent 55%);
    animation:h2Diffuse 14s ease-in-out infinite;
  }
  .hero2-bgcircle-2{
    position:absolute; right:2%; top:22%; width:340px; height:340px; max-width:50vw; border-radius:50%;
    border:1px solid rgba(var(--deco),.35); z-index:0; pointer-events:none;
    animation:h2CircleScale2 17s ease-in-out infinite;
  }
  @keyframes h2CircleScale{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.04); } }
  @keyframes h2CircleScale2{ 0%,100%{ transform:scale(1); opacity:.6; } 50%{ transform:scale(1.06); opacity:.9; } }
  @keyframes h2Diffuse{ 0%,100%{ opacity:.3; transform:translate(0,0); } 50%{ opacity:.55; transform:translate(4%,-4%); } }
  @media (prefers-reduced-motion: reduce){ .hero2-bgcircle, .hero2-bgcircle::after, .hero2-bgcircle-2{ animation:none; } }
  .hero2-arch-grid{ position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.5; }
  .hero2-grid-lines{
    position:absolute; right:0; top:0; width:56%; height:100%;
    background-image:
      linear-gradient(rgba(var(--deco),.05) 1px, transparent 1px),
      linear-gradient(90deg, rgba(var(--deco),.05) 1px, transparent 1px);
    background-size:64px 64px;
    -webkit-mask-image:radial-gradient(ellipse 70% 60% at 65% 40%, #000 40%, transparent 78%);
    mask-image:radial-gradient(ellipse 70% 60% at 65% 40%, #000 40%, transparent 78%);
  }

  .hero2-waves{ position:absolute; left:0; right:0; bottom:0; height:120px; overflow:hidden; z-index:0; pointer-events:none; }
  .hero2-wave-track{ display:flex; width:max-content; }
  .hero2-wave-track.a{ animation:h2WaveA 26s linear infinite; }
  .hero2-wave-track.b{ animation:h2WaveB 34s linear infinite; opacity:.45; }
  .hero2-wave-track.c{ animation:h2WaveA 42s linear infinite; opacity:.3; }
  .hero2-wave-track svg{ display:block; flex:none; }
  @keyframes h2WaveA{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
  @keyframes h2WaveB{ from{ transform:translateX(-50%); } to{ transform:translateX(0); } }
  @keyframes h2WaveHighlight{ 0%,90%,100%{ stroke:#447DBF; opacity:.28; } 95%{ stroke:#447DBF; opacity:.7; } }
  .hero2-wave-track .highlight path{ animation:h2WaveHighlight 9s ease-in-out infinite; }
  @media (prefers-reduced-motion: reduce){ .hero2-wave-track, .hero2-wave-track .highlight path{ animation:none; } }

  .h2-fadeup{ opacity:0; transform:translateY(16px); animation:h2FadeUp .9s cubic-bezier(.2,.8,.2,1) forwards; }
  @keyframes h2FadeUp{ to{ opacity:1; transform:translateY(0); } }
  @media (prefers-reduced-motion: reduce){ .h2-fadeup{ animation:none; opacity:1; transform:none; } }

  .hero2-grid{ position:relative; z-index:1; display:grid; gap:44px; align-items:start; }
  @media (min-width:1040px){ .hero2-grid{ grid-template-columns:1fr 420px; } }
  .hero2-eyebrow{
    display:flex; align-items:center; gap:12px; font-family:'Geist Mono',monospace; font-size:11.5px;
    letter-spacing:.1em; color:var(--slate);
  }
  .hero2-eyebrow .rule{ width:26px; height:1px; background:var(--slate); display:inline-block; }
  .hero2-h1{ font-size:clamp(36px,5.4vw,58px); line-height:1.02; margin-top:18px; font-weight:500; letter-spacing:-.035em; }
  .hero2-h1 span{ display:block; }
  .hero2-h1 .accent{
    position:relative; display:inline-block; overflow:hidden;
    font-family:'Instrument Serif',serif; font-style:italic; font-weight:400; letter-spacing:0;
    font-size:1.15em; line-height:1.05; padding:.03em .2em; border-radius:2px;
    background:var(--blue); color:#fff;
  }
  .hero2-h1 .accent::after{
    content:""; position:absolute; top:0; left:-60%; width:40%; height:100%; pointer-events:none;
    background:linear-gradient(100deg, transparent, rgba(255,255,255,.7), transparent);
    animation:h2Sweep 7s ease-out 1.3s infinite;
  }
  @keyframes h2Sweep{ 0%{ left:-60%; } 22%,100%{ left:130%; } }
  @media (prefers-reduced-motion: reduce){ .hero2-h1 .accent::after{ animation:none; opacity:0; } }
  .hero2-lede{ font-size:16px; max-width:46ch; margin-top:22px; }
  .hero2-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:32px; }
  .hero2-btn-primary{ position:relative; overflow:hidden; background:var(--dark); color:#fff; }
  .hero2-btn-primary:hover{ background:var(--darker); }
  .hero2-btn-primary::after{
    content:""; position:absolute; top:0; left:-60%; width:40%; height:100%;
    background:linear-gradient(100deg, transparent, rgba(255,255,255,.28), transparent);
    animation:h2CtaSheen 5s ease-in-out infinite;
  }
  @keyframes h2CtaSheen{ 0%{ left:-60%; } 40%,100%{ left:130%; } }
  .h2-cta-arrow{ display:inline-block; animation:h2CtaArrow 4s ease-in-out infinite; }
  .h2-cta-dot{ display:inline-block; width:7px; height:7px; border-radius:50%; background:#4C8DFF; margin-right:4px; }
  @keyframes h2CtaArrow{ 0%,80%,100%{ transform:translateX(0); } 88%{ transform:translateX(3px); } 94%{ transform:translateX(0); } }
  @media (prefers-reduced-motion: reduce){ .hero2-btn-primary::after, .h2-cta-arrow{ animation:none; } }

  .hero2-stats{ display:flex; gap:0; margin-top:44px; border-top:1px solid var(--line); flex-wrap:wrap; }
  .hero2-stats .stat-item{ flex:1; min-width:110px; padding:18px 18px 0 0; }
  .hero2-stats .num{ font-family:'Geist Mono',monospace; font-size:clamp(20px,2.6vw,26px); font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums; }
  .hero2-stats .lbl{ font-size:11px; color:var(--slate); margin-top:4px; text-transform:uppercase; letter-spacing:.04em; }
  .hero2-trusted{ display:flex; align-items:center; gap:12px; margin-top:34px; font-family:'Geist Mono',monospace; font-size:11px; letter-spacing:.08em; color:var(--slate); text-transform:uppercase; }
  .hero2-trusted .rule{ width:26px; height:1px; background:var(--slate); display:inline-block; }

  .hero2-visual{ position:relative; z-index:1; }
  .hero2-orbit{ position:absolute; left:-46px; top:-8px; width:110px; height:calc(100% + 16px); z-index:0; }
  .h2-orbit-path{ fill:none; stroke:rgba(var(--deco),.3); stroke-width:1.2; }
  .h2-orbit-path.faint{ stroke:rgba(var(--deco),.14); stroke-width:.9; }
  .h2-orbit-dot{
    offset-path: path('M62 8 C -6 84, -6 176, 62 252 C 128 328, 128 420, 62 496 C 30 534, 20 552, 40 566');
    animation:h2OrbitTravel 12.5s linear infinite;
  }
  .h2-orbit-dot.secondary{
    offset-path: path('M40 566 C 20 552, 30 534, 62 496 C 128 420, 128 328, 62 252 C -6 176, -6 84, 62 8');
    animation:h2OrbitTravel2 16s linear infinite; opacity:.55; r:3;
  }
  @keyframes h2OrbitTravel{ 0%{ offset-distance:0%; opacity:0; } 6%{ opacity:1; } 94%{ opacity:1; } 100%{ offset-distance:100%; opacity:0; } }
  @keyframes h2OrbitTravel2{ 0%{ offset-distance:0%; opacity:0; } 8%{ opacity:.55; } 92%{ opacity:.55; } 100%{ offset-distance:100%; opacity:0; } }
  @media (prefers-reduced-motion: reduce){ .h2-orbit-dot{ animation:none; opacity:.8; offset-distance:0%; } }

  .h2-cards{ display:flex; flex-direction:column; gap:18px; }
  .h2-card{
    position:relative; display:flex; align-items:center; gap:16px; background:var(--surface); border-radius:16px; padding:18px 20px;
    box-shadow:0 10px 26px -16px rgba(16,21,28,.14);
    animation:h2Float 6.4s ease-in-out infinite, h2CardCycle 12.5s ease-in-out infinite;
  }
  .h2-card::before{
    content:""; position:absolute; inset:0; border-radius:16px; padding:1px; pointer-events:none;
    background:conic-gradient(from 0deg, transparent, rgba(var(--deco),.85), transparent 30%);
    -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite:xor; mask-composite:exclude;
    opacity:0; animation:h2BorderSweep 12.5s linear infinite;
  }
  .h2-card:nth-child(1){ animation-delay:0s, 0s; } .h2-card:nth-child(1)::before{ animation-delay:0s; }
  .h2-card:nth-child(2){ animation-delay:.5s, 2.5s; } .h2-card:nth-child(2)::before{ animation-delay:2.5s; }
  .h2-card:nth-child(3){ animation-delay:1s, 5s; } .h2-card:nth-child(3)::before{ animation-delay:5s; }
  .h2-card:nth-child(4){ animation-delay:1.5s, 7.5s; } .h2-card:nth-child(4)::before{ animation-delay:7.5s; }
  .h2-card:nth-child(5){ animation-delay:2s, 10s; } .h2-card:nth-child(5)::before{ animation-delay:10s; }
  @keyframes h2Float{ 0%,100%{ transform:translateY(0) scale(1); } 50%{ transform:translateY(-5px) scale(1); } }
  @keyframes h2CardCycle{
    0%{ background:var(--surface); box-shadow:0 10px 26px -16px rgba(16,21,28,.14); transform:translateY(0); }
    4%{ background:var(--surface-hi); box-shadow:0 24px 46px -16px rgba(16,21,28,.26); transform:translateY(-9px); }
    16%{ background:var(--surface-hi); box-shadow:0 24px 46px -16px rgba(16,21,28,.26); transform:translateY(-9px); }
    20%,100%{ background:var(--surface); box-shadow:0 10px 26px -16px rgba(16,21,28,.14); transform:translateY(0); }
  }
  @keyframes h2BorderSweep{ 0%,3%,20%,100%{ opacity:0; } 4%,16%{ opacity:1; } }
  @media (prefers-reduced-motion: reduce){ .h2-card, .h2-card::before{ animation:none; opacity:0; } }
  .h2-card .icon{
    position:relative; width:44px; height:44px; border-radius:12px; flex:none; display:grid; place-items:center;
    animation:h2IconPulse 12.5s ease-in-out infinite;
  }
  .h2-card .icon::after{
    content:""; position:absolute; inset:-6px; border-radius:16px; border:1.5px solid rgba(var(--deco),.7);
    opacity:0; animation:h2IconRing 12.5s ease-in-out infinite;
  }
  .h2-card:nth-child(1) .icon, .h2-card:nth-child(1) .icon::after{ animation-delay:0s; }
  .h2-card:nth-child(2) .icon, .h2-card:nth-child(2) .icon::after{ animation-delay:2.5s; }
  .h2-card:nth-child(3) .icon, .h2-card:nth-child(3) .icon::after{ animation-delay:5s; }
  .h2-card:nth-child(4) .icon, .h2-card:nth-child(4) .icon::after{ animation-delay:7.5s; }
  .h2-card:nth-child(5) .icon, .h2-card:nth-child(5) .icon::after{ animation-delay:10s; }
  @keyframes h2IconPulse{ 0%,100%{ transform:scale(1); } 5%{ transform:scale(1.12); } 10%,16%{ transform:scale(1.04); } 20%{ transform:scale(1); } }
  @keyframes h2IconRing{ 0%,3%{ opacity:0; transform:scale(.8); } 6%{ opacity:.8; transform:scale(1.15); } 13%{ opacity:0; transform:scale(1.5); } 100%{ opacity:0; } }
  @media (prefers-reduced-motion: reduce){ .h2-card .icon, .h2-card .icon::after{ animation:none; } }
  .h2-card .icon svg{ width:20px; height:20px; }
  .h2-card .body{ flex:1; min-width:0; }
  .h2-card .body h3{ font-size:15.5px; font-weight:700; }
  .h2-card .body p{ font-size:12.5px; margin-top:3px; color:var(--slate); }
  .h2-card .arrow{ font-size:17px; color:var(--ink); flex:none; display:inline-block; animation:h2ArrowShift 12.5s ease-in-out infinite; }
  .h2-card:nth-child(1) .arrow{ animation-delay:0s; } .h2-card:nth-child(2) .arrow{ animation-delay:2.5s; }
  .h2-card:nth-child(3) .arrow{ animation-delay:5s; } .h2-card:nth-child(4) .arrow{ animation-delay:7.5s; }
  .h2-card:nth-child(5) .arrow{ animation-delay:10s; }
  @keyframes h2ArrowShift{ 0%,100%{ transform:translateX(0); } 5%,16%{ transform:translateX(6px); } 20%{ transform:translateX(0); } }
  @media (prefers-reduced-motion: reduce){ .h2-card .arrow{ animation:none; } }

  /* ambient particles, right side only */
  .h2-particles{ position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
  .h2-particle{
    position:absolute; width:3px; height:3px; border-radius:50%; background:rgba(var(--deco),.5);
    animation:h2ParticleDrift linear infinite;
  }
  @keyframes h2ParticleDrift{ 0%{ transform:translateY(0); opacity:0; } 15%{ opacity:.8; } 85%{ opacity:.6; } 100%{ transform:translateY(-60px); opacity:0; } }
  @media (prefers-reduced-motion: reduce){ .h2-particle{ animation:none; opacity:0; } }

  .hero2-side-text{
    position:absolute; right:20px; top:14%; z-index:1; text-align:right;
    font-family:'Geist Mono',monospace; font-size:11px; letter-spacing:.08em; color:var(--slate); line-height:1.6;
  }
  .hero2-bottom-text{
    position:absolute; right:20px; bottom:18px; z-index:1; text-align:right;
    font-family:'Geist Mono',monospace; font-size:11px; letter-spacing:.08em; color:var(--slate); line-height:1.6;
  }
  @media (max-width:1040px){ .hero2-side-text, .hero2-bottom-text{ display:none; } }
  @media (max-width:640px){ .hero2-orbit{ display:none; } .hero2-visual{ padding-left:0; } }

  /* ---------- section base ---------- */
  section{ padding-block:72px; }
  .kicker{ font-family:'Geist Mono',monospace; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--blue); }
  .kicker-row{ display:inline-flex; align-items:center; gap:8px; }
  .pulse-dot{ position:relative; width:6px; height:6px; border-radius:50%; background:var(--blue); flex:none; }
  .pulse-dot::after{ content:""; position:absolute; inset:-6px; border-radius:50%; border:1px solid var(--blue); animation:ring 2.4s ease-out infinite; }
  @media (prefers-reduced-motion: reduce){ .pulse-dot::after{ animation:none; } }
  .head{ max-width:640px; display:flex; flex-direction:column; gap:14px; }
  .head h2{ font-size:clamp(26px,3.4vw,38px); }

  /* ---------- ledger list (lines of cover) ---------- */
  /* ---------- about section 2.0 ---------- */
  .about2{ position:relative; background:var(--paper); overflow:hidden; padding-block:100px; }
  .about2-vtext{
    position:absolute; left:18px; top:50%; transform:translateY(-50%) rotate(180deg); writing-mode:vertical-rl;
    font-family:'Geist Mono',monospace; font-size:11px; letter-spacing:.15em; color:var(--slate); opacity:.6;
  }
  @media (max-width:1040px){ .about2-vtext{ display:none; } }

  .about2-wrap{ position:relative; display:grid; gap:60px; }
  @media (min-width:1040px){ .about2-wrap{ grid-template-columns:0.95fr 1.15fr; align-items:start; } }

  .about2-visual{ position:relative; padding:56px 30px 72px 56px; }
  @media (max-width:640px){ .about2-visual{ padding:34px 10px 60px 26px; } }

  .about2-shape-1{
    position:absolute; top:-14px; left:-22px; width:86%; height:78%; z-index:0;
    background:linear-gradient(160deg, rgba(68,125,191,.14), rgba(68,125,191,.02));
    clip-path:polygon(14% 0%, 100% 10%, 84% 100%, 0% 68%);
    transform:rotate(-4deg); opacity:0; transition:opacity 1s ease-out; transition-delay:.1s;
    animation:shapeDrift1 13s ease-in-out infinite;
  }
  .about2-wrap.in .about2-shape-1{ opacity:1; }
  @keyframes shapeDrift1{ 0%,100%{ transform:rotate(-4deg) translate(0,0); } 50%{ transform:rotate(-4deg) translate(6px,-6px); } }
  .about2-shape-2{
    position:absolute; top:12px; left:0; width:74%; height:66%; z-index:0; border-radius:2px;
    border:1px solid rgba(var(--deco),.18); opacity:0; transition:opacity 1s ease-out; transition-delay:.25s;
    animation:shapeDrift2 16s ease-in-out infinite;
  }
  .about2-shape-2::before{
    content:""; position:absolute; left:0; top:-26px; width:34px; height:1px; background:rgba(var(--deco),.35);
  }
  .about2-wrap.in .about2-shape-2{ opacity:1; }
  @keyframes shapeDrift2{ 0%,100%{ transform:translate(0,0); } 50%{ transform:translate(-5px,5px); } }
  .about2-dots{
    position:absolute; top:2px; right:14px; width:100px; height:70px; z-index:0;
    background-image:radial-gradient(rgba(var(--deco),.3) 1.4px, transparent 1.6px); background-size:16px 16px;
    opacity:0; transition:opacity 1s ease-out; transition-delay:.4s;
    animation:shapeDrift2 19s ease-in-out infinite reverse;
  }
  .about2-wrap.in .about2-dots{ opacity:1; }
  @media (max-width:640px){ .about2-dots{ display:none; } .about2-shape-2::before{ display:none; } }
  @media (prefers-reduced-motion: reduce){ .about2-shape-1, .about2-shape-2, .about2-dots{ animation:none; } }

  .about2-photo-frame{
    position:relative; z-index:1; border-radius:14px; overflow:hidden; box-shadow:var(--shadow);
    opacity:0; transform:translateY(24px); filter:blur(4px);
    transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1), filter .9s ease;
  }
  .about2-wrap.in .about2-photo-frame{ opacity:1; transform:translateY(0); filter:blur(0); }
  .about2-photo-frame img{ width:100%; display:block; }

  .about2-est-card{
    position:absolute; left:6px; bottom:10px; z-index:2; background:var(--surface); border:1px solid var(--line); border-radius:4px;
    padding:22px 24px; box-shadow:var(--shadow); max-width:190px;
    opacity:0; transform:translateY(20px);
    transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);
    transition-delay:.9s;
  }
  .about2-wrap.in .about2-est-card{ opacity:1; transform:translateY(0); }
  .ec-label{ font-family:'Geist Mono',monospace; font-size:11px; letter-spacing:.1em; color:var(--slate); }
  .ec-year{ font-size:32px; font-weight:700; margin-top:2px; letter-spacing:-.02em; }
  .ec-rule{ width:28px; height:1px; background:var(--ink); margin-block:12px; }
  .ec-caption{ font-family:'Geist Mono',monospace; font-size:10px; letter-spacing:.08em; color:var(--slate); line-height:1.7; }
  @media (max-width:640px){ .about2-est-card{ padding:16px 18px; max-width:150px; } .ec-year{ font-size:24px; } }

  .about2-copy{ position:relative; z-index:1; }
  .about2-kicker{ display:flex; align-items:center; gap:14px; opacity:0; transition:opacity .7s ease-out; transition-delay:.6s; }
  .about2-wrap.in .about2-kicker{ opacity:1; }
  .ak-rule{ width:34px; height:1px; background:var(--line); display:inline-block; }

  .about2-h2{
    font-size:clamp(30px,3.6vw,44px); line-height:1.02; margin-top:16px; font-weight:500; letter-spacing:-0.035em;
    opacity:0; transform:translateY(18px); filter:blur(6px);
    transition:opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1), filter .9s ease;
    transition-delay:.7s;
  }
  .about2-wrap.in .about2-h2{ opacity:1; transform:translateY(0); filter:blur(0); }
  .about2-h2 .dim{
    display:inline-block; margin-top:6px; font-family:'Instrument Serif',serif; font-style:italic; font-weight:400;
    font-size:1.12em; background:var(--blue); color:#fff; padding:.02em .16em; border-radius:2px; letter-spacing:0;
  }

  .about2-lede{
    font-size:15px; margin-top:18px; max-width:52ch;
    opacity:0; transform:translateY(14px);
    transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);
    transition-delay:1.3s;
  }
  .about2-wrap.in .about2-lede{ opacity:1; transform:translateY(0); }

  .about2-grid{ display:grid; grid-template-columns:1fr 1fr; gap:0; margin-top:38px; border-top:1px solid var(--line); }
  @media (max-width:560px){ .about2-grid{ grid-template-columns:1fr; } }
  .a2-point{
    padding:24px 26px 24px 0; border-bottom:1px solid var(--line);
    opacity:0; transform:scale(.97) translateY(10px);
    transition:opacity .6s cubic-bezier(.2,.7,.2,1), transform .6s cubic-bezier(.2,.7,.2,1);
  }
  .about2-grid .a2-point:nth-child(odd){ padding-right:26px; }
  .about2-wrap.in .a2-point{ opacity:1; transform:scale(1) translateY(0); }
  .about2-wrap.in .a2-point:nth-child(1){ transition-delay:2.0s; }
  .about2-wrap.in .a2-point:nth-child(2){ transition-delay:2.45s; }
  .about2-wrap.in .a2-point:nth-child(3){ transition-delay:2.9s; }
  .about2-wrap.in .a2-point:nth-child(4){ transition-delay:3.35s; }
  .a2-top{ display:flex; align-items:center; gap:12px; }
  .a2-num{
    flex:none; font-family:'Geist Mono',monospace; font-size:13px; font-weight:700; color:#fff;
    width:32px; height:32px; border-radius:50%; background:var(--blue); display:grid; place-items:center;
  }
  .a2-rule{ height:1px; background:var(--line); flex:1; transform:scaleX(0); transform-origin:left; transition:transform .6s ease-out; }
  .about2-wrap.in .a2-point:nth-child(1) .a2-rule{ transition-delay:2.15s; }
  .about2-wrap.in .a2-point:nth-child(2) .a2-rule{ transition-delay:2.6s; }
  .about2-wrap.in .a2-point:nth-child(3) .a2-rule{ transition-delay:3.05s; }
  .about2-wrap.in .a2-point:nth-child(4) .a2-rule{ transition-delay:3.5s; }
  .about2-wrap.in .a2-rule{ transform:scaleX(1); }
  .a2-point h3{ font-size:16px; font-weight:700; margin-top:14px; }
  .a2-point p{ font-size:13px; margin-top:6px; max-width:32ch; color:var(--slate); }

  .about2-cta{
    margin-top:36px; position:relative; overflow:hidden;
    opacity:0; transform:translateY(14px);
    transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);
    transition-delay:4.3s;
  }
  .about2-wrap.in .about2-cta{ opacity:1; transform:translateY(0); }
  .about2-cta::after{
    content:""; position:absolute; top:0; left:-60%; width:40%; height:100%; pointer-events:none;
    background:linear-gradient(100deg, transparent, rgba(255,255,255,.35), transparent); opacity:0;
  }
  .about2-wrap.in .about2-cta::after{ animation:h2CtaSheenOnce 1.2s ease-out 5.2s 1; }
  @keyframes h2CtaSheenOnce{ 0%{ left:-60%; opacity:1; } 100%{ left:130%; opacity:1; } }

  .about2-side-text{
    grid-column:2; justify-self:end; text-align:right; font-family:'Geist Mono',monospace; font-size:11px;
    letter-spacing:.08em; color:var(--slate); line-height:1.6;
    opacity:0; transition:opacity .8s ease-out; transition-delay:1.5s;
  }
  .about2-wrap.in .about2-side-text{ opacity:1; }
  @media (max-width:1040px){ .about2-side-text{ grid-column:1; justify-self:start; text-align:left; } }

  @media (prefers-reduced-motion: reduce){
    .about2-shape-1, .about2-shape-2, .about2-photo-frame, .about2-est-card, .about2-kicker, .about2-h2, .about2-lede,
    .a2-point, .a2-rule, .about2-cta, .about2-cta::after, .about2-side-text, .about2-dots{
      transition:none !important; animation:none !important; opacity:1 !important; transform:none !important; filter:none !important;
    }
  }

  /* ---------- testimonial spotlight ---------- */
  .testi-section{ position:relative; padding-block:110px; overflow:hidden; }
  .testi-quote-mark{
    position:absolute; left:2%; top:-30px; font-family:'Instrument Serif',serif; font-size:280px; line-height:1;
    color:rgba(var(--deco),.06); pointer-events:none; user-select:none;
  }
  @media (max-width:900px){ .testi-quote-mark{ font-size:180px; left:-20px; top:-10px; } }
  .testi-starfield{
    position:absolute; right:0; bottom:14%; display:flex; gap:34px; pointer-events:none; z-index:0;
    font-size:120px; color:rgba(var(--deco),.05); transform:translateX(10%);
  }
  @media (max-width:1100px){ .testi-starfield{ display:none; } }
  .testi-vtext{
    position:absolute; left:24px; bottom:34px; font-family:'Geist Mono',monospace; font-size:11px; letter-spacing:.15em;
    color:var(--slate); line-height:1.9;
  }
  .testi-vtext::before{ content:""; display:block; width:26px; height:1px; background:var(--line); margin-bottom:10px; }
  @media (max-width:760px){ .testi-vtext{ display:none; } }
  .testi-side-text{
    position:absolute; right:34px; top:34px; text-align:right; font-family:'Geist Mono',monospace; font-size:11px;
    letter-spacing:.08em; color:var(--slate); line-height:1.7;
  }
  .ts-rule{ width:26px; height:1px; background:var(--line); margin-top:10px; margin-left:auto; }
  @media (max-width:760px){ .testi-side-text{ display:none; } }

  .testi-head{ max-width:640px; margin-inline:auto; text-align:center; margin-bottom:44px; position:relative; z-index:1; }
  .testi-head .kicker-row{ justify-content:center; }
  .testi-head h2{ font-size:clamp(26px,3.2vw,36px); }
  .testi-head h2 .dim{
    display:inline-block; margin-top:6px; font-family:'Instrument Serif',serif; font-style:italic; font-weight:400;
    font-size:1.12em; background:var(--blue); color:#fff; padding:.02em .16em; border-radius:2px; letter-spacing:0;
  }
  .testi-wrap{ position:relative; max-width:760px; margin-inline:auto; z-index:1; }
  .testi-arrow{
    position:absolute; top:38%; width:52px; height:52px; border-radius:50%; border:1px solid var(--line);
    background:var(--surface); display:grid; place-items:center; font-size:18px; color:var(--slate); cursor:pointer;
    transition:border-color .3s, color .3s, transform .3s;
  }
  .testi-arrow:hover{ border-color:var(--blue); color:var(--blue); transform:translateY(-2px); }
  .testi-arrow.left{ left:-70px; }
  .testi-arrow.right{ right:-70px; }
  @media (max-width:1000px){ .testi-arrow{ display:none; } }

  .testi-body{ border-left:2px solid var(--ink); padding-left:26px; position:relative; }
  .testi-kicker{ display:flex; align-items:center; gap:14px; }
  .tk-rule{ width:34px; height:1px; background:var(--line); display:inline-block; }
  .testi-quote{
    font-family:'Instrument Serif',serif; font-style:italic; font-size:clamp(24px,3.2vw,34px); color:var(--ink);
    line-height:1.35; margin-top:20px; transition:opacity .25s ease;
  }
  .testi-who{ margin-top:18px; font-size:13.5px; color:var(--slate); display:flex; align-items:center; gap:10px; }
  .tw-rule{ width:18px; height:1px; background:var(--slate); display:inline-block; }
  .testi-stars{ margin-top:22px; font-family:'Geist Mono',monospace; font-size:12px; color:var(--blue); }
  .twinkle-stars span{ display:inline-block; animation:twinkle 3.2s ease-in-out infinite; }
  .twinkle-stars span:nth-child(1){ animation-delay:0s; }
  .twinkle-stars span:nth-child(2){ animation-delay:.2s; }
  .twinkle-stars span:nth-child(3){ animation-delay:.4s; }
  .twinkle-stars span:nth-child(4){ animation-delay:.6s; }
  .twinkle-stars span:nth-child(5){ animation-delay:.8s; }
  @keyframes twinkle{ 0%,80%,100%{ opacity:1; transform:scale(1); } 90%{ opacity:.35; transform:scale(.8); } }
  @media (prefers-reduced-motion: reduce){ .twinkle-stars span{ animation:none; } }

  .testi-pagination{ display:flex; align-items:center; justify-content:center; gap:10px; margin-top:56px; font-family:'Geist Mono',monospace; font-size:12px; color:var(--slate); }
  .tp-dot{ width:7px; height:7px; border-radius:50%; background:var(--line); }
  .tp-dot.active{ background:var(--blue); width:9px; height:9px; }
  .tp-dot{ cursor:pointer; transition:background .3s, width .3s, height .3s; }

  .values-only .kicker-row{ display:inline-flex; align-items:center; gap:9px; }

  .rule-list{ position:relative; margin-top:8px; padding-left:34px; }
  .rule-svg{ position:absolute; left:0; top:6px; bottom:6px; width:16px; }
  .rule-svg line{ stroke:var(--line); stroke-width:2; }
  .rule-svg .drawn{ stroke:var(--blue); stroke-width:2; stroke-dasharray:100; stroke-dashoffset:100; transition:stroke-dashoffset 1.4s cubic-bezier(.2,.8,.2,1); }
  .values-only.in .rule-svg .drawn{ stroke-dashoffset:0; }
  .rule-svg .pulse-dot{ r:3; fill:var(--blue); offset-path:path('M8,0 L8,300'); animation:travel 3.4s linear infinite; }
  @keyframes travel{ from{ offset-distance:0%; opacity:0; } 8%{ opacity:1; } 92%{ opacity:1; } to{ offset-distance:100%; opacity:0; } }
  @media (prefers-reduced-motion: reduce){ .rule-svg .pulse-dot{ animation:none; opacity:0; } .rule-svg .drawn{ transition:none; stroke-dashoffset:0; } }
  .rule-item{ padding-block:16px; border-bottom:1px solid var(--line); }
  .rule-item:first-child{ padding-top:0; }
  .rule-item .n{ font-family:'Geist Mono',monospace; font-size:12px; color:var(--blue); font-weight:700; }
  .rule-item h3{ font-size:16px; margin-top:6px; }
  .rule-item p{ font-size:13.5px; margin-top:5px; }

  /* ---------- blog section ---------- */
  .blog-section{ position:relative; padding-block:100px; overflow:hidden; }
  .blog-bg-1{
    position:absolute; top:26px; right:8%; width:220px; height:110px; background:rgba(68,125,191,.10); z-index:0;
  }
  .blog-bg-2{
    position:absolute; bottom:60px; left:34%; width:150px; height:220px; background:rgba(68,125,191,.10); z-index:0;
  }
  @media (max-width:900px){ .blog-bg-1, .blog-bg-2{ display:none; } }
  .blog-side-text{
    position:absolute; right:24px; top:44px; text-align:left; font-family:'Geist Mono',monospace; font-size:11px;
    letter-spacing:.1em; color:var(--slate); line-height:2.1; z-index:1;
  }
  @media (max-width:1200px){ .blog-side-text{ display:none; } }
  .blog-grid{ position:relative; z-index:1; display:grid; gap:52px; align-items:center; }
  @media (min-width:1040px){ .blog-grid{ grid-template-columns:0.8fr 1.2fr; } }
  .blog-kicker{ display:flex; align-items:center; gap:12px; font-family:'Geist Mono',monospace; font-size:12px; letter-spacing:.1em; color:var(--slate); }
  .bk-rule{ width:26px; height:2px; background:var(--blue); display:inline-block; }
  .blog-h2{ font-size:clamp(34px,4.6vw,52px); margin-top:16px; }
  .blog-accent{ color:var(--blue); }
  .blog-lede{ font-size:15px; margin-top:18px; max-width:40ch; }
  .blog-nav{ display:flex; align-items:center; gap:16px; margin-top:40px; }
  .blog-arrow{
    width:48px; height:48px; border-radius:50%; border:1px solid var(--line); background:var(--surface); flex:none;
    display:grid; place-items:center; font-size:16px; color:var(--slate); cursor:pointer;
    transition:border-color .3s, color .3s, transform .3s;
  }
  .blog-arrow:hover{ border-color:var(--blue); color:var(--blue); transform:translateY(-2px); }
  .blog-progress{ display:flex; gap:8px; flex:1; max-width:220px; }
  .bp-seg{ height:3px; flex:1; border-radius:2px; background:var(--line); overflow:hidden; }
  .bp-seg span{ display:block; height:100%; width:0; background:var(--blue); transition:width .4s ease; }
  .bp-seg.done span{ width:100%; }
  .bp-seg.active span{ width:100%; }

  .blog-card{ position:relative; }
  .blog-img-wrap{ position:relative; border-radius:16px; overflow:hidden; box-shadow:var(--shadow); aspect-ratio:16/10.5; }
  .blog-img-wrap img{ width:100%; height:100%; object-fit:cover; display:block; transition:opacity .3s ease; }
  .blog-tag{
    position:absolute; top:20px; left:20px; background:var(--blue); color:#fff; font-size:13px; font-weight:700;
    padding:9px 16px; border-radius:6px;
  }
  .blog-date{
    position:absolute; bottom:20px; right:20px; background:var(--surface-a); color:var(--ink); font-size:11.5px;
    font-weight:600; letter-spacing:.04em; padding:8px 14px; border-radius:4px;
  }
  .blog-info{
    position:absolute; left:20px; bottom:20px; max-width:340px; background:var(--surface); border-radius:14px;
    padding:24px 26px; box-shadow:var(--shadow);
  }
  .blog-info h3{ font-size:19px; font-weight:700; }
  .blog-info p{ font-size:13.5px; margin-top:8px; }
  .blog-read{ display:inline-flex; align-items:center; gap:6px; margin-top:14px; font-size:12.5px; font-weight:700; color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
  @media (max-width:640px){ .blog-info{ position:static; margin-top:16px; box-shadow:none; border:1px solid var(--line); max-width:none; } .blog-date{ top:20px; bottom:auto; } }

  /* ---------- contact section ---------- */
  .contact-grid{ display:grid; gap:52px; }
  @media (min-width:900px){ .contact-grid{ grid-template-columns:0.9fr 1.1fr; } }
  .contact-info p{ font-size:14.5px; margin-top:12px; max-width:48ch; }
  .contact-details{ display:flex; flex-direction:column; margin-top:28px; }
  .cd-item{ display:flex; flex-direction:column; gap:3px; padding-block:14px; border-top:1px solid var(--line); }
  .cd-label{ font-family:'Geist Mono',monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--slate); }
  .cd-item a, .cd-item span:not(.cd-label){ font-size:15px; font-weight:600; color:var(--ink); }
  .cd-item a:hover{ color:var(--blue); }
  .contact-form-wrap{ position:relative; }
  .contact-form{
    background:var(--paper); border:1px solid var(--line); border-radius:20px; padding:32px;
    box-shadow:var(--shadow); display:flex; flex-direction:column; gap:16px;
  }
  .cf-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  @media (max-width:520px){ .cf-row{ grid-template-columns:1fr; } }
  .cf-field label{ font-size:12px; color:var(--slate); display:block; margin-bottom:6px; }
  .cf-field input, .cf-field textarea{
    width:100%; padding:12px 14px; border-radius:8px; border:1px solid var(--line); background:var(--panel);
    font-family:'Geist',sans-serif; font-size:14px; color:var(--ink); resize:vertical;
  }
  .cf-field input:focus, .cf-field textarea:focus{ outline:2px solid var(--blue); outline-offset:1px; }
  .contact-thanks{
    display:none; text-align:center; padding-block:56px; background:var(--paper);
    border:1px solid var(--line); border-radius:20px; box-shadow:var(--shadow);
  }
  .contact-thanks .ct-check{
    width:44px; height:44px; border-radius:50%; background:var(--good); color:#fff; font-size:20px;
    display:grid; place-items:center; margin-inline:auto; margin-bottom:14px;
  }
  .contact-thanks p{ font-size:13.5px; margin-top:4px; }

  /* ---------- footer ---------- */
  footer{ background:var(--paper); border-top:1px solid var(--line); }
  footer .fgrid{ display:grid; gap:40px; padding-block:64px 44px; grid-template-columns:1.3fr repeat(3,1fr); }
  @media (max-width:860px){ footer .fgrid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:520px){ footer .fgrid{ grid-template-columns:1fr; } }
  footer .fbrand img.logo{ height:26px; }
  footer .fbrand p{ color:var(--slate); font-size:13.5px; margin-top:16px; max-width:32ch; }
  footer .accreditations{ display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
  footer .flic{
    display:inline-flex; align-items:center; gap:7px; font-family:'Geist Mono',monospace;
    font-size:11px; letter-spacing:.03em; color:var(--slate); border:1px solid var(--line); padding:7px 11px; border-radius:2px;
    position:relative; overflow:hidden;
  }
  footer .flic::after{
    content:""; position:absolute; top:0; left:-60%; width:50%; height:100%;
    background:linear-gradient(100deg, transparent, rgba(var(--deco),.14), transparent);
    animation:badgeSheen 4.6s ease-in-out infinite;
  }
  footer .flic:last-child::after{ animation-delay:.9s; }
  @keyframes badgeSheen{ 0%{ left:-60%; } 55%,100%{ left:130%; } }
  @media (prefers-reduced-motion: reduce){ footer .flic::after{ animation:none; } }
  footer .flic b{ color:var(--ink); }
  footer h4{ font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--slate); font-weight:700; margin-bottom:6px; }
  footer .fcol{ display:flex; flex-direction:column; gap:16px; margin-top:18px; }
  footer .fcol a, footer .fcol span{ font-size:14px; color:var(--ink); line-height:1.4; }
  footer .fcol a{ position:relative; display:inline-block; width:fit-content; padding-block:2px; transition:color .2s; }
  footer .fcol a::after{
    content:""; position:absolute; left:0; right:100%; bottom:-2px; height:1px; background:var(--blue);
    transition:right .3s cubic-bezier(.2,.8,.2,1);
  }
  footer .fcol a:hover::after{ right:0; }
  footer .fbottom{
    border-top:1px solid var(--line); padding-block:22px;
    display:flex; flex-direction:column; gap:12px; font-size:12px; color:var(--slate);
  }
  @media (min-width:640px){ footer .fbottom{ flex-direction:row; justify-content:space-between; align-items:center; } }
  footer .fbottom .legal{ display:flex; gap:18px; flex-wrap:wrap; }
  footer .fbottom a:hover{ color:var(--ink); }

  /* ---------- sticky inquire ---------- */
  .inquire-fab{
    position:fixed; right:20px; bottom:20px; z-index:80;
    display:inline-flex; align-items:center; gap:9px;
    background:var(--dark); color:#fff; border:none; cursor:pointer;
    padding:15px 22px; border-radius:2px; font-family:'Geist',sans-serif; font-size:14px; font-weight:700;
    box-shadow:5px 5px 0 var(--blue);
    transition:transform .25s cubic-bezier(.2,.8,.2,1);
  }
  .inquire-fab:hover{ transform:translate(-2px,-2px); }
  @media (max-width:520px){ .inquire-fab{ padding:13px 18px; font-size:13px; right:16px; bottom:16px; } }
  @media (prefers-reduced-motion: reduce){ .inquire-fab{ transition:none; } }

  .inquire-panel{
    position:fixed; right:20px; bottom:88px; z-index:81;
    width:min(340px, calc(100vw - 32px));
    background:var(--paper); color:var(--ink); border:2px solid var(--ink);
    padding:22px; box-shadow:var(--shadow);
    transform-origin:bottom right;
    opacity:0; transform:scale(.94) translateY(10px); pointer-events:none;
    transition:opacity .28s cubic-bezier(.2,.8,.2,1), transform .28s cubic-bezier(.2,.8,.2,1);
  }
  .inquire-panel.open{ opacity:1; transform:scale(1) translateY(0); pointer-events:auto; }
  .ihead{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
  .ihead h3{ font-size:16px; }
  .ihead p{ font-size:12.5px; margin-top:6px; }
  .inquire-close{ background:none; border:none; font-size:20px; cursor:pointer; color:var(--slate); line-height:1; padding:0; }
  .inquire-form{ display:flex; flex-direction:column; gap:12px; margin-top:18px; }
  .inquire-form label{ font-size:11.5px; color:var(--slate); display:block; margin-bottom:5px; }
  .inquire-form input{
    width:100%; padding:11px 12px; border-radius:2px; border:1px solid var(--line); background:var(--panel); color:var(--ink);
    font-family:'Geist',sans-serif; font-size:13.5px;
  }
  .inquire-form input:focus{ outline:2px solid var(--blue); outline-offset:1px; }
  .inquire-submit{ width:100%; justify-content:center; margin-top:2px; }
  .inquire-thanks{ display:none; text-align:center; padding-block:14px; }
  .inquire-thanks .check{
    width:38px; height:38px; border-radius:50%; background:var(--good); color:#fff; font-size:18px;
    display:grid; place-items:center; margin-inline:auto 12px auto; margin-bottom:12px;
  }

/* ===== theme tokens (light default, dark follows the device setting) ===== */
:root{ color-scheme:light dark; --surface:#FFFFFF; --surface-hi:#FBFEFC; --surface-a:rgba(255,255,255,.92); --dark:#0B0D10; --darker:#000; --deco:21,44,71; }
@media (prefers-color-scheme: dark){
  :root{
    --ink:#ECF0F5; --paper:#0B0D10; --panel:#12151B; --line:#232833; --slate:#98A2B3;
    --surface:#151A22; --surface-hi:#1B212B; --surface-a:rgba(21,26,34,.92);
    --dark:#1C222D; --darker:#0B0D10; --deco:150,185,235;
    --shadow:0 30px 70px -30px rgba(0,0,0,.65);
  }
  /* the wordmark is dark navy on transparent: flip it so it reads on a dark page */
  img.logo, .elementor-widget-image img.wp-image-12, footer .fbrand .elementor-widget-image img{ filter:invert(1) hue-rotate(180deg); }
  .hero2-bgcircle::after{ mix-blend-mode:soft-light; }
  .about2-photo-frame img, .blog-img-wrap img, .h2-card .icon, .svc-cover-card .icon{ filter:none; }
}

/* ===== header hamburger ===== */
  .mm-toggle{ display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px; }
  .mm-toggle span{ width:22px; height:2px; background:var(--ink); display:block; transition:transform .3s, opacity .3s; }
  @media (max-width:900px){ .mm-toggle{ display:flex; } .mm-desktop-cta{ display:none; } }
  .mm-toggle.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .mm-toggle.open span:nth-child(2){ opacity:0; }
  .mm-toggle.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  .mm-panel{ max-height:0; overflow:hidden; background:var(--paper); border-top:1px solid var(--line); transition:max-height .35s cubic-bezier(.2,.8,.2,1); }
  .mm-panel.open{ max-height:400px; }
  .mm-links{ display:flex; flex-direction:column; padding:10px 24px; }
  .mm-links a{ padding-block:14px; border-bottom:1px solid var(--line); font-size:15px; font-weight:600; }
  .mm-links a:last-child{ border-bottom:none; }
  .mm-panel > .btn{ margin:8px 24px 20px; }
  @media (prefers-reduced-motion: reduce){ .mm-panel, .mm-toggle span{ transition:none; } }

/* ===== Elementor bridge (after the design system) ===== */
.elementor-widget:not(:last-child){ margin-block-end:0; }
body .elementor-widget.elementor-widget-text-editor{ color:inherit; font:inherit; letter-spacing:inherit; line-height:inherit; text-align:inherit; }
.elementor-widget-text-editor > *:last-child{ margin-bottom:0; }
body .elementor-widget.elementor-widget-image{ text-align:left; }
.elementor-widget-image img{ display:block; }
.brand .elementor-widget-image img{ height:30px; width:auto; }
footer .fbrand .elementor-widget-image img{ height:26px; width:auto; }
.about2-photo-frame .elementor-widget-image, .about2-photo-frame .elementor-widget-image img{ width:100%; height:100%; }
.about2-photo-frame .elementor-widget-image img{ object-fit:cover; }
/* Elementor Button widget carrying the design-system .btn classes (beats the kit's accent-colour button) */
.elementor-widget-button .elementor-button.btn{ background:transparent; color:inherit; fill:currentColor; border:0; border-radius:2px; box-shadow:none; line-height:inherit; letter-spacing:inherit; text-align:inherit; font-family:inherit; font-weight:700; }
.elementor-widget-button .elementor-button.btn-blue{ background:var(--blue); color:#fff; }
.elementor-widget-button .elementor-button.btn-blue:hover{ background:var(--blue); color:#fff; transform:translate(-2px,-2px); box-shadow:4px 4px 0 var(--ink); }
.elementor-widget-button .elementor-button.btn-ink{ border:2px solid var(--ink); color:var(--ink); }
.elementor-widget-button .elementor-button.btn-ink:hover{ background:var(--ink); color:var(--paper); }
.elementor-widget-button .elementor-button.btn-white{ border:2px solid #fff; color:#fff; }
.elementor-widget-button .elementor-button.btn-white:hover{ background:#fff; color:var(--ink); }
.elementor-button.btn{ box-shadow:none; }
.elementor-button.btn .elementor-button-content-wrapper{ display:inline-flex; align-items:center; gap:inherit; }
/* containers act like the plain blocks of the source markup unless the design system says flex/grid/position */
.e-con.angel-block{ display:block; }
.e-con.angel-static{ position:static; }
.e-con.e-child{ --width:auto; }
body .elementor-widget.elementor-widget-text-editor, body .elementor-widget.elementor-widget-html{ position:static; }
/* anchors that were flex items in the source (blockified there) are now inline inside text widgets */
nav.links a, .mm-links a{ display:block; }
.head .kicker-row{ display:flex; }
/* Contact Form 7 inside the design-system form styles */
.wpcf7-form-control-wrap{ display:block; }
.wpcf7-not-valid-tip{ font-size:12px; color:#C0392B; margin-top:4px; display:block; }
.wpcf7 form .wpcf7-response-output{ margin:0; padding:10px 14px; border:1px solid var(--line); border-radius:8px; font-size:13px; color:var(--ink); }
.wpcf7 form.sent .wpcf7-response-output{ border-color:var(--good); }
.wpcf7-spinner{ display:none; }
.wpcf7 .screen-reader-response{ position:absolute; overflow:hidden; clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; width:1px; margin:-1px; padding:0; border:0; }
.wpcf7 .hidden-fields-container{ display:none; }
.wpcf7 form .wpcf7-response-output:empty{ display:none; }
.wpcf7 form.init .wpcf7-response-output{ display:none; }
/* CF7 renders the submit as <input>; re-assert the .btn look over the form's generic input styles */
.contact-form input.wpcf7-submit, .inquire-form input.wpcf7-submit{ background:var(--blue); color:#fff; border:0; border-radius:2px; padding:12px 20px; font:700 13.5px/1.2 'Geist',system-ui,sans-serif; width:100%; cursor:pointer; }
.contact-form input.wpcf7-submit:hover, .inquire-form input.wpcf7-submit:hover{ transform:translate(-2px,-2px); box-shadow:4px 4px 0 var(--ink); }
/* keep the animated pieces visible while editing in Elementor */
.elementor-editor-active .reveal, .elementor-editor-active .h2-fadeup, .elementor-editor-active .hero-in{ opacity:1 !important; transform:none !important; animation:none !important; }

/* ===== generated from inline styles ===== */
.s-c716a5{width:100% !important;justify-content:center !important;margin-top:8px !important}
.s-a4f20b{display:flex !important;flex-direction:column !important;gap:10px !important;width:100% !important}
.s-3e43c7{flex-direction:column !important;align-items:flex-start !important;gap:10px !important}
.s-759878{animation-delay:.76s !important}
.s-1b04cf{animation-delay:.9s !important}
.s-d43169{margin-top:8px !important}
.s-c6092e{background:var(--panel) !important;border-block:1px solid var(--line) !important}
.s-254f7b{animation-delay:.4s !important}
.s-6229be{animation-delay:.5s !important}
.s-310b5d{border-bottom:none !important}

/* ===== 9 Oct 2026: every page linked from the Home menu (same dropdown as the service pages) ===== */
nav.links .dd{position:relative;display:inline-flex;align-items:center}
nav.links .chev{display:inline-block;width:6px;height:6px;margin-left:8px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .3s}
nav.links .dd:hover .chev{transform:translateY(1px) rotate(225deg)}
nav.links .ddm{position:absolute;top:100%;left:-16px;min-width:560px;display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 30px 60px -24px rgba(15,34,56,.45);opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .25s,transform .35s cubic-bezier(.2,.8,.2,1),visibility 0s .25s;z-index:80}
nav.links .dd:hover .ddm,nav.links .dd:focus-within .ddm{opacity:1;visibility:visible;transform:none;transition-delay:0s}
nav.links .ddm a{display:block;padding:10px 14px;border-radius:10px;font-size:14.5px;font-weight:500;color:var(--ink);white-space:nowrap;border:0}
nav.links .ddm a::after{display:none}
nav.links .ddm a.m{font-weight:600;font-size:15px}
nav.links .ddm a.s{padding-left:30px;font-size:13.5px;color:var(--slate);position:relative}
nav.links .ddm a.s::before{content:"";position:absolute;left:16px;top:50%;width:8px;height:1px;background:currentColor;opacity:.5}
nav.links .ddm a:hover{background:#eef3fa;color:var(--blue)}
:root[data-theme=dark] nav.links .ddm{background:#111a25}
:root[data-theme=dark] nav.links .ddm a:hover{background:#1b2b42;color:#fff}
@media(prefers-color-scheme:dark){nav.links .ddm{background:#111a25}nav.links .ddm a:hover{background:#1b2b42;color:#fff}}
.mm-panel.open{max-height:calc(100vh - 90px);overflow-y:auto}
.mm-links a.mm-sub{padding-left:16px;font-size:14px;font-weight:500;color:var(--slate)}
.mm-links a.mm-sub.s2{padding-left:32px;font-size:13.5px}
footer .fcol a.sub{padding-left:14px;color:var(--slate)}
nav.links .dd-about .ddm{min-width:250px;grid-template-columns:1fr}
