/* Exod_US. · capa de adaptación a WordPress (bloques, navegación y WooCommerce) */

.wp-site-blocks { padding-top: 0; padding-bottom: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }
main.wp-block-group { margin-top: 0; }
:where(.seccion, .hero, .familias, .final, .ficha-cab) > * { margin-block-start: 0; }
.envoltura > * + * { margin-block-start: 0; }
.seccion.alignfull, .hero.alignfull, .familias.alignfull, .final.alignfull { margin-top: 0 !important; margin-bottom: 0 !important; }
.wp-block-post-content > .alignfull + .alignfull { margin-top: 0; }

/* Etiquetas, entradillas y listas como estilos de bloque */
p.is-style-etiqueta, h2.is-style-etiqueta, h3.is-style-etiqueta {
  font-family: var(--f-sans); font-weight: 600; font-size: var(--t-xs); letter-spacing: .22em; text-transform: uppercase;
  color: var(--abeto); display: flex; align-items: center; gap: .7em; margin: 0 0 16px;
}
p.is-style-etiqueta::before, h2.is-style-etiqueta::before, h3.is-style-etiqueta::before { content: ""; width: 26px; height: 2px; background: currentColor; flex: 0 0 auto; }
.oscuro p.is-style-etiqueta, .is-style-oscuro p.is-style-etiqueta { color: var(--turquesa); }
p.is-style-entradilla { font-size: var(--t-lg); line-height: 1.55; font-weight: 300; max-width: 38em; }
ul.is-style-simple { list-style: none; padding: 0; margin: 24px 0; }
ul.is-style-simple li { padding: 12px 0 12px 30px; border-bottom: 1px solid var(--linea); position: relative; }
ul.is-style-simple li::before { content: ""; position: absolute; left: 0; top: 23px; width: 16px; height: 2px; background: var(--coral); }
.is-style-oscuro { background: var(--granito); color: var(--papel); }
.is-style-crema { background: var(--crema-clara); }
.titular em, h2 em { font-style: italic; color: var(--turquesa-hondo); }
.oscuro h2 em, .is-style-oscuro h2 em { color: var(--turquesa); }

/* Botones de bloque con el comportamiento de .boton */
.wp-block-button__link { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; transition: transform .15s ease, box-shadow .15s ease; text-decoration: none !important; }
.wp-block-button__link:hover { transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--granito); }
.oscuro .wp-block-button__link:hover, .is-style-oscuro .wp-block-button__link:hover { box-shadow: 4px 4px 0 var(--turquesa); }
.wp-block-button.is-style-secundario .wp-block-button__link { background: transparent; color: var(--granito); border-color: var(--granito); }
.oscuro .wp-block-button.is-style-secundario .wp-block-button__link, .is-style-oscuro .wp-block-button.is-style-secundario .wp-block-button__link { color: var(--papel); border-color: var(--papel); }
.wp-block-button.is-style-oscuro .wp-block-button__link { background: var(--granito); color: var(--papel); border-color: var(--granito); }
.final .wp-block-button__link { background: var(--granito); color: var(--papel); border-color: var(--granito); }
.final .wp-block-button__link:hover { box-shadow: 4px 4px 0 var(--papel); }
.wp-block-buttons { gap: 12px; }

