/*
Theme Name:        Qubotech Block
Theme URI:         https://www.qubotech.pe
Author:            Glob Digital
Author URI:        https://www.globdigital.com.pe
Description:       Tema de bloques (Full Site Editing) a medida para Qubo Technologies. Reemplaza al tema legacy "qubotech" (framework Elos + OptionTree + Visual Composer) conservando los CPT portfolio y kwlogos, sus taxonomías y meta keys. El slider de cabecera lo aporta el plugin Qubo Hero Slider.
Version:           1.3.2
Requires at least: 6.5
Tested up to:      6.6
Requires PHP:      8.1
License:           GPL-2.0-or-later
License URI:       https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       qubotech
Tags:              full-site-editing, block-patterns, block-styles, custom-colors, editor-style, wide-blocks
*/

/* ==========================================================================
   Utilidades
   ========================================================================== */
.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}
.screen-reader-text:focus {
	clip-path: none;
	height: auto;
	width: auto;
	z-index: 100000;
	padding: .75rem 1rem;
	background: #fff;
	color: #000;
}
img { height: auto; max-width: 100%; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
/* Red de seguridad: nada puede crear scroll horizontal (clip no rompe la cabecera fija) */
.wp-site-blocks { overflow-x: clip; }

/* ==========================================================================
   Barra superior
   ========================================================================== */
.qubo-topbar a { text-decoration: none; }
.qubo-topbar__contact { margin: 0; display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }
.qubo-topbar__contact a { display: inline-flex; align-items: center; gap: .45rem; }
.qubo-icon-phone::before,
.qubo-icon-mail::before {
	content: "";
	width: 1.4em;
	height: 1.4em;
	border-radius: 50%;
	background: rgba(255,255,255,.15) center / 60% no-repeat;
}
.qubo-icon-phone::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1l-2.3 2.2Z'/%3E%3C/svg%3E"); }
.qubo-icon-mail::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M2 5h20v14H2V5Zm2 2v.5l8 5 8-5V7H4Z'/%3E%3C/svg%3E"); }
.qubo-topbar .wp-block-social-links { gap: .9rem; }
.qubo-topbar .wp-block-social-links .wp-social-link svg { width: 1.5rem; height: 1.5rem; }

/* ==========================================================================
   Cabecera y navegación
   ========================================================================== */
.site-header { position: sticky; top: 0; z-index: 50; }
.admin-bar .site-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }
.qubo-header { box-shadow: 0 1px 0 rgba(0,0,0,.06); }
.qubo-header .wp-block-site-logo img { max-height: 120px; width: auto; }
.qubo-nav { --qubo-nav-pad: 1.15rem; --qubo-sub-offset: 1.9rem; }
.qubo-nav .wp-block-navigation-item__content { color: #222; padding-block: .3rem; transition: color .2s ease; }
.qubo-nav .wp-block-navigation-item__content:hover,
.qubo-nav .current-menu-item > .wp-block-navigation-item__content,
.qubo-nav .wp-block-navigation-item__content[aria-current="page"] { color: var(--wp--preset--color--primary); }

/* Iconos: se añaden solos al enlace de portada (casa) y de contacto (sobre).
   También se pueden forzar con la clase "menu-icon-home" / "menu-icon-mail" en el elemento. */
.qubo-nav .qubo-icon-home,
.qubo-nav .menu-icon-home > .wp-block-navigation-item__content { --qubo-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 1.5 12.2l1.3 1.5L4 12.6V21h6v-6h4v6h6v-8.4l1.2 1.1 1.3-1.5L12 3Z'/%3E%3C/svg%3E"); }
.qubo-nav .qubo-icon-mail,
.qubo-nav .menu-icon-mail > .wp-block-navigation-item__content { --qubo-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3.5 4h17A1.5 1.5 0 0 1 22 5.5v.6l-10 6.3L2 6.1v-.6A1.5 1.5 0 0 1 3.5 4ZM2 8.5l10 6.3 10-6.3v10A1.5 1.5 0 0 1 20.5 20h-17A1.5 1.5 0 0 1 2 18.5v-10Z'/%3E%3C/svg%3E"); }
.qubo-nav .qubo-icon-home::before,
.qubo-nav .qubo-icon-mail::before,
.qubo-nav .menu-icon-home > .wp-block-navigation-item__content::before,
.qubo-nav .menu-icon-mail > .wp-block-navigation-item__content::before {
	content: "";
	display: inline-block;
	flex: 0 0 auto;
	width: 1.05em;
	height: 1.05em;
	margin-right: .55em;
	vertical-align: -.12em;
	background: var(--wp--preset--color--primary);
	-webkit-mask: var(--qubo-icon) center / contain no-repeat;
	mask: var(--qubo-icon) center / contain no-repeat;
}

/* --- Submenú de escritorio: ancho según el texto (una sola línea), fondo gris y línea azul --- */
/* Flecha de submenú (escritorio): visible junto a Productos/Servicios y gira al abrirse */
.qubo-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-icon {
	display: inline-flex;
	align-items: center;
	margin-left: .4em;
	padding: 0;
	color: var(--wp--preset--color--primary);
}
.qubo-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-icon svg {
	width: 12px;
	height: 12px;
	stroke: currentColor;
	stroke-width: 2px;
	transition: transform .2s ease;
}
.qubo-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child:is(:hover, :focus-within) > .wp-block-navigation__submenu-icon svg { transform: rotate(180deg); }
.qubo-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child::after {
	/* "Puente" invisible para no perder el hover entre el enlace y el submenú */
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	height: var(--qubo-sub-offset);
}
.qubo-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child > .wp-block-navigation__submenu-container {
	top: calc(100% + var(--qubo-sub-offset));
	left: calc(-1 * var(--qubo-nav-pad));
	padding: 0;
	border: 0 !important;
	border-top: 2px solid var(--wp--preset--color--primary) !important;
	background: #ececec !important;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .1);
	font-size: 1rem;
	transform: translateY(8px);
	transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s;
}
/* El ancho "según el texto" solo se aplica con el submenú abierto: cerrado mide 0 y no
   desborda la página por la derecha (eso generaba el espacio en blanco lateral). */
.qubo-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child:is(:hover, :focus-within) > .wp-block-navigation__submenu-container,
.qubo-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child > [aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
	min-width: max-content !important;
	/* Si la lista no cabe en la pantalla, se desplaza dentro del submenú en lugar de cortarse */
	max-height: var(--qubo-sub-max, calc(100vh - 170px));
	overflow-x: hidden !important;
	overflow-y: auto !important;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	transform: none;
	transition: opacity .2s ease, transform .2s ease;
}
.qubo-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item { width: 100%; }
.qubo-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: block;
	width: 100%;
	box-sizing: border-box;
	padding: .6rem 1.6rem .6rem var(--qubo-nav-pad) !important;
	border-bottom: 1px solid rgba(255, 255, 255, .9);
	color: #444;
	font-size: .95rem;
	line-height: 1.35;
	font-weight: 400;
	white-space: nowrap;
}
.qubo-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item:last-child > .wp-block-navigation-item__content { border-bottom: 0; }
.qubo-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.qubo-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
	background: #fff;
	color: var(--wp--preset--color--primary);
}
/* Si el submenú se saldría por la derecha, se alinea al borde derecho del padre */
.qubo-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child:last-child > .wp-block-navigation__submenu-container,
.qubo-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child.qubo-sub-right > .wp-block-navigation__submenu-container { left: auto; right: calc(-1 * var(--qubo-nav-pad)); }

/* --- Menú móvil (overlay): lista a ancho completo, submenús en acordeón con flecha --- */
.qubo-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 4.5rem 1.5rem 2rem; }
.qubo-nav .is-menu-open .wp-block-navigation__responsive-container-content,
.qubo-nav .is-menu-open .wp-block-navigation__container { align-items: stretch !important; width: 100%; gap: 0 !important; }
.qubo-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
	display: flex;
	flex-direction: row !important;
	flex-wrap: wrap;
	align-items: center !important;
	justify-content: space-between;
	width: 100%;
	text-align: left;
	border-bottom: 1px solid var(--wp--preset--color--border);
}
.qubo-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	flex: 1 1 auto;
	display: inline-flex;
	align-items: center;
	padding: .95rem 0 !important;
	font-size: 1.15rem;
}
.qubo-nav .is-menu-open .wp-block-navigation__submenu-icon {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	margin: 0 -.5rem 0 0;
	padding: 0;
	color: var(--wp--preset--color--primary);
	cursor: pointer;
}
.qubo-nav .is-menu-open .wp-block-navigation__submenu-icon svg { width: 14px; height: 14px; stroke: currentColor; transition: transform .25s ease; }
/* El bloque marca los submenús del overlay como «expandidos» y gira la flecha; aquí la flecha
   depende solo del estado del acordeón: abajo = cerrado, arriba = abierto. */
