#!/usr/bin/env python3
"""Generate Dossier-Web-Design.pdf via Chrome headless.
Tres tiers: Lanzamiento 700€ / Presencia 1.300€ / Plataforma 3.000€
"""
import base64, os, subprocess, sys

WORKDIR = os.path.dirname(os.path.abspath(__file__))

with open(os.path.join(WORKDIR, "Dev-Valirica-Logo-Light-Clean.svg"), "rb") as f:
    LOGO = "data:image/svg+xml;base64," + base64.b64encode(f.read()).decode()

CSS = """
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&family=Poppins:wght@300;400;500;600;700&display=swap');

@page { size: A4 portrait; margin: 0; }

*, *::before, *::after {
  margin: 0; padding: 0; box-sizing: border-box;
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
}

:root {
  --navy: #012133;
  --cyan: #12d6e0;
  --paper: #F7F9FB;
  --line: #E5EAEE;
  --muted: #5A6B78;
  --soft-navy: #1a3548;
}

html, body { font-family: "Playfair Display", Georgia, serif; font-size: 10.5pt; color: var(--navy); background: #fff; }

/* ── PAGES ─────────────────────────────────────────── */

.page-cover {
  width: 210mm; height: 297mm;
  background: linear-gradient(145deg, #012133 0%, #01283f 50%, #013d5a 100%);
  color: white; position: relative; overflow: hidden;
  padding: 28mm 22mm; page-break-after: always;
}

.page {
  width: 210mm; min-height: 297mm;
  padding: 22mm 20mm 30mm 20mm;
  page-break-after: always; position: relative; background: white;
}

.cta-page {
  width: 210mm; min-height: 297mm;
  background: linear-gradient(145deg, #012133 0%, #01283f 50%, #013d5a 100%);
  color: white; padding: 32mm 25mm 28mm 25mm;
  page-break-after: always; position: relative; overflow: hidden;
}

.back-cover {
  width: 210mm; height: 297mm; background: var(--navy);
  color: white; padding: 32mm 25mm; position: relative;
  overflow: hidden; page-break-after: auto;
}

/* ── GLOWS ─────────────────────────────────────────── */

.bg-glow { position: absolute; border-radius: 50%; pointer-events: none; z-index: 0; }
.g1 { top:-50mm; right:-50mm; width:210mm; height:210mm;
      background: radial-gradient(circle, rgba(18,214,224,.20) 0%, transparent 68%); }
.g2 { bottom:-80mm; left:-60mm; width:190mm; height:190mm;
      background: radial-gradient(circle, rgba(18,214,224,.11) 0%, transparent 68%); }
.g3 { top:-55mm; right:-55mm; width:220mm; height:220mm;
      background: radial-gradient(circle, rgba(18,214,224,.20) 0%, transparent 68%); }
.g4 { bottom:-100mm; left:-50mm; width:260mm; height:260mm;
      background: radial-gradient(circle, rgba(18,214,224,.13) 0%, transparent 68%); }

/* ── COVER ─────────────────────────────────────────── */

.cover-logo { width: 36mm; display: block; position: relative; z-index: 2; }

.cover-client {
  font-family: "Poppins", sans-serif; font-size: 7.5pt; letter-spacing: .32em;
  color: rgba(255,255,255,.55); text-transform: uppercase; margin-top: 48mm;
  font-weight: 400; position: relative; z-index: 2;
}

.cover-tag {
  font-family: "Poppins", sans-serif; font-size: 8.5pt; letter-spacing: .22em;
  color: var(--cyan); text-transform: uppercase; margin-top: 4mm;
  font-weight: 600; position: relative; z-index: 2;
}

.cover-title {
  font-family: "Playfair Display", Georgia, serif; font-size: 40pt;
  line-height: 1.06; font-weight: 700; margin-top: 10mm; letter-spacing: -.015em;
  position: relative; z-index: 2; color: white;
}

.cover-title .accent { color: var(--cyan); font-style: italic; font-weight: 600; }

.cover-tiers {
  display: flex; gap: 3mm; margin-top: 9mm; position: relative; z-index: 2;
}

.ct-pill {
  font-family: "Poppins", sans-serif; font-size: 6.5pt; letter-spacing: .16em;
  text-transform: uppercase; font-weight: 600;
  padding: 1.5mm 4mm; border-radius: 100px;
  border: 1px solid rgba(18,214,224,.40); color: rgba(18,214,224,.75);
}

.ct-pill.active {
  background: var(--cyan); color: var(--navy);
  border-color: var(--cyan);
}

.cover-bottom {
  position: absolute; bottom: 26mm; left: 22mm; right: 22mm;
  display: flex; justify-content: space-between; align-items: flex-end; z-index: 2;
}

.cover-meta {
  font-family: "Poppins", sans-serif; font-size: 7.5pt; letter-spacing: .15em;
  color: rgba(255,255,255,.45); text-transform: uppercase;
}

.cover-edition {
  font-family: "Playfair Display", serif; font-size: 26pt; font-weight: 400;
  color: var(--cyan); line-height: 1;
}

.cover-line { width: 16mm; height: 2px; background: var(--cyan); margin: 4mm 0; }

/* ── FOOTER ─────────────────────────────────────────── */

.pf {
  position: absolute; bottom: 11mm; left: 20mm; right: 20mm;
  display: flex; justify-content: space-between; align-items: center;
  padding-top: 3mm; border-top: 1px solid var(--line);
}
.pf-text { font-family:"Poppins",sans-serif; font-size:6.5pt; letter-spacing:.14em; color:var(--muted); text-transform:uppercase; }
.pf-num  { font-family:"Poppins",sans-serif; font-size:8pt; font-weight:600; color:var(--navy); }

/* ── SECTION LABELS ──────────────────────────────────── */

.sn {
  font-family:"Poppins",sans-serif; font-size:8pt; letter-spacing:.28em;
  color:var(--cyan); text-transform:uppercase; font-weight:600;
  margin-bottom:7mm; display:flex; align-items:center; gap:3mm;
}
.sn::before { content:""; display:inline-block; width:11mm; height:1.5px; background:var(--cyan); flex-shrink:0; }

.st { font-family:"Playfair Display",Georgia,serif; font-size:32pt; font-weight:700; line-height:1.1; letter-spacing:-.018em; color:var(--navy); margin-bottom:5mm; }
.st em { color:var(--cyan); font-style:italic; font-weight:600; }

.sl { font-family:"Playfair Display",Georgia,serif; font-size:12pt; font-weight:400; line-height:1.6; color:var(--muted); max-width:148mm; margin-bottom:9mm; }

h2 { font-family:"Playfair Display",serif; font-size:17pt; font-weight:700; color:var(--navy); margin:7mm 0 3mm 0; letter-spacing:-.01em; line-height:1.2; }
h3 { font-family:"Poppins",sans-serif; font-size:8pt; font-weight:600; letter-spacing:.20em; text-transform:uppercase; color:var(--cyan); margin-bottom:2.5mm; }
p { font-family:"Playfair Display",Georgia,serif; font-size:10.5pt; line-height:1.65; color:var(--soft-navy); margin-bottom:3.5mm; }

/* ── MANIFIESTO (P02) ──────────────────────────────── */

.manif { padding-top: 32mm; }

.manif-tag {
  font-family:"Poppins",sans-serif; font-size:8pt; letter-spacing:.22em;
  text-transform:uppercase; color:var(--cyan); font-weight:600; margin-bottom:7mm;
}

.manif-quote {
  font-family:"Playfair Display",serif; font-size:26pt; font-weight:700;
  line-height:1.18; color:var(--navy); letter-spacing:-.02em;
  max-width:162mm; margin-bottom:14mm;
}
.manif-quote em { color:var(--cyan); font-style:italic; }

.manif-rule { width:18mm; height:2px; background:var(--cyan); margin-bottom:9mm; }

.manif-body { font-family:"Playfair Display",serif; font-size:11.5pt; line-height:1.72; color:var(--soft-navy); max-width:152mm; margin-bottom:4mm; }

/* ── STATS ────────────────────────────────────────── */

.stats { display:grid; grid-template-columns:1fr 1fr 1fr 1fr; background:var(--navy); border-radius:4mm; overflow:hidden; margin:8mm 0; }
.stat { text-align:center; padding:7mm 4mm; border-right:1px solid rgba(255,255,255,.10); }
.stat:last-child { border-right:none; }
.stn { font-family:"Playfair Display",serif; font-size:27pt; font-weight:500; color:var(--cyan); line-height:1; margin-bottom:2mm; }
.stl { font-family:"Poppins",sans-serif; font-size:6.5pt; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.65); }

/* ── COMPARE (P04) ────────────────────────────────── */

.compare { display:grid; grid-template-columns:1fr 1fr; gap:5mm; margin-top:6mm; }
.compare-col { border-radius:4mm; overflow:hidden; }
.compare-header { padding:4mm 5.5mm; font-family:"Poppins",sans-serif; font-size:8pt; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.compare-header.old { background:#F0F0F2; color:var(--muted); }
.compare-header.new { background:var(--navy); color:var(--cyan); }
.compare-body { padding:5mm 5.5mm; background:var(--paper); }
.compare-col.new-col .compare-body { background:linear-gradient(160deg,#f0fcfd,#fff); border:1.5px solid var(--cyan); border-top:none; border-radius:0 0 4mm 4mm; }
.compare-item { display:flex; align-items:flex-start; gap:3mm; padding:2mm 0; border-bottom:1px solid var(--line); }
.compare-item:last-child { border-bottom:none; }
.ci-icon { font-size:9pt; flex-shrink:0; margin-top:.5mm; }
.ci-text { font-family:"Poppins",sans-serif; font-size:8.5pt; line-height:1.5; color:var(--soft-navy); }
.ci-text strong { color:var(--navy); font-weight:600; }

/* ── TRIO OVERVIEW (P05) ──────────────────────────── */

.trio { display:grid; grid-template-columns:1fr 1fr 1fr; gap:4mm; margin-top:7mm; padding-top:5mm; }

.trio-card {
  border-radius:4mm; border:1.5px solid var(--line);
  padding:6mm 5mm; background:var(--paper); position:relative;
}

.trio-card.featured {
  border:2px solid var(--cyan);
  background:linear-gradient(160deg,#fff 0%,#f0fcfd 100%);
}

.trio-badge {
  position:absolute; top:-3.5mm; left:50%; transform:translateX(-50%);
  background:var(--cyan); color:var(--navy);
  font-family:"Poppins",sans-serif; font-size:5.5pt; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase;
  padding:1mm 4mm; border-radius:100px; white-space:nowrap;
}

.trio-name {
  font-family:"Playfair Display",serif; font-size:13pt; font-weight:700;
  color:var(--navy); margin-bottom:1.5mm;
}

.trio-for {
  font-family:"Poppins",sans-serif; font-size:7pt; color:var(--muted);
  margin-bottom:3.5mm; line-height:1.45;
}

.trio-price {
  background:var(--navy); border-radius:3mm; padding:4mm 5mm;
  margin-bottom:3.5mm;
}

.trio-price-num {
  font-family:"Playfair Display",serif; font-size:20pt; font-weight:700;
  color:white; line-height:1;
}

.trio-price-cur { font-size:11pt; vertical-align:top; margin-right:.5mm; }

.trio-price-note {
  font-family:"Poppins",sans-serif; font-size:6pt;
  color:rgba(255,255,255,.55); margin-top:1.5mm;
}

.trio ul { list-style:none; padding:0; margin:0; }
.trio ul li {
  font-family:"Poppins",sans-serif; font-size:7pt; line-height:1.5;
  color:var(--soft-navy); padding-left:4mm; position:relative; margin-bottom:1.5mm;
}
.trio ul li::before { content:"✓"; position:absolute; left:0; top:0; color:var(--cyan); font-weight:700; }

.trio-delivery {
  margin-top:3mm; padding-top:3mm; border-top:1px solid var(--line);
  font-family:"Poppins",sans-serif; font-size:6.5pt; color:var(--muted);
}
.trio-delivery strong { color:var(--navy); }

/* ── TIER DETAIL PAGES (P06-P08) ─────────────────── */

.tier-header-bar {
  background:var(--navy); border-radius:4mm; padding:5.5mm 8mm;
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:5mm;
}

.thb-left { }
.thb-name {
  font-family:"Playfair Display",serif; font-size:20pt; font-weight:700; color:white;
}
.thb-plan {
  font-family:"Poppins",sans-serif; font-size:7pt; letter-spacing:.18em;
  text-transform:uppercase; color:rgba(255,255,255,.5); margin-top:1mm;
}

.thb-right { text-align:right; }
.thb-price {
  font-family:"Playfair Display",serif; font-size:24pt; font-weight:700;
  color:var(--cyan); line-height:1;
}
.thb-price-note {
  font-family:"Poppins",sans-serif; font-size:6.5pt;
  color:rgba(255,255,255,.5); margin-top:1mm;
}

/* ── ALCANCE ──────────────────────────────────────── */

.alcance-list { margin-top:5mm; }

.alcance-item {
  display:grid; grid-template-columns:36mm 1fr;
  gap:5mm; padding:4mm 0;
  border-bottom:1px solid var(--line);
  page-break-inside:avoid;
}
.alcance-item:last-child { border-bottom:none; }

.ai-label {
  font-family:"Poppins",sans-serif; font-size:7pt; letter-spacing:.16em;
  color:var(--cyan); text-transform:uppercase; font-weight:700; padding-top:1mm;
  line-height:1.4;
}

.ai-content h4 { font-family:"Playfair Display",serif; font-size:11.5pt; font-weight:700; color:var(--navy); margin-bottom:1.5mm; }
.ai-content p  { font-family:"Poppins",sans-serif; font-size:8.5pt; line-height:1.5; color:var(--muted); margin:0; }

.alcance-extra {
  margin-top:4.5mm; padding:4.5mm 5.5mm;
  background:linear-gradient(135deg,#012133,#013d5a);
  border-radius:4mm; display:flex; align-items:center; gap:5mm;
}

.ae-badge {
  font-family:"Poppins",sans-serif; font-size:6.5pt; letter-spacing:.16em;
  text-transform:uppercase; color:var(--cyan); font-weight:700;
  background:rgba(18,214,224,.15); border:1px solid rgba(18,214,224,.40);
  padding:1.5mm 3.5mm; border-radius:100px; white-space:nowrap;
}

.ae-text { font-family:"Poppins",sans-serif; font-size:8.5pt; color:rgba(255,255,255,.85); line-height:1.5; }
.ae-text strong { color:white; font-weight:600; }

.tier-note {
  margin-top:3.5mm; padding:3.5mm 5.5mm;
  background:var(--paper); border-radius:3mm; border-left:3px solid var(--cyan);
}
.tier-note p {
  font-family:"Poppins",sans-serif; font-size:8.5pt; color:var(--muted);
  margin:0; line-height:1.55;
}
.tier-note p strong { color:var(--navy); }

/* ── METODOLOGÍA (P09) ──────────────────────────── */

.method { display:grid; grid-template-columns:repeat(4,1fr); gap:4mm; margin-top:8mm; position:relative; }
.ms2 { position:relative; padding-top:14mm; }
.ms2::before { content:""; position:absolute; top:5mm; left:0; right:0; height:1.5px; background:var(--line); }
.ms2:first-child::before { left:50%; }
.ms2:last-child::before  { right:50%; }
.mn { position:absolute; top:0; left:50%; transform:translateX(-50%); width:10mm; height:10mm; background:var(--cyan); color:var(--navy); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:"Playfair Display",serif; font-size:11pt; font-weight:700; }
.ms2 h5 { font-family:"Playfair Display",serif; font-size:10pt; font-weight:700; color:var(--navy); margin-bottom:2mm; text-align:center; line-height:1.2; }
.ms2 p  { font-family:"Poppins",sans-serif; font-size:7.5pt; line-height:1.45; color:var(--muted); text-align:center; margin:0; }

/* ── CTA ──────────────────────────────────────────── */

.cta-tag { font-family:"Poppins",sans-serif; font-size:8pt; letter-spacing:.30em; color:var(--cyan); text-transform:uppercase; font-weight:600; margin-bottom:8mm; position:relative; z-index:2; display:flex; align-items:center; gap:3mm; }
.cta-tag::before { content:""; display:inline-block; width:11mm; height:1.5px; background:var(--cyan); }
.cta-title { font-family:"Playfair Display",serif; font-size:34pt; font-weight:700; line-height:1.08; letter-spacing:-.02em; color:white; max-width:142mm; margin-bottom:8mm; position:relative; z-index:2; }
.cta-title em { color:var(--cyan); font-style:italic; }
.cta-body { font-family:"Playfair Display",serif; font-size:11.5pt; line-height:1.65; color:rgba(255,255,255,.78); max-width:138mm; margin-bottom:11mm; position:relative; z-index:2; }
.cta-row { display:grid; grid-template-columns:1fr 1fr; gap:5mm; margin-bottom:11mm; position:relative; z-index:2; }
.cta-box { background:rgba(18,214,224,.07); border:1px solid rgba(18,214,224,.28); border-radius:4mm; padding:6mm 7mm; }
.cta-box-label { font-family:"Poppins",sans-serif; font-size:7pt; letter-spacing:.22em; text-transform:uppercase; color:var(--cyan); font-weight:600; margin-bottom:2.5mm; }
.cta-box-content { font-family:"Playfair Display",serif; font-size:14.5pt; font-weight:500; color:white; line-height:1.3; }
.sig { margin-top:13mm; padding-top:7mm; border-top:1px solid rgba(18,214,224,.22); position:relative; z-index:2; }
.sig-name { font-family:"Playfair Display",serif; font-style:italic; font-size:17pt; color:var(--cyan); margin-bottom:2mm; }
.sig-role { font-family:"Poppins",sans-serif; font-size:8pt; color:rgba(255,255,255,.65); letter-spacing:.05em; line-height:1.6; }

/* ── BACK COVER ───────────────────────────────────── */

.back-logo { width:32mm; display:block; margin-bottom:28mm; position:relative; z-index:2; }
.bq { font-family:"Playfair Display",serif; font-size:22pt; font-weight:700; line-height:1.22; letter-spacing:-.015em; color:white; max-width:150mm; position:relative; z-index:2; }
.bq em { color:var(--cyan); font-style:italic; }
.bd { width:16mm; height:2px; background:var(--cyan); margin:13mm 0; position:relative; z-index:2; }
.bm { position:absolute; bottom:24mm; left:25mm; right:25mm; display:grid; grid-template-columns:1fr 1fr; gap:8mm; z-index:2; }
.bm h5 { font-family:"Poppins",sans-serif; font-size:7pt; letter-spacing:.22em; text-transform:uppercase; color:var(--cyan); font-weight:600; margin-bottom:3mm; }
.bm p  { font-family:"Poppins",sans-serif; font-size:8.5pt; color:rgba(255,255,255,.80); line-height:1.65; margin:0; }

@media print {
  * { -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
}
"""

