/* ==========================================================================
   CubyPadel 3D — estilos del tema
   Tokens de color, fuentes y espaciados: theme.json (editables desde
   Apariencia → Editor → Estilos). Aquí: componentes, efectos y animaciones.
   ========================================================================== */

:root {
	--cuby-gold: var(--wp--preset--color--gold, #c9a227);
	--cuby-gold-l: var(--wp--preset--color--gold-light, #e7c878);
	--cuby-ink: var(--wp--preset--color--ink, #0b0b0d);
	--cuby-ink-2: var(--wp--preset--color--ink-2, #141418);
	--cuby-steel: var(--wp--preset--color--steel, #adb3b8);
	--cuby-paper: var(--wp--preset--color--paper, #f6f3ea);
	--cuby-line: rgba(255, 255, 255, 0.1);
	--cuby-ease: cubic-bezier(.16, 1, .3, 1);
	--cuby-r-md: 18px;
	--cuby-r-lg: 28px;
	--cuby-header-h: 84px;
	--cuby-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}

@property --cuby-ang {
	syntax: "<angle>";
	initial-value: 0deg;
	inherits: false;
}

html { scroll-behavior: smooth; }
html.cuby-lock { overflow: hidden; }
body { background: var(--cuby-ink); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip; }
::selection { background: var(--cuby-gold); color: var(--cuby-ink); }
[id] { scroll-margin-top: calc(var(--cuby-header-h) + 1rem); }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 2px solid var(--cuby-gold-l); outline-offset: 3px; border-radius: 6px; }

.cuby-narrow { max-width: 680px !important; margin-inline: auto !important; }

/* ---------- Tipografía ---------- */

.is-style-cuby-eyebrow {
	display: flex;
	align-items: center;
	gap: .75rem;
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--cuby-gold-l);
}
.is-style-cuby-eyebrow::before {
	content: "";
	width: 28px;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--cuby-gold));
}
.is-style-cuby-eyebrow.has-text-align-center { display: flex; justify-content: center; }
.is-style-cuby-eyebrow a { color: inherit; }

.is-style-cuby-gradient,
.cuby-mark,
.cuby-mark .cuby-w > span {
	background: linear-gradient(110deg, #f5e3a3 0%, var(--cuby-gold) 35%, #fff2c2 50%, var(--cuby-gold) 65%, #a8841a 100%);
	background-size: 220% 100%;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent !important;
	animation: cuby-sheen 6s linear infinite;
}
mark.cuby-mark { background-color: transparent; padding: 0; }
@keyframes cuby-sheen { to { background-position: -220% 0; } }

.cuby-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; perspective: 600px; }
.cuby-w > span { display: inline-block; transform-origin: 50% 100%; }

/* ---------- Cabecera ---------- */

.cuby-header {
	position: fixed !important;
	inset: 0 0 auto 0;
	z-index: 100;
	margin: 0 !important;
	transition: transform .5s var(--cuby-ease), background-color .4s, backdrop-filter .4s, box-shadow .4s;
}
.admin-bar .cuby-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .cuby-header { top: 46px; } }
.cuby-header.is-scrolled {
	background: rgba(11, 11, 13, .72);
	-webkit-backdrop-filter: saturate(160%) blur(18px);
	backdrop-filter: saturate(160%) blur(18px);
	box-shadow: 0 1px 0 var(--cuby-line), 0 20px 40px -30px rgba(0, 0, 0, .8);
}
.cuby-header.is-hidden { transform: translateY(-110%); }
.cuby-header__bar { gap: 1.5rem; }
.cuby-header__nav { gap: .75rem; }
.cuby-logo img { transition: transform .5s var(--cuby-ease), filter .5s; }
.cuby-logo:hover img { transform: scale(1.04); filter: drop-shadow(0 6px 18px rgba(201, 162, 39, .45)); }

.cuby-nav .wp-block-navigation-item__content {
	position: relative;
	padding: .4rem 0;
	white-space: nowrap;
	color: var(--cuby-paper);
	transition: color .3s;
}
.cuby-nav .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: var(--cuby-gold);
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .5s var(--cuby-ease);
}
.cuby-nav .wp-block-navigation-item__content:hover { color: var(--cuby-gold-l); }
.cuby-nav .wp-block-navigation-item__content:hover::after { transform: scaleX(1); transform-origin: left; }

.cuby-nav .cuby-nav__featured > .wp-block-navigation-item__content {
	padding: .45rem .9rem;
	border-radius: 999px;
	border: 1px solid rgba(201, 162, 39, .55);
	background: linear-gradient(135deg, rgba(201, 162, 39, .18), rgba(201, 162, 39, .04));
	color: var(--cuby-gold-l);
}
.cuby-nav .cuby-nav__featured > .wp-block-navigation-item__content::after { display: none; }
.cuby-nav .cuby-nav__featured > .wp-block-navigation-item__content::before {
	content: "◆";
	font-size: .6em;
	margin-right: .45em;
	display: inline-block;
	animation: cuby-spin 4s linear infinite;
}
@keyframes cuby-spin { to { transform: rotateY(360deg); } }

.cuby-nav .wp-block-navigation__submenu-container,
.cuby-header .wp-block-navigation .wp-block-navigation__submenu-container {
	color: var(--cuby-paper) !important;
	background: rgba(20, 20, 24, .96) !important;
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
	border: 1px solid var(--cuby-line) !important;
	border-radius: 16px;
	padding: .5rem !important;
	min-width: 220px !important;
	box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .8);
}
.cuby-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content,
.cuby-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__label { color: var(--cuby-paper) !important; }
.cuby-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .55rem .8rem !important; border-radius: 10px; }
.cuby-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { color: var(--cuby-gold-l) !important; }
.cuby-header .wp-block-navigation-submenu__toggle,
.cuby-header .wp-block-navigation__submenu-icon { color: var(--cuby-paper) !important; }
.cuby-header .wp-block-navigation__submenu-icon svg { stroke: currentColor; }
.cuby-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: rgba(201, 162, 39, .12); }
.cuby-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after { display: none; }

.wp-block-navigation__responsive-container.is-menu-open {
	background: radial-gradient(120% 80% at 100% 0%, rgba(201, 162, 39, .25), transparent 60%), var(--cuby-ink) !important;
	color: var(--cuby-paper) !important;
	padding: 2rem 1.5rem !important;
}
.wp-block-navigation__responsive-container.is-menu-open,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { color: var(--cuby-paper) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--display);
	font-size: 1.5rem;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { background: transparent !important; border: 0 !important; box-shadow: none; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1.05rem; font-family: var(--wp--preset--font-family--body); }
.wp-block-navigation__responsive-container-open svg,
.wp-block-navigation__responsive-container-close svg { fill: var(--cuby-paper); }

/* ---------- Selector de idioma ---------- */

.cuby-lang { position: relative; flex: 0 0 auto; font-size: var(--wp--preset--font-size--sm); }
.cuby-lang summary {
	list-style: none;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .45rem .75rem;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, .2);
	color: var(--cuby-paper);
	font-weight: 700;
	letter-spacing: .06em;
	transition: border-color .3s, color .3s;
}
.cuby-lang summary::-webkit-details-marker { display: none; }
.cuby-lang summary:hover,
.cuby-lang[open] summary { border-color: var(--cuby-gold); color: var(--cuby-gold-l); }
.cuby-lang ul {
	position: absolute;
	right: 0;
	top: calc(100% + .5rem);
	z-index: 120;
	min-width: 180px;
	margin: 0;
	padding: .4rem;
	list-style: none;
	border-radius: 14px;
	background: rgba(20, 20, 24, .97);
	border: 1px solid var(--cuby-line);
	box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .8);
	animation: cuby-drop .3s var(--cuby-ease);
}
.cuby-lang a { display: flex; gap: .6rem; padding: .55rem .75rem; border-radius: 10px; color: var(--cuby-paper) !important; }
.cuby-lang a span { width: 1.8em; font-weight: 800; color: var(--cuby-gold); }
.cuby-lang a:hover { background: rgba(201, 162, 39, .12); }
.cuby-lang a[aria-current] { background: rgba(201, 162, 39, .18); }
.cuby-footer__langs a { margin-inline: .1rem; }
.editor-styles-wrapper .cuby-lang { display: none; }

/* ---------- Botones ---------- */

.wp-block-button__link { position: relative; overflow: hidden; isolation: isolate; transition: transform .4s var(--cuby-ease), box-shadow .4s, background-color .3s, color .3s; }