/* Cabecera */
.cabecera { padding: 0 !important; }
.cabecera__fila { gap: 16px !important; }
.cabecera .wp-block-site-logo { flex: 0 0 auto; }
.cabecera .wp-block-site-logo a { display: block; background: var(--granito); border-radius: 6px; padding: 6px 10px 5px; box-shadow: 3px 3px 0 var(--coral); transform: rotate(-1.5deg); transition: transform .2s ease; }
.cabecera .wp-block-site-logo a:hover { transform: rotate(0); }
.cabecera .wp-block-site-logo img { width: 86px; height: auto; }
.cabecera .wp-block-navigation { margin-left: auto; font-size: .95rem; font-weight: 500; gap: 2px; }
.cabecera .wp-block-navigation-item__content { padding: 10px 11px; border-radius: 4px; text-decoration: none; }
.cabecera .wp-block-navigation-item__content:hover { background: var(--crema-clara); text-decoration: none; }
.cabecera .current-menu-item > .wp-block-navigation-item__content { box-shadow: inset 0 -2px 0 var(--coral); }
.cabecera .nav-ts .wp-block-navigation-item__content::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--turquesa-hondo); margin-right: 6px; vertical-align: middle; }
.cabecera .wp-block-navigation__responsive-container.is-menu-open { padding: 24px var(--gutter); }
.cabecera .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-family: var(--f-serif); font-size: 1.6rem; padding: 10px 0; }
.cabecera .utiles { gap: 2px !important; flex-wrap: nowrap; }
.cabecera .utiles a, .cabecera .wc-block-mini-cart__button, .cabecera .wp-block-woocommerce-customer-account a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 8px 10px; border-radius: 4px; font-size: .9rem; font-weight: 500; text-decoration: none; }
.cabecera .utiles a:hover, .cabecera .wc-block-mini-cart__button:hover { background: var(--crema-clara); }
.cabecera .util-cal svg { width: 22px; height: 22px; }
@media (max-width: 1120px) {
  .cabecera .util-cal span, .cabecera .wp-block-woocommerce-customer-account .label { display: none; }
  .cabecera .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
  .cabecera .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
  .cabecera .wp-block-navigation { order: 3; margin-left: 0; }
  .cabecera .utiles { margin-left: auto; }
}
.cabecera .wp-block-navigation__responsive-container-open svg { width: 28px; height: 28px; }
@media (max-width: 600px) { .cabecera .wp-block-site-logo img { width: 74px; } .cabecera__fila { min-height: 64px; } }

/* Barra de aviso superior (editable desde la plantilla) */
.aviso-sitio { background: var(--granito); color: var(--crema); font-size: var(--t-sm); text-align: center; padding: 8px var(--gutter); margin: 0; }
.aviso-sitio a { color: var(--turquesa); }

/* Pie */
.pie .wp-block-site-logo img { width: 170px; }
.pie .wp-block-columns { gap: 40px; }
.pie .wp-block-heading { font-family: var(--f-sans); font-size: .76rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--papel); margin: 0 0 14px; }
.pie ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.pie a { text-decoration: none; }
.pie a:hover { color: var(--turquesa); }

/* Contenido de entradas y páginas normales */
.cabecera-pagina { padding: clamp(48px, 7vw, 96px) 0 clamp(28px, 4vw, 48px); border-bottom: 1px solid var(--linea); margin-bottom: clamp(32px, 5vw, 64px); }
.cabecera-pagina .wp-block-post-title { font-size: var(--t-2xl); margin: 0; }
.contenido-texto { font-size: 1.08rem; }
.contenido-texto h2 { font-size: var(--t-xl); margin-top: 2em; }
.contenido-texto h3 { font-family: var(--f-sans); font-weight: 600; font-size: 1.15rem; margin-top: 1.6em; }
.contenido-texto a { color: var(--indigo); }
.contenido-texto .wp-block-table td, .contenido-texto .wp-block-table th { border-color: var(--linea); padding: 10px; }
.respuesta-rapida { background: var(--crema-clara); border-left: 4px solid var(--turquesa-hondo); padding: 20px 24px; border-radius: 4px; }
.caja-autor { display: grid; grid-template-columns: 72px 1fr; gap: 18px; padding: 24px; background: var(--crema-clara); border-radius: var(--radio); margin-top: 48px; }
.wp-block-post-terms a { font-size: .74rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--abeto); text-decoration: none; }
.lista-entradas .wp-block-post-featured-image img { aspect-ratio: 4 / 3; object-fit: cover; }
.lista-entradas .wp-block-post-title { font-size: 1.35rem; }
.lista-entradas .wp-block-post-title a { text-decoration: none; }