.qubo-nav .is-menu-open .has-child > .wp-block-navigation__submenu-icon,
.qubo-nav .is-menu-open .has-child > .wp-block-navigation__submenu-icon svg,
.qubo-nav .is-menu-open .has-child > .wp-block-navigation__submenu-icon[aria-expanded="true"] svg { transform: none !important; }
.qubo-nav .is-menu-open .has-child.is-qubo-open > .wp-block-navigation__submenu-icon svg,
.qubo-nav .is-menu-open .has-child.is-qubo-open > .wp-block-navigation__submenu-icon[aria-expanded] svg { transform: rotate(180deg) !important; }
.qubo-nav .is-menu-open .has-child > .wp-block-navigation__submenu-container { display: none !important; }
.qubo-nav .is-menu-open .has-child.is-qubo-open > .wp-block-navigation__submenu-container {
	display: flex !important;
	flex: 1 0 100%;
	flex-direction: column;
	align-items: flex-start !important;
	gap: 0 !important;
	width: 100%;
	padding: 0 0 .75rem 1rem !important;
	text-align: left;
	background: transparent !important;
	animation: qubo-sub-in .25s ease both;
}
.qubo-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { align-items: flex-start !important; width: 100%; }
.qubo-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: .6rem 0 !important;
	text-align: left;
	font-size: 1rem;
	color: #555;
}
@keyframes qubo-sub-in { from { opacity: 0; transform: translateY(-6px); } }

