/* =========================================================
   Toma Uno Mallorca · estilos de marca (plugin tomauno-core)
   ========================================================= */

@font-face {
	font-family: "Instrument Serif";
	font-style: italic;
	font-weight: 400;
	font-display: swap;
	src: url("fonts/instrument-serif-italic-latin.woff2") format("woff2");
}

:root {
	--tum-bg: #131311;
	--tum-surface: #20211C;
	--tum-surface-2: #2A2B25;
	--tum-text: #EDE9DE;
	--tum-muted: #B4B0A5;
	--tum-accent: #D6F16D;
	--tum-accent-hover: #E4F79A;
	--tum-line: rgba(237, 233, 222, 0.14);
	--tum-rec: #FF4B3E;
	--tum-radius: 20px;
	--tum-gutter: clamp(20px, 4vw, 40px);
	--tum-max: 1240px;
	--tum-section-y: clamp(72px, 10vw, 136px);
	--tum-serif: "Instrument Serif", Georgia, "Times New Roman", serif;
}

body { background: var(--tum-bg); color: var(--tum-text); }
::selection { background: var(--tum-accent); color: var(--tum-bg); }
[id] { scroll-margin-top: 96px; }
html { scroll-behavior: auto; }

/* ---------- Secciones ---------- */
.entry-content > .tum-section,
.tum-section {
	margin: 0;
	padding: var(--tum-section-y) var(--tum-gutter);
	max-width: none;
}
.tum-section > * {
	max-width: var(--tum-max);
	margin-left: auto;
	margin-right: auto;
}
.tum-section--surface { background: var(--tum-surface); }
.tum-section + .tum-section:not(.tum-section--surface) { border-top: 1px solid var(--tum-line); }

.tum-eyebrow {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--tum-accent);
	margin-bottom: 18px;
}
.tum-section h2 {
	font-size: clamp(34px, 5.2vw, 64px);
	line-height: 1.02;
	letter-spacing: -0.03em;
	font-weight: 700;
	color: var(--tum-text);
	margin: 0 auto 20px;
}
.tum-section h2 em,
.tum-hero h1 em {
	font-family: var(--tum-serif);
	font-style: italic;
	font-weight: 400;
	letter-spacing: -0.01em;
	color: var(--tum-accent);
}
.tum-intro {
	font-size: clamp(17px, 1.6vw, 20px);
	line-height: 1.6;
	color: var(--tum-muted);
	max-width: 640px;
	margin-left: 0;
}
.tum-section .tum-intro { margin-left: auto; margin-right: auto; }
.tum-head { margin-bottom: clamp(36px, 5vw, 64px); }
.tum-head > * { max-width: 760px; margin-left: 0; }

/* ---------- Botones ---------- */
.tum-section .wp-block-button__link,
.site-header .header-button,
.wpcf7 .wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	border-radius: 999px;
	padding: 15px 28px;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.2;
	background: var(--tum-accent);
	color: var(--tum-bg);
	border: 2px solid var(--tum-accent);
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
	box-shadow: none;
}
.tum-section .wp-block-button__link:hover,
.tum-section .wp-block-button__link:focus-visible,
.site-header .header-button:hover,
.wpcf7 .wpcf7-submit:hover {
	background: var(--tum-accent-hover);
	border-color: var(--tum-accent-hover);
	color: var(--tum-bg);
	transform: translateY(-1px);
}
.tum-section .is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--tum-text);
	border-color: rgba(237, 233, 222, 0.4);
}
.tum-section .is-style-outline .wp-block-button__link:hover {
	background: var(--tum-text);
	border-color: var(--tum-text);
	color: var(--tum-bg);
}
.tum-section .wp-block-buttons { gap: 12px; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
	outline: 2px solid var(--tum-accent);
	outline-offset: 3px;
}