/* ---------- WooCommerce: reserva dentro de la ficha ---------- */
.reserva form.cart { margin: 0; display: block; }
.reserva .quantity { margin: 0 0 12px; }
.reserva .quantity .qty { width: 100%; min-height: 48px; border: 2px solid var(--granito); border-radius: var(--radio); text-align: center; font: 700 1.1rem var(--f-sans); }
.reserva table.variations { width: 100%; margin: 0 0 12px; border: 0; }
.reserva table.variations th, .reserva table.variations td { display: block; padding: 0; border: 0; text-align: left; }
.reserva table.variations label { font-weight: 600; font-size: .92rem; }
.reserva table.variations select { width: 100%; min-height: 48px; border: 2px solid var(--granito); border-radius: var(--radio); padding: 8px 12px; font: inherit; background: var(--papel); margin: 6px 0 4px; }
.reserva .reset_variations { font-size: .8rem; }
.reserva .woocommerce-variation-price { margin: 6px 0 12px; font-weight: 700; font-size: 1.3rem; }
.reserva .single_add_to_cart_button, .woocommerce .reserva button.button.alt {
  width: 100%; min-height: 52px; background: var(--coral) !important; color: var(--granito) !important; border: 2px solid var(--coral); border-radius: var(--radio); font: 600 1.05rem var(--f-sans); cursor: pointer;
}
.reserva .single_add_to_cart_button:hover { box-shadow: 4px 4px 0 var(--granito); transform: translate(-2px, -2px); }
.reserva .stock { font-size: .9rem; font-weight: 600; margin: 0 0 12px; }
.reserva .stock.in-stock { color: var(--abeto); }
.reserva .stock.out-of-stock { color: var(--error); }
.reserva .completo { background: #FBE9E7; color: var(--error); padding: 10px 14px; border-radius: var(--radio); font-weight: 600; }

/* WooCommerce: carrito y finalizar compra (shortcode clásico) */
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .woocommerce #respond input#submit {
  background: var(--coral); color: var(--granito); border-radius: var(--radio); font-family: var(--f-sans); font-weight: 600; padding: .85em 1.4em; border: 2px solid var(--coral);
}
.woocommerce .button:hover, .woocommerce button.button:hover, .woocommerce a.button:hover { background: var(--coral); color: var(--granito); box-shadow: 4px 4px 0 var(--granito); }
.woocommerce button.button.alt, .woocommerce a.button.alt { background: var(--coral); color: var(--granito); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select, .woocommerce-page form .form-row .select2-container .select2-selection {
  min-height: 48px; border: 2px solid var(--granito); border-radius: var(--radio); padding: 10px 14px; background: var(--papel); font: inherit;
}
.woocommerce form .form-row label { font-weight: 600; font-size: .92rem; }
.woocommerce table.shop_table { border-radius: var(--radio); border-color: var(--linea); }
.woocommerce-message, .woocommerce-info { border-top-color: var(--turquesa-hondo); background: var(--crema-clara); }
.woocommerce-error { border-top-color: var(--error); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--turquesa-hondo); }
.exodus-participantes { margin: 32px 0; padding: 24px; border: 2px solid var(--granito); border-radius: 8px; background: var(--papel); }
.exodus-participantes h3 { font-family: var(--f-serif); font-size: 1.5rem; margin: 0 0 6px; }
.exodus-participantes fieldset { border: 0; border-top: 1px solid var(--linea); margin: 16px 0 0; padding: 16px 0 0; }
.exodus-participantes legend { font-weight: 700; padding: 0; }
.exodus-consentimientos { margin: 24px 0; padding: 20px 24px; background: var(--crema-clara); border-radius: var(--radio); }
.exodus-consentimientos .form-row { margin-bottom: 12px; }
.exodus-consentimientos label.checkbox { font-weight: 400 !important; display: grid !important; grid-template-columns: 22px 1fr; gap: 10px; }