/* ==========================================================================
   Opción de página «Contenido pegado a cabecera y pie»
   ========================================================================== */
body.qubo-no-spacing .wp-site-blocks > * { margin-block: 0 !important; }
body.qubo-no-spacing main,
body.qubo-no-spacing main > .wp-block-post-content { padding-top: 0 !important; padding-bottom: 0 !important; margin-top: 0 !important; margin-bottom: 0 !important; }
body.qubo-no-spacing .wp-block-post-content > :first-child { margin-top: 0 !important; }
body.qubo-no-spacing .wp-block-post-content > :last-child { margin-bottom: 0 !important; }

/* ==========================================================================
   Barra de título (qubo/title-bar)
   ========================================================================== */
.qubo-titlebar {
	position: relative;
	color: var(--qubo-titlebar-subtitle, #fff);
	background: var(--wp--preset--color--night) var(--qubo-titlebar-bg) center / cover no-repeat;
	padding: 2.2rem var(--wp--style--root--padding-right, 16px) 2.2rem var(--wp--style--root--padding-left, 16px);
}
.qubo-titlebar__inner { position: relative; max-width: var(--wp--style--global--content-size, 1170px); margin-inline: auto; }
.qubo-titlebar .qubo-titlebar__title {
	margin: 0;
	color: var(--qubo-titlebar-title, #fff);
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(2.25rem, 4.5vw, 3.25rem);
	font-weight: 300;
	letter-spacing: -.01em;
	line-height: 1.15;
}
.qubo-titlebar__subtitle { margin: .5rem 0 0; font-size: 1.1rem; }
.qubo-breadcrumbs { margin-top: .4rem; font-size: .95rem; color: var(--qubo-titlebar-crumbs, #fff); }
.qubo-breadcrumbs a { color: var(--qubo-titlebar-crumbs, #9aa3ad); text-decoration: none; }
.qubo-breadcrumbs a:hover { color: var(--qubo-titlebar-crumbs-hover, #fff); }
.qubo-breadcrumbs__sep { margin: 0 .35rem; opacity: .6; }

.qubo-titlebar.is-variant-modern { padding-block: 3.5rem 4.25rem; text-align: center; }
.qubo-titlebar.is-variant-modern .qubo-titlebar__title { display: inline-block; padding: 0 1rem 1.4rem; border-bottom: 2px solid var(--wp--preset--color--accent); font-size: clamp(2rem, 4vw, 3.125rem); }
.qubo-titlebar__nav { position: absolute; right: 0; top: 50%; transform: translateY(-50%); display: flex; gap: .5rem; }
.qubo-titlebar__nav a,
.qubo-titlebar__nav span { color: var(--wp--preset--color--accent); font-size: 3.5rem; line-height: 1; text-decoration: none; transition: transform .2s ease; }
.qubo-titlebar__nav a:hover { transform: scale(1.15); }
.qubo-titlebar__nav .is-disabled { opacity: .3; }
@media (max-width: 700px) {
	.qubo-titlebar__nav { position: static; transform: none; justify-content: center; margin-bottom: .5rem; }
}

/* ==========================================================================
   Contenido
   ========================================================================== */
.wp-block-post-content a:where(:not(.wp-element-button)) { text-underline-offset: .15em; }

/* Título de sección con línea inferior */
.wp-block-heading.qubo-section-title { padding-bottom: 1rem; border-bottom: 1px solid var(--wp--preset--color--border); font-weight: 400; }
.qubo-section-title strong { font-weight: 700; }

/* Estilo de encabezado "Subrayado centrado" */
.is-style-qubo-underline { position: relative; width: fit-content; margin-inline: auto !important; padding: 0 1.5rem .6rem; border-bottom: 1px solid var(--wp--preset--color--border); }
.is-style-qubo-underline::after { content: ""; position: absolute; left: 50%; bottom: -3px; width: 12px; height: 5px; transform: translateX(-50%); background: radial-gradient(circle, #bbb 1.5px, transparent 2px) 0 0 / 4px 5px repeat-x; }
.is-style-qubo-underline strong { font-weight: 700; }

/* Iconos circulares (Misión / Visión) */
.wp-block-image.is-style-qubo-icon-circle img {
	box-sizing: border-box;
	padding: 24px;
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: 50%;
	background: var(--wp--preset--color--primary);
	transition: background-color .3s ease, transform .3s ease;
}
.qubo-features .wp-block-column:hover .is-style-qubo-icon-circle img { transform: translateY(-4px); }
.qubo-features .wp-block-column:hover h3 { color: var(--wp--preset--color--primary); }
.qubo-features h3 { transition: color .3s ease; }

/* Bloque «Icono circular» (qubo/icon): colores por variables, editables en el editor */
.qubo-icon { display: flex; justify-content: flex-start; }
.qubo-icon.aligncenter { justify-content: center; margin-inline: auto; width: 100%; }
.qubo-icon.alignright { justify-content: flex-end; float: none; margin: 0; width: 100%; }
.qubo-icon.alignleft { float: none; margin: 0; }
.qubo-icon__circle {
	display: grid;
	place-items: center;
	box-sizing: border-box;
	width: var(--qi-size, 92px);
	height: var(--qi-size, 92px);
	border: var(--qi-border-w, 1px) solid var(--qi-border, transparent);
	border-radius: 50%;
	background: var(--qi-bg, #005ca7);
	color: var(--qi-fg, #fff);
	transition: background-color .3s ease, color .3s ease, transform .3s ease;
}
.qubo-icon__svg { display: block; width: var(--qi-scale, 40%); height: var(--qi-scale, 40%); }
/* Invertir al pasar el ratón (sobre el icono o sobre la columna que lo contiene) */
.qubo-icon.has-hover-invert:hover .qubo-icon__circle,
.wp-block-column:hover > .qubo-icon.has-hover-invert .qubo-icon__circle {
	background: var(--qi-fg, #fff);
	color: var(--qi-bg, #005ca7);
}

/* Lista "Línea de tiempo" con checks */
.is-style-qubo-timeline { position: relative; list-style: none; margin: 0; padding: 1.5rem 0 1.5rem 0; }
.is-style-qubo-timeline::before { content: ""; position: absolute; left: 27px; top: 0; bottom: 0; width: 1px; background: #222; }
.is-style-qubo-timeline::after,
.is-style-qubo-timeline > li:first-child::after { content: ""; position: absolute; left: 24px; width: 7px; height: 7px; border-radius: 50%; background: #111; }
.is-style-qubo-timeline::after { bottom: 0; }
.is-style-qubo-timeline > li:first-child::after { top: -1.5rem; }
.is-style-qubo-timeline > li { position: relative; display: flex; align-items: center; min-height: 56px; margin: 0 0 1.75rem; padding-left: 5.25rem; }
.is-style-qubo-timeline > li:last-child { margin-bottom: 0; }
.is-style-qubo-timeline > li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 56px;
	height: 56px;
	transform: translateY(-50%);
	border-radius: 50%;
	background: #222 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M9.5 16.6 4.9 12l-1.8 1.8 6.4 6.4L21 8.7l-1.8-1.8z'/%3E%3C/svg%3E") center / 26px no-repeat;
}

/* Hero de páginas internas */
.qubo-hero .wp-block-cover__inner-container { max-width: var(--wp--style--global--content-size); }

/* Hero Slider (plugin Qubo Hero Slider) pegado a la cabecera */
.wp-block-post-content > .wp-block-qubo-hero-slider:first-child { margin-block-start: 0; }

/* Mapa */
.qubo-map { padding: 12px; border: 1px solid var(--wp--preset--color--border); }
.qubo-map iframe { display: block; width: 100%; }

/* ==========================================================================
   Portfolio (detalle)
   ========================================================================== */
.qubo-media__img { display: block; width: 100%; height: auto; box-shadow: var(--wp--preset--shadow--card); }
.qubo-media__video { position: relative; aspect-ratio: 16 / 9; }
.qubo-media__video iframe, .qubo-media__video video { position: absolute; inset: 0; width: 100%; height: 100%; }
.qubo-media__gallery { display: flex; gap: .5rem; margin: 0; padding: 0; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; }
.qubo-media__slide { flex: 0 0 100%; scroll-snap-align: start; }
.qubo-media__slide img { display: block; width: 100%; height: auto; }
.qubo-portfolio-single__details h2 { margin-top: 0; font-weight: 400; }
.qubo-portfolio-single__content { font-family: var(--wp--preset--font-family--heading); font-size: clamp(1.15rem, 2vw, 1.75rem); line-height: 1.3; }
.qubo-portfolio-single__content strong, .qubo-portfolio-single__content b { font-weight: inherit; }

/* Compartir */
.qubo-share { display: flex; gap: .75rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.qubo-share__link { display: inline-flex; color: #f28b8b; transition: color .2s ease, transform .2s ease; }
.qubo-share__link:hover, .qubo-share__link:focus-visible { color: var(--wp--preset--color--accent); transform: translateY(-2px); }

/* ==========================================================================
   Pie de página
   ========================================================================== */
.qubo-footer .qubo-footer__title { margin: 0 0 1.75rem; font-size: clamp(1.4rem, 2.2vw, 1.75rem); font-weight: 400; text-transform: uppercase; }
.qubo-footer p { font-size: 1.05rem; }
.qubo-footer a { text-decoration: none; }
.qubo-copyright a { text-decoration: none; }
.qubo-copyright p { margin: 0; }
.qubo-copyright__social .wp-social-link { transition: background-color .2s ease; }
.qubo-copyright__social .wp-social-link:hover { background-color: var(--wp--preset--color--dark) !important; }

/* ==========================================================================
   Botón «Ir arriba» (aparece al hacer scroll)
   ========================================================================== */
.qubo-to-top {
	position: fixed;
	right: 20px;
	bottom: 22px;
	z-index: 999;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 2px solid rgba(255, 255, 255, .85);
	border-radius: 50%;
	background: rgba(176, 176, 176, .45);
	color: #fff;
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(10px);
	transition: opacity .4s ease, transform .4s ease, visibility 0s linear .4s, background-color .2s ease;
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
}
.qubo-to-top.is-visible { opacity: 1; visibility: visible; transform: none; transition: opacity .4s ease, transform .4s ease, background-color .2s ease; }
.qubo-to-top:hover, .qubo-to-top:focus-visible { background: var(--wp--preset--color--primary); }
.qubo-to-top:focus-visible { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 2px; }

/* ==========================================================================
   Movimiento reducido
   Solo se desactiva el desplazamiento suave. Las animaciones del slider, logos y
   portfolio se mantienen (Windows activa "reducir movimiento" al apagar los
   "Efectos de animación", y en el sitio original sí se veían).
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}
