/* =========================================================
   VENTA DE PLANTAS DE LUZ — Plantillas internas SEO (T1/T2/T3)
   Handoff: HANDOFF-plantillas-internas.md
   Se encola SOLO en paginas internas (no en la home).
   Tokens propios en scope .vpl-page para no afectar la portada.
   ========================================================= */

.vpl-page {
	--navy-900:#0A1A2F; --navy-800:#11253F; --navy-700:#12325C;
	--blue-600:#2563EB; --blue-050:#EAF1FF;
	--amber-500:#F5A623; --amber-300:#FFC247;
	--ink:#0A1A2F; --text:#445064; --text-soft:#5A6B82; --muted:#6B7A92;
	--border:#E4E9F2; --surface:#FFFFFF; --surface-alt:#FAFBFD; --bg:#F5F7FB;
	--ok-bg:#F2FBF5; --ok-bd:#CDEBD9; --ok-fg:#15724A;
	--warn-bg:#FFFBF2; --warn-bd:#F5E0B8; --warn-fg:#8A5A00;
	--bad-bg:#FDF6F2; --bad-bd:#F3D9CE; --bad-fg:#A33A26;
	--font-head:'Sora',sans-serif;
	--font-body:'Figtree',system-ui,sans-serif;
	--font-mono:'JetBrains Mono',monospace;
	--content:920px; --prose:720px; --radius-card:16px; --radius-btn:12px;
	--sp-sec:clamp(40px,5vw,64px);
	/* Tokens del template de artículo (Handoff artículo §1) */
	--article-prose:720px; --article-content:920px; --sidebar-w:240px;
	--bp-tablet:980px; --bp-mobile:680px;
}

/* ===== Layout: contenedor 920 / prosa 720 ===== */
.vpl-page .entry-content { max-width:var(--content); margin-inline:auto; }
.vpl-page .entry-content img,
.vpl-page .entry-content table { max-width:100%; }

/* Paginas con hero full-bleed: el hero se pega al breadcrumb (sin padding superior de la tarjeta) */
.vpl-has-hero .inside-article { padding-top:0; }
.vpl-page .entry-content > h2,
.vpl-page .entry-content > h3,
.vpl-page .entry-content > h4,
.vpl-page .entry-content > p,
.vpl-page .entry-content > ul,
.vpl-page .entry-content > ol { max-width:var(--prose); margin-inline:auto; }
.vpl-page .entry-content > * { margin-top:22px; }
.vpl-page .entry-content > h2 { margin-top:var(--sp-sec); }
.vpl-page .entry-content > .wp-block-table,
.vpl-page .entry-content > .vpl-full { max-width:var(--content); }

