
    :root {
      --bg: #F6F5F0;
      --bg-deep: #EEECE4;
      --paper: #ffffff;
      --ink: #1E1E1E;
      --ink-soft: #2A2A2A;
      --muted: #5a5f5e;
      --line: #e4e1d8;
      --line-soft: #ebe8e0;
      --petrol: #3A7F98;
      --petrol-dark: #2f6a7f;
      --petrol-soft: #e3eef0;
      --coral: #E07B5F;
      --coral-dark: #c96a50;
      --coral-soft: #f8ebe6;
      --accent: var(--petrol);
      --accent-deep: var(--petrol-dark);
      --accent-soft: var(--petrol-soft);
      --cta: var(--coral);
      --cta-dark: var(--coral-dark);
      --cta-soft: var(--coral-soft);
      --teal: var(--petrol);
      --teal-soft: var(--petrol-soft);
      --shadow: 0 1px 0 rgba(30,30,30,.04), 0 18px 48px rgba(30,30,30,.07);
      --shadow-lg: 0 2px 0 rgba(30,30,30,.03), 0 32px 80px rgba(30,30,30,.1);
      --radius: 4px;
      --radius-lg: 8px;
      --max: 1120px;
      --serif: "Fraunces", "Times New Roman", Georgia, serif;
      --sans: "Inter", system-ui, -apple-system, sans-serif;
      --ease: cubic-bezier(.22, 1, .36, 1);
    }

    * { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; overflow-x: clip; }
    body {
      overflow-x: clip;
      font-family: var(--sans);
      color: var(--ink);
      background: var(--bg);
      line-height: 1.6;
      font-size: 16.5px;
      font-weight: 400;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    }
    img, svg { display: block; max-width: 100%; }
    a { color: var(--petrol); text-decoration-thickness: 1px; text-underline-offset: 3px; }
    a:hover { color: var(--petrol-dark); }
    .wrap { width: min(var(--max), calc(100% - 2.5rem)); margin: 0 auto; }
    .wrap-narrow { width: min(720px, calc(100% - 2.5rem)); margin: 0 auto; }

    /* ——— Nav ——— */
    .nav {
      position: sticky; top: 0; z-index: 50;
      background: rgba(246, 245, 240, .92);
      backdrop-filter: blur(14px) saturate(1.2);
      -webkit-backdrop-filter: blur(14px) saturate(1.2);
      border-bottom: 1px solid transparent;
      transition: border-color .3s var(--ease), background .3s;
    }
    .nav.scrolled { border-bottom-color: var(--line); }
    .nav-inner {
      display: flex; align-items: center; justify-content: space-between;
      padding: 1.05rem 0; gap: 1.5rem;
    }
    .brand {
      display: flex; align-items: baseline; gap: .65rem;
      color: inherit; text-decoration: none;
    }
    .brand:hover { color: inherit; }
    .logo {
      display: inline-flex; align-items: center; gap: .65rem;
      color: inherit; text-decoration: none;
    }
    .logo:hover { color: inherit; text-decoration: none; }
    .logo-icon {
      width: 36px; height: 36px; flex-shrink: 0;
      border-radius: 8px;
      display: block;
    }
    .logo-mark {
      font-family: var(--serif);
      font-weight: 600; font-size: 1.15rem;
      letter-spacing: -.02em;
      color: var(--ink);
      line-height: 1.1;
    }
    .logo-mark em {
      font-style: italic; font-weight: 500;
      color: var(--petrol);
    }
    .foot-inner .logo-icon {
      width: 40px; height: 40px; border-radius: 9px;
    }
    .foot-inner .logo {
      margin-bottom: .55rem;
    }
    .brand-mark { /* legacy alias */
      font-family: var(--serif);
      font-weight: 600; font-size: 1.15rem;
      letter-spacing: -.02em;
      color: var(--ink);
    }
    .brand-mark em {
      font-style: italic; font-weight: 500;
      color: var(--petrol);
    }
    .brand-sep {
      width: 1px; height: 14px; background: var(--line);
      display: none;
    }
    @media (min-width: 720px) {
      .brand-sep { display: block; }
      .brand-tag {
        font-size: .72rem; color: var(--muted);
        letter-spacing: .04em; text-transform: uppercase;
        font-weight: 500;
      }
    }
    .brand-tag { display: none; }
    @media (min-width: 720px) { .brand-tag { display: block; } }
    .nav-links {
      display: flex; align-items: center; gap: 1.6rem;
    }
    .nav-links a {
      color: var(--muted); font-size: .84rem; font-weight: 500;
      text-decoration: none; letter-spacing: .01em;
      transition: color .2s;
    }
    .nav-links a:hover { color: var(--ink); }
    .nav-cta {
      display: inline-flex; align-items: center;
      background: var(--coral); color: #fff !important;
      padding: .55rem 1.05rem; border-radius: 999px;
      font-size: .8rem !important; font-weight: 600 !important;
      letter-spacing: .02em; text-decoration: none !important;
      transition: background .2s, transform .2s var(--ease) !important;
    }
    .nav-cta:hover { background: var(--coral-dark) !important; color: #fff !important; transform: translateY(-1px); }

    /* ——— Buttons ——— */
    .btn {
      display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
      border: none; border-radius: 999px;
      padding: .9rem 1.45rem;
      font-family: inherit; font-weight: 500; font-size: .9rem;
      cursor: pointer; text-decoration: none !important;
      transition: transform .2s var(--ease), background .2s, box-shadow .2s, color .2s;
      letter-spacing: .01em;
    }
    .btn:hover { transform: translateY(-1px); }
    .btn-primary { background: var(--petrol); color: #fff; }
    .btn-primary:hover { background: var(--petrol-dark); color: #fff; }
    .btn-accent { background: var(--coral); color: #fff; }
    .btn-accent:hover { background: var(--coral-dark); color: #fff; }
    .btn-coral { background: var(--coral); color: #fff; }
    .btn-coral:hover { background: var(--coral-dark); color: #fff; }
    .btn-ghost {
      background: transparent; color: var(--ink);
      border: 1px solid var(--line);
    }
    .btn-ghost:hover { background: var(--paper); border-color: var(--ink); color: var(--ink); }
    .btn-sm { padding: .65rem 1.1rem; font-size: .82rem; }

    /* ——— Hero ——— */
    .hero {
      position: relative;
      padding: clamp(2.2rem, 6vw, 5.5rem) 0 clamp(3.2rem, 7vw, 6rem);
      overflow: hidden;
    }
    @media (min-width: 901px) {
      .hero { min-height: calc(100vh - 5rem); display: flex; align-items: center; }
      .hero-visual {
        background: transparent;
        border: none;
        box-shadow: none;
        aspect-ratio: 6 / 5;
        max-height: 540px;
      }
      .hero-visual .stamp { display: none; }
      .hero-caption { display: block; text-align: left; margin-top: .85rem; }
      .hero-visual img { object-fit: contain; }
    }
    .hero-grid {
      display: grid;
      grid-template-columns: 1.05fr .95fr;
      gap: clamp(2rem, 5vw, 4.5rem);
      align-items: center;
    }
    .hero-copy { position: relative; z-index: 2; }
    .eyebrow {
      display: inline-flex; align-items: center; gap: .55rem;
      font-size: .72rem; font-weight: 600;
      letter-spacing: .12em; text-transform: uppercase;
      color: var(--accent); margin-bottom: 1.4rem;
    }
    .eyebrow::before {
      content: ""; width: 18px; height: 1px; background: var(--accent);
    }
    .hero h1 {
      font-family: var(--serif);
      font-size: clamp(2.45rem, 5.4vw, 3.75rem);
      font-weight: 500;
      line-height: 1.06;
      letter-spacing: -.038em;
      color: var(--ink);
      margin-bottom: 1.6rem;
      max-width: 13.5ch;
    }
    .hero h1 .italic {
      font-style: italic; font-weight: 500;
      color: var(--petrol);
    }
    .hero-lead {
      color: var(--muted); font-size: 1.05rem;
      line-height: 1.65; max-width: 34rem;
      margin-bottom: 1.6rem;
    }
    .hero-lead strong { color: var(--ink-soft); font-weight: 500; }
    .hero-tagline {
      font-family: var(--serif); font-style: italic; font-weight: 500;
      font-size: 1.15rem; color: var(--coral);
      margin: -.4rem 0 1.2rem; letter-spacing: -.01em;
    }
    .hero-cta {
      display: flex; flex-wrap: wrap; align-items: center;
      gap: 1rem 1.4rem; margin-bottom: 0;
    }
    .hero-cta .btn { padding: .95rem 1.55rem; font-size: .92rem; font-weight: 600; }
    .hero-secondary {
      font-size: .9rem; font-weight: 500;
      color: var(--ink-soft);
      text-decoration: none;
      border-bottom: 1px solid rgba(30,30,30,.22);
      padding-bottom: 1px;
      transition: color .2s, border-color .2s;
    }
    .hero-secondary:hover {
      color: var(--petrol);
      border-bottom-color: var(--petrol);
    }
    /* Thin cota / dimension lines (used elsewhere) */
    .cota-line {
      display: flex; align-items: center; gap: .55rem;
      color: var(--petrol); font-size: .68rem; font-weight: 500;
      letter-spacing: .08em; text-transform: uppercase;
      margin: 1.2rem 0 .2rem; opacity: .85;
    }
    .cota-line::before, .cota-line::after {
      content: ""; height: 1px; background: var(--petrol); opacity: .45;
    }
    .cota-line::before { width: 18px; }
    .cota-line::after { flex: 1; max-width: 80px; }
    .plan-rule {
      height: 1px; background: linear-gradient(90deg, var(--petrol), transparent);
      opacity: .35; margin: 0 0 1.4rem; border: 0;
    }
    .hero-meta {
      display: flex; flex-wrap: wrap; gap: 1.4rem;
      padding-top: 1.4rem; border-top: 1px solid var(--line);
      font-size: .82rem; color: var(--muted);
    }
    .hero-meta strong { color: var(--ink); font-weight: 500; display: block; font-size: .9rem; margin-bottom: .1rem; }

    /* Hero visual — technical plan fragment */
    .hero-visual {
      position: relative;
      aspect-ratio: 4 / 5;
      max-height: 560px;
      background: transparent;
      border: none;
      box-shadow: none;
      overflow: visible;
      display: flex;
      flex-direction: column;
      align-items: stretch;
      justify-content: center;
    }
    .hero-visual picture {
      display: block;
      width: 100%;
      height: 100%;
      flex: 1 1 auto;
      min-height: 0;
    }
    .hero-visual img {
      width: 100%; height: 100%;
      object-fit: contain; object-position: center center;
      display: block;
      background: transparent;
    }
    .hero-visual .stamp {
      position: absolute; bottom: 1.15rem; left: 1.15rem; right: 1.15rem;
      background: rgba(255, 255, 255, .94);
      backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      border: 1px solid var(--line);
      padding: .75rem .9rem;
      display: grid; gap: .15rem;
    }
    .hero-visual .stamp .label {
      font-size: .62rem; letter-spacing: .1em; text-transform: uppercase;
      color: var(--accent); font-weight: 600;
    }
    .hero-visual .stamp .title {
      font-family: var(--serif); font-size: .98rem; font-weight: 500;
      letter-spacing: -.01em;
    }
    .hero-visual .stamp .sub {
      font-size: .75rem; color: var(--muted);
    }
    .hero-caption {
      display: block;
      margin-top: .7rem;
      font-size: .62rem;
      font-weight: 600;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--muted);
      text-align: left;
    }

    /* Below-fold intro (prices + lead moved out of first screen) */
    .hero-below {
      padding: 0 0 clamp(2.5rem, 5vw, 3.5rem);
    }
    .hero-below-inner {
      background: var(--paper);
      border: 1px solid var(--line);
      padding: clamp(1.4rem, 3vw, 1.9rem) clamp(1.3rem, 3vw, 2rem);
      display: grid;
      grid-template-columns: 1.2fr .8fr;
      gap: clamp(1.2rem, 3vw, 2.2rem);
      align-items: start;
    }
    .hero-below-lead {
      color: var(--muted); font-size: 1.02rem; line-height: 1.65;
    }
    .hero-below-lead strong { color: var(--ink-soft); font-weight: 500; }
    .hero-below .hero-meta {
      border-top: none; padding-top: 0;
      gap: 1.1rem 1.5rem;
    }
    @media (min-width: 901px) {
      .hero-below-lead { display: none; }
      .hero-below-inner { grid-template-columns: 1fr; }
      .hero .hero-lead { display: block; }
    }


    /* Mobile: first screen = headline + CTA + plan visual */
    @media (max-width: 900px) {
      .hero {
        padding: 1.25rem 0 1rem;
        min-height: calc(100svh - 4.35rem);
        display: flex; flex-direction: column;
        justify-content: space-between;
      }
      /* Same horizontal inset as .nav .wrap — do not override width */
      .hero .wrap.hero-grid {
        flex: 1;
        display: flex; flex-direction: column;
        justify-content: flex-start;
        align-items: stretch;
        gap: 1.15rem;
      }
      .hero-copy { flex: 0 0 auto; width: 100%; align-self: stretch; }
      .hero h1 {
        max-width: 11.5ch;
        font-size: clamp(2.05rem, 7.6vw, 2.55rem);
        margin-bottom: 1.1rem;
        letter-spacing: -.042em;
        line-height: 1.07;
      }
      .hero .eyebrow,
      .hero .hero-tagline,
      .hero .cota-line,
      .hero .plan-rule,
      .hero .hero-lead,
      .hero-visual .stamp { display: none; }
      .hero-cta {
        margin-bottom: 0;
        gap: .85rem 1.2rem;
      }
      .hero-cta .btn {
        padding: .85rem 1.35rem;
        font-size: .88rem;
        border-radius: 999px;
        width: auto;
      }
      .hero-visual {
        flex: 0 0 auto;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        min-height: 0;
        aspect-ratio: auto;
        max-height: none;
        width: 100%;
        margin: 0;
        border: none;
        background: transparent;
        box-shadow: none;
        overflow: visible;
        gap: 0;
      }
      .hero-visual picture {
        flex: 1 1 auto;
        width: 100%;
        min-height: 0;
        display: flex;
        align-items: center;
        justify-content: center;
      }
      .hero-visual img {
        width: 100%;
        height: auto;
        max-height: min(50svh, 440px);
        object-fit: contain;
        object-position: center center;
        background: transparent;
      }
      .hero-caption { display: block; text-align: left; margin-top: .55rem; }
      .hero-below { padding: 1.75rem 0 2.5rem; }
      .hero-below-inner {
        grid-template-columns: 1fr;
        gap: 1.35rem;
      }
    }
    @media (max-width: 560px) {
      .hero h1 { font-size: 2.05rem; line-height: 1.08; max-width: 12ch; }
      .hero-secondary { font-size: .86rem; }
      .nav-cta { padding: .5rem .9rem; font-size: .75rem !important; }
    }

    /* ——— Sections ——— */
    section.block { padding: clamp(3.5rem, 7vw, 5.5rem) 0; }
    section.block.alt { background: var(--paper); border-block: 1px solid var(--line-soft); }
    section.block.ink {
      background: #1E1E1E;
      color: #F6F5F0;
      border: none;
    }
    .section-head { max-width: 38rem; margin-bottom: clamp(1.8rem, 4vw, 2.6rem); }
    .section-head.center { margin-left: auto; margin-right: auto; text-align: center; }
    .section-label {
      display: block; font-size: .7rem; font-weight: 600;
      letter-spacing: .14em; text-transform: uppercase;
      color: var(--accent); margin-bottom: .7rem;
    }
    .ink .section-label { color: #9CC9D3; }
    .section-head h2 {
      font-family: var(--serif);
      font-size: clamp(1.7rem, 3.4vw, 2.35rem);
      font-weight: 500; letter-spacing: -.025em;
      line-height: 1.15; margin-bottom: .7rem;
      color: var(--ink);
    }
    .ink .section-head h2 { color: #F6F5F0; }
    .section-head p { color: var(--muted); font-size: 1.02rem; }
    .ink .section-head p { color: rgba(246,245,240,.65); }

    /* Reveal */
    .reveal {
      opacity: 0; transform: translateY(22px);
      transition: opacity .7s var(--ease), transform .7s var(--ease);
    }
    .reveal.in { opacity: 1; transform: none; }
    .reveal-delay-1 { transition-delay: .08s; }
    .reveal-delay-2 { transition-delay: .16s; }
    .reveal-delay-3 { transition-delay: .24s; }
    .reveal-delay-4 { transition-delay: .32s; }

    /* ——— Sí / No ——— */
    .split {
      display: grid; grid-template-columns: 1fr 1fr; gap: 1px;
      background: var(--line); border: 1px solid var(--line);
    }
    .split-pane { background: var(--paper); padding: clamp(1.4rem, 3vw, 2rem); }
    .split-pane.yes { background: var(--teal-soft); }
    .split-pane.no { background: var(--coral-soft); }
    .split-pane h3 {
      font-family: var(--serif); font-size: 1.15rem; font-weight: 500;
      margin-bottom: 1rem; letter-spacing: -.015em;
      display: flex; align-items: center; gap: .55rem;
    }
    .split-pane h3 .dot {
      width: 8px; height: 8px; border-radius: 50%;
    }
    .yes h3 .dot { background: var(--petrol); }
    .no h3 .dot { background: var(--coral); }
    .split-pane ul { list-style: none; display: grid; gap: .55rem; }
    .split-pane li {
      font-size: .93rem; color: var(--ink-soft);
      padding-left: 1.15rem; position: relative; line-height: 1.45;
    }
    .split-pane li::before {
      content: ""; position: absolute; left: 0; top: .55em;
      width: 6px; height: 1px; background: currentColor; opacity: .45;
    }

    /* ——— Problem cards ——— */
    .grid-3 {
      display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem;
    }
    .card {
      background: var(--paper); border: 1px solid var(--line);
      padding: 1.5rem 1.4rem; position: relative;
    }
    .alt .card { background: var(--bg); }
    .card .num {
      font-family: var(--serif); font-style: italic;
      font-size: 1.6rem; color: var(--accent); font-weight: 400;
      margin-bottom: .7rem; line-height: 1;
    }
    .card h3 {
      font-family: var(--serif); font-size: 1.15rem; font-weight: 500;
      letter-spacing: -.015em; margin-bottom: .45rem;
    }
    .card p { color: var(--muted); font-size: .92rem; }

    /* ——— Steps ——— */
    .steps {
      display: grid; grid-template-columns: repeat(4, 1fr);
      gap: 0; counter-reset: step;
      border-top: 1px solid var(--line);
    }
    .step {
      padding: 1.6rem 1.3rem 1.6rem 0;
      border-right: 1px solid var(--line);
      position: relative;
    }
    .step:last-child { border-right: none; padding-right: 0; }
    .step:first-child { padding-left: 0; }
    .step .n {
      font-family: var(--serif); font-style: italic;
      font-size: 2rem; color: var(--accent); font-weight: 400;
      line-height: 1; margin-bottom: .85rem;
      display: block;
    }
    .step h3 {
      font-size: .98rem; font-weight: 500; margin-bottom: .4rem;
      letter-spacing: -.01em;
    }
    .step p { color: var(--muted); font-size: .88rem; line-height: 1.5; }


    /* ——— Cómo se contrata / Pago ——— */
    .pay-layout {
      display: grid;
      grid-template-columns: 1.15fr .85fr;
      gap: clamp(1.5rem, 4vw, 2.6rem);
      align-items: start;
    }
    .pay-steps {
      display: grid;
      gap: 0;
      border-top: 1px solid var(--line);
    }
    .pay-step {
      display: grid;
      grid-template-columns: 3.2rem 1fr;
      gap: 1rem;
      padding: 1.25rem 0;
      border-bottom: 1px solid var(--line);
      align-items: start;
    }
    .pay-step .n {
      font-family: var(--serif);
      font-style: italic;
      font-size: 1.55rem;
      color: var(--accent);
      font-weight: 400;
      line-height: 1.1;
      padding-top: .1rem;
    }
    .pay-step h3 {
      font-size: 1rem;
      font-weight: 560;
      letter-spacing: -.01em;
      margin-bottom: .3rem;
    }
    .pay-step p {
      color: var(--muted);
      font-size: .9rem;
      line-height: 1.55;
    }
    .pay-step a { font-weight: 500; }
    .pay-card {
      background: var(--paper);
      border: 1px solid var(--line);
      box-shadow: var(--shadow);
      padding: 1.55rem 1.45rem 1.4rem;
      position: sticky;
      top: 5.2rem;
    }
    .pay-card .eyebrow {
      font-size: .72rem;
      letter-spacing: .14em;
      text-transform: uppercase;
      color: var(--petrol);
      font-weight: 600;
      margin-bottom: .55rem;
    }
    .pay-card h3 {
      font-family: var(--serif);
      font-size: 1.25rem;
      font-weight: 560;
      letter-spacing: -.02em;
      margin-bottom: .85rem;
    }
    .pay-row {
      display: grid;
      gap: .2rem;
      padding: .7rem 0;
      border-top: 1px solid var(--line-soft);
    }
    .pay-row:last-of-type { border-bottom: 1px solid var(--line-soft); margin-bottom: 1rem; }
    .pay-row .k {
      font-size: .68rem;
      letter-spacing: .1em;
      text-transform: uppercase;
      color: var(--muted);
      font-weight: 600;
    }
    .pay-row .v {
      font-size: .95rem;
      color: var(--ink);
      font-weight: 500;
      word-break: break-word;
    }
    .pay-row .v.mono {
      font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
      font-size: .92rem;
      letter-spacing: .02em;
    }
    #iban-text, #iban-text a { color: inherit !important; text-decoration: none !important; pointer-events: none; }
    .iban-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: .75rem;
    }
    .btn-copy {
      flex-shrink: 0;
      border: 1px solid var(--petrol);
      background: var(--petrol-soft);
      color: var(--petrol-dark);
      font-family: var(--sans);
      font-size: .72rem;
      font-weight: 600;
      letter-spacing: .06em;
      text-transform: uppercase;
      padding: .45rem .7rem;
      border-radius: var(--radius);
      cursor: pointer;
      transition: background .2s var(--ease), color .2s, border-color .2s;
    }
    .btn-copy:hover { background: var(--petrol); color: #fff; }
    .btn-copy.copied {
      background: var(--coral-soft);
      border-color: var(--coral);
      color: var(--coral-dark);
    }
    .pay-note {
      margin-top: .85rem;
      font-size: .82rem;
      color: var(--muted);
      line-height: 1.5;
    }
    .pay-note strong { color: var(--ink-soft); font-weight: 560; }
    @media (max-width: 860px) {
      .pay-layout { grid-template-columns: 1fr; }
      .pay-card { position: static; }
    }

    /* ——— Report mock ——— */
    .report-layout {
      display: grid; grid-template-columns: 1.05fr .95fr;
      gap: clamp(1.5rem, 4vw, 2.5rem); align-items: start;
    }
    .report-intro p { color: var(--muted); margin-bottom: 1rem; }
    .report-intro ul {
      list-style: none; display: grid; gap: .65rem; margin: 1.2rem 0 1.6rem;
    }
    .report-intro li {
      display: flex; gap: .7rem; align-items: flex-start;
      font-size: .92rem; color: var(--ink-soft);
    }
    .report-intro li .tick {
      flex-shrink: 0; width: 18px; height: 18px; margin-top: .15rem;
      border: 1px solid var(--accent); border-radius: 50%;
      display: grid; place-items: center;
      color: var(--accent); font-size: .65rem;
    }
    .report-mock {
      background: var(--paper);
      border: 1px solid var(--line);
      box-shadow: var(--shadow-lg);
      position: relative;
      overflow: hidden;
    }
    .report-mock .ribbon {
      position: absolute; top: 1.1rem; right: -2.2rem;
      background: var(--coral); color: #fff;
      font-size: .65rem; font-weight: 600;
      letter-spacing: .12em; text-transform: uppercase;
      padding: .35rem 2.6rem; transform: rotate(35deg);
      z-index: 2; box-shadow: 0 2px 8px rgba(224,123,95,.28);
    }
    @media (max-width: 560px) {
      .report-mock .ribbon {
        top: 0; right: 0; left: auto;
        transform: none; padding: .4rem .75rem;
        font-size: .62rem; border-radius: 0 0 0 4px;
        box-shadow: none;
      }
    }
    .report-header {
      display: flex; justify-content: space-between; align-items: flex-start;
      padding: 1.25rem 1.35rem; border-bottom: 1px solid var(--line);
      background: var(--bg);
    }
    .report-header .rh-brand {
      font-family: var(--serif); font-weight: 500; font-size: .95rem;
    }
    .report-header .rh-meta {
      text-align: right; font-size: .7rem; color: var(--muted);
      line-height: 1.5; letter-spacing: .02em;
    }
    .report-body { padding: 1.25rem 1.35rem 1.5rem; }
    .report-body .rb-title {
      font-family: var(--serif); font-size: 1.05rem; font-weight: 500;
      margin-bottom: .25rem; letter-spacing: -.01em;
    }
    .report-body .rb-sub {
      font-size: .75rem; color: var(--muted); margin-bottom: 1.1rem;
      letter-spacing: .04em; text-transform: uppercase;
    }
    .plan-snippet {
      position: relative;
      background: #F8F5EF;
      border: 1px solid var(--line);
      height: 180px; margin-bottom: 1.1rem;
      overflow: hidden;
    }
    .plan-snippet svg { overflow: hidden; }
    .plan-snippet svg { width: 100%; height: 100%; }
    .finding {
      border-left: 2px solid var(--coral);
      padding: .65rem .85rem; margin-bottom: .65rem;
      background: var(--coral-soft);
    }
    .finding .f-tag {
      font-size: .62rem; font-weight: 600; letter-spacing: .1em;
      text-transform: uppercase; color: var(--coral); margin-bottom: .2rem;
    }
    .finding .f-text { font-size: .82rem; color: var(--ink-soft); line-height: 1.45; }
    .finding.ok { border-left-color: var(--teal); background: var(--teal-soft); }
    .finding.ok .f-tag { color: var(--teal); }
    .report-footer {
      display: flex; justify-content: space-between; align-items: center;
      padding: .85rem 1.35rem; border-top: 1px solid var(--line);
      font-size: .72rem; color: var(--muted); background: var(--bg);
    }
    .report-footer .sig {
      font-family: var(--serif); font-style: italic; color: var(--ink);
      font-size: .85rem;
    }

    /* ——— Confidentiality ——— */
    .conf-grid {
      display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem;
    }
    .conf-card {
      padding: 1.5rem 1.3rem;
      border: 1px solid rgba(246,245,240,.12);
      background: rgba(246,245,240,.04);
    }
    .conf-card h3 {
      font-family: var(--serif); font-size: 1.1rem; font-weight: 500;
      margin-bottom: .5rem; letter-spacing: -.01em;
      color: #F6F5F0;
    }
    .conf-card p { font-size: .9rem; color: rgba(246,245,240,.62); line-height: 1.55; }
    .conf-icon {
      width: 36px; height: 36px; margin-bottom: 1rem;
      color: #9CC9D3;
    }

    /* ——— Pricing ——— */
    .price-grid {
      display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem;
      align-items: stretch;
    }
    .price {
      background: var(--paper); border: 1px solid var(--line);
      padding: 1.7rem 1.45rem; display: flex; flex-direction: column;
      position: relative; transition: box-shadow .3s var(--ease), border-color .3s;
    }
    .price:hover { box-shadow: var(--shadow); }
    .price.featured {
      border-color: var(--petrol);
      box-shadow: var(--shadow-lg);
    }
    .price.featured::before {
      content: "Recomendado para empezar";
      position: absolute; top: 0; left: 0; right: 0;
      background: var(--petrol); color: #fff;
      font-size: .65rem; font-weight: 600;
      letter-spacing: .1em; text-transform: uppercase;
      text-align: center; padding: .4rem;
    }
    .price.featured { padding-top: 2.5rem; }
    .price .tag {
      align-self: flex-start;
      font-size: .68rem; font-weight: 600;
      letter-spacing: .1em; text-transform: uppercase;
      color: var(--accent); margin-bottom: .7rem;
    }
    .price .name {
      font-family: var(--serif); font-size: 1.35rem; font-weight: 500;
      letter-spacing: -.02em; margin-bottom: .35rem;
    }
    .price .amount {
      font-family: var(--serif); font-size: 2.2rem; font-weight: 500;
      letter-spacing: -.03em; line-height: 1; margin-bottom: .2rem;
    }
    .price .amount span {
      font-family: var(--sans); font-size: .8rem; font-weight: 400;
      color: var(--muted); letter-spacing: 0;
    }
    .price .desc {
      font-size: .85rem; color: var(--muted); margin-bottom: 1.2rem;
      padding-bottom: 1.2rem; border-bottom: 1px solid var(--line-soft);
    }
    .price ul {
      list-style: none; display: grid; gap: .45rem;
      flex: 1; margin-bottom: 1.4rem;
    }
    .price li {
      font-size: .86rem; color: var(--ink-soft);
      padding-left: 1.1rem; position: relative;
    }
    .price li::before {
      content: "·"; position: absolute; left: 0; color: var(--accent);
      font-weight: 700;
    }

    /* ——— Audiences ——— */
    .aud-grid {
      display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem;
    }
    .aud-card {
      background: var(--bg); border: 1px solid var(--line);
      padding: 1.6rem 1.4rem; scroll-margin-top: 90px;
      transition: border-color .25s;
    }
    .alt .aud-card { background: var(--paper); }
    .aud-card:hover { border-color: var(--ink); }
    .aud-card .aud-label {
      font-size: .65rem; font-weight: 600; letter-spacing: .12em;
      text-transform: uppercase; color: var(--accent); margin-bottom: .55rem;
    }
    .aud-card h3 {
      font-family: var(--serif); font-size: 1.2rem; font-weight: 500;
      letter-spacing: -.015em; margin-bottom: .5rem;
    }
    .aud-card p { font-size: .9rem; color: var(--muted); margin-bottom: .8rem; }
    .aud-card .meta {
      font-size: .78rem; color: var(--ink); font-weight: 500;
      padding-top: .75rem; border-top: 1px solid var(--line-soft);
    }

    .aud-secondary {
      margin-top: 2rem; padding-top: 1.8rem;
      border-top: 1px solid var(--line);
    }
    .aud-secondary .subhead {
      font-size: .7rem; font-weight: 600; letter-spacing: .12em;
      text-transform: uppercase; color: var(--petrol);
      margin-bottom: 1rem;
    }
    .aud-more-grid {
      display: grid; grid-template-columns: repeat(3, 1fr);
      gap: .85rem;
    }
    .aud-mini {
      padding: 1.15rem 1.15rem; border: 1px solid var(--line);
      background: var(--bg);
    }
    .alt .aud-mini { background: var(--paper); }
    .aud-mini h4 {
      font-family: var(--serif); font-size: 1rem; font-weight: 500;
      letter-spacing: -.01em; margin-bottom: .3rem;
    }
    .aud-mini p { font-size: .82rem; color: var(--muted); }
    .aud-mini .meta {
      font-size: .75rem; color: var(--petrol); font-weight: 500;
      margin-top: .55rem;
    }

    /* ——— Who ——— */
    .who {
      display: grid; grid-template-columns: auto 1fr;
      gap: 2rem; align-items: center;
      padding: 2rem; background: var(--paper);
      border: 1px solid var(--line);
    }
    .who-mark {
      width: 110px; height: 110px;
      border: 1px solid var(--line);
      background: var(--bg);
      display: grid; place-items: center;
      position: relative;
    }
    .who-mark .initials {
      font-family: var(--serif); font-size: 1.8rem; font-weight: 500;
      color: var(--accent); letter-spacing: -.02em;
    }
    .who-mark .ring {
      position: absolute; inset: 8px;
      border: 1px dashed var(--line);
    }
    .who h3 {
      font-family: var(--serif); font-size: 1.45rem; font-weight: 500;
      letter-spacing: -.02em; margin-bottom: .35rem;
    }
    .who .role {
      font-size: .85rem; color: var(--accent); font-weight: 500;
      letter-spacing: .04em; text-transform: uppercase; margin-bottom: .7rem;
    }
    .who p { color: var(--muted); font-size: .95rem; max-width: 40rem; }

    /* ——— FAQ ——— */
    .faq details {
      border-bottom: 1px solid var(--line);
      padding: 0;
    }
    .faq details:first-child { border-top: 1px solid var(--line); }
    .faq summary {
      cursor: pointer; font-weight: 500; font-size: 1rem;
      padding: 1.15rem 0; list-style: none;
      display: flex; align-items: center; gap: 1rem;
      letter-spacing: -.01em;
    }
    .faq summary::-webkit-details-marker { display: none; }
    .faq summary::after {
      content: "+"; margin-left: auto; flex-shrink: 0;
      font-family: var(--serif); font-size: 1.35rem;
      color: var(--accent); font-weight: 400;
      transition: transform .25s var(--ease);
    }
    .faq details[open] summary::after { content: "−"; }
    .faq details p {
      color: var(--muted); font-size: .95rem;
      padding: 0 0 1.25rem; max-width: 42rem; line-height: 1.6;
    }

    /* ——— CTA ——— */
    .cta-final {
      text-align: center;
      padding: clamp(3.5rem, 8vw, 5.5rem) 0;
    }
    .cta-final h2 {
      font-family: var(--serif);
      font-size: clamp(1.9rem, 4vw, 2.8rem);
      font-weight: 500; letter-spacing: -.03em;
      line-height: 1.12; margin-bottom: 1rem;
      max-width: 16ch; margin-left: auto; margin-right: auto;
    }
    .cta-final .lead {
      color: var(--muted); font-size: 1.05rem;
      max-width: 32rem; margin: 0 auto 1.8rem;
    }
    .cta-final .cta-actions {
      display: flex; flex-wrap: wrap; gap: .75rem;
      justify-content: center; margin-bottom: 1.2rem;
    }
    .cta-final .fine {
      font-size: .82rem; color: var(--muted);
    }

    /* ——— Footer ——— */
    footer.site-foot {
      position: relative; margin-top: 0; padding: 0;
      overflow: hidden; background: transparent;
      border-top: none;
    }
    .site-foot .wave-wrap { position: relative; width: 100%; line-height: 0; }
    .site-foot .wave-wrap svg { display: block; width: 100%; height: auto; }
    .site-foot .foot-inner {
      position: relative; z-index: 1;
      margin-top: -4.2rem;
      padding: 0 0 2.4rem;
      color: var(--ink);
    }
    .site-foot .tagline-wave {
      text-align: center; font-family: var(--serif);
      font-weight: 500; font-size: 1.15rem;
      color: var(--ink); margin-bottom: 1.4rem;
      letter-spacing: -.015em;
    }
    .foot-top {
      display: flex; justify-content: space-between; gap: 2rem;
      flex-wrap: wrap; margin-bottom: 2rem;
    }
    .foot-brand {
      font-family: var(--serif); font-size: 1.25rem; font-weight: 500;
      letter-spacing: -.02em; margin-bottom: .4rem;
    }
    .foot-brand em, .foot-inner .logo-mark em { font-style: italic; color: var(--petrol); }
    .foot-inner .logo-mark { font-family: var(--serif); font-weight: 500; letter-spacing: -.02em; }
    .foot-bottom { border-top-color: rgba(30,30,30,.12); }
    .foot-col a { color: var(--petrol-dark); }
    .foot-tag { font-size: .88rem; color: var(--muted); max-width: 28ch; }
    .foot-cols {
      display: flex; gap: 3rem; flex-wrap: wrap;
    }
    .foot-col h4 {
      font-size: .68rem; font-weight: 600; letter-spacing: .12em;
      text-transform: uppercase; color: var(--muted); margin-bottom: .7rem;
    }
    .foot-col a, .foot-col p {
      display: block; font-size: .88rem; color: var(--ink-soft);
      text-decoration: none; margin-bottom: .35rem;
    }
    .foot-col a:hover { color: var(--accent); }
    .foot-bottom {
      display: flex; justify-content: space-between; gap: 1rem;
      flex-wrap: wrap; padding-top: 1.4rem;
      border-top: 1px solid var(--line);
      font-size: .78rem; color: var(--muted);
    }

    /* ——— Blueprint bg motif ——— */
    .bp-bg {
      position: absolute; inset: 0; pointer-events: none; overflow: hidden;
      opacity: .35;
    }

    /* ——— Responsive ——— */
    @media (max-width: 900px) {
      .hero-grid, .report-layout, .grid-3, .conf-grid,
      .price-grid, .aud-grid, .split, .who { grid-template-columns: 1fr; }
      .steps { grid-template-columns: 1fr 1fr; }
      .step { border-right: none; border-bottom: 1px solid var(--line); padding: 1.3rem 0; }
      .step:nth-child(odd) { padding-right: 1rem; }
      .step:nth-child(even) { padding-left: 1rem; }
      .step:nth-last-child(-n+2) { border-bottom: none; }
      .nav-links .hide-sm { display: none; }
      .hero-meta { gap: 1rem; }
      section.block { padding: 3rem 0; }
      .aud-more-grid { grid-template-columns: 1fr 1fr; }
      .who { gap: 1.3rem; padding: 1.4rem; }
      .who-mark { width: 80px; height: 80px; }
      .who-mark .initials { font-size: 1.4rem; }
    }
    @media (max-width: 560px) {
      .aud-more-grid { grid-template-columns: 1fr; }
      .steps { grid-template-columns: 1fr; }
      .step:nth-child(odd), .step:nth-child(even) { padding-left: 0; padding-right: 0; }
      .step { border-bottom: 1px solid var(--line); }
      .step:last-child { border-bottom: none; }
      .wrap, .wrap-narrow { width: min(var(--max), calc(100% - 1.75rem)); }
      .hero-meta { flex-direction: column; gap: .9rem; }
    }

    @media (prefers-reduced-motion: reduce) {
      .reveal { opacity: 1; transform: none; transition: none; }
      html { scroll-behavior: auto; }
    }
  
.service-hero{padding:4rem 0 3rem;border-bottom:1px solid var(--line)}
.service-hero h1{font:500 clamp(2.4rem,5vw,4.5rem)/1.08 var(--serif);letter-spacing:-.035em;max-width:850px;margin:1rem 0 1.5rem}
.service-hero .intro{font-size:1.15rem;max-width:760px;color:var(--muted)}
.breadcrumb{font-size:.82rem;color:var(--muted);margin-bottom:2rem}
.service-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:4rem;padding:3rem 0}
.service-body section{margin-bottom:2.8rem;scroll-margin-top:110px}
.service-body h2{font:500 2rem/1.2 var(--serif);margin-bottom:1rem}
.service-body p{margin:.8rem 0}.service-body ul{padding-left:1.3rem;margin:1rem 0}.service-body li{margin:.65rem 0}
.service-aside{align-self:start;position:sticky;top:110px;background:var(--paper);padding:1.5rem;border:1px solid var(--line);border-top:4px solid var(--petrol)}
.service-aside h2{font:500 1.5rem/1.2 var(--serif);margin-bottom:1rem}.service-aside p{margin:.8rem 0}.service-aside .btn{width:100%;margin-top:1rem}
.service-faq details{border-bottom:1px solid var(--line);padding:1rem 0}.service-faq summary{font-weight:600;cursor:pointer}.service-faq p{padding-top:.5rem}
.service-related{padding:2.5rem 0;border-top:1px solid var(--line)}.service-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:1.5rem}
.service-card{display:block;padding:1.5rem;background:var(--paper);border:1px solid var(--line);text-decoration:none;color:var(--ink)}.service-card h3{font:500 1.45rem/1.25 var(--serif);margin-bottom:.8rem}.service-card p{font-size:.95rem;color:var(--muted)}.service-card span{display:block;color:var(--petrol);margin-top:1rem}
.service-footer{padding:2rem 0;border-top:1px solid var(--line);font-size:.9rem;color:var(--muted)}.service-footer .wrap{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.service-cta{background:var(--petrol-soft);padding:1.5rem;margin-top:2rem}.service-cta h2{font:500 1.8rem/1.2 var(--serif)}
@media(max-width:760px){.service-layout{grid-template-columns:1fr;gap:1.5rem;padding:2rem 0}.service-aside{position:static}.service-hero{padding:2.5rem 0 2rem}.service-cards{grid-template-columns:1fr}.service-footer .wrap{display:block}.service-footer p{margin:.5rem 0}}

