/*
Theme Name: Casei Dei
Theme URI: https://caseidei.com
Author: Casei Dei
Author URI: https://caseidei.com
Description: Block theme (FSE) para Casei Dei — el índice citable del queso premiado. Dirección "La Dehesa": editorial luminoso, serif Spectral, paleta pastel, datos al frente. Tokens en theme.json; lógica del índice y JSON-LD en el plugin casei-dei-core.
Requires at least: 6.6
Tested up to: 7.0
Requires PHP: 8.1
Version: 0.10.1
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: casei-dei
Domain Path: /languages
Tags: full-site-editing, block-patterns, custom-colors, custom-logo, editor-style, translation-ready
*/

/* ============================================================
   Componentes propios. Los tokens viven en theme.json y se
   exponen como var(--wp--preset--…). Aquí solo lo que el
   editor de bloques no cubre con comodidad.
   ============================================================ */

:root {
	--cd-serif: var(--wp--preset--font-family--serif);
	--cd-sans: var(--wp--preset--font-family--sans);
	--cd-mono: var(--wp--preset--font-family--mono);
	--cd-ease: cubic-bezier(.2, .7, .2, 1);
	--cd-ease-out: cubic-bezier(.16, 1, .3, 1);
}

/* eyebrow / etiqueta mono */
.cd-eyebrow {
	font-family: var(--cd-mono);
	font-size: .72rem;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-soft);
	display: inline-flex;
	align-items: center;
	gap: .65rem;
}
.cd-eyebrow::before {
	content: "";
	width: 18px;
	height: 7px;
	border-radius: 2px;
	background: var(--wp--preset--color--sage-deep);
	opacity: .85;
}
.cd-mono {
	font-family: var(--cd-mono);
	font-size: .8rem;
	color: var(--wp--preset--color--ink-soft);
}
.cd-mono--caps {
	text-transform: uppercase;
	letter-spacing: .14em;
	font-size: .68rem;
}

/* el instrumento del Índice */
.cd-index {
	font-family: var(--cd-serif);
	font-weight: 700;
	line-height: .82;
	letter-spacing: -.02em;
	color: var(--wp--preset--color--ink);
	font-feature-settings: "tnum";
	font-size: clamp(3.4rem, 9vw, 5.4rem);
}
.cd-index__max {
	font-family: var(--cd-mono);
	font-size: .95rem;
	color: var(--wp--preset--color--ink-soft);
}
.cd-gauge {
	height: 6px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--wp--preset--color--greige) 50%, var(--wp--preset--color--base));
	overflow: hidden;
}
.cd-gauge__fill {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: linear-gradient(90deg, var(--wp--preset--color--sage-deep), var(--wp--preset--color--sage));
	transform: scaleX(var(--cd-val, 0));
	transform-origin: left;
	transition: transform 1.3s var(--cd-ease-out) .15s;
}

/* tarjeta */
.cd-card {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 20px;
	box-shadow: var(--wp--preset--shadow--soft-sm);
}

/* fila de desglose / ranking editorial (usadas por shortcodes del plugin) */
.cd-breakdown { width: 100%; border-collapse: collapse; }
.cd-breakdown th {
	font-family: var(--cd-mono);
	font-size: .64rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-soft);
	text-align: left;
	font-weight: 500;
	padding-bottom: .7rem;
}
.cd-breakdown td {
	font-family: var(--cd-mono);
	font-size: .82rem;
	padding: .55rem 0;
	border-top: 1px solid var(--wp--preset--color--line);
	color: var(--wp--preset--color--ink);
}
.cd-breakdown td:last-child { text-align: right; color: var(--wp--preset--color--sage-deep); }

