/* =========================================================================
   INCUBATEC powered by Solydes + UPB — hoja de estilos única
   Contenido y paleta según "Web Express — Brief para diseño", ID 04 — Incubatec.
   Tokens → base → controles → header → secciones → tarjetas → formularios.
   ========================================================================= */
/* Montserrat se carga desde Google Fonts mediante <link> en index.html.
   Si Incubatec entrega archivos de fuente licenciados, colocarlos en Assets/fonts/
   y reemplazar ese <link> por reglas @font-face. */

:root{
/* Paleta declarada en el brief 04 — Incubatec:
   primario #00BDCD (turquesa), secundarios #143980 (azul), #231F20 (texto), #FFFFFF.
   Los tonos derivados se obtienen del artwork del logo INCUBATEC. */
--turquoise:#00bdcd;--turquoise-bright:#06bdcd;--turquoise-deep:#007f89;--cyan:#7ceaf0;--cyan-muted:#3da9bd;
--navy:#143980;--navy-logo:#233d7d;--navy-mid:#326db6;--navy-hero:#1f4387;
--ink:#191c3d;--ink-soft:#536071;--ink-quiet:#697071;
--paper:#ffffff;--paper-tint:#f6f8f9;--paper-deep:#e4e4df;
--line-ink:rgba(25,35,84,.5);--line-ink-soft:rgba(25,28,61,.14);--line-ink-mid:rgba(25,28,61,.24);
--line-paper:rgba(255,255,255,.7);--line-paper-soft:rgba(255,255,255,.14);--line-paper-mid:rgba(255,255,255,.24);
/* semantic aliases */
--surface-page:var(--paper);--surface-dark:var(--ink);--surface-tint:var(--paper-tint);--surface-card:var(--paper);
--text-heading:var(--ink);--text-body:var(--ink-soft);--text-quiet:var(--ink-quiet);
--text-on-dark:var(--paper);--text-on-dark-soft:rgba(255,255,255,.7);--text-on-dark-quiet:rgba(255,255,255,.42);
--accent:var(--turquoise);--accent-quiet:var(--cyan);--accent-hover:var(--cyan-muted);
--rule:var(--ink);--rule-on-dark:var(--line-paper-mid);
--focus:var(--turquoise);
}

:root{
--font-sans:Montserrat,"Helvetica Neue",Arial,sans-serif;
--type-display:300 clamp(3.8rem,8.8vw,8.8rem)/.9 var(--font-sans);
--type-h1:300 clamp(3.4rem,6vw,6.2rem)/.94 var(--font-sans);
--type-h2:300 clamp(2.7rem,4.5vw,4.5rem)/.94 var(--font-sans);
--type-h3:400 clamp(1.35rem,2vw,1.65rem)/1.05 var(--font-sans);
--type-lede:400 clamp(.95rem,1.4vw,1.12rem)/1.5 var(--font-sans);
--type-body:400 1rem/1.6 var(--font-sans);
--type-body-sm:400 .95rem/1.5 var(--font-sans);
--type-label:600 .67rem/1.2 var(--font-sans);
--type-nav:400 .82rem/1 var(--font-sans);
--type-meta:500 .7rem/1.4 var(--font-sans);
--tracking-display:-.065em;--tracking-heading:-.055em;--tracking-label:.14em;--tracking-meta:.04em;
}

:root{
--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-5:3rem;--space-6:4rem;--space-7:6rem;
--section-y:clamp(5rem,8vw,9rem); /* @kind spacing */
--shell:min(1280px,calc(100% - 3rem)); /* @kind spacing */
--shell-wide:min(1532px,calc(100% - 9.5rem)); /* @kind spacing */
--grid-gap:48px;
--radius:0px;
--rule-thin:1px;--rule-thick:2px;
--control-h:42px;--control-w:250px;--nav-item-w:172px;--header-h:84px;
}

:root{
--ease:cubic-bezier(.2,0,0,1); /* @kind other */
--dur-fast:150ms; /* @kind other */
--dur:180ms; /* @kind other */
--dur-slow:500ms; /* @kind other */
--elevation-none:none;
--elevation-hover:0 4px 16px rgba(35,61,125,.12);
--elevation-overlay:0 8px 32px rgba(35,61,125,.18);
}