.is-style-cuby-shine .wp-block-button__link {
	background: linear-gradient(120deg, #a8841a 0%, var(--cuby-gold) 30%, #f1d98a 55%, var(--cuby-gold) 80%) !important;
	background-size: 200% 100% !important;
	color: var(--cuby-ink) !important;
	box-shadow: 0 10px 30px -12px rgba(201, 162, 39, .7), inset 0 1px 0 rgba(255, 255, 255, .45);
	transition: background-position .8s var(--cuby-ease), box-shadow .4s, transform .4s var(--cuby-ease);
}
.is-style-cuby-shine .wp-block-button__link::after {
	content: "";
	position: absolute;
	inset: -2px;
	background: linear-gradient(100deg, transparent 30%, rgba(255, 255, 255, .7) 50%, transparent 70%);
	transform: translateX(-120%);
	z-index: -1;
	transition: transform .9s var(--cuby-ease);
}
.is-style-cuby-shine .wp-block-button__link:hover {
	background-position: 100% 0 !important;
	box-shadow: 0 18px 50px -14px rgba(201, 162, 39, .9), inset 0 1px 0 rgba(255, 255, 255, .5);
}
.is-style-cuby-shine .wp-block-button__link:hover::after { transform: translateX(120%); }

.is-style-cuby-ghost .wp-block-button__link {
	background: rgba(255, 255, 255, .03) !important;
	color: var(--cuby-paper) !important;
	border: 1px solid rgba(255, 255, 255, .22);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}
.is-style-cuby-ghost .wp-block-button__link:hover { border-color: var(--cuby-gold); color: var(--cuby-gold-l) !important; background: rgba(201, 162, 39, .08) !important; }
.cuby-eco .is-style-cuby-ghost .wp-block-button__link { color: var(--cuby-ink) !important; border-color: rgba(0, 0, 0, .25); }

.cuby-link-arrow a { display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; }
.cuby-link-arrow a::after { content: "→"; transition: transform .4s var(--cuby-ease); }
.cuby-link-arrow a:hover::after { transform: translateX(6px); }

/* ---------- Secciones y fondos ---------- */

.cuby-section,
.cuby-hero,
.cuby-page-hero,
.cuby-footer { position: relative; isolation: isolate; overflow: clip; }

.cuby-section::before,
.cuby-hero::before,
.cuby-page-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: var(--cuby-grain);
	opacity: .06;
	mix-blend-mode: overlay;
	pointer-events: none;
	z-index: -1;
}

.cuby-blobs { position: absolute; inset: -10% -10% auto; height: 120%; pointer-events: none; z-index: -1; filter: blur(70px); }
.cuby-blobs span { position: absolute; border-radius: 50%; opacity: .55; animation: cuby-float 18s ease-in-out infinite alternate; }
.cuby-blobs span:nth-child(1) { width: 38vw; height: 38vw; left: 55%; top: 0; background: radial-gradient(circle, rgba(201, 162, 39, .55), transparent 65%); }
.cuby-blobs span:nth-child(2) { width: 30vw; height: 30vw; left: -5%; top: 40%; background: radial-gradient(circle, rgba(143, 216, 255, .28), transparent 65%); animation-duration: 22s; }
.cuby-blobs span:nth-child(3) { width: 24vw; height: 24vw; left: 30%; top: 55%; background: radial-gradient(circle, rgba(231, 200, 120, .3), transparent 65%); animation-duration: 26s; }
@keyframes cuby-float {
	0% { transform: translate3d(0, 0, 0) scale(1); }
	50% { transform: translate3d(4vw, -3vh, 0) scale(1.12); }
	100% { transform: translate3d(-3vw, 4vh, 0) scale(.95); }
}

.cuby-page-hero { padding-top: clamp(8rem, 16vh, 11rem) !important; }
.cuby-main .wp-block-post-content > :first-child:not(.cuby-hero):not(.cuby-section):not(.alignfull) { margin-top: calc(var(--cuby-header-h) + 2rem); }
.cuby-main .wp-block-post-content > .cuby-section:first-child:not(.cuby-trabajos-hero) { padding-top: calc(var(--cuby-header-h) + 3rem) !important; }
.cuby-main .wp-block-post-content > * + .alignfull { margin-block-start: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.cuby-main .wp-block-post-content.alignfull { margin-top: 0; }

/* ---------- Hero 3D ---------- */

.cuby-hero {
	min-height: 100svh;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.cuby-hero3d {
	position: absolute !important;
	inset: 0 0 0 30%;
	max-width: none !important;
	margin: 0 !important;
	z-index: 0;
	cursor: grab;
	opacity: 0;
	transition: opacity 1.2s ease .2s;
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 22%);
	mask-image: linear-gradient(90deg, transparent 0%, #000 22%);
}
.cuby-hero3d.is-ready { opacity: 1; }
.cuby-hero3d.is-dragging { cursor: grabbing; }
.cuby-hero3d canvas { width: 100% !important; height: 100% !important; display: block; }
.cuby-hero3d__hint {
	position: absolute;
	right: clamp(1rem, 4vw, 3rem);
	bottom: 9.5rem;
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cuby-steel);
	display: flex;
	align-items: center;
	gap: .6rem;
	pointer-events: none;
}
.cuby-hero3d__hint::before { content: "⟲"; color: var(--cuby-gold); font-size: 1.2rem; animation: cuby-wiggle 2.4s ease-in-out infinite; }
@keyframes cuby-wiggle { 50% { transform: rotate(-60deg); } }

.cuby-hero__content { position: relative; z-index: 2; max-width: 660px !important; margin-left: max(0px, calc((100% - 1240px) / 2)) !important; pointer-events: none; }
.cuby-hero__content > * { pointer-events: auto; }
.cuby-hero__title { margin-top: .6rem !important; }
.cuby-hero__lead { color: #d8dadc; max-width: 560px; }

.cuby-stats {
	position: relative;
	z-index: 2;
	margin-top: var(--wp--preset--spacing--50) !important;
	padding: 1.25rem 1.75rem;
	gap: 1rem !important;
	border-radius: var(--cuby-r-lg);
	background: linear-gradient(135deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .015));
	border: 1px solid var(--cuby-line);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
}
.cuby-stats .wp-block-column + .wp-block-column { border-left: 1px solid var(--cuby-line); padding-left: 1.25rem; }
.cuby-stats p { margin: 0; }
.cuby-counter {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.8rem, 3.2vw, 2.6rem);
	font-weight: 700;
	line-height: 1.1;
	background: linear-gradient(180deg, #fff 10%, var(--cuby-gold-l) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-variant-numeric: tabular-nums;
}

@media (max-width: 781px) {
	.cuby-stats { display: grid !important; grid-template-columns: 1fr 1fr; padding: 1rem 1.25rem; order: 3; margin-top: 1rem !important; }
	.cuby-stats .wp-block-column + .wp-block-column { border-left: 0; padding-left: 0; }
}

/* ---------- Tarjetas (librería de estilos de bloque) ---------- */

.is-style-cuby-card3d,
.is-style-cuby-glass,
.is-style-cuby-gold-border {
	position: relative;
	border-radius: var(--cuby-r-lg);
	padding: clamp(1.25rem, 2.5vw, 2rem);
	transform-style: preserve-3d;
	transition: transform .6s var(--cuby-ease), box-shadow .6s var(--cuby-ease), border-color .4s;
}
.is-style-cuby-card3d {
	background: linear-gradient(160deg, rgba(255, 255, 255, .075) 0%, rgba(255, 255, 255, .02) 60%), var(--cuby-ink-2);
	border: 1px solid var(--cuby-line);
	box-shadow: 0 30px 60px -40px rgba(0, 0, 0, .9);
}
.is-style-cuby-card3d::before,
.is-style-cuby-glass::before,
.is-style-cuby-gold-border::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), rgba(201, 162, 39, .18), transparent 45%);
	opacity: 0;
	transition: opacity .5s;
	pointer-events: none;
}
.is-style-cuby-card3d:hover::before,
.is-style-cuby-glass:hover::before,
.is-style-cuby-gold-border:hover::after { opacity: 1; }
.is-style-cuby-card3d:hover { border-color: rgba(201, 162, 39, .45); box-shadow: 0 40px 80px -40px rgba(201, 162, 39, .45); }
.is-style-cuby-card3d > * { transform: translateZ(30px); }

.is-style-cuby-glass {
	background: linear-gradient(135deg, rgba(255, 255, 255, .09), rgba(255, 255, 255, .02));
	border: 1px solid rgba(255, 255, 255, .14);
	-webkit-backdrop-filter: blur(16px) saturate(140%);
	backdrop-filter: blur(16px) saturate(140%);
}
.is-style-cuby-glass:hover { transform: translateY(-6px); border-color: rgba(201, 162, 39, .45); }

.is-style-cuby-gold-border { background: var(--cuby-ink-2); }
.is-style-cuby-gold-border::before {
	content: "";
	position: absolute;
	inset: 0;
	padding: 1px;
	border-radius: inherit;
	background: conic-gradient(from var(--cuby-ang), rgba(201, 162, 39, .1), var(--cuby-gold) 20%, rgba(201, 162, 39, .1) 40%, rgba(143, 216, 255, .5) 60%, rgba(201, 162, 39, .1) 80%);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	animation: cuby-rotate 6s linear infinite;
	pointer-events: none;
}
.is-style-cuby-gold-border:hover { transform: translateY(-6px); box-shadow: 0 30px 70px -30px rgba(201, 162, 39, .5); }
@keyframes cuby-rotate { to { --cuby-ang: 360deg; } }

.cuby-product { padding: .75rem .75rem 1.5rem !important; }
.cuby-product > :not(.cuby-product__media) { padding-inline: .75rem; }
.cuby-product__media { margin: 0 0 1rem !important; border-radius: calc(var(--cuby-r-lg) - 8px); overflow: hidden; aspect-ratio: 4 / 3; }
.cuby-product__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--cuby-ease), filter .6s; filter: saturate(.9); }
.cuby-product:hover .cuby-product__media img { transform: scale(1.08); filter: saturate(1.1); }
.cuby-product h3 { margin-top: .25rem; }

.cuby-icon,
.cuby-step__num {
	font-family: var(--wp--preset--font-family--display);
	font-size: 2.6rem;
	font-weight: 800;
	line-height: 1;
	margin: 0 0 .75rem;
	color: transparent;
	-webkit-text-stroke: 1px rgba(201, 162, 39, .8);
	transition: color .5s, -webkit-text-stroke-color .5s;
}
.is-style-cuby-card3d:hover .cuby-icon,
.cuby-step:hover .cuby-step__num { color: var(--cuby-gold); }