.cd-ranking { border-top: 1px solid var(--wp--preset--color--ink); margin: 0; padding: 0; list-style: none; }
.cd-ranking__row {
	display: grid;
	grid-template-columns: 3.4rem 1fr auto;
	gap: 1.25rem;
	align-items: center;
	padding: 1.35rem .25rem;
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.cd-ranking__rank { font-family: var(--cd-serif); font-size: 1.7rem; color: var(--wp--preset--color--ink-soft); }
.cd-ranking__name { font-family: var(--cd-serif); font-weight: 600; font-size: clamp(1.2rem, 2.4vw, 1.5rem); line-height: 1.1; }
.cd-ranking__name a { color: var(--wp--preset--color--ink); }
.cd-ranking__meta { font-family: var(--cd-mono); font-size: .72rem; color: var(--wp--preset--color--ink-soft); margin-top: .2rem; }
.cd-ranking__meta .medal { color: var(--wp--preset--color--sage-deep); }
.cd-ranking__index { font-family: var(--cd-serif); font-weight: 700; font-size: clamp(1.6rem, 3vw, 2rem); color: var(--wp--preset--color--ink); font-feature-settings: "tnum"; }

/* nav flotante (parte de cabecera) */
.cd-nav {
	position: sticky;
	top: 18px;
	z-index: 50;
}
.cd-nav__inner {
	background: rgba(250, 246, 236, .62);
	backdrop-filter: blur(16px) saturate(130%);
	-webkit-backdrop-filter: blur(16px) saturate(130%);
	border-radius: 999px;
	box-shadow: 0 1px 0 rgba(255,255,255,.6) inset, 0 10px 34px -16px rgba(52,49,45,.4);
}

/* reveal al hacer scroll (progressive enhancement; ver reveal.js) */
.has-reveal .cd-reveal { opacity: 0; transform: translateY(26px); filter: blur(5px); transition: opacity .9s var(--cd-ease-out), transform .9s var(--cd-ease-out), filter .9s var(--cd-ease-out); }
.has-reveal .cd-reveal.is-in { opacity: 1; transform: none; filter: none; }

@media (prefers-reduced-motion: reduce) {
	.cd-reveal { opacity: 1 !important; transform: none !important; filter: none !important; }
	.cd-gauge__fill { transition: none; }
}

/* ============================================================
   Componentes de la librería de patrones (v0.2)
   ============================================================ */

/* bandas de sección tintadas (para grupos a ancho completo) */
.cd-band-sage  { background: color-mix(in srgb, var(--wp--preset--color--sage) 46%, var(--wp--preset--color--base)); }
.cd-band-blue  { background: color-mix(in srgb, var(--wp--preset--color--blue) 42%, var(--wp--preset--color--base)); }
.cd-band-cream { background: color-mix(in srgb, var(--wp--preset--color--cream) 60%, var(--wp--preset--color--base)); }

/* estadística: figura + etiqueta */
.cd-stat__num   { font-family: var(--cd-serif); font-weight: 700; font-size: clamp(2.6rem, 6vw, 4rem); line-height: 1; color: var(--wp--preset--color--ink); font-feature-settings: "tnum"; }
.cd-stat__label { font-family: var(--cd-mono); font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--wp--preset--color--ink-soft); margin-top: .5rem; }

/* tarjeta de certamen */
.cd-comp { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: 16px; padding: 1.4rem 1.5rem; height: 100%; }
.cd-comp__name   { font-family: var(--cd-serif); font-weight: 600; font-size: 1.2rem; line-height: 1.15; color: var(--wp--preset--color--ink); }
.cd-comp__org    { font-family: var(--cd-mono); font-size: .68rem; letter-spacing: .04em; color: var(--wp--preset--color--ink-soft); margin-top: .35rem; }
.cd-comp__weight { display: inline-block; margin-top: 1rem; font-family: var(--cd-mono); font-size: .7rem; letter-spacing: .1em; color: var(--wp--preset--color--sage-deep); border: 1px solid color-mix(in srgb, var(--wp--preset--color--sage-deep) 40%, transparent); border-radius: 999px; padding: 3px 10px; }