/* ---------- Portada ---------- */
.tum-hero { padding-top: clamp(40px, 6vw, 88px); }
.tum-hero .wp-block-columns { gap: clamp(32px, 5vw, 72px); align-items: center; margin-bottom: 0; }
.tum-hero h1 {
	font-size: clamp(46px, 7.4vw, 108px);
	line-height: 0.96;
	letter-spacing: -0.04em;
	font-weight: 700;
	color: var(--tum-text);
	margin: 0 0 28px;
	text-wrap: balance;
}
.tum-hero .tum-lead {
	font-size: clamp(18px, 1.7vw, 21px);
	line-height: 1.6;
	color: var(--tum-muted);
	max-width: 560px;
	margin: 0 0 36px;
}
.tum-hero .tum-clap { margin: 0 0 28px; max-width: 300px; }
.tum-hero .tum-hero-media { position: relative; }
.tum-hero .tum-hero-media .wp-block-image,
.tum-hero .tum-hero-media .tum-pendiente {
	margin: 0;
	border-radius: 28px;
	overflow: hidden;
	aspect-ratio: 4 / 5;
}
.tum-hero .tum-hero-media .wp-block-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* ---------- Claqueta ---------- */
.tum-clap { width: 100%; max-width: 340px; }
.tum-clap__svg {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 360 / 300;
	overflow: visible;
}
.tum-clap__stick { fill: var(--tum-surface); }
.tum-clap__stripes polygon { fill: var(--tum-accent); }
.tum-clap__outline { fill: none; stroke: var(--tum-text); stroke-width: 3; }
.tum-clap__hinge { fill: var(--tum-text); }
.tum-clap__board { fill: var(--tum-surface); stroke: var(--tum-text); stroke-width: 3; }
.tum-clap__small { fill: var(--tum-muted); font-size: 13px; font-weight: 600; letter-spacing: 2.5px; }
.tum-clap__rec-label { fill: var(--tum-text); }
.tum-clap__title { fill: var(--tum-text); font-size: 44px; font-weight: 800; letter-spacing: 1px; }
.tum-clap__sub { fill: var(--tum-accent); font-size: 21px; font-weight: 700; letter-spacing: 7px; }
.tum-clap__rule { stroke: var(--tum-line); stroke-width: 2; }
.tum-clap__tags { fill: var(--tum-text); opacity: .8; font-size: 12.5px; font-weight: 600; letter-spacing: 2.4px; }
.tum-clap text { font-family: inherit; }

.tum-clap__arm { transform-box: view-box; transform-origin: 30px 94px; }
.tum-clap__rec-dot { fill: var(--tum-rec); opacity: .25; }

/* Estado inicial antes de entrar en pantalla */
.tum-clap.is-armed .tum-clap__svg { opacity: 0; transform: translateY(14px); }
/* Secuencia: aparece (0–0,5 s) · abre (0,45–1,1 s) · golpe (≈1,35 s) · REC (1,5 s) · quieta */
.tum-clap.is-playing .tum-clap__svg { animation: tumClapIn .5s ease-out both; }
.tum-clap.is-playing .tum-clap__arm { animation: tumClapArm 1.3s .45s both; }
.tum-clap.is-playing .tum-clap__rec-dot { animation: tumClapRec .6s 1.5s both; }
.tum-clap.is-done .tum-clap__rec-dot,
.tum-clap.is-playing .tum-clap__rec-dot { filter: drop-shadow(0 0 5px rgba(255, 75, 62, .8)); }
.tum-clap.is-done .tum-clap__rec-dot { opacity: 1; }