/* Catálogo */
.catalogo__filtros { display: flex; flex-wrap: wrap; gap: 8px; margin: 32px 0 8px; }
.catalogo__filtros button { min-height: 40px; padding: 6px 16px; border: 2px solid var(--granito); border-radius: 20px; background: var(--papel); font: 500 .92rem var(--f-sans); cursor: pointer; }
.catalogo__filtros button[aria-pressed="true"] { background: var(--granito); color: var(--papel); }
.catalogo__vacio { padding: 40px 0; color: var(--granito-60); }
.salidas-claras { background: var(--papel); color: var(--granito); }
.salidas-claras .salida { border-color: var(--linea); }
.salidas-claras .salida p { color: var(--granito-80); }
.salidas-claras .salida__fecha .cifra { color: var(--granito); }
.salidas-claras .datos { background: var(--linea); border-color: var(--linea); }
.salidas-claras .dato { background: var(--papel); }
.salidas-claras .dato__v { color: var(--indigo); }
.salidas-claras .dato__e { color: var(--granito-60); }
.salidas-claras .salida h3 a:hover { color: var(--turquesa-hondo); }

/* Calendario */
.calendario__mes { margin-top: 48px; }
.calendario__mes h2 { font-size: var(--t-xl); text-transform: capitalize; border-bottom: 2px solid var(--granito); padding-bottom: 10px; margin-bottom: 0; }
.calendario__fila { display: grid; grid-template-columns: 110px 1fr auto auto; gap: 20px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--linea); text-decoration: none; }
.calendario__fila:hover { background: var(--crema-clara); }
.calendario__dia { font-weight: 700; text-transform: uppercase; letter-spacing: .1em; font-size: .82rem; color: var(--coral); }
.calendario__dia b { display: block; font-size: 1.8rem; color: var(--granito); letter-spacing: -.02em; }
.calendario__titulo { font-family: var(--f-serif); font-size: 1.35rem; }
.calendario__estado { font-size: .85rem; font-weight: 600; }
.calendario__estado--lleno { color: var(--error); }
@media (max-width: 700px) { .calendario__fila { grid-template-columns: 80px 1fr; } .calendario__fila > :nth-child(n+3) { grid-column: 2; } }

/* Galería */
.galeria__rejilla { columns: 3 280px; column-gap: 10px; margin-top: 24px; }
.galeria__item { break-inside: avoid; margin: 0 0 10px; position: relative; }
.galeria__item button { padding: 0; border: 0; background: none; cursor: zoom-in; display: block; width: 100%; }
.galeria__item img { width: 100%; height: auto; }
.galeria__item figcaption { font-size: .8rem; color: var(--granito-60); padding: 6px 0 0; }
.galeria__item[hidden] { display: none; }
.visor { padding: 0; background: var(--granito); color: var(--papel); max-width: min(1100px, calc(100vw - 32px)); }
.visor img { max-height: 82vh; width: auto; max-width: 100%; margin: 0 auto; }
.visor__pie { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 16px; font-size: .9rem; }
.visor__pie button { background: none; border: 1px solid var(--papel); color: var(--papel); border-radius: 4px; padding: 6px 12px; cursor: pointer; }

/* Pasaporte */
.pasaporte { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 18px; margin-top: 24px; }
.pasaporte__sello { aspect-ratio: 1; border: 3px dashed var(--turquesa-hondo); border-radius: 50%; display: grid; place-items: center; text-align: center; padding: 18px; transform: rotate(-6deg); }
.pasaporte__sello:nth-child(3n+2) { border-color: var(--coral); transform: rotate(5deg); }
.pasaporte__sello:nth-child(3n) { border-color: var(--indigo); transform: rotate(-2deg); }
.pasaporte__sello b { display: block; font-size: .95rem; text-transform: uppercase; letter-spacing: .06em; line-height: 1.15; }
.pasaporte__sello span { font-size: .75rem; color: var(--granito-60); }
.aviso-sellos { font-size: .82rem; color: var(--granito-60); margin-top: 16px; }