*{box-sizing:border-box}
html{background:var(--surface-page)}
body{margin:0;color:var(--text-heading);background:var(--surface-page);font:var(--type-body);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}
body,button,input,textarea,select{font-family:var(--font-sans);font-kerning:normal}
img{display:block;max-width:100%}
a{color:var(--navy);text-decoration:none}
a:hover{color:var(--turquoise-deep)}
button,input,textarea,select{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
*,*::before,*::after{border-radius:var(--radius);box-shadow:none}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{color:var(--text-heading);font-family:var(--font-sans);font-weight:300;letter-spacing:var(--tracking-heading);text-wrap:balance}
h1{margin-bottom:1.5rem;font:var(--type-h1);letter-spacing:var(--tracking-heading)}
h2{margin-bottom:1.5rem;font:var(--type-h2);letter-spacing:var(--tracking-heading)}
h3{margin-bottom:1rem;font:var(--type-h3);letter-spacing:-.025em}
p{text-wrap:pretty}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.shell{width:var(--shell);margin-inline:auto}
.skip-link{position:fixed;left:1rem;top:-4rem;z-index:1000;padding:.65rem 1rem;color:var(--paper);background:var(--ink)}
.skip-link:focus{top:1rem}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.eyebrow{display:flex;align-items:center;gap:.7rem;margin:0 0 1.4rem;color:var(--text-heading);font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase}
.eyebrow span{width:24px;height:2px;background:var(--accent)}
.eyebrow--light{color:var(--paper)}
.eyebrow--light span{background:var(--cyan)}
.lede{max-width:72ch;color:var(--text-body);font:var(--type-lede)}
.heading-upper{text-transform:uppercase}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}}

.button{display:inline-flex;width:var(--control-w);max-width:100%;min-height:48px;align-items:center;justify-content:center;gap:.55rem;padding:13px 20.2px;border:1px solid transparent;font:var(--type-nav);letter-spacing:var(--tracking-meta);text-align:center;text-transform:uppercase;cursor:pointer;transition:color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}
.button--primary{color:var(--ink);background:var(--paper);border-color:var(--paper)}
.button--primary:hover,.button--primary:focus-visible{color:var(--ink);background:var(--cyan-muted);border-color:var(--cyan-muted)}
.button--outline{color:rgba(255,255,255,.82);background:rgba(255,255,255,.1);border-color:var(--line-paper-mid)}
.button--outline:hover,.button--outline:focus-visible{color:var(--paper);background:rgba(0,189,205,.25);border-color:var(--cyan-muted)}
.button--ink{color:var(--paper);background:var(--ink);border-color:var(--ink)}
.button--ink:hover,.button--ink:focus-visible{color:var(--ink);background:var(--cyan-muted);border-color:var(--cyan-muted)}
.button--accent{color:var(--ink);background:var(--accent);border-color:var(--accent)}
.button--accent:hover,.button--accent:focus-visible{color:var(--paper);background:var(--ink);border-color:var(--ink)}
.button--light{color:var(--ink);background:var(--paper);border-color:var(--paper)}
.button--light:hover,.button--light:focus-visible{color:var(--ink);background:var(--cyan);border-color:var(--cyan)}
.button--wide{width:100%}
.button[disabled],.button[aria-disabled=true]{opacity:.4;pointer-events:none}
.text-link{display:inline-flex;align-items:center;gap:.5rem;padding-bottom:.35rem;color:var(--ink);border-bottom:2px solid var(--accent);font:500 .82rem/1 var(--font-sans)}
.text-link:hover,.text-link:focus-visible{color:var(--turquoise-deep)}
.text-link--light{color:var(--paper);border-bottom-color:var(--cyan)}
.text-link--light:hover,.text-link--light:focus-visible{color:var(--cyan)}
.icon-button{display:grid;width:61px;height:50px;place-items:center;padding:0;color:var(--paper);background:transparent;border:0;cursor:pointer;transition:color 160ms var(--ease),transform 160ms var(--ease)}
.icon-button img{width:61px;height:50px}
.icon-button:hover,.icon-button:focus-visible{color:var(--cyan-muted);transform:translateX(2px)}
.tag{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .7rem;border:1px solid var(--line-ink-mid);color:var(--ink);font:500 .68rem/1 var(--font-sans);letter-spacing:var(--tracking-meta);text-transform:uppercase}
.tag--light{color:var(--paper);border-color:var(--line-paper-mid)}
.tag--accent{color:var(--ink);background:var(--accent);border-color:var(--accent)}
.tag__pin{width:13px;height:13px;flex:0 0 auto;fill:currentColor;fill-rule:evenodd;stroke:none;opacity:.85}