@keyframes tumClapIn {
	from { opacity: 0; transform: translateY(14px); }
	to { opacity: 1; transform: none; }
}
@keyframes tumClapArm {
	0% { transform: rotate(0deg); animation-timing-function: cubic-bezier(.2, .7, .3, 1); }
	50% { transform: rotate(-28deg); animation-timing-function: cubic-bezier(.7, 0, 1, .6); }
	70% { transform: rotate(0deg); animation-timing-function: ease-out; }
	78% { transform: rotate(-2.5deg); animation-timing-function: ease-in; }
	86%, 100% { transform: rotate(0deg); }
}
@keyframes tumClapRec {
	0% { opacity: .25; }
	35% { opacity: 1; }
	60% { opacity: .55; }
	100% { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
	.tum-clap .tum-clap__svg,
	.tum-clap .tum-clap__arm,
	.tum-clap .tum-clap__rec-dot { animation: none !important; transform: none !important; }
	.tum-clap .tum-clap__svg { opacity: 1 !important; }
	.tum-clap .tum-clap__rec-dot { opacity: 1 !important; }
}

/* ---------- Tarjetas de servicio ---------- */
.tum-cards { gap: clamp(16px, 2vw, 24px) !important; }
.tum-card {
	height: 100%;
	display: flex;
	flex-direction: column;
	background: var(--tum-surface);
	border: 1px solid var(--tum-line);
	border-radius: var(--tum-radius);
	padding: clamp(26px, 3vw, 40px);
	transition: border-color .2s ease, transform .2s ease;
}
.tum-section--surface .tum-card { background: var(--tum-bg); }
.tum-card:hover { border-color: rgba(214, 241, 109, .55); }
.tum-card > * { margin-top: 0; }
.tum-num {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .14em;
	color: var(--tum-accent);
	margin-bottom: 28px;
}
.tum-card h3 {
	font-size: clamp(24px, 2.4vw, 30px);
	line-height: 1.1;
	letter-spacing: -.02em;
	color: var(--tum-text);
	margin-bottom: 14px;
}
.tum-card p { color: var(--tum-muted); line-height: 1.6; }
.tum-card .tum-card-link { margin-top: auto; padding-top: 18px; margin-bottom: 0; }
.tum-card-link a {
	color: var(--tum-accent);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid rgba(214, 241, 109, .4);
	padding-bottom: 2px;
}
.tum-card-link a:hover { border-color: var(--tum-accent); }

/* ---------- Vídeos ---------- */
.tum-videos { gap: clamp(16px, 2vw, 24px) !important; }
.tum-video { display: flex; flex-direction: column; height: 100%; }
.tum-video > * { margin-top: 0; }
.tum-video__media {
	position: relative;
	aspect-ratio: 16 / 9;
	border-radius: 16px;
	overflow: hidden;
	background: var(--tum-surface);
	margin-bottom: 20px;
}
.tum-video__media iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.tum-video__media.is-pending {
	display: grid;
	place-items: center;
	border: 2px dashed rgba(214, 241, 109, .4);
	color: var(--tum-muted);
	font-size: 14px;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.tum-video__play {
	all: unset;
	cursor: pointer;
	position: absolute;
	inset: 0;
	display: block;
}
.tum-video__play img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease, opacity .3s ease; opacity: .9; }
.tum-video__play:hover img { transform: scale(1.03); opacity: 1; }
.tum-video__icon {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 72px;
	height: 72px;
	margin: -36px 0 0 -36px;
	border-radius: 50%;
	background: var(--tum-accent);
	box-shadow: 0 10px 30px rgba(0, 0, 0, .35);
	transition: transform .2s ease;
}
.tum-video__icon::after {
	content: "";
	position: absolute;
	left: 29px;
	top: 24px;
	border-style: solid;
	border-width: 12px 0 12px 19px;
	border-color: transparent transparent transparent var(--tum-bg);
}
.tum-video__play:hover .tum-video__icon,
.tum-video__play:focus-visible .tum-video__icon { transform: scale(1.08); }
.tum-video__play:focus-visible { outline: 3px solid var(--tum-accent); outline-offset: -3px; border-radius: 16px; }
.tum-video h3 { font-size: 21px; line-height: 1.25; color: var(--tum-text); margin-bottom: 8px; }
.tum-video p { color: var(--tum-muted); font-size: 16px; line-height: 1.55; }
.tum-video__fallback,
.tum-video__poster-source { display: none !important; }
.editor-styles-wrapper .tum-video__fallback { display: flex !important; }

/* ---------- Galería ---------- */
.tum-gallery .wp-block-gallery { gap: clamp(10px, 1.4vw, 16px); }
.tum-gallery .wp-block-gallery .wp-block-image img { border-radius: 14px; }
.tum-gallery .wp-block-gallery .wp-block-image { border-radius: 14px; overflow: hidden; }

/* ---------- Pasos ---------- */
.tum-steps { gap: clamp(16px, 2vw, 24px) !important; counter-reset: none; }
.tum-step {
	border-top: 2px solid var(--tum-accent);
	padding-top: 28px;
	height: 100%;
}
.tum-step > * { margin-top: 0; }
.tum-step .tum-step-num {
	font-family: var(--tum-serif);
	font-style: italic;
	font-size: clamp(56px, 6vw, 80px);
	line-height: .9;
	color: var(--tum-accent);
	margin-bottom: 18px;
}
.tum-step h3 { font-size: clamp(21px, 2vw, 26px); line-height: 1.2; color: var(--tum-text); margin-bottom: 10px; }
.tum-step p { color: var(--tum-muted); line-height: 1.6; }

/* ---------- Preguntas frecuentes ---------- */
.tum-faq > .wp-block-details,
.tum-faq .wp-block-details {
	max-width: 880px;
	border-bottom: 1px solid var(--tum-line);
	padding: 0;
	margin: 0 auto;
}
.tum-faq .wp-block-details:first-of-type { border-top: 1px solid var(--tum-line); }
.tum-faq summary {
	list-style: none;
	cursor: pointer;
	position: relative;
	padding: 26px 56px 26px 0;
	font-size: clamp(18px, 1.8vw, 22px);
	font-weight: 600;
	line-height: 1.35;
	color: var(--tum-text);
}
.tum-faq summary::-webkit-details-marker { display: none; }
.tum-faq summary::after {
	content: "+";
	position: absolute;
	right: 4px;
	top: 50%;
	transform: translateY(-50%);
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 1px solid var(--tum-line);
	display: grid;
	place-items: center;
	font-size: 22px;
	font-weight: 400;
	color: var(--tum-accent);
	transition: transform .2s ease;
}
.tum-faq details[open] summary::after { content: "–"; }
.tum-faq details > :not(summary) { color: var(--tum-muted); line-height: 1.65; margin: 0 0 26px; max-width: 760px; }

/* ---------- Contacto ---------- */
.tum-contact > .wp-block-columns { gap: clamp(32px, 5vw, 72px); }
.tum-form-card {
	background: var(--tum-bg);
	border: 1px solid var(--tum-line);
	border-radius: 24px;
	padding: clamp(24px, 3.5vw, 44px);
}
.tum-whatsapp .wp-block-button__link::before {
	content: "";
	width: 20px;
	height: 20px;
	flex: none;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2Zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2Zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8-.2-.1-.4-.1-.6.1l-.8 1c-.1.2-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.8 11.8 0 0 0 4.5 4c1.7.7 2.3.8 3.1.6.5-.1 1.5-.6 1.7-1.2.2-.6.2-1.1.2-1.2-.1-.1-.3-.2-.5-.3Z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2Zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2Zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8-.2-.1-.4-.1-.6.1l-.8 1c-.1.2-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.8 11.8 0 0 0 4.5 4c1.7.7 2.3.8 3.1.6.5-.1 1.5-.6 1.7-1.2.2-.6.2-1.1.2-1.2-.1-.1-.3-.2-.5-.3Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.tum-contact-list { list-style: none; padding: 0; margin: 28px 0 0; color: var(--tum-muted); }
.tum-contact-list li { padding: 12px 0; border-top: 1px solid var(--tum-line); }

/* Formulario (Contact Form 7) */
.wpcf7 form { display: grid; gap: 18px; }
.wpcf7 form > p { margin: 0; }
.tum-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.wpcf7 label { display: block; font-size: 14px; font-weight: 600; color: var(--tum-text); }
.wpcf7 label .tum-opt { color: var(--tum-muted); font-weight: 400; }
.wpcf7 .wpcf7-form-control-wrap { display: block; margin-top: 8px; }
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="date"],
.wpcf7 select,
.wpcf7 textarea {
	width: 100%;
	box-sizing: border-box;
	background: var(--tum-surface);
	color: var(--tum-text);
	border: 1px solid var(--tum-line);
	border-radius: 12px;
	padding: 14px 16px;
	font: inherit;
	font-size: 16px;
	line-height: 1.4;
	color-scheme: dark;
}
.wpcf7 textarea { min-height: 140px; resize: vertical; }
.wpcf7 input::placeholder, .wpcf7 textarea::placeholder { color: #8C887E; }
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { border-color: var(--tum-accent); outline: none; box-shadow: 0 0 0 3px rgba(214, 241, 109, .2); }
.wpcf7 .wpcf7-acceptance { font-size: 14px; color: var(--tum-muted); }
.wpcf7 .wpcf7-acceptance a { color: var(--tum-accent); }
.wpcf7 .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.wpcf7 .wpcf7-submit { cursor: pointer; width: auto; }
.wpcf7 .wpcf7-not-valid-tip { color: #FF8A80; font-size: 13px; margin-top: 6px; }
.wpcf7 form .wpcf7-response-output { margin: 0; border-radius: 12px; padding: 14px 16px; border-color: var(--tum-accent); color: var(--tum-text); }
.wpcf7 .wpcf7-spinner { background-color: var(--tum-accent); }

/* ---------- Pendientes (solo administradores) ---------- */
.tum-pendiente {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 10px;
	text-align: center;
	min-height: 260px;
	padding: 28px;
	box-sizing: border-box;
	border: 2px dashed rgba(214, 241, 109, .45);
	border-radius: var(--tum-radius);
	background: repeating-linear-gradient(135deg, rgba(237, 233, 222, .03) 0 14px, transparent 14px 28px), var(--tum-surface);
	color: var(--tum-muted);
}
.tum-pendiente--gallery { min-height: 320px; }
.tum-pendiente__tag { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--tum-accent); }
.tum-pendiente__text { font-size: 16px; max-width: 420px; line-height: 1.5; }
.tum-pendiente-note {
	border-left: 3px solid var(--tum-accent);
	background: rgba(214, 241, 109, .08);
	padding: 12px 16px;
	border-radius: 0 10px 10px 0;
	font-size: 15px;
	color: var(--tum-text);
}

/* ---------- Cabecera y pie (Kadence) ---------- */
.site-header .site-main-header-wrap .site-header-row-container-inner {
	background: rgba(19, 19, 17, .88);
	-webkit-backdrop-filter: saturate(140%) blur(12px);
	backdrop-filter: saturate(140%) blur(12px);
	border-bottom: 1px solid var(--tum-line);
}
.site-header .site-branding .site-title { letter-spacing: -.02em; font-weight: 700; }
.site-header .header-button { padding: 11px 22px; font-size: 15px; }
.site-footer { border-top: 1px solid var(--tum-line); }
.site-footer a { color: var(--tum-text); }
.site-footer a:hover { color: var(--tum-accent); }
.tum-footer-brand { font-weight: 700; font-size: 18px; color: var(--tum-text); }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.tum-hero h1 { font-size: clamp(44px, 8.4vw, 80px); }
	.tum-cards, .tum-videos, .tum-steps { flex-wrap: wrap !important; }
	.tum-cards > .wp-block-column,
	.tum-videos > .wp-block-column,
	.tum-steps > .wp-block-column { flex-basis: calc(50% - 12px) !important; flex-grow: 1; }
}
@media (max-width: 781px) {
	[id] { scroll-margin-top: 76px; }
	.tum-hero .tum-clap { max-width: 210px; margin-bottom: 22px; }
	.tum-hero .tum-hero-media .wp-block-image,
	.tum-hero .tum-hero-media .tum-pendiente { aspect-ratio: 4 / 3.4; border-radius: 20px; }
	.tum-cards > .wp-block-column,
	.tum-videos > .wp-block-column,
	.tum-steps > .wp-block-column { flex-basis: 100% !important; }
	.tum-hero .wp-block-buttons { flex-direction: column; align-items: stretch; }
	.tum-hero .wp-block-button, .tum-hero .wp-block-button__link { width: 100%; }
	.tum-form-row { grid-template-columns: 1fr; }
	.tum-step { padding-top: 22px; }
	.tum-gallery .wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) { width: calc(50% - 8px); }
}