.cuby-model__tag {
	display: inline-block;
	margin: 0;
	padding: .3rem .7rem;
	border-radius: 999px;
	background: rgba(201, 162, 39, .14);
	color: var(--cuby-gold-l);
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.wp-block-image.is-style-cuby-tilt img,
.wp-block-image.is-style-cuby-frame img { border-radius: var(--cuby-r-lg); box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .9); }
.wp-block-image.is-style-cuby-tilt { transform-style: preserve-3d; border-radius: var(--cuby-r-lg); overflow: hidden; }
.wp-block-image.is-style-cuby-frame { padding: 8px; border-radius: calc(var(--cuby-r-lg) + 8px); background: linear-gradient(135deg, var(--cuby-gold), rgba(201, 162, 39, .1) 40%, var(--cuby-gold-l)); }

.cuby-checklist { list-style: none; padding: 0; display: grid; gap: .6rem; }
.cuby-checklist li { display: flex; gap: .75rem; align-items: flex-start; }
.cuby-checklist li::before {
	content: "";
	flex: 0 0 22px;
	height: 22px;
	margin-top: .15rem;
	border-radius: 50%;
	background: var(--cuby-gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%230b0b0d' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat;
	box-shadow: 0 0 0 4px rgba(201, 162, 39, .15);
}

.cuby-services { gap: 1.25rem !important; }

/* ---------- Marquesina de clientes ---------- */

.cuby-marquee {
	display: flex;
	gap: 1rem;
	width: max-content;
	list-style: none;
	padding: 0;
	margin: var(--wp--preset--spacing--40) 0 !important;
	animation: cuby-marquee 40s linear infinite;
}
.cuby-marquee:hover { animation-play-state: paused; }
.cuby-marquee li {
	white-space: nowrap;
	padding: .7rem 1.3rem;
	border-radius: 999px;
	border: 1px solid var(--cuby-line);
	background: rgba(255, 255, 255, .04);
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--sm);
	transition: border-color .3s, color .3s;
}
.cuby-marquee li:hover { border-color: var(--cuby-gold); color: var(--cuby-gold-l); }
#proyectos { --mask: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
#proyectos .cuby-marquee { -webkit-mask-image: var(--mask); mask-image: var(--mask); max-width: none !important; }
@keyframes cuby-marquee { to { transform: translateX(-50%); } }

.cuby-countries span {
	display: inline-block;
	margin: .2rem;
	padding: .25rem .7rem;
	border-radius: 999px;
	background: rgba(201, 162, 39, .12);
	color: var(--cuby-gold-l);
	font-weight: 600;
}

/* ---------- Compromiso ---------- */

.cuby-eco h2 { color: var(--cuby-ink); }
.cuby-eco .is-style-cuby-eyebrow { color: #8a6a12; }
.cuby-eco__seal img { animation: cuby-bob 6s ease-in-out infinite; filter: drop-shadow(0 25px 30px rgba(138, 106, 18, .35)); }
@keyframes cuby-bob { 50% { transform: translateY(-12px) rotate(4deg); } }

/* ---------- FAQ ---------- */

.cuby-faq .wp-block-details { border-bottom: 1px solid var(--cuby-line); padding: 1.15rem 0; }
.cuby-faq .wp-block-details summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	gap: 1.5rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1rem, 1.4vw, 1.15rem);
	font-weight: 500;
	transition: color .3s;
}
.cuby-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.cuby-faq .wp-block-details summary::after {
	content: "+";
	flex: 0 0 34px;
	height: 34px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	border: 1px solid rgba(201, 162, 39, .5);
	color: var(--cuby-gold);
	font-family: var(--wp--preset--font-family--body);
	transition: transform .5s var(--cuby-ease), background .3s, color .3s;
}
.cuby-faq .wp-block-details[open] summary::after { transform: rotate(135deg); background: var(--cuby-gold); color: var(--cuby-ink); }
.cuby-faq .wp-block-details summary:hover { color: var(--cuby-gold-l); }
.cuby-faq .wp-block-details[open] > :not(summary) { animation: cuby-drop .5s var(--cuby-ease); }
@keyframes cuby-drop { from { opacity: 0; transform: translateY(-8px); } }

/* ---------- Contacto ---------- */

.cuby-contact-list { list-style: none; padding: 0; display: grid; gap: 1rem; }
.cuby-contact-list li { display: grid; gap: .1rem; padding-left: 1rem; border-left: 2px solid var(--cuby-gold); }
.cuby-contact-list strong { font-size: var(--wp--preset--font-size--xs); text-transform: uppercase; letter-spacing: .14em; color: var(--cuby-gold-l); }

/* ---------- Pie ---------- */

.cuby-footer__claim { font-size: var(--wp--preset--font-size--2xl) !important; }
.cuby-footer__sep { margin-block: var(--wp--preset--spacing--50) !important; opacity: .5; }
.cuby-footer__list { list-style: none; padding: 0; font-size: var(--wp--preset--font-size--sm); display: grid; gap: .4rem; }
.cuby-footer__list a,
.cuby-footer a { color: var(--cuby-steel); transition: color .3s; }
.cuby-footer a:hover { color: var(--cuby-gold-l); }
.cuby-footer__legal { margin-top: var(--wp--preset--spacing--40) !important; opacity: .7; }
.cuby-footer__legal-links { margin-top: .5rem !important; opacity: .85; }
.cuby-footer__legal-links a { text-decoration: underline; text-underline-offset: 2px; }

/* ---------- WhatsApp flotante ---------- */

.cuby-wa {
	position: fixed;
	right: calc(1rem + env(safe-area-inset-right)); /* respeta el notch / barra inferior del iPhone */
	bottom: calc(1rem + env(safe-area-inset-bottom));
	z-index: 90;
	width: 58px;
	height: 58px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: #25d366;
	color: #fff;
	box-shadow: 0 12px 30px -8px rgba(37, 211, 102, .6);
	transition: transform .4s var(--cuby-ease);
}
.cuby-wa::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	border: 2px solid #25d366;
	animation: cuby-ping 2.4s var(--cuby-ease) infinite;
}
.cuby-wa:hover { transform: scale(1.1) rotate(-8deg); color: #fff; }
@keyframes cuby-ping { 0% { transform: scale(1); opacity: .8; } 100% { transform: scale(1.7); opacity: 0; } }

/* ==========================================================================
   Trabajos realizados · viñetas 3D
   ========================================================================== */

.cuby-tg { position: relative; margin-block: var(--wp--preset--spacing--40); }
.cuby-tg__empty { text-align: center; color: var(--cuby-steel); padding: 2rem; border: 1px dashed var(--cuby-line); border-radius: var(--cuby-r-md); }

.cuby-tg__filters { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin-bottom: var(--wp--preset--spacing--40); }
.cuby-tg__filters button {
	font: 600 var(--wp--preset--font-size--sm) / 1 var(--wp--preset--font-family--body);
	padding: .7rem 1.2rem;
	border-radius: 999px;
	border: 1px solid var(--cuby-line);
	background: rgba(255, 255, 255, .04);
	color: var(--cuby-paper);
	cursor: pointer;
	transition: all .35s var(--cuby-ease);
}
.cuby-tg__filters button:hover { border-color: var(--cuby-gold); transform: translateY(-2px); }
.cuby-tg__filters button.is-active { background: var(--cuby-gold); border-color: var(--cuby-gold); color: var(--cuby-ink); box-shadow: 0 10px 30px -10px rgba(201, 162, 39, .7); }

.cuby-tg__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr));
	gap: clamp(1.25rem, 2.5vw, 2rem);
	perspective: 1400px;
}
.cuby-tg__item { display: flex; flex-direction: column; gap: .6rem; }
.cuby-tg__item[hidden] { display: none; }
.cuby-tg--single .cuby-tg__grid { grid-template-columns: minmax(0, 340px); justify-content: start; }

.cuby-tg__link { font-size: var(--wp--preset--font-size--xs); color: var(--cuby-steel); text-align: center; letter-spacing: .04em; }
.cuby-tg__link:hover { color: var(--cuby-gold-l); }