/* ticker / marquesina (CSS puro) */
.cd-ticker { overflow: hidden; border-block: 1px solid var(--wp--preset--color--line); padding: 1rem 0; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.cd-ticker__track { display: flex; gap: 2.5rem; width: max-content; animation: cd-marquee 40s linear infinite; }
.cd-ticker__item { font-family: var(--cd-serif); font-style: italic; font-size: 1.15rem; color: var(--wp--preset--color--ink-soft); white-space: nowrap; display: inline-flex; align-items: center; gap: 2.5rem; }
.cd-ticker__item::after { content: "·"; color: var(--wp--preset--color--sage-deep); font-style: normal; }
@keyframes cd-marquee { to { transform: translateX(-50%); } }

/* cuenta atrás */
.cd-countdown { display: flex; gap: clamp(1rem, 3vw, 2.4rem); align-items: flex-start; flex-wrap: wrap; }
.cd-cd-unit { display: flex; flex-direction: column; align-items: center; min-width: 3.4rem; }
.cd-cd-num { font-family: var(--cd-serif); font-weight: 700; font-size: clamp(2.4rem, 6vw, 3.6rem); line-height: 1; color: var(--wp--preset--color--ink); font-feature-settings: "tnum"; }
.cd-cd-label { font-family: var(--cd-mono); font-size: .62rem; letter-spacing: .16em; text-transform: uppercase; color: var(--wp--preset--color--ink-soft); margin-top: .5rem; }

@media (prefers-reduced-motion: reduce) {
	.cd-ticker__track { animation: none; }
}

/* ===== barra de filtros facetados (/queso/) ===== */
.cd-filters { margin: 0 0 var(--wp--preset--spacing--40); padding: 1.4rem 1.5rem; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: 18px; }
.cd-filters__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 1rem; }
.cd-filters__count { font-family: var(--cd-mono); font-size: .8rem; color: var(--wp--preset--color--ink-soft); }
.cd-filters__count strong { color: var(--wp--preset--color--ink); }
.cd-filters__group { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .65rem 0; border-top: 1px solid var(--wp--preset--color--line); }
.cd-filters__group:first-of-type { border-top: 0; }
.cd-filters__label { font-family: var(--cd-mono); font-size: .64rem; letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--ink-soft); min-width: 6.5rem; flex-shrink: 0; }
.cd-filters__chips { display: flex; flex-wrap: wrap; gap: .45rem; }
.cd-chip { position: relative; display: inline-flex; align-items: center; font-family: var(--cd-sans); font-size: .82rem; color: var(--wp--preset--color--ink); background: var(--wp--preset--color--base); border: 1px solid var(--wp--preset--color--line); border-radius: 999px; padding: .32rem .8rem; cursor: pointer; transition: background .2s, border-color .2s, color .2s; }
.cd-chip:hover { border-color: color-mix(in srgb, var(--wp--preset--color--sage-deep) 50%, var(--wp--preset--color--line)); }
.cd-chip input { position: absolute; opacity: 0; width: 0; height: 0; }
.cd-chip:has(input:checked) { background: var(--wp--preset--color--sage-deep); color: var(--wp--preset--color--cream); border-color: transparent; }
.cd-chip:focus-within { outline: 2px solid var(--wp--preset--color--sage-deep); outline-offset: 2px; }
.cd-filters__actions { display: flex; gap: 1rem; align-items: center; margin-top: 1rem; }
.cd-filters__apply { font-family: var(--cd-sans); font-weight: 600; font-size: .85rem; color: var(--wp--preset--color--cream); background: var(--wp--preset--color--ink); border: 0; border-radius: 999px; padding: .6rem 1.3rem; cursor: pointer; }
.cd-filters__apply:hover { background: var(--wp--preset--color--sage-deep); }
.cd-filters__clear { font-family: var(--cd-mono); font-size: .72rem; color: var(--wp--preset--color--ink-soft); text-decoration: underline; }
.has-reveal .cd-filters.is-auto .cd-filters__apply { display: none; }
@media (max-width: 600px) { .cd-filters__label { min-width: 100%; } }

/* Vídeo dirigido por scroll (intro de la home) */
.cd-scrub{position:relative;height:280vh;background:var(--wp--preset--color--base)}
.cd-scrub__sticky{position:sticky;top:0;height:100vh;display:grid;place-items:center;overflow:hidden;padding:92px 20px 64px}
.cd-scrub__card{position:relative;width:min(74vw,calc(76vh*16/9),920px);aspect-ratio:16/9;overflow:hidden;background:var(--wp--preset--color--base);box-shadow:inset 0 0 56px 28px var(--wp--preset--color--base)}
.cd-scrub__video{width:100%;height:100%;object-fit:cover;display:block}
.cd-scrub__cue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:3}
.cd-scrub__cue i{display:block;width:22px;height:35px;border:1.5px solid color-mix(in srgb,var(--wp--preset--color--ink-soft) 45%,transparent);border-radius:13px;position:relative}
.cd-scrub__cue i::after{content:"";position:absolute;left:50%;top:7px;width:3px;height:6px;border-radius:2px;background:var(--wp--preset--color--ink-soft);transform:translateX(-50%);animation:cdscrubdot 1.9s ease-in-out infinite}
@keyframes cdscrubdot{0%{opacity:0;transform:translate(-50%,0)}25%{opacity:1}55%{opacity:1;transform:translate(-50%,12px)}100%{opacity:0;transform:translate(-50%,12px)}}
@media(prefers-reduced-motion:reduce){.cd-scrub{height:auto}.cd-scrub__sticky{position:relative;height:auto;min-height:70vh}.cd-scrub__cue i::after{animation:none}}
@media(max-width:781px){.cd-scrub{height:210vh}.cd-scrub__card{width:94vw}.cd-scrub__sticky{padding:84px 14px 50px}}

