/*
Theme Name: Rooftop Studio
Description: A custom block theme scaffolded by Studio Code.
Requires at least: 6.7
Tested up to: 6.9
Requires PHP: 7.2
Version: 0.1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: rooftop-studio
Tags: full-site-editing, block-patterns, block-styles, wide-blocks, accessibility-ready, style-variations
*/

/* WordPress inserts margin-block-start: var(--wp--style--block-gap) between the
   template's top-level sections (header part, main, footer part) — a gap that
   exists even when no markup asks for it. Zero it so sections butt edge-to-edge
   and own their vertical rhythm via padding; this does not affect block gaps
   inside nested layouts. */
.wp-site-blocks > * + * {
	margin-block-start: 0;
}

/* ============================================================
   ROOFTOP STUDIO — base
   ============================================================ */
:root {
	--rt-ease: cubic-bezier(0.16, 1, 0.3, 1);
}

* { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

html { scroll-behavior: smooth; }

body {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	overflow-x: hidden;
}

::selection { background: var(--wp--preset--color--accent); color: var(--wp--preset--color--base); }

/* Eyebrow / kicker label */
.rt-kicker {
	font-family: var(--wp--preset--font-family--body);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.32em;
	font-size: 0.72rem;
	color: var(--wp--preset--color--accent);
}

/* Serif accent for elegant sub-headings */
.rt-serif, .rt-serif * {
	font-family: var(--wp--preset--font-family--serif) !important;
	text-transform: none !important;
	letter-spacing: -0.01em !important;
	line-height: 1.15 !important;
}

/* Thin divider line */
.rt-rule { height: 1px; background: var(--wp--preset--color--line); border: 0; width: 100%; }

/* ============================================================
   HEADER + NAV
   ============================================================ */
.wp-site-blocks > .wp-block-template-part:first-child {
	position: sticky;
	top: 0;
	z-index: 1000;
	overflow: visible;
}

.rt-header {
	position: relative;
	z-index: 1;
	isolation: isolate;
	background: rgba(14,14,13,0.86);
	-webkit-backdrop-filter: blur(16px) saturate(125%);
	backdrop-filter: blur(16px) saturate(125%);
	border-bottom: 1px solid rgba(181,179,140,0.18);
	box-shadow: 0 10px 30px rgba(0,0,0,0.22), 0 2px 8px rgba(0,0,0,0.16);
	transition: background 0.4s var(--rt-ease), box-shadow 0.4s var(--rt-ease);
}

.rt-header > .wp-block-group {
	box-sizing: border-box;
	width: calc(100% - clamp(2rem, 6vw, 7rem));
	max-width: 1280px;
	margin-inline: auto;
	justify-content: center !important;
	gap: clamp(6rem, 14vw, 13rem);
}

.rt-header .rt-logo,
.rt-header .rt-logo img {
	max-height: 46px;
	width: auto;
	flex: 0 0 auto;
}

.rt-header .rt-logo img {
	display: block;
	filter: drop-shadow(0 2px 6px rgba(0,0,0,0.28));
}

/* Navigation */
.rt-header .wp-block-navigation {
	font-family: var(--wp--preset--font-family--body);
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	font-size: 0.78rem;
}

.rt-header .wp-block-navigation-item__content {
	padding: 0.4em 0;
	color: var(--wp--preset--color--contrast);
	opacity: 0.85;
	text-shadow: 0 0 0 rgba(181,179,140,0);
	transition: opacity 0.3s var(--rt-ease), color 0.3s var(--rt-ease), text-shadow 0.35s var(--rt-ease), transform 0.35s var(--rt-ease);
}
.rt-header .wp-block-navigation-item__content:hover,
.rt-header .wp-block-navigation-item__content:focus-visible {
	opacity: 1;
	color: var(--wp--preset--color--accent);
	text-shadow: 0 0 14px rgba(181,179,140,0.42);
	transform: translateY(-1px);
}

/* Underline sweep on top-level items */
.rt-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	position: relative;
}
.rt-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0; bottom: -2px;
	width: 100%; height: 1px;
	background: var(--wp--preset--color--accent);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.4s var(--rt-ease);
}
.rt-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after {
	transform: scaleX(1);
	transform-origin: left;
}

/* Submenu dropdown */
.rt-header .wp-block-navigation .wp-block-navigation__submenu-container {
	background: rgba(24,24,22,0.98);
	border: 1px solid rgba(181,179,140,0.24);
	border-radius: 14px;
	padding: 0.65rem 0;
	/* Fixed width for every submenu: prevents the panel from resizing
	   when a longer item (e.g. "Afro Fusión & Dancehall") scrolls into view. */
	width: 306px;
	min-width: 306px;
	max-width: 92vw;
	overflow: hidden;
	box-shadow: 0 26px 58px rgba(0,0,0,0.48), 0 10px 24px rgba(0,0,0,0.28), 0 0 0 1px rgba(181,179,140,0.06);
}
.rt-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.62em 1.4em;
	letter-spacing: 0.1em;
	font-size: 0.74rem;
	white-space: nowrap;
	transition: color 0.28s var(--rt-ease), background-color 0.28s var(--rt-ease), padding-left 0.32s var(--rt-ease);
}
.rt-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.rt-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
	padding-left: 1.7em;
	background: rgba(181,179,140,0.09);
}

/* ============================================================
   FOOTER
   ============================================================ */
.rt-footer { border-top: 1px solid var(--wp--preset--color--line); }
.rt-footer .rt-kicker { display: block; }
.rt-footer a { text-decoration: none; transition: color 0.3s var(--rt-ease); }
.rt-footer .wp-block-social-links .wp-social-link { transition: transform 0.3s var(--rt-ease); }
.rt-footer .wp-block-social-links .wp-social-link:hover { transform: translateY(-3px); }

/* ============================================================
   HERO
   ============================================================ */
:root { --rt-header-h: 79px; }

/* On the home page pull the main content (which starts with .rt-hero) up
   behind the sticky transparent header, so the hero video begins at the very
   top of the viewport and shows through the transparent menu. */
.home main.wp-block-group {
	margin-top: calc(-1 * var(--rt-header-h, 79px));
}