def footer(n, label="Valírica · Dossier Web Design"):
    return f"""
    <div class="pf">
      <span class="pf-text">{label}</span>
      <span class="pf-num">{n:02d}</span>
    </div>"""

HTML = f"""<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Valírica · Dossier Web Design</title>
<style>{CSS}</style>
</head>
<body>

<!-- ==================== P01 PORTADA ==================== -->
<div class="page-cover">
  <div class="bg-glow g1"></div>
  <div class="bg-glow g2"></div>
  <img class="cover-logo" src="{LOGO}" alt="Valírica">
  <div class="cover-client">Diseño Web · Dossier de Servicios</div>
  <div class="cover-tag">Sitios web a medida · HTML nativo · Boosted by AI</div>
  <h1 class="cover-title">
    Presencia digital<br>
    que <span class="accent">convierte</span>,<br>
    sin límites.
  </h1>
  <div class="cover-tiers">
    <div class="ct-pill">Lanzamiento · 700€</div>
    <div class="ct-pill active">Presencia · 1.300€</div>
    <div class="ct-pill">Plataforma · 3.000€</div>
  </div>
  <div class="cover-bottom">
    <div>
      <div class="cover-meta">Valírica · Agile Development</div>
      <div class="cover-line"></div>
      <div class="cover-meta">valirica.com</div>
    </div>
    <div class="cover-edition">&#39;26</div>
  </div>
</div>

<!-- ==================== P02 MANIFIESTO ==================== -->
<div class="page manif">
  <div class="manif-tag">Nuestra filosofía</div>
  <h2 class="manif-quote">
    Tu sitio web no es un folleto.<br>
    Es tu mejor vendedor,<br>
    trabajando <em>24 horas</em>,<br>
    todos los días del año.
  </h2>
  <div class="manif-rule"></div>
  <p class="manif-body">En Valírica no construimos "páginas web". Construimos plataformas de crecimiento: sitios rápidos, bien diseñados, optimizados para que Google los encuentre y construidos para que las personas quieran quedarse.</p>
  <p class="manif-body">Cada proyecto empieza con una pregunta: ¿qué tiene que lograr este sitio por tu negocio? La respuesta a eso determina cada decisión de diseño, arquitectura y contenido.</p>
  <p class="manif-body">No usamos plantillas. No dependemos de plugins. Todo lo que construimos es tuyo —el código fuente, los repositorios, la propiedad intelectual. Sin lock-in, sin dependencias innecesarias, sin sorpresas en la factura.</p>
  {footer(2)}
</div>

<!-- ==================== P03 QUIÉNES SOMOS ==================== -->
<div class="page">
  <div class="sn">01 · Quiénes somos</div>
  <h1 class="st">Una agencia boutique<br><em>boosted by AI</em>, con sello humano.</h1>
  <p class="sl">Diseñamos y desarrollamos sitios web para empresas que decidieron dejar de improvisar en digital. Combinamos velocidad, criterio de producto y tecnología de primer nivel.</p>
  <div class="stats">
    <div class="stat"><div class="stn">+15</div><div class="stl">Proyectos entregados</div></div>
    <div class="stat"><div class="stn">3</div><div class="stl">Planes disponibles</div></div>
    <div class="stat"><div class="stn">100%</div><div class="stl">Código en propiedad</div></div>
    <div class="stat"><div class="stn">60d</div><div class="stl">Soporte post-launch</div></div>
  </div>
  <h2>Cómo trabajamos</h2>
  <p>No somos una factoría. Somos un equipo pequeño donde cada proyecto tiene un responsable con nombre y apellido. Usamos inteligencia artificial para acelerar el trabajo —investigación, prototipado, generación de código base— pero cada decisión de diseño, arquitectura y experiencia la toma una persona.</p>
  <p>El resultado es simple: entregas más rápidas, código más limpio y un costo menor para el cliente. Sin sacrificar una línea de calidad.</p>
  <h2>Con quiénes trabajamos</h2>
  <p>Restaurantes, marcas de moda, estudios creativos, clínicas, consultoras y negocios de servicios que entienden que una presencia digital bien hecha no es un gasto —es la mejor inversión de marketing que pueden hacer.</p>
  {footer(3)}
</div>

<!-- ==================== P04 POR QUÉ HTML ==================== -->
<div class="page">
  <div class="sn">02 · La decisión técnica</div>
  <h1 class="st">Por qué construimos en<br>HTML nativo, no en <em>WordPress</em>.</h1>
  <p class="sl">WordPress fue la respuesta correcta hace diez años. Hoy es un lastre de rendimiento para cualquier negocio que quiera competir en digital.</p>
  <div class="compare">
    <div class="compare-col">
      <div class="compare-header old">WordPress</div>
      <div class="compare-body">
        <div class="compare-item"><div class="ci-icon" style="color:#e05555;">✗</div><div class="ci-text"><strong>Carga lenta</strong> — plugins acumulados, base de datos pesada, hosting genérico</div></div>
        <div class="compare-item"><div class="ci-icon" style="color:#e05555;">✗</div><div class="ci-text"><strong>Core Web Vitals en rojo</strong> — Google penaliza la velocidad y baja el posicionamiento orgánico</div></div>
        <div class="compare-item"><div class="ci-icon" style="color:#e05555;">✗</div><div class="ci-text"><strong>Actualizaciones constantes</strong> — plugins que se rompen, vulnerabilidades de seguridad</div></div>
        <div class="compare-item"><div class="ci-icon" style="color:#e05555;">✗</div><div class="ci-text"><strong>Diseño encadenado</strong> — el theme limita lo que se puede hacer visualmente</div></div>
        <div class="compare-item"><div class="ci-icon" style="color:#e05555;">✗</div><div class="ci-text"><strong>Difícil de escalar</strong> — cada nueva función requiere un plugin de pago o un workaround</div></div>
      </div>
    </div>
    <div class="compare-col new-col">
      <div class="compare-header new">HTML nativo · Valírica</div>
      <div class="compare-body">
        <div class="compare-item"><div class="ci-icon" style="color:var(--cyan);">✓</div><div class="ci-text"><strong>Carga en menos de 1 seg</strong> — código limpio, sin dependencias, CDN optimizado</div></div>
        <div class="compare-item"><div class="ci-icon" style="color:var(--cyan);">✓</div><div class="ci-text"><strong>Core Web Vitals perfectos</strong> — Google los posiciona mejor, más tráfico orgánico desde el día 1</div></div>
        <div class="compare-item"><div class="ci-icon" style="color:var(--cyan);">✓</div><div class="ci-text"><strong>Cero mantenimiento técnico</strong> — no hay plugins que actualizar ni bases de datos que vigilar</div></div>
        <div class="compare-item"><div class="ci-icon" style="color:var(--cyan);">✓</div><div class="ci-text"><strong>Diseño 100% libre</strong> — el sitio se ve exactamente como se diseñó, sin limitaciones de theme</div></div>
        <div class="compare-item"><div class="ci-icon" style="color:var(--cyan);">✓</div><div class="ci-text"><strong>Escalable a cualquier tecnología</strong> — React, reservas, e-commerce, app: lo que necesites, cuando lo necesites</div></div>
      </div>
    </div>
  </div>
  <p style="margin-top:5mm; font-family:'Poppins',sans-serif; font-size:9pt; color:var(--muted);">¿Ya tienes un sitio en WordPress? Sin problema. Hacemos la migración completa: respaldo total de la base de datos y exportación de todos los contenidos para que no pierdas ningún archivo.</p>
  {footer(4)}
</div>

<!-- ==================== P05 TRES TIERS OVERVIEW ==================== -->
<div class="page">
  <div class="sn">03 · Servicios</div>
  <h1 class="st" style="font-size:26pt;margin-bottom:3mm;">Tres caminos hacia tu<br><em>presencia digital ideal</em>.</h1>
  <p class="sl" style="margin-bottom:3mm;font-size:11pt;">Desde una landing de alto impacto hasta un ecosistema digital completo. Cada plan es un punto de partida, no un techo.</p>
  <div class="trio">

    <!-- LANZAMIENTO -->
    <div class="trio-card">
      <div class="trio-name">Lanzamiento</div>
      <div class="trio-for">Para negocios que necesitan presencia inmediata y una landing que convierte desde el primer día.</div>
      <div class="trio-price">
        <div class="trio-price-num"><span class="trio-price-cur">€</span>700</div>
        <div class="trio-price-note">+ IVA según país · Precio cerrado</div>
      </div>
      <ul>
        <li>Landing única en HTML a medida</li>
        <li>Lead magnet interactivo (chat, quiz o formulario dinámico)</li>
        <li>SEO técnico completo (robots, sitemap, .htaccess)</li>
        <li>FAQ con rich snippets para Google</li>
        <li>Core Web Vitals perfectos · carga &lt; 1 seg</li>
        <li>Alta en Google Search Console</li>
      </ul>
      <div class="trio-delivery"><strong>Entrega:</strong> 15 días</div>
    </div>

    <!-- PRESENCIA - FEATURED -->
    <div class="trio-card featured">
      <div class="trio-badge">Más elegido</div>
      <div class="trio-name">Presencia</div>
      <div class="trio-for">Para empresas que necesitan un sitio web completo, optimizado y listo para escalar.</div>
      <div class="trio-price">
        <div class="trio-price-num"><span class="trio-price-cur">€</span>1.300</div>
        <div class="trio-price-note">+ IVA según país · Precio cerrado</div>
      </div>
      <ul>
        <li>Todo lo del plan Lanzamiento</li>
        <li>Sitio multi-página (hasta 8 páginas internas)</li>
        <li>Migración completa desde WordPress</li>
        <li>Sesión fotográfica profesional (1 hora)</li>
        <li>Formularios de contacto integrados</li>
        <li>60 días de soporte post-launch</li>
      </ul>
      <div class="trio-delivery"><strong>Entrega:</strong> 45 días</div>
    </div>

    <!-- PLATAFORMA -->
    <div class="trio-card">
      <div class="trio-name">Plataforma</div>
      <div class="trio-for">Para negocios que quieren un ecosistema digital robusto con gestión de contenidos.</div>
      <div class="trio-price">
        <div class="trio-price-num"><span class="trio-price-cur">€</span>3.000</div>
        <div class="trio-price-note">+ IVA según país · Precio cerrado</div>
      </div>
      <ul>
        <li>Todo lo del plan Presencia</li>
        <li>Blog y panel de gestión de contenidos</li>
        <li>Páginas ilimitadas</li>
        <li>Integraciones: CRM, newsletter, automatizaciones</li>
        <li>Búsqueda interna + analytics avanzado</li>
        <li>1 mes de actualizaciones de contenido incluido</li>
      </ul>
      <div class="trio-delivery"><strong>Entrega:</strong> 60 días</div>
    </div>

  </div>
  {footer(5)}
</div>

<!-- ==================== P06 LANZAMIENTO ==================== -->
<div class="page">
  <div class="sn">04 · Plan Lanzamiento</div>
  <div class="tier-header-bar">
    <div class="thb-left">
      <div class="thb-name">Lanzamiento</div>
      <div class="thb-plan">Landing única · Conversión desde el día 1</div>
    </div>
    <div class="thb-right">
      <div class="thb-price"><span style="font-size:13pt;">€</span>700</div>
      <div class="thb-price-note">+ IVA según país</div>
    </div>
  </div>
  <p class="sl" style="margin-bottom:4mm;font-size:11pt;">Una landing diseñada para capturar la atención, generar confianza y convertir visitantes en clientes desde el primer segundo.</p>

  <div class="alcance-list">
    <div class="alcance-item">
      <div class="ai-label">Diseño a medida</div>
      <div class="ai-content">
        <h4>Landing única en HTML/CSS · 100% original</h4>
        <p>Diseño visual 100% a medida construido directamente en HTML. Sin plantillas, sin themes. Revisión y validación contigo antes de avanzar a la versión final.</p>
      </div>
    </div>
    <div class="alcance-item">
      <div class="ai-label">Lead Magnet</div>
      <div class="ai-content">
        <h4>Elemento interactivo de captación de leads</h4>
        <p>Chat de captura, quiz interactivo, calculadora de presupuesto o formulario conversacional. El mismo tipo de experiencia que usamos en valirica.com para capturar contactos de forma orgánica y no intrusiva.</p>
      </div>
    </div>
    <div class="alcance-item">
      <div class="ai-label">SEO Técnico</div>
      <div class="ai-content">
        <h4>Base técnica perfecta para Google desde el día 1</h4>
        <p>robots.txt, .htaccess, sitemap.xml, metadatos optimizados, Open Graph para redes sociales, schema markup estructurado y alta en Google Search Console. Todo configurado y verificado en la entrega.</p>
      </div>
    </div>
    <div class="alcance-item">
      <div class="ai-label">FAQ Estructurado</div>
      <div class="ai-content">
        <h4>Preguntas frecuentes con rich snippets</h4>
        <p>Sección FAQ con marcado schema que Google puede mostrar directamente en los resultados de búsqueda, aumentando la visibilidad orgánica sin costo adicional en pauta.</p>
      </div>
    </div>
    <div class="alcance-item">
      <div class="ai-label">Rendimiento</div>
      <div class="ai-content">
        <h4>Core Web Vitals perfectos · carga &lt; 1 seg</h4>
        <p>Optimización completa de LCP, FID y CLS. Carga ultrarápida en móvil y escritorio garantizada en la entrega. Google te posiciona mejor desde el primer día online.</p>
      </div>
    </div>
  </div>

  <div class="alcance-extra">
    <div class="ae-badge">Entrega</div>
    <div class="ae-text"><strong>15 días · Precio cerrado: 700€ + IVA</strong> — Código fuente entregado en tu servidor. 30 días de soporte post-launch incluidos. Sin sorpresas.</div>
  </div>
  {footer(6)}
</div>

<!-- ==================== P07 PRESENCIA ==================== -->
<div class="page">
  <div class="sn">05 · Plan Presencia</div>
  <div class="tier-header-bar">
    <div class="thb-left">
      <div class="thb-name">Presencia</div>
      <div class="thb-plan">Sitio web completo · Multi-página · Fotografía incluida</div>
    </div>
    <div class="thb-right">
      <div class="thb-price"><span style="font-size:13pt;">€</span>1.300</div>
      <div class="thb-price-note">+ IVA según país</div>
    </div>
  </div>
  <p class="sl" style="margin-bottom:4mm;font-size:11pt;">Un sitio web institucional completo que comunica quiénes son, qué ofrecen y por qué elegirlos —en múltiples páginas, con imágenes reales e identidad propia.</p>

  <div class="alcance-list">
    <div class="alcance-item">
      <div class="ai-label">Base completa</div>
      <div class="ai-content">
        <h4>Incluye todo el plan Lanzamiento</h4>
        <p>Lead magnet interactivo, SEO técnico completo, FAQ estructurado y Core Web Vitals perfectos. La base sólida de Lanzamiento es el punto de partida de Presencia.</p>
      </div>
    </div>
    <div class="alcance-item">
      <div class="ai-label">Desarrollo web</div>
      <div class="ai-content">
        <h4>Sitio multi-página · hasta 8 páginas internas</h4>
        <p>Desarrollo HTML/CSS/JS de todas las secciones: inicio, nosotros, servicios, portfolio, contacto y páginas adicionales. Diseño responsivo completo para móvil, tablet y escritorio.</p>
      </div>
    </div>
    <div class="alcance-item">
      <div class="ai-label">Migración</div>
      <div class="ai-content">
        <h4>Respaldo y migración completa desde WordPress</h4>
        <p>Exportación completa de la base de datos de WordPress. Todo el contenido existente queda guardado antes de la transición. Cero pérdida de datos, cero interrupciones.</p>
      </div>
    </div>
    <div class="alcance-item">
      <div class="ai-label">Formularios</div>
      <div class="ai-content">
        <h4>Formularios de contacto integrados</h4>
        <p>Formularios funcionales con notificaciones al email, validación en tiempo real y protección anti-spam. Conectables a tu CRM o herramienta de marketing si lo necesitas.</p>
      </div>
    </div>
  </div>

  <div class="alcance-extra">
    <div class="ae-badge">Incluido</div>
    <div class="ae-text"><strong>Sesión fotográfica · 1 hora</strong> — Visita de fotógrafo profesional para capturar imágenes reales del negocio. Las fotos se integran directamente en el sitio.</div>
  </div>

  <div class="tier-note" style="margin-top:4mm;">
    <p><strong>Entrega: 45 días · Precio cerrado: 1.300€ + IVA</strong><br>50% al inicio del proyecto · 50% al finalizar · 60 días de soporte post-launch incluidos</p>
  </div>
  {footer(7)}
</div>

<!-- ==================== P08 PLATAFORMA ==================== -->
<div class="page">
  <div class="sn">06 · Plan Plataforma</div>
  <div class="tier-header-bar">
    <div class="thb-left">
      <div class="thb-name">Plataforma</div>
      <div class="thb-plan">Ecosistema digital completo · CMS · Integraciones</div>
    </div>
    <div class="thb-right">
      <div class="thb-price"><span style="font-size:13pt;">€</span>3.000</div>
      <div class="thb-price-note">+ IVA según país</div>
    </div>
  </div>
  <p class="sl" style="margin-bottom:4mm;font-size:11pt;">Un ecosistema digital completo: rendimiento técnico impecable, gestión de contenidos propia, integraciones avanzadas y todo lo que necesitas para crecer en digital sin depender de nadie.</p>

  <div class="alcance-list">
    <div class="alcance-item">
      <div class="ai-label">Base completa</div>
      <div class="ai-content">
        <h4>Todo el plan Presencia, amplificado</h4>
        <p>Lead magnet, fotografía profesional, migración WordPress, formularios, Core Web Vitals y SEO técnico. Más páginas ilimitadas y mayor profundidad de contenido en cada sección.</p>
      </div>
    </div>
    <div class="alcance-item">
      <div class="ai-label">Gestión contenidos</div>
      <div class="ai-content">
        <h4>Blog y panel de administración a medida</h4>
        <p>Sistema de gestión de contenidos ligero integrado en el sitio: publica, edita y administra artículos, noticias o portfolio directamente desde tu navegador, sin tocar código ni depender de plugins.</p>
      </div>
    </div>
    <div class="alcance-item">
      <div class="ai-label">Integraciones</div>
      <div class="ai-content">
        <h4>CRM, newsletter y automatizaciones de marketing</h4>
        <p>Conexión con HubSpot, Mailchimp, ActiveCampaign u otras herramientas. Automatizaciones de bienvenida, seguimiento de leads y segmentación de contactos desde el primer día.</p>
      </div>
    </div>
    <div class="alcance-item">
      <div class="ai-label">Búsqueda &amp; Analytics</div>
      <div class="ai-content">
        <h4>Búsqueda interna + panel de analytics personalizado</h4>
        <p>Motor de búsqueda integrado en el sitio y dashboard de métricas a medida: tráfico, conversiones, comportamiento y KPIs clave del negocio visibles en un solo lugar.</p>
      </div>
    </div>
  </div>

  <div class="alcance-extra">
    <div class="ae-badge">Entrega</div>
    <div class="ae-text"><strong>60 días · Precio cerrado: 3.000€ + IVA</strong> — Código fuente 100% en tu propiedad. 60 días de soporte VIP post-launch + 1 mes de actualizaciones de contenido incluido.</div>
  </div>
  {footer(8)}
</div>

<!-- ==================== P09 METODOLOGÍA ==================== -->
<div class="page">
  <div class="sn">07 · Cómo trabajamos</div>
  <h1 class="st">Cuatro fases. Sin sorpresas.<br><em>Tu sitio listo en plazo</em>.</h1>
  <p class="sl">Un proceso transparente y predecible desde el primer día. Validas en cada etapa antes de avanzar. No hay grandes revelaciones al final —hay pequeñas aprobaciones en el camino.</p>
  <div class="method">
    <div class="ms2">
      <div class="mn">1</div>
      <h5>Discovery</h5>
      <p>Análisis de tu negocio, objetivos, benchmark de competencia y mapa de páginas. Días 1–3.</p>
    </div>
    <div class="ms2">
      <div class="mn">2</div>
      <h5>Diseño</h5>
      <p>Maquetado visual directo en HTML. Revisión contigo antes de avanzar a la versión final. Sem. 1–2.</p>
    </div>
    <div class="ms2">
      <div class="mn">3</div>
      <h5>Desarrollo</h5>
      <p>Código a medida. Integración de contenidos, fotografía, SEO y optimización de rendimiento. Sem. 3+.</p>
    </div>
    <div class="ms2">
      <div class="mn">4</div>
      <h5>Lanzamiento</h5>
      <p>Deploy en producción, verificación en Google Search Console y soporte post-launch activo.</p>
    </div>
  </div>

  <h2 style="margin-top:13mm;">Comunicación durante el proyecto</h2>
  <p>Tienes un canal directo con tu responsable de proyecto desde el día 1. Demos de avance en las semanas clave, donde puedes ver el sitio en tiempo real y pedir ajustes antes del siguiente sprint. Sin sorpresas al final.</p>

  <h2>Propiedad total desde el día de la entrega</h2>
  <p>Todo el código fuente, los repositorios y la propiedad intelectual son tuyos desde el momento en que entregamos. Sin licencias, sin suscripciones, sin dependencia de Valírica para que el sitio siga funcionando.</p>
  {footer(9)}
</div>

<!-- ==================== P10 CTA ==================== -->
<div class="cta-page">
  <div class="bg-glow g3"></div>
  <div class="cta-tag">Próximo paso</div>
  <h1 class="cta-title">Hablemos de<br>tu próximo<br><em>sitio web</em>.</h1>
  <p class="cta-body">En 30 minutos alineamos el plan que mejor encaja con tu negocio, resolvemos todas las dudas y salimos con un camino claro. Si Valírica no es la opción correcta para ti, también te lo decimos.</p>
  <div class="cta-row">
    <div class="cta-box"><div class="cta-box-label">Email</div><div class="cta-box-content">juan@valirica.com</div></div>
    <div class="cta-box"><div class="cta-box-label">WhatsApp Business</div><div class="cta-box-content">+34 600 876 538</div></div>
  </div>
  <p class="cta-body" style="font-size:10.5pt;">Escríbenos con cualquier duda sobre los planes y te respondemos a la brevedad.</p>
  <div class="sig">
    <div class="sig-name">Juan</div>
    <div class="sig-role">Valírica<br>juan@valirica.com</div>
  </div>
</div>

<!-- ==================== P11 BACK COVER ==================== -->
<div class="back-cover">
  <div class="bg-glow g4"></div>
  <img class="back-logo" src="{LOGO}" alt="Valírica">
  <h2 class="bq">El mejor sitio web<br>que has tenido<br><em>todavía no existe.</em><br>Lo construimos juntos.</h2>
  <div class="bd"></div>
  <div class="bm">
    <div>
      <h5>Contacto</h5>
      <p>juan@valirica.com<br>valirica.com<br>Madrid &middot; Bogotá &middot; Remoto</p>
    </div>
    <div>
      <h5>Dossier</h5>
      <p>Diseño Web · Servicios Valírica<br>Documento de referencia · 2026<br>&copy; Valírica · Todos los derechos reservados</p>
    </div>
  </div>
</div>

</body>
</html>"""

out_html = os.path.join(WORKDIR, "dossier-web-design.html")
with open(out_html, "w", encoding="utf-8") as f:
    f.write(HTML)
print(f"HTML: {out_html}  ({len(HTML):,} bytes)")

CHROME = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
out_pdf = os.path.join(WORKDIR, "Dossier-Web-Design.pdf")

cmd = [
    CHROME, "--headless=new", "--disable-gpu", "--no-sandbox",
    "--disable-software-rasterizer", "--run-all-compositor-stages-before-draw",
    "--virtual-time-budget=8000",
    f"--print-to-pdf={out_pdf}",
    "--no-pdf-header-footer", "--print-to-pdf-no-header",
    f"file://{out_html}",
]

print("Running Chrome headless…")
r = subprocess.run(cmd, capture_output=True, text=True, timeout=60)
if r.returncode == 0:
    print(f"PDF: {out_pdf}  ({os.path.getsize(out_pdf):,} bytes)")
else:
    print("STDERR:", r.stderr[:2000])
    sys.exit(1)