/* Footer oscuro: los enlaces deben ser claros (los bloques de lista fijan el
   color en el <ul> pero el <a> hereda el enlace global, oscuro e invisible). */
footer.wp-block-group a {
	color: #E2DED6;
	text-decoration-color: rgba(226, 222, 214, 0.35);
}
footer.wp-block-group a:hover,
footer.wp-block-group a:focus {
	color: #FAF6EC;
}

/* ============ Hero con vídeo dirigido por scroll ============ */
.cd-hero{position:relative;height:230vh}
.cd-hero__sticky{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;align-items:center}
.cd-hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5;pointer-events:none}
.cd-hero__veil{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(250,246,236,.9) 0%,rgba(250,246,236,.62) 46%,rgba(250,246,236,.28) 100%)}
.cd-hero__inner{position:relative;width:min(1180px,92vw);margin-inline:auto}
.cd-hero__card{opacity:0;transform:translateY(44px);will-change:opacity,transform}
.cd-hero__cue{margin-top:2.2rem;width:26px;height:42px;border:2px solid currentColor;border-radius:14px;opacity:.45;position:relative}
.cd-hero__cue i{position:absolute;left:50%;top:7px;width:4px;height:9px;margin-left:-2px;border-radius:2px;background:currentColor;animation:cdCue 1.6s ease-in-out infinite}
@keyframes cdCue{0%{transform:translateY(0);opacity:1}70%{transform:translateY(14px);opacity:0}100%{opacity:0}}

/* Variante estática (móvil, reduced-motion o sin JS): sin vídeo, ficha visible */
.cd-hero.is-static{height:auto}
.cd-hero.is-static .cd-hero__sticky{position:static;height:auto;overflow:visible;padding:var(--wp--preset--spacing--70) 0}
.cd-hero.is-static .cd-hero__video,.cd-hero.is-static .cd-hero__cue{display:none}
.cd-hero.is-static .cd-hero__veil{display:none}
.cd-hero.is-static .cd-hero__card{opacity:1;transform:none}
html:not(.has-reveal) .cd-hero{height:auto}
html:not(.has-reveal) .cd-hero .cd-hero__card{opacity:1;transform:none}
html:not(.has-reveal) .cd-hero .cd-hero__video{display:none}
@media(max-width:781px){.cd-hero{height:auto}}

/* Hero v2 (estructura balanceada): capas y cue centrado */
.cd-hero__sticky{width:100%}
.cd-hero__video{z-index:0}
.cd-hero__veil{z-index:1}
.cd-hero__grid{position:relative;z-index:2;width:100%}
.cd-hero__cue{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);margin-top:0;z-index:2}

/* Hero v3 — blindaje de capas: el vídeo y el velo SIEMPRE detrás del contenido,
   sea cual sea la versión del markup (isolation + z-index negativo), y a ancho
   completo (anulamos el max-width que el layout "constrained" de WP les impone
   como hijos directos). El cue, clavado abajo y centrado. */
.cd-hero__sticky{isolation:isolate}
.cd-hero__video,.cd-hero__veil{
	z-index:-1;
	max-width:none !important;
	margin:0 !important;
	position:absolute !important;
	inset:0 !important;
	width:100% !important;
	height:100% !important;
}
.cd-hero__video{object-fit:cover;opacity:.5;pointer-events:none}
.cd-hero__cue{
	position:absolute !important;
	left:50% !important;
	right:auto !important;
	top:auto !important;
	bottom:28px !important;
	transform:translateX(-50%) !important;
	margin:0 !important;
	z-index:2;
}

