

  :root{
    --ink:#16233D;
    --ink-soft:#26344F;
    --stone:#EDE7D9;
    --paper:#FAF7F0;
    --wine:#6B2334;
    --wine-bright:#832B40;
    --brass:#A88347;
    --charcoal:#2A2A28;
    --line:rgba(22,35,61,0.14);
    --stone-line:rgba(250,247,240,0.16);
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--paper);
    color:var(--charcoal);
    font-family:'Inter', sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{
    font-family:'Fraunces', serif;
    color:var(--ink);
    font-weight:600;
    letter-spacing:-0.01em;
  }
  .eyebrow{
    font-family:'JetBrains Mono', monospace;
    font-size:12.5px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--brass);
    display:flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:22px;
    height:1px;
    background:var(--brass);
    display:inline-block;
  }
  a{color:inherit;}
  img{max-width:100%; display:block;}
  .wrap{
    max-width:1120px;
    margin:0 auto;
    padding:0 32px;
  }
  @media (max-width:640px){ .wrap{padding:0 22px;} }

  /* NAV */
  nav{
    position:sticky; top:0; z-index:40;
    background:rgba(250,247,240,0.88);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  nav .wrap{
    display:flex; align-items:center; justify-content:space-between;
    height:74px;
  }
  .brand{
    font-family:'Fraunces', serif;
    font-weight:600;
    font-size:19px;
    color:var(--ink);
    letter-spacing:-0.01em;
    display:flex; align-items:baseline; gap:8px;
  }
  .brand small{
    font-family:'JetBrains Mono', monospace;
    font-size:10px;
    color:var(--wine);
    letter-spacing:0.1em;
    font-weight:500;
  }
  nav ul{list-style:none; display:flex; gap:34px;}
  nav ul a{
    font-size:14px; font-weight:500; color:var(--ink-soft);
    text-decoration:none;
    transition:color .2s ease;
  }
  nav ul a:hover{color:var(--wine);}
  .nav-links{display:flex; align-items:center;}
  @media (max-width:800px){ nav ul{display:none;} }
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    font-family:'Inter', sans-serif;
    font-weight:600;
    font-size:14.5px;
    padding:13px 24px;
    border-radius:2px;
    text-decoration:none;
    cursor:pointer;
    border:1px solid transparent;
    transition:transform .18s ease, background .2s ease, border-color .2s ease, color .2s ease;
  }
  .btn:hover{ transform:translateY(-1px); }
  .btn-wine{ background:var(--wine); color:var(--paper); }
  .btn-wine:hover{ background:var(--wine-bright); }
  .btn-ghost-dark{ border-color:var(--stone-line); color:var(--paper); }
  .btn-ghost-dark:hover{ border-color:var(--paper); background:rgba(250,247,240,0.06); }
  .btn-outline{ border-color:var(--ink); color:var(--ink); }
  .btn-outline:hover{ background:var(--ink); color:var(--paper); }
  .btn-sm{ padding:11px 20px; font-size:13.5px; }

  /* HERO */
  .hero{
    background:linear-gradient(180deg, var(--ink) 0%, #101B30 100%);
    color:var(--paper);
    position:relative;
    overflow:hidden;
    padding:96px 0 70px;
  }
  .hero::before{
    content:"";
    position:absolute; inset:0;
    background-image:
      radial-gradient(circle at 85% 12%, rgba(168,131,71,0.14), transparent 45%),
      radial-gradient(circle at 8% 85%, rgba(107,35,52,0.18), transparent 40%);
    pointer-events:none;
  }
  .hero-grid{
    position:relative; z-index:2;
    display:grid;
    grid-template-columns:1.15fr 0.85fr;
    gap:56px;
    align-items:center;
  }
  @media (max-width:900px){ .hero-grid{grid-template-columns:1fr; gap:52px;} }
  .hero h1{
    font-size:clamp(34px, 4.6vw, 53px);
    line-height:1.11;
    color:var(--paper);
    margin:20px 0 22px;
    max-width:15ch;
  }
  .hero h1 em{
    font-style:italic;
    font-weight:500;
    color:#D9C9A3;
  }
  .hero p.lede{
    font-size:17.5px;
    color:#C9D0DE;
    max-width:46ch;
    margin-bottom:34px;
  }
  .hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:30px; }
  .trust-line{
    display:flex; gap:10px; align-items:flex-start;
    font-size:13px; color:#9AA6BC;
    max-width:44ch;
    padding-top:22px;
    border-top:1px solid var(--stone-line);
  }
  .trust-line svg{ flex-shrink:0; margin-top:2px; }

  /* LINEAGE SIGNATURE ELEMENT */
  .lineage{
    position:relative;
    padding:10px 0 10px 8px;
  }
  .lineage-line{
    position:absolute; left:15px; top:8px; bottom:8px; width:1px;
    background:var(--stone-line);
  }
  .lineage-line-draw{
    position:absolute; left:15px; top:8px; width:1px; height:0%;
    background:linear-gradient(180deg, var(--brass), var(--wine));
    animation:draw 2.1s ease forwards .3s;
  }
  @keyframes draw{ to{ height:100%; } }
  .gen{
    position:relative;
    display:flex; align-items:center; gap:18px;
    padding:16px 0;
    opacity:0;
    animation:rise .6s ease forwards;
  }
  .gen:nth-child(2){ animation-delay:.5s; }
  .gen:nth-child(3){ animation-delay:.9s; }
  .gen:nth-child(4){ animation-delay:1.3s; }
  .gen:nth-child(5){ animation-delay:1.7s; }
  @keyframes rise{ from{opacity:0; transform:translateX(-8px);} to{opacity:1; transform:translateX(0);} }
  .gen-node{
    width:31px; height:31px; border-radius:50%;
    background:var(--ink);
    border:1px solid var(--brass);
    flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    font-family:'JetBrains Mono', monospace;
    font-size:10px; color:var(--brass);
    position:relative; z-index:2;
  }
  .gen:last-child .gen-node{
    background:var(--wine); border-color:var(--wine-bright); color:var(--paper);
  }
  .gen-text .role{
    font-family:'JetBrains Mono', monospace;
    font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase;
    color:#8A93A8;
  }
  .gen-text .place{ font-size:14.5px; color:#E4E1D6; margin-top:2px; }

  /* SECTIONS GENERIC */
  section{ padding:88px 0; }
  @media (max-width:640px){ section{ padding:64px 0; } }
  .sec-head{ max-width:640px; margin-bottom:52px; }
  .sec-head h2{ font-size:clamp(26px,3.2vw,36px); margin-top:16px; line-height:1.2; }
  .sec-head p{ color:#565048; font-size:16px; margin-top:14px; max-width:56ch; }

  .reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
  .reveal.in{ opacity:1; transform:translateY(0); }

  /* QUIENES */
  .who-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  @media (max-width:800px){ .who-grid{ grid-template-columns:1fr; } }
  .who-card{
    background:var(--paper);
    padding:34px 30px;
  }
  .who-card .num{
    font-family:'JetBrains Mono', monospace;
    font-size:12px; color:var(--brass); letter-spacing:0.08em;
  }
  .who-card h3{ font-size:20px; margin:14px 0 10px; font-weight:600; }
  .who-card p{ font-size:14.5px; color:#5A554C; }

  /* PROCESO */
  .proceso{ background:var(--stone); }
  .steps{ counter-reset:step; }
  .step{
    display:grid; grid-template-columns:64px 1fr; gap:26px;
    padding:28px 0;
    border-top:1px solid var(--line);
  }
  .step:last-child{ border-bottom:1px solid var(--line); }
  .step-num{
    font-family:'Fraunces', serif; font-style:italic; font-weight:500;
    font-size:30px; color:var(--brass); line-height:1;
  }
  .step h3{ font-size:18.5px; margin-bottom:6px; }
  .step p{ font-size:14.5px; color:#5A554C; max-width:60ch; }
  .step .tag{
    display:inline-block; margin-top:10px;
    font-family:'JetBrains Mono', monospace; font-size:10.5px;
    letter-spacing:0.06em; text-transform:uppercase;
    color:var(--wine); background:rgba(107,35,52,0.08);
    padding:4px 9px; border-radius:2px;
  }

  /* TRANSPARENCIA */
  .transparencia{
    background:var(--ink);
    color:var(--paper);
    position:relative;
  }
  .transparencia .sec-head p{ color:#B7C0D3; }
  .transparencia .eyebrow{ color:var(--brass); }
  .transparencia .sec-head h2{ color:var(--paper); }
  .tgrid{
    display:grid; grid-template-columns:1fr 1fr; gap:60px;
    align-items:start;
  }
  @media (max-width:800px){ .tgrid{ grid-template-columns:1fr; gap:36px; } }
  .tgrid p{ color:#C6CCDB; font-size:15.5px; margin-bottom:16px; }
  .status-card{
    border:1px solid var(--stone-line);
    padding:26px 26px 24px;
  }
  .status-card .status-row{
    display:flex; justify-content:space-between; align-items:center;
    padding:13px 0;
    border-bottom:1px solid var(--stone-line);
    font-size:14px;
  }
  .status-row:last-child{ border-bottom:none; }
  .status-row .court{ color:#DCE1EB; }
  .status-row .state{
    font-family:'JetBrains Mono', monospace; font-size:11px;
    letter-spacing:0.05em; text-transform:uppercase;
    padding:4px 9px; border-radius:2px;
  }
  .state.pend{ background:rgba(168,131,71,0.16); color:#D9C08B; }
  .state.resolved{ background:rgba(143,163,122,0.16); color:#B7C99C; }
  .status-row .date{
    font-family:'JetBrains Mono', monospace; font-size:10.5px; color:#6B7488;
    display:block; margin-top:3px;
  }
  .status-row{ align-items:flex-start; flex-direction:column; gap:6px; }
  .status-row .row-top{ display:flex; justify-content:space-between; align-items:center; width:100%; }
  .key-date{
    margin-top:22px; padding:18px 20px;
    border:1px solid var(--stone-line);
    background:rgba(168,131,71,0.06);
  }
  .key-date .eyebrow{ font-size:10.5px; margin-bottom:8px; }
  .key-date p{ font-size:13.5px; color:#C6CCDB; margin-bottom:0; }

  /* ARTICULOS — TRES PUERTAS */
  .articulos{ background:var(--paper); }
  .doors-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
    background:var(--line); border:1px solid var(--line);
  }
  @media (max-width:900px){ .doors-grid{ grid-template-columns:1fr; } }
  .door{ background:var(--paper); padding:32px 28px 28px; display:flex; flex-direction:column; }
  .door-icon{
    width:38px; height:38px; border:1px solid var(--brass); border-radius:50%;
    display:flex; align-items:center; justify-content:center; margin-bottom:18px;
    color:var(--brass); font-family:'JetBrains Mono',monospace; font-size:13px;
  }
  .door h3{ font-size:18px; margin-bottom:8px; letter-spacing:-0.005em; }
  .door .door-desc{ font-size:13.5px; color:#5A554C; margin-bottom:22px; }
  .article-list{ list-style:none; flex-grow:1; }
  .article-preview{
    display:block; padding:14px 0; border-top:1px solid var(--line);
    text-decoration:none; color:inherit;
  }
  .article-preview:first-child{ border-top:none; }
  .article-preview .a-title{
    font-family:'Fraunces', serif; font-weight:500; font-size:15px;
    color:var(--ink); line-height:1.35; margin-bottom:6px;
    transition:color .18s ease;
  }
  .article-preview:hover .a-title{ color:var(--wine); }
  .article-preview .a-meta{
    font-family:'JetBrains Mono', monospace; font-size:10.5px;
    letter-spacing:0.04em; text-transform:uppercase; color:#8A8570;
  }
  .door-link{
    margin-top:20px; font-size:13px; font-weight:600; color:var(--wine);
    text-decoration:none; display:inline-flex; align-items:center; gap:6px;
  }
  .door-link:hover{ gap:9px; }
  .door-stat{
    display:inline-flex; align-items:baseline; gap:6px;
    font-family:'JetBrains Mono', monospace; font-size:11px;
    letter-spacing:0.04em; color:var(--wine);
    background:rgba(107,35,52,0.07);
    border:1px solid rgba(107,35,52,0.18);
    padding:6px 10px; margin-bottom:20px; width:fit-content;
  }
  .door-stat b{ font-size:13px; }
  .status-note{
    font-size:12.5px; color:#8A93A8; margin-top:16px; line-height:1.55;
  }

  /* CHECKLIST / LEAD MAGNET */
  .checklist{
    background:var(--wine);
    color:var(--paper);
    border-radius:2px;
    padding:52px;
    display:grid; grid-template-columns:1.3fr 1fr; gap:40px; align-items:center;
  }
  @media (max-width:800px){ .checklist{ grid-template-columns:1fr; padding:38px 28px; } }
  .checklist .eyebrow{ color:#E3B9A5; }
  .checklist .eyebrow::before{ background:#E3B9A5; }
  .checklist h2{ color:var(--paper); font-size:clamp(24px,3vw,30px); margin:14px 0 14px; }
  .checklist p{ color:#EAD5CC; font-size:15px; max-width:48ch; }
  .checklist-doc-list{ list-style:none; font-size:14px; color:#F3E4DE; }
  .checklist-doc-list li{
    padding:9px 0; border-bottom:1px solid rgba(250,247,240,0.18);
    display:flex; gap:10px;
  }
  .checklist-doc-list li:last-child{ border-bottom:none; }
  .checklist-form{ margin-top:22px; display:flex; gap:10px; flex-wrap:wrap; }
  .checklist-form input{
    flex:1; min-width:200px;
    background:rgba(250,247,240,0.1);
    border:1px solid rgba(250,247,240,0.32);
    color:var(--paper);
    padding:13px 16px; font-size:14px; border-radius:2px;
    font-family:'Inter',sans-serif;
  }
  .checklist-form input::placeholder{ color:#E6CFC7; }
  .checklist-note{
    font-size:13px; color:#8A8570; max-width:640px;
    margin:18px auto 0; text-align:center;
  }

  /* FAQ */
  .faq-item{
    border-top:1px solid var(--line);
    padding:24px 0;
  }
  .faq-item:last-child{ border-bottom:1px solid var(--line); }
  .faq-q{
    display:flex; justify-content:space-between; align-items:center;
    cursor:pointer; font-family:'Fraunces', serif; font-weight:500;
    font-size:17.5px; color:var(--ink);
  }
  .faq-q .plus{
    font-family:'JetBrains Mono', monospace; font-size:20px; color:var(--brass);
    transition:transform .25s ease; flex-shrink:0; margin-left:20px;
  }
  .faq-item.open .plus{ transform:rotate(45deg); }
  .faq-a{
    max-height:0; overflow:hidden;
    transition:max-height .35s ease;
  }
  .faq-a p{ font-size:15px; color:#5A554C; padding-top:14px; max-width:64ch; }
  .faq-item.open .faq-a{ max-height:220px; }

  /* CTA FINAL */
  .cta-final{
    background:var(--stone);
    text-align:center;
  }
  .cta-final .wrap{ max-width:660px; }
  .cta-final .eyebrow{ justify-content:center; }
  .cta-final .eyebrow::before{ display:none; }
  .cta-final h2{ font-size:clamp(28px,3.6vw,38px); margin:18px 0 16px; }
  .cta-final p{ color:#5A554C; margin-bottom:32px; font-size:16px; }
  .cta-final .hero-ctas{ justify-content:center; }
  .cta-final .btn-outline{ border-color:var(--ink); }

  /* FOOTER */
  footer{ background:var(--ink); color:#8A93A8; padding:56px 0 34px; }
  .footer-grid{
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:36px;
    padding-bottom:36px; border-bottom:1px solid var(--stone-line);
  }
  .footer-brand{ font-family:'Fraunces',serif; color:var(--paper); font-size:19px; max-width:280px; }
  .footer-brand p{ font-size:13.5px; color:#8A93A8; margin-top:10px; line-height:1.6; }
  .footer-col h4{
    font-family:'JetBrains Mono', monospace; font-size:11px; letter-spacing:0.1em;
    text-transform:uppercase; color:#6B7488; margin-bottom:14px;
  }
  .footer-col a{ display:block; font-size:14px; color:#C6CCDB; text-decoration:none; margin-bottom:9px; }
  .footer-col a:hover{ color:var(--paper); }
  .footer-bottom{
    display:flex; justify-content:space-between; align-items:flex-start;
    padding-top:26px; font-size:12px; color:#6B7488; gap:20px; flex-wrap:wrap;
  }
  .footer-bottom p{ max-width:62ch; line-height:1.6; }



/* Production navigation, accessibility and small-screen fixes. */
.reveal{opacity:1!important;transform:none!important}
html{scroll-padding-top:100px}a,button{touch-action:manipulation}
.article-body{padding-top:36px}.article-body .wrap{max-width:850px}.article-body p{max-width:none;overflow-wrap:anywhere}.article-body h2{font-size:25px;line-height:1.3;margin:40px 0 18px}.article-body h3{font-size:21px;margin:28px 0 14px}.article-body ul,.article-body ol{margin:0 0 24px 24px}.article-body li{margin-bottom:10px}.article-body blockquote{border-left:3px solid var(--brass);padding:12px 24px;margin:26px 0;background:var(--stone)}.article-body hr{border:0;border-top:1px solid var(--line);margin:32px 0}.article-body a{color:var(--wine);text-underline-offset:3px}.article-figure{margin:0 0 36px}.article-figure img{width:100%;height:auto;display:block}.article-body table{max-width:100%;display:block;overflow-x:auto}.library-tabs{display:flex;flex-wrap:wrap;gap:20px;margin-top:28px}.library-list{list-style:none;display:grid;gap:18px;margin-top:24px}.library-list a{display:block;text-decoration:none;border:1px solid var(--line);padding:24px}.library-list a:hover{background:var(--stone)}.library-list h3{font-size:22px;line-height:1.35;margin:10px 0}.library-list span{font-size:12px;color:var(--wine)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #A88347;outline-offset:5px}
.skip-link{position:fixed;left:16px;top:-100px;z-index:99999;background:#FAF7F0;color:#16233D;padding:12px}
.skip-link:focus{top:12px}.menu-toggle{display:none}
.faq-q{list-style:none}.faq-q::-webkit-details-marker{display:none}
details.faq-item .faq-a{max-height:none;display:block;padding-bottom:22px}
details:not([open]) .faq-a{display:none}details[open] .plus{transform:rotate(45deg)}
.atlas-checklist p{font-size:13px;margin-top:12px}.atlas-checklist .btn{background:var(--ink);color:var(--paper)}
.atlas-checklist label{display:block;font-size:14px;margin:12px 0 6px}.atlas-checklist input[type=email]{width:100%;max-width:400px;padding:13px;border:1px solid var(--line);font:inherit;background:var(--paper)}.atlas-checklist .consent{display:flex;gap:10px;align-items:flex-start;font-size:12px;max-width:440px}.atlas-checklist .consent input{margin-top:4px}.atlas-checklist button{border:0;cursor:pointer;margin-top:12px}.atlas-checklist .hp{position:absolute;left:-10000px}.form-message{padding:12px;border-left:3px solid var(--wine);margin-bottom:16px}
body.admin-bar nav{top:32px} .summary-card dd{min-width:0;overflow-wrap:anywhere}
.fallback-content{max-width:900px;margin:60px auto;padding:0 24px;min-height:55vh}
.fallback-content p,.fallback-content h2,.fallback-content h3{margin-bottom:20px}
.fallback-content img{height:auto}.fallback-content ul{margin-left:24px}
.fallback-nav{position:relative;background:var(--ink);padding:22px 0}.fallback-nav a{color:var(--paper)}
.fallback-nav .wrap{height:auto;gap:20px;flex-wrap:wrap}.fallback-footer{padding:30px;text-align:center}
@media(max-width:800px){
 nav .wrap{height:auto;min-height:74px;flex-wrap:wrap;gap:12px;padding-top:12px;padding-bottom:12px}
 .brand{flex-wrap:wrap;gap:3px 8px;font-size:18px}.brand small{font-size:8px}
 nav .btn-sm{padding:9px 12px;font-size:12px}.menu-toggle{display:inline-block;background:transparent;border:1px solid var(--line);padding:9px 12px;color:var(--ink);font:inherit;font-size:13px}
 .nav-links{order:4;width:100%}.nav-links ul{display:flex;flex-wrap:wrap;gap:14px 22px;padding:10px 0}
 .js-menu .nav-links{display:none}.js-menu .nav-links.is-open{display:block}
 .hero{padding:55px 0}.hero-grid{gap:32px}.hero h1{max-width:20ch}
 body.admin-bar nav{top:46px}.status-row .row-top{flex-wrap:wrap;gap:8px}
}
@media(max-width:480px){.summary-card{padding:22px 18px}.summary-card dl{grid-template-columns:1fr;gap:5px}.summary-card dd{margin-bottom:12px}.hero-ctas .btn{width:100%;text-align:center}.cta-box{padding:30px 20px}.back{font-size:12px}nav .wrap{gap:10px}.brand{max-width:190px}.door{min-width:0}.footer-col a{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.gen{opacity:1}.lineage-line-draw{height:100%}}