.cuby-tcard {
	--lift: 0px;
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-end;
	width: 100%;
	aspect-ratio: 4 / 5;
	padding: 1.25rem;
	border: 0;
	border-radius: var(--cuby-r-lg);
	color: var(--cuby-paper);
	font: inherit;
	text-align: center;
	cursor: pointer;
	background:
		radial-gradient(120% 70% at 50% 0%, rgba(201, 162, 39, .22), transparent 60%),
		linear-gradient(165deg, #1f2026 0%, #121216 70%);
	box-shadow: 0 40px 70px -45px rgba(0, 0, 0, 1), inset 0 1px 0 rgba(255, 255, 255, .08);
	transform-style: preserve-3d;
	transition: box-shadow .6s var(--cuby-ease), transform .6s var(--cuby-ease);
	animation: cuby-card-float 7s ease-in-out infinite;
	animation-delay: calc(var(--i, 0) * -1.3s);
}
/* Se anima "translate" (no "transform") para no pelear con la inclinación 3D ni con GSAP. */
@keyframes cuby-card-float { 50% { translate: 0 -10px; } }
.cuby-tcard:hover,
.cuby-tcard:focus-visible { animation-play-state: paused; box-shadow: 0 50px 90px -40px rgba(201, 162, 39, .55), inset 0 1px 0 rgba(255, 255, 255, .12); }

/* Borde dorado giratorio */
.cuby-tcard__ring {
	position: absolute;
	inset: 0;
	padding: 1.5px;
	border-radius: inherit;
	background: conic-gradient(from var(--cuby-ang), transparent 0 55%, var(--cuby-gold) 70%, #fff2c2 75%, var(--cuby-gold) 80%, transparent 95%);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	animation: cuby-rotate 5s linear infinite;
	opacity: .55;
	transition: opacity .4s;
	pointer-events: none;
}
.cuby-tcard:hover .cuby-tcard__ring { opacity: 1; }
.cuby-tcard__glow {
	position: absolute;
	inset: 18% 18% 40%;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(201, 162, 39, .45), transparent 70%);
	filter: blur(20px);
	transform: translateZ(10px);
	transition: transform .6s var(--cuby-ease), opacity .6s;
	opacity: .6;
	pointer-events: none;
}
.cuby-tcard:hover .cuby-tcard__glow { opacity: 1; transform: translateZ(10px) scale(1.25); }

/* Fotos en abanico detrás del logo (adelanto de la galería) */
.cuby-tcard__stack { position: absolute; left: 50%; top: 34%; width: 48%; aspect-ratio: 4 / 3; transform-style: preserve-3d; pointer-events: none; }
.cuby-tcard__stack img,
.cuby-tcard__stack .cuby-tcard__stack-video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 12px;
	border: 2px solid rgba(255, 255, 255, .85);
	box-shadow: 0 20px 30px -15px rgba(0, 0, 0, .8);
	opacity: 0;
	transform: translate(-50%, -50%) translateZ(5px) scale(.6);
	transition: transform .8s var(--cuby-ease), opacity .5s;
	transition-delay: calc(var(--k) * 60ms);
	overflow: hidden;
}
.cuby-tcard__stack-video video { width: 100%; height: 100%; object-fit: cover; display: block; }
.cuby-tcard__play {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}
.cuby-tcard__play::before {
	content: "";
	width: 0;
	height: 0;
	margin-left: 3px;
	border-style: solid;
	border-width: 7px 0 7px 12px;
	border-color: transparent transparent transparent #fff;
	filter: drop-shadow(0 2px 4px rgba(0, 0, 0, .6));
}
.cuby-tcard:hover .cuby-tcard__stack img,
.cuby-tcard:focus-visible .cuby-tcard__stack img,
.cuby-tcard:hover .cuby-tcard__stack .cuby-tcard__stack-video,
.cuby-tcard:focus-visible .cuby-tcard__stack .cuby-tcard__stack-video { opacity: 1; }
.cuby-tcard:hover .cuby-tcard__stack img:nth-child(1),
.cuby-tcard:hover .cuby-tcard__stack-video:nth-child(1) { transform: translate(-95%, -70%) translateZ(20px) rotate(-14deg) scale(.82); }
.cuby-tcard:hover .cuby-tcard__stack img:nth-child(2),
.cuby-tcard:hover .cuby-tcard__stack-video:nth-child(2) { transform: translate(-50%, -88%) translateZ(30px) rotate(2deg) scale(.86); }
.cuby-tcard:hover .cuby-tcard__stack img:nth-child(3),
.cuby-tcard:hover .cuby-tcard__stack-video:nth-child(3) { transform: translate(-5%, -70%) translateZ(20px) rotate(14deg) scale(.82); }

/* Viñeta del logo: en el flujo de la tarjeta (centrada en el hueco de arriba), nunca encima del nombre. */
.cuby-tcard__logo {
	position: relative;
	flex: none;
	margin: auto 0;
	width: 36%;
	aspect-ratio: 1;
	display: grid;
	place-items: center;
	padding: 14%;
	border-radius: 28%;
	background: linear-gradient(145deg, rgba(255, 255, 255, .16), rgba(255, 255, 255, .03));
	border: 1px solid rgba(255, 255, 255, .18);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	box-shadow: 0 30px 50px -20px rgba(0, 0, 0, .8), inset 0 1px 0 rgba(255, 255, 255, .25);
	transform: translateZ(30px);
	transition: transform .8s var(--cuby-ease), box-shadow .6s;
}
.cuby-tcard:hover .cuby-tcard__logo { transform: translateZ(50px) scale(.92) rotateY(360deg); box-shadow: 0 40px 60px -20px rgba(201, 162, 39, .5); }
.cuby-tcard__logo img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 6px 10px rgba(0, 0, 0, .4)); }
.cuby-tcard__mono {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(1.2rem, 2vw, 1.5rem);
	font-weight: 800;
	background: linear-gradient(160deg, #fff4cc, var(--cuby-gold) 60%, #8a6a12);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}

.cuby-tcard__body { position: relative; display: grid; gap: .25rem; width: 100%; transform: translateZ(20px); }
.cuby-tcard__title { font-family: var(--wp--preset--font-family--display); font-size: clamp(1rem, 1.4vw, 1.15rem); font-weight: 600; line-height: 1.2; }
.cuby-tcard__meta { font-size: var(--wp--preset--font-size--xs); color: var(--cuby-steel); }
.cuby-tcard__cta {
	justify-self: center;
	margin-top: .5rem;
	padding: .4rem .85rem;
	border-radius: 999px;
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	color: var(--cuby-ink);
	background: var(--cuby-gold);
	transform: translateY(6px);
	opacity: .85;
	transition: transform .5s var(--cuby-ease), opacity .4s, box-shadow .4s;
}
.cuby-tcard:hover .cuby-tcard__cta { transform: translateY(0); opacity: 1; box-shadow: 0 10px 24px -8px rgba(201, 162, 39, .8); }
.cuby-tcard[data-empty] .cuby-tcard__cta { background: rgba(255, 255, 255, .1); color: var(--cuby-steel); }
.cuby-tcard__badge {
	position: absolute;
	top: .9rem;
	left: .9rem;
	padding: .25rem .6rem;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 700;
	background: #ff9f43;
	color: #1a1000;
	transform: translateZ(50px);
}
.cuby-tcard .js-tilt-glare { border-radius: var(--cuby-r-lg); }

/* ==========================================================================
   Galería del trabajo: baraja de cartas (modal)
   ========================================================================== */

.cuby-gm {
	position: fixed;
	inset: 0;
	width: 100%;
	max-width: none;
	height: 100%;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--cuby-paper);
	overflow: hidden;
	font-family: var(--wp--preset--font-family--body);
}
.cuby-gm::backdrop { background: rgba(5, 5, 7, .7); }
.cuby-gm[open] { display: grid; grid-template-rows: auto 1fr auto; }
.cuby-gm__bg {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(60% 50% at 50% 50%, rgba(201, 162, 39, .22), transparent 70%),
		radial-gradient(50% 60% at 0% 100%, rgba(143, 216, 255, .14), transparent 70%),
		radial-gradient(40% 40% at 100% 0%, rgba(201, 162, 39, .18), transparent 70%),
		#08080a;
}
.cuby-gm__bg span {
	position: absolute;
	inset: 0;
	background-image: radial-gradient(1px 1px at 20% 30%, rgba(255, 255, 255, .7), transparent), radial-gradient(1px 1px at 70% 80%, rgba(255, 255, 255, .5), transparent), radial-gradient(1.5px 1.5px at 85% 20%, rgba(231, 200, 120, .8), transparent), radial-gradient(1px 1px at 35% 75%, rgba(255, 255, 255, .5), transparent), radial-gradient(1px 1px at 55% 15%, rgba(255, 255, 255, .6), transparent);
	background-size: 420px 420px;
	animation: cuby-stars 120s linear infinite;
	opacity: .7;
}
.cuby-gm__bg span + span { background-size: 260px 260px; animation-duration: 80s; opacity: .4; }
@keyframes cuby-stars { to { background-position: 420px 840px; } }

.cuby-gm__head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem clamp(1rem, 3vw, 2rem); position: relative; z-index: 5; }
.cuby-gm__brand { display: flex; align-items: center; gap: .9rem; min-width: 0; }
.cuby-gm__logo {
	flex: 0 0 52px;
	height: 52px;
	display: grid;
	place-items: center;
	padding: 8px;
	border-radius: 14px;
	background: rgba(255, 255, 255, .1);
	border: 1px solid rgba(255, 255, 255, .16);
	font-family: var(--wp--preset--font-family--display);
	font-weight: 800;
	color: var(--cuby-gold);
}
.cuby-gm__logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.cuby-gm__title { margin: 0; font-family: var(--wp--preset--font-family--display); font-size: clamp(1rem, 2vw, 1.35rem); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cuby-gm__meta { margin: 0; font-size: var(--wp--preset--font-size--xs); color: var(--cuby-steel); }
.cuby-gm__excerpt { margin: .35rem 0 0; max-width: 46ch; font-size: var(--wp--preset--font-size--sm); color: var(--cuby-paper); opacity: .85; }
.cuby-gm__actions { display: flex; align-items: center; gap: .75rem; }
.cuby-gm__more { font-size: var(--wp--preset--font-size--sm); font-weight: 600; padding: .6rem 1rem; border-radius: 999px; border: 1px solid rgba(201, 162, 39, .5); color: var(--cuby-gold-l); }
.cuby-gm__more:hover { background: rgba(201, 162, 39, .12); }
.cuby-gm__more[hidden] { display: none; }
.cuby-gm__close,
.cuby-gm__lbclose,
.cuby-gm__nav {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, .2);
	background: rgba(255, 255, 255, .06);
	color: var(--cuby-paper);
	cursor: pointer;
	transition: transform .4s var(--cuby-ease), background .3s, border-color .3s;
}
.cuby-gm__close:hover,
.cuby-gm__lbclose:hover,
.cuby-gm__nav:hover { background: var(--cuby-gold); border-color: var(--cuby-gold); color: var(--cuby-ink); transform: rotate(90deg); }
.cuby-gm__nav:hover { transform: scale(1.08); }