/* ---------- Portada: claqueta solapada sobre la foto ---------- */
.tum-hero .tum-hero-media .tum-clap {
	position: absolute;
	left: -10%;
	bottom: -7%;
	width: 54%;
	max-width: 300px;
	margin: 0;
	z-index: 2;
	filter: drop-shadow(0 18px 40px rgba(0, 0, 0, .45));
}
.tum-hero .tum-hero-media:not(:has(img, .tum-pendiente)) .tum-clap { position: static; width: 100%; filter: none; }
@media (max-width: 1024px) {
	.tum-hero .tum-hero-media .tum-clap { left: -4%; }
}
@media (max-width: 781px) {
	.tum-hero .tum-hero-media { margin-bottom: 40px; }
	.tum-hero .tum-hero-media .tum-clap { left: 4%; bottom: -12%; width: 52%; max-width: 210px; }
}


/* ---------- Ajustes v1.0.1 ---------- */
/* Grupos con contenedor interno (temas clásicos) */
.tum-card > .wp-block-group__inner-container,
.tum-video > .wp-block-group__inner-container,
.tum-step > .wp-block-group__inner-container {
	display: flex;
	flex-direction: column;
	height: 100%;
}
.tum-card > .wp-block-group__inner-container > *,
.tum-video > .wp-block-group__inner-container > *,
.tum-step > .wp-block-group__inner-container > * { margin-top: 0; }
.tum-card .tum-card-link { margin-top: auto !important; }
.tum-head .tum-intro,
.tum-section .tum-head .tum-intro { margin-left: 0; margin-right: 0; }
.tum-head > .wp-block-group__inner-container > * { margin-left: 0; }