.rt-hero {
	position: relative;
	min-height: 100svh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	padding-top: calc(var(--rt-header-h, 79px) + 1.5rem) !important;
	background:
		radial-gradient(circle at 50% 30%, rgba(181,179,140,0.10), rgba(14,14,13,0) 55%),
		var(--wp--preset--color--base);
	overflow: hidden;
}
.rt-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(var(--wp--preset--color--line) 1px, transparent 1px),
		linear-gradient(90deg, var(--wp--preset--color--line) 1px, transparent 1px);
	background-size: 90px 90px;
	opacity: 0.25;
	-webkit-mask-image: radial-gradient(circle at 50% 45%, #000 0%, transparent 72%);
	mask-image: radial-gradient(circle at 50% 45%, #000 0%, transparent 72%);
}
.rt-hero > * { position: relative; z-index: 1; width: 100%; }
.rt-hero__title {
	margin: 0.15em 0 0.25em;
	letter-spacing: 0.005em;
}
.rt-hero__sub { max-width: 620px; margin-left: auto; margin-right: auto; }

/* Hero background video (black & white, dimmed) — full viewport width */
.rt-hero__video,
.rt-hero__scrim {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 100vw;
	max-width: 100vw;
	height: 100%;
	margin: 0;
	z-index: 0;
	pointer-events: none;
}
.rt-hero__video {
	object-fit: cover;
	filter: grayscale(100%) brightness(0.55) contrast(1.05);
}
.rt-hero__scrim {
	background:
		radial-gradient(circle at 50% 40%, rgba(14,14,13,0.25), rgba(14,14,13,0.72) 75%),
		linear-gradient(rgba(14,14,13,0.35), rgba(14,14,13,0.65));
	pointer-events: none;
}

/* Tighten vertical rhythm so logo, text and buttons stay in first view */
.rt-hero { row-gap: 0; }
.rt-hero .rt-kicker { margin-bottom: 0.25rem; }
.rt-hero__sub {
	max-width: min(94vw, 900px);
	margin: -0.4rem auto 0;
	text-wrap: nowrap;
}
@media (max-width: 900px) {
	.rt-hero__sub { text-wrap: pretty; }
}
.rt-hero .wp-block-buttons { margin-top: 1.1rem !important; }

/* Hero logo (replaces the text title) — large & fluid, overflows the text width */
.rt-hero__logo {
	margin: 0 auto -0.4rem;
	width: clamp(320px, 92vw, 1180px);
	max-width: 92vw;
}
.rt-hero__logo.aligncenter { max-width: 92vw; }
.rt-hero__logo img {
	width: clamp(320px, 92vw, 1180px);
	max-width: 92vw;
	height: auto;
	/* Reserve the box before the file loads so the hero doesn't jump (CLS). */
	aspect-ratio: 900 / 637;
	display: block;
	margin: 0 auto;
}

/* Cover images: fill the card and crop, never stretch (also avoids CLS). */
.rt-card > img.wp-block-cover__image-background,
.wp-block-cover > img.wp-block-cover__image-background {
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	max-width: none;
	object-fit: cover !important;
	object-position: center center;
	z-index: 0;
}
/* Keep the dim overlay and the text above the image. */
.wp-block-cover > .wp-block-cover__background,
.wp-block-cover > .wp-block-cover__gradient-background { z-index: 1; }
.wp-block-cover > .wp-block-cover__inner-container { z-index: 2; }

/* Visually hidden but accessible to screen readers and search engines */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ============================================================
   SECTIONS
   ============================================================ */
.rt-section { position: relative; }

/* Page header (interior pages) */
/* Page title banner: a soft gold bloom in the centre that fades out well before
   the edges, so the sides sit almost flush with the page background. */
.rt-title-banner,
.rt-hero-banner {
	background:
		radial-gradient(ellipse 46% 88% at 50% 50%, rgba(181,179,140,0.13), rgba(181,179,140,0.05) 34%, rgba(14,14,13,0) 62%),
		var(--wp--preset--color--base);
	border-bottom: 1px solid var(--wp--preset--color--line);
}

.rt-page-header {
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.rt-intro .rt-serif { max-width: 800px; margin-left: auto; margin-right: auto; }
.rt-intro p { max-width: min(94vw, 880px); margin-left: auto; margin-right: auto; text-wrap: pretty; }

/* Media images — elegant framed treatment (soft rounded corners,
   inset hairline mat + a gentle depth shadow, like a fine print in a frame). */
.rt-media {
	position: relative;
	padding: 10px;
	border-radius: 20px;
	background: linear-gradient(160deg, rgba(181,179,140,0.10), rgba(181,179,140,0.02));
	border: 1px solid rgba(181,179,140,0.22);
	box-shadow: 0 22px 48px rgba(0,0,0,0.28), 0 4px 14px rgba(0,0,0,0.16);
	transition: box-shadow 0.7s var(--rt-ease), transform 0.7s var(--rt-ease);
}
.rt-media img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 12px;
	filter: grayscale(35%) contrast(1.02);
	transition: filter 0.7s var(--rt-ease), transform 0.7s var(--rt-ease);
	box-shadow: inset 0 0 0 1px rgba(244,242,236,0.06);
}
.rt-media:hover {
	transform: translateY(-4px);
	box-shadow: 0 30px 60px rgba(0,0,0,0.34), 0 6px 18px rgba(0,0,0,0.2);
}
.rt-media:hover img { filter: grayscale(0%) contrast(1.05); transform: scale(1.012); }

/* ============================================================
   EXPERIENCE CARDS (cover)
   ============================================================ */
/* Same elegant framed treatment as .rt-media: rounded corners, gold hairline
   and a soft depth shadow that lifts on hover. */
.rt-card {
	overflow: hidden;
	border-radius: 20px;
	border: 1px solid rgba(181,179,140,0.22);
	box-shadow: 0 22px 48px rgba(0,0,0,0.28), 0 4px 14px rgba(0,0,0,0.16);
	transition: box-shadow 0.7s var(--rt-ease), transform 0.7s var(--rt-ease);
}
.rt-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 30px 60px rgba(0,0,0,0.34), 0 6px 18px rgba(0,0,0,0.2);
}
.rt-card .wp-block-cover__image-background {
	transition: transform 0.8s var(--rt-ease);
}
.rt-card:hover .wp-block-cover__image-background { transform: scale(1.06); }
.rt-card .wp-block-cover__inner-container { width: 100%; }
.rt-card h2 { margin-bottom: 0.4rem; }
.rt-card p { color: var(--wp--preset--color--muted); margin-bottom: 1.2rem; }

/* ============================================================
   SCHEDULE / PRICING PAGE
   ============================================================ */
/* Schedule posters: keep the framed look but never desaturate the artwork
   (these are informational graphics, not photos). */
.rt-schedule { margin-bottom: var(--wp--preset--spacing--40); }
.rt-schedule img { filter: none; }
.rt-schedule:hover img { filter: none; transform: none; }
.rt-schedule a { display: block; border-radius: 12px; }