/* Baraja de cartas: mazo con la foto o el vídeo actual delante, abanico de miniaturas y memoria al lado. */
.cuby-gm__body {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(280px, 380px);
	gap: clamp(1rem, 3vw, 2.5rem);
	padding: 0 clamp(1rem, 3vw, 2.5rem);
	min-height: 0;
}
.cuby-gm__deckwrap { display: grid; grid-template-rows: 1fr auto auto; gap: .9rem; min-width: 0; min-height: 0; }
.cuby-gm__deck {
	position: relative;
	min-height: 0;
	perspective: 1400px;
	touch-action: pan-y;
	user-select: none;
	-webkit-user-select: none;
}
.cuby-gm__card {
	--x: 0px; --y: 0px; --r: 0deg; --s: 1; --drag: 0px; --dragr: 0deg;
	position: absolute;
	inset: 4% 12%;
	transform: translate(calc(var(--x) + var(--drag)), var(--y)) rotate(calc(var(--r) + var(--dragr))) scale(var(--s));
	transition: transform .55s var(--cuby-ease), opacity .4s;
	pointer-events: none;
}
.cuby-gm__card.is-front { pointer-events: auto; cursor: grab; }
.cuby-gm__card.is-dragging { transition: none; cursor: grabbing; }
.cuby-gm__card.is-hidden { opacity: 0; }
.cuby-gm__cardin {
	width: 100%;
	height: 100%;
	border-radius: 18px;
	overflow: hidden;
	background: #0d0d10;
	border: 3px solid #f4f1ea;
	box-shadow: 0 30px 60px -25px rgba(0, 0, 0, .95), 0 0 0 1px rgba(201, 162, 39, .25);
}
.cuby-gm__card:not(.is-front) .cuby-gm__cardin { filter: brightness(.55) saturate(.8); }
.cuby-gm__card.is-front .cuby-gm__cardin { animation: cuby-card-sway 6s ease-in-out infinite; box-shadow: 0 40px 80px -30px rgba(0, 0, 0, 1), 0 0 0 2px var(--cuby-gold), 0 0 50px -10px rgba(201, 162, 39, .55); }
@keyframes cuby-card-sway { 0%, 100% { translate: 0 0; rotate: -.6deg; } 50% { translate: 0 -8px; rotate: .6deg; } }
.cuby-gm__card.is-dragging .cuby-gm__cardin { animation-play-state: paused; }
.cuby-gm__cardin img,
.cuby-gm__cardin video { width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; }
.cuby-gm__cardin .cuby-tcard__play { transform: scale(1.6); }
.cuby-gm__card.is-front .cuby-tcard__play { opacity: 0; }

.cuby-gm__deckctl { display: flex; align-items: center; justify-content: center; gap: 1rem; }
.cuby-gm__deckctl[hidden] { display: none; }
.cuby-gm__count { min-width: 4.5ch; text-align: center; font-family: var(--wp--preset--font-family--display); font-weight: 600; color: var(--cuby-gold-l); }

/* Abanico de miniaturas: cartas solapadas que se levantan al pasar por encima; la activa, arriba. */
.cuby-gm__fan {
	display: flex;
	justify-content: safe center;
	padding: 1.1rem .5rem .4rem;
	overflow-x: auto;
	scrollbar-width: thin;
}
.cuby-gm__thumb {
	position: relative;
	flex: 0 0 auto;
	width: 66px;
	height: 84px;
	margin-left: -14px;
	padding: 0;
	border: 2px solid #f4f1ea;
	border-radius: 9px;
	overflow: hidden;
	background: #111;
	cursor: pointer;
	transform: rotate(calc((var(--i) - 3) * .8deg));
	box-shadow: 0 10px 18px -8px rgba(0, 0, 0, .9);
	transition: transform .3s var(--cuby-ease), border-color .3s, box-shadow .3s;
}
.cuby-gm__thumb:first-child { margin-left: 0; }
.cuby-gm__thumb img,
.cuby-gm__thumb video { width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; }
.cuby-gm__thumb .cuby-tcard__play { transform: scale(.7); }
.cuby-gm__thumb:hover,
.cuby-gm__thumb:focus-visible { transform: translateY(-12px) rotate(0deg); z-index: 2; outline: none; }
.cuby-gm__thumb.is-active { transform: translateY(-16px) rotate(0deg); z-index: 3; border-color: var(--cuby-gold); box-shadow: 0 0 0 2px var(--cuby-gold), 0 14px 26px -10px rgba(201, 162, 39, .7); }

/* Memoria del proyecto */
.cuby-gm__memo {
	align-self: center;
	max-height: 100%;
	overflow-y: auto;
	padding: clamp(1.1rem, 2.2vw, 1.75rem);
	border-radius: var(--cuby-r-lg);
	background: linear-gradient(160deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .02));
	border: 1px solid rgba(201, 162, 39, .3);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}
.cuby-gm__memo-eyebrow { margin: 0 0 .5rem; font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--cuby-gold-l); }
.cuby-gm__memo-title { margin: 0; font-family: var(--wp--preset--font-family--display); font-size: clamp(1.15rem, 2vw, 1.5rem); font-weight: 700; line-height: 1.2; }
.cuby-gm__memo-meta { margin: .4rem 0 0; font-size: var(--wp--preset--font-size--sm); color: var(--cuby-steel); }
.cuby-gm__memo-text { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid rgba(255, 255, 255, .12); font-size: var(--wp--preset--font-size--sm); line-height: 1.65; color: rgba(244, 241, 234, .9); }
.cuby-gm__memo:not(.has-text) .cuby-gm__memo-text { display: none; }
.cuby-gm__memo-text p { margin: 0 0 .8rem; }
.cuby-gm__memo-text p:last-child { margin-bottom: 0; }
.cuby-gm__memo-cta { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.25rem; }
.cuby-gm__quote { font-size: var(--wp--preset--font-size--sm); font-weight: 700; padding: .65rem 1.15rem; border-radius: 999px; background: var(--cuby-gold); color: var(--cuby-ink); text-decoration: none; transition: transform .3s var(--cuby-ease), box-shadow .3s; }
.cuby-gm__quote:hover { transform: translateY(-2px); box-shadow: 0 12px 24px -10px rgba(201, 162, 39, .8); }
.cuby-gm__quote[hidden] { display: none; }