.site-header{position:sticky;top:0;z-index:50;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.header-inner{min-height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:2rem}
.site-header[data-header-theme=dark]{color:var(--paper);background:var(--ink);border-bottom:1px solid var(--line-paper-soft)}
.site-header[data-header-theme=light]{color:var(--ink);background:var(--paper);border-bottom:1px solid var(--line-ink-soft)}
.site-header[data-header-theme=dark]:not(.is-after-hero){border-bottom:0}
.brand{display:flex;width:261px;height:52px;flex:0 0 261px;align-items:center;padding-inline:19px}
.brand img{width:100%;max-height:100%;height:auto;object-fit:contain}
.site-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:clamp(.5rem,1.4vw,1rem);font:var(--type-nav)}
.site-nav a:not(.nav-cta){display:inline-flex;width:var(--nav-item-w);min-height:var(--control-h);align-items:center;justify-content:center;padding:.8rem 1rem;white-space:nowrap;border:1px solid transparent;letter-spacing:var(--tracking-meta);text-transform:uppercase;transition:color var(--dur-fast) var(--ease)}
.site-header[data-header-theme=dark] .site-nav a:not(.nav-cta){color:rgba(255,255,255,.82);background:var(--ink);border-color:var(--line-paper-mid)}
.site-header[data-header-theme=light] .site-nav a:not(.nav-cta){color:var(--ink);background:var(--paper);border-color:var(--line-ink-mid)}
.site-header[data-header-theme=dark] .site-nav a:not(.nav-cta):hover,.site-header[data-header-theme=dark] .site-nav a:not(.nav-cta):focus-visible{color:var(--paper)}
.site-header[data-header-theme=light] .site-nav a:not(.nav-cta):hover,.site-header[data-header-theme=light] .site-nav a:not(.nav-cta):focus-visible{color:var(--navy-hero)}
.nav-cta{display:inline-flex;width:220px;min-height:var(--control-h);white-space:nowrap;align-items:center;justify-content:center;gap:.55rem;padding:.75rem 1.2rem;border:1px solid transparent;font:var(--type-nav);letter-spacing:var(--tracking-meta);text-transform:uppercase;transition:color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}
.site-header[data-header-theme=dark] .nav-cta{color:var(--ink);background:var(--paper);border-color:var(--paper)}
.site-header[data-header-theme=light] .nav-cta{color:var(--paper);background:var(--ink);border-color:var(--ink)}
.nav-cta:hover,.nav-cta:focus-visible{color:var(--ink);background:var(--cyan-muted);border-color:var(--cyan-muted)}
.menu-toggle{display:none;align-items:center;gap:.55rem;min-height:44px;padding:.7rem .8rem;background:transparent;border:1px solid transparent;font:var(--type-nav);letter-spacing:var(--tracking-meta);text-transform:uppercase;cursor:pointer}
.menu-toggle__icon{display:inline-flex;width:22px;flex-direction:column;gap:4px}
.menu-toggle__icon i{display:block;height:2px;background:currentColor}
.site-header[data-header-theme=dark] .menu-toggle{color:var(--paper);background:var(--ink);border-color:var(--line-paper-mid)}
.site-header[data-header-theme=light] .menu-toggle{color:var(--ink);background:var(--paper);border-color:var(--line-ink-mid)}
@media (max-width:1200px){.site-nav a:not(.nav-cta){width:auto;padding:.8rem .9rem;border-color:transparent !important;background:transparent !important}.nav-cta{width:200px}}
@media (max-width:760px){
:root{--header-h:68px}
.header-inner{min-height:var(--header-h)}
.brand{width:213px;height:44px;flex-basis:213px;padding-inline:12px}
.menu-toggle{display:inline-flex}
.site-nav{position:absolute;top:100%;right:0;left:0;display:none;flex-direction:column;align-items:center;gap:.5rem;padding:1rem}
.site-header[data-header-theme=dark] .site-nav{background:var(--ink);border-bottom:1px solid var(--line-paper-soft)}
.site-header[data-header-theme=light] .site-nav{background:var(--paper);border-bottom:1px solid var(--line-ink-soft)}
.site-nav.is-open{display:flex}
.site-nav a:not(.nav-cta),.nav-cta{width:min(320px,100%)}
}

