  :root{
    --bg: #FFFFFF;
    --surface: #FAFAFA;
    --surface-2: #F1F1F1;
    --border: #E5E5E5;
    --border-2: #D4D4D4;
    --text: #000000;
    --text-dim: #525252;
    --text-muted: #8A8A8A;
    --btn-bg: #4C6FFF;
    --btn-bg-hover: #3B58E0;
    --btn-text: #FFFFFF;
    --radius: 14px;
  }

  .dark-scope{
    --bg: #000000;
    --surface: #0A0A0A;
    --surface-2: #141414;
    --border: #262626;
    --border-2: #333333;
    --text: #FFFFFF;
    --text-dim: #A3A3A3;
    --text-muted: #666666;
    --btn-bg: #4C6FFF;
    --btn-bg-hover: #6B87FF;
    --btn-text: #FFFFFF;
    background: var(--bg);
    color: var(--text);
  }
  .dark-scope ::selection{ background:#fff; color:#000; }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth; overflow-x:hidden;}
  body{
    background: var(--bg);
    color: var(--text);
    font-family: 'Manrope', sans-serif;
    line-height: 1.6;
    overflow-x: hidden;
  }
  h1,h2,h3,h4{ font-family:'Sora', sans-serif; font-weight:700; line-height:1.15; letter-spacing:-0.02em; }
  .mono{ font-family:'IBM Plex Mono', monospace; }
  a{ color:inherit; text-decoration:none; }
  img{max-width:100%;display:block;}
  .wrap{ max-width:1180px; margin:0 auto; padding:0 28px; }
  section{ padding: 120px 0; position:relative; }
  @media(max-width:768px){ section{ padding: 72px 0; } }

  ::selection{ background:#000; color:#fff; }

  .eyebrow{
    display:inline-flex; align-items:center; gap:9px;
    font-family:'IBM Plex Mono', monospace; font-size:12.5px; letter-spacing:0.14em;
    text-transform:uppercase; color: var(--text-dim); margin-bottom:18px; font-weight:500;
  }
  .eyebrow .node-dot{
    width:8px; height:8px; border:1.5px solid var(--text); position:relative; transform:rotate(45deg); border-radius:2px;
  }
  .eyebrow .node-dot::after{
    content:''; position:absolute; inset:2px; background:var(--text); border-radius:50%;
  }

  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding: 14px 26px; border-radius: 8px; font-weight:600; font-size:15px;
    cursor:pointer; border:1px solid transparent; transition: all .18s ease; white-space:nowrap;
  }
  .btn-primary{
    background: linear-gradient(135deg, #4C6FFF, #7C5CFF); color:var(--btn-text);
    box-shadow: 0 10px 22px -8px rgba(76,111,255,0.45);
  }
  .btn-primary:hover{
    background: linear-gradient(135deg, #3B58E0, #6B4AE0); transform: translateY(-1px);
    box-shadow: 0 12px 26px -8px rgba(76,111,255,0.55);
  }
  .btn-ghost{ background:transparent; color:var(--text); border-color: var(--border-2); }
  .btn-ghost:hover{ border-color: var(--text); background: var(--surface-2); }
  .btn:focus-visible{ outline:2px solid #4C6FFF; outline-offset:2px; }

  .price-cta{ display:flex; justify-content:center; margin-top:44px; }

  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    border-bottom:1px solid transparent;
    transition: all .25s ease;
  }
  header.scrolled, header.menu-open{
    background: rgba(0,0,0,0.85); backdrop-filter: blur(12px);
    border-bottom-color: var(--border);
  }
  nav{ display:flex; align-items:center; justify-content:space-between; padding:20px 0; }
  .logo{ display:flex; align-items:center; gap:11px; font-family:'Sora'; font-weight:700; font-size:17px; letter-spacing:0.02em; }
  .logo svg{ flex-shrink:0; }

  .logo img{ transform-origin:50% 50%; animation: logo-spin 7s cubic-bezier(.5,-0.2,.15,1.35) infinite; }
  @keyframes logo-spin{
    0%   { transform: rotate(0deg); }
    16%  { transform: rotate(360deg); }
    100% { transform: rotate(360deg); }
  }
  @media (prefers-reduced-motion: reduce){
    .logo img{ animation:none; }
  }
  .nav-links{ display:flex; align-items:center; gap:36px; }
  .nav-links a{ font-size:14.5px; color:var(--text-dim); font-weight:500; transition:color .15s; }
  .nav-links a:hover{ color:var(--text); }
  .nav-actions{ display:flex; align-items:center; gap:14px; }

  .burger{
    display:none; background:none; border:none; cursor:pointer;
    width:40px; height:40px; align-items:center; justify-content:center;
    padding:0; flex-shrink:0; border-radius:8px; transition: background .2s ease;
  }
  .burger:hover{ background: rgba(255,255,255,0.08); }
  .burger-box{ position:relative; width:20px; height:14px; }
  .burger-line{
    position:absolute; left:0; width:100%; height:2px; border-radius:2px;
    background: var(--text);
    transition: top .3s cubic-bezier(.4,0,.2,1), transform .3s cubic-bezier(.4,0,.2,1), opacity .2s ease;
  }
  .burger-line:nth-child(1){ top:0; }
  .burger-line:nth-child(2){ top:6px; }
  .burger-line:nth-child(3){ top:12px; }
  header.menu-open .burger-line:nth-child(1){ top:6px; transform: rotate(45deg); }
  header.menu-open .burger-line:nth-child(2){ opacity:0; transform: translateX(-6px); }
  header.menu-open .burger-line:nth-child(3){ top:6px; transform: rotate(-45deg); }

  .mobile-nav{ display:none; }
  .mobile-nav-inner{
    display:flex; flex-direction:column; gap:2px; overflow:hidden; min-height:0;
  }
  .mobile-nav-inner a{
    padding:14px 4px; font-size:15px; font-weight:500; color:var(--text-dim);
    border-top:1px solid var(--border);
    opacity:0; transform: translateY(-8px);
    transition: opacity .3s ease, transform .35s cubic-bezier(.2,.8,.2,1), color .15s;
  }
  .mobile-nav-inner a:hover{ color:var(--text); }
  header.menu-open .mobile-nav-inner a{ opacity:1; transform:none; }
  header.menu-open .mobile-nav-inner a:nth-child(1){ transition-delay:.08s; }
  header.menu-open .mobile-nav-inner a:nth-child(2){ transition-delay:.13s; }
  header.menu-open .mobile-nav-inner a:nth-child(3){ transition-delay:.18s; }
  header.menu-open .mobile-nav-inner a:nth-child(4){ transition-delay:.23s; }
  @media(max-width:860px){
    .nav-links{ display:none; }
    .nav-actions .btn-ghost{ display:none; }
    .burger{ display:flex; }
    .mobile-nav{
      display:grid; grid-template-rows:0fr;
      transition: grid-template-rows .4s cubic-bezier(.4,0,.2,1);
    }
    header.menu-open .mobile-nav{ grid-template-rows:1fr; }
  }

  @media(max-width:400px){
    header .wrap{ padding:0 18px; }
    .logo{ font-size:14.5px; gap:8px; }
    .logo img{ width:22px; height:22px; }
    .nav-actions{ gap:8px; }
    .nav-actions .btn-primary{ padding:11px 16px; font-size:13.5px; }
    .burger{ width:36px; height:36px; }
  }

  @media(max-width:300px){
    header .wrap{ padding:0 14px; }
    .logo{ font-size:13px; gap:6px; }
    .logo img{ width:20px; height:20px; }
    .nav-actions{ gap:6px; }
    .nav-actions .btn-primary{ padding:9px 13px; font-size:12.5px; }
    .burger{ width:32px; height:32px; }
  }

  .hero{ position:relative; padding: 200px 0 130px; z-index:1; overflow:hidden; }
  #node-gl{ position:absolute; inset:0; width:100%; height:100%; z-index:0; }
  .hero::after{
    content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
    background: radial-gradient(ellipse at center, transparent 40%, #000 92%);
  }
  .hero-inner{
    position:relative; z-index:1; max-width:1180px;
    display:flex; align-items:center; justify-content:space-between; gap:40px;
  }
  .hero-copy{ max-width:520px; min-width:0; flex-shrink:1; }
  .hero h1{ font-size: clamp(2.2rem, 4.6vw, 4.1rem); margin-bottom:26px; }
  .hero p.lead{ font-size:18.5px; color:var(--text-dim); max-width:560px; margin-bottom:38px; }
  .hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:56px; }

  .hero-sphere{
    position:relative; width:clamp(280px, 30vw, 420px); height:clamp(280px, 30vw, 420px);
    flex-shrink:0; overflow:visible;
    display:flex; align-items:center; justify-content:center;
  }
  #hero-sphere-canvas{ width:100%; height:100%; cursor:pointer; }
  .hero-word-stage{
    position:absolute; inset:0; z-index:2; overflow:visible; pointer-events:none;
    display:flex; align-items:center; justify-content:center;
  }

  .hero-word-stage::before{
    content:''; position:absolute; width:64%; height:64%; border-radius:50%;
    background: radial-gradient(circle, rgba(0,0,0,0.66) 0%, rgba(0,0,0,0.42) 52%, rgba(0,0,0,0) 76%);
    backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px);
    opacity:0; transition: opacity .6s ease;
  }
  .hero-word-stage.show::before{ opacity:1; }
  .hero-word-slot{
    position:relative; max-width:78%;
    font-family:'Sora', sans-serif; font-weight:600; font-size:clamp(14px,1.6vw,17px);
    letter-spacing:0.01em; color:#fff; white-space:nowrap; text-align:center;
    text-shadow: 0 2px 16px rgba(0,0,0,0.55);
    opacity:0; transform: translateY(7px);
    transition: opacity .55s cubic-bezier(.22,.9,.32,1), transform .55s cubic-bezier(.22,.9,.32,1);
  }
  .hero-word-slot.visible{ opacity:0.96; transform:translateY(0); }
  @media(max-width:860px){
    .hero-inner{ flex-direction:column; align-items:flex-start; }
    .hero-sphere{ display:none; }
  }

  .hero-copy > *{ opacity:0; transform: translateY(16px); }
  @media (prefers-reduced-motion: reduce){
    .hero-copy > *{ opacity:1; transform:none; }
  }
  .no-js .hero-copy > *{ opacity:1; transform:none; }

  .hero-inner{ will-change: opacity, transform; }

  .sec-head{ max-width:620px; margin-bottom:64px; position:relative; }
  .sec-head h2{ font-size: clamp(1.8rem, 3.4vw, 2.5rem); margin-bottom:16px; position:relative; z-index:1; }
  .sec-head p{ color:var(--text-dim); font-size:16.5px; position:relative; z-index:1; }

  #servicios{ position:relative; overflow:hidden; }
  #servicios::before{
    content:''; position:absolute; inset:0; pointer-events:none; opacity:0.5;
    background-image: radial-gradient(circle, #D4D4D4 1px, transparent 1px);
    background-size: 26px 26px;
    -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 0%, transparent 100%);
            mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 0%, transparent 100%);
  }
  #servicios .wrap{ position:relative; z-index:1; }

  #svc-big-sphere{
    --sphere-d: clamp(650px, 85vw, 1050px);
    position:absolute; z-index:0; pointer-events:none;
    width:var(--sphere-d); height:var(--sphere-d);
    bottom: calc(var(--sphere-d) * -0.6286); left:50%; transform:translateX(-50%);
  }
  @media(max-width:900px){
    #svc-big-sphere{
      display:block;
      --sphere-d: clamp(420px, 150vw, 620px);
      opacity:0.82;
      -webkit-mask-image: radial-gradient(closest-side, #000 58%, transparent 100%);
              mask-image: radial-gradient(closest-side, #000 58%, transparent 100%);
    }
  }

  .services-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
  @media(max-width:900px){ .services-grid{ grid-template-columns:1fr; } }
  .svc-card{
    --spot-x:50%; --spot-y:0%;
    background: var(--surface); border:1px solid rgba(76,111,255,0.45); border-radius: var(--radius);
    padding: 34px; transition: border-color .25s ease, transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease;
    position:relative; overflow:hidden;
    box-shadow: 0 16px 36px -22px rgba(76,111,255,0.30), 0 2px 0 rgba(0,0,0,0.02);
  }
  .svc-card:hover{
    border-color: rgba(76,111,255,0.7); transform: translateY(-5px);
    box-shadow: 0 22px 44px -22px rgba(76,111,255,0.45), 0 2px 0 rgba(0,0,0,0.02);
  }
  .svc-card::before{
    content:''; position:absolute; inset:0; opacity:0.55; transition:opacity .3s ease; pointer-events:none;
    background: radial-gradient(320px circle at var(--spot-x) var(--spot-y), rgba(76,111,255,0.10), transparent 65%);
  }
  .svc-card:hover::before{ opacity:1; }
  .svc-card::after{
    content:''; position:absolute; top:0; left:0; right:0; height:2px;
    background: linear-gradient(90deg, transparent, var(--btn-bg), transparent);
    transform: scaleX(1); transition: transform .35s cubic-bezier(.2,.7,.2,1); transform-origin:center;
  }
  .svc-card:hover::after{ transform: scaleX(1); }
  .svc-icon{
    width:48px; height:48px; border-radius:12px;
    background: linear-gradient(135deg, #4C6FFF, #7C5CFF); color:#fff; border:1px solid transparent;
    display:flex; align-items:center; justify-content:center;
    margin-bottom:22px; transition: all .3s cubic-bezier(.2,.7,.2,1); position:relative; z-index:1;
    box-shadow: 0 10px 22px -8px rgba(76,111,255,0.45);
  }
  .svc-card:hover .svc-icon{
    transform: translateY(-2px) rotate(-4deg);
    box-shadow: 0 10px 22px -8px rgba(76,111,255,0.55);
  }
  .svc-card h3{ font-size:19px; margin-bottom:11px; position:relative; z-index:1; }
  .svc-card p{ color:var(--text-dim); font-size:14.5px; margin-bottom:20px; position:relative; z-index:1; }
  .svc-list{ list-style:none; display:flex; flex-direction:column; gap:9px; position:relative; z-index:1; margin-bottom:24px; }
  .svc-list li{ font-size:13.5px; color:var(--text-dim); display:flex; align-items:center; gap:10px; transition: color .2s ease; }
  .svc-list li::before{
    content:''; width:14px; height:14px; flex-shrink:0; border-radius:50%;
    background: var(--surface-2); border:1px solid transparent;
    background-image: linear-gradient(135deg, #4C6FFF, #7C5CFF);
    background-size: 100% 100%; background-repeat:no-repeat; background-position:center;
    transition: all .25s ease; position:relative;
  }
  .svc-card:hover .svc-list li::before{ background-size:100% 100%; border-color:transparent; }
  .svc-card:hover .svc-list li{ color: var(--text-dim); }
  .svc-more{
    display:inline-flex; align-items:center; gap:7px; font-size:13.5px; font-weight:600; color: var(--btn-bg);
    position:relative; z-index:1; opacity:1; transform: none; transition: all .3s cubic-bezier(.2,.7,.2,1);
  }
  .svc-card:hover .svc-more{ opacity:1; transform:none; }
  .svc-more svg{ transition: transform .25s ease; }
  .svc-card:hover .svc-more svg{ transform: translate(3px,-3px); }

  .process{ background: var(--bg); border-top:1px solid var(--border); border-bottom:1px solid var(--border); position:relative; overflow:hidden; }
  #process-sphere{
    --sphere-d: clamp(650px, 85vw, 1050px);
    position:absolute; z-index:0; pointer-events:none;
    width:var(--sphere-d); height:var(--sphere-d);
    bottom: calc(var(--sphere-d) * -0.6286); left:50%; transform:translateX(-50%);
  }
  @media(max-width:900px){
    #process-sphere{
      display:block;
      --sphere-d: clamp(420px, 150vw, 620px);
      opacity:0.82;
      -webkit-mask-image: radial-gradient(closest-side, #000 58%, transparent 100%);
              mask-image: radial-gradient(closest-side, #000 58%, transparent 100%);
    }
  }
  .process .wrap{ position:relative; z-index:1; }
  .process-list{
    display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
    background: var(--border); border:1px solid var(--border); border-radius:16px; overflow:hidden;
  }
  .process-item{
    display:flex; flex-direction:column; gap:20px; padding: 32px 26px 34px;
    background: var(--bg); position:relative; transition: background .25s ease;
  }
  .process-item::before{
    content:''; position:absolute; top:0; left:0; width:100%; height:2px; background: var(--btn-bg);
    transition: width .35s cubic-bezier(.2,.7,.2,1);
  }
  .process-item:hover{ background: var(--surface-2); }
  .process-item:hover::before{ width:100%; }
  .process-top{ display:flex; align-items:center; justify-content:space-between; }
  .process-num{
    font-family:'IBM Plex Mono'; font-size:30px; font-weight:600; color: var(--btn-bg);
    transition: color .25s ease; line-height:1;
  }
  .process-item:hover .process-num{ color: var(--btn-bg); }
  .process-label{
    display:inline-block; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase;
    color: var(--btn-bg); font-weight:600; background: rgba(76,111,255,.1);
    padding:5px 11px; border-radius:20px; font-family:'DM Sans', sans-serif; white-space:nowrap;
  }
  .process-item h4{ font-size:17px; margin-bottom:6px; letter-spacing:-.01em; line-height:1.32; min-height:44px; }
  .process-item p{ color:var(--text-dim); font-size:13.8px; line-height:1.55; }
  @media (max-width: 900px){
    .process-list{ grid-template-columns:1fr 1fr; }
  }
  @media (max-width: 620px){
    .process-list{ grid-template-columns:1fr; }
  }

  .test-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
  @media(max-width:900px){ .test-grid{ grid-template-columns:1fr; } }
  .test-card{
    background: var(--surface); border:1px dashed var(--border-2); border-radius: var(--radius);
    padding: 30px; display:flex; flex-direction:column; gap:18px;
  }
  .test-card .stars{ display:flex; align-items:center; gap:3px; color:#F5B400; }
  .test-card p.quote{ font-size:15px; color:var(--text-dim); font-style:italic; }
  .test-person{ display:flex; align-items:center; gap:12px; margin-top:auto; }
  .test-avatar{ width:38px; height:38px; border-radius:50%; background:var(--surface-2); border:1px solid var(--border); }
  .test-name{ font-size:13.5px; font-weight:600; }
  .test-role{ font-size:12.5px; color:var(--text-muted); }
  .placeholder-note{
    margin-top:26px; font-family:'IBM Plex Mono'; font-size:12px; color:var(--text-muted);
    display:flex; align-items:center; gap:8px;
  }

  .price-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:stretch; }
  @media(max-width:900px){ .price-grid{ grid-template-columns:1fr; } }
  .price-card{
    background: var(--surface); border:1px solid rgba(76,111,255,0.22); border-radius: var(--radius);
    padding: 36px 32px; display:flex; flex-direction:column; position:relative; overflow:hidden;
    transition: border-color .25s ease, transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease;
    box-shadow: 0 14px 32px -26px rgba(76,111,255,0.28), 0 2px 0 rgba(0,0,0,0.02);
  }
  .price-card::after{
    content:''; position:absolute; top:0; left:0; right:0; height:2px; transform-origin:center;
    background: linear-gradient(90deg, transparent, var(--btn-bg), transparent);
    transform: scaleX(0); transition: transform .35s cubic-bezier(.2,.7,.2,1);
  }
  .price-card:hover{
    border-color: rgba(76,111,255,0.55); transform: translateY(-5px);
    box-shadow: 0 22px 44px -22px rgba(76,111,255,0.4), 0 2px 0 rgba(0,0,0,0.02);
  }
  .price-card:hover::after{ transform: scaleX(1); }
  .price-card.featured{
    border-color: rgba(76,111,255,0.55); background: var(--surface);
    box-shadow: 0 26px 52px -24px rgba(76,111,255,0.45), 0 2px 0 rgba(0,0,0,0.02);
  }
  .price-card.featured::after{ transform: scaleX(1); }
  .price-card.featured:hover{ transform: translateY(-5px); }
  .price-icon{
    width:48px; height:48px; border-radius:12px;
    background: linear-gradient(135deg, #4C6FFF, #7C5CFF); color:#fff; border:1px solid transparent;
    display:flex; align-items:center; justify-content:center;
    margin-bottom:20px; box-shadow: 0 10px 22px -8px rgba(76,111,255,0.45);
    transition: transform .3s cubic-bezier(.2,.7,.2,1);
  }
  .price-card:hover .price-icon{ transform: translateY(-2px) rotate(-4deg); }
  .price-badge{
    display:inline-block; font-family:'IBM Plex Mono'; font-size:10.5px; color: var(--btn-bg);
    text-transform:uppercase; letter-spacing:0.09em; font-weight:600; margin-bottom:12px;
    background: rgba(76,111,255,.1); padding:5px 11px; border-radius:20px;
  }
  .price-card h3{ font-size:20px; margin-bottom:10px; }
  .price-card > p{ color:var(--text-dim); font-size:14px; margin-bottom:24px; min-height:42px; }
  .price-list{ list-style:none; display:flex; flex-direction:column; gap:12px; margin-bottom:28px; flex-grow:1; }
  .price-list li{ font-size:14px; color:var(--text-dim); display:flex; align-items:start; gap:10px; }
  .price-list li svg{ flex-shrink:0; margin-top:3px; color: var(--btn-bg); }
  .price-card .btn{ width:100%; }

  .faq-list{ display:flex; flex-direction:column; gap:12px; }
  .faq-item{
    background: var(--surface); border:1px solid var(--border); border-radius: 14px;
    transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
  }
  .faq-item:hover{ border-color: rgba(76,111,255,0.35); }
  .faq-item.open{
    border-color: rgba(76,111,255,0.55);
    box-shadow: 0 16px 36px -26px rgba(76,111,255,0.4), 0 2px 0 rgba(0,0,0,0.02);
  }
  .faq-q{
    width:100%; background:none; border:none; color:var(--text); text-align:left;
    padding: 22px 22px; font-family:'Sora'; font-size:16.5px; font-weight:600;
    display:flex; align-items:center; cursor:pointer; gap:18px;
  }
  .faq-q .q-text{ flex-grow:1; }
  .faq-q .icon{
    flex-shrink:0; width:32px; height:32px; border-radius:9px;
    display:flex; align-items:center; justify-content:center;
    background: var(--surface-2); color:var(--text-dim);
    transition: all .25s cubic-bezier(.2,.7,.2,1);
  }
  .faq-item.open .faq-q .icon{
    background: linear-gradient(135deg, #4C6FFF, #7C5CFF); color:#fff; transform: rotate(45deg);
    box-shadow: 0 8px 18px -8px rgba(76,111,255,0.5);
  }
  .faq-a{ max-height:0; overflow:hidden; transition: max-height .3s ease; }
  .faq-item.open .faq-a{ max-height: 260px; }
  .faq-a p{ padding: 0 22px 24px 22px; color:var(--text-dim); font-size:14.5px; max-width:640px; }

  .contact-grid{ display:grid; grid-template-columns: 0.9fr 1.1fr; gap:60px; }
  @media(max-width:900px){ .contact-grid{ grid-template-columns:1fr; gap:44px; } }
  .contact-info h2{ font-size: clamp(1.7rem,3vw,2.2rem); margin-bottom:18px; }
  .contact-info p{ color:var(--text-dim); margin-bottom:32px; font-size:15.5px; }
  .contact-detail{ display:flex; align-items:center; gap:12px; margin-bottom:16px; font-size:14.5px; color:var(--text-dim); overflow-wrap:anywhere; }
  .contact-detail svg{ color:var(--text); flex-shrink:0; }
  .contact-detail img{ flex-shrink:0; object-fit:contain; border-radius:3px; }
  a.contact-detail{ transition: color .2s ease; }
  a.contact-detail:hover{ color:var(--text); }
  a.contact-detail:hover svg{ color:var(--btn-bg); }

  .wa-fab{
    position:fixed; right:24px; bottom:24px; z-index:40;
    width:58px; height:58px; border-radius:18px;
    background:#ffffff; padding:5px;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 14px 30px -10px rgba(0,0,0,0.45), 0 0 0 1px rgba(0,0,0,0.06);
    transition: transform .25s cubic-bezier(.2,.7,.2,1), box-shadow .25s ease;
  }
  .wa-fab img{ width:100%; height:100%; display:block; border-radius:14px; }
  .wa-fab:hover{ transform: translateY(-3px) scale(1.05); box-shadow:0 18px 38px -10px rgba(0,0,0,0.55), 0 0 0 1px rgba(0,0,0,0.06); }

  .wa-fab::after{
    content:''; position:absolute; inset:0; border-radius:inherit;
    animation: wa-pulse 9s ease-out infinite; pointer-events:none;
  }
  @keyframes wa-pulse{
    0%   { box-shadow: 0 0 0 0 rgba(76,111,255,0.45); }
    8%   { box-shadow: 0 0 0 16px rgba(76,111,255,0); }
    100% { box-shadow: 0 0 0 16px rgba(76,111,255,0); }
  }
  @media (prefers-reduced-motion: reduce){
    .wa-fab::after{ animation:none; }
  }
  @media(max-width:600px){
    .wa-fab{ right:16px; bottom:16px; width:52px; height:52px; }
  }
  form{ background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:32px; }
  .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
  @media(max-width:520px){ .form-row{ grid-template-columns:1fr; } }
  .field{ display:flex; flex-direction:column; gap:7px; margin-bottom:16px; }
  .field label{ font-size:13px; color:var(--text-dim); font-weight:600; }
  .field input, .field textarea{
    background: #fff; border:1px solid var(--border-2); border-radius:8px; padding:12px 14px;
    color:var(--text); font-family:'Manrope'; font-size:14.5px; resize:vertical;
  }
  .field input:focus, .field textarea:focus{ outline:none; border-color:var(--text); }
  .consent{ display:flex; align-items:start; gap:10px; margin-bottom:22px; }
  .consent input{ margin-top:3px; accent-color: #000; }
  .consent label{ font-size:12.5px; color:var(--text-muted); line-height:1.5; }
  form .btn-primary{ width:100%; }
  .form-note{ font-size:12px; color:var(--text-muted); margin-top:14px; text-align:center; }
  .form-note-ok{ color:#3ecf7e; }
  .form-note-error{ color:#ff6767; }

  footer{ border-top:1px solid var(--border); padding:56px 0 32px; }
  .footer-grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap:40px; margin-bottom:48px; }
  @media(max-width:768px){ .footer-grid{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }
  @media(max-width:560px){ .footer-grid{ grid-template-columns:minmax(0,1fr); gap:32px; } }
  .footer-brand p{ color:var(--text-muted); font-size:13.5px; margin-top:14px; max-width:260px; }

  .footer-qr{
    display:flex; align-items:center; gap:14px; margin-top:22px;
    background:#ffffff; border-radius:12px; padding:10px 16px 10px 10px;
    width:fit-content; transition: transform .2s ease, box-shadow .2s ease;
    box-shadow:0 10px 24px -12px rgba(0,0,0,0.5);
  }
  .footer-qr:hover{ transform:translateY(-2px); box-shadow:0 14px 30px -12px rgba(0,0,0,0.6); }
  .footer-qr img{ border-radius:6px; flex-shrink:0; }
  .footer-qr span{ font-size:12px; line-height:1.4; color:#171717; font-weight:600; }
  .footer-col h5{ font-family:'IBM Plex Mono'; font-size:11.5px; text-transform:uppercase; letter-spacing:0.1em; color:var(--text-muted); margin-bottom:16px; }
  .footer-col a{ display:block; font-size:14px; color:var(--text-dim); margin-bottom:11px; transition:color .15s; overflow-wrap:anywhere; }
  .footer-col a:hover{ color:var(--text); }
  .footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:28px; border-top:1px solid var(--border); flex-wrap:wrap; gap:12px; }
  .footer-bottom p{ font-size:12.5px; color:var(--text-muted); }

  .reveal{ opacity:0; transform: translateY(18px); transition: all .6s cubic-bezier(.2,.7,.2,1); }
  .reveal.in{ opacity:1; transform:none; }

