
  @font-face{font-family:'Fraunces';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/fraunces-latin-400-normal.woff2') format('woff2');}
  @font-face{font-family:'Fraunces';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/fraunces-latin-500-normal.woff2') format('woff2');}
  @font-face{font-family:'Fraunces';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/fraunces-latin-600-normal.woff2') format('woff2');}
  @font-face{font-family:'Fraunces';font-style:italic;font-weight:500;font-display:swap;src:url('/fonts/fraunces-latin-500-italic.woff2') format('woff2');}
  @font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/source-sans-3-latin-400-normal.woff2') format('woff2');}
  @font-face{font-family:'Source Sans 3';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/source-sans-3-latin-500-normal.woff2') format('woff2');}
  @font-face{font-family:'Source Sans 3';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/source-sans-3-latin-600-normal.woff2') format('woff2');}
  @font-face{font-family:'Source Sans 3';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/source-sans-3-latin-700-normal.woff2') format('woff2');}
  @font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2');}
  @font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2');}
  @font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/ibm-plex-mono-latin-600-normal.woff2') format('woff2');}

  :root{
    /* paper (light) surfaces — used by floating cards: email mock, hero card, price card, fit cards */
    --bg:#F6F3EC;
    --paper:#FFFFFF;
    --ink:#1B1B18;
    --ink-soft:#514E45;
    --line:#DDD6C7;
    --primary:#1F5C4F;
    --primary-soft:#E4ECE7;
    --accent:#B96A32;
    --accent-soft:#F3E4D6;
    --mono-chip:#EFEBE0;
    --shadow: 0 1px 0 rgba(27,27,24,0.06);
    --shadow-card: 0 10px 30px -12px rgba(0,0,0,0.55), 0 2px 8px rgba(0,0,0,0.3);
    --shadow-card-hover: 0 18px 44px -14px rgba(0,0,0,0.6), 0 4px 10px rgba(0,0,0,0.3);
    --shadow-float: 0 30px 70px -20px rgba(0,0,0,0.65), 0 4px 14px rgba(0,0,0,0.35);

    /* canvas (dark) — the page's base, Recurra's own "powerful" mode */
    --canvas:#0a1613;
    --canvas-alt:#0e1c18;
    --canvas-line:rgba(245,241,230,0.12);
    --canvas-ink:#F2EFE4;
    --canvas-ink-soft:#A8B3AB;
    --canvas-chip:rgba(245,241,230,0.07);
    --primary-bright:#3FD99B;
    --accent-bright:#F0A868;
  }

  *{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  body{
    background:var(--canvas);
    color:var(--canvas-ink);
    font-family:'Source Sans 3', system-ui, sans-serif;
    font-size:17px;
    line-height:1.6;
  }
  ::selection{ background:var(--primary-bright); color:#06120d; }

  a{ color:var(--primary-bright); }

  /* ---------- scroll reveal ---------- */
  [data-reveal]{
    opacity:0;
    transform:translateY(22px);
    transition:opacity 0.7s cubic-bezier(.2,.7,.2,1), transform 0.7s cubic-bezier(.2,.7,.2,1);
  }
  [data-reveal].is-visible{ opacity:1; transform:translateY(0); }
  [data-reveal="scale"]{ transform:translateY(16px) scale(0.97); }
  [data-reveal="scale"].is-visible{ transform:translateY(0) scale(1); }
  @media (prefers-reduced-motion: reduce){
    [data-reveal], [data-reveal].is-visible{ opacity:1; transform:none; transition:none; }
  }

  .wrap{
    max-width:920px;
    margin:0 auto;
    padding:0 28px;
  }

  .mono{
    font-family:'IBM Plex Mono', monospace;
    letter-spacing:0.02em;
  }

  /* ---------- top bar ---------- */
  .topbar{
    padding:26px 0 0;
    border-bottom:1px solid var(--canvas-line);
  }
  .topbar .wrap{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding-bottom:20px;
  }
  .logo{
    display:flex;
    align-items:center;
    gap:0;
    font-family:'Fraunces', serif;
    font-weight:600;
    font-size:1.4rem;
    letter-spacing:-0.01em;
    color:var(--canvas-ink);
  }
  .logo span{ color:var(--accent-bright); }
  .logo-mark{ display:block; flex-shrink:0; margin-right:10px; }
  .topbar .tag{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    color:var(--canvas-ink-soft);
    text-transform:uppercase;
    letter-spacing:0.08em;
    background:var(--canvas-chip);
    padding:6px 10px;
    border-radius:20px;
  }

  /* ---------- hero ---------- */
  .hero{
    padding:76px 0 64px;
    position:relative;
    overflow:hidden;
  }
  .hero::before{
    content:"";
    position:absolute;
    inset:-20% -10% auto -10%;
    height:680px;
    background:
      none;
    pointer-events:none;
    z-index:0;
  }
  .hero .wrap{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,420px);
    gap:40px;
    align-items:center;
  }
  @media (max-width:880px){
    .hero .wrap{ grid-template-columns:1fr; }
    .hero-visual{ margin-top:12px; max-width:380px; }
  }
  .hero-visual{ position:relative; justify-self:end; width:100%; }
  .hero-card{
    background:var(--paper);
    border-radius:12px;
    box-shadow:var(--shadow-float);
    padding:22px 22px 20px;
    transform:none;
    transition:transform 0.4s cubic-bezier(.2,.7,.2,1);
  }
  
  .hero-card .hc-label{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    text-transform:uppercase;
    letter-spacing:0.07em;
    color:var(--ink-soft);
    margin:0 0 10px;
  }
  .hero-card .hc-value-row{ display:flex; align-items:baseline; gap:10px; margin:0 0 14px; }
  .hero-card .hc-value{ font-family:'IBM Plex Mono', monospace; font-weight:700; font-size:2rem; margin:0; }
  .hero-card .hc-delta{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.8rem; font-weight:700;
    color:#176b3c; background:#e6f4ec;
    padding:3px 8px; border-radius:10px;
  }
  .hero-card .hc-spark{ display:block; width:100%; height:48px; margin:0 0 16px; }
  .hero-card .hc-row{
    display:flex; align-items:center; justify-content:space-between;
    font-size:0.86rem; padding:9px 0; border-top:1px solid var(--line);
  }
  .hero-card .hc-row .tag-ok{ color:#176b3c; font-weight:600; }
  .hero-card .hc-row .tag-warn{ color:#92600a; font-weight:600; }
  .hero-badge{
    position:absolute;
    top:-20px; left:-22px;
    z-index:2;
    background:var(--ink);
    color:#fff;
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    font-weight:600;
    padding:8px 12px;
    border-radius:8px;
    box-shadow:var(--shadow-card);
    transform:none;
    white-space:nowrap;
  }
  .hero-card{ position:relative; z-index:1; }
  .hero .wrap{ grid-template-columns:minmax(0,1fr) minmax(0,470px); }
  .hero-card{ padding:24px 24px 22px; transform:none; }
  .hero-card .hc-label{ margin:0 0 14px; }
  .hc-money{ background:#FBF1E3; border:1px solid #F0DCC0; border-radius:10px; padding:14px 16px 13px; margin:0 0 18px; }
  .hc-money p{ margin:0; }
  .hc-money-label{ font-family:'IBM Plex Mono', monospace; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.07em; color:#8f5021; }
  .hc-money-value{ font-family:'IBM Plex Mono', monospace; font-weight:700; font-size:2.35rem; line-height:1.15; color:#8f5021; margin-top:4px !important; }
  .hc-money-value span{ font-size:0.95rem; font-weight:600; }
  .hc-money-sub{ font-size:0.86rem; color:var(--ink-soft); margin-top:2px !important; }
  .hero-card .hc-value-row{ margin:0 0 4px; flex-wrap:wrap; }
  .hero-card .hc-value{ font-size:1.6rem; }
  .hc-chart-title{ font-size:0.82rem; font-weight:600; color:var(--ink); margin:8px 0 2px; }
  .hc-bars{ display:block; width:100%; height:auto; }
  .hc-bars .b-up{ fill:#9CCBB9; } .hc-bars .b-cur{ fill:#0E8A63; } .hc-bars .b-down{ fill:#D9A57F; }
  .hc-bars .vl{ font-family:'IBM Plex Mono', monospace; font-size:12.5px; font-weight:600; fill:#4a4a42; }
  .hc-bars .vl.cur{ font-size:15px; font-weight:700; fill:#0A6B4B; }
  .hc-bars .xl{ font-family:'IBM Plex Mono', monospace; font-size:10.5px; fill:#6d6b60; }
  .hc-bars .xl.cur{ font-weight:700; fill:#141413; }
  .hc-bars rect{ transform-box:fill-box; transform-origin:bottom; animation:hcgrow 0.7s cubic-bezier(.2,.7,.2,1) both; animation-delay:var(--d,0ms); }
  .hc-bars rect.neg{ transform-origin:top; }
  @keyframes hcgrow{ from{ transform:scaleY(0); } to{ transform:scaleY(1); } }
  @media (prefers-reduced-motion:reduce){ .hc-bars rect{ animation:none; } }
  .hc-chart-note{ font-size:0.76rem; color:var(--ink-soft); margin:2px 0 14px; }
  .hc-actions{ list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
  .hc-actions li{ display:flex; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--line); font-size:0.9rem; }
  .hc-actions li:last-child{ border-bottom:none; padding-bottom:0; }
  .hc-actions .n{ flex:none; width:22px; height:22px; border-radius:50%; background:#1F5C4F; color:#fff; font-size:0.75rem; font-weight:700; display:flex; align-items:center; justify-content:center; }
  .hc-actions .n.o{ background:#B96A32; }
  .hc-actions .t{ flex:1; font-weight:600; color:var(--ink); }
  .hc-actions .e{ font-family:'IBM Plex Mono', monospace; font-size:0.78rem; font-weight:700; color:#0A6B4B; background:#E6F4EC; padding:3px 8px; border-radius:8px; white-space:nowrap; }
  @media (max-width:880px){ .hero .wrap{ grid-template-columns:minmax(0,1fr); } .hero-visual{ max-width:470px; justify-self:start; } .hero-card{ padding:20px 18px 18px; } .hc-money-value{ font-size:2rem; } .hc-actions li{ font-size:0.84rem; flex-wrap:wrap; } }

  @media (max-width:880px){ .hero-badge{ left:4px; } }
  .eyebrow{
    font-family:'Source Sans 3', sans-serif;
    font-size:0.95rem;
    font-weight:600;
    letter-spacing:0.01em;
    color:var(--primary-bright);
    margin:0 0 22px;
  }
  h1{
    font-family:'Fraunces', serif;
    font-weight:500;
    font-size:clamp(2.2rem, 4.4vw, 3.2rem);
    line-height:1.08;
    letter-spacing:-0.015em;
    margin:0 0 26px;
    max-width:19ch;
    color:var(--canvas-ink);
  }
  h1 em{
    font-style:italic;
    color:var(--accent-bright);
  }
  .lede{
    font-size:1.2rem;
    color:var(--canvas-ink-soft);
    max-width:52ch;
    margin:0 0 36px;
  }
  .lede strong{ color:var(--canvas-ink); font-weight:600; }

  .source-note{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.8rem;
    color:var(--canvas-ink-soft);
    max-width:48ch;
    margin:0 0 28px;
  }
  .source-note a{ color:var(--canvas-ink-soft); text-decoration:underline; }

  .cta-row{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:18px;
  }
  .btn{
    display:inline-block;
    font-family:'Source Sans 3', sans-serif;
    font-weight:700;
    font-size:1.02rem;
    color:#07140F;
    background:var(--accent-bright);
    padding:16px 30px;
    border-radius:6px;
    text-decoration:none;
    
    transition:transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
  }
  .btn:hover{ filter:brightness(1.07); }
  .cta-note{
    font-size:0.92rem;
    color:var(--canvas-ink-soft);
  }

  /* ---------- section shell ---------- */
  section{
    padding:64px 0;
    border-top:1px solid var(--canvas-line);
  }
  section.alt{ background:var(--canvas-alt); }
  .kicker{
    font-family:'Source Sans 3', sans-serif;
    font-size:0.86rem;
    font-weight:600;
    letter-spacing:0.02em;
    color:var(--accent-bright);
    margin:0 0 14px;
  }
  h2{
    font-family:'Fraunces', serif;
    font-weight:500;
    font-size:clamp(1.7rem, 3.4vw, 2.3rem);
    letter-spacing:-0.01em;
    line-height:1.2;
    margin:0 0 20px;
    max-width:24ch;
    color:var(--canvas-ink);
  }
  section > p.intro{
    font-size:1.08rem;
    color:var(--canvas-ink-soft);
    max-width:60ch;
    margin:0 0 38px;
  }

  /* ---------- cómo funciona ---------- */
  .steps{
    display:grid;
    gap:0;
    position:relative;
  }
  .steps::before{
    content:"";
    position:absolute;
    left:23px; top:46px; bottom:46px;
    width:2px;
    background:var(--canvas-line);
    opacity:1;
  }
  .step{
    display:grid;
    grid-template-columns:46px 1fr;
    gap:22px;
    padding:26px 0;
    position:relative;
    z-index:1;
  }
  .step .num{
    width:46px; height:46px;
    display:flex; align-items:center; justify-content:center;
    border-radius:50%;
    background:transparent;
    color:var(--primary-bright);
    border:1.5px solid var(--primary-bright);
    font-family:'IBM Plex Mono', monospace;
    font-size:1rem;
    font-weight:600;
  }
  .step h3{
    font-family:'Source Sans 3', sans-serif;
    font-weight:700;
    font-size:1.15rem;
    margin:4px 0 8px;
    color:var(--canvas-ink);
  }
  .step p{
    color:var(--canvas-ink-soft);
    margin:0;
    max-width:56ch;
  }

  /* ---------- email mockup ---------- */
  .preview-tag{
    display:inline-block;
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    text-transform:uppercase;
    letter-spacing:0.07em;
    color:var(--canvas-ink-soft);
    background:var(--canvas-chip);
    padding:6px 12px;
    border-radius:20px;
    margin-bottom:22px;
  }
  .email-mock-wrap{
    position:relative;
  }
  .email-mock{
    position:relative;
    z-index:1;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:10px;
    overflow:hidden;
    box-shadow:var(--shadow-float);
    transform:none;
    transition:transform 0.4s cubic-bezier(.2,.7,.2,1);
  }
  @media (max-width:700px){ .email-mock{ transform:none; } }
  
  .email-mock-head{
    padding:20px 26px;
    border-bottom:1px solid var(--line);
  }
  .email-mock-head .row{
    display:flex;
    gap:10px;
    font-size:0.88rem;
    color:var(--ink-soft);
    padding:3px 0;
  }
  .email-mock-head .row span:first-child{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.72rem;
    text-transform:uppercase;
    letter-spacing:0.05em;
    color:var(--ink-soft);
    width:64px;
    flex-shrink:0;
    padding-top:2px;
  }
  .email-mock-head .subject{
    font-weight:700;
    color:var(--ink);
    font-size:1rem;
  }
  .email-mock-body{
    padding:22px 22px 26px;
    background:#EEF0EA;
  }
  .email-mock-body > p{
    margin:0 0 16px;
    color:var(--ink);
    font-size:0.98rem;
  }
  .mock-head-row{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:10px;
    margin:0 0 18px;
    flex-wrap:wrap;
  }
  .mock-head-row .brand{
    font-family:'IBM Plex Mono', monospace;
    color:#1F5C4F;
    font-weight:700;
    font-size:1.2rem;
  }
  .mock-head-row .date{ color:var(--ink-soft); font-size:0.82rem; }

  /* ---------- email mockup: module cards ---------- */
  .mod{
    background:#fff;
    border-radius:14px;
    padding:22px 22px;
    margin:0 0 14px;
    box-shadow:0 1px 2px rgba(20,20,19,0.05), 0 12px 26px -18px rgba(20,20,19,0.35);
  }
  .mod:last-of-type{ margin-bottom:0; }
  .mod-title{
    font-weight:700;
    font-size:1rem;
    margin:0 0 16px;
    display:flex;
    align-items:center;
    gap:8px;
    color:#141413;
  }
  .info-term{
    position:relative;
    display:inline-flex;
    align-items:center;
    gap:6px;
  }
  .info-dot{
    width:16px;
    height:16px;
    border-radius:50%;
    background:var(--ink-soft);
    color:#fff;
    font-size:0.65rem;
    font-weight:700;
    line-height:16px;
    text-align:center;
    border:none;
    cursor:pointer;
    font-family:'IBM Plex Mono', monospace;
    padding:0;
    flex-shrink:0;
  }
  .info-dot:hover, .info-dot:focus{ background:var(--primary); }
  /* Position is computed in JS (see script near the end of <body>) so the
     popover always lands clear of the viewport and of neighboring content
     — e.g. the hero module's big MRR figure sits right under the eyebrow,
     so a fixed "open downward" offset used to land the popover on top of it. */
  .info-pop{
    display:none;
    position:fixed;
    background:var(--ink);
    color:#fff;
    font-size:0.82rem;
    line-height:1.45;
    padding:12px 14px;
    border-radius:4px;
    width:min(260px, calc(100vw - 24px));
    z-index:50;
    font-family:'Source Sans 3', sans-serif;
    text-transform:none;
    letter-spacing:normal;
    font-weight:400;
    box-shadow:0 14px 34px -10px rgba(0,0,0,0.45);
  }
  .info-pop.open{ display:block; }

  /* ---------- email mockup: hero module ---------- */
  .hero-mod{
    position:relative;
    overflow:hidden;
    padding:26px 26px 20px;
  }
  .hero-mod::before{
    content:"";
    position:absolute;
    inset:0;
    background:none;
    pointer-events:none;
  }
  .hero-mod > *{ position:relative; z-index:1; }
  .hm-eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.74rem;
    text-transform:uppercase;
    letter-spacing:0.08em;
    color:var(--ink-soft);
    margin:0 0 10px;
  }
  .hm-figure-row{
    display:flex;
    align-items:baseline;
    gap:14px;
    flex-wrap:wrap;
    margin:0 0 14px;
  }
  .hm-figure{
    font-family:'IBM Plex Mono', monospace;
    font-weight:700;
    font-size:3rem;
    letter-spacing:-0.02em;
    color:#141413;
    margin:0;
  }
  .hm-delta{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.86rem;
    font-weight:700;
    color:#176b3c;
    background:#e6f4ec;
    padding:4px 10px;
    border-radius:20px;
  }
  .hm-note{
    font-size:0.96rem;
    line-height:1.55;
    color:#3a3a36;
    margin:0 0 18px;
    max-width:54ch;
  }
  .hm-note strong{ color:#141413; }
  .hm-chart-title{ font-weight:700; font-size:0.84rem; color:#141413; margin:0 0 2px; }
  .hm-chart{ display:block; width:100%; max-width:100%; height:auto; }
  .hm-chart-labels{ font-size:0.8rem; line-height:1.45; color:var(--ink-soft); margin:6px 0 0; }
  .hm-chart-labels strong{ color:#141413; }

  /* ---------- email mockup: mini stat grid ---------- */
  .mini-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--line);
    border-radius:14px;
    overflow:hidden;
    box-shadow:0 1px 2px rgba(20,20,19,0.05), 0 12px 26px -18px rgba(20,20,19,0.35);
    margin:0 0 14px;
  }
  @media (max-width:520px){ .mini-grid{ grid-template-columns:1fr; } }
  .mini-card{ background:#fff; padding:18px 18px; }
  .mini-label{ font-size:0.76rem; color:var(--ink-soft); margin:0 0 8px; }
  .mini-value{
    font-family:'IBM Plex Mono', monospace;
    font-weight:700;
    font-size:1.4rem;
    color:#141413;
    margin:0 0 6px;
  }
  .mini-value .mini-delta{
    font-size:0.72rem;
    color:#176b3c;
    font-weight:700;
    margin-left:6px;
  }
  .mini-sub{ font-size:0.76rem; color:var(--ink-soft); margin:0; }

  /* ---------- email mockup: churn, by name not just by number ---------- */
  .churn-list{ display:flex; flex-direction:column; gap:10px; margin:0 0 14px; }
  .churn-item{
    display:flex;
    align-items:center;
    gap:14px;
    padding:12px;
    border:1px solid var(--line);
    border-radius:10px;
  }
  .churn-avatar{
    width:38px;
    height:38px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    font-family:'IBM Plex Mono', monospace;
    font-weight:700;
    font-size:0.78rem;
    color:#fff;
  }
  .churn-avatar.voluntary{ background:#6b6558; }
  .churn-avatar.failed{ background:#8f5021; }
  .churn-info{ flex:1; min-width:0; }
  .churn-item-name{
    margin:0 0 3px;
    font-weight:700;
    color:var(--ink);
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
  }
  .churn-tag{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.64rem;
    text-transform:uppercase;
    letter-spacing:0.04em;
    font-weight:700;
    padding:2px 8px;
    border-radius:20px;
  }
  .churn-tag.voluntary{ background:#efede6; color:#6b6558; }
  .churn-tag.failed{ background:#F3E4D6; color:#8f5021; }
  .churn-item-meta{ margin:0; font-size:0.82rem; color:var(--ink-soft); }
  .churn-item-action{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.78rem;
    font-weight:700;
    color:#1F5C4F;
    text-decoration:none;
    white-space:nowrap;
    flex-shrink:0;
  }
  .churn-item-action:hover{ text-decoration:underline; }
  @media (max-width:480px){
    .churn-item{ flex-wrap:wrap; }
    .churn-item-action{ margin-left:52px; }
  }
  .churn-action{
    font-size:0.9rem;
    background:#F3E4D6;
    color:#8f5021;
    border-radius:8px;
    padding:11px 14px;
    margin:10px 0 0;
  }
  .cohort-legend{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:0.74rem;
    color:var(--ink-soft);
    margin:12px 0 0;
  }
  .legend-ramp{
    width:72px;
    height:8px;
    border-radius:4px;
    background:linear-gradient(to right, #DCEFE8, #8FCDB4, #1F7A61, #123D33);
  }

  /* ---------- para quién ---------- */
  .fit-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:28px;
  }
  @media (max-width:640px){ .fit-grid{ grid-template-columns:1fr; } }
  .fit-card{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:6px;
    padding:24px 26px;
    box-shadow:var(--shadow-card);
    transition:transform 0.25s ease, box-shadow 0.25s ease;
  }
  
  .fit-card .fit-label{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.75rem;
    text-transform:uppercase;
    letter-spacing:0.07em;
    margin:0 0 12px;
  }
  .fit-card.yes .fit-label{ color:var(--primary); }
  .fit-card.no .fit-label{ color:var(--ink-soft); }
  .fit-card p{
    margin:0;
    color:var(--ink-soft);
    font-size:0.98rem;
  }
  .fit-card.no{ opacity:0.85; }

  /* ---------- posicionamiento ---------- */
  .quote-block{
    background:var(--paper);
    border-left:3px solid var(--accent);
    padding:22px 26px;
    border-radius:0 8px 8px 0;
    font-size:1.02rem;
    color:var(--ink-soft);
    box-shadow:var(--shadow-card);
  }
  .quote-block strong{ color:var(--ink); }

  /* ---------- pricing ---------- */
  .price-card{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:10px;
    padding:38px 34px 36px;
    box-shadow:var(--shadow-card-hover);
    transition:transform 0.25s ease, box-shadow 0.25s ease;
    position:relative;
    overflow:hidden;
  }
  .price-card::before{
    content:"";
    position:absolute;
    top:0; left:0; right:0;
    height:5px;
    background:var(--accent-bright);
  }
  
  .price-top{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:16px;
    margin-bottom:6px;
  }
  .price-name{
    font-family:'Fraunces', serif;
    font-size:1.3rem;
    font-weight:500;
  }
  .price-figure{
    font-family:'IBM Plex Mono', monospace;
    font-size:2.1rem;
    font-weight:600;
    color:var(--primary);
  }
  .price-figure .per{
    font-size:0.95rem;
    color:var(--ink-soft);
    font-weight:400;
  }
  .price-slots{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.78rem;
    text-transform:uppercase;
    letter-spacing:0.06em;
    color:var(--accent);
    margin:0 0 22px;
  }
  .price-card ul{
    margin:0 0 26px;
    padding:0;
    list-style:none;
  }
  .price-card li{
    padding:11px 0;
    border-top:1px solid var(--line);
    color:var(--ink-soft);
    font-size:0.98rem;
  }
  .price-card li:first-child{ border-top:none; }
  .price-card li strong{ color:var(--ink); font-weight:600; }
  .honesty-note{
    font-size:0.9rem;
    color:var(--ink-soft);
    background:var(--mono-chip);
    padding:14px 16px;
    border-radius:3px;
    margin-top:22px;
  }

  /* ---------- lead form ---------- */
  .lead-form{ margin-top:24px; }
  .field{ margin-bottom:16px; }
  .field label{
    display:block;
    font-family:'Source Sans 3', sans-serif;
    font-size:0.95rem;
    font-weight:600;
    color:var(--ink);
    margin-bottom:6px;
  }
  .field input{
    width:100%;
    font:inherit;
    font-size:1rem;
    color:var(--ink);
    background:var(--bg);
    border:1px solid var(--line);
    border-radius:3px;
    padding:12px 14px;
  }
  .field input:focus{ outline:2px solid var(--primary); outline-offset:1px; }
  .hp-field{ position:absolute; left:-9999px; }
  .lead-form .btn{
    border:none;
    cursor:pointer;
    width:100%;
    text-align:center;
    font-size:1.02rem;
  }
  .form-status{
    font-size:0.92rem;
    margin-top:14px;
  }
  .form-status.error{ color:#9A3B2E; }
  .form-success{
    background:var(--primary-soft);
    border:1px solid var(--primary);
    border-radius:4px;
    padding:20px 22px;
  }
  .form-success p{ margin:0; color:var(--ink); font-weight:600; }


  /* ---------- faq ---------- */
  details{
    border-top:1px solid var(--canvas-line);
    padding:18px 0;
  }
  details:last-child{ border-bottom:1px solid var(--canvas-line); }
  summary{
    cursor:pointer;
    font-weight:600;
    font-size:1.04rem;
    color:var(--canvas-ink);
    list-style:none;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
  }
  summary::-webkit-details-marker{ display:none; }
  summary::after{
    content:"+";
    font-family:'IBM Plex Mono', monospace;
    font-size:1.3rem;
    color:var(--accent-bright);
    flex-shrink:0;
  }
  details[open] summary::after{ content:"–"; }
  details p{
    color:var(--canvas-ink-soft);
    margin:14px 0 2px;
    max-width:60ch;
  }
  details p a{ color:var(--primary-bright); }

  /* ---------- closing cta ---------- */
  .closing{
    text-align:left;
    padding:72px 0 68px;
    position:relative;
    overflow:hidden;
  }
  .closing::before{
    content:"";
    position:absolute;
    inset:-40% -10% auto -10%;
    height:420px;
    background:none;
    pointer-events:none;
  }
  .closing .wrap{ position:relative; z-index:1; }
  .closing h2{ max-width:20ch; }

  footer{
    border-top:1px solid var(--canvas-line);
    padding:30px 0 50px;
  }
  footer p{
    font-size:0.85rem;
    color:var(--canvas-ink-soft);
    max-width:60ch;
    margin:0 0 8px;
  }

  /* ---------- v2: asesor automático ---------- */
  .btn-ghost{
    display:inline-block;
    font-weight:600;
    font-size:1rem;
    color:var(--canvas-ink);
    padding:6px 2px;
    border-bottom:1.5px solid var(--canvas-line);
    text-decoration:none;
    transition:border-color 0.2s ease;
  }
  .btn-ghost:hover{ border-color:var(--accent-bright); }
  .hc-row .tag-warn{ color:#8f5021; }
  .hero-card, .price-card, .fit-card{ color:var(--ink); }
  .price-name{ color:var(--ink); }

  .problem-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0,1fr));
    gap:20px;
    margin:0 0 30px;
  }
  @media (max-width:860px){ .problem-grid{ grid-template-columns:1fr; max-width:480px; } }
  .problem-card{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:10px;
    padding:22px 22px 22px;
    box-shadow:var(--shadow-card);
    color:var(--ink);
    display:flex;
    flex-direction:column;
    position:relative;
    overflow:hidden;
    transition:transform 0.25s ease, box-shadow 0.25s ease;
  }
  .problem-card::before{ content:""; position:absolute; top:0; left:0; right:0; height:4px; background:var(--primary); }
  .problem-card.warm::before{ background:var(--accent); }
  
  .pc-top{ display:flex; align-items:baseline; gap:10px; margin:4px 0 12px; }
  .pc-num{ font-family:'Fraunces', serif; font-weight:600; font-size:2.1rem; line-height:1; color:var(--primary); }
  .problem-card.warm .pc-num{ color:var(--accent); }
  .pc-title{ font-weight:700; font-size:1.06rem; line-height:1.25; margin:0; }
  .pc-viz{ margin:0 0 14px; min-height:58px; display:flex; align-items:center; }
  .problem-card p.pc-text{ margin:0 0 12px; font-size:0.95rem; color:var(--ink-soft); }
  .pc-action{
    margin:auto 0 14px;
    font-size:0.92rem;
    color:var(--ink);
    background:var(--primary-soft);
    border-radius:8px;
    padding:10px 12px;
  }
  .pc-action strong{ color:#0f4a3d; }
  .problem-card.warm .pc-action{ background:var(--accent-soft); }
  .problem-card.warm .pc-action strong{ color:#8f5021; }
  .pc-chip{
    align-self:flex-start;
    font-family:'IBM Plex Mono', monospace;
    font-size:0.7rem;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:0.05em;
    padding:4px 10px;
    border-radius:20px;
    background:#e6f4ec;
    color:#0f4a3d;
  }
  .problem-card.warm .pc-chip{ background:#F3E4D6; color:#8f5021; }

  .viz-fails{ display:flex; gap:6px; width:100%; }
  .viz-fails .sq{
    flex:1;
    height:50px;
    border-radius:6px;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    font-family:'IBM Plex Mono', monospace;
    font-weight:600;
    line-height:1.25;
  }
  .viz-fails .sq{ height:34px; }
  .viz-fails .sq b{ font-size:0.72rem; white-space:nowrap; }
  .viz-fails-cap{ display:flex; justify-content:space-between; gap:8px; margin:8px 0 0; font-family:'IBM Plex Mono', monospace; font-size:0.62rem; text-transform:uppercase; letter-spacing:0.04em; }
  .viz-fails-cap .c1{ flex:2; color:#8f5021; border-top:2px solid #B96A32; padding-top:4px; }
  .viz-fails-cap .c2{ flex:3; color:#0f4a3d; border-top:2px solid #0E8A63; padding-top:4px; }
  .viz-fails .sq.lost{ background:#B96A32; color:#fff; }
  .viz-fails .sq.pend{ background:#F6E9DD; color:#8f5021; border:1.5px dashed #B96A32; }

  .viz-heat{ display:grid; grid-template-columns:repeat(4, 1fr); gap:3px; width:100%; }
  .viz-heat span{
    height:19px; border-radius:3px;
    display:flex; align-items:center; justify-content:center;
    font-family:'IBM Plex Mono', monospace; font-size:0.62rem; font-weight:600; color:#14201B;
  }
  .viz-heat span.dk{ color:#fff; }
  .viz-heat span.empty{ border:1px dashed #cfc8b8; }
  .viz-heat span.hl{ outline:2px solid #B96A32; outline-offset:-1px; }

  .viz-plan{ width:100%; }
  .viz-plan .dots{ display:flex; gap:5px; margin:0 0 7px; }
  .viz-plan .dots i{ flex:1; aspect-ratio:1; max-width:15px; border-radius:50%; border:1.5px solid #B96A32; background:#F6E9DD; }
  .viz-plan .bar{
    height:14px; border-radius:7px; background:var(--primary);
    color:#fff; font-family:'IBM Plex Mono', monospace; font-size:0.58rem; font-weight:600;
    display:flex; align-items:center; padding:0 8px; letter-spacing:0.03em; text-transform:uppercase;
  }
  .more-checks{
    font-size:0.98rem;
    color:var(--canvas-ink-soft);
    max-width:64ch;
    margin:0 0 8px;
  }
  .more-checks strong{ color:var(--canvas-ink); }
  .grounded{
    font-family:'IBM Plex Mono', monospace;
    font-size:0.78rem;
    color:var(--canvas-ink-soft);
    max-width:70ch;
    margin:14px 0 0;
  }

  /* email mock: action list */
  .action-list{ display:flex; flex-direction:column; gap:10px; margin:0 0 6px; }
  .action-item{
    display:grid;
    grid-template-columns:30px 1fr;
    gap:12px;
    padding:12px;
    border:1px solid var(--line);
    border-radius:10px;
    align-items:start;
  }
  .action-num{
    width:30px; height:30px; border-radius:50%;
    background:var(--primary); color:#fff;
    font-family:'IBM Plex Mono', monospace; font-weight:700; font-size:0.85rem;
    display:flex; align-items:center; justify-content:center;
  }
  .action-item.warm .action-num{ background:#8f5021; }
  .action-title{ margin:0 0 3px; font-weight:700; color:var(--ink); font-size:0.96rem; line-height:1.3; }
  .action-meta{ margin:0 0 6px; font-size:0.84rem; color:var(--ink-soft); }
  .action-tags{ display:flex; flex-wrap:wrap; gap:6px; }
  .action-tag{
    font-family:'IBM Plex Mono', monospace; font-size:0.64rem; font-weight:700; text-transform:uppercase; letter-spacing:0.04em;
    padding:2px 8px; border-radius:20px; background:#e6f4ec; color:#0f4a3d;
  }
  .action-tag.time{ background:#efede6; color:#514E45; }
  .action-item.warm .action-tag:not(.time){ background:#F3E4D6; color:#8f5021; }
  .mock-btn{
    display:block;
    text-align:center;
    margin:16px 0 0;
    background:#1F5C4F;
    color:#fff !important;
    font-weight:700;
    text-decoration:none;
    padding:13px 16px;
    border-radius:8px;
    font-size:0.96rem;
  }

  /* report preview */
  .report-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0,1fr));
    gap:22px;
    margin:0 0 34px;
  }
  @media (max-width:760px){ .report-grid{ grid-template-columns:1fr; max-width:380px; } }
  .report-fig{ margin:0; }
  .report-fig img{
    display:block;
    width:100%;
    height:auto;
    border-radius:6px;
    box-shadow:var(--shadow-card);
    border:1px solid var(--canvas-line);
    transition:transform 0.3s ease;
  }
  
  .report-fig figcaption{
    margin:12px 2px 0;
    font-size:0.9rem;
    color:var(--canvas-ink-soft);
  }
  .report-fig figcaption b{ color:var(--canvas-ink); font-weight:600; }

/* ============ v3: navegación y páginas interiores ============ */
a.logo{ text-decoration:none; }
.topbar .wrap{ flex-wrap:wrap; gap:12px 24px; }
.nav{ display:flex; align-items:center; gap:6px 22px; flex-wrap:wrap; }
.nav a{
  font-size:0.95rem; font-weight:600; color:var(--canvas-ink-soft);
  text-decoration:none; padding:6px 2px; border-bottom:2px solid transparent;
  transition:color 0.2s ease, border-color 0.2s ease;
}
.nav a:hover{ color:var(--canvas-ink); }
.nav a.active{ color:var(--canvas-ink); border-bottom-color:var(--accent-bright); }
.nav a.nav-cta{
  color:#07140F; background:var(--accent-bright);
  padding:8px 16px; border-radius:6px; border-bottom:none; font-weight:700;
}
.nav a.nav-cta:hover{ color:#07140F; filter:brightness(1.06); }
@media (max-width:700px){
  .topbar .wrap{ flex-direction:column; align-items:flex-start; padding-bottom:14px; }
  .nav{ gap:4px 18px; }
  .nav a.nav-cta{ display:none; }
}

.page-hero{ padding:64px 0 44px; position:relative; overflow:hidden; }
.page-hero::before{ display:none; }
.page-hero .wrap{ position:relative; z-index:1; }
.page-hero h1{ max-width:24ch; font-size:clamp(2rem, 4.4vw, 3rem); margin:0 0 20px; }
.page-hero .lede{ margin:0; max-width:58ch; }
.crumbs{ font-family:'IBM Plex Mono', monospace; font-size:0.76rem; letter-spacing:0.05em; text-transform:uppercase; color:var(--canvas-ink-soft); margin:0 0 20px; }
.crumbs a{ color:var(--canvas-ink-soft); }
.crumbs a:hover{ color:var(--canvas-ink); }

.prose{ max-width:68ch; }
.prose h2{ max-width:none; font-size:clamp(1.45rem, 2.8vw, 1.85rem); margin:48px 0 14px; }
.prose h3{ font-family:'Source Sans 3', sans-serif; font-weight:700; font-size:1.14rem; margin:28px 0 8px; color:var(--canvas-ink); }
.prose p, .prose li{ color:var(--canvas-ink-soft); font-size:1.06rem; }
.prose p{ margin:0 0 16px; }
.prose strong{ color:var(--canvas-ink); font-weight:600; }
.prose ul, .prose ol{ padding-left:1.25em; margin:0 0 18px; }
.prose li{ margin-bottom:8px; }
.prose a{ color:var(--primary-bright); }
.prose table{ border-collapse:collapse; width:100%; margin:20px 0 22px; font-size:0.98rem; }
.prose th, .prose td{ text-align:left; padding:11px 12px; border-bottom:1px solid var(--canvas-line); color:var(--canvas-ink-soft); }
.prose th{ font-family:'IBM Plex Mono', monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.07em; color:var(--canvas-ink); }
.prose td strong{ color:var(--canvas-ink); }
.table-wrap{ overflow-x:auto; }
.meta-line{ font-family:'IBM Plex Mono', monospace; font-size:0.78rem; color:var(--canvas-ink-soft); margin:0 0 28px; }

.callout{
  background:var(--canvas-alt);
  border:1px solid var(--canvas-line);
  border-left:3px solid var(--accent-bright);
  border-radius:0 10px 10px 0;
  padding:18px 22px;
  margin:22px 0 26px;
}
.callout.good{ border-left-color:var(--primary-bright); }
.callout p:last-child, .callout ul:last-child{ margin-bottom:0; }
.callout .callout-title{ font-family:'IBM Plex Mono', monospace; font-size:0.74rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--canvas-ink); margin:0 0 10px; }
.callout li{ font-size:1rem; }

.path{ display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:6px 0 14px; }
.path span{
  background:var(--canvas-chip); border:1px solid var(--canvas-line);
  border-radius:6px; padding:3px 10px;
  font-family:'IBM Plex Mono', monospace; font-size:0.82rem; color:var(--canvas-ink);
}
.path i{ font-style:normal; color:var(--accent-bright); }

.template{
  background:var(--paper); color:var(--ink);
  border-radius:10px; padding:18px 22px; margin:20px 0 24px;
  box-shadow:var(--shadow-card);
}
.template .t-label{ font-family:'IBM Plex Mono', monospace; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--accent); margin:0 0 8px; }
.template p{ color:var(--ink) !important; font-size:0.98rem !important; margin:0 0 8px !important; }
.template p:last-child{ margin-bottom:0 !important; }
.template code{ font-family:'IBM Plex Mono', monospace; font-size:0.86em; background:var(--mono-chip); padding:1px 6px; border-radius:4px; }

.method-grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; margin:26px 0 8px; }
@media (max-width:760px){ .method-grid{ grid-template-columns:1fr; } }
.method{
  background:var(--paper); color:var(--ink); border-radius:10px; padding:24px 24px 22px;
  box-shadow:var(--shadow-card); border-top:4px solid var(--primary);
}
.method.b{ border-top-color:var(--accent); }
.method .m-tag{ font-family:'IBM Plex Mono', monospace; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--primary); margin:0 0 8px; }
.method.b .m-tag{ color:var(--accent); }
.method h3{ font-family:'Fraunces', serif; font-weight:500; font-size:1.35rem; margin:0 0 10px; color:var(--ink); }
.method p{ color:var(--ink-soft); font-size:0.98rem; margin:0 0 10px; }
.method p:last-child{ margin-bottom:0; }

.post-list{ display:grid; gap:22px; margin:8px 0 40px; }
.post-card{
  display:block; text-decoration:none;
  background:var(--paper); color:var(--ink);
  border-radius:12px; padding:28px 30px;
  box-shadow:var(--shadow-card);
  transition:transform 0.25s ease, box-shadow 0.25s ease;
  border-top:4px solid var(--primary);
}
.post-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-card-hover); }
.post-card .p-meta{ font-family:'IBM Plex Mono', monospace; font-size:0.74rem; text-transform:uppercase; letter-spacing:0.07em; color:var(--accent); margin:0 0 10px; }
.post-card h2{ font-family:'Fraunces', serif; font-weight:500; font-size:1.55rem; line-height:1.2; margin:0 0 12px; color:var(--ink); max-width:none; }
.post-card p{ color:var(--ink-soft); margin:0 0 14px; font-size:1rem; }
.post-card .p-link{ font-weight:700; color:var(--primary); font-size:0.96rem; }
.soon{ list-style:none; padding:0; margin:0; }
.soon li{ padding:14px 0; border-top:1px solid var(--canvas-line); color:var(--canvas-ink-soft); font-size:1.02rem; display:flex; gap:14px; align-items:baseline; }
.soon li:last-child{ border-bottom:1px solid var(--canvas-line); }
.soon .tag-soon{ font-family:'IBM Plex Mono', monospace; font-size:0.68rem; text-transform:uppercase; letter-spacing:0.07em; color:var(--accent-bright); flex-shrink:0; }

.cta-box{
  background:var(--paper); color:var(--ink); border-radius:12px; padding:30px 32px; margin:44px 0 10px;
  box-shadow:var(--shadow-card-hover); border-top:4px solid var(--primary);
}
.cta-box h3{ font-family:'Fraunces', serif; font-weight:500; font-size:1.45rem; margin:0 0 10px !important; color:var(--ink) !important; }
.cta-box p{ color:var(--ink-soft) !important; margin:0 0 18px !important; }
.cta-box .cta-row{ gap:14px; }
.cta-box .btn-ghost{ color:var(--ink); border-color:var(--line); }
.cta-box .btn-ghost:hover{ background:var(--mono-chip); }
.sources{ font-size:0.9rem; }
.sources li{ font-size:0.92rem !important; }

.field textarea, .field select{
  width:100%; font:inherit; font-size:1rem; color:var(--ink);
  background:var(--bg); border:1px solid var(--line); border-radius:3px; padding:12px 14px;
}
.field textarea{ min-height:150px; resize:vertical; }
.field textarea:focus, .field select:focus{ outline:2px solid var(--primary); outline-offset:1px; }
.contact-grid{ display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:34px; align-items:start; }
@media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; } }
.side-card{ border:1px solid var(--canvas-line); border-radius:12px; padding:24px 24px 20px; background:var(--canvas-alt); }
.side-card h3{ font-family:'Fraunces', serif; font-weight:500; font-size:1.2rem; margin:0 0 10px; color:var(--canvas-ink); }
.side-card p{ color:var(--canvas-ink-soft); font-size:0.98rem; margin:0 0 12px; }
.side-card p:last-child{ margin-bottom:0; }
.pc-link{ display:inline-block; margin-top:10px; font-size:0.9rem; font-weight:700; color:var(--primary); text-decoration:none; }
.pc-link:hover{ text-decoration:underline; }
.steps-link{ margin:26px 0 0; font-size:1.02rem; }
.steps-link a{ font-weight:700; }

.site-footer{ border-top:1px solid var(--canvas-line); padding:38px 0 54px; }
.foot-grid{ display:grid; grid-template-columns:minmax(0,1.4fr) repeat(auto-fit, minmax(0,1fr)); gap:30px; }
@media (max-width:700px){ .foot-grid{ grid-template-columns:1fr 1fr; } .foot-grid > div:first-child{ grid-column:1 / -1; } }
.site-footer h4{ font-family:'IBM Plex Mono', monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--accent-bright); margin:0 0 12px; font-weight:500; }
.site-footer ul{ list-style:none; padding:0; margin:0; }
.site-footer li{ margin-bottom:8px; }
.site-footer a{ color:var(--canvas-ink-soft); text-decoration:none; font-size:0.95rem; }
.site-footer a:hover{ color:var(--canvas-ink); }
.founder{ display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:48px; align-items:start; }
@media (max-width:760px){ .founder{ grid-template-columns:1fr; gap:26px; } }
.founder h2{ max-width:20ch; }
.founder .f-text p{ color:var(--canvas-ink-soft); font-size:1.08rem; max-width:54ch; margin:0 0 14px; }
.founder .f-card{ border-top:2px solid var(--accent-bright); padding-top:18px; }
.founder .f-name{ font-family:'Fraunces', serif; font-size:1.35rem; font-weight:500; color:var(--canvas-ink); margin:0 0 2px; }
.founder .f-role{ color:var(--canvas-ink-soft); margin:0 0 16px; font-size:1rem; }
.founder .f-links{ list-style:none; padding:0; margin:0; }
.founder .f-links li{ margin-bottom:8px; }
.founder .f-links a{ color:var(--canvas-ink); font-weight:600; }
.founder .f-photo{ width:112px; height:112px; border-radius:50%; object-fit:cover; margin:0 0 16px; display:block; }
.consent{ display:flex; gap:10px; align-items:flex-start; margin:4px 0 18px; font-size:0.92rem; color:var(--ink-soft); }
.consent input{ margin-top:4px; width:auto; flex:none; accent-color:var(--primary); }
.consent a{ color:var(--primary); }
.privacy-note{ font-size:0.88rem; color:var(--ink-soft); margin:2px 0 16px; }
.legal-meta{ font-size:0.92rem; color:var(--canvas-ink-soft); margin:0 0 8px; }
.legal-table{ width:100%; border-collapse:collapse; margin:10px 0 0; }
.legal-table th, .legal-table td{ text-align:left; padding:10px 12px 10px 0; border-bottom:1px solid var(--canvas-line); font-size:1rem; vertical-align:top; color:var(--canvas-ink-soft); }
.legal-table th{ width:34%; color:var(--canvas-ink); font-weight:600; }
.notfound{ padding:110px 0 120px; }
.notfound .big{ font-family:'Fraunces', serif; font-size:clamp(4rem,12vw,7rem); color:var(--accent-bright); margin:0; line-height:1; }
.site-footer p{ font-size:0.88rem; color:var(--canvas-ink-soft); max-width:46ch; margin:10px 0 0; }

/* ============ v4: selector de idioma ============ */
.nav .lang-switch{ display:inline-flex; align-items:center; border:1px solid rgba(242,239,228,0.22); border-radius:999px; padding:2px; gap:2px; }
.nav .lang-switch a{ font-size:0.78rem; font-weight:700; letter-spacing:0.04em; padding:3px 10px; border-radius:999px; border-bottom:none; color:var(--canvas-ink-soft); }
.nav .lang-switch a:hover{ color:var(--canvas-ink); }
.nav .lang-switch a.on{ background:var(--accent-bright); color:#07140F; }
.nav .lang-switch a.on:hover{ color:#07140F; }