/* Cabecera fija: siempre oscura */
#masthead .kadence-sticky-header,
#masthead .kadence-sticky-header.item-is-fixed,
#masthead .kadence-sticky-header .site-header-row-container-inner,
#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .site-header-row-container-inner,
.site-header .site-main-header-wrap .site-header-row-container-inner {
	background: rgba(19, 19, 17, .92) !important;
}
#masthead .kadence-sticky-header.item-is-fixed:not(.item-at-start) .site-branding .site-title,
#masthead .site-branding .site-title { color: var(--tum-text) !important; }
#masthead .main-navigation .primary-menu-container > ul > li.menu-item > a { color: var(--tum-muted); }
#masthead .main-navigation .primary-menu-container > ul > li.menu-item > a:hover { color: var(--tum-accent); }
.site-header .header-button,
.site-header .mobile-header-button-wrap .button { color: var(--tum-bg) !important; }

/* Preguntas frecuentes alineadas con el título */
.tum-faq .wp-block-details { margin-left: 0 !important; margin-right: auto !important; }

/* Formulario */
.wpcf7 input, .wpcf7 select, .wpcf7 textarea { font-weight: 400 !important; }
.wpcf7 input[type="checkbox"] { accent-color: var(--tum-accent); width: 18px; height: 18px; vertical-align: -3px; margin-right: 8px; }
.wpcf7 .wpcf7-acceptance label { font-weight: 400; color: var(--tum-muted); }
.wpcf7 .wpcf7-submit { width: auto !important; justify-self: start; padding: 15px 32px; }
.wpcf7 .wpcf7-submit:disabled { opacity: .45; cursor: not-allowed; transform: none; }
.wpcf7 form > p:has(.wpcf7-submit), .wpcf7 form .wpcf7-submit { justify-self: start; }

