  :root{
    --ink:#0e1a15; --ink-2:#1b2b24; --paper:#fbfaf6; --paper-2:#f1efe8;
    --brand:#14774f; --brand-bright:#25b383; --muted:#55645d; --hairline:#d9ddd5;
    --max:1120px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0; background:var(--paper); color:var(--ink); font-family:'IBM Plex Sans', system-ui, sans-serif; line-height:1.6; font-size:16px;}
  a{color:inherit;}
  .wrap{max-width:var(--max); margin:0 auto; padding:0 24px;}
  .skip{position:absolute; left:-999px; top:8px; background:var(--ink); color:#fff; padding:8px 12px; z-index:50;}
  .skip:focus{left:8px;}
  :focus-visible{outline:2px solid var(--brand-bright); outline-offset:3px;}

  /* Header */
  header.site{background:var(--paper); border-bottom:1px solid var(--hairline); position:sticky; top:0; z-index:20;}
  .nav{display:flex; align-items:center; justify-content:space-between; height:68px;}
  .nav img{height:34px; display:block;}
  .nav ul{display:flex; gap:26px; list-style:none; margin:0; padding:0; font-size:14.5px;}
  .nav a{text-decoration:none; color:var(--ink-2);}
  .nav a:hover{color:var(--brand);}
  .btn{display:inline-block; padding:12px 22px; font-weight:600; font-size:14.5px; text-decoration:none; border:1.5px solid var(--brand); background:var(--brand); color:#fff; border-radius:3px; transition:background .15s, color .15s;}
  .btn:hover{background:#0f6040; border-color:#0f6040;}
  .btn.ghost{background:transparent; color:#fff; border-color:rgba(255,255,255,.5);}
  .btn.ghost:hover{background:rgba(255,255,255,.1);}
  .btn.dark{background:var(--ink); border-color:var(--ink);}
  @media (max-width:760px){ .nav ul{gap:14px; font-size:13px;} .nav .btn{display:none;} }

  /* Hero */
  .hero{background:var(--ink); color:#eef4f0; position:relative; overflow:hidden;}
  .hero .wrap{display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:center; padding-top:84px; padding-bottom:84px;}
  @media (max-width:900px){ .hero .wrap{grid-template-columns:1fr; padding-top:56px; padding-bottom:56px;} .hero-art{display:none;} }
  .hero h1{font-family:'Fraunces', serif; font-weight:600; font-size:clamp(34px, 5.2vw, 56px); line-height:1.08; margin:0 0 20px; letter-spacing:-.01em;}
  .hero h1 em{font-style:normal; color:var(--brand-bright);}
  .hero p.lead{font-size:18px; color:#b9c8bf; max-width:540px; margin:0 0 30px;}
  .cta-row{display:flex; gap:12px; flex-wrap:wrap;}
  .facts{display:flex; gap:28px; flex-wrap:wrap; margin-top:44px; padding-top:22px; border-top:1px solid rgba(255,255,255,.14); font-size:13.5px; color:#9db1a6;}
  .facts b{display:block; color:#eef4f0; font-weight:500; font-size:14.5px;}
  .hero-art svg{width:100%; height:auto; display:block;}
  .trace{stroke:var(--brand-bright); stroke-width:1.6; fill:none; stroke-linecap:round; opacity:.35;}
  .pulse{stroke:var(--brand-bright); stroke-width:2.2; fill:none; stroke-linecap:round; stroke-dasharray:2 14; animation:run 2.2s linear infinite;}
  .pulse.b{animation-duration:3s; animation-direction:reverse;}
  @keyframes run{to{stroke-dashoffset:-32;}}
  .nodo{fill:var(--ink); stroke:var(--brand-bright); stroke-width:1.6;}
  @media (prefers-reduced-motion: reduce){ .pulse{animation:none;} html{scroll-behavior:auto;} }

  /* Secciones */
  section{padding:84px 0;}
  .kicker{font-size:13.5px; color:var(--brand); font-weight:600; margin:0 0 10px;}
  h2{font-family:'Fraunces', serif; font-weight:600; font-size:clamp(28px, 3.6vw, 38px); line-height:1.15; margin:0 0 14px; letter-spacing:-.005em;}
  .sub{color:var(--muted); max-width:620px; margin:0 0 44px; font-size:17px;}

  /* Servicios: lista con filas, no tarjetas */
  .svc{display:grid; grid-template-columns:1fr 1fr; column-gap:56px; border-top:1px solid var(--ink);}
  @media (max-width:760px){ .svc{grid-template-columns:1fr;} }
  .svc article{padding:22px 0; border-bottom:1px solid var(--hairline);}
  .svc h3{margin:0 0 6px; font-size:18px; font-weight:600;}
  .svc p{margin:0; color:var(--muted); font-size:15.5px;}

  /* Valores */
  .values{background:var(--paper-2);}
  .vals{display:grid; grid-template-columns:repeat(3,1fr); gap:40px;}
  @media (max-width:760px){ .vals{grid-template-columns:1fr; gap:24px;} }
  .vals h3{font-family:'Fraunces', serif; font-weight:600; font-size:22px; margin:0 0 8px;}
  .vals p{margin:0; color:var(--muted);}

  /* Planes */
  .plans{display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:1px solid var(--ink);}
  @media (max-width:860px){ .plans{grid-template-columns:1fr;} }
  .plan{padding:30px 28px; border-right:1px solid var(--hairline); display:flex; flex-direction:column;}
  .plan:last-child{border-right:none;}
  @media (max-width:860px){ .plan{border-right:none; border-bottom:1px solid var(--hairline);} }
  .plan.destacado{background:var(--ink); color:#eef4f0;}
  .plan.destacado .btn{background:var(--brand-bright); border-color:var(--brand-bright); color:var(--ink);}
  .plan h3{font-family:'Fraunces', serif; font-weight:600; font-size:23px; margin:0 0 6px;}
  .plan .para{font-size:14.5px; color:var(--muted); margin:0 0 18px;}
  .plan.destacado .para{color:#9db1a6;}
  .plan ul{list-style:none; padding:0; margin:0 0 26px; flex:1; font-size:15px;}
  .plan li{padding:8px 0; border-top:1px solid var(--hairline);}
  .plan.destacado li{border-color:rgba(255,255,255,.14);}

  /* FAQ */
  .faq details{border-top:1px solid var(--hairline); padding:18px 0;}
  .faq details:last-child{border-bottom:1px solid var(--hairline);}
  .faq summary{cursor:pointer; font-weight:600; font-size:17px; list-style:none; display:flex; justify-content:space-between; gap:16px;}
  .faq summary::-webkit-details-marker{display:none;}
  .faq summary::after{content:"+"; color:var(--brand); font-size:22px; line-height:1;}
  .faq details[open] summary::after{content:"–";}
  .faq p{margin:12px 0 0; color:var(--muted); max-width:720px;}

  /* CTA final */
  .cta-band{background:var(--brand); color:#fff; text-align:left;}
  .cta-band .wrap{display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap;}
  .cta-band h2{margin:0 0 6px; color:#fff;}
  .cta-band p{margin:0; opacity:.9;}
  .cta-band .btn{background:#fff; color:var(--brand); border-color:#fff;}
  .cta-band .btn:hover{background:var(--paper-2);}

  /* Footer */
  footer.site{background:var(--ink); color:#aebdb4; padding:54px 0 30px; font-size:14.5px;}
  .foot{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:36px;}
  @media (max-width:760px){ .foot{grid-template-columns:1fr;} }
  footer.site h3{color:#eef4f0; font-size:14px; font-weight:600; margin:0 0 12px;}
  footer.site ul{list-style:none; padding:0; margin:0;}
  footer.site li{margin-bottom:7px;}
  footer.site a{text-decoration:none;}
  footer.site a:hover{color:#fff; text-decoration:underline;}
  .legal{margin-top:36px; padding-top:18px; border-top:1px solid rgba(255,255,255,.12); font-size:13px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;}

  /* WhatsApp flotante */
  .wa{position:fixed; right:18px; bottom:18px; z-index:30; width:54px; height:54px; border-radius:50%; background:#25d366; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 18px rgba(0,0,0,.3);}
  .wa svg{width:28px; height:28px; fill:#fff;}

  /* Páginas interiores */
  .nav a[aria-current="page"]{color:var(--brand); font-weight:600;}
  .page-hero{background:var(--ink); color:#eef4f0;}
  .page-hero .wrap{padding-top:64px; padding-bottom:56px;}
  .page-hero h1{font-family:'Fraunces', serif; font-weight:600; font-size:clamp(32px,4.6vw,48px); line-height:1.1; margin:0 0 14px; letter-spacing:-.01em;}
  .page-hero p{margin:0; color:#b9c8bf; font-size:18px; max-width:620px;}
  .two{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;}
  @media (max-width:860px){ .two{grid-template-columns:1fr; gap:32px;} }
  .quote{font-family:'Fraunces', serif; font-weight:500; font-size:clamp(22px,2.8vw,30px); line-height:1.3; border-left:3px solid var(--brand); padding-left:22px; margin:0;}
  .prose p{margin:0 0 16px; color:var(--muted); font-size:17px;}
  .svc-detail{border-top:1px solid var(--ink);}
  .svc-row{display:grid; grid-template-columns:260px 1fr; gap:36px; padding:30px 0; border-bottom:1px solid var(--hairline);}
  @media (max-width:760px){ .svc-row{grid-template-columns:1fr; gap:10px;} }
  .svc-row h2{font-size:24px; margin:0;}
  .svc-row p{margin:0 0 12px; color:var(--muted);}
  .svc-row ul{margin:0; padding-left:18px; color:var(--ink-2); font-size:15.5px;}
  .svc-row li{margin-bottom:4px;}
  .info-list{list-style:none; padding:0; margin:0;}
  .info-list li{padding:16px 0; border-top:1px solid var(--hairline);}
  .info-list li:last-child{border-bottom:1px solid var(--hairline);}
  .info-list small{display:block; color:var(--muted); font-size:13px; margin-bottom:2px;}
  .info-list a{font-weight:500; text-decoration:none; color:var(--brand);}
  .info-list a:hover{text-decoration:underline;}
  form.contacto label{display:block; font-size:13.5px; font-weight:500; margin:0 0 5px;}
  form.contacto input, form.contacto textarea{width:100%; padding:11px 12px; border:1px solid var(--hairline); background:#fff; font:inherit; border-radius:3px; margin-bottom:16px;}
  form.contacto input:focus, form.contacto textarea:focus{outline:none; border-color:var(--brand); box-shadow:0 0 0 3px rgba(20,119,79,.15);}
  form.contacto textarea{min-height:120px; resize:vertical;}
  form.contacto button{cursor:pointer; font-family:inherit;}
  .nota{font-size:13px; color:var(--muted); margin:12px 0 0;}

  /* SepHub */
  .sephub{background:#07203a; color:#e8f1f8;}
  .sephub .wrap{display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:center; padding-top:80px; padding-bottom:80px;}
  @media (max-width:860px){ .sephub .wrap{grid-template-columns:1fr; gap:32px; padding-top:56px; padding-bottom:56px;} }
  .sephub img{width:100%; height:auto; display:block; border-radius:4px;}
  .sephub .kicker{color:#3fe0b0;}
  .sephub h2{color:#fff;}
  .sephub p.lead{color:#a9c1d4; font-size:17px; margin:0 0 26px; max-width:560px;}
  .mods{display:grid; grid-template-columns:1fr 1fr; gap:0 32px; list-style:none; padding:0; margin:0 0 30px;}
  @media (max-width:560px){ .mods{grid-template-columns:1fr;} }
  .mods li{padding:12px 0; border-top:1px solid rgba(255,255,255,.14); font-size:14.5px; color:#a9c1d4;}
  .mods b{display:block; color:#fff; font-weight:600; font-size:15.5px; margin-bottom:2px;}
  .btn.hub{background:#3fe0b0; border-color:#3fe0b0; color:#07203a;}
  .btn.hub:hover{background:#2cc99a; border-color:#2cc99a;}