/* Móvil y tablet vertical: todo en columna y con scroll (mazo → miniaturas → memoria), cabecera fija arriba. */
@media (max-width: 900px) {
	.cuby-gm[open] { display: block; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; }
	.cuby-gm__bg { position: fixed; }
	.cuby-gm__head { position: sticky; top: 0; background: linear-gradient(180deg, rgba(10, 10, 12, .92), rgba(10, 10, 12, .6)); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
	.cuby-gm__body { display: flex; flex-direction: column; gap: 1.25rem; padding-bottom: 1rem; overflow-x: clip; }
	.cuby-gm__deckwrap { display: flex; flex-direction: column; gap: .75rem; }
	.cuby-gm__deck { height: min(56vh, 480px); flex: none; }
	.cuby-gm__card { inset: 4% 8%; }
	.cuby-gm__memo { align-self: stretch; max-height: none; overflow: visible; }
	.cuby-gm__hint { padding-left: 1.25rem; padding-right: 1.25rem; }
}

.cuby-gm__hint { margin: 0; padding: .9rem 1rem 1.25rem; text-align: center; font-size: var(--wp--preset--font-size--xs); letter-spacing: .1em; text-transform: uppercase; color: var(--cuby-steel); }

.cuby-gm__lb {
	position: absolute;
	inset: 0;
	z-index: 10;
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 1rem;
	padding: clamp(1rem, 4vw, 3rem);
	background: rgba(5, 5, 7, .88);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	perspective: 1200px;
}
.cuby-gm__lb[hidden] { display: none; }
.cuby-gm__lb figure { margin: 0; display: grid; justify-items: center; gap: .75rem; min-width: 0; }
.cuby-gm__lb img,
.cuby-gm__lb video { max-width: 100%; max-height: 78vh; object-fit: contain; border-radius: 14px; box-shadow: 0 40px 80px -30px rgba(0, 0, 0, 1), 0 0 0 1px rgba(201, 162, 39, .4); }
.cuby-gm__lb figcaption { font-size: var(--wp--preset--font-size--sm); color: var(--cuby-steel); }
.cuby-gm__lbclose { position: absolute; top: 1rem; right: 1rem; }
@media (max-width: 600px) {
	.cuby-gm__lb { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr auto; }
	.cuby-gm__lb figure { grid-column: 1 / -1; grid-row: 1; }
	.cuby-gm__nav.is-prev { grid-row: 2; justify-self: end; }
	.cuby-gm__nav.is-next { grid-row: 2; justify-self: start; }
}

/* ---------- Editor ---------- */

.editor-styles-wrapper .cuby-hero3d { opacity: .25; background: radial-gradient(circle at 70% 50%, rgba(201, 162, 39, .25), transparent 60%); }
.editor-styles-wrapper .cuby-header { position: relative !important; }
.editor-styles-wrapper .cuby-reveal,
.editor-styles-wrapper .cuby-split { opacity: 1 !important; transform: none !important; }

/* ==========================================================================
   Adaptación a móvil y tablet
   ========================================================================== */

/* Títulos largos (francés, italiano…): cortan con guion en lugar de desbordar. */
h1, h2, h3, .cuby-tcard__title { overflow-wrap: break-word; hyphens: auto; -webkit-hyphens: auto; }

/* Menú: en tablet (600–1100 px) también se usa el menú desplegable a pantalla completa,
   porque los enlaces, el selector de idioma y el botón no caben en una línea. */
@media (min-width: 600px) and (max-width: 1100px) {
	.cuby-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.cuby-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none !important; }
}
/* El efecto cristal de la cabecera no debe encerrar el menú abierto: se quita mientras está abierto. */
html.has-modal-open .cuby-header,
.cuby-header:has(.is-menu-open) {
	-webkit-backdrop-filter: none !important;
	backdrop-filter: none !important;
	transform: none !important;
}
.cuby-header .wp-block-navigation__responsive-container.is-menu-open {
	--navigation-layout-justification-setting: flex-start;
	--navigation-layout-justify: flex-start;
	padding-top: calc(1.25rem + env(safe-area-inset-top)) !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { gap: 1.1rem; align-items: flex-start !important; }
.cuby-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.cuby-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { align-items: flex-start !important; }
.cuby-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { padding-left: 1rem !important; border-left: 1px solid rgba(201, 162, 39, .35) !important; margin-top: .4rem; }
.cuby-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { color: var(--cuby-steel) !important; }
.wp-block-navigation__responsive-container.is-menu-open .cuby-nav__featured > .wp-block-navigation-item__content { align-self: flex-start; }
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close { min-width: 44px; min-height: 44px; align-items: center; justify-content: center; }
@media (max-width: 480px) {
	.cuby-logo img { width: 118px !important; }
	.cuby-lang summary { padding: .4rem .6rem; }
}

/* Hero en tablet horizontal: el texto ocupa menos para no tapar el modelo 3D. */
@media (min-width: 782px) and (max-width: 1100px) {
	.cuby-hero__content { max-width: 54% !important; }
	.cuby-hero3d { inset: 0 0 0 22%; }
}

/* Hero en móvil y tablet vertical: el modelo 3D va debajo del texto, nítido y se gira con el dedo
   (deslizar en horizontal gira el modelo; en vertical, la página se desplaza con normalidad). */
@media (max-width: 781px) {
	.cuby-hero { min-height: 0; justify-content: flex-start; }
	.cuby-hero__content { order: 1; max-width: none !important; }
	.cuby-hero3d {
		position: relative !important;
		inset: auto;
		order: 2;
		width: auto !important;
		height: min(58vh, 460px);
		margin: 1.25rem calc(-1 * clamp(1rem, 4vw, 2.5rem)) 0 !important;
		opacity: 0;
		pointer-events: auto;
		touch-action: pan-y;
		-webkit-mask-image: linear-gradient(180deg, transparent 0, #000 10%, #000 85%, transparent 100%);
		mask-image: linear-gradient(180deg, transparent 0, #000 10%, #000 85%, transparent 100%);
	}
	.cuby-hero3d.is-ready { opacity: 1; }
	.cuby-hero3d__hint { display: flex; right: 50%; bottom: .6rem; transform: translateX(50%); white-space: nowrap; }
	.cuby-hero .wp-block-buttons .wp-block-button { flex: 1 1 auto; }
	.cuby-hero .wp-block-buttons .wp-block-button__link { width: 100%; text-align: center; }
}

/* Pantallas táctiles: sin "pasar el ratón", las viñetas enseñan sus fotos desde el principio. */
@media (hover: none) {
	.cuby-tcard { animation: none; }
	.cuby-tcard__ring { opacity: 1; }
	.cuby-tcard__stack img,
	.cuby-tcard__stack .cuby-tcard__stack-video { opacity: 1; }
	.cuby-tcard__stack img:nth-child(1),
	.cuby-tcard__stack-video:nth-child(1) { transform: translate(-95%, -70%) translateZ(20px) rotate(-14deg) scale(.82); }
	.cuby-tcard__stack img:nth-child(2),
	.cuby-tcard__stack-video:nth-child(2) { transform: translate(-50%, -88%) translateZ(30px) rotate(2deg) scale(.86); }
	.cuby-tcard__stack img:nth-child(3),
	.cuby-tcard__stack-video:nth-child(3) { transform: translate(-5%, -70%) translateZ(20px) rotate(14deg) scale(.82); }
	.cuby-tcard__logo { transform: translateZ(50px) scale(.92); }
	.cuby-tcard__cta { transform: none; opacity: 1; }
	.is-style-cuby-card3d:hover,
	.is-style-cuby-glass:hover,
	.is-style-cuby-gold-border:hover { transform: none; }
}

/* Viñetas de trabajos: dos por fila en móviles grandes. */
@media (min-width: 420px) and (max-width: 640px) {
	.cuby-tg__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; }
	.cuby-tcard { padding: .8rem; border-radius: 20px; }
	.cuby-tcard__title { font-size: .9rem; }
	.cuby-tcard__cta { font-size: 10px; padding: .35rem .6rem; }
}

/* Galería del trabajo en móvil. */
@media (max-width: 600px) {
	.cuby-gm__head { padding: .75rem 1rem; }
	.cuby-gm__logo { flex-basis: 42px; height: 42px; }
	.cuby-gm__hint { font-size: 10px; letter-spacing: .06em; padding-bottom: calc(1rem + env(safe-area-inset-bottom)); }
	.cuby-gm__close,
	.cuby-gm__lbclose,
	.cuby-gm__nav { width: 44px; height: 44px; }
}

/* Contadores, FAQ y pie en móvil. */
@media (max-width: 600px) {
	.cuby-counter { font-size: 1.7rem; }
	.cuby-faq .wp-block-details summary { font-size: 1rem; gap: 1rem; }
	.cuby-footer__claim { font-size: var(--wp--preset--font-size--xl) !important; }
	.cuby-marquee li { font-size: .8rem; padding: .55rem 1rem; }
	.is-style-cuby-card3d, .is-style-cuby-glass, .is-style-cuby-gold-border { padding: 1.25rem; }
}

@media (max-width: 600px) { .cuby-wa { width: 52px; height: 52px; } }

/* ---------- Editor de viñetas (solo en el editor de WordPress) ---------- */

.cuby-tg--edit .cuby-tg__grid { perspective: none; }
.cuby-tedit__hint { text-align: center; font-size: 13px; color: var(--cuby-steel); margin: 0 0 1rem; }
.cuby-tg__item--edit { list-style: none; }
.cuby-tg__item--edit .cuby-tcard { cursor: default; animation: none; }
.cuby-tg__item--edit.is-selected .cuby-tcard { box-shadow: 0 0 0 2px var(--cuby-gold), 0 30px 60px -30px rgba(201, 162, 39, .6); }
.cuby-tg__item--edit .cuby-tcard__title,
.cuby-tg__item--edit .cuby-tcard__meta { min-width: 8ch; }
.cuby-tedit { display: grid; gap: .6rem; padding: .75rem; border-radius: 14px; background: rgba(255, 255, 255, .04); border: 1px dashed rgba(201, 162, 39, .4); }
.cuby-tedit__actions { display: flex; flex-wrap: wrap; gap: .4rem; }
.cuby-tedit__actions .components-button { font-size: 12px; }
.cuby-tedit__actions .components-button.is-secondary { color: var(--cuby-paper); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .35); }
.cuby-tedit__actions .components-button.is-primary { background: var(--cuby-gold); color: var(--cuby-ink); }
.cuby-tedit__thumbs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(62px, 1fr)); gap: .4rem; }
.cuby-tedit__thumbs li { position: relative; aspect-ratio: 1; border-radius: 8px; overflow: hidden; background: #000; }
.cuby-tedit__thumbs img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cuby-tedit__thumb-video { position: relative; display: block; width: 100%; height: 100%; }
.cuby-tedit__thumb-video video { width: 100%; height: 100%; object-fit: cover; display: block; background: #000; }
.cuby-tedit__thumb-video .cuby-tcard__play::before { border-width: 6px 0 6px 10px; }
.cuby-tedit__tools { position: absolute; inset: auto 0 0; display: flex; justify-content: space-between; background: rgba(0, 0, 0, .7); opacity: 0; transition: opacity .2s; }
.cuby-tedit__thumbs li:hover .cuby-tedit__tools,
.cuby-tedit__thumbs li:focus-within .cuby-tedit__tools { opacity: 1; }
.cuby-tedit__tools .components-button { color: #fff; min-width: 0; padding: 2px; height: 22px; }
.cuby-tedit__tipo { margin: 0; font-size: 12px; color: var(--cuby-gold-l); }
.cuby-tg--edit .block-list-appender,
.cuby-tg--edit .block-editor-button-block-appender {
	min-height: 200px;
	border-radius: var(--cuby-r-lg);
	border: 2px dashed rgba(201, 162, 39, .55) !important;
	color: var(--cuby-gold-l) !important;
	background: rgba(201, 162, 39, .06) !important;
	box-shadow: none !important;
}

/* ---------- Configurador 3D (pádel, pickleball, multideporte y calistenia) ---------- */

.cuby-configurator { position: relative; }
.cuby-configurator__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(290px, 400px);
	gap: clamp(1.5rem, 3vw, 2.5rem);
	align-items: stretch;
}
.cuby-configurator__viewer { display: flex; flex-direction: column; gap: .9rem; min-width: 0; }
.cuby-configurator__panel { display: flex; flex-direction: column; gap: 1.1rem; }

/* Modelos de pádel, encima del visor */
.cuby-configurator__models { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.cuby-configurator__model {
	display: grid;
	gap: .15rem;
	text-align: left;
	cursor: pointer;
	padding: .6rem;
	border-radius: 14px;
	background: var(--cuby-ink-2);
	border: 1px solid var(--cuby-line);
	color: var(--cuby-paper);
	font: inherit;
	transition: border-color .3s, background .3s, transform .3s var(--cuby-ease);
}
.cuby-configurator__model:hover { border-color: rgba(201, 162, 39, .45); transform: translateY(-2px); }
.cuby-configurator__model[aria-pressed="true"] {
	border-color: var(--cuby-gold);
	background: linear-gradient(160deg, rgba(201, 162, 39, .18), rgba(201, 162, 39, .04));
}
.cuby-configurator__model-img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 10px; margin-bottom: .35rem; opacity: .8; transition: opacity .3s; }
.cuby-configurator__model[aria-pressed="true"] .cuby-configurator__model-img,
.cuby-configurator__model:hover .cuby-configurator__model-img { opacity: 1; }
.cuby-configurator__model-tag {
	display: block;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--cuby-gold-l);
	margin-bottom: .2rem;
}
.cuby-configurator__model-name { display: block; font-weight: 700; font-size: .95rem; line-height: 1.2; overflow-wrap: anywhere; hyphens: auto; }

/* Visor 3D: fondo claro arriba (sin sombra sobre la estructura) y un toque dorado abajo */
.cuby-configurator__stage {
	position: relative;
	aspect-ratio: 16 / 10;
	min-height: 340px;
	border-radius: var(--cuby-r-lg);
	background:
		radial-gradient(130% 90% at 50% 0%, rgba(235, 240, 248, .22), transparent 70%),
		radial-gradient(120% 100% at 50% 100%, rgba(201, 162, 39, .12), transparent 60%),
		#24262c;
	border: 1px solid var(--cuby-line);
	overflow: hidden;
	cursor: grab;
}
.cuby-configurator__stage.is-dragging { cursor: grabbing; }
.cuby-configurator__stage canvas { width: 100% !important; height: 100% !important; display: block; }
.cuby-configurator__hint {
	position: absolute;
	right: 1rem;
	bottom: 1rem;
	font-size: var(--wp--preset--font-size--xs);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cuby-steel);
	display: flex;
	align-items: center;
	gap: .5rem;
	pointer-events: none;
}
.cuby-configurator__hint::before { content: "⟲"; color: var(--cuby-gold); font-size: 1.1rem; }

