/* ==========================================================================
   Cass Ildefonso — estilos cinematográficos
   Colores y tipografías base viven en theme.json (Apariencia › Editor › Estilos).
   ========================================================================== */

:root {
	--cass-fondo: #0B0A09;
	--cass-sup: #161412;
	--cass-foto: #1C1915;
	--cass-linea: #2B2621;
	--cass-linea-2: #6B635A;
	--cass-marfil: #EFE8DD;
	--cass-arena: #D3CABD;
	--cass-texto: #BDB4A8;
	--cass-gris: #A39A8E;
	--cass-gris-2: #7D756B;
	--cass-rojo: #B3211B;
	--cass-rojo-2: #D9473C;
	--cass-display: 'Bodoni Moda', Didot, 'Bodoni 72', Georgia, serif;
	--cass-editorial: 'Cormorant Garamond', Georgia, serif;
	--cass-sans: Manrope, system-ui, -apple-system, sans-serif;
	--cass-ease: cubic-bezier(.2, .7, .2, 1);
	--cass-gutter: clamp(20px, 4vw, 40px);
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; overflow-x: hidden; }
::selection { background: var(--cass-rojo); color: #fff; }
:focus-visible { outline: 2px solid var(--cass-rojo-2); outline-offset: 3px; }
img { height: auto; }

.wp-site-blocks > * { margin-block-start: 0; }
.wp-block-post-content > .alignfull { margin-block-start: 0 !important; margin-block-end: 0 !important; }
.wp-block-heading em { font-style: italic; color: var(--cass-rojo-2); }

/* ---------- Tipografía utilitaria ---------- */
.cass-label {
	font-family: var(--cass-sans);
	font-weight: 600;
	font-size: 12px !important;
	line-height: 1.5;
	letter-spacing: .21em;
	text-transform: uppercase;
	color: var(--cass-gris);
	margin: 0;
}
.cass-label a { color: inherit; text-decoration: none; }
.cass-sub {
	font-family: var(--cass-editorial);
	font-style: italic;
	font-size: clamp(1.25rem, 2vw, 1.5rem);
	line-height: 1.4;
	color: var(--cass-arena);
}
.cass-body { color: var(--cass-texto); }
.cass-small { font-size: 14px; line-height: 1.6; color: var(--cass-gris); }
.cass-note { font-size: 14px; line-height: 1.6; color: var(--cass-gris); margin-top: 2rem !important; }
.cass-quote { font-family: var(--cass-editorial); font-style: italic; font-size: 1.5rem; line-height: 1.4; color: var(--cass-marfil); }
.cass-page-title { margin: .4em 0 .3em; }

/* ---------- Botones ---------- */
.wp-block-button__link { transition: background-color .35s, color .35s, border-color .35s; }
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	border: 1px solid var(--cass-linea-2);
	color: var(--cass-marfil);
	padding: 16px 27px;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { border-color: var(--cass-marfil); background: rgba(239, 232, 221, .06); color: #fff; }
.cass-btn-wa, .cass-btn, .cass-btn-ghost {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 52px; padding: 0 28px; box-sizing: border-box;
	font: 600 13px/1.2 var(--cass-sans); letter-spacing: 2px; text-transform: uppercase;
	text-decoration: none; cursor: pointer; border: 1px solid transparent;
	background: var(--cass-rojo); color: #F5EFE6; transition: background-color .3s, border-color .3s;
}
.cass-btn-wa:hover, .cass-btn:hover { background: #C9281F; color: #fff; }
.cass-btn-ghost { background: transparent; border-color: var(--cass-linea-2); color: var(--cass-marfil); }
.cass-btn-ghost:hover { border-color: var(--cass-marfil); color: #fff; }
.cass-btn[disabled] { opacity: .45; cursor: not-allowed; }

/* ---------- Encabezado ---------- */
.cass-header { position: relative; z-index: 100; transition: background-color .45s, border-color .45s; border-bottom: 1px solid transparent; }
.cass-js .cass-header { position: fixed; top: 0; left: 0; right: 0; }
.admin-bar.cass-js .cass-header, .cass-js .admin-bar .cass-header { top: 32px; }
@media (max-width: 782px) { .cass-js .admin-bar .cass-header { top: 46px; } }
.cass-header.is-scrolled { background: rgba(11, 10, 9, .9); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-bottom-color: var(--cass-linea); }
.cass-header-inner { max-width: 1440px; margin: 0 auto; padding: 22px var(--cass-gutter); gap: 24px; transition: padding .45s; }
.cass-header.is-scrolled .cass-header-inner { padding-top: 13px; padding-bottom: 13px; }
.cass-logo { margin: 0; font-family: var(--cass-display); font-size: 17px; font-weight: 400; letter-spacing: .38em; text-transform: uppercase; white-space: nowrap; }
.cass-logo a { text-decoration: none; color: var(--cass-marfil); }

.cass-nav { font-family: var(--cass-sans); font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; gap: 26px; }
.cass-nav .wp-block-navigation-item__content { color: var(--cass-arena); text-decoration: none; }
.cass-nav .wp-block-navigation-item__content:hover { color: #fff; }
.cass-nav .wp-block-navigation__submenu-container {
	background: #110F0D !important; border: 1px solid var(--cass-linea) !important;
	padding: 10px 0 !important; min-width: 250px !important;
}
.cass-nav .wp-block-navigation__submenu-container { color: var(--cass-arena) !important; }
.cass-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 10px 22px !important; color: var(--cass-arena) !important; }
.cass-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: #fff !important; background: rgba(239, 232, 221, .05); }
.cass-nav .cass-nav-cta > .wp-block-navigation-item__content { background: var(--cass-rojo); color: #F5EFE6; padding: 12px 18px; }
.cass-nav .cass-nav-cta > .wp-block-navigation-item__content:hover { background: #C9281F; }
.cass-nav .wp-block-navigation__responsive-container-open svg,
.cass-nav .wp-block-navigation__responsive-container-close svg { fill: var(--cass-marfil); }
.cass-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--cass-fondo) !important; color: var(--cass-marfil) !important; padding: 28px var(--cass-gutter) !important; }
.cass-nav .is-menu-open .wp-block-navigation-item__content { font-family: var(--cass-display); font-size: 26px; font-weight: 400; letter-spacing: 0; text-transform: none; padding: 4px 0 !important; }
.cass-nav .is-menu-open .wp-block-navigation__submenu-container { background: transparent !important; border: 0 !important; padding: 0 0 8px 0 !important; }
.cass-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-family: var(--cass-sans); font-size: 15px; color: var(--cass-gris); }
.cass-nav .is-menu-open .wp-block-navigation__responsive-container-content { gap: 10px; padding-top: 40px; }
.cass-nav .is-menu-open .cass-nav-cta > .wp-block-navigation-item__content { font-family: var(--cass-sans); font-size: 13px; letter-spacing: 2px; text-transform: uppercase; padding: 14px 20px !important; margin-top: 18px; }
@media (min-width: 600px) and (max-width: 1180px) {
	.cass-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
	.cass-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
}

/* ---------- Hero cinematográfico ---------- */
.cass-hero {
	min-height: 92vh !important;
	align-items: flex-end !important;
	padding: 150px var(--cass-gutter) clamp(52px, 8vh, 96px) !important;
	background: #14110E;
	overflow: hidden;
	isolation: isolate;
}
.cass-hero::after {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background:
		radial-gradient(ellipse at 50% 45%, transparent 35%, rgba(0, 0, 0, .7) 100%),
		linear-gradient(to top, rgba(11, 10, 9, .92) 0%, rgba(11, 10, 9, 0) 55%);
}
.cass-hero > .wp-block-cover__inner-container { position: relative; z-index: 2; max-width: 1240px; width: 100%; margin: 0 auto; }
.cass-hero .wp-block-cover__inner-container > * { margin-top: 0; margin-bottom: 0; }
.cass-hero .cass-label { margin-bottom: 26px; color: var(--cass-arena); }
.cass-hero-title { max-width: 17ch; margin-bottom: 22px !important; text-wrap: balance; }
.cass-hero .cass-sub { max-width: 38ch; margin-bottom: 36px !important; }
.cass-hero .wp-block-cover__image-background,
.cass-hero .wp-block-cover__video-background { animation: cass-kenburns 22s var(--cass-ease) both; }
@keyframes cass-kenburns { from { transform: scale(1.14); } to { transform: scale(1); } }
.cass-hero-ph { position: absolute; top: 0; right: 0; max-width: 360px; text-align: right; }
.cass-stats { gap: 12px 44px !important; margin-top: clamp(40px, 7vh, 76px) !important; padding-top: 22px; border-top: 1px solid rgba(239, 232, 221, .18); }
.cass-stats .cass-label { color: var(--cass-arena); }

/* Visor de cámara (lo agrega cass-cine.js) */
.cass-vf { position: absolute; inset: clamp(96px, 13vh, 124px) clamp(14px, 3vw, 36px) clamp(14px, 3vh, 30px); z-index: 2; pointer-events: none; }
.cass-vf i { position: absolute; width: 26px; height: 26px; border: 0 solid rgba(239, 232, 221, .55); }
.cass-vf .tl { top: 0; left: 0; border-top-width: 1px; border-left-width: 1px; }
.cass-vf .tr { top: 0; right: 0; border-top-width: 1px; border-right-width: 1px; }
.cass-vf .bl { bottom: 0; left: 0; border-bottom-width: 1px; border-left-width: 1px; }
.cass-vf .br { bottom: 0; right: 0; border-bottom-width: 1px; border-right-width: 1px; }
.cass-vf span { position: absolute; font: 600 11px/1 var(--cass-sans); letter-spacing: .18em; color: rgba(239, 232, 221, .8); font-variant-numeric: tabular-nums; }
.cass-vf .rec { top: 8px; left: 40px; }
.cass-vf .rec b { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--cass-rojo-2); margin-right: 9px; vertical-align: 0; animation: cass-blink 1.2s steps(1) infinite; }
.cass-vf .tc { top: 8px; right: 40px; }
.cass-vf .meta { bottom: 8px; right: 40px; color: rgba(239, 232, 221, .5); }
@keyframes cass-blink { 50% { opacity: 0; } }
@media (max-width: 700px) { .cass-vf .meta, .cass-vf .bl, .cass-vf .br { display: none; } }

/* Barras de cine que se abren al cargar */
.cass-lb { position: absolute; left: 0; right: 0; height: 14vh; background: #000; z-index: 3; transition: transform 1.7s cubic-bezier(.7, 0, .2, 1); }
.cass-lb--t { top: 0; }
.cass-lb--b { bottom: 0; }
.cass-hero.is-open .cass-lb--t { transform: translateY(-100%); }
.cass-hero.is-open .cass-lb--b { transform: translateY(100%); }

/* Entrada escalonada del hero */
.cass-js .cass-hero .wp-block-cover__inner-container > * { opacity: 0; transform: translateY(26px); transition: opacity 1.2s var(--cass-ease), transform 1.2s var(--cass-ease); }
.cass-js .cass-hero.is-open .wp-block-cover__inner-container > * { opacity: 1; transform: none; }
.cass-js .cass-hero.is-open .wp-block-cover__inner-container > :nth-child(2) { transition-delay: .55s; }
.cass-js .cass-hero.is-open .wp-block-cover__inner-container > :nth-child(3) { transition-delay: .7s; }
.cass-js .cass-hero.is-open .wp-block-cover__inner-container > :nth-child(4) { transition-delay: .9s; }
.cass-js .cass-hero.is-open .wp-block-cover__inner-container > :nth-child(5) { transition-delay: 1.05s; }
.cass-js .cass-hero.is-open .wp-block-cover__inner-container > :nth-child(n+6) { transition-delay: 1.2s; }

/* Intro de cortinilla (una vez por visita) */
.cass-intro { position: fixed; inset: 0; z-index: 10000; background: #000; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; transition: opacity 1s ease .1s; }
.cass-intro small { font: 600 11px/1 var(--cass-sans); letter-spacing: .3em; text-transform: uppercase; color: var(--cass-gris); opacity: 0; animation: cass-fadein 1s ease .15s forwards; }
.cass-intro strong { font: 400 clamp(22px, 4vw, 40px)/1 var(--cass-display); letter-spacing: .45em; text-indent: .45em; color: var(--cass-marfil); opacity: 0; animation: cass-fadein 1.2s ease .35s forwards; }
.cass-intro.is-out { opacity: 0; pointer-events: none; }
@keyframes cass-fadein { to { opacity: 1; } }

/* Grano de película y barra de avance */
.cass-grain {
	position: fixed; top: -50%; left: -50%; width: 200%; height: 200%; z-index: 9998; pointer-events: none; opacity: .07;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	animation: cass-grain 1s steps(6) infinite;
}
@keyframes cass-grain {
	0% { transform: translate(0, 0); } 17% { transform: translate(-4%, 3%); } 33% { transform: translate(3%, -5%); }
	50% { transform: translate(-6%, -2%); } 67% { transform: translate(5%, 4%); } 83% { transform: translate(-2%, 6%); } 100% { transform: translate(0, 0); }
}
.cass-progress { position: fixed; top: 0; left: 0; height: 2px; width: 100%; transform-origin: 0 50%; transform: scaleX(0); background: var(--cass-rojo-2); z-index: 101; pointer-events: none; }

/* Aparición al hacer scroll */
.cass-reveal { opacity: 0; transform: translateY(30px); transition: opacity 1.1s var(--cass-ease), transform 1.1s var(--cass-ease); }
.cass-reveal.is-in { opacity: 1; transform: none; }

/* ---------- Secciones ---------- */
.cass-sec { position: relative; padding-top: clamp(84px, 11vw, 150px) !important; padding-bottom: clamp(84px, 11vw, 150px) !important; }
.cass-sec--alt { background: var(--cass-sup); border-top: 1px solid var(--cass-linea); border-bottom: 1px solid var(--cass-linea); }
.cass-sec--alt + .cass-sec--alt { border-top: 0; }
.cass-final { background: #14110E; border-top: 1px solid var(--cass-linea); }
.cass-sec-head { margin-bottom: clamp(36px, 5vw, 64px); }
.cass-sec-head > * { margin-top: 0 !important; margin-bottom: 0 !important; }
.cass-sec-head > * + * { margin-top: 18px !important; }
.cass-sec-head-row { gap: 24px; margin-bottom: clamp(36px, 5vw, 64px); }
.cass-sec-head-row .cass-sec-head { margin-bottom: 0; }
.cass-center { text-align: center; }
.cass-center .wp-block-buttons { justify-content: center; }
.cass-center > * { margin-left: auto !important; margin-right: auto !important; }
.cass-narrow { max-width: 760px; margin-left: auto !important; margin-right: auto !important; }
.cass-page-head { padding-top: clamp(150px, 20vh, 210px) !important; padding-bottom: clamp(44px, 6vw, 76px) !important; border-bottom: 1px solid var(--cass-linea); }
.cass-page-head > * { margin-top: 0 !important; margin-bottom: 0 !important; }
.cass-page-head .cass-page-title { margin: 18px 0 16px !important; }
.cass-blog, .cass-single, .cass-404, .cass-texto { padding-top: clamp(140px, 18vh, 190px) !important; padding-bottom: 120px !important; }

.cass-split { gap: clamp(32px, 6vw, 84px) !important; margin-bottom: 0 !important; }
.cass-split--center { align-items: center !important; }
.cass-split .wp-block-column > :first-child { margin-top: 0; }
.cass-split .cass-label + .wp-block-heading { margin-top: 18px; }

/* ---------- Espacios de foto ---------- */
.cass-ph {
	background: var(--cass-foto);
	border: 1px solid var(--cass-linea);
	min-height: 0 !important;
	padding: 14px !important;
	align-items: flex-end !important;
	justify-content: flex-start !important;
	overflow: hidden;
}
.cass-ph--v { aspect-ratio: 3 / 4; }
.cass-ph--h { aspect-ratio: 3 / 2; }
.cass-ph--cine { aspect-ratio: 2.39 / 1; }
.cass-ph--poster { aspect-ratio: 2 / 3; }
.cass-ph--sq { aspect-ratio: 4 / 5; }
.cass-ph--video { aspect-ratio: 16 / 9; }
.cass-ph > .wp-block-cover__inner-container { width: 100%; }
.cass-ph-label {
	font-family: var(--cass-sans) !important; font-style: normal !important;
	font-size: 11px !important; line-height: 1.5 !important; letter-spacing: .14em; text-transform: uppercase;
	color: var(--cass-gris-2) !important; margin: 0 !important;
}
.wp-block-cover:has(.wp-block-cover__image-background, .wp-block-cover__video-background) .cass-ph-label { display: none; }
.cass-ph .wp-block-cover__image-background { transition: transform 1.4s var(--cass-ease); }
.cass-cine { background: #000; padding: clamp(16px, 3vw, 38px) 0; margin-top: clamp(48px, 6vw, 84px) !important; }
.cass-cine .cass-ph { border: 0; }
.cass-gallery { margin-top: clamp(40px, 5vw, 64px) !important; }

/* ---------- Tarjetas ---------- */
.cass-cards { row-gap: clamp(30px, 3vw, 44px) !important; }
.cass-card { position: relative; display: flex; flex-direction: column; gap: 12px; }
.cass-card > * { margin: 0 !important; }
.cass-card-title { font-size: clamp(1.25rem, 1.7vw, 1.5rem) !important; font-weight: 500; line-height: 1.2; margin-top: 8px !important; }
.cass-card-title a { text-decoration: none; }
.cass-card .cass-card-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.cass-card:hover .wp-block-cover__image-background { transform: scale(1.045); }
.cass-card:hover .cass-card-title a { color: #fff; }
.cass-price-tag { color: var(--cass-arena) !important; font-family: var(--cass-sans); font-size: 12px; font-weight: 600; letter-spacing: .21em; text-transform: uppercase; }
.cass-season .wp-block-buttons { position: relative; z-index: 2; margin-top: 8px !important; }

/* ---------- Paquetes ---------- */
.cass-packs { gap: 20px !important; align-items: stretch !important; }
.cass-pack { display: flex; flex-direction: column; gap: 14px; padding: 32px 26px; border: 1px solid var(--cass-linea); background: var(--cass-fondo); }
.cass-pack > * { margin: 0 !important; }
.cass-pack .wp-block-heading { font-size: 1.6rem; }
.cass-price { font-family: var(--cass-display); font-size: clamp(2.1rem, 3vw, 2.6rem); line-height: 1; color: var(--cass-marfil); }
.cass-price-note { font-size: 13px; color: var(--cass-gris); margin-top: -6px !important; }
.cass-pack .wp-block-buttons { margin-top: auto !important; padding-top: 14px; }
.cass-pack .wp-block-button { width: 100%; }
.cass-pack .wp-block-button__link { display: block; width: 100%; text-align: center; }
.cass-pack--destacado { border-color: var(--cass-rojo); background: #120F0D; box-shadow: 0 30px 80px -40px rgba(179, 33, 27, .55); }
.cass-badge { align-self: flex-start; background: var(--cass-rojo); color: #F5EFE6 !important; padding: 6px 10px; }
.cass-list { list-style: none; padding: 16px 0 0 !important; margin: 0; border-top: 1px solid var(--cass-linea); display: flex; flex-direction: column; gap: 9px; }
.cass-list li { position: relative; padding-left: 18px; font-size: 15px; line-height: 1.5; color: var(--cass-arena); }
.cass-list li::before { content: ""; position: absolute; left: 0; top: .72em; width: 8px; height: 1px; background: var(--cass-rojo-2); }
@media (min-width: 782px) and (max-width: 1100px) {
	.cass-packs { flex-wrap: wrap !important; }
	.cass-packs > .wp-block-column { flex-basis: calc(50% - 10px) !important; flex-grow: 0 !important; }
}

/* ---------- Método ---------- */
.cass-steps { gap: clamp(28px, 4vw, 56px) !important; }
.cass-step { border-top: 1px solid var(--cass-linea-2); padding-top: 26px; }
.cass-step > * { margin-top: 0; }
.cass-step-num { font: 600 12px/1 var(--cass-sans); letter-spacing: .2em; color: var(--cass-rojo-2); margin-bottom: 18px !important; }
.cass-step .wp-block-heading { margin-bottom: 14px; }
.cass-step p:last-child { color: var(--cass-texto); }

/* ---------- Preguntas frecuentes ---------- */
.cass-faq { border-bottom: 1px solid var(--cass-linea); }
.cass-faq > * { margin: 0 !important; }
.cass-faq details { border-top: 1px solid var(--cass-linea); padding: 24px 0; }
.cass-faq summary { font-family: var(--cass-display); font-size: clamp(1.15rem, 1.6vw, 1.35rem); line-height: 1.35; color: var(--cass-marfil); cursor: pointer; list-style: none; position: relative; padding-right: 44px; }
.cass-faq summary::-webkit-details-marker { display: none; }
.cass-faq summary::after { content: "+"; position: absolute; right: 6px; top: -4px; font: 300 28px/1 var(--cass-sans); color: var(--cass-rojo-2); transition: transform .35s var(--cass-ease); }
.cass-faq details[open] summary::after { transform: rotate(45deg); }
.cass-faq details p { color: var(--cass-texto); margin: 14px 0 0; }
@media (min-width: 782px) {
	.cass-faq-head { position: sticky; top: 130px; align-self: flex-start !important; }
}

/* ---------- Pósters (Cartelera) ---------- */
.cass-poster { aspect-ratio: 2 / 3; min-height: 0 !important; align-items: flex-end !important; padding: 26px !important; overflow: hidden; border: 1px solid var(--cass-linea); }
.cass-poster::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, .75), transparent 55%); pointer-events: none; }
.cass-poster > .wp-block-cover__inner-container { position: relative; z-index: 2; width: 100%; }
.cass-poster-title { font-family: var(--cass-display) !important; font-weight: 400 !important; font-size: clamp(1.5rem, 2.3vw, 2.15rem) !important; line-height: 1.04 !important; letter-spacing: .04em; text-transform: uppercase; text-align: center; margin: 0 !important; }
.cass-poster-title a { text-decoration: none; }
.cass-poster-title a::after { content: ""; position: absolute; inset: -2000px; }
.cass-poster .wp-block-cover__image-background { transition: transform 1.6s var(--cass-ease); }
.cass-poster:hover .wp-block-cover__image-background { transform: scale(1.05); }
.cass-poster.cass-ph { justify-content: center !important; }
.cass-poster.cass-ph .cass-ph-label { text-align: center; margin-top: 14px !important; }
.cass-poster-grid { row-gap: 26px !important; }
.wp-block-post-template.is-layout-grid { gap: 26px; }
@media (max-width: 1000px) { .wp-block-post-template.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 640px) { .wp-block-post-template.is-layout-grid { grid-template-columns: 1fr !important; } }
.cass-cartelera .wp-block-post-template { list-style: none; padding: 0; margin: 0; }

/* ---------- Blog ---------- */
.cass-post-card { display: flex; flex-direction: column; gap: 12px; }
.cass-post-card > * { margin: 0 !important; }
.cass-post-card .wp-block-post-featured-image { background: var(--cass-foto); overflow: hidden; aspect-ratio: 3 / 2; }
.cass-post-card .wp-block-post-featured-image img { transition: transform 1.4s var(--cass-ease); }
.cass-post-card:hover .wp-block-post-featured-image img { transform: scale(1.045); }
.cass-post-card .cass-card-title a { text-decoration: none; }
.cass-blog-head { margin-bottom: clamp(40px, 6vw, 72px); }
.cass-blog-head > * { margin-top: 0; margin-bottom: 0; }
.cass-pagination { margin-top: 56px; font: 600 12px var(--cass-sans); letter-spacing: .18em; text-transform: uppercase; }
.cass-single-head { margin-bottom: 40px; }
.cass-single .wp-block-post-content { font-size: 18px; }
.cass-single .wp-block-post-content p, .cass-texto .wp-block-post-content p { color: var(--cass-arena); }
.cass-single .wp-block-post-content h2 { margin-top: 2.2em; font-size: clamp(1.7rem, 3vw, 2.3rem); }
.cass-texto .wp-block-post-content h2 { margin-top: 2em; font-size: 1.6rem; }
.cass-author { margin-top: 72px !important; padding-top: 32px; border-top: 1px solid var(--cass-linea); }
.cass-post-nav { margin-top: 48px !important; font: 600 12px var(--cass-sans); letter-spacing: .16em; text-transform: uppercase; }

/* ---------- Reseñas y números ---------- */
.cass-reviews { row-gap: 40px !important; }
.cass-review { border-top: 1px solid var(--cass-linea-2); padding-top: 24px; }
.cass-review > * { margin-top: 0; }
.cass-stat { border-top: 1px solid var(--cass-linea-2); padding-top: 22px; }
.cass-stat > * { margin: 0 0 10px !important; }

/* ---------- Mapa ---------- */
.cass-map { position: relative; aspect-ratio: 4 / 3; border: 1px solid var(--cass-linea); overflow: hidden; background: var(--cass-foto); }
.cass-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(1) invert(.92) contrast(.88); }

/* ---------- Créditos (pie) ---------- */
.cass-credits { padding: clamp(90px, 10vw, 140px) var(--cass-gutter) 64px !important; text-align: center; border-top: 1px solid var(--cass-linea); }
.cass-credits > * { margin-top: 0 !important; margin-bottom: 0 !important; margin-left: auto !important; margin-right: auto !important; }
.cass-credits-name { font-family: var(--cass-display); font-size: clamp(1.5rem, 3vw, 2.2rem); letter-spacing: .36em; text-indent: .36em; margin: 14px auto 18px !important; }
.cass-credits-roll { font-size: 14px; color: var(--cass-gris); margin-top: 10px !important; }
.cass-credits-roll:first-of-type { margin-top: 36px !important; }
.cass-credits a { text-decoration: none; color: var(--cass-arena); }
.cass-credits a:hover { color: #fff; }
.cass-credits-links { margin-top: 30px !important; font: 600 12px/2 var(--cass-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--cass-gris-2); }
.cass-fin { font-family: var(--cass-editorial); font-style: italic; font-size: 1.7rem; color: var(--cass-gris-2); margin-top: 64px !important; }

/* ---------- WhatsApp flotante ---------- */
.cass-wa { position: fixed; right: 20px; bottom: 20px; z-index: 90; width: 56px; height: 56px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--cass-rojo); color: #fff; box-shadow: 0 12px 34px rgba(0, 0, 0, .55); transition: transform .35s var(--cass-ease), background-color .3s; }
.cass-wa:hover { transform: scale(1.07); background: #C9281F; color: #fff; }

/* ---------- Verificador de fecha ---------- */
.cass-fecha-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; }
.cass-center .cass-fecha-form { justify-content: center; }
.cass-fecha-form .cass-field { text-align: left; }
.cass-fecha-res { margin-top: 16px; font-size: 15px; color: var(--cass-arena); display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; min-height: 1.5em; }
.cass-center .cass-fecha-res { justify-content: center; }
.cass-fecha-res a { color: var(--cass-marfil); }
.cass-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 8px; background: var(--cass-gris); }
.cass-dot--ok { background: #6FBF73; }
.cass-dot--warn { background: #E0A84B; }
.cass-dot--no { background: var(--cass-rojo-2); }
.cass-hero .cass-fecha { margin-top: 36px; }

/* ---------- Campos de formulario ---------- */
.cass-field { display: flex; flex-direction: column; gap: 8px; }
.cass-field > label, .cass-field > .cass-field-label { font: 600 12px/1.4 var(--cass-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--cass-gris); }
.cass-field input, .cass-field select, .cass-field textarea {
	min-height: 52px; padding: 0 16px; box-sizing: border-box; width: 100%;
	background: var(--cass-fondo); color: var(--cass-marfil); border: 1px solid var(--cass-linea-2); border-radius: 0;
	font: 400 16px/1.4 var(--cass-sans); color-scheme: dark;
}
.cass-field textarea { min-height: 110px; padding: 14px 16px; resize: vertical; }
.cass-field input:focus, .cass-field select:focus, .cass-field textarea:focus { outline: 0; border-color: var(--cass-marfil); }
.cass-field--check { flex-direction: row; align-items: flex-start; gap: 12px; font-size: 14px; color: var(--cass-arena); }
.cass-field--check input { width: 20px; min-height: 20px; height: 20px; margin-top: 2px; accent-color: var(--cass-rojo); }

/* ---------- Cotizador ---------- */
.cass-cotiza .cass-sec-head { max-width: 760px; margin-left: auto; margin-right: auto; }
.cass-cot { max-width: 940px; margin: 0 auto; border: 1px solid var(--cass-linea); background: var(--cass-sup); padding: clamp(24px, 4vw, 44px); box-sizing: border-box; text-align: left; }
.cass-cot-bar { display: flex; gap: 8px; margin-bottom: 26px; }
.cass-cot-bar span { flex: 1; height: 3px; background: #3A342E; transition: background-color .5s; }
.cass-cot-bar span.on { background: var(--cass-rojo); }
.cass-cot-step { font: 600 12px var(--cass-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--cass-gris); margin: 0 0 10px; }
.cass-cot h3 { font-family: var(--cass-display); font-weight: 500; font-size: clamp(1.5rem, 2.6vw, 2rem); line-height: 1.15; margin: 0 0 26px; color: var(--cass-marfil); }
.cass-choices { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }
.cass-choice {
	display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 4px; min-height: 68px; padding: 14px 18px;
	background: var(--cass-fondo); border: 1px solid #3A342E; color: var(--cass-arena); cursor: pointer; text-align: left;
	font: 600 13px/1.35 var(--cass-sans); letter-spacing: .08em; text-transform: uppercase; transition: border-color .25s, color .25s, background-color .25s;
}
.cass-choice small { font: 400 13px/1.3 var(--cass-sans); letter-spacing: 0; text-transform: none; color: var(--cass-gris); }
.cass-choice:hover { border-color: var(--cass-linea-2); color: #fff; }
.cass-choice[aria-pressed="true"] { border-color: var(--cass-rojo); color: #fff; background: #1A0F0D; }
.cass-cot-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 18px; }
.cass-cot-grid .cass-field--full { grid-column: 1 / -1; }
.cass-cot-sub { font: 600 12px var(--cass-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--cass-gris); margin: 28px 0 12px; }
.cass-result { margin-top: 28px; padding-top: 26px; border-top: 1px solid var(--cass-linea); display: grid; gap: 6px; }
.cass-result .cass-result-name { font: 400 clamp(1.6rem, 3vw, 2.1rem)/1.15 var(--cass-display); color: var(--cass-marfil); margin: 0; }
.cass-result ul { margin: 12px 0 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px 18px; }
.cass-result li { font-size: 14px; color: var(--cass-arena); position: relative; padding-left: 16px; }
.cass-result li::before { content: ""; position: absolute; left: 0; top: .7em; width: 8px; height: 1px; background: var(--cass-rojo-2); }
.cass-result p { margin: 0; font-size: 14px; color: var(--cass-gris); }
.cass-cot-nav { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px; margin-top: 32px; }
.cass-cot-err { color: #F08A80; font-size: 14px; margin: 14px 0 0; min-height: 1em; }
.cass-cot-link { background: none; border: 0; padding: 0; color: var(--cass-gris); font: 600 12px var(--cass-sans); letter-spacing: .16em; text-transform: uppercase; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.cass-cot-link:hover { color: #fff; }
.cass-gracias-txt { font-size: 18px; }

/* ---------- Accesibilidad: menos movimiento ---------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.cass-grain, .cass-intro, .cass-lb { display: none !important; }
	.cass-hero .wp-block-cover__image-background, .cass-hero .wp-block-cover__video-background { animation: none; }
	.cass-reveal, .cass-js .cass-hero .wp-block-cover__inner-container > * { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ---------- Póster de cotización ---------- */
.cass-poster-out { max-width: 540px; margin: 56px auto 0; text-align: center; }
.cass-poster-out > * { margin-left: auto; margin-right: auto; }
.cass-poster-out .cass-sub { margin: 10px 0 24px; }
.cass-poster-frame { aspect-ratio: 4 / 5; background: var(--cass-foto); border: 1px solid var(--cass-linea); display: flex; align-items: center; justify-content: center; box-shadow: 0 40px 90px -40px rgba(0, 0, 0, .9); }
.cass-poster-frame span { font: 600 12px var(--cass-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--cass-gris); }
.cass-poster-frame img { display: block; width: 100%; height: auto; }
.cass-poster-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 22px; }

/* ---------- Quiz ---------- */
.cass-solo-editor { font: 600 12px/1.5 var(--cass-sans) !important; letter-spacing: .08em; color: #E0A84B !important; border: 1px dashed #6B5A3A; padding: 10px 14px; }
.cass-js .cass-solo-editor { display: none; }
.cass-js .cass-quiz-res { display: none; }
.cass-js .cass-quiz-res.is-on { display: block; animation: cass-fadein .9s ease both; opacity: 0; }
.cass-quiz-res { padding-top: clamp(40px, 6vw, 72px); }
.cass-quiz-res + .cass-quiz-res { border-top: 1px dashed var(--cass-linea); margin-top: 48px; }
.cass-js .cass-quiz-res + .cass-quiz-res { border-top: 0; margin-top: 0; }
.cass-quiz-res > * { margin-top: 0; }
.cass-quiz-res .cass-label + .cass-quiz-title { margin-top: 14px; }
.cass-quiz-title { font-size: clamp(2.4rem, 6vw, 4.4rem) !important; }
.cass-quiz-res .cass-body { max-width: 62ch; }
.cass-quiz-fotos { margin-top: 36px !important; }
.cass-quiz-cta { margin-top: 44px; padding-top: 32px; border-top: 1px solid var(--cass-linea); display: grid; gap: 8px; }
.cass-quiz-cta .cass-result-name { font: 400 clamp(1.6rem, 3vw, 2.1rem)/1.15 var(--cass-display); margin: 0; }
.cass-quiz-cta .cass-poster-actions { justify-content: flex-start; }
.cass-quiz-again { text-align: center; }
.cass-quiz .cass-cot { margin: 0 auto; }

/* ---------- Antes y después ---------- */
.cass-ba-stage { position: relative; width: 100%; overflow: hidden; border: 1px solid var(--cass-linea); --pos: 50%; user-select: none; background: var(--cass-foto); }
.cass-ba-stage img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cass-ba-before { clip-path: inset(0 calc(100% - var(--pos)) 0 0); }
.cass-ba-line { position: absolute; top: 0; bottom: 0; left: var(--pos); width: 2px; margin-left: -1px; background: var(--cass-marfil); pointer-events: none; }
.cass-ba-line::after { content: "‹ ›"; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 46px; height: 46px; border-radius: 50%; background: var(--cass-fondo); border: 1px solid var(--cass-marfil); color: var(--cass-marfil); font: 600 15px/44px var(--cass-sans); text-align: center; }
.cass-ba-tag { position: absolute; top: 16px; font: 600 11px var(--cass-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--cass-marfil); background: rgba(11, 10, 9, .7); padding: 6px 10px; pointer-events: none; }
.cass-ba-tag--a { left: 16px; }
.cass-ba-tag--b { right: 16px; }
.cass-ba-stage input[type=range] { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
.cass-ba-stage:focus-within .cass-ba-line::after { outline: 2px solid var(--cass-rojo-2); outline-offset: 3px; }

/* ---------- Créditos de proveedores ---------- */
.cass-creditos { margin: 64px 0 !important; padding: 44px 0; border-top: 1px solid var(--cass-linea); border-bottom: 1px solid var(--cass-linea); text-align: center; }
.cass-creditos > * { margin: 0 auto !important; }
.cass-creditos .wp-block-heading { margin: 12px auto 28px !important; font-size: clamp(1.5rem, 2.6vw, 2rem); }
.cass-credito { font-size: 15px; color: var(--cass-arena); line-height: 2.1; }
.cass-credito strong { display: inline-block; min-width: 0; font: 600 11px var(--cass-sans); letter-spacing: .2em; text-transform: uppercase; color: var(--cass-gris); margin-right: 12px; }
.cass-credito a { color: var(--cass-marfil); }

/* ---------- Cupo y referidos ---------- */
.cass-cupo { font: 600 12px/1.5 var(--cass-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--cass-arena); }
.cass-ref-codigo { font: 400 clamp(1.4rem, 2.4vw, 1.9rem)/1.2 var(--cass-display); color: var(--cass-marfil); }
.cass-ref-box { margin-top: 18px; }
.cass-ref-box input { width: 100%; min-height: 48px; padding: 0 14px; box-sizing: border-box; background: var(--cass-fondo); border: 1px solid var(--cass-linea-2); color: var(--cass-arena); font: 400 14px var(--cass-sans); }
.cass-ref-box .cass-poster-actions { justify-content: flex-start; margin-top: 14px; }