/* Secciones de la portada construidas con bloques */
.wp-block-post-content > .alignfull { max-width: none; }
.hero__titulo em { font-style: italic; color: var(--turquesa-hondo); }
.hero .wp-block-image.hero__foto { margin: 0; position: relative; height: 100%; }
.hero .wp-block-image.hero__foto img { width: 100%; height: 100%; object-fit: cover; }
.hero .wp-block-image.hero__foto figcaption { position: absolute; left: 16px; bottom: 16px; margin: 0; background: rgba(34,38,42,.78); color: var(--papel); font-size: .78rem; padding: 4px 10px; border-radius: 3px; }
.hero__texto .wp-block-buttons { margin-top: 12px; }
p.hero__datos { margin-top: 40px; padding-top: 22px; border-top: 1px solid var(--linea); font-size: var(--t-sm); }
.filosofia__cab { margin-bottom: 56px !important; gap: 40px; }
.oscuro .titular, .oscuro h2 { color: var(--papel); }
.oscuro .is-style-entradilla { color: #D5D8DA; }
.familias .envoltura { display: grid; }
.familias__titulo { font-family: var(--f-comic) !important; font-weight: 400 !important; font-size: clamp(2.6rem, 1.8rem + 3.5vw, 4.6rem); line-height: .95; letter-spacing: .02em; margin: 16px 0 22px; }
.familias__titulo em { font-style: normal; color: var(--papel); -webkit-text-stroke: 3px var(--granito); paint-order: stroke fill; text-shadow: 5px 5px 0 var(--coral); }
.familias p.is-style-etiqueta { color: var(--abeto); }
.partido .wp-block-image.partido__media { margin: 0; }
.partido .wp-block-image.partido__media img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.ts__marca { font-family: var(--f-sans) !important; font-weight: 700 !important; }
.final .envoltura { position: relative; }
.final .wp-block-buttons { justify-content: center; }
.final p:not(.is-style-etiqueta) { max-width: 34em; margin-left: auto; margin-right: auto; font-weight: 500; }
.final p.is-style-etiqueta { justify-content: center; color: var(--granito); }
.honestidad { margin-top: 44px !important; }
.guia-cols .retrato { max-width: 320px; }
.wp-block-image.retrato-foto { margin: 0; max-width: 340px; }
.wp-block-image.retrato-foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 40% 30%; border-radius: 2px; box-shadow: 8px 8px 0 var(--turquesa); }
.guia-mini__foto { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; object-position: 40% 35%; }
.lista-entradas .wp-block-post-template { gap: 28px; }
.categorias-blog { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 28px 0 0; }
.categorias-blog li a { display: inline-block; padding: 6px 14px; border: 1.5px solid var(--granito); border-radius: 20px; font-size: .88rem; text-decoration: none; }
.categorias-blog li a:hover { background: var(--granito); color: var(--papel); }
.respuesta-rapida + * { margin-top: 1.6em; }
mark { background: #FFF1A8; padding: 0 4px; }

/* ================= TownSquare: cuaderno de campo =================
   Se diferencia del resto de la web: fondo de papel crema, tinta abeto, curvas de nivel y sellos de tinta. */
body.ts-miembro .ts-publico { display: none; }
.ts-zona { background: var(--crema-clara); background-image: radial-gradient(rgba(7,68,61,.05) 1px, transparent 1px); background-size: 14px 14px; padding-top: 32px !important; }
body:not(.ts-miembro) .ts-zona { display: none; }
.ts-panel { color: var(--granito); }
.ts-subnav { position: sticky; top: 72px; z-index: 5; display: flex; gap: 4px; overflow-x: auto; background: var(--abeto); border-radius: 30px; padding: 6px; margin-bottom: 36px; scrollbar-width: none; }
.ts-subnav a { flex: 0 0 auto; color: var(--crema); text-decoration: none; font-weight: 500; font-size: .9rem; padding: 8px 16px; border-radius: 22px; }
.ts-subnav a:hover, .ts-subnav a:focus-visible { background: rgba(252,250,248,.14); }
.ts-resumen { display: grid; grid-template-columns: 1fr 1.1fr; gap: 32px; align-items: center; padding-bottom: 32px; border-bottom: 2px solid var(--abeto); scroll-margin-top: 140px; }
.ts-resumen .titular { margin: 0 0 12px; }
.ts-nivel { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 0 14px; color: var(--granito-80); }
.ts-nivel__chapa { background: var(--abeto); color: var(--crema); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; font-size: .78rem; padding: 6px 14px; border-radius: 4px; box-shadow: 3px 3px 0 var(--coral); }
.ts-progreso { height: 8px; background: rgba(7,68,61,.15); border-radius: 4px; overflow: hidden; max-width: 380px; }
.ts-progreso span { display: block; height: 100%; background: var(--turquesa-hondo); }
.ts-cifras { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; border: 1px solid rgba(7,68,61,.25); border-radius: 6px; overflow: hidden; background: var(--papel); }
.ts-cifras li { flex: 1 1 18%; min-width: 96px; padding: 16px 10px; text-align: center; box-shadow: 1px 1px 0 rgba(7,68,61,.18); }
.ts-cifras b { display: block; font-size: 1.6rem; font-weight: 700; color: var(--abeto); letter-spacing: -.02em; }
.ts-cifras span { font-size: .72rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--granito-60); }
.ts-bloque { padding: 44px 0 0; scroll-margin-top: 140px; }
.ts-h2 { font-size: var(--t-xl) !important; margin: 0 0 20px; display: flex; align-items: center; gap: 12px; }
.ts-h2::before { content: ""; width: 22px; height: 22px; border: 2px solid var(--coral); border-radius: 50%; flex: 0 0 auto; }
.ts-columnas { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ts-tarjeta { background: var(--papel); border: 1px solid rgba(7,68,61,.2); border-radius: 10px; padding: 24px; box-shadow: 0 1px 0 rgba(7,68,61,.08); }
.ts-tarjeta h3 { font-family: var(--f-serif); font-size: 1.35rem; margin: 0 0 12px; }
.ts-tarjeta--oscura { background: var(--abeto); color: var(--crema); border: 0; }
.ts-tarjeta--oscura a:not(.boton) { color: var(--turquesa); }
.ts-lista { list-style: none; padding: 0; margin: 0; }
.ts-lista li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px dashed rgba(7,68,61,.25); font-size: .95rem; }
.ts-lista li > span:last-child, .ts-lista li > a + span { color: var(--granito-60); font-size: .85rem; text-align: right; }
.ts-etq { font-size: .72rem !important; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--turquesa-hondo) !important; }
.boton.ts-mini { min-height: 36px; padding: .4em .9em; font-size: .85rem; }
.ts-espacios { list-style: none; padding: 0; margin: 16px 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ts-espacios li { background: rgba(252,250,248,.1); border: 1px solid rgba(252,250,248,.2); border-radius: 20px; padding: 5px 12px; font-size: .88rem; }
.ts-enlace { background: none; border: 0; padding: 0; color: var(--indigo); text-decoration: underline; cursor: pointer; font: inherit; font-size: .92rem; }
@media (max-width: 860px) {
  .ts-resumen, .ts-columnas { grid-template-columns: 1fr; }
  .ts-subnav { top: 64px; border-radius: 10px; }
}

/* Pasaporte de montaña: libro abierto */
.pasaporte-libro { display: grid; grid-template-columns: minmax(260px, .8fr) 1.4fr; border-radius: 14px; overflow: hidden; box-shadow: 0 18px 40px rgba(7,68,61,.18), 0 2px 0 rgba(7,68,61,.25); border: 1px solid rgba(7,68,61,.3); }
.pasaporte-hoja { padding: 28px; position: relative; overflow: hidden; }
.pasaporte-datos { background: var(--abeto); color: var(--crema); }
.pasaporte-datos .curvas { right: -200px; bottom: -220px; width: 520px; color: var(--turquesa); opacity: .18; }
.pasaporte-datos > *:not(.curvas) { position: relative; }
.pasaporte-datos .curvas { position: absolute; }
.pasaporte-cab { font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; margin: 0 0 4px; }
.pasaporte-cab b { display: block; font-family: var(--f-serif); font-size: 1.6rem; letter-spacing: 0; text-transform: none; font-weight: 500; margin-top: 4px; }
.pasaporte-num { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .85rem; color: var(--turquesa); margin: 0 0 18px; }
.pasaporte-datos dl { margin: 0; display: grid; gap: 0; }
.pasaporte-datos dl div { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; border-bottom: 1px dashed rgba(242,219,205,.25); }
.pasaporte-datos dt { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; opacity: .75; }
.pasaporte-datos dd { margin: 0; font-weight: 600; text-align: right; }
.pasaporte-claim { font-family: var(--f-serif); font-style: italic; margin: 18px 0 0; opacity: .85; }
.pasaporte-sellos { background: var(--papel); background-image: repeating-linear-gradient(0deg, transparent 0 27px, rgba(7,68,61,.06) 27px 28px); }
.pasaporte-sellos .pasaporte-cab { color: var(--abeto); }
.sellos-rejilla { list-style: none; padding: 0; margin: 16px 0 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 18px 12px; }
.sellos-rejilla li { text-align: center; }
.sello-svg { width: 104px; height: 104px; display: block; margin: 0 auto 6px; transform: rotate(var(--giro, -4deg)); mix-blend-mode: multiply; opacity: .92; }
.sello-nombre { display: block; font-weight: 600; font-size: .85rem; line-height: 1.25; }
.sello-origen { display: block; font-size: .72rem; color: var(--granito-60); line-height: 1.3; margin-top: 2px; }
.sellos-rejilla--apagada .sello-svg { opacity: .5; transform: none; }
.sellos-pendientes { margin-top: 24px; }
.sellos-pendientes summary { cursor: pointer; font-weight: 600; color: var(--abeto); }
@media (max-width: 760px) { .pasaporte-libro { grid-template-columns: 1fr; } .sello-svg { width: 88px; height: 88px; } }

/* Valoraciones */
.valorar { max-width: 640px; }
.estrellas { border: 0; padding: 0; margin: 16px 0 20px; display: inline-flex; flex-direction: row-reverse; gap: 4px; }
.estrellas legend { font-weight: 600; margin-bottom: 6px; width: 100%; }
.estrellas input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.estrellas label { font-size: 2.2rem; line-height: 1; color: #CFC8C2; cursor: pointer; }
.estrellas input:checked ~ label, .estrellas label:hover, .estrellas label:hover ~ label { color: var(--coral); }
.estrellas input:focus-visible + label { outline: 3px solid var(--indigo); outline-offset: 2px; }
.valorar textarea { width: 100%; border: 2px solid var(--granito); border-radius: var(--radio); padding: 10px 14px; font: inherit; background: var(--papel); }
.req { color: var(--coral); }
.valoraciones__media { font-size: 1.05rem; }
.estrellas-fijas { color: var(--coral); letter-spacing: 2px; }
.valoracion { margin: 0; padding: 18px 0; border-top: 1px solid var(--linea); }
.valoracion p { font-family: var(--f-serif); font-size: 1.15rem; margin: 6px 0; }
.valoracion cite { font-style: normal; font-size: .85rem; color: var(--granito-60); }

/* Cajas de acceso TownSquare */
.ts-acceso { padding: 28px; border-radius: 8px; background: var(--granito); color: var(--papel); }
.ts-acceso a.boton { margin-top: 8px; }