/* Pie */
.site-footer .site-bottom-footer-wrap { color: var(--tum-muted); font-size: 15px; }
.site-footer .tum-footer-brand { color: var(--tum-text); font-size: 18px; }
.site-footer p { margin: 0 0 10px; }
.site-footer a { text-decoration: none; border-bottom: 1px solid var(--tum-line); }


/* ---------- Ajustes v1.0.2: menú móvil y vídeos ---------- */
#mobile-drawer .drawer-inner,
.popup-drawer .drawer-inner { background: var(--tum-bg); color: var(--tum-text); }
#mobile-drawer .mobile-navigation ul li > a,
#mobile-drawer .mobile-navigation ul li .drawer-nav-drop-wrap,
.mobile-navigation ul li > a {
	color: var(--tum-text) !important;
	font-size: 22px;
	font-weight: 600;
	padding-top: 16px;
	padding-bottom: 16px;
}
#mobile-drawer .mobile-navigation ul li > a:hover,
.mobile-navigation ul li > a:hover { color: var(--tum-accent) !important; }
#mobile-drawer .mobile-navigation ul li,
.mobile-navigation ul li { border-color: var(--tum-line) !important; }
#mobile-drawer .drawer-header .drawer-toggle { color: var(--tum-text); }
#mobile-drawer .mobile-header-button-wrap .button,
.mobile-header-button-wrap .mobile-header-button {
	border-radius: 999px !important;
	padding: 15px 26px !important;
	background: var(--tum-accent) !important;
	color: var(--tum-bg) !important;
	font-weight: 600;
	margin-top: 12px;
}
#mobile-header .menu-toggle-open { color: var(--tum-text); }
.tum-videos > .wp-block-column { margin-bottom: 0 !important; }
.tum-video > .wp-block-group__inner-container > :last-child { margin-bottom: 0; }
@media (max-width: 781px) {
	.tum-videos { gap: 36px !important; }
}


/* ---------- v1.1.0: fotos reales, vídeos y galería ---------- */
/* Portada: foto sin recortes (proporción original) con la claqueta solapada abajo a la izquierda */
.tum-hero .wp-block-columns > .tum-hero-media { max-width: 520px; margin-left: auto; }
.tum-hero .tum-hero-media .wp-block-image.tum-hero-photo {
	aspect-ratio: auto;
	border-radius: 28px;
	overflow: hidden;
	box-shadow: 0 30px 80px rgba(0, 0, 0, .45);
}
.tum-hero .tum-hero-media .wp-block-image.tum-hero-photo img {
	width: 100%;
	height: auto;
	object-fit: initial;
	display: block;
}
.tum-hero .tum-hero-media .tum-clap {
	left: -18%;
	bottom: -5%;
	width: 50%;
	max-width: 260px;
}
@media (max-width: 1100px) {
	.tum-hero .tum-hero-media .tum-clap { left: -8%; }
}
@media (max-width: 781px) {
	.tum-hero .wp-block-columns > .tum-hero-media { max-width: 480px; margin: 8px auto 56px; }
	.tum-hero .tum-hero-media .wp-block-image.tum-hero-photo { border-radius: 20px; }
	.tum-hero .tum-hero-media .tum-clap { left: -2%; bottom: -9%; width: 50%; max-width: 200px; }
}

/* Vídeos: rejilla de 2 columnas (1 en móvil); se añaden más duplicando una tarjeta */
.tum-videos-grid:not(:has(> .wp-block-group__inner-container)),
.tum-videos-grid > .wp-block-group__inner-container {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(28px, 3vw, 40px);
}
.tum-videos-grid .tum-video { margin: 0; }
.tum-video h3 { margin: 0 0 8px; font-size: clamp(19px, 1.7vw, 22px); }
.tum-video .tum-video-meta { margin: 0 0 18px; font-size: 15px; color: var(--tum-muted); }
.tum-video .tum-video-link { margin-top: auto; }
.tum-video .tum-video-link .wp-block-button__link { padding: 11px 22px; font-size: 15px; }
.tum-video__media { margin-bottom: 18px; }
@media (max-width: 781px) {
	.tum-videos-grid:not(:has(> .wp-block-group__inner-container)),
	.tum-videos-grid > .wp-block-group__inner-container { grid-template-columns: 1fr; gap: 44px; }
	.tum-video__icon { width: 60px; height: 60px; margin: -30px 0 0 -30px; }
	.tum-video__icon::after { left: 24px; top: 19px; border-width: 11px 0 11px 17px; }
}