.section{padding-block:var(--section-y);background:var(--surface-page)}
.section--dark{color:var(--text-on-dark);background:var(--surface-dark)}
.section--dark h1,.section--dark h2,.section--dark h3{color:var(--paper)}
.section--dark p{color:var(--text-on-dark-soft)}
.section--tint{background:var(--surface-tint)}
.section--ruled{border-top:1px solid var(--line-ink-soft)}
.section-head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--grid-gap);align-items:center;margin-bottom:clamp(3rem,5vw,4rem)}
.section-head h2{max-width:600px;margin:0}
.section-head>p,.section-head-copy>p{max-width:none;margin:0;color:var(--text-body);font:var(--type-body)}
.section--dark .section-head>p,.section--dark .section-head-copy>p{color:var(--text-on-dark-soft)}
.section-head-copy{display:flex;flex-direction:column;align-items:stretch;gap:clamp(1.5rem,2.5vw,2rem)}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;align-items:stretch}
.split>div:first-child{display:flex;flex-direction:column;align-items:flex-start;padding-right:clamp(2rem,7.2vw,8.125rem);border-right:2px solid var(--rule-on-dark)}
.split>div:last-child{padding-left:clamp(2rem,7.2vw,8.125rem)}
.split--ink>div:first-child{border-right-color:var(--line-ink-mid)}
.hero{position:sticky;top:var(--hero-stick-top,0px);z-index:0;display:flex;overflow:hidden;min-height:min(calc(100svh - var(--header-h)),820px);padding:clamp(3rem,6vw,4.5rem) 0 clamp(2rem,3.5vw,3rem);color:var(--paper);background:#191c3d}
.hero__media{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
/* Un solo color: el azul oscuro de marca desvaneciéndose hacia la derecha, de
   modo que el texto se apoye en fondo plano y el video se lea al costado.
   --hero-scrim-opacity gradúa la capa entera. */
.hero__scrim{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:var(--hero-scrim-opacity,1);background:linear-gradient(90deg,#191c3d 0%,rgba(25,28,61,.95) 26%,rgba(25,28,61,.78) 46%,rgba(25,28,61,.38) 70%,rgba(25,28,61,0) 100%)}
.hero-grid{position:relative;z-index:3;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:clamp(2.5rem,6vw,4.5rem)}
.hero-copy{display:flex;width:min(100%,620px);margin-block:auto;flex-direction:column;align-items:flex-start;text-align:left}
.hero h1{display:flex;max-width:none;margin-bottom:1.6rem;flex-direction:column;color:var(--paper);font:300 clamp(2.6rem,5.2vw,4.6rem)/1 var(--font-sans);letter-spacing:var(--tracking-display)}
.hero h1 span{display:block}
.hero-lede{max-width:46ch;margin:0 0 2.1rem;color:rgba(255,255,255,.85);font:var(--type-lede);text-align:left}
.hero-actions{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:.7rem}
.hero-cities{display:flex;flex-flow:row wrap;align-items:center;gap:.75rem 1rem;margin-top:2.25rem}
.hero-cities__label{margin:0;color:rgba(255,255,255,.6);font:400 .82rem/1 var(--font-sans)}
.hero-cities__tags{display:flex;flex-wrap:wrap;gap:.5rem}
.hero-cities .tag{justify-content:center;color:var(--paper);border-color:var(--line-paper-mid)}
.hero-brands{display:flex;width:auto;flex-wrap:wrap;align-items:center;gap:clamp(1rem,3vw,2.25rem);padding:0;color:rgba(255,255,255,.6);text-align:left}
.hero-brands>span{display:block;margin-bottom:0;font:400 .82rem/1 var(--font-sans);white-space:nowrap}
.hero-brand-logos{display:flex;align-items:center;justify-content:flex-start;gap:clamp(1.5rem,4vw,3rem)}
.hero-brand-logos img{width:340px;height:36px;max-width:100%;object-fit:contain}
.rule-list{margin:2rem 0;padding:0;list-style:none}
.rule-list li{display:flex;gap:.9rem;padding:1rem 0;border-bottom:1px solid var(--line-ink-mid);color:var(--text-body);font:var(--type-body-sm)}
.rule-list span{color:var(--turquoise-deep);font-weight:500}
.section--dark .rule-list li{color:var(--text-on-dark-soft);border-bottom-color:var(--line-paper)}
.section--dark .rule-list span{color:var(--cyan)}
.quote{display:grid;padding:var(--section-y) clamp(1.5rem,7.6vw,8.6rem);color:var(--ink);background:var(--paper)}
.quote-inner{display:flex;width:100%;flex-direction:column;align-items:center;justify-content:center;gap:1.45rem}
.quote-mark{width:48px;height:48px;flex:0 0 48px;fill:none;stroke:var(--ink);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
.quote-mark circle{fill:var(--accent);stroke:var(--accent)}
.quote-mark path{stroke:var(--paper)}
.quote p{width:100%;max-width:1512px;margin:0;font:var(--type-h2);letter-spacing:-.04em;text-align:center;text-wrap:balance}
.quote--dark{color:var(--paper);background:var(--surface-dark)}
.quote--dark .quote-mark{stroke:var(--paper)}
.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;background:var(--rule)}
.metric{display:flex;min-height:250px;flex-direction:column;justify-content:space-between;padding:2rem;background:var(--paper)}
.metric--accent{background:var(--accent)}
.metric--ink{color:var(--paper);background:var(--ink)}
.metric strong{font:300 clamp(3.2rem,6vw,5.4rem)/.85 var(--font-sans);letter-spacing:var(--tracking-heading)}
.metric span{font:500 .72rem/1.3 var(--font-sans);letter-spacing:var(--tracking-meta);text-transform:uppercase}
.media-band{display:grid;grid-template-columns:1.35fr .65fr;gap:2px;background:var(--line-ink-mid)}
.media-band figure{position:relative;margin:0;min-height:420px;overflow:hidden;background:var(--ink)}
.media-band img{position:absolute;top:-9%;left:0;width:100%;height:118%;object-fit:cover;will-change:transform}
.media-band figcaption{position:absolute;right:0;bottom:0;left:0;padding:3rem 1.5rem 1.2rem;color:var(--paper);background:linear-gradient(transparent,rgba(25,28,61,.88));font:500 .72rem/1.4 var(--font-sans)}
/* Full-bleed photo bands. Each figure keeps the aspect ratio it has in the
   design and crops with object-fit, so the band never letterboxes. */
.photo-band{display:grid;background:var(--ink)}
.photo-band figure{position:relative;margin:0;overflow:hidden}
.photo-band img{position:absolute;top:-9%;left:0;display:block;width:100%;height:118%;object-fit:cover;will-change:transform}
.photo-band__full{aspect-ratio:1440/564}
.photo-band--stack .photo-band__full{aspect-ratio:1440/631}
.photo-band__row{display:grid;grid-template-columns:1fr 1fr}
.photo-band__row figure{aspect-ratio:720/359}
/* The video band keeps the footage's own 16:9 so the frame is never cropped —
   a shallower band would cut the heads off the people standing at the back.
   No parallax overscan here either: any of it would crop the frame again. */
@media (max-width:900px){.section-head{grid-template-columns:1fr;gap:2rem}.metric-grid{grid-template-columns:1fr 1fr}}
@media (max-width:760px){
.split{display:block}
.split>div:first-child{padding:0 0 2.5rem;border-right:0;border-bottom:2px solid var(--rule-on-dark)}
.split--ink>div:first-child{border-bottom-color:var(--line-ink-mid)}
.split>div:last-child{padding:2.5rem 0 0}
.hero{min-height:auto;padding-bottom:clamp(2.5rem,7vw,3.5rem)}
/* En móvil el degradado horizontal no sirve: la columna de texto ocupa todo
   el ancho, así que la capa pasa a ser un plano parejo al 70%. */
.hero__scrim{background:rgba(25,28,61,.8)}
.hero h1{font-size:clamp(2.4rem,11vw,3.4rem)}
.hero-copy{width:100%}
/* Los CTA del hero pasan a bloque, como el resto de botones de la página */
.hero-actions{width:100%;flex-direction:column;align-items:stretch;gap:.6rem}
.hero-actions .button{width:100%}
.hero-brands{flex-direction:column;align-items:flex-start;gap:1rem}
.hero-brand-logos img{width:100%;height:auto}
.metric-grid{grid-template-columns:1fr}
.media-band{grid-template-columns:1fr}
.media-band figure{min-height:280px}
.photo-band__row{grid-template-columns:1fr}
.quote p{font-size:clamp(2.35rem,11vw,4rem);line-height:.98}
}

.card{display:flex;min-height:203px;flex-direction:column;justify-content:space-between;padding:1.35rem;color:var(--text-body);background:var(--surface-card);border:1px solid var(--line-ink)}
.card__icon{width:60px;height:60px;object-fit:contain;object-position:left top;opacity:.5;filter:brightness(0) saturate(100%) invert(17%) sepia(26%) saturate(1694%) hue-rotate(192deg) brightness(82%) contrast(101%)}
.card h3{max-width:16ch;margin:0 0 1rem;color:var(--ink)}
.card>h3:last-child{margin-bottom:0}
.card p{max-width:34ch;margin:0;color:var(--text-body);font:var(--type-body-sm)}
.card--dark{color:var(--text-on-dark-soft);background:transparent;border-color:var(--line-paper-mid)}
.card--dark h3{color:var(--paper)}
.card--dark p{color:var(--text-on-dark-soft)}
.card--dark .card__icon{filter:brightness(0) invert(1);opacity:.7}
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}
.card-rail{display:flex;width:100vw;margin-left:calc(50% - 50vw);gap:1rem;overflow-x:auto;padding:1rem 0 1rem 1rem;mask-image:linear-gradient(90deg,transparent 0,#000 3%,#000 97%,transparent 100%);scroll-snap-type:x proximity;scrollbar-width:none}
.card-rail::-webkit-scrollbar{display:none}
.card-rail .card{width:clamp(310px,27vw,390px);flex:0 0 clamp(310px,27vw,390px);scroll-snap-align:start}
/* One tap target per city: the whole card is the WhatsApp link. */
.place-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.6rem;background:transparent;border:1px solid var(--line-paper-mid);transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}
.place-card h3{margin:0;color:var(--paper);font:400 clamp(1.5rem,2.4vw,2rem)/1.05 var(--font-sans);letter-spacing:-.03em}
.place-card p{margin:0;color:var(--text-on-dark-soft);font:var(--type-body-sm)}
.place-card .tag{align-self:flex-start}
.place-card__wa{width:30px;height:30px;flex:0 0 30px}
.place-card__wa-bubble{fill:var(--paper)}
.place-card__wa-glyph{fill:var(--ink)}
.place-card:hover,.place-card:focus-visible{background:rgba(255,255,255,.06);border-color:var(--cyan)}
.place-card:hover .place-card__wa-bubble,.place-card:focus-visible .place-card__wa-bubble{fill:var(--cyan)}
.faq{border-top:1px solid var(--line-ink-mid)}
.faq details{border-bottom:1px solid var(--line-ink-mid)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.35rem 0;color:var(--ink);font:400 clamp(1.05rem,1.6vw,1.25rem)/1.3 var(--font-sans);letter-spacing:-.02em;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--turquoise-deep);font-size:1.5rem;font-weight:300;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq p{max-width:70ch;margin:0 0 1.35rem;color:var(--text-body);font:var(--type-body-sm)}
.faq ul{max-width:70ch;margin:0 0 1.35rem;padding-left:1.15rem;color:var(--text-body);font:var(--type-body-sm)}
.faq li+li{margin-top:.7rem}
.faq ul.faq-links{list-style:none;padding-left:0}
.faq .faq-links li+li{margin-top:.25rem}
.faq a{color:var(--turquoise-deep);text-decoration:underline}
.faq a:hover,.faq a:focus-visible{color:var(--ink)}
.faq summary:hover{color:var(--turquoise-deep)}
/* El acordeón sobre fondo oscuro */
.section--dark .faq{border-top-color:var(--line-paper-mid)}
.section--dark .faq details{border-bottom-color:var(--line-paper-mid)}
.section--dark .faq summary{color:var(--paper)}
.section--dark .faq summary::after{color:var(--cyan)}
.section--dark .faq summary:hover{color:var(--cyan)}
.section--dark .faq p,.section--dark .faq ul{color:var(--text-on-dark-soft)}
.section--dark .faq a{color:var(--cyan)}
.section--dark .faq a:hover,.section--dark .faq a:focus-visible{color:var(--paper)}
.section--dark .faq strong{color:var(--paper)}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0;border-top:2px solid var(--line-paper-mid)}
.steps>div{display:flex;flex-direction:column;gap:.75rem;padding:1.75rem 1.5rem 1.75rem 0;border-right:1px solid var(--line-paper-mid)}
.steps>div:last-child{border-right:0}
.steps b{color:var(--cyan);font:500 .7rem/1 var(--font-sans);letter-spacing:var(--tracking-label);text-transform:uppercase}
.steps p{margin:0;color:var(--text-on-dark-soft);font:var(--type-body-sm)}
@media (max-width:760px){.steps>div{padding-right:0;border-right:0;border-bottom:1px solid var(--line-paper-mid)}.card-rail .card{width:min(78vw,330px);flex-basis:min(78vw,330px);min-height:248px}}

.form{display:flex;width:100%;max-width:517px;flex-direction:column;gap:1.25rem;padding:2rem;background:var(--paper);border:1px solid var(--line-ink-mid)}
.form-row{display:flex;flex-direction:column;gap:.5rem}
.form-row label{color:var(--ink);font:500 .7rem/1.2 var(--font-sans);letter-spacing:var(--tracking-meta);text-transform:uppercase}
.form-row input,.form-row textarea,.form-row select{width:100%;padding:.85rem;color:var(--ink);background:var(--paper);border:1px solid var(--line-ink-mid);outline:0;font:400 .9rem/1.4 var(--font-sans);resize:vertical;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}
.form-row input::placeholder,.form-row textarea::placeholder{color:var(--ink-quiet)}
.form-row input:focus,.form-row textarea:focus,.form-row select:focus{border-color:var(--turquoise-deep);box-shadow:0 0 0 2px rgba(0,189,205,.35)}
.form-row input:invalid:not(:placeholder-shown){border-color:#9c2b2b}
.form-row select{appearance:none;-webkit-appearance:none;padding-right:2.75rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23191c3d' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:12px 8px}
.form-status{min-height:1.4em;margin:0;color:var(--turquoise-deep);font:400 .75rem/1.4 var(--font-sans)}
.form--dark{background:transparent;border-color:var(--line-paper-mid)}
.form--dark .form-row label{color:var(--paper)}
.form--dark .form-row input,.form--dark .form-row textarea,.form--dark .form-row select{color:var(--paper);background:rgba(255,255,255,.06);border-color:var(--line-paper-mid)}
.form--dark .form-row input::placeholder{color:rgba(255,255,255,.45)}
/* El atajo background de la regla anterior borra el chevron: se repone en claro. */
.form--dark .form-row select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:12px 8px}
.form--dark .form-status{color:var(--cyan)}
.site-footer{padding-block:clamp(4.5rem,8vw,6rem);color:var(--paper);background:var(--ink)}
.footer-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(1.5rem,3.2vw,3.5rem);align-items:start}
.footer-intro{display:flex;flex-direction:column;align-items:flex-start;grid-column:span 2}
.footer-brand{display:block;width:200px}
.footer-brand img{width:100%;height:auto}
.footer-description{max-width:26ch;margin:.9rem 0 0;padding-top:.9rem;color:rgba(255,255,255,.5);border-top:1px solid rgba(255,255,255,.18);font:400 .72rem/1.5 var(--font-sans)}
.footer-label{display:block;margin:0 0 .6rem;color:var(--text-on-dark-quiet);font:400 .8rem/1.5 var(--font-sans);letter-spacing:var(--tracking-meta);text-transform:uppercase}
.footer-col{display:flex;flex-direction:column;align-items:flex-start;gap:.7rem}
.footer-col a,.footer-col p{margin:0;color:rgba(255,255,255,.78);font:var(--type-meta);font-size:.84rem}
.footer-col a:hover,.footer-col a:focus-visible{color:var(--cyan)}
.footer-support{display:flex;flex-direction:column;gap:.8rem;margin-top:1.5rem;color:var(--text-on-dark-quiet);font:500 .7rem/1.2 var(--font-sans);letter-spacing:var(--tracking-meta);text-transform:uppercase}
.support-logos{display:flex;align-items:center;gap:1.25rem}
.support-logos img{width:auto;height:30px;object-fit:contain}
.footer-copyright{margin:2.5rem 0 0;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.4);font:400 .7rem/1.4 var(--font-sans)}
@media (max-width:900px){.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-intro{grid-column:span 2}}
@media (max-width:600px){.footer-grid{grid-template-columns:1fr}}


/* -------------------------------------------------------------------------
   Ajustes propios de la landing Incubatec
   (iconos de tarjeta en SVG inline, marcas Solydes + UPB en texto,
   accesos directos a WhatsApp en el CTA final)
   ------------------------------------------------------------------------- */
svg.card__icon{width:60px;height:60px;flex:0 0 auto;fill:none;stroke:var(--turquoise-deep);stroke-width:.94;stroke-linecap:round;stroke-linejoin:round;opacity:1;filter:none}
.card--dark svg.card__icon{stroke:var(--cyan);opacity:1;filter:none}
.card--dark svg.card__icon,.card svg.card__icon{margin-bottom:1.25rem}

.support-logos b{color:rgba(255,255,255,.78);font:500 .8rem/1.3 var(--font-sans);letter-spacing:.01em;text-transform:none}

.wa-links{display:flex;flex-wrap:wrap;gap:.6rem;margin:0 0 2.5rem}

/* ── Scroll: anchor smoothing, reveal-on-enter, parallax ──────────────────
   All of it is opt-in via JS: the .reveal class is only applied when the
   script runs, so with JS off every element stays visible. */
html{scroll-behavior:smooth}
:where(section[id],main[id]){scroll-margin-top:104px}
.reveal{opacity:0;transform:translate3d(0,28px,0);transition:opacity .75s var(--ease),transform .75s var(--ease)}
.reveal.is-visible{opacity:1;transform:none}
.media-band img,.photo-band img{will-change:transform}
@media (prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
.reveal{opacity:1;transform:none;transition:none}
.media-band img,.photo-band img{transform:none !important;will-change:auto}
}

/* Sticky hero reveal: the hero pins in place and each following section
   scrolls up over it. --hero-stick-top is set by script.js — it is 0 when the
   hero fits the viewport, and negative when it is taller, so the hero settles
   with its bottom edge visible rather than its top. */
main>*:not(.hero){position:relative;z-index:1}

/* Costos dentro del acordeón de preguntas frecuentes */
.faq-cost strong{display:inline-block;margin-bottom:.4rem;color:var(--ink);font-weight:600}
.section--dark .faq-cost strong{color:var(--paper)}

/* Antetítulo del bloque de eventos */
.section-head-copy__title{margin:0;color:var(--text-heading);font:var(--type-h3);letter-spacing:-.025em}
.section--dark .section-head-copy__title{color:var(--paper)}