/* Panel de colores */
.cuby-configurator__colors-label {
	margin: 0 0 .5rem;
	font-size: var(--wp--preset--font-size--xs);
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--cuby-gold-l);
}
.cuby-configurator__search {
	box-sizing: border-box;
	width: 100%;
	margin: 0 0 .6rem;
	padding: .7rem .9rem;
	border-radius: 12px;
	border: 1px solid var(--cuby-line);
	background: rgba(255, 255, 255, .05);
	color: var(--cuby-paper);
	font: inherit;
	font-size: var(--wp--preset--font-size--sm);
}
.cuby-configurator__search:focus { outline: none; border-color: var(--cuby-gold); }
.cuby-configurator__swatches { display: flex; flex-wrap: wrap; gap: .7rem; }
.cuby-configurator__swatches.is-ral { max-height: 13.5rem; overflow-y: auto; padding: .25rem .25rem .25rem 0; scrollbar-width: thin; }
.cuby-configurator__note { margin: -.4rem 0 0; font-size: var(--wp--preset--font-size--xs); color: var(--cuby-steel); opacity: .8; }

.cuby-swatch {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .35rem;
	width: 4.2rem;
	background: none;
	border: 0;
	cursor: pointer;
	color: var(--cuby-steel);
	font: inherit;
	font-size: var(--wp--preset--font-size--xs);
	text-align: center;
}
.cuby-swatch[hidden] { display: none !important; }
.cuby-swatch__chip {
	display: block;
	width: 2.6rem;
	height: 2.6rem;
	border-radius: 50%;
	background-color: var(--cuby-swatch-color, #333);
	background-image: var(--cuby-swatch-img, none);
	background-size: cover;
	background-position: center;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .25), 0 6px 14px -8px rgba(0, 0, 0, .8);
	transition: box-shadow .25s, transform .25s var(--cuby-ease);
}
.cuby-swatch:hover .cuby-swatch__chip { transform: scale(1.08); }
.cuby-swatch[aria-pressed="true"] .cuby-swatch__chip { box-shadow: 0 0 0 2px var(--cuby-ink), 0 0 0 4px var(--cuby-gold); }
.cuby-swatch__label { line-height: 1.2; }
/* Pickleball: combinación de pista / cocina / exterior en un solo chip. */
.cuby-swatch--combo .cuby-swatch__chip {
	background: radial-gradient(circle at 50% 50%, var(--c2) 0 26%, var(--c1) 27% 52%, var(--c3) 53%);
}

.cuby-configurator__summary { margin: 0; padding: .8rem 1rem; border-radius: 12px; background: rgba(201, 162, 39, .1); border: 1px solid rgba(201, 162, 39, .3); font-size: var(--wp--preset--font-size--sm); line-height: 1.5; }
.cuby-configurator__summary strong { color: var(--cuby-gold-l); }
.cuby-configurator__cta { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .25rem; }

@media (max-width: 900px) {
	.cuby-configurator__layout { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.cuby-configurator__models { gap: .4rem; }
	.cuby-configurator__model-tag { display: none; }
	.cuby-configurator__model-name { font-size: .72rem; }
	.cuby-configurator__stage { aspect-ratio: 4 / 3.4; min-height: 0; }
	.cuby-configurator__cta .wp-block-button { flex: 1 1 100%; }
	.cuby-configurator__cta .wp-block-button__link { width: 100%; text-align: center; }
}

/* ---------- Tarjetas de modelos de pádel (render + botón "Ver en 3D") ---------- */

.cuby-model { display: flex; flex-direction: column; }
.cuby-model__media { margin: -.25rem -.25rem 1rem !important; border-radius: calc(var(--cuby-r-lg) - 10px); overflow: hidden; aspect-ratio: 16 / 9; background: #111; }

.cuby-about__video { margin: -.25rem -.25rem 1rem !important; border-radius: calc(var(--cuby-r-lg) - 10px); overflow: hidden; aspect-ratio: 9 / 16; max-height: 360px; background: #111; }
.cuby-about__video video { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Sin vídeo elegido todavía: en la web no se deja un hueco negro (en el editor sale el botón para elegirlo). */
.cuby-about__video:not(:has(video[src])) { display: none; }
.editor-styles-wrapper .cuby-about__video:not(:has(video[src])) { display: block; aspect-ratio: auto; max-height: none; }
/* Quiénes somos con 4 viñetas (la de vídeo al lado de soldadura y soldadores): 4 en fila, 2×2 en tablet, 1 en móvil. */
.cuby-grid-3:has(> :nth-child(4)) { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
@media (max-width: 1100px) { .cuby-grid-3:has(> :nth-child(4)) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 600px) { .cuby-grid-3:has(> :nth-child(4)) { grid-template-columns: 1fr !important; } }
.cuby-model__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--cuby-ease); }
.cuby-model:hover .cuby-model__media img { transform: scale(1.06); }
.cuby-model__cta { margin-top: auto !important; padding-top: .75rem; }
.cuby-model__cta .wp-block-button__link { font-size: var(--wp--preset--font-size--xs); padding: .7rem 1.1rem; }

/* ---------- Banner de cookies (RGPD/LSSI: aceptar y rechazar, mismo peso) ---------- */

.cuby-cookiebar {
	position: fixed;
	left: 1rem;
	right: 1rem;
	bottom: 1rem;
	z-index: 9999;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	max-width: 980px;
	margin-inline: auto;
	padding: 1.1rem 1.3rem;
	border-radius: var(--cuby-r-lg);
	background: var(--cuby-ink-2);
	border: 1px solid var(--cuby-line);
	box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .8);
	color: var(--cuby-paper);
	opacity: 0;
	transform: translateY(16px);
	transition: opacity .4s var(--cuby-ease), transform .4s var(--cuby-ease);
}
.cuby-cookiebar.is-visible { opacity: 1; transform: translateY(0); }
.cuby-cookiebar__text { flex: 1 1 320px; }
.cuby-cookiebar__text p { margin: 0; font-size: var(--wp--preset--font-size--sm); color: var(--cuby-steel); }
.cuby-cookiebar__text a { color: var(--cuby-gold-l); text-decoration: underline; }
.cuby-cookiebar__actions { display: flex; gap: .7rem; flex: 0 0 auto; }
.cuby-cookiebar__btn {
	font: inherit;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 700;
	cursor: pointer;
	padding: .65rem 1.3rem;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, .3);
	background: transparent;
	color: var(--cuby-paper);
	transition: border-color .25s, background .25s, transform .25s var(--cuby-ease);
}
.cuby-cookiebar__btn:hover { border-color: var(--cuby-gold); transform: translateY(-2px); }
.cuby-cookiebar__btn--accept { background: var(--cuby-gold); border-color: var(--cuby-gold); color: var(--cuby-ink); }
.cuby-cookiebar__btn--accept:hover { background: var(--cuby-gold-l); border-color: var(--cuby-gold-l); }

@media (max-width: 560px) {
	.cuby-cookiebar { flex-direction: column; align-items: stretch; }
	.cuby-cookiebar__actions { justify-content: stretch; }
	.cuby-cookiebar__btn { flex: 1; text-align: center; }
}

/* ---------- Accesibilidad: reducir movimiento ---------- */

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
	.cuby-marquee { flex-wrap: wrap; width: auto; justify-content: center; }
}