/* Galería: sin recortes, 3 columnas; 1 en móvil */
.tum-gallery .wp-block-gallery.tum-studio-gallery { align-items: flex-start; }
.tum-gallery .wp-block-gallery.tum-studio-gallery .wp-block-image img {
	width: 100%;
	height: auto !important;
	object-fit: initial !important;
	cursor: zoom-in;
}
@media (max-width: 600px) {
	.tum-gallery .wp-block-gallery.has-nested-images.tum-studio-gallery figure.wp-block-image:not(#individual-image) { width: 100% !important; }
}

/* Lista de contacto */
.tum-contact-list a { color: var(--tum-text); text-decoration: none; border-bottom: 1px solid rgba(214, 241, 109, .45); }
.tum-contact-list a:hover { color: var(--tum-accent); }


/* v1.1.1: la foto de portada se ajusta a la altura de la ventana (sin recorte) */
.tum-hero { padding-top: clamp(32px, 4.5vw, 64px); }
.tum-hero .wp-block-columns > .tum-hero-media {
	max-width: min(480px, calc((100vh - 190px) * 0.75));
	min-width: 300px;
}
.tum-hero .wp-block-columns > .wp-block-column:first-child { flex-grow: 1; }
@media (max-width: 781px) {
	.tum-hero .wp-block-columns > .tum-hero-media { max-width: 480px; min-width: 0; }
}

.entry-content > .tum-section.tum-hero, .tum-section.tum-hero { padding-top: clamp(24px, 3.2vw, 44px); padding-bottom: clamp(64px, 8vw, 112px); }

/* v1.1.2: galería en 3 columnas (2 en tablet estrecha, 1 en móvil) */
.tum-gallery .wp-block-gallery.has-nested-images.tum-studio-gallery { gap: 16px; }
.tum-gallery .wp-block-gallery.has-nested-images.tum-studio-gallery figure.wp-block-image:not(#individual-image) { width: calc((100% - 32px) / 3) !important; flex-grow: 0; margin: 0; }
@media (max-width: 900px) and (min-width: 601px) {
	.tum-gallery .wp-block-gallery.has-nested-images.tum-studio-gallery figure.wp-block-image:not(#individual-image) { width: calc((100% - 16px) / 2) !important; }
}
@media (max-width: 600px) {
	.tum-gallery .wp-block-gallery.has-nested-images.tum-studio-gallery figure.wp-block-image:not(#individual-image) { width: 100% !important; }
}

/* v1.1.3: visor de fotos (lightbox) con los colores de la marca */
.wp-lightbox-overlay .scrim { background-color: var(--tum-bg) !important; opacity: .96 !important; }
.wp-lightbox-overlay .close-button,
.wp-lightbox-overlay .wp-lightbox-navigation-button,
.wp-lightbox-overlay button { color: var(--tum-text) !important; fill: var(--tum-text) !important; }
.wp-lightbox-overlay .close-button:hover,
.wp-lightbox-overlay button:hover { color: var(--tum-accent) !important; fill: var(--tum-accent) !important; }
.wp-lightbox-overlay img { border-radius: 12px; }

/* v1.1.4 */
.tum-contact .tum-contact-list, ul.tum-contact-list { padding-left: 0 !important; margin-left: 0 !important; list-style: none; }
.site-footer a, .tum-contact-list a { white-space: nowrap; }

/* v1.2.0: contacto sin formulario (WhatsApp principal) */
.tum-contact--wa { text-align: center; }
.tum-contact--wa > *, .tum-contact--wa > .wp-block-group__inner-container > * { margin-left: auto !important; margin-right: auto !important; }
.tum-contact--wa .tum-intro { max-width: 620px; }
.tum-contact--wa .tum-contact-buttons { justify-content: center; margin-top: 32px; }
.tum-contact--wa .tum-whatsapp .wp-block-button__link { background: var(--tum-accent); color: var(--tum-bg); border-color: var(--tum-accent); font-size: 17px; padding: 17px 32px; }
.tum-contact--wa .tum-contact-phone { margin-top: 20px; color: var(--tum-muted); font-size: 15px; }
.tum-contact--wa .tum-contact-phone a { color: var(--tum-text); text-decoration: none; border-bottom: 1px solid rgba(214, 241, 109, .45); white-space: nowrap; }
@media (max-width: 781px) {
	.tum-contact--wa .tum-contact-buttons { flex-direction: column; align-items: stretch; }
	.tum-contact--wa .tum-contact-buttons .wp-block-button__link { width: 100%; }
}

/* v1.3.0: textos legales y primera capa */
.tum-legal { max-width: 820px; margin: 0 auto; }
.tum-legal h2 { font-size: clamp(22px, 2.4vw, 28px); margin: 40px 0 12px; }
.tum-legal h3 { font-size: 19px; margin: 26px 0 8px; }
.tum-legal p, .tum-legal li { color: var(--tum-muted); line-height: 1.7; }
.tum-legal strong { color: var(--tum-text); }
.tum-legal a, .tum-contact-legal a, .tum-form-legal a { color: var(--tum-accent); }
.tum-contact-legal, .tum-form-legal { font-size: 13px; line-height: 1.55; color: var(--tum-muted); max-width: 620px; margin-top: 28px !important; }

.entry-content > .tum-section.tum-legal, .tum-section.tum-legal { padding-top: 8px; padding-bottom: 72px; }
.tum-legal > .wp-block-group__inner-container > :first-child, .tum-legal > :first-child { margin-top: 0; }


/* ---------- v1.4.0: claqueta en bucle (8 s) ---------- */
.tum-clap.is-looping .tum-clap__svg { animation: tumClapIn .6s ease-out both; }
.tum-clap.is-looping .tum-clap__arm { animation: tumClapLoop 8s .6s infinite both; }
.tum-clap.is-looping .tum-clap__rec-dot { animation: tumRecLoop 8s .6s infinite both; filter: drop-shadow(0 0 5px rgba(255, 75, 62, .8)); }
.tum-clap.is-paused .tum-clap__svg,
.tum-clap.is-paused .tum-clap__arm,
.tum-clap.is-paused .tum-clap__rec-dot { animation-play-state: paused !important; }
/* Ciclo: cerrada · abre suave (0,3–0,9 s) · golpe (≈1,2 s) · pequeño rebote · cerrada hasta los 8 s */
@keyframes tumClapLoop {
	0%, 3% { transform: rotate(0deg); animation-timing-function: cubic-bezier(.2, .7, .3, 1); }
	11% { transform: rotate(-26deg); animation-timing-function: cubic-bezier(.6, 0, .9, .5); }
	15% { transform: rotate(0deg); animation-timing-function: ease-out; }
	16.5% { transform: rotate(-2.5deg); animation-timing-function: ease-in; }
	18%, 100% { transform: rotate(0deg); }
}
@keyframes tumRecLoop {
	0%, 15% { opacity: .35; }
	17% { opacity: 1; }
	20% { opacity: .6; }
	23%, 100% { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
	.tum-clap.is-looping .tum-clap__svg,
	.tum-clap.is-looping .tum-clap__arm,
	.tum-clap.is-looping .tum-clap__rec-dot { animation: none !important; transform: none !important; opacity: 1 !important; }
}

/* ---------- v1.4.0: aviso de carga de YouTube sobre la miniatura ---------- */
.tum-video__consent {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 34px 16px 12px;
	background: linear-gradient(to top, rgba(19, 19, 17, .92), rgba(19, 19, 17, 0));
	color: var(--tum-text);
	font-size: 13px;
	line-height: 1.4;
	text-align: left;
	pointer-events: none;
}
.tum-video__consent strong { display: block; font-size: 14px; color: var(--tum-accent); margin-bottom: 2px; }
.tum-video__consent span { color: #D8D4C9; }
@media (max-width: 781px) {
	.tum-video__consent { font-size: 12px; padding: 28px 12px 10px; }
}

/* ---------- v1.4.0: contacto por email ---------- */
.tum-contact--wa .tum-contact-email {
	display: inline-block;
	margin: 6px auto 0;
	font-size: clamp(22px, 3.2vw, 34px);
	font-weight: 700;
	letter-spacing: -.01em;
}
.tum-contact--wa .tum-contact-email a { color: var(--tum-text); text-decoration: none; border-bottom: 2px solid var(--tum-accent); overflow-wrap: anywhere; }
.tum-contact--wa .tum-contact-email a:hover, .tum-contact--wa .tum-contact-email a:focus-visible { color: var(--tum-accent); }
.tum-contact--wa .tum-email-btn .wp-block-button__link { background: var(--tum-accent); color: var(--tum-bg); border-color: var(--tum-accent); font-size: 17px; padding: 17px 32px; }
.tum-contact--wa .tum-whatsapp.is-style-outline .wp-block-button__link,
.tum-contact--wa .tum-contact-buttons .tum-whatsapp .wp-block-button__link { background: transparent !important; color: var(--tum-text) !important; border-color: rgba(237, 233, 222, .4) !important; font-size: 16px; padding: 15px 26px; }
.tum-contact--wa .tum-whatsapp .wp-block-button__link:hover { background: var(--tum-text) !important; color: var(--tum-bg) !important; }

/* ---------- v1.4.0: pie legal discreto ---------- */
.tum-footer-legal { margin-top: 14px !important; font-size: 14px; }
.tum-footer-legal a { color: #C9C5BA !important; border-bottom: 1px solid rgba(237, 233, 222, .25) !important; padding: 6px 2px; display: inline-block; }
.tum-footer-legal a:hover, .tum-footer-legal a:focus-visible { color: var(--tum-accent) !important; border-color: var(--tum-accent) !important; }
.tum-footer-legal .sep { color: #77736A; margin: 0 6px; }