/* Practical-info cards */
.rt-fact {
	height: 100%;
	padding: 1.6rem 1.5rem;
	border: 1px solid rgba(181,179,140,0.22);
	border-radius: 16px;
	background: linear-gradient(160deg, rgba(181,179,140,0.08), rgba(181,179,140,0.015));
	transition: border-color 0.5s var(--rt-ease), transform 0.5s var(--rt-ease);
}
.rt-fact:hover {
	border-color: rgba(181,179,140,0.42);
	transform: translateY(-3px);
}
.rt-fact__title {
	margin: 0 0 0.5rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	font-size: 0.82rem;
	line-height: 1.4;
	color: var(--wp--preset--color--accent, #b5b38c);
	overflow-wrap: normal;
	word-break: keep-all;
	hyphens: none;
}
.rt-fact p { margin: 0; }
.rt-facts .wp-block-column { display: flex; }

/* Terms & conditions panel */
.rt-terms {
	max-width: 820px;
	margin: 0 auto;
	padding: 1.8rem 2.2rem;
	border: 1px solid rgba(181,179,140,0.22);
	border-radius: 16px;
	transition: border-color 0.5s var(--rt-ease), transform 0.5s var(--rt-ease);
}
.rt-terms:hover {
	border-color: rgba(181,179,140,0.42);
	transform: translateY(-3px);
}
.rt-terms__title {
	margin: 0 0 1rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.rt-terms__list {
	margin: 0;
	padding-left: 1.1rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.92rem;
	line-height: 1.85;
}
.rt-terms__list li { margin-bottom: 0.5rem; }
.rt-terms__list li::marker { color: rgba(181,179,140,0.7); }

/* ============================================================
   CONTACT PAGE
   ============================================================ */
.rt-lead { max-width: min(94vw, 760px); margin-left: auto; margin-right: auto; text-wrap: pretty; }
.rt-contact-grid { align-items: flex-start; }

/* Shared panel shell — same soft framed language as .rt-fact / .rt-terms */
.rt-form-panel,
.rt-info-panel {
	padding: 2rem 2.1rem;
	border: 1px solid rgba(181,179,140,0.22);
	border-radius: 16px;
	transition: border-color 0.5s var(--rt-ease);
}
.rt-form-panel:hover,
.rt-info-panel:hover { border-color: rgba(181,179,140,0.38); }
.rt-panel__title {
	margin: 0 0 1.5rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-size: 0.82rem;
	color: var(--wp--preset--color--accent, #b5b38c);
}

/* Director card — square portrait in the shared frame, click to enlarge */
.rt-director {
	margin-bottom: var(--wp--preset--spacing--40);
	padding: 1.6rem 1.6rem 1.8rem;
	border: 1px solid rgba(181,179,140,0.22);
	border-radius: 16px;
	text-align: center;
	transition: border-color 0.5s var(--rt-ease);
}
.rt-director:hover { border-color: rgba(181,179,140,0.38); }
.rt-director__photo {
	width: min(220px, 70%);
	margin: 0 auto 1.1rem;
}
.rt-director__photo a { display: block; border-radius: 12px; }
.rt-director__photo img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	object-position: center 22%;
	cursor: zoom-in;
}
.rt-director__name {
	margin: 0;
	font-size: 1.1rem;
	letter-spacing: 0.02em;
	color: var(--wp--preset--color--contrast, #f4f2ec);
}
.rt-director__role {
	margin: 0.15rem 0 0;
	font-size: 0.7rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent, #b5b38c);
}
.rt-director__quote {
	margin: 1rem 0 0;
	font-style: italic;
	line-height: 1.65;
	text-wrap: pretty;
}

/* Studio details list */
.rt-info-item { margin-bottom: 1.5rem; }
.rt-info-item:last-of-type { margin-bottom: 1.8rem; }
.rt-info-item__label {
	margin: 0 0 0.25rem;
	font-size: 0.7rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.rt-info-item p:not(.rt-info-item__label) {
	margin: 0;
	font-size: 1rem;
	line-height: 1.6;
}
.rt-info-item a {
	color: var(--wp--preset--color--contrast, #f4f2ec);
	text-decoration: none;
	border-bottom: 1px solid rgba(181,179,140,0.35);
	transition: border-color 0.4s var(--rt-ease), color 0.4s var(--rt-ease);
}
.rt-info-item a:hover {
	color: var(--wp--preset--color--accent, #b5b38c);
	border-bottom-color: rgba(181,179,140,0.9);
}

/* ============================================================
   CONTACT FORM (Gravity Forms)
   ============================================================ */

.gform_wrapper { margin: 0 !important; }
.gform_wrapper form { margin: 0; }

/* Field grid: keep Gravity's 12-col grid but use our own gap */
.gform_wrapper .gform_fields {
	grid-row-gap: 1.1rem !important;
	grid-column-gap: 1.1rem !important;
}

/* Contact form embedded in the closing CTA of every page */
.rt-cta-form {
	margin: 2.4rem auto 0;
	max-width: 620px;
	text-align: left;
}
.rt-cta-form .rt-panel__title { text-align: left; }
@media (max-width: 660px) {
	.rt-cta-form { margin-top: 1.8rem; }
}

/* Each field is a column so labels sit on top and inputs align at the bottom */
.gform_wrapper .gfield {
	display: flex;
	flex-direction: column;
}
.gform_wrapper .gfield > .ginput_container { margin-top: auto; }

/* Labels: single line, compact, never push the input out of line */
.gform_wrapper .gform_fields .gfield > .gfield_label,
.gform_wrapper .gfield_label.gform-field-label {
	display: block;
	margin: 0 0 0.45rem !important;
	font-size: 0.66rem !important;
	font-weight: 500 !important;
	letter-spacing: 0.1em !important;
	line-height: 1.35 !important;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.gform_wrapper .gfield_label {
	display: block;
	margin: 0 0 0.45rem;
	font-family: var(--wp--preset--font-family--body, inherit);
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted, #a8a49a);
}
/* Show a discreet gold asterisk instead of the red "(Obligatorio)" text */
.gform_wrapper .gfield_required {
	color: var(--wp--preset--color--accent, #c9b676);
	font-style: normal;
	margin-left: 0.15rem;
}
.gform_wrapper .gfield_label .gfield_required_text {
	font-size: 0 !important;
	letter-spacing: 0;
	color: transparent;
}
.gform_wrapper .gfield_label .gfield_required_text::before {
	content: "*";
	font-size: 0.85rem;
	letter-spacing: 0;
	color: var(--wp--preset--color--accent, #c9b676);
}

/* Phone field spans the full row */
.gform_wrapper .gfield--type-phone { grid-column: span 12 !important; }

/* Inputs and textarea */
.gform_wrapper .gfield input[type="text"],
.gform_wrapper .gfield input[type="email"],
.gform_wrapper .gfield input[type="tel"],
.gform_wrapper .gfield input[type="url"],
.gform_wrapper .gfield input[type="number"],
.gform_wrapper .gfield select,
.gform_wrapper .gfield textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 0.85rem 1rem;
	background: rgba(0, 0, 0, 0.28);
	border: 1px solid var(--wp--preset--color--line, #33322d);
	border-radius: 10px;
	color: var(--wp--preset--color--contrast, #f4f2ec);
	font-family: inherit;
	font-size: 0.95rem;
	line-height: 1.5;
	transition: border-color 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
}
.gform_wrapper .gfield textarea { min-height: 160px; resize: vertical; }

.gform_wrapper .gfield input:focus,
.gform_wrapper .gfield select:focus,
.gform_wrapper .gfield textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--accent, #c9b676);
	box-shadow: 0 0 0 3px rgba(201, 182, 118, 0.16);
	background: rgba(0, 0, 0, 0.4);
}
.gform_wrapper .gfield input::placeholder,
.gform_wrapper .gfield textarea::placeholder {
	color: var(--wp--preset--color--muted, #a8a49a);
	opacity: 0.6;
}

/* Submit button — matches .rt-btn */
.gform_wrapper .gform_footer {
	margin: 1.6rem 0 0;
	padding: 0;
}
.gform_wrapper .gform_footer input[type="submit"],
.gform_wrapper .gform_button {
	display: inline-block;
	width: auto;
	margin: 0;
	padding: 0.95rem 2.2rem;
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--accent, #c9b676);
	color: #171715;
	font-family: inherit;
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color 0.3s ease, transform 0.3s ease;
}
.gform_wrapper .gform_footer input[type="submit"]:hover,
.gform_wrapper .gform_button:hover {
	background: #ded0a0;
	transform: translateY(-2px);
}

/* Validation + confirmation messaging */
.gform_wrapper .gfield_description.validation_message,
.gform_wrapper .gform_validation_errors {
	background: rgba(190, 90, 80, 0.12);
	border: 1px solid rgba(190, 90, 80, 0.5);
	border-radius: 10px;
	color: #e8b4ae;
	padding: 0.7rem 0.9rem;
	font-size: 0.85rem;
	margin-top: 0.5rem;
}
.gform_wrapper .gform_validation_errors h2 {
	font-size: 0.9rem;
	margin: 0;
	color: #e8b4ae;
}
.gform_confirmation_message {
	padding: 1.2rem 1.4rem;
	border: 1px solid rgba(201, 182, 118, 0.4);
	border-left: 3px solid var(--wp--preset--color--accent, #c9b676);
	border-radius: 12px;
	background: rgba(201, 182, 118, 0.07);
	color: var(--wp--preset--color--contrast, #f4f2ec);
}

@media (prefers-reduced-motion: reduce) {
	.gform_wrapper .gfield input,
	.gform_wrapper .gfield textarea,
	.gform_wrapper .gform_footer input[type="submit"] { transition: none !important; }
	.gform_wrapper .gform_footer input[type="submit"]:hover { transform: none !important; }
}

/* ============================================================
   CONTACT FORM (Jetpack Forms — legacy pages)
   ============================================================ */

/* Jetpack wraps the form in a container with a default 3px border
   (its own "fieldset" look). We already frame it with .rt-form-panel,
   so strip Jetpack's own border to avoid the double outline. */
.wp-block-jetpack-contact-form-container {
	border: 0 !important;
	margin-top: 0 !important;
}

.rt-form .wp-block-jetpack-contact-form,
.rt-form { gap: 1.1rem; }
.rt-form .jetpack-field,
.rt-form .grunion-field-wrap { margin-bottom: 0; }
.rt-form .jetpack-field__label,
.rt-form label {
	display: block;
	margin-bottom: 0.45rem;
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-weight: 500;
	color: var(--wp--preset--color--muted);
	/* Reserve one line so side-by-side fields keep their inputs aligned even
	   when one label wraps ("Confirmar email" next to "Email"). */
	min-height: 1.6em;
	text-wrap: nowrap;
}
/* Side-by-side fields: align their inputs on a common baseline. */
.rt-form .grunion-field-wrap { display: flex; flex-direction: column; }
.rt-form .grunion-field-wrap > label { flex: 0 0 auto; }
.rt-form .jetpack-field__label .required,
.rt-form label .required {
	color: var(--wp--preset--color--accent, #b5b38c);
	text-decoration: none;
}
.rt-form input[type="text"],
.rt-form input[type="email"],
.rt-form input[type="tel"],
.rt-form input[type="url"],
.rt-form textarea {
	width: 100%;
	padding: 0.85rem 1rem;
	color: var(--wp--preset--color--contrast, #f4f2ec);
	background: rgba(244,242,236,0.04);
	border: 1px solid rgba(181,179,140,0.22);
	border-radius: 12px;
	font-family: inherit;
	font-size: 0.95rem;
	line-height: 1.5;
	transition: border-color 0.4s var(--rt-ease), background 0.4s var(--rt-ease);
}
.rt-form textarea { min-height: 150px; resize: vertical; }
.rt-form input::placeholder,
.rt-form textarea::placeholder { color: rgba(244,242,236,0.32); }
.rt-form input:hover,
.rt-form textarea:hover { border-color: rgba(181,179,140,0.38); }
.rt-form input:focus,
.rt-form textarea:focus {
	outline: none;
	border-color: rgba(181,179,140,0.75);
	background: rgba(244,242,236,0.06);
}
.rt-form .wp-block-button { margin-top: 0.5rem; }
/* Jetpack appends its own unstyled fallback submit (.pushbutton-wide); the
   themed core/button inside the form is the one we keep, so hide the duplicate. */
form.contact-form .pushbutton-wide,
form.contact-form input[type="submit"] { display: none !important; }

/* Validation + confirmation messaging */
.rt-form__mismatch {
	margin: 0.45rem 0 0;
	font-size: 0.78rem;
	letter-spacing: 0.02em;
	text-transform: none;
	color: #d6786e;
}
.rt-form .contact-form__input-error,
.rt-form .is-error input,
.rt-form .is-error textarea { border-color: rgba(214,120,110,0.85); }
/* Confirmation message: plain centred text, no panel — the boxed version
   overlapped the surrounding panels and sat off-centre. */
.contact-form-submission {
	max-width: 44ch;
	margin: 0 auto;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	text-align: center;
}
.contact-form-submission > p,
.contact-form-submission blockquote {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--wp--preset--color--contrast, #f4f2ec);
}
.contact-form-submission .contact-form__confirmation-message {
	border: 0;
	background: none;
	padding: 0;
}

/* ============================================================
   MAP
   ============================================================ */
.rt-map {
	position: relative;
	margin-top: var(--wp--preset--spacing--50);
	margin-bottom: var(--wp--preset--spacing--50);
	padding: 10px;
	border: 1px solid rgba(181,179,140,0.22);
	border-radius: 20px;
	background: linear-gradient(160deg, rgba(181,179,140,0.10), rgba(181,179,140,0.02));
	box-shadow: 0 22px 48px rgba(0,0,0,0.28), 0 4px 14px rgba(0,0,0,0.16);
}
.rt-map__frame {
	display: block;
	width: 100%;
	height: clamp(320px, 46vh, 480px);
	border: 0;
	border-radius: 12px;
	/* Tone the map down to match the dark palette; restore it on interaction. */
	filter: grayscale(58%) contrast(1.05) brightness(0.88);
	transition: filter 0.8s var(--rt-ease);
}
.rt-map:hover .rt-map__frame,
.rt-map:focus-within .rt-map__frame { filter: none; }
/* Editor-only placeholder text, replaced by the iframe on the frontend. */
.rt-map__placeholder { padding: 4rem 1rem; margin: 0; }

/* ============================================================
   GALLERY EMBEDS (photos + videos)
   ============================================================ */
/* Framed shell shared by the Google Photos embed and the YouTube players. */
.rt-embed,
.rt-video {
	position: relative;
	padding: 10px;
	border: 1px solid rgba(181,179,140,0.22);
	border-radius: 20px;
	background: linear-gradient(160deg, rgba(181,179,140,0.10), rgba(181,179,140,0.02));
	box-shadow: 0 22px 48px rgba(0,0,0,0.28), 0 4px 14px rgba(0,0,0,0.16);
	transition: box-shadow 0.7s var(--rt-ease), transform 0.7s var(--rt-ease);
}
.rt-embed { margin-top: var(--wp--preset--spacing--40); }
.rt-embed__frame {
	display: block;
	width: 100%;
	height: clamp(460px, 74vh, 760px);
	border: 0;
	border-radius: 12px;
	background: rgba(14,14,13,0.4);
}
.rt-embed__placeholder { padding: 5rem 1rem; margin: 0; }

/* Fallback shown when Google refuses the embed. */
.rt-embed.is-fallback { background: none; box-shadow: none; }
.rt-embed__fallback {
	padding: clamp(2.5rem, 7vw, 4.5rem) 1.5rem;
	text-align: center;
}
.rt-embed__fallback-title {
	margin: 0 0 0.9rem;
	font-family: var(--wp--preset--font-family--serif, Georgia, serif);
	font-size: clamp(1.35rem, 3vw, 1.9rem);
	line-height: 1.3;
	color: var(--wp--preset--color--contrast, #f4f2ec);
}
.rt-embed__fallback-text {
	max-width: 52ch;
	margin: 0 auto 1.8rem;
	font-size: 0.95rem;
	line-height: 1.75;
	color: var(--wp--preset--color--muted);
	text-wrap: pretty;
}
.rt-embed__fallback-cta { margin: 0; }
.rt-embed__fallback-cta .wp-element-button {
	display: inline-block;
	border-radius: 14px;
	text-decoration: none;
}

/* Google Photos album, rendered as a native mosaic. Files stay on Google's CDN. */
.rt-embed--photos {
	border: 0;
	background: none;
	padding: 0;
	box-shadow: none;
	border-radius: 0;
}
.rt-gphotos {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 10px;
}

/* Only the first rows render at load; the rest unfold on request. */
.rt-gphotos__item--extra { display: none; }
.rt-gphotos.is-expanded .rt-gphotos__item--extra { display: block; }

.rt-gphotos__more {
	margin-top: var(--wp--preset--spacing--40, 2rem);
	text-align: center;
}
.rt-gphotos__more button {
	font-family: inherit;
	font-size: 0.78rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--contrast, #f4f2ec);
	background: transparent;
	border: 1px solid rgba(181,179,140,0.42);
	border-radius: 14px;
	padding: 0.85em 2.2em;
	cursor: pointer;
	transition: background 0.5s var(--rt-ease), border-color 0.5s var(--rt-ease), color 0.5s var(--rt-ease);
}
.rt-gphotos__more button:hover {
	background: rgba(181,179,140,0.14);
	border-color: rgba(181,179,140,0.85);
	color: var(--wp--preset--color--accent, #b5b38c);
}
.rt-gphotos__item {
	margin: 0;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 12px;
	background: rgba(244,242,236,0.04);
	border: 1px solid rgba(181,179,140,0.16);
	transition: border-color 0.5s var(--rt-ease), transform 0.5s var(--rt-ease), box-shadow 0.5s var(--rt-ease);
}
.rt-gphotos__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	cursor: zoom-in;
	filter: grayscale(34%) contrast(1.02);
	transition: filter 0.6s var(--rt-ease), transform 0.6s var(--rt-ease);
}
.rt-gphotos__item:hover {
	border-color: rgba(181,179,140,0.55);
	transform: translateY(-3px);
	box-shadow: 0 16px 34px rgba(0,0,0,0.32);
}
.rt-gphotos__item:hover img {
	filter: grayscale(0%) contrast(1.05);
	transform: scale(1.05);
}
.rt-gphotos__note {
	margin-top: var(--wp--preset--spacing--40, 2rem);
	text-align: center;
	font-size: 0.82rem;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--muted, #8d8b80);
}
@media (max-width: 600px) {
	.rt-gphotos { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 7px; }
	.rt-gphotos__item { border-radius: 9px; }
}

/* Source note + link to the original album / channel, above each gallery. */
.rt-source-note {
	margin-top: var(--wp--preset--spacing--40, 2rem);
	margin-bottom: var(--wp--preset--spacing--30, 1.5rem);
	max-width: 72ch;
	margin-inline: auto;
	line-height: 1.65;
	opacity: 0.85;
	text-wrap: pretty;
}
.rt-source-buttons { margin-top: 0; }
.rt-source-button .wp-block-button__link {
	border-radius: 14px;
	border: 1px solid rgba(181,179,140,0.45);
	background: transparent;
	color: var(--wp--preset--color--contrast, #f4f2ec);
	font-size: 0.78rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 0.9em 2.1em;
	transition: background 0.5s var(--rt-ease), border-color 0.5s var(--rt-ease), color 0.5s var(--rt-ease);
}
.rt-source-button .wp-block-button__link:hover,
.rt-source-button .wp-block-button__link:focus {
	background: rgba(181,179,140,0.14);
	border-color: rgba(181,179,140,0.85);
	color: var(--wp--preset--color--accent, #b5b38c);
}

/* YouTube channel grid — click-to-play facades, player stays on YouTube. */
.rt-embed--videos {
	border: 0;
	background: none;
	padding: 0;
	box-shadow: none;
	border-radius: 0;
}
.rt-ytgrid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
	gap: var(--wp--preset--spacing--30, 1.5rem);
}
.rt-ytgrid__item--extra { display: none; }
.rt-ytgrid.is-expanded .rt-ytgrid__item--extra { display: block; }

.rt-ytgrid__item { margin: 0; }
.rt-ytgrid__play {
	display: block;
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	padding: 0;
	border: 1px solid rgba(181,179,140,0.2);
	border-radius: 14px;
	overflow: hidden;
	background: #000;
	cursor: pointer;
	transition: border-color 0.5s var(--rt-ease), transform 0.5s var(--rt-ease), box-shadow 0.5s var(--rt-ease);
}
.rt-ytgrid__play img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	filter: grayscale(30%);
	transition: filter 0.6s var(--rt-ease), transform 0.6s var(--rt-ease);
}
.rt-ytgrid__icon {
	position: absolute;
	inset: 0;
	margin: auto;
	width: 62px;
	height: 62px;
	border-radius: 50%;
	background: rgba(14,14,13,0.62);
	border: 1px solid rgba(244,242,236,0.5);
	backdrop-filter: blur(2px);
	transition: background 0.45s var(--rt-ease), border-color 0.45s var(--rt-ease), transform 0.45s var(--rt-ease);
}
.rt-ytgrid__icon::after {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 11px 0 11px 18px;
	border-color: transparent transparent transparent var(--wp--preset--color--contrast, #f4f2ec);
	transform: translateX(2px);
}
.rt-ytgrid__play:hover {
	border-color: rgba(181,179,140,0.6);
	transform: translateY(-3px);
	box-shadow: 0 20px 40px rgba(0,0,0,0.34);
}
.rt-ytgrid__play:hover img { filter: grayscale(0%); transform: scale(1.05); }
.rt-ytgrid__play:hover .rt-ytgrid__icon {
	background: rgba(181,179,140,0.9);
	border-color: rgba(181,179,140,1);
	transform: scale(1.08);
}
.rt-ytgrid__play:hover .rt-ytgrid__icon::after {
	border-left-color: var(--wp--preset--color--base, #0e0e0d);
}
.rt-ytgrid__play:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent, #b5b38c);
	outline-offset: 3px;
}

/* Swapped in for the facade once the visitor presses play. */
.rt-ytgrid__frame {
	width: 100%;
	aspect-ratio: 16 / 9;
	border: 1px solid rgba(181,179,140,0.35);
	border-radius: 14px;
	display: block;
}
.rt-ytgrid__caption {
	margin-top: 0.85rem;
	font-size: 0.85rem;
	line-height: 1.5;
	color: var(--wp--preset--color--muted, #8d8b80);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Photo gallery grid — framed tiles matching the site's print-frame language */
.rt-gallery { margin-top: 0; }
.rt-gallery.has-nested-images figure.wp-block-image {
	border-radius: 16px;
	overflow: hidden;
	border: 1px solid rgba(181,179,140,0.22);
	box-shadow: 0 18px 38px rgba(0,0,0,0.26), 0 3px 12px rgba(0,0,0,0.14);
	transition: box-shadow 0.7s var(--rt-ease), transform 0.7s var(--rt-ease);
}
.rt-gallery.has-nested-images figure.wp-block-image img {
	border-radius: 15px;
	cursor: zoom-in;
	filter: grayscale(30%) contrast(1.02);
	transition: filter 0.7s var(--rt-ease), transform 0.7s var(--rt-ease);
}
.rt-gallery.has-nested-images figure.wp-block-image:hover {
	transform: translateY(-4px);
	box-shadow: 0 28px 54px rgba(0,0,0,0.32), 0 6px 16px rgba(0,0,0,0.18);
}
.rt-gallery.has-nested-images figure.wp-block-image:hover img {
	filter: grayscale(0%) contrast(1.05);
	transform: scale(1.03);
}

/* Lightbox overlay for the gallery */
.rt-lightbox {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(1rem, 4vw, 3rem);
	background: rgba(8,8,7,0.94);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.45s var(--rt-ease);
}
.rt-lightbox.is-open { opacity: 1; pointer-events: auto; }
.rt-lightbox img {
	max-width: min(92vw, 1200px);
	max-height: 86vh;
	width: auto;
	height: auto;
	border-radius: 14px;
	box-shadow: 0 40px 80px rgba(0,0,0,0.55);
	transform: scale(0.97);
	transition: transform 0.45s var(--rt-ease);
}
.rt-lightbox.is-open img { transform: scale(1); }
.rt-lightbox__close {
	position: absolute;
	top: clamp(0.8rem, 3vw, 1.8rem);
	right: clamp(0.8rem, 3vw, 1.8rem);
	width: 44px;
	height: 44px;
	display: grid;
	place-items: center;
	font-size: 1.5rem;
	line-height: 1;
	color: var(--wp--preset--color--contrast, #f4f2ec);
	background: rgba(244,242,236,0.08);
	border: 1px solid rgba(181,179,140,0.3);
	border-radius: 50%;
	cursor: pointer;
	transition: background 0.35s var(--rt-ease), border-color 0.35s var(--rt-ease);
}
.rt-lightbox__close:hover {
	background: rgba(181,179,140,0.2);
	border-color: rgba(181,179,140,0.7);
}

/* ============================================================
   HIDDEN PAGE TITLE (CLASES pages)
   The long SEO titles look heavy in the banner, so we hide the
   banner visually. The <h1> itself stays in the DOM and keeps its
   text, so Google and screen readers still read it — this is the
   standard visually-hidden pattern, not cloaking.
   ============================================================ */
.rt-hide-title .rt-title-banner {
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	min-height: 0 !important;
}
.rt-hide-title .rt-title-banner .wp-block-post-title {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}
/* Let the first section sit right under the header. */
.rt-hide-title .rt-heels-main > .rt-title-banner + * { margin-top: 0 !important; }

/* "Activar sonido" button shown over the auto-started video */
.wp-block-embed { position: relative; }
.rt-video__unmute {
	position: absolute;
	left: 0.9rem;
	bottom: 0.9rem;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.6rem 1.1rem;
	border: 1px solid var(--wp--preset--color--accent, #c9b676);
	border-radius: 999px;
	background: rgba(14, 14, 13, 0.92);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
	animation: rt-unmute-pulse 2.4s ease-in-out 3;
	color: var(--wp--preset--color--contrast, #f4f2ec);
	font-family: inherit;
	font-size: 0.66rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
	backdrop-filter: blur(6px);
	transition: background-color 0.3s ease, border-color 0.3s ease, transform 0.3s ease;
}
.rt-video__unmute:hover {
	background: var(--wp--preset--color--accent, #c9b676);
	border-color: var(--wp--preset--color--accent, #c9b676);
	color: #171715;
	transform: translateY(-2px);
}
@keyframes rt-unmute-pulse {
	0%, 100% { box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45); }
	50%      { box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45), 0 0 0 6px rgba(201, 182, 118, 0.18); }
}

@media (prefers-reduced-motion: reduce) {
	.rt-video__unmute {
		transition: none !important;
		animation: none !important;
	}
	.rt-video__unmute:hover { transform: none !important; }
}

/* YouTube players */
.rt-video { margin-top: 0; margin-bottom: 0; }
.rt-video:hover {
	transform: translateY(-4px);
	box-shadow: 0 30px 60px rgba(0,0,0,0.34), 0 6px 18px rgba(0,0,0,0.2);
}
.rt-video .wp-block-embed__wrapper { border-radius: 12px; overflow: hidden; }
.rt-video iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	border-radius: 12px;
}
.rt-video figcaption,
.rt-video .wp-element-caption {
	margin: 0.9rem 0 0.2rem;
	padding: 0 0.4rem;
	font-size: 0.78rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-align: center;
	color: var(--wp--preset--color--muted);
}
.rt-video--featured .wp-block-embed__wrapper { border-radius: 12px; }
.rt-video-grid { align-items: stretch; }
.rt-video-grid .wp-block-column { display: flex; flex-direction: column; }
.rt-video-grid .rt-video { flex: 1 1 auto; }

/* ============================================================
   HEELS — editorial class page
   ============================================================ */
.rt-heels-intro {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.rt-heels-intro::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: radial-gradient(ellipse 45% 90% at 50% 50%, rgba(181,179,140,0.12), transparent 68%);
}
.rt-heels-intro .rt-serif { max-width: 780px; margin-inline: auto; }
.rt-heels-intro__copy { max-width: 720px; margin: 1.6rem auto 0; text-wrap: balance; }
.rt-heels-profile { position: relative; overflow: hidden; }
.rt-heels-profile::after {
	content: "";
	position: absolute;
	width: 420px;
	height: 420px;
	border: 1px solid rgba(181,179,140,0.08);
	border-radius: 50%;
	right: -240px;
	top: 12%;
	pointer-events: none;
}
.rt-heels-profile--reverse::after { right: auto; left: -240px; }
.rt-heels-grid { gap: clamp(2.75rem, 7vw, 7rem); }
.rt-heels-portrait { max-width: 500px; margin-inline: auto; }
.rt-heels-portrait img { aspect-ratio: 4 / 5; object-fit: cover; filter: none; }
.rt-heels-portrait:hover img { filter: none; }
.rt-heels-name { margin: 0.15em 0 0.25em; }
.rt-heels-lead { max-width: 24ch; margin: 0 0 1.7rem; color: var(--wp--preset--color--contrast); }
.rt-heels-profile .has-muted-color { max-width: 58ch; }
.rt-heels-profile .rt-video { margin-top: 2.2rem; max-width: 720px; }
.rt-heels-profile .rt-video .wp-block-embed__wrapper { aspect-ratio: 16 / 9; }
.rt-heels-cta { border-top: 1px solid var(--wp--preset--color--line); }
.rt-heels-cta > p { max-width: 700px; margin-inline: auto; }
.rt-heels-cta .wp-block-buttons { margin-top: 2rem; }

@media (max-width: 781px) {
	.rt-heels-profile,
	.rt-heels-intro,
	.rt-heels-cta { padding-inline: 1.25rem !important; }
	.rt-heels-grid { gap: 2.5rem; }
	.rt-heels-profile--reverse .wp-block-column:first-child { order: 2; }
	.rt-heels-profile--reverse .wp-block-column:last-child { order: 1; }
	.rt-heels-name { font-size: clamp(3.25rem, 18vw, 5rem) !important; }
	.rt-heels-profile::after { opacity: 0.45; }
}

/* ============================================================
   BUTTONS
   ============================================================ */
.rt-btn .wp-element-button {
	padding: 1em 2.2em;
	border-radius: 14px;
	transition: background-color 0.35s var(--rt-ease), color 0.35s var(--rt-ease), transform 0.35s var(--rt-ease);
}
.rt-btn .wp-element-button:hover { transform: translateY(-2px); }
.rt-btn.is-style-outline .wp-element-button {
	background: transparent;
	color: var(--wp--preset--color--contrast);
	border: 1px solid var(--wp--preset--color--line);
}
.rt-btn.is-style-outline .wp-element-button:hover {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--contrast);
}

/* ============================================================
   CTA
   ============================================================ */
.rt-cta {
	text-align: center;
	background:
		radial-gradient(circle at 50% 120%, rgba(181,179,140,0.16), rgba(14,14,13,0) 60%),
		var(--wp--preset--color--base);
	border-top: 1px solid var(--wp--preset--color--line);
}

/* ============================================================
   SCROLL REVEAL (progressive enhancement)
   Default = final visible state. JS adds the hidden start state.
   ============================================================ */
/* Slower, calmer scroll reveal — a gentle fade + rise for a peaceful feel */
.rt-anim-ready .rt-reveal {
	opacity: 0;
	transform: translateY(34px);
}
.rt-anim-ready .rt-reveal.rt-in {
	opacity: 1;
	transform: none;
	transition: opacity 1.6s var(--rt-ease), transform 1.6s var(--rt-ease);
}
/* Framed images reveal a touch slower and later, for a calmer entrance. */
.rt-anim-ready .rt-media-slow.rt-reveal { transform: translateY(40px); }
.rt-anim-ready .rt-media-slow.rt-reveal.rt-in {
	transform: none;
	transition: opacity 2.1s var(--rt-ease), transform 2.1s var(--rt-ease), box-shadow 0.7s var(--rt-ease);
	transition-delay: 0.25s;
}

/* ------------------------------------------------------------
   HERO ENTRANCE SEQUENCE (on load / reload)
   Logo fades in slowly once the video starts, then the text and
   buttons follow with a long, soft stagger.
   ------------------------------------------------------------ */
/* Hidden start state (JS controls the exact timing of each element). */
.rt-anim-ready .rt-hero .rt-fade {
	opacity: 0;
	transform: translateY(24px);
}
.rt-anim-ready .rt-hero .rt-fade.rt-in {
	opacity: 1;
	transform: none;
}
/* The LOGO uses a blur → sharp + fade (no vertical movement). */
.rt-anim-ready .rt-hero__logo {
	transform: none;
	filter: blur(18px);
}
.rt-anim-ready .rt-hero__logo.rt-in {
	filter: blur(0);
	transition: opacity 2s var(--rt-ease), filter 2s var(--rt-ease);
}
.rt-anim-ready .rt-hero .rt-fade:not(.rt-hero__logo).rt-in {
	transition: opacity 1.4s var(--rt-ease), transform 1.4s var(--rt-ease);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (min-width: 782px) {
	/* Invisible bridge across the gap between the parent item and the panel.
	   Without it, moving the mouse down over the gap makes the submenu
	   close and reopen, which reads as flicker. */
	.rt-header .wp-block-navigation-item.has-child::after {
		content: "";
		position: absolute;
		left: -0.75rem;
		right: -0.75rem;
		top: 100%;
		height: 1rem;
		background: transparent;
		pointer-events: none;
	}
	.rt-header .wp-block-navigation-item.has-child:hover::after,
	.rt-header .wp-block-navigation-item.has-child:focus-within::after {
		pointer-events: auto;
	}

	.rt-header .wp-block-navigation .wp-block-navigation__submenu-container {
		left: 50% !important;
		right: auto !important;
		top: calc(100% + 0.45rem);
		height: auto;
		max-height: 70vh;
		/* Extra hit area so leaving sideways doesn't drop the hover. */
		padding-left: 0;
		padding-right: 0;
		visibility: hidden;
		opacity: 0;
		clip-path: inset(0 0 100% 0 round 14px);
		transform: translate(-50%, -8px);
		transform-origin: top center;
		transition: clip-path 0.42s var(--rt-ease), opacity 0.25s ease, transform 0.42s var(--rt-ease), visibility 0s linear 0.42s;
	}
	.rt-header .wp-block-navigation-item.has-child:hover > .wp-block-navigation__submenu-container,
	.rt-header .wp-block-navigation-item.has-child:focus-within > .wp-block-navigation__submenu-container {
		visibility: visible;
		opacity: 1;
		clip-path: inset(0 0 0 0 round 14px);
		transform: translate(-50%, 0);
		/* Small delay before opening AND closing: absorbs jittery mouse
		   movement near the edges instead of toggling instantly. */
		transition-delay: 0.06s;
	}

	/* While navigating away, stop hover from reopening the panel. */
	.rt-header.rt-nav-closing .wp-block-navigation-item.has-child:hover > .wp-block-navigation__submenu-container,
	.rt-header.rt-nav-closing .wp-block-navigation-item.has-child:focus-within > .wp-block-navigation__submenu-container {
		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;
		transition: none !important;
	}

	/* Submenu items must not shift the panel width on hover. */
	.rt-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item,
	.rt-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		width: 100%;
		box-sizing: border-box;
	}
}

@media (max-width: 1100px) and (min-width: 782px) {
	.rt-header > .wp-block-group {
		width: calc(100% - 2rem);
		gap: clamp(4rem, 10vw, 6.5rem);
	}
	.rt-header .wp-block-navigation { font-size: 0.72rem; }
	.rt-header .wp-block-navigation__container { gap: clamp(1rem, 2.2vw, 1.8rem) !important; }
}

@media (max-width: 781px) {
	.rt-header > .wp-block-group {
		width: calc(100% - 2rem);
		justify-content: space-between !important;
		gap: 1.5rem;
	}

	.rt-header .wp-block-navigation__responsive-container.is-menu-open {
		inset: 0 0 0 auto;
		box-sizing: border-box;
		width: min(88vw, 370px);
		height: 100dvh;
		min-height: 100dvh;
		padding: clamp(1.5rem, 7vw, 2.5rem);
		background: rgba(18,18,16,0.98) !important;
		-webkit-backdrop-filter: blur(18px) saturate(120%);
		backdrop-filter: blur(18px) saturate(120%);
		border-left: 1px solid rgba(181,179,140,0.22);
		border-radius: 18px 0 0 18px;
		box-shadow: -28px 0 70px rgba(0,0,0,0.52), -8px 0 24px rgba(0,0,0,0.3);
		overflow-x: hidden;
		overflow-y: auto;
		animation: rt-drawer-in 0.48s var(--rt-ease) both;
	}
	.rt-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
	.rt-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog,
	.rt-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		box-sizing: border-box;
		width: 100%;
		min-height: 100%;
	}
	.rt-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		align-items: flex-start;
		justify-content: flex-start;
		padding-top: 3.5rem;
	}
	.rt-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		width: 100%;
		align-items: stretch;
		gap: 0.35rem !important;
	}
	.rt-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
	.rt-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		box-sizing: border-box;
		width: 100%;
		align-items: flex-start;
	}
	.rt-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		padding-block: 0.58rem;
	}
	.rt-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		white-space: normal;
	}
	.rt-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
		width: 100%;
		min-width: 0;
		max-width: none;
		margin: 0.2rem 0 0.7rem;
		padding: 0.4rem 0 0.4rem 0.8rem;
		background: rgba(181,179,140,0.045);
		border-color: rgba(181,179,140,0.12);
		border-radius: 12px;
		box-shadow: inset 3px 0 0 rgba(181,179,140,0.2), 0 10px 24px rgba(0,0,0,0.16);
	}

	@keyframes rt-drawer-in {
		from { opacity: 0; transform: translateX(100%); }
		to { opacity: 1; transform: translateX(0); }
	}

	.rt-hero { min-height: 100svh; }
	.rt-split .wp-block-column { flex-basis: 100% !important; }
	.rt-cards .wp-block-column { flex-basis: 100% !important; }
}

/* ==========================================================================
   BLOG — hero, search, filters, cards
   ========================================================================== */

.rt-blog-hero { border-bottom: 1px solid var(--wp--preset--color--line, #33322d); }
.rt-blog-hero__copy { max-width: 58ch; margin-inline: auto; }

/* Search field: quiet, inline, gold focus ring */
.rt-blog-search {
	max-width: 520px;
	margin: 2.25rem auto 0;
}
.rt-blog-search .wp-block-search__inside-wrapper {
	border: 1px solid var(--wp--preset--color--line, #33322d);
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.25);
	padding: 0.35rem 0.35rem 0.35rem 1.25rem;
	transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.rt-blog-search .wp-block-search__inside-wrapper:focus-within {
	border-color: var(--wp--preset--color--accent, #c9b676);
	box-shadow: 0 0 0 3px rgba(201, 182, 118, 0.16);
}
.rt-blog-search .wp-block-search__input {
	background: transparent;
	border: 0;
	color: inherit;
	font-size: 0.95rem;
	letter-spacing: 0.01em;
	padding: 0.5rem 0;
}
.rt-blog-search .wp-block-search__input:focus { outline: none; }
.rt-blog-search .wp-block-search__input::placeholder {
	color: var(--wp--preset--color--muted, #a8a49a);
	opacity: 0.75;
}
.rt-blog-search .wp-block-search__button {
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--accent, #c9b676);
	color: #171715;
	font-size: 0.7rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 0.7rem 1.5rem;
	margin: 0;
	cursor: pointer;
	transition: background-color 0.3s ease, transform 0.3s ease;
}
.rt-blog-search .wp-block-search__button:hover {
	background: #ded0a0;
	transform: translateY(-1px);
}

/* Category filters as pills */
.rt-blog-filters { border-bottom: 1px solid var(--wp--preset--color--line, #33322d); }
.rt-blog-cats ul,
ul.rt-blog-cats {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	justify-content: center;
}
.rt-blog-cats li {
	margin: 0;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	border: 1px solid var(--wp--preset--color--line, #33322d);
	border-radius: 999px;
	padding: 0.55rem 1.15rem;
	font-size: 0.72rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted, #a8a49a);
	transition: color 0.3s ease, border-color 0.3s ease, background-color 0.3s ease;
}
.rt-blog-cats a {
	color: inherit;
	text-decoration: none;
}
.rt-blog-cats li:hover,
.rt-blog-cats li:focus-within,
.rt-blog-cats li.current-cat {
	color: #171715;
	background: var(--wp--preset--color--accent, #c9b676);
	border-color: var(--wp--preset--color--accent, #c9b676);
}

/* Post list: two-column grid of cards */
.rt-blog-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2.75rem 2.25rem;
	align-items: start;
	list-style: none;
	margin: 0;
	padding: 0;
}
.rt-blog-list > li { margin: 0; }

.rt-blog-card {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--wp--preset--color--line, #33322d);
	border-radius: 14px;
	background: var(--wp--preset--color--surface, #171715);
	overflow: hidden;
	transition: border-color 0.4s ease, transform 0.4s ease, box-shadow 0.4s ease;
}
.rt-blog-card:hover {
	border-color: rgba(201, 182, 118, 0.45);
	transform: translateY(-4px);
	box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
}

.rt-blog-card__media {
	margin: 0;
	aspect-ratio: 3 / 2;
	overflow: hidden;
}
.rt-blog-card__media a,
.rt-blog-card__media img {
	display: block;
	width: 100%;
	height: 100%;
}
.rt-blog-card__media img {
	object-fit: cover;
	object-position: center 28%;
	border-radius: 0;
	box-shadow: none;
	transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.rt-blog-card:hover .rt-blog-card__media img { transform: scale(1.04); }

.rt-blog-card__body {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	padding: 1.6rem 1.6rem 1.9rem;
}

.rt-blog-card__meta {
	gap: 0.85rem;
	align-items: center;
	font-size: 0.68rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.rt-blog-card__cat a {
	color: var(--wp--preset--color--accent, #c9b676);
	text-decoration: none;
	font-weight: 500;
}
.rt-blog-card__cat a:hover { text-decoration: underline; }
.rt-blog-card__date { color: var(--wp--preset--color--muted, #a8a49a); margin: 0; }

.rt-blog-card__title { margin: 0; line-height: 1.25; }
.rt-blog-card__title a {
	color: inherit;
	text-decoration: none;
	transition: color 0.3s ease;
}
.rt-blog-card__title a:hover { color: var(--wp--preset--color--accent, #c9b676); }

.rt-blog-card__excerpt {
	margin: 0;
	color: var(--wp--preset--color--muted, #a8a49a);
	font-size: 0.95rem;
	line-height: 1.65;
}
.rt-blog-card__excerpt .wp-block-post-excerpt__more-link {
	display: inline-block;
	margin-top: 0.6rem;
	color: var(--wp--preset--color--accent, #c9b676);
	font-size: 0.72rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
}

/* Cards without a featured image get a subtle gold hairline instead */
.rt-blog-card:not(:has(.rt-blog-card__media)) .rt-blog-card__body {
	border-top: 2px solid rgba(201, 182, 118, 0.35);
}

/* Pagination */
.rt-blog-pagination {
	margin-top: 3.5rem;
	gap: 0.5rem;
	align-items: center;
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.rt-blog-pagination a,
.rt-blog-pagination .page-numbers {
	color: var(--wp--preset--color--muted, #a8a49a);
	text-decoration: none;
	border: 1px solid transparent;
	border-radius: 999px;
	padding: 0.5rem 0.9rem;
	transition: color 0.3s ease, border-color 0.3s ease;
}
.rt-blog-pagination a:hover { color: var(--wp--preset--color--accent, #c9b676); border-color: rgba(201, 182, 118, 0.4); }
.rt-blog-pagination .page-numbers.current {
	color: #171715;
	background: var(--wp--preset--color--accent, #c9b676);
	border-color: var(--wp--preset--color--accent, #c9b676);
}

@media (max-width: 781px) {
	.rt-blog-list { grid-template-columns: 1fr; gap: 2rem; }
	.rt-blog-search { margin-top: 1.75rem; }
	.rt-blog-card__body { padding: 1.35rem 1.35rem 1.6rem; }
}

@media (prefers-reduced-motion: reduce) {
	.rt-blog-card,
	.rt-blog-card__media img,
	.rt-blog-search .wp-block-search__inside-wrapper,
	.rt-blog-search .wp-block-search__button,
	.rt-blog-cats li,
	.rt-blog-pagination a { transition: none !important; }
	.rt-blog-card:hover { transform: none !important; }
	.rt-blog-card:hover .rt-blog-card__media img { transform: none !important; }
}

/* ==========================================================================
   CLASSES INDEX — interactive grid
   ========================================================================== */

.rt-classes-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.6rem;
	align-items: stretch;
}
/* Neutralise the theme's block-gap margins so grid rows line up */
.rt-classes-grid > * { margin-block: 0 !important; }

.rt-class-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
	height: 100%;
	padding: 2rem 1.75rem 1.6rem;
	border: 1px solid var(--wp--preset--color--line, #33322d);
	border-radius: 16px;
	background: var(--wp--preset--color--surface, #171715);
	overflow: hidden;
	transition: transform 0.45s var(--rt-ease, ease), border-color 0.45s ease, box-shadow 0.45s ease;
}

/* Gold sheen that sweeps in on hover */
.rt-class-card::before {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(120% 80% at 50% 0%, rgba(201, 182, 118, 0.14), rgba(201, 182, 118, 0) 70%);
	opacity: 0;
	transition: opacity 0.45s ease;
	pointer-events: none;
}

/* Gold bar that grows along the top edge */
.rt-class-card::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	height: 2px;
	width: 100%;
	background: var(--wp--preset--color--accent, #c9b676);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.5s var(--rt-ease, ease);
}

.rt-class-card:hover,
.rt-class-card:focus-within {
	transform: translateY(-6px);
	border-color: rgba(201, 182, 118, 0.45);
	box-shadow: 0 22px 48px rgba(0, 0, 0, 0.4);
}
.rt-class-card:hover::before,
.rt-class-card:focus-within::before { opacity: 1; }
.rt-class-card:hover::after,
.rt-class-card:focus-within::after { transform: scaleX(1); }

.rt-class-card > * { position: relative; z-index: 1; }
.rt-class-card__tag { margin: 0; }
.rt-class-card__title {
	margin: 0;
	line-height: 1.2;
	transition: color 0.35s ease;
}
.rt-class-card:hover .rt-class-card__title { color: var(--wp--preset--color--accent, #c9b676); }

.rt-class-card__text {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.6;
	flex: 1;
}

.rt-class-card__cta { margin-top: 1.25rem; }
.rt-class-card__cta .wp-block-button__link {
	font-size: 0.68rem;
	padding: 0.7rem 1.4rem;
}

@media (max-width: 1023px) {
	.rt-classes-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 660px) {
	.rt-classes-grid { grid-template-columns: 1fr; gap: 1.1rem; }
	.rt-class-card { padding: 1.6rem 1.4rem 1.4rem; }
}

@media (prefers-reduced-motion: reduce) {
	.rt-class-card,
	.rt-class-card::before,
	.rt-class-card::after,
	.rt-class-card__title { transition: none !important; }
	.rt-class-card:hover,
	.rt-class-card:focus-within { transform: none !important; }
	.rt-class-card::after { transform: scaleX(1); }
}

/* Checklist with gold markers */
.rt-list-check {
	list-style: none;
	margin: 0 0 1.4rem;
	padding: 0;
}
.rt-list-check li {
	position: relative;
	padding-left: 1.75rem;
	margin-bottom: 0.7rem;
	color: var(--wp--preset--color--muted, #a8a49a);
}
.rt-list-check li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.62em;
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: var(--wp--preset--color--accent, #c9b676);
}

/* Fact card used on the Shows page when there is no photo of the event */
.rt-show-facts {
	border: 1px solid var(--wp--preset--color--line, #33322d);
	border-left: 3px solid var(--wp--preset--color--accent, #c9b676);
	border-radius: 14px;
	background: var(--wp--preset--color--surface, #171715);
	padding: 2rem 1.9rem;
}
.rt-show-facts h3 { margin: 0.35rem 0 1.1rem; line-height: 1; }
.rt-show-facts p { margin: 0 0 0.7rem; font-size: 0.95rem; }
.rt-show-facts p:last-child { margin-bottom: 0; }
.rt-show-facts strong { color: var(--wp--preset--color--contrast, #f4f2ec); font-weight: 500; }

/* ==========================================================================
   SINGLE POST
   ========================================================================== */

/* Breathing room under the fixed header, plus a soft gold bloom behind the title. */
.rt-post-header {
	padding-top: clamp(3.5rem, 7vw, 6rem) !important;
	border-bottom: 1px solid var(--wp--preset--color--line, #33322d);
	background:
		radial-gradient(60% 120% at 50% 0%, rgba(201, 182, 118, 0.09), rgba(201, 182, 118, 0) 70%),
		var(--wp--preset--color--surface, #171715);
}

.rt-post-meta {
	gap: 0.9rem;
	align-items: center;
	font-size: 0.7rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	margin-bottom: 1.25rem;
}
.rt-post-meta__cat a {
	color: var(--wp--preset--color--accent, #c9b676);
	text-decoration: none;
	font-weight: 500;
}
.rt-post-meta__cat a:hover { text-decoration: underline; }
.rt-post-meta__date { color: var(--wp--preset--color--muted, #a8a49a); margin: 0; }

.rt-post-title {
	margin: 0;
	max-width: 24ch;
	margin-inline: auto;
	line-height: 1.1;
	font-size: clamp(2rem, 4.2vw, 3.4rem) !important;
	letter-spacing: 0.01em;
	text-wrap: balance;
}

/* Featured image sits just below the header block */
.rt-post-hero-image {
	margin-top: clamp(2rem, 4vw, 3rem);
	margin-bottom: clamp(2.25rem, 4.5vw, 3.5rem);
}
.rt-post-hero-image img {
	width: 100%;
	max-height: 62vh;
	object-fit: cover;
	border-radius: 14px;
}

/* Readable article body */
.rt-post-content { font-size: 1.05rem; line-height: 1.8; }
.rt-post-content > * + * { margin-top: 1.4em; }
.rt-post-content h2,
.rt-post-content h3 {
	margin-top: 2.4em;
	margin-bottom: 0.6em;
	line-height: 1.2;
}
.rt-post-content a {
	color: var(--wp--preset--color--accent, #c9b676);
	text-underline-offset: 3px;
}
.rt-post-content img { border-radius: 12px; }
.rt-post-content figure { margin-block: 2em; }
.rt-post-content blockquote {
	margin-block: 2em;
	padding-left: 1.4rem;
	border-left: 2px solid var(--wp--preset--color--accent, #c9b676);
	font-style: italic;
	color: var(--wp--preset--color--muted, #a8a49a);
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.rt-anim-ready .rt-reveal,
	.rt-anim-ready .rt-fade { opacity: 1 !important; transform: none !important; }
	.rt-media img,
	.rt-card .wp-block-cover__image-background,
	.rt-header,
	.rt-header .wp-block-navigation-item__content,
	.rt-header .wp-block-navigation .wp-block-navigation__submenu-container { transition: none !important; }
	.rt-header .wp-block-navigation__responsive-container.is-menu-open { animation: none !important; }
}