/* ------------------------------------------------------------------ */
/*  Perfil de país (/pais/{term}/) — v0.10.0                           */
/* ------------------------------------------------------------------ */
.cd-country-title{font-family:var(--wp--preset--font-family--spectral,Spectral,serif);font-weight:500;font-size:clamp(3rem,7vw,4.4rem);line-height:1;margin:.3em 0 .35em}
.cd-country-intro{font-size:1.1rem;color:var(--wp--preset--color--ink-soft,#6E6A63);max-width:58ch}
.cd-country-intro strong{color:var(--wp--preset--color--ink,#34312D)}
.cd-country-map{text-align:center}
.cd-country-map svg{width:100%;max-width:230px;height:auto;fill:var(--wp--preset--color--sage-deep,#6E7A50);opacity:.92}
.cd-country-map__cap{margin-top:.7rem;font-size:.64rem;letter-spacing:.1em;color:var(--wp--preset--color--ink-soft,#8C887F)}
.cd-country-bento{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:2.2rem 0 3.4rem}
.cd-country-card{background:var(--wp--preset--color--surface,#FFFDF7);border:1px solid var(--wp--preset--color--line,#E4DCCC);border-radius:14px;padding:22px 20px}
.cd-country-card__num{font-family:var(--wp--preset--font-family--spectral,Spectral,serif);font-weight:500;font-size:2.4rem;line-height:1;margin:.35rem 0 .2rem}
.cd-country-card__sub{font-size:.78rem;color:var(--wp--preset--color--ink-soft,#6E6A63);margin:0}
.cd-country-sec{font-family:var(--wp--preset--font-family--spectral,Spectral,serif);font-weight:500;font-size:1.7rem;margin:.4rem 0 1.1rem}
.cd-country-podium{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:16px;margin-bottom:3.4rem}
.cd-country-p1{background:var(--wp--preset--color--surface,#FFFDF7);border:1px solid var(--wp--preset--color--line,#E4DCCC);border-radius:16px;padding:26px}
.cd-country-p1__name{font-family:var(--wp--preset--font-family--spectral,Spectral,serif);font-size:1.5rem;font-weight:600;margin:.5rem 0 .1rem}
.cd-country-p1__name a{text-decoration:none;color:inherit;border-bottom:1px solid var(--wp--preset--color--sage,#CFD4B2)}
.cd-country-p1__who{color:var(--wp--preset--color--ink-soft,#6E6A63);font-size:.9rem;margin:0}
.cd-country-p1__idx{font-family:var(--wp--preset--font-family--spectral,Spectral,serif);font-weight:600;font-size:3.4rem;line-height:1;margin:1rem 0 0}
.cd-country-p1__idx small{font-size:1rem;color:var(--wp--preset--color--ink-soft,#6E6A63);font-weight:400}
.cd-country-gauge{height:6px;border-radius:4px;background:var(--wp--preset--color--line,#E4DCCC);margin:.9rem 0 .6rem;overflow:hidden}
.cd-country-gauge i{display:block;height:100%;background:linear-gradient(90deg,var(--wp--preset--color--sage,#CFD4B2),var(--wp--preset--color--sage-deep,#6E7A50))}
.cd-country-p1__medal{font-size:.7rem;color:var(--wp--preset--color--ink-soft,#6E6A63);margin:0}
.cd-country-pmini{background:var(--wp--preset--color--surface,#FFFDF7);border:1px solid var(--wp--preset--color--line,#E4DCCC);border-radius:16px;padding:22px;display:flex;flex-direction:column;justify-content:space-between}
.cd-country-pmini__name{font-family:var(--wp--preset--font-family--spectral,Spectral,serif);font-size:1.12rem;font-weight:600;margin:.4rem 0 .1rem}
.cd-country-pmini__name a{text-decoration:none;color:inherit;border-bottom:1px solid var(--wp--preset--color--sage,#CFD4B2)}
.cd-country-pmini__who{color:var(--wp--preset--color--ink-soft,#6E6A63);font-size:.85rem;margin:0}
.cd-country-pmini__idx{font-family:var(--wp--preset--font-family--spectral,Spectral,serif);font-size:2rem;font-weight:600;margin:.8rem 0 0}
table.cd-country-rank{width:100%;border-collapse:collapse;background:var(--wp--preset--color--surface,#FFFDF7);border:1px solid var(--wp--preset--color--line,#E4DCCC);border-radius:14px;overflow:hidden;margin-bottom:.8rem}
.cd-country-rank th{font-family:var(--wp--preset--font-family--plex-mono,'IBM Plex Mono',monospace);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--wp--preset--color--ink-soft,#6E6A63);text-align:left;padding:12px 16px;border-bottom:1px solid var(--wp--preset--color--line,#E4DCCC)}
.cd-country-rank th.cd-country-rank__idx-h{text-align:right}
.cd-country-rank td{padding:13px 16px;border-bottom:1px solid var(--wp--preset--color--line,#E4DCCC);vertical-align:top;font-size:.94rem}
.cd-country-rank tr:last-child td{border-bottom:none}
.cd-country-rank__pos{color:var(--wp--preset--color--ink-soft,#6E6A63);width:2.4rem}
.cd-country-rank__q{color:var(--wp--preset--color--ink,#34312D);font-weight:600;text-decoration:none;border-bottom:1px solid var(--wp--preset--color--sage,#CFD4B2)}
.cd-country-rank__sub{display:block;font-size:.78rem;color:var(--wp--preset--color--ink-soft,#6E6A63);margin-top:.15rem}
.cd-country-rank__mejor{font-size:.8rem;color:var(--wp--preset--color--ink-soft,#6E6A63);width:34%}
.cd-country-rank__idx{font-family:var(--wp--preset--font-family--spectral,Spectral,serif);font-weight:600;font-size:1.15rem;text-align:right;width:5rem}
.cd-country-pag ul{list-style:none;display:flex;gap:8px;padding:0;margin:0 0 3rem}
.cd-country-pag a,.cd-country-pag span{display:inline-block;padding:.35rem .8rem;border:1px solid var(--wp--preset--color--line,#E4DCCC);border-radius:8px;text-decoration:none;color:var(--wp--preset--color--ink,#34312D);font-size:.85rem}
.cd-country-pag .current{background:var(--wp--preset--color--ink,#34312D);color:var(--wp--preset--color--base,#FAF6EC);border-color:var(--wp--preset--color--ink,#34312D)}
.cd-country-qgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:3.4rem}
.cd-country-qcard{background:var(--wp--preset--color--surface,#FFFDF7);border:1px solid var(--wp--preset--color--line,#E4DCCC);border-radius:14px;padding:20px}
.cd-country-qcard__loc{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--wp--preset--color--ink-soft,#8C887F);margin:0}
.cd-country-qcard__name{font-family:var(--wp--preset--font-family--spectral,Spectral,serif);font-weight:600;font-size:1.05rem;margin:.35rem 0 .6rem;line-height:1.25}
.cd-country-qcard__name a{text-decoration:none;color:inherit;border-bottom:1px solid var(--wp--preset--color--sage,#CFD4B2)}
.cd-country-qcard__foot{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--wp--preset--color--line,#E4DCCC);padding-top:.6rem}
.cd-country-qcard__foot .cd-mono{font-size:.72rem;color:var(--wp--preset--color--ink-soft,#6E6A63)}
.cd-country-qcard__best{font-family:var(--wp--preset--font-family--spectral,Spectral,serif);font-weight:600;font-size:1.3rem;color:var(--wp--preset--color--sage-deep,#6E7A50)}
.cd-country-qcard__sub{font-size:.72rem;color:var(--wp--preset--color--ink-soft,#8C887F);margin:.25rem 0 0}
.cd-country-cross{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:2rem}
.cd-country-chip{background:var(--wp--preset--color--surface,#FFFDF7);border:1px solid var(--wp--preset--color--line,#E4DCCC);border-radius:999px;padding:.45rem 1rem;text-decoration:none;color:var(--wp--preset--color--ink,#34312D);font-size:.86rem}
.cd-country-chip .cd-mono{color:var(--wp--preset--color--sage-deep,#6E7A50);margin-left:.35rem;font-size:.78rem}
.cd-country-btn{border:1.5px solid var(--wp--preset--color--ink,#34312D);border-radius:999px;padding:.6rem 1.5rem;text-decoration:none;color:var(--wp--preset--color--ink,#34312D);font-weight:600;font-size:.9rem}
@media(max-width:860px){.cd-country-bento{grid-template-columns:1fr 1fr}.cd-country-podium{grid-template-columns:1fr}.cd-country-rank__mejor,.cd-country-rank__mejor-h{display:none}.cd-country-qgrid{grid-template-columns:1fr 1fr}.cd-country-map svg{max-width:150px}}
@media(max-width:560px){.cd-country-qgrid{grid-template-columns:1fr}.cd-country-bento{grid-template-columns:1fr}}