/* ===== Tipografia ===== */
.vpl-page .entry-content h2 { font-family:var(--font-head); font-weight:800; line-height:1.18; letter-spacing:-.02em; color:var(--ink); font-size:clamp(1.35rem,2.4vw,1.7rem); }
.vpl-page .entry-content h3 { font-family:var(--font-head); font-weight:700; letter-spacing:-.01em; color:var(--ink); }
.vpl-page .entry-content p,
.vpl-page .entry-content li { color:var(--text); line-height:1.7; }
.vpl-page .entry-content a { color:var(--blue-600); }
.vpl-lead { font-size:1.16rem; line-height:1.65; color:#33455f; }

/* Contraste de texto sobre cajas OSCURAS (gana a los defaults oscuros de .entry-content) */
.vpl-page .entry-content .vpl-hero h1 { color:#fff; }
.vpl-page .entry-content .vpl-hero h1 .vpl-hl { color:var(--amber-500); }
.vpl-page .entry-content .vpl-hero__lead { color:#aebdd4; }
.vpl-page .entry-content .vpl-cta-box h3 { color:#fff; }
.vpl-page .entry-content .vpl-cta-box p { color:#c9d6e8; }

/* Color de texto de BOTONES: gana a la regla generica .entry-content a (que los volvia azules).
   Azules -> texto naranja #f5a621 · oscuros/ghost -> texto blanco · ambar -> texto oscuro. */
.vpl-page .entry-content a.vpl-btn--amber,
.vpl-page .entry-content a.vpl-btn-amber { color:#1A1203; }
.vpl-page .entry-content a.vpl-btn--navy,
.vpl-page .entry-content a.vpl-btn-primary { color:#f5a621; }
.vpl-page .entry-content a.vpl-btn--ghost,
.vpl-page .entry-content a.vpl-btn-ghost { color:#fff; }
.vpl-page .entry-content a.vpl-btn--ghost-blue { color:var(--blue-600); }

/* ===== HeroInterno (full-bleed navy, como el prototipo de Claude Design) ===== */
.vpl-hero {
	position:relative; left:50%; right:50%; width:100vw;
	margin-left:-50vw; margin-right:-50vw; margin-top:0; margin-bottom:var(--sp-sec);
	overflow:hidden; color:#fff; border-radius:0;
	background:
		radial-gradient(1100px 520px at 74% 118%, rgba(28,58,104,.55), transparent 62%),
		linear-gradient(158deg, #0B1E3A 0%, #0A1A2F 52%, #0C2242 100%);
}
.vpl-hero::before {
	content:""; position:absolute; inset:0; pointer-events:none;
	background:radial-gradient(rgba(255,255,255,.055) 1px, transparent 1px);
	background-size:26px 26px; opacity:.7;
	-webkit-mask-image:linear-gradient(105deg, transparent 38%, #000 88%);
	        mask-image:linear-gradient(105deg, transparent 38%, #000 88%);
}
.vpl-hero__inner {
	position:relative; max-width:var(--content); margin-inline:auto;
	padding:clamp(34px,4.6vw,60px) clamp(20px,4vw,40px) clamp(38px,5vw,62px);
}
.vpl-hero__badge {
	display:inline-flex; align-items:center; gap:8px;
	font-family:var(--font-body); font-size:13.5px; font-weight:600; color:#e8eef7;
	background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.15);
	padding:7px 15px; border-radius:99px; margin-bottom:22px;
}
.vpl-hero__badge .vpl-ico { color:var(--amber-300); font-size:14px; }
.vpl-hero h1 {
	font-family:var(--font-head); font-weight:800; letter-spacing:-.02em; line-height:1.07;
	color:#fff; margin:0 0 18px; font-size:clamp(2rem,4.4vw,3rem); max-width:840px;
}
.vpl-hero h1 .vpl-hl { color:var(--amber-500); }
.vpl-hero__lead { color:#aebdd4; font-size:1.12rem; line-height:1.6; margin:0 0 26px; max-width:660px; }
.vpl-hero__cta { display:flex; flex-wrap:wrap; gap:14px; margin-bottom:26px; }
.vpl-hero__meta {
	display:flex; flex-wrap:wrap; gap:22px; font-family:var(--font-body);
	font-size:13.5px; color:#8296b3;
}
.vpl-hero__meta span { display:inline-flex; align-items:center; gap:7px; }

/* ===== Botones ===== */
.vpl-btn {
	display:inline-flex; align-items:center; justify-content:center; gap:8px;
	font-family:var(--font-body); font-weight:700; text-decoration:none;
	border-radius:var(--radius-btn); padding:13px 22px; min-height:44px;
	transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
	cursor:pointer; border:none;
}
.vpl-btn--amber { background:var(--amber-500); color:#1A1203; font-weight:800; box-shadow:0 8px 20px -8px rgba(245,166,35,.6); }
.vpl-btn--navy  { background:var(--blue-600); color:#fff; }
.vpl-btn--ghost { background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.5); }
.vpl-btn--ghost-blue { background:#fff; color:var(--blue-600); border:1.5px solid var(--border); }
.vpl-btn:hover { transform:translateY(-2px); box-shadow:0 14px 30px -14px rgba(10,26,47,.4); }

/* ===== TldrBox (T1) ===== */
.vpl-tldr {
	position:relative; overflow:hidden; color:#fff; border-radius:var(--radius-card);
	background:linear-gradient(120deg,var(--navy-700),var(--navy-900));
	padding:clamp(24px,3vw,34px); margin:var(--sp-sec) auto;
}
.vpl-tldr::before { content:""; position:absolute; inset:0; background:radial-gradient(#ffffff10 1px,transparent 1px); background-size:24px 24px; opacity:.4; pointer-events:none; }
.vpl-tldr__label { position:relative; font-family:var(--font-mono); font-size:12px; font-weight:600; color:var(--amber-300); text-transform:uppercase; letter-spacing:.08em; margin-bottom:16px; display:block; }
.vpl-tldr__grid { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:16px 24px; }
.vpl-tldr__item { display:flex; gap:12px; }
.vpl-tldr__item .vpl-ico { flex:0 0 34px; width:34px; height:34px; border-radius:9px; background:rgba(37,99,235,.25); display:flex; align-items:center; justify-content:center; font-size:16px; }
.vpl-tldr__item b { display:block; font-family:var(--font-head); font-size:.98rem; margin-bottom:2px; color:#fff; }
.vpl-tldr__item span { color:#c2d0e4; font-size:.92rem; line-height:1.5; }

/* ===== ProductCard (T1) ===== */
.vpl-mp-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:var(--sp-sec) auto; }
.vpl-mp-grid--3 { grid-template-columns:repeat(3,1fr); }
.vpl-mp-card { display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-card); overflow:hidden; box-shadow:0 1px 2px rgba(10,26,47,.04); transition:all .18s; }
.vpl-mp-card:hover { transform:translateY(-3px); box-shadow:0 16px 36px -16px rgba(10,26,47,.22); }
.vpl-mp-media { position:relative; aspect-ratio:16/9; background-image:repeating-linear-gradient(45deg,#E6ECF5 0 11px,#F1F5FA 11px 22px); display:flex; align-items:flex-end; }
.vpl-mp-media__tag { font-family:var(--font-mono); font-size:11px; color:#7686a0; background:rgba(255,255,255,.7); padding:4px 8px; margin:8px; border-radius:6px; }
.vpl-mp-real { position:absolute; top:10px; left:10px; font-family:var(--font-mono); font-size:10.5px; font-weight:600; letter-spacing:.04em; color:var(--amber-300); background:var(--navy-900); padding:4px 9px; border-radius:6px; }
.vpl-mp-body { padding:18px; display:flex; flex-direction:column; flex:1; }
.vpl-mp-brand { font-family:var(--font-head); font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--blue-600); margin-bottom:3px; }
.vpl-mp-name { font-family:var(--font-head); font-weight:700; font-size:1.12rem; color:var(--ink); margin:0 0 12px; }
.vpl-mp-chips { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:12px; }
.vpl-mp-chips .vpl-chip { font-family:var(--font-mono); font-size:11.5px; color:var(--navy-900); background:#F0F3F9; border:1px solid var(--border); padding:4px 9px; border-radius:7px; }
.vpl-mp-ideal { background:#F5F8FF; border:1px solid #E1EAFB; border-radius:10px; padding:10px 12px; font-size:.9rem; color:#33455f; margin-bottom:14px; }
.vpl-mp-ideal b { color:var(--blue-600); font-family:var(--font-head); }
.vpl-mp-price { font-family:var(--font-head); font-weight:700; color:var(--ink); font-size:1.02rem; margin:0 0 12px; }
.vpl-mp-price small { display:block; font-family:var(--font-body); font-weight:400; color:var(--muted); font-size:.76rem; margin-top:2px; }
.vpl-mp-actions { margin-top:auto; display:flex; flex-direction:column; gap:8px; }
/* CTA de afiliado en estado "proximamente": mismo boton ambar solido de la home */
.vpl-aff-soon { display:flex; align-items:center; justify-content:center; gap:8px; min-height:44px; border-radius:var(--radius-btn); background:var(--amber-500); border:none; color:#1A1203; font-family:var(--font-body); font-weight:800; font-size:.94rem; box-shadow:0 8px 20px -8px rgba(245,166,35,.6); cursor:default; }
.vpl-mp-detail { text-align:center; text-decoration:none; color:var(--blue-600); font-weight:600; font-size:.92rem; padding:10px; border:1px solid var(--border); border-radius:var(--radius-btn); }
.vpl-mp-detail:hover { border-color:var(--blue-600); }

/* ===== Tablas (compare / vs / decision) ===== */
.vpl-table, .vpl-page .entry-content .wp-block-table { margin:var(--sp-sec) auto; }
.vpl-table table, .vpl-page .entry-content table { width:100%; border-collapse:collapse; border:1px solid var(--border); border-radius:var(--radius-card); overflow:hidden; font-size:.94rem; background:#fff; }
.vpl-table thead th, .vpl-page .entry-content thead th { background:var(--navy-900); color:#fff; font-family:var(--font-head); font-weight:700; font-size:12.5px; letter-spacing:.02em; text-align:left; padding:13px 14px; }
.vpl-table td, .vpl-page .entry-content td { padding:12px 14px; border-top:1px solid #EDF0F5; color:var(--text); vertical-align:top; }
.vpl-table tbody tr:nth-child(even) td, .vpl-page .entry-content tbody tr:nth-child(even) td { background:var(--surface-alt); }
.vpl-table--vs thead th { background:var(--navy-800); }
.vpl-table--vs thead th.vpl-th-hl { color:var(--amber-300); }
.vpl-table--vs td.vpl-td-hl { background:rgba(245,166,35,.06); font-weight:600; color:var(--ink); }
/* pills decision */
.vpl-pill { display:inline-block; font-family:var(--font-head); font-weight:700; font-size:12px; padding:3px 11px; border-radius:99px; }
.vpl-pill--yes { background:var(--ok-bg); border:1px solid var(--ok-bd); color:var(--ok-fg); }
.vpl-pill--no  { background:var(--bad-bg); border:1px solid var(--bad-bd); color:var(--bad-fg); }
.vpl-pill--dep { background:var(--warn-bg); border:1px solid var(--warn-bd); color:var(--warn-fg); }
.vpl-price-note { max-width:var(--content); margin:-40px auto 0; font-size:.82rem; color:var(--muted); font-style:italic; }

/* ===== WhenCallouts (cuando SI / cuando NO) ===== */
.vpl-when { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:var(--sp-sec) auto; }
.vpl-when__card { border-radius:14px; padding:18px 20px; border:1px solid; }
.vpl-when__ok { background:var(--ok-bg); border-color:var(--ok-bd); }
.vpl-when__no { background:var(--bad-bg); border-color:var(--bad-bd); }
.vpl-when h3 { margin:0 0 10px; font-size:1.02rem; }
.vpl-when__ok h3 { color:var(--ok-fg); }
.vpl-when__no h3 { color:var(--bad-fg); }
.vpl-when ul { list-style:none; margin:0; padding:0; }
.vpl-when li { position:relative; padding-left:24px; margin:7px 0; line-height:1.5; font-size:.94rem; }
.vpl-when__ok li::before { content:"✔"; position:absolute; left:0; color:var(--ok-fg); font-weight:700; }
.vpl-when__no li::before { content:"✕"; position:absolute; left:0; color:var(--bad-fg); font-weight:700; }

/* ===== ProsConsPair (T1) ===== */
.vpl-proscons { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:var(--sp-sec) auto; }
.vpl-proscons .vpl-pc { border:1px solid var(--border); border-radius:14px; padding:16px 18px; }
.vpl-proscons .vpl-pros { background:var(--ok-bg); border-color:var(--ok-bd); }
.vpl-proscons .vpl-cons { background:var(--bad-bg); border-color:var(--bad-bd); }
.vpl-proscons h3, .vpl-proscons h4 { margin:0 0 10px; font-family:var(--font-head); font-size:1rem; }
.vpl-proscons .vpl-pros h3, .vpl-proscons .vpl-pros h4 { color:var(--ok-fg); }
.vpl-proscons .vpl-cons h3, .vpl-proscons .vpl-cons h4 { color:var(--bad-fg); }
.vpl-proscons ul { list-style:none; margin:0; padding:0; }
.vpl-proscons li { position:relative; padding-left:22px; margin:6px 0; line-height:1.5; font-size:.94rem; }
.vpl-proscons .vpl-pros li::before { content:"＋"; position:absolute; left:0; color:var(--ok-fg); font-weight:700; }
.vpl-proscons .vpl-cons li::before { content:"－"; position:absolute; left:0; color:var(--bad-fg); font-weight:700; }

/* ===== ScenarioCards (T2) ===== */
.vpl-scen-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:var(--sp-sec) auto; }
.vpl-scen { border:1px solid var(--border); border-radius:14px; padding:18px; background:#fff; box-shadow:0 1px 2px rgba(10,26,47,.04); }
.vpl-scen .vpl-ico { width:40px; height:40px; border-radius:10px; background:var(--blue-050); color:var(--blue-600); display:flex; align-items:center; justify-content:center; font-size:19px; margin-bottom:12px; }
.vpl-scen h3 { margin:0 0 6px; font-size:1.02rem; }
.vpl-scen p { font-size:.92rem; margin:0 0 12px; }
.vpl-scen .vpl-tag { font-family:var(--font-mono); font-size:11px; padding:3px 9px; border-radius:99px; }
.vpl-scen .vpl-tag--ok { background:var(--ok-bg); color:var(--ok-fg); border:1px solid var(--ok-bd); }
.vpl-scen .vpl-tag--alt { background:var(--warn-bg); color:var(--warn-fg); border:1px solid var(--warn-bd); }

/* ===== ModelPlaceholder (T2) ===== */
.vpl-modelph { border:1.5px dashed #C4CFE0; background:#F9FBFD; border-radius:var(--radius-card); padding:28px 24px; text-align:center; margin:var(--sp-sec) auto; max-width:var(--content); }
.vpl-modelph .vpl-ico { width:46px; height:46px; border-radius:12px; background:var(--blue-050); color:var(--blue-600); display:flex; align-items:center; justify-content:center; font-size:22px; margin:0 auto 12px; }
.vpl-modelph h3 { margin:0 0 6px; font-size:1.08rem; }
.vpl-modelph p { max-width:520px; margin:0 auto 16px; font-size:.94rem; color:var(--text-soft); }
.vpl-modelph__cta { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }

/* ===== InternalLinksGrid (T1/T2) ===== */
.vpl-related { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:var(--sp-sec) auto; max-width:var(--content); }
.vpl-related a { display:flex; gap:12px; align-items:flex-start; border:1px solid var(--border); border-radius:12px; padding:15px 17px; text-decoration:none; background:#fff; transition:all .18s; }
.vpl-related a:hover { border-color:var(--blue-600); background:#F9FBFF; transform:translateY(-2px); box-shadow:0 12px 26px -14px rgba(10,26,47,.2); }
.vpl-related a .vpl-ico { flex:0 0 34px; width:34px; height:34px; border-radius:9px; background:var(--blue-050); color:var(--blue-600); display:flex; align-items:center; justify-content:center; font-size:16px; }
.vpl-related a b { display:block; font-family:var(--font-head); font-weight:600; color:var(--ink); }
.vpl-related a span { display:block; color:var(--text-soft); font-size:.9rem; margin-top:2px; }

/* ===== NavByIntent (T3) ===== */
.vpl-navint { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:var(--sp-sec) auto; max-width:var(--content); }
.vpl-navint__group { border:1px solid var(--border); border-radius:var(--radius-card); padding:20px; background:#fff; }
.vpl-navint__head { display:flex; align-items:center; gap:11px; margin-bottom:12px; }
.vpl-navint__head .vpl-ico { width:36px; height:36px; border-radius:10px; background:var(--blue-050); color:var(--blue-600); display:flex; align-items:center; justify-content:center; font-size:17px; }
.vpl-navint__head h3 { margin:0; font-size:1.05rem; }
.vpl-navint__group ul { list-style:none; margin:0; padding:0; }
.vpl-navint__group li { border-top:1px solid #EDF0F5; }
.vpl-navint__group li:first-child { border-top:none; }
.vpl-navint__group a { display:flex; justify-content:space-between; gap:10px; padding:10px 0; text-decoration:none; color:var(--ink); font-weight:500; }
.vpl-navint__group a::after { content:"→"; color:var(--blue-600); }
.vpl-navint__group a:hover { color:var(--blue-600); }

/* ===== FeaturedCards (T3) ===== */
.vpl-feat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:var(--sp-sec) auto; max-width:var(--content); }
.vpl-feat { border:1px solid var(--border); border-radius:var(--radius-card); overflow:hidden; background:#fff; text-decoration:none; display:flex; flex-direction:column; transition:all .18s; }
.vpl-feat:hover { transform:translateY(-3px); box-shadow:0 16px 36px -16px rgba(10,26,47,.22); border-color:var(--blue-600); }
.vpl-feat__media { aspect-ratio:16/9; background-image:repeating-linear-gradient(45deg,#E6ECF5 0 11px,#F1F5FA 11px 22px); }
.vpl-feat__body { padding:15px 17px; }
.vpl-feat__cat { font-family:var(--font-head); font-size:11px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--blue-600); }
.vpl-feat__body h3 { margin:4px 0 8px; font-size:1rem; color:var(--ink); }
.vpl-feat__more { color:var(--blue-600); font-weight:600; font-size:.9rem; }

/* ===== Callout suave (contexto) ===== */
.vpl-callout { background:#F5F8FF; border:1px solid var(--border); border-left:4px solid var(--blue-600); padding:15px 20px; border-radius:12px; margin:26px auto; max-width:var(--prose); }
.vpl-callout p { margin:0; }
.vpl-callout strong { color:var(--navy-900); }

/* ===== CtaBox fuerte / suave ===== */
.vpl-cta-box { position:relative; overflow:hidden; color:#fff; border-radius:var(--radius-card); background:linear-gradient(120deg,var(--navy-700),var(--navy-900)); padding:clamp(26px,3vw,36px); text-align:center; margin:var(--sp-sec) auto; max-width:var(--content); }
.vpl-cta-box::before { content:""; position:absolute; inset:0; background:radial-gradient(#ffffff10 1px,transparent 1px); background-size:24px 24px; opacity:.4; pointer-events:none; }
.vpl-cta-box h3 { position:relative; color:#fff; margin:0 0 8px; font-size:1.28rem; }
.vpl-cta-box p { position:relative; color:#c9d6e8; margin:0 auto 18px; max-width:540px; }
.vpl-cta-box__row { position:relative; display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }

/* ===== FAQ acordeon ===== */
.vpl-faq { margin:var(--sp-sec) auto; max-width:var(--prose); }
.vpl-faq details { border:1px solid var(--border); border-radius:12px; padding:2px 18px; margin:10px 0; background:#fff; }
.vpl-faq summary { font-family:var(--font-head); font-weight:600; color:var(--navy-900); cursor:pointer; padding:14px 0; list-style:none; display:flex; justify-content:space-between; gap:12px; }
.vpl-faq summary::-webkit-details-marker { display:none; }
.vpl-faq summary::after { content:"＋"; color:var(--blue-600); font-size:1.15rem; line-height:1; transition:transform .2s; }
.vpl-faq details[open] summary::after { transform:rotate(45deg); }
.vpl-faq details p { margin:0 0 14px; color:#3a4a61; }

/* ===== RESPONSIVE ===== */
@media (max-width:980px){
	.vpl-scen-grid, .vpl-feat-grid { grid-template-columns:1fr 1fr; }
	.vpl-mp-grid--3 { grid-template-columns:1fr 1fr; }
}
@media (max-width:680px){
	.vpl-tldr__grid, .vpl-mp-grid, .vpl-mp-grid--3, .vpl-when, .vpl-proscons,
	.vpl-scen-grid, .vpl-feat-grid, .vpl-related, .vpl-navint { grid-template-columns:1fr; }
	.vpl-hero__cta .vpl-btn, .vpl-cta-box__row .vpl-btn, .vpl-modelph__cta .vpl-btn { width:100%; }

	/* Tablas -> cards label/valor */
	.vpl-page .entry-content table thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
	.vpl-page .entry-content table,
	.vpl-page .entry-content table tbody,
	.vpl-page .entry-content table tr,
	.vpl-page .entry-content table td { display:block; width:auto; }
	.vpl-page .entry-content table tr { border:1px solid var(--border); border-radius:12px; margin:0 0 12px; overflow:hidden; }
	.vpl-page .entry-content table td { display:flex; justify-content:space-between; gap:14px; text-align:right; border-top:1px solid #EDF0F5; }
	.vpl-page .entry-content table tbody tr:nth-child(even) td { background:#fff; }
	.vpl-page .entry-content table td::before { content:attr(data-label); font-family:var(--font-head); font-weight:600; color:var(--ink); text-align:left; }
	.vpl-page .entry-content table td:first-child { background:var(--surface-alt); font-weight:600; }
	.vpl-price-note { margin-top:8px; }
}


/* ===== Fix imagen destacada ProductCard: recorte forzado dentro del recuadro 16:9 ===== */
.vpl-mp-media { overflow:hidden; }
.vpl-page .entry-content .vpl-mp-media img,
.vpl-mp-media img {
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  object-fit:contain !important;
  object-position:center !important;
}
/* Cuando hay imagen real: fondo blanco limpio detrás del contain + respiro */
.vpl-mp-media:has(img) { background:#fff !important; background-image:none !important; padding:10px !important; }

/* Fix: badge "Ficha revisada" quedaba tapado por la imagen destacada (2026-07-17) */
.vpl-mp-media { z-index:0; }
.vpl-mp-media .vpl-mp-real { z-index:2; }
.vpl-mp-media img { z-index:1; }

/* =========================================================
   TEMPLATE ÚNICO DE ARTÍCULO (posts) — módulos del theme
   Handoff: "Handoff técnico — Template único de artículo.md"
   Scope .vpl-article para no afectar hubs/páginas.
   ========================================================= */

/* Imagen destacada como hero CONTENIDO (no el page-header crudo de GP).
   Foto de catálogo (fondo claro): contain sobre superficie suave, altura acotada. */
.vpl-article .featured-image {
	max-width:var(--article-content); margin:8px auto 0; float:none; width:auto;
}
.vpl-article .featured-image img {
	width:100%; max-height:360px; object-fit:contain; display:block;
	background:var(--surface-alt); border:1px solid var(--border);
	border-radius:var(--radius-card);
}

/* Ocultar la meta/fecha por defecto de GeneratePress bajo el título en artículos.
   Se conserva la firma editorial (.vpl-trust) y el dateModified en el schema de Yoast
   (los <time itemprop> siguen en el DOM, solo ocultos visualmente). */
.vpl-article .entry-header .entry-meta,
.vpl-article .entry-meta .posted-on { display:none; }

/* --- Barra de confianza editorial (.vpl-trust) --- */
.vpl-article .entry-content .vpl-trust {
	display:flex; flex-wrap:wrap; align-items:center; gap:12px;
	border-top:1px solid var(--border); border-bottom:1px solid var(--border);
	padding:12px 0; margin:0 0 4px; font-family:var(--font-body);
	font-size:.9rem; color:var(--text-soft); max-width:none;
}
.vpl-trust__by { display:inline-flex; align-items:center; gap:10px; color:var(--ink); font-weight:600; }
.vpl-trust__avatar {
	width:30px; height:30px; border-radius:50%; flex:0 0 30px;
	background:linear-gradient(135deg,var(--navy-700),var(--navy-900));
	color:var(--amber-300); font-family:var(--font-mono); font-size:11px; font-weight:600;
	display:flex; align-items:center; justify-content:center; letter-spacing:.02em;
}
.vpl-trust__sep { width:1px; height:18px; background:var(--border); }
.vpl-trust__date,
.vpl-trust__dates { font-family:var(--font-mono); font-size:.82rem; color:var(--muted); }

/* --- Aviso de afiliados (.vpl-affiliate-note) --- */
.vpl-article .entry-content .vpl-affiliate-note {
	display:flex; align-items:center; gap:8px; flex-wrap:wrap;
	background:var(--bg); border:1px solid var(--border); border-radius:9px;
	padding:9px 14px; margin:16px 0 0; max-width:none;
	font-family:var(--font-body); font-size:.72rem; color:var(--text-soft);
}
.vpl-affiliate-note a { color:var(--blue-600); font-weight:600; }
.vpl-affiliate-note__ico { font-size:.85rem; }

/* --- TOC (.vpl-toc): inline en ≤980px, sticky sidebar en ≥981px --- */
.vpl-article .entry-content .vpl-toc {
	max-width:none; margin:22px 0 0; background:var(--surface-alt);
	border:1px solid var(--border); border-radius:12px; padding:16px 18px;
}
.vpl-toc__title {
	display:block; font-family:var(--font-head); font-size:11px; font-weight:700;
	letter-spacing:.06em; text-transform:uppercase; color:var(--blue-600); margin-bottom:10px;
}
.vpl-toc ul { list-style:none; margin:0; padding:0; }
.vpl-toc li { margin:0; }
.vpl-toc a { display:block; padding:5px 0; color:var(--text); font-size:.92rem; text-decoration:none; border-bottom:1px solid transparent; }
.vpl-toc a:hover { color:var(--blue-600); }

/* --- Relacionados prev/next (.vpl-related--nav) --- */
.vpl-article .entry-content .vpl-related--nav { grid-template-columns:1fr 1fr; }
.vpl-related--nav a { flex-direction:column; }
.vpl-related--nav a .vpl-ico { background:none; color:var(--blue-600); width:auto; height:auto; font-size:1.2rem; }
.vpl-related--nav .vpl-rel-next { text-align:right; }

/* --- Callout variantes tip / warn (Handoff §4) --- */
.vpl-callout.vpl-callout--tip { background:var(--ok-bg); border-color:var(--ok-bd); border-left-color:var(--ok-fg); }
.vpl-callout.vpl-callout--warn { background:var(--warn-bg); border-color:var(--warn-bd); border-left-color:var(--warn-fg); }

/* --- Veredicto: variante azul (2ª opción, no "negativa") --- */
.vpl-when .vpl-when__alt { background:var(--blue-050); border-color:#CFE0FB; }
.vpl-when .vpl-when__alt h3 { color:var(--blue-600); }
.vpl-when .vpl-when__alt li::before { content:"→"; position:absolute; left:0; color:var(--blue-600); font-weight:700; }

/* --- Tabla vs: en móvil hace SCROLL horizontal (no se convierte en cards) --- */
@media (max-width:680px){
	.vpl-page .entry-content .vpl-table--vs { overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:var(--radius-card); }
	.vpl-page .entry-content .vpl-table--vs table { display:table; min-width:480px; }
	.vpl-page .entry-content .vpl-table--vs thead { position:static; width:auto; height:auto; clip:auto; overflow:visible; display:table-header-group; }
	.vpl-page .entry-content .vpl-table--vs tbody { display:table-row-group; }
	.vpl-page .entry-content .vpl-table--vs tr { display:table-row; border:none; border-radius:0; margin:0; }
	.vpl-page .entry-content .vpl-table--vs th,
	.vpl-page .entry-content .vpl-table--vs td { display:table-cell; text-align:left; }
	.vpl-page .entry-content .vpl-table--vs td::before { content:none; }
}

/* --- Layout de dos columnas con TOC sticky (solo desktop ≥981px) --- */
@media (min-width:981px){
	.vpl-article .entry-content {
		display:grid; grid-template-columns:minmax(0,1fr) var(--sidebar-w);
		column-gap:44px; align-items:start;
		max-width:var(--article-content); margin-inline:auto;
	}
	.vpl-article .entry-content > * { grid-column:1; max-width:var(--article-prose); margin-inline:0; }
	/* módulos anchos ocupan toda la columna de contenido */
	.vpl-article .entry-content > .wp-block-table,
	.vpl-article .entry-content > .vpl-full,
	.vpl-article .entry-content > .vpl-mp-grid,
	.vpl-article .entry-content > .vpl-tldr,
	.vpl-article .entry-content > .vpl-cta-box,
	.vpl-article .entry-content > .vpl-when,
	.vpl-article .entry-content > .vpl-proscons,
	.vpl-article .entry-content > .vpl-related { max-width:none; }
	.vpl-article .entry-content > .vpl-toc {
		grid-column:2; grid-row:1 / span 999; align-self:start;
		position:sticky; top:96px; margin:0;
	}
}

/* Imagen destacada en paginas con HeroInterno (2026-07-27)
   -------------------------------------------------------
   A los hubs se les asigno imagen destacada SOLO para alimentar el
   og:image al compartir (antes salian sin miniatura en redes/WhatsApp).
   GeneratePress la pinta como .featured-image.page-header-image justo
   tras el breadcrumb, o sea ENCIMA del hero navy, y rompe el diseno.
   Se oculta en las paginas que llevan hero (body.vpl-has-hero); el
   og:image de Yoast no depende de que se muestre, asi que se conserva.
   Si algun dia una pagina interna deja de usar hero, volvera a verse. */
body.vpl-has-hero .featured-image.page-header-image { display: none; }

/* Imagen destacada cuando es un grafico editorial de marca (no una foto de
   producto): se sirve a sangre completa del contenedor, sin recuadro claro
   ni borde, porque la pieza ya trae su propio fondo navy 16:9. */
body.vpl-fi-graphic .vpl-article .featured-image img {
	max-height: none;
	object-fit: cover;
	aspect-ratio: 16 / 9;
	background: none;
	border: 0;
}
