/*
Theme Name: Sebastián Colmenero 2026
Theme URI: https://sebastiancolmenero.es/
Author: Sebastián Colmenero
Description: Tema ligero de presentación, captación y contenidos para sebastiancolmenero.es.
Version: 1.0.44
Text Domain: sebastian-colmenero-2026
*/

html { scroll-behavior: smooth; }
.sc2026-site { min-height: 100vh; }
.sc2026-site .sc-skip-link { position: fixed; top: 10px; left: 50%; z-index: 10002; transform: translate(-50%, -180%); padding: 10px 14px; border-radius: 999px; background: #1d1d1f; color: #fff; font-size: 13px; font-weight: 600; text-decoration: none; transition: transform .2s ease; }
.sc2026-site .sc-skip-link:focus { transform: translate(-50%, 0); outline: 3px solid rgba(0,113,227,.38); outline-offset: 3px; }
.sc2026-site .sc-back-to-top { position: fixed; right: 22px; bottom: 22px; z-index: 50; display: grid; width: 40px; height: 40px; place-items: center; border: 1px solid rgba(210,210,215,.85); border-radius: 50%; background: rgba(255,255,255,.88); color: #1d1d1f; box-shadow: 0 7px 25px rgba(0,0,0,.1); text-decoration: none; font-size: 18px; opacity: 0; pointer-events: none; transform: translateY(8px); transition: opacity .24s ease, transform .24s ease, background .2s ease; backdrop-filter: blur(10px); }
.sc2026-site .sc-back-to-top.sc-is-visible { opacity: 1; pointer-events: auto; transform: none; }.sc2026-site .sc-back-to-top:hover { background: #fff; }
.sc2026-site .sc-noga-assistant { position: fixed; right: 20px; bottom: 74px; z-index: 51; display: inline-flex; align-items: center; gap: 9px; min-height: 48px; padding: 5px 13px 5px 5px; border: 1px solid rgba(139,155,255,.45); border-radius: 999px; background: rgba(10,13,31,.88); color: #f5f5f7; box-shadow: 0 10px 35px rgba(0,0,0,.22), 0 0 22px rgba(86,108,255,.2); text-decoration: none; backdrop-filter: blur(16px); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }.sc2026-site .sc-noga-assistant:hover,.sc2026-site .sc-noga-assistant:focus-visible { color:#fff; border-color:rgba(186,196,255,.88); box-shadow:0 14px 42px rgba(0,0,0,.28),0 0 34px rgba(91,115,255,.45); transform:translateY(-3px); outline:none; }.sc2026-site .sc-noga-assistant__core { position:relative; display:grid; width:38px; height:38px; place-items:center; border-radius:50%; background:radial-gradient(circle at 35% 28%,#d5d9ff 0,#7181ff 24%,#3444b1 58%,#11142f 100%); box-shadow:0 0 14px rgba(117,137,255,.9),inset 0 0 9px rgba(255,255,255,.34); }.sc2026-site .sc-noga-assistant__core::before { content:""; position:absolute; inset:-5px; border:1px solid rgba(127,150,255,.36); border-radius:inherit; opacity:.85; }.sc2026-site .sc-noga-assistant svg { width:20px; height:20px; fill:#fff; filter:drop-shadow(0 1px 5px rgba(0,0,0,.35)); }.sc2026-site .sc-noga-assistant__copy { display:grid; gap:1px; line-height:1.04; }.sc2026-site .sc-noga-assistant__copy strong { font-size:13px; letter-spacing:-.02em; }.sc2026-site .sc-noga-assistant__copy small { color:#b8c2ff; font-size:10px; }.sc2026-site .sc-noga-assistant:focus-visible { box-shadow:0 0 0 4px rgba(41,151,255,.32),0 14px 42px rgba(0,0,0,.28); }@media (prefers-reduced-motion:no-preference){.sc2026-site .sc-noga-assistant__core::before{animation:sc-noga-entry 4.8s ease-out infinite}@keyframes sc-noga-entry{0%,60%,100%{transform:scale(.82);opacity:0}74%{opacity:.8}94%{transform:scale(1.28);opacity:0}}}@media(max-width:560px){.sc2026-site .sc-noga-assistant{right:14px;bottom:69px;padding:5px;min-height:auto}.sc2026-site .sc-noga-assistant__copy{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.sc2026-site .sc-noga-assistant__core{width:42px;height:42px}}
.sc2026-site .sc-cookie-panel { position: fixed; z-index: 10000; right: 22px; bottom: 22px; width: min(510px, calc(100vw - 44px)); padding: 22px; border: 1px solid rgba(210,210,215,.9); border-radius: 22px; background:rgba(255,255,255,.96); color:#1d1d1f; box-shadow:0 18px 55px rgba(0,0,0,.18); backdrop-filter:blur(18px); }.sc2026-site .sc-cookie-panel[hidden],.sc2026-site .sc-cookie-options[hidden]{display:none}.sc2026-site .sc-cookie-title{margin:0 0 7px;font-size:17px;font-weight:700;letter-spacing:-.025em}.sc2026-site .sc-cookie-copy>p:not(.sc-cookie-title){margin:0;color:#515154;font-size:13px;line-height:1.48}.sc2026-site .sc-cookie-copy a{display:inline-block;margin-top:9px;color:#0071e3;font-size:12px;text-decoration:none}.sc2026-site .sc-cookie-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.sc2026-site .sc-cookie-button,.sc2026-site .sc-footer-cookie{appearance:none;border:0;border-radius:999px;padding:10px 14px;font:600 12px/1 inherit;cursor:pointer}.sc2026-site .sc-cookie-primary{background:#0071e3;color:#fff}.sc2026-site .sc-cookie-secondary{background:#f5f5f7;color:#1d1d1f}.sc2026-site .sc-cookie-options{margin-top:16px;padding-top:14px;border-top:1px solid #e8e8ed}.sc2026-site .sc-cookie-options label{display:flex;gap:9px;padding:8px 0;font-size:12px;line-height:1.35}.sc2026-site .sc-cookie-options input{margin-top:2px;accent-color:#0071e3}.sc2026-site .sc-cookie-options small{display:block;margin-top:2px;color:#6e6e73}.sc2026-site .sc-cookie-options .sc-cookie-button{margin-top:8px}.sc2026-site .sc-footer-cookie{padding:0;background:transparent;color:#424245;text-decoration:underline;text-underline-offset:2px}.sc2026-site .sc-footer-cookie:hover{color:#0071e3}@media(max-width:560px){.sc2026-site .sc-cookie-panel{right:12px;bottom:12px;width:calc(100vw - 24px);box-sizing:border-box;padding:19px}.sc2026-site .sc-cookie-actions .sc-cookie-button{flex:1 1 auto}.sc2026-site .sc-back-to-top{right:15px;bottom:15px}.sc2026-site .sc-cookie-panel:not([hidden])~.sc-back-to-top{opacity:0;pointer-events:none}}

/* The previous Elementor header is still registered globally by the legacy
   stack. The 2026 theme owns navigation, so it must never be shown twice. */
/* Elementor wraps the previous header in its own location container rather
   than in the 2026 document body. Hide only that legacy location; the 2026
   navigation uses the `.nav` class and remains untouched. */
.elementor-location-header { display: none !important; }

/* The live homepage inherited a second, independently styled Elementor
   `<header>` from the previous theme. Target it directly as well, so a stale
   Elementor cache cannot reserve height or paint it above the 2026 menu. */
body.home header.elementor-top-section.elementor-section {
	display: none !important;
	visibility: hidden !important;
	position: absolute !important;
	inline-size: 0 !important;
	block-size: 0 !important;
	overflow: hidden !important;
}

/* Premium details: deliberately quiet, quick to paint and optional for people
   who prefer reduced motion. */
.sc2026-site .sc-progress { position: fixed; inset: 0 0 auto; z-index: 10001; height: 2px; pointer-events: none; background: transparent; }
.sc2026-site .sc-progress__bar { display: block; width: 100%; height: 100%; transform: scaleX(0); transform-origin: 0 50%; background: linear-gradient(90deg, #0071e3, #2997ff 62%, #bf5af2); box-shadow: 0 0 14px rgba(41,151,255,.6); }
@media (prefers-reduced-motion: no-preference) {
	.sc2026-site .sc-reveal { opacity: 0; transform: translateY(20px); transition: opacity .72s cubic-bezier(.2,.65,.2,1) var(--sc-delay,0ms), transform .72s cubic-bezier(.2,.65,.2,1) var(--sc-delay,0ms); }
	.sc2026-site .sc-reveal.sc-is-visible { opacity: 1; transform: none; }
	.sc2026-site .pill { isolation: isolate; overflow: hidden; }
	.sc2026-site .contact .pill::before, .sc2026-site .cta .pill::before, .sc2026-site .actions .pill::before { content: ""; position: absolute; inset: -2px; z-index: -1; border-radius: inherit; opacity: .38; background: linear-gradient(110deg, transparent 28%, rgba(255,255,255,.8) 48%, transparent 67%); transform: translateX(-130%); animation: sc2026-cta-glint 7.5s ease-in-out infinite; }
	@keyframes sc2026-cta-glint { 0%,62%,100% { transform: translateX(-130%); } 77% { transform: translateX(130%); } }
}
@media (prefers-reduced-motion: reduce) { .sc2026-site * { scroll-behavior: auto !important; } }

/* Shared footer. Higher specificity intentionally wins over per-template CSS. */
.sc2026-site .sc-footer { margin: 0 !important; padding: 72px max(24px, calc((100vw - 1200px) / 2)) 25px !important; color: #1d1d1f !important; background: #fff !important; border-top: 1px solid #d2d2d7 !important; }
.sc2026-site .sc-footer-inner { display: grid; grid-template-columns: minmax(260px, 1.65fr) repeat(3, minmax(145px, .8fr)); gap: 36px; max-width: 1200px; margin: 0 auto; }
.sc2026-site .sc-footer a { color: #424245 !important; text-decoration: none !important; transition: color .2s ease; }
.sc2026-site .sc-footer a:hover, .sc2026-site .sc-footer a:focus-visible { color: #0071e3 !important; }
.sc2026-site .sc-footer-brand { display: inline-block; margin-bottom: 15px; color: #1d1d1f !important; font-size: 20px; font-weight: 650; letter-spacing: -.035em; }
.sc2026-site .sc-footer-intro p { max-width: 330px; margin: 0; color: #6e6e73; font-size: 14px; line-height: 1.5; }
.sc2026-site .sc-footer-social { display: flex; gap: 17px; margin-top: 22px; font-size: 13px; font-weight: 600; }
.sc2026-site .sc-footer-column { display: flex; flex-direction: column; align-items: flex-start; gap: 11px; font-size: 13px; line-height: 1.35; }
.sc2026-site .sc-footer-column p { margin: 2px 0 8px; color: #1d1d1f; font-size: 12px; font-weight: 700; letter-spacing: .025em; text-transform: uppercase; }
.sc2026-site .sc-footer-column small { margin-top: 6px; color: #86868b; font-size: 12px; line-height: 1.45; }
.sc2026-site .sc-footer-bottom { display: flex; justify-content: space-between; gap: 20px; max-width: 1200px; margin: 60px auto 0; padding-top: 19px; color: #86868b; border-top: 1px solid #e8e8ed; font-size: 12px; line-height: 1.4; }
@media (max-width: 760px) { .sc2026-site .sc-footer { padding-top: 51px !important; } .sc2026-site .sc-footer-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; } .sc2026-site .sc-footer-intro { grid-column: 1 / -1; } .sc2026-site .sc-footer-bottom { flex-direction: column; gap: 5px; margin-top: 42px; } }

/* Contact Form 7 inherits the visual grammar of the 2026 contact section. */
.sc2026-site .wpcf7 { max-width: 700px; margin: 38px auto 0; text-align: left; }
.sc2026-site .wpcf7 form > p { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 0; }
.sc2026-site .wpcf7 form > p > br { display: none; }
.sc2026-site .wpcf7 label { display: grid; gap: 7px; color: #424245; font-size: 13px; font-weight: 600; }
.sc2026-site .wpcf7 label.sc-field-full, .sc2026-site .wpcf7 .wpcf7-acceptance, .sc2026-site .wpcf7 .wpcf7-submit { grid-column: 1 / -1; }
.sc2026-site .wpcf7 input:not([type="checkbox"]), .sc2026-site .wpcf7 select, .sc2026-site .wpcf7 textarea { box-sizing: border-box; width: 100%; border: 1px solid #d2d2d7; border-radius: 13px; background: #fff; color: #1d1d1f; padding: 13px 14px; font: inherit; font-size: 15px; outline: none; }
.sc2026-site .wpcf7 textarea { min-height: 116px; resize: vertical; }
.sc2026-site .wpcf7 input:focus, .sc2026-site .wpcf7 select:focus, .sc2026-site .wpcf7 textarea:focus { border-color: #0071e3; box-shadow: 0 0 0 3px rgba(0,113,227,.12); }
.sc2026-site .wpcf7 .wpcf7-acceptance .wpcf7-list-item { margin: 0; }.sc2026-site .wpcf7 .wpcf7-acceptance label { display:flex; align-items:flex-start; gap:10px; font-size:12px; font-weight:400; line-height:1.45; }.sc2026-site .wpcf7 .wpcf7-acceptance input { width:auto; margin-top:3px; accent-color:#0071e3; }.sc2026-site .wpcf7 .wpcf7-acceptance a { color:#0071e3; text-decoration:underline; text-underline-offset:2px; }
.sc2026-site .wpcf7 .sc-native-consent { grid-column:1 / -1; display:flex; align-items:flex-start; gap:10px; font-size:12px; font-weight:400; line-height:1.45; }.sc2026-site .wpcf7 .sc-native-consent input { width:auto; margin-top:3px; accent-color:#0071e3; }.sc2026-site .wpcf7 .sc-native-consent a { color:#0071e3; text-decoration:underline; text-underline-offset:2px; }
.sc2026-site .wpcf7 .sc-consent-error { grid-column:1 / -1; margin:-4px 0 0; color:#b42318; font-size:12px; line-height:1.4; }
.sc2026-site .wpcf7 .wpcf7-submit { border: 0; justify-self: start; cursor: pointer; background: #0071e3; color: #fff; min-height: 40px; padding: 0 18px; border-radius: 999px; font: 600 14px inherit; }
.sc2026-site .wpcf7 .wpcf7-response-output { grid-column: 1 / -1; margin: 6px 0 0; border-radius: 12px; font-size: 13px; }
@media (max-width: 720px) { .sc2026-site .wpcf7 form > p { grid-template-columns: 1fr; } }

/* Close an odd-length editorial grid intentionally on desktop, without
   changing the one-column mobile rhythm. */
.sc2026-site .cluster-grid .cluster.cluster-wide { grid-column: 1 / -1; min-height: 215px; }
.sc2026-site .cluster-grid .cluster.cluster-wide h3 { max-width: 660px; margin-top: 42px; }
.sc2026-site .cluster-grid .cluster.cluster-wide p { max-width: 560px; }
@media (max-width: 720px) { .sc2026-site .cluster-grid .cluster.cluster-wide { grid-column: auto; min-height: 0; } .sc2026-site .cluster-grid .cluster.cluster-wide h3 { margin-top: 48px; } }

/* The floating assistant would obscure the integration chips in Noga's compact hero.
   The WhatsApp chip in that hero remains the direct Noga entry point on mobile. */
/* Noga sigue disponible en el hero compacto: el acceso flotante abre el chat interno. */

/* Noga: chat de primera parte. No carga servicios externos hasta que la persona
   decide enviar un mensaje; la interfaz usa la misma materia lumínica que Noga. */
.sc2026-site .sc-noga-assistant { appearance:none; border:1px solid rgba(139,155,255,.45); font:inherit; cursor:pointer; }
.sc2026-site .sc-noga-assistant__core > img { position:relative; z-index:1; display:block; width:21px; height:25px; object-fit:contain; filter:invert(1) drop-shadow(0 1px 5px rgba(0,0,0,.35)); }
.sc-noga-chat { position:fixed; right:20px; bottom:22px; z-index:10001; width:min(370px,calc(100vw - 28px)); color:#f5f5f7; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
.sc-noga-chat__panel { overflow:hidden; border:1px solid rgba(139,155,255,.38); border-radius:25px; background:linear-gradient(145deg,rgba(19,23,54,.98),rgba(4,5,15,.98)); box-shadow:0 24px 75px rgba(0,0,0,.48),0 0 45px rgba(70,94,255,.18); }
.sc-noga-chat__header { display:flex; align-items:center; gap:10px; padding:14px 16px; border-bottom:1px solid rgba(161,161,166,.16); background:linear-gradient(105deg,rgba(83,104,255,.21),transparent 65%); }.sc-noga-chat__avatar { display:grid; width:34px; height:34px; place-items:center; border:1px solid rgba(174,187,255,.56); border-radius:50%; background:radial-gradient(circle at 36% 30%,#dde0ff,#6171f3 35%,#171b50 82%); box-shadow:0 0 17px rgba(110,130,255,.65); }.sc-noga-chat__avatar img { display:block; width:18px; height:23px; object-fit:contain; filter:invert(1) drop-shadow(0 1px 4px rgba(0,0,0,.35)); }.sc-noga-chat__header strong,.sc-noga-chat__header small { display:block; }.sc-noga-chat__header strong { font-size:14px; }.sc-noga-chat__header small { margin-top:1px; color:#b9c3ff; font-size:11px; }.sc-noga-chat__close { margin-left:auto; width:30px; height:30px; border:0; border-radius:50%; background:rgba(255,255,255,.08); color:#f5f5f7; font:300 24px/1 inherit; cursor:pointer; }
.sc-noga-chat__messages { display:grid; gap:10px; max-height:300px; min-height:148px; padding:16px; overflow-y:auto; }.sc-noga-chat__message { width:fit-content; max-width:88%; padding:10px 12px; border-radius:15px 15px 15px 4px; background:rgba(255,255,255,.09); color:#f5f5f7; font-size:13px; line-height:1.42; white-space:pre-wrap; }.sc-noga-chat__message--user { justify-self:end; border-radius:15px 15px 4px 15px; background:#4964e8; }.sc-noga-chat__message--pending { color:#c5ccff; font-style:italic; }
.sc-noga-chat__form { padding:12px 14px 14px; border-top:1px solid rgba(161,161,166,.16); }.sc-noga-chat__consent { display:flex; align-items:flex-start; gap:7px; margin:0 0 10px; color:#aeb1c3; font-size:10px; line-height:1.35; }.sc-noga-chat__consent input { margin:1px 0 0; accent-color:#6e81ff; }.sc-noga-chat__consent a { color:#cbd2ff; text-decoration:underline; text-underline-offset:2px; }.sc-noga-chat__composer { display:flex; gap:8px; }.sc-noga-chat__composer input { min-width:0; flex:1; border:1px solid rgba(161,161,166,.26); border-radius:14px; background:rgba(255,255,255,.08); color:#fff; padding:11px 12px; font:13px inherit; outline:none; }.sc-noga-chat__composer input:focus { border-color:#8292ff; box-shadow:0 0 0 3px rgba(111,132,255,.15); }.sc-noga-chat__composer button { width:42px; border:0; border-radius:14px; background:#6377f7; color:#fff; font:600 21px/1 inherit; cursor:pointer; }.sc-noga-chat__composer button:disabled,.sc-noga-chat__composer input:disabled { opacity:.55; cursor:wait; }
@media(max-width:720px){.sc-noga-chat{right:14px;bottom:14px;width:calc(100vw - 28px)}.sc-noga-chat__messages{max-height:260px}}

/* La primera elección de privacidad tiene prioridad visual y funcional. */
body:has(.sc-cookie-panel:not([hidden])) .sc-noga-chat,
body:has(.sc-cookie-panel:not([hidden])) .sc-noga-assistant,
body:has(.sc-cookie-panel:not([hidden])) [data-noga-open] { visibility:hidden; pointer-events:none; }
/* Noga: Safari recompone capas animadas al cambiar orientación. El núcleo se recorta con una máscara circular también en tablet y horizontal, evitando que aflore la textura cuadrada sin apagar su movimiento líquido. */@media (max-width:1024px), (hover:none) {  .sc2026-site .orbit { overflow:hidden !important; isolation:isolate; clip-path:circle(50% at 50% 50%); -webkit-clip-path:circle(50% at 50% 50%); -webkit-mask-image:-webkit-radial-gradient(circle,#000 99%,transparent 100%); mask-image:radial-gradient(circle,#000 99%,transparent 100%); transform:translateZ(0); }  .sc2026-site .orbit::before, .sc2026-site .orbit::after { border-radius:50% !important; transform-origin:center; backface-visibility:hidden; -webkit-backface-visibility:hidden; }}/* La miniatura conserva una silueta perfectamente redonda en móvil, horizontal y tablet. */@media (max-width:1024px), (hover:none) {
	.sc2026-site .sc-noga-assistant__core, .sc2026-site .sc-noga-chat__avatar { overflow:hidden; isolation:isolate; clip-path:circle(50%); -webkit-clip-path:circle(50%); -webkit-mask-image:-webkit-radial-gradient(circle,#000 99%,transparent 100%); mask-image:radial-gradient(circle,#000 99%,transparent 100%); transform:translateZ(0); }}