/* 1.20: botón "Configura tu pista en 3D" bajo los contadores de la portada. */
.cuby-hero__config { position: relative; z-index: 2; margin-top: 1.5rem !important; }
.cuby-hero__config .wp-block-button__link {
	padding: 1.05rem 2rem 1.05rem 1.6rem;
	font-size: var(--wp--preset--font-size--sm);
	letter-spacing: .08em;
	display: inline-flex;
	align-items: center;
	gap: .7rem;
}
.cuby-hero__config .wp-block-button__link::before {
	content: "";
	width: 22px;
	height: 22px;
	flex: 0 0 22px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M12 2 3 7v10l9 5 9-5V7z'/%3E%3Cpath d='m3 7 9 5 9-5M12 12v10'/%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' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M12 2 3 7v10l9 5 9-5V7z'/%3E%3Cpath d='m3 7 9 5 9-5M12 12v10'/%3E%3C/svg%3E") center / contain no-repeat;
}
@media (max-width: 781px) {
	.cuby-hero__config { order: 4; }
	.cuby-hero__config .wp-block-button { flex: 1 1 100%; }
	.cuby-hero__config .wp-block-button__link { width: 100%; justify-content: center; }
}


/* ---------- 1.24: botón Inicio a la izquierda del menú ---------- */

.cuby-nav .cuby-nav__home .wp-block-navigation-item__content { display: inline-flex; align-items: center; gap: .4rem; }
.cuby-nav .cuby-nav__home .wp-block-navigation-item__content::before {
	content: "";
	width: 1.05em;
	height: 1.05em;
	flex: none;
	background: var(--cuby-gold);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 2 11.5h3V21h5.5v-6h3v6H19v-9.5h3z'/%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 3 2 11.5h3V21h5.5v-6h3v6H19v-9.5h3z'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .25s var(--cuby-ease);
}
.cuby-nav .cuby-nav__home .wp-block-navigation-item__content:hover::before { transform: translateY(-2px); }

/* ---------- Quiénes somos: logo de la empresa ---------- */

.cuby-about__logo { margin: 0 auto !important; max-width: 420px; }
.cuby-about__logo img { width: 100%; height: auto; filter: drop-shadow(0 24px 40px rgba(232, 88, 4, .25)); }
@media (max-width: 781px) { .cuby-about__logo { max-width: 260px; } }

/* ---------- Instagram: icono en la cabecera (pequeño) y en Contacto (grande) ---------- */

.cuby-ig {
	--ig-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4.2'/%3E%3Ccircle cx='17.4' cy='6.6' r='1.2' fill='black' stroke='none'/%3E%3C/svg%3E");
	display: inline-flex;
	align-items: center;
	color: var(--cuby-paper);
	text-decoration: none;
	transition: color .3s, border-color .3s, background .3s, transform .3s var(--cuby-ease);
}
.cuby-ig::before {
	content: "";
	flex: none;
	background: currentColor;
	-webkit-mask: var(--ig-icon) center / contain no-repeat;
	mask: var(--ig-icon) center / contain no-repeat;
}
/* Cabecera: mismo estilo de píldora que el selector de idioma, solo el icono. */
.cuby-ig--header {
	justify-content: center;
	flex: 0 0 auto;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, .2);
}
.cuby-ig--header::before { width: 1rem; height: 1rem; }
.cuby-ig--header:hover { color: var(--cuby-gold-l); border-color: var(--cuby-gold); }
/* Contacto: icono grande con degradado de Instagram y el nombre de la cuenta. */
.cuby-contact-ig { margin-top: 1.5rem !important; }
.cuby-ig--contact { gap: .35rem; font-weight: 600; }
.cuby-ig--contact::before {
	width: 3.1rem;
	height: 3.1rem;
	border-radius: 14px;
	background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fd5949 45%, #d6249f 60%, #285aeb 90%);
	-webkit-mask: none;
	mask: none;
	margin-right: .55rem;
	box-shadow: 0 12px 28px -12px rgba(214, 36, 159, .7);
}
.cuby-ig--contact { position: relative; }
.cuby-ig--contact::after {
	content: "";
	position: absolute;
	left: .55rem;
	width: 2rem;
	height: 2rem;
	background: #fff;
	-webkit-mask: var(--ig-icon) center / contain no-repeat;
	mask: var(--ig-icon) center / contain no-repeat;
}
.cuby-ig--contact strong { color: var(--cuby-gold-l); }
.cuby-ig--contact:hover { transform: translateY(-2px); color: var(--cuby-gold-l); }
.editor-styles-wrapper .cuby-ig--header { display: none; }
/* TikTok: mismo botón y tamaño que Instagram, con su logo. */
.cuby-ig--tiktok {
	--ig-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M16.6 2.5c.35 2.3 1.75 3.85 4.15 4.05v3.05a7.3 7.3 0 0 1-4.1-1.25v6.3c0 4.6-4.75 7.5-8.75 5.3-2.6-1.45-3.65-4.7-2.35-7.35 1.1-2.25 3.5-3.45 5.95-3.1v3.15c-1.25-.4-2.65.1-3.3 1.2-.85 1.45.15 3.35 1.85 3.45 1.45.1 2.7-1.05 2.7-2.5V2.5h3.85z'/%3E%3C/svg%3E");
}
.cuby-ig--contact.cuby-ig--tiktok::before {
	background: #0b0b0d;
	box-shadow: -2px -2px 0 0 rgba(37, 244, 238, .85), 2px 2px 0 0 rgba(254, 44, 85, .85), 0 12px 28px -12px rgba(254, 44, 85, .6);
}
/* Contacto: "Síguenos" + Instagram + TikTok en la misma línea (se reparten en dos si no caben). */
.cuby-contact-ig { display: flex; flex-wrap: wrap; align-items: center; gap: .9rem 1.6rem; }
.cuby-contact-ig__label { flex-basis: 100%; font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--cuby-gold-l); }

/* ---------- Configurador: formulario de presupuesto bajo la vista 3D ---------- */

/* Escritorio: vista 3D y formulario a la izquierda, colores a la derecha. Móvil: vista, colores y formulario. */
.cuby-configurator__layout:has(> .cuby-configurator__quote) { grid-template-rows: auto auto; }
.cuby-configurator__layout > .cuby-configurator__viewer { grid-column: 1; grid-row: 1; }
.cuby-configurator__layout > .cuby-configurator__panel { grid-column: 2; grid-row: 1 / span 2; align-self: start; }
.cuby-configurator__layout > .cuby-configurator__quote { grid-column: 1; grid-row: 2; }
@media (max-width: 900px) {
	.cuby-configurator__layout > .cuby-configurator__viewer,
	.cuby-configurator__layout > .cuby-configurator__panel,
	.cuby-configurator__layout > .cuby-configurator__quote { grid-column: 1; grid-row: auto; }
}
.cuby-configurator__quote {
	box-sizing: border-box;
	min-width: 0;
	display: grid;
	gap: .9rem;
	padding: clamp(1.1rem, 2.5vw, 1.75rem);
	border-radius: var(--cuby-r-lg);
	background: linear-gradient(160deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .02));
	border: 1px solid rgba(201, 162, 39, .3);
}
.cuby-quote__title { margin: 0; font-family: var(--wp--preset--font-family--display); font-size: clamp(1.1rem, 2vw, 1.35rem); font-weight: 700; }
.cuby-quote__intro { margin: -.4rem 0 0; font-size: var(--wp--preset--font-size--sm); color: var(--cuby-steel); }
.cuby-quote__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem 1rem; }
@media (max-width: 600px) { .cuby-quote__grid { grid-template-columns: 1fr; } }
.cuby-quote__field { display: grid; gap: .3rem; font-size: var(--wp--preset--font-size--xs); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--cuby-gold-l); }
.cuby-quote__field { min-width: 0; }
.cuby-quote__field input {
	box-sizing: border-box; /* el relleno queda dentro del ancho: así no se monta sobre la casilla de al lado */
	width: 100%;
	min-width: 0;
	max-width: 100%;
	padding: .75rem .9rem;
	border-radius: 12px;
	border: 1px solid var(--cuby-line);
	background: rgba(255, 255, 255, .05);
	color: var(--cuby-paper);
	font: inherit;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}
.cuby-quote__field input:focus { outline: none; border-color: var(--cuby-gold); background: rgba(255, 255, 255, .08); }
.cuby-quote__hint { margin: -.3rem 0 0; font-size: var(--wp--preset--font-size--xs); color: var(--cuby-steel); }
.cuby-quote__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.cuby-quote__privacy { display: flex; gap: .6rem; align-items: flex-start; font-size: var(--wp--preset--font-size--sm); color: var(--cuby-steel); }
.cuby-quote__privacy input { margin-top: .25rem; accent-color: var(--cuby-gold); width: 1.05rem; height: 1.05rem; flex: none; }
.cuby-quote__privacy a { color: var(--cuby-gold-l); }
.cuby-configurator__quote .wp-block-button__link { border: 0; cursor: pointer; font: inherit; font-weight: 700; }
.cuby-configurator__quote .wp-block-button__link:disabled { opacity: .6; cursor: progress; }
.cuby-quote__status { margin: 0; font-size: var(--wp--preset--font-size--sm); min-height: 1.2em; }
.cuby-quote__status.is-ok { color: #7bd88f; font-weight: 700; }
.cuby-quote__status.is-error { color: #ff8a7a; font-weight: 700; }

/* Configurador: opciones de texto (tipo de cubierta, número de pistas) */
.cuby-opt {
	padding: .6rem 1.1rem;
	border-radius: 999px;
	border: 1px solid var(--cuby-line);
	background: rgba(255, 255, 255, .05);
	color: var(--cuby-paper);
	font: inherit;
	font-size: var(--wp--preset--font-size--sm);
	font-weight: 700;
	cursor: pointer;
	transition: border-color .25s, background .25s, color .25s;
}
.cuby-opt:hover { border-color: rgba(201, 162, 39, .6); }
.cuby-opt[aria-pressed="true"] { background: var(--cuby-gold); border-color: var(--cuby-gold); color: var(--cuby-ink); }
