/*
 * AMIL29 · capa visual principal
 * La paleta y tipografía llegan desde /config/theme.php.
 * Los colores funcionales (WhatsApp, estados y alertas) permanecen fijos.
 */
:root {
    --a29-navy: var(--brand-dark);
    --a29-night: var(--brand-night);
    --a29-blue: var(--brand-primary);
    --a29-blue-deep: var(--brand-secondary);
    --a29-accent: var(--brand-accent);
    --a29-pale: var(--brand-sand);
    --a29-soft: var(--brand-soft-primary);
    --a29-surface: var(--brand-surface);
    --a29-muted: color-mix(in srgb, var(--brand-dark) 62%, #fff);
    --a29-line: color-mix(in srgb, var(--brand-dark) 14%, transparent);
    --a29-shadow: 0 28px 70px color-mix(in srgb, var(--brand-dark) 16%, transparent);
    --shell: min(1180px, calc(100% - 48px));
}

html { scroll-padding-top: 112px; }
body.project-amil29 { color: var(--a29-navy); background: var(--a29-surface); font-size: 1rem; line-height: 1.65; }
.project-amil29 h1, .project-amil29 h2, .project-amil29 h3 { letter-spacing: -.045em; }
.project-amil29 h1 { font-size: clamp(3rem, 6vw, 6rem); }
.project-amil29 h2 { font-size: clamp(2.25rem, 4.4vw, 4.35rem); }
.project-amil29 p { color: var(--a29-muted); }
.shell-wide { width: min(1440px, calc(100% - 48px)); margin-inline: auto; }
.section-pad { padding-block: clamp(5rem, 8vw, 8rem); }
.eyebrow, .section-tag { display: inline-flex; align-items: center; gap: .65rem; margin-bottom: 1.15rem; color: var(--a29-blue); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.eyebrow > i { width: 1.8rem; height: 1.8rem; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 0; }
.section-tag i { font-size: .42rem; }
.eyebrow-light { color: color-mix(in srgb, var(--brand-mint) 80%, #fff); }
.btn { min-height: 52px; padding: .8rem 1.3rem; border-radius: 5px; font-size: .9rem; }
.btn-primary { background: var(--a29-blue); box-shadow: 0 12px 28px color-mix(in srgb, var(--a29-blue) 25%, transparent); }
.btn-primary:hover { background: var(--a29-blue-deep); }
.btn-outline { color: var(--a29-blue-deep); border-color: var(--a29-blue); }
.btn-outline:hover { color: #fff; background: var(--a29-blue); }
.btn-light { color: var(--a29-night); background: #fff; }
.btn-text { color: inherit; }
.text-link { display: inline-flex; align-items: center; gap: .6rem; color: var(--a29-blue-deep); font-weight: 800; }

/* Marca, top bar y navegación */
.utility-bar { position: relative; z-index: 1100; color: rgba(255,255,255,.72); background: var(--a29-night); font-size: .74rem; }
.utility-inner { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.utility-facts, .utility-contact { display: flex; align-items: center; gap: 1.35rem; }
.utility-facts span, .utility-contact a { display: inline-flex; align-items: center; gap: .45rem; white-space: nowrap; }
.utility-facts i, .utility-contact i { color: color-mix(in srgb, var(--brand-mint) 82%, #fff); }
.utility-contact a:hover { color: #fff; }
.utility-contact .utility-whatsapp, .utility-contact .utility-whatsapp i { color: #72e4a0; }

.site-header { position: sticky; z-index: 1000; top: 0; background: color-mix(in srgb, var(--a29-surface) 95%, transparent); border-bottom: 1px solid transparent; backdrop-filter: blur(18px); }
.site-header.is-scrolled { border-color: var(--a29-line); box-shadow: 0 12px 32px color-mix(in srgb, var(--a29-night) 9%, transparent); }
.nav-shell { position: relative; min-height: 78px; display: flex; align-items: center; gap: 1.5rem; }
.brand { display: inline-flex; align-items: center; gap: .64rem; flex: 0 0 auto; color: var(--a29-navy); }
.brand-symbol { width: 39px; height: 39px; display: grid; place-items: center; }
.brand-symbol svg { width: 100%; height: 100%; overflow: visible; }
.brand-symbol-letter { fill: var(--a29-blue); }
.brand-symbol-node { fill: var(--a29-accent); }
.brand-word { font-family: var(--font-heading); font-size: 1.5rem; font-weight: 800; letter-spacing: -.065em; }
.desktop-nav { display: flex; align-items: center; gap: .08rem; margin-inline: auto; }
.nav-item { position: static; }
.nav-item.has-menu::after { position: absolute; top: 100%; height: 16px; content: ''; }
.nav-trigger, .desktop-nav .nav-link { min-height: 44px; display: inline-flex; align-items: center; gap: .4rem; padding: .7rem .68rem; color: var(--a29-navy); border: 0; border-radius: 0; background: transparent; font-size: .84rem; font-weight: 750; cursor: pointer; }
.nav-trigger i { font-size: .58rem; transition: transform .2s; }
.nav-trigger:hover, .desktop-nav .nav-link:hover, .nav-trigger.is-active, .desktop-nav .nav-link.is-active, .nav-item.is-open .nav-trigger { color: var(--a29-blue); background: transparent; }
.nav-item.is-open .nav-trigger i { transform: rotate(180deg); }
.mega-menu { position: absolute; top: calc(100% + 1px); left: 50%; width: min(870px, calc(100vw - 48px)); display: grid; grid-template-columns: 270px 1fr; visibility: hidden; opacity: 0; pointer-events: none; overflow: hidden; color: var(--a29-navy); background: #fff; border: 1px solid var(--a29-line); box-shadow: var(--a29-shadow); transform: translate(-50%, 10px); transition: opacity .18s, visibility .18s, transform .18s; }
.nav-item.is-open .mega-menu, .nav-item:hover .mega-menu, .nav-item:focus-within .mega-menu { visibility: visible; opacity: 1; pointer-events: auto; transform: translate(-50%, 0); }
.mega-lead { padding: 2rem; color: #fff; background: var(--a29-navy); }
.mega-kicker { display: flex; align-items: center; gap: .5rem; margin-bottom: 3rem; color: color-mix(in srgb, var(--brand-mint) 78%, #fff); font-size: .7rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.mega-lead > strong { display: block; font-family: var(--font-heading); font-size: 1.45rem; line-height: 1.22; }
.mega-lead p { margin: .65rem 0 0; color: rgba(255,255,255,.58); font-size: .78rem; line-height: 1.5; }
.mega-lead > a { display: inline-flex; align-items: center; gap: .5rem; margin-top: 1.5rem; color: color-mix(in srgb, var(--brand-mint) 78%, #fff); font-size: .78rem; font-weight: 800; }
.mega-links { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; padding: 1px; background: var(--a29-line); }
.mega-links a { display: grid; grid-template-columns: 42px 1fr auto; gap: .85rem; align-items: start; padding: 1.35rem; background: #fff; }
.mega-links a:hover { background: var(--a29-pale); }
.mega-link-icon { width: 42px; height: 42px; display: grid; place-items: center; color: var(--a29-blue); background: var(--a29-soft); }
.mega-links strong, .mega-links small { display: block; }
.mega-links strong { font-size: .88rem; }
.mega-links small { margin-top: .18rem; color: var(--a29-muted); font-size: .74rem; line-height: 1.4; }
.mega-links > a > i { align-self: center; color: var(--a29-blue); font-size: .7rem; }
.nav-actions { display: flex; align-items: center; gap: .7rem; }
.currency { display: flex; padding: 3px; background: var(--a29-pale); border: 1px solid var(--a29-line); }
.currency button { padding: .36rem .45rem; color: var(--a29-muted); border: 0; background: transparent; font-size: .68rem; font-weight: 800; cursor: pointer; }
.currency button.is-active { color: #fff; background: var(--a29-blue-deep); }
.nav-whatsapp { width: 34px; height: 34px; display: grid; place-items: center; color: #128c54; border: 1px solid var(--a29-line); }
.client-link { display: inline-flex; align-items: center; gap: .42rem; font-size: .77rem; font-weight: 800; }
.nav-cta { padding: .63rem .88rem; color: #fff; background: var(--a29-blue); border-radius: 4px; font-size: .77rem; font-weight: 800; }
.menu-toggle { display: none; width: 46px; height: 46px; margin-left: auto; color: var(--a29-navy); border: 1px solid var(--a29-line); border-radius: 0; background: #fff; cursor: pointer; }
.mobile-menu, .menu-backdrop { display: none; }

/* Portada: slider de productos */
.amil29-slider { position: relative; overflow: hidden; background: var(--a29-pale); }
.amil29-slides { min-height: 695px; }
.amil29-slide { position: absolute; inset: 0; visibility: hidden; opacity: 0; transition: opacity .55s ease, visibility .55s ease; }
.amil29-slide.is-active { position: relative; visibility: visible; opacity: 1; }
.amil29-slide::before { position: absolute; inset: 0; background-image: linear-gradient(color-mix(in srgb, var(--a29-blue) 7%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--a29-blue) 7%, transparent) 1px, transparent 1px); background-size: 54px 54px; mask-image: linear-gradient(90deg, #000, transparent 70%); content: ''; pointer-events: none; }
.slide-navy { background: linear-gradient(108deg, var(--a29-night) 0 54%, var(--a29-navy) 54%); }
.slide-navy .slider-copy { color: #fff; }
.slide-navy .slider-copy h2, .slide-navy .slider-copy p, .slide-navy .slider-copy .btn-text { color: #fff; }
.slide-navy .slider-copy p { opacity: .68; }
.slide-navy .section-tag { color: color-mix(in srgb, var(--brand-mint) 80%, #fff); }
.slide-azure { background: linear-gradient(108deg, var(--a29-pale) 0 54%, #fff 54%); }
.slide-cobalt { background: linear-gradient(108deg, color-mix(in srgb, var(--a29-soft) 58%, #fff) 0 54%, #fff 54%); }
.slider-grid { position: relative; z-index: 1; min-height: 695px; display: grid; grid-template-columns: minmax(410px,.85fr) minmax(540px,1.15fr); gap: clamp(2rem, 6vw, 7rem); align-items: center; padding-block: 4.6rem 8rem; }
.slider-copy { max-width: 650px; padding-left: clamp(0rem, 3vw, 2.4rem); }
.slider-copy h1, .slider-copy h2 { max-width: 9.5ch; margin-bottom: 1.45rem; font-size: clamp(3.15rem, 5.8vw, 6.2rem); }
.slider-copy > p { max-width: 570px; margin-bottom: 2rem; font-size: clamp(1.02rem, 1.4vw, 1.2rem); }
.slider-actions { display: flex; align-items: center; gap: 1.25rem; flex-wrap: wrap; }
.slider-trust { display: flex; gap: 1.1rem 1.65rem; flex-wrap: wrap; margin-top: 3.3rem; padding-top: 1.35rem; border-top: 1px solid var(--a29-line); }
.slider-trust span { display: inline-flex; align-items: center; gap: .5rem; color: currentColor; opacity: .68; font-size: .75rem; font-weight: 800; }
.slider-trust i { color: var(--a29-blue); opacity: 1; }
.slide-navy .slider-trust { border-color: rgba(255,255,255,.16); }
.slide-navy .slider-trust i { color: var(--a29-accent); }
.slider-media { position: relative; height: 570px; margin: 0 -24px 0 0; overflow: hidden; background: var(--a29-navy); clip-path: polygon(11% 0,100% 0,100% 100%,0 100%); }
.slider-media::after { position: absolute; inset: 0; background: linear-gradient(90deg, color-mix(in srgb, var(--a29-night) 54%, transparent), transparent 40%), linear-gradient(0deg, color-mix(in srgb, var(--a29-night) 58%, transparent), transparent 44%); content: ''; pointer-events: none; }
.slider-media img { width: 100%; height: 100%; object-fit: cover; }
.slider-media figcaption { position: absolute; z-index: 2; right: 2.2rem; bottom: 2rem; color: #fff; text-align: right; }
.slider-media figcaption span, .slider-media figcaption strong { display: block; }
.slider-media figcaption span { color: color-mix(in srgb, var(--brand-mint) 80%, #fff); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.slider-media figcaption strong { margin-top: .2rem; font-family: var(--font-heading); font-size: .96rem; }
.slider-status { position: absolute; z-index: 3; left: 0; bottom: 3rem; min-width: 215px; display: grid; grid-template-columns: auto 1fr; gap: .75rem; align-items: center; padding: 1rem 1.2rem; color: var(--a29-navy); background: #fff; box-shadow: var(--a29-shadow); }
.slider-status > i { width: 10px; height: 10px; background: #14a568; border-radius: 50%; box-shadow: 0 0 0 5px rgba(20,165,104,.14); }
.slider-status strong, .slider-status small { display: block; }
.slider-status strong { font-size: .77rem; }
.slider-status small { color: var(--a29-muted); font-size: .68rem; }
.slider-footer { position: absolute; z-index: 5; right: 0; bottom: 75px; left: 0; display: flex; align-items: center; justify-content: space-between; pointer-events: none; }
.slider-dots, .slider-arrows { display: flex; gap: .5rem; pointer-events: auto; }
.slider-dots button { width: 58px; padding: 0; color: var(--a29-muted); border: 0; background: transparent; text-align: left; cursor: pointer; }
.slider-dots span { display: block; height: 3px; background: var(--a29-line); }
.slider-dots button.is-active span { background: var(--a29-blue); }
.slider-dots small { font-size: .62rem; font-weight: 800; }
.slider-arrows button { width: 42px; height: 42px; color: var(--a29-navy); border: 1px solid var(--a29-line); background: #fff; cursor: pointer; }
.product-rail { position: relative; z-index: 6; display: grid; grid-template-columns: repeat(4,1fr); margin-top: -55px; background: #fff; border: 1px solid var(--a29-line); box-shadow: 0 20px 60px color-mix(in srgb, var(--a29-night) 10%, transparent); }
.product-rail a { min-height: 108px; display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; padding: 1.3rem; border-right: 1px solid var(--a29-line); }
.product-rail a:last-child { border: 0; }
.product-rail a:hover { color: var(--a29-blue-deep); background: var(--a29-pale); }
.product-rail span { color: var(--a29-blue); font-size: .66rem; font-weight: 800; }
.product-rail strong { font-family: var(--font-heading); font-size: .88rem; }
.product-rail i { font-size: .72rem; }

/* Buscador, soluciones y portada editorial */
.domain-search-block { margin-top: 7rem; color: #fff; background: var(--a29-blue-deep); }
.domain-search-inner { padding-block: 4.5rem 3rem; display: grid; grid-template-columns: .72fr 1.28fr; gap: 1.5rem clamp(2rem,6vw,6rem); align-items: end; }
.domain-search-block .domain-heading h2 { max-width: 8ch; margin: 0; color: #fff; }
.domain-search-block .eyebrow { color: color-mix(in srgb, var(--brand-mint) 82%, #fff); }
.domain-search-block .domain-form { display: grid; grid-template-columns: auto 1fr 112px auto; align-items: center; min-height: 68px; color: var(--a29-muted); background: #fff; }
.domain-search-block .domain-prefix { padding-left: 1.1rem; }
.domain-search-block input, .domain-search-block select { min-width: 0; height: 68px; color: var(--a29-navy); border: 0; outline: 0; background: transparent; }
.domain-search-block input { padding-inline: .35rem 1rem; font-size: 1.02rem; font-weight: 700; }
.domain-search-block select { padding-inline: .8rem; border-left: 1px solid var(--a29-line); font-weight: 800; }
.domain-search-block .btn { min-height: 68px; border-radius: 0; color: var(--a29-night); background: #fff; border-left: 1px solid var(--a29-line); box-shadow: none; }
.domain-search-block .tld-strip { grid-column: 1 / -1; display: flex; gap: 1rem 2rem; flex-wrap: wrap; padding-top: 1.3rem; border-top: 1px solid rgba(255,255,255,.2); }
.domain-search-block .tld-strip span { display: flex; gap: .45rem; font-size: .76rem; }
.domain-search-block .tld-strip small { color: rgba(255,255,255,.65); }
.home-services { background: #fff; }
.services-layout { display: grid; grid-template-columns: minmax(260px,.64fr) minmax(600px,1.36fr); gap: clamp(3rem,8vw,8rem); align-items: start; }
.sticky-heading { position: sticky; top: 140px; }
.sticky-heading h2 { max-width: 9ch; }
.sticky-heading p { margin-bottom: 2rem; }
.service-list { border-top: 1px solid var(--a29-line); }
.service-row { min-height: 158px; display: grid; grid-template-columns: 34px 52px minmax(210px,1.1fr) minmax(150px,.7fr) 32px; gap: 1rem; align-items: center; padding: 1.4rem .5rem; border-bottom: 1px solid var(--a29-line); transition: padding .2s, background .2s; }
.service-row:hover { padding-inline: 1.15rem; background: var(--a29-pale); }
.service-row.is-featured { box-shadow: inset 3px 0 0 var(--a29-blue); }
.service-index { align-self: start; padding-top: .8rem; color: var(--a29-blue); font-size: .68rem; font-weight: 800; }
.service-icon { width: 48px; height: 48px; display: grid; place-items: center; color: var(--a29-blue); background: var(--a29-soft); }
.service-row h3 { margin-bottom: .42rem; font-size: 1.25rem; }
.service-row p { margin: 0; font-size: .84rem; line-height: 1.5; }
.service-row ul { display: flex; flex-wrap: wrap; gap: .35rem; padding: 0; margin: 0; list-style: none; }
.service-row li { padding: .28rem .48rem; color: var(--a29-blue-deep); background: var(--a29-soft); font-size: .65rem; font-weight: 800; }
.service-row > a { width: 32px; height: 32px; display: grid; place-items: center; color: var(--a29-blue); border: 1px solid var(--a29-line); }
.service-row > a:hover { color: #fff; background: var(--a29-blue); }
.home-plans { background: var(--a29-pale); }
.home-promo { padding-block: 2rem; background: #fff; }
.promo-line { display: grid; grid-template-columns: auto 1fr auto; gap: 2rem; align-items: center; padding: 1.4rem 0; border-block: 1px solid var(--a29-line); }
.promo-line > span { color: var(--a29-blue); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.promo-line h2 { margin: 0 0 .25rem; font-size: 1.45rem; }
.promo-line p { margin: 0; font-size: .85rem; }
.home-infrastructure { min-height: 720px; display: grid; grid-template-columns: 1.05fr .95fr; color: #fff; background: var(--a29-navy); }
.infrastructure-image { min-height: 600px; background-image: linear-gradient(90deg, transparent, var(--a29-navy)), url("../img/hero/cloud-infrastructure.webp"); background-position: 60% center; background-size: cover; }
.infrastructure-copy { max-width: 680px; padding: clamp(5rem,9vw,9rem) clamp(2rem,7vw,7rem) clamp(5rem,9vw,9rem) clamp(2rem,5vw,5rem); }
.infrastructure-copy h2 { max-width: 10ch; color: #fff; }
.infrastructure-copy > p { color: rgba(255,255,255,.6); }
.metric-list { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; margin: 2.7rem 0; background: rgba(255,255,255,.14); }
.metric-list > div { min-height: 120px; display: grid; grid-template-columns: 40px 1fr; gap: .8rem; padding: 1.2rem; background: var(--a29-navy); }
.metric-list i { width: 40px; height: 40px; display: grid; place-items: center; color: var(--a29-accent); border: 1px solid rgba(255,255,255,.18); }
.metric-list strong, .metric-list small { display: block; }
.metric-list strong { color: #fff; font-size: .84rem; }
.metric-list small { color: rgba(255,255,255,.5); font-size: .68rem; line-height: 1.4; }
.home-email { background: #fff; }
.mail-grid { display: grid; grid-template-columns: minmax(300px,.78fr) minmax(560px,1.22fr); gap: clamp(3rem,8vw,8rem); align-items: center; }
.mail-heading h2 { max-width: 10ch; }
.mail-products { display: grid; grid-template-columns: 1fr 1fr; gap: 1.15rem; }
.mail-product { min-height: 360px; display: flex; flex-direction: column; padding: 2rem; overflow: hidden; border: 1px solid var(--a29-line); transition: transform .2s, box-shadow .2s; }
.mail-product:hover { transform: translateY(-6px); box-shadow: var(--a29-shadow); }
.mail-brand { display: flex; align-items: center; gap: .7rem; font-size: .78rem; font-weight: 800; }
.mail-brand i { width: 42px; height: 42px; display: grid; place-items: center; color: var(--a29-blue); background: var(--a29-soft); }
.mail-product > strong { max-width: 13ch; margin: auto 0 2rem; font-family: var(--font-heading); font-size: 1.65rem; line-height: 1.24; }
.mail-link { display: flex; justify-content: space-between; padding-top: 1rem; color: var(--a29-blue-deep); border-top: 1px solid var(--a29-line); font-size: .78rem; font-weight: 800; }
.mail-workspace { background: linear-gradient(150deg,#fff 65%,var(--a29-pale) 65%); }
.mail-titan { color: #fff; background: var(--a29-navy); border-color: var(--a29-navy); }
.mail-titan > strong { color: #fff; }
.mail-titan .mail-brand i { color: var(--a29-night); background: var(--a29-accent); }
.mail-titan .mail-link { color: var(--a29-accent); border-color: rgba(255,255,255,.18); }
.home-experience { padding-block: 5rem; background: var(--a29-pale); }
.experience-inner { display: grid; grid-template-columns: auto 1fr auto; gap: clamp(2rem,5vw,5rem); align-items: center; }
.experience-year { padding-right: 3.5rem; border-right: 1px solid var(--a29-line); }
.experience-year span, .experience-year strong { display: block; }
.experience-year span { color: var(--a29-blue); font-size: .67rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.experience-year strong { font-family: var(--font-heading); font-size: clamp(3.5rem,6vw,6.2rem); letter-spacing: -.08em; line-height: 1; }
.experience-inner h2 { margin-bottom: .5rem; font-size: clamp(1.8rem,3vw,3rem); }
.experience-inner p { margin: 0; }

/* Recomendador y planes: cada familia conserva una voz propia */
.recommender { color: #fff; background: var(--a29-blue-deep); }
.recommender .eyebrow { color: color-mix(in srgb, var(--brand-mint) 82%, #fff); }
.recommender-intro h2, .recommender-intro p { color: #fff; }
.recommender-intro p { opacity: .68; }
.recommender-panel { background: var(--a29-navy); box-shadow: 20px 20px 0 var(--a29-night); }
.recommend-options button { border-radius: 0; }
.plans-section { background: var(--a29-pale); }
.plans-heading { margin-bottom: 3.3rem; }
.plans-web { gap: 1px; border: 1px solid var(--a29-line); background: var(--a29-line); }
.web-plan { min-height: 590px; display: flex; flex-direction: column; padding: 1.6rem; border: 0; background: #fff; }
.web-plan:hover { z-index: 2; transform: translateY(-7px); }
.web-plan.is-featured { margin-top: -18px; color: #fff; background: var(--a29-blue-deep); border-top: 0; box-shadow: 0 22px 44px color-mix(in srgb, var(--a29-blue-deep) 28%, transparent); }
.web-plan.is-featured h3, .web-plan.is-featured .plan-price > span, .web-plan.is-featured .feature-list strong { color: #fff; }
.web-plan.is-featured p, .web-plan.is-featured .plan-price small, .web-plan.is-featured .feature-list li { color: rgba(255,255,255,.72); }
.web-plan.is-featured .feature-list, .web-plan.is-featured .plan-divider { border-color: rgba(255,255,255,.2); }
.web-plan .plan-index { color: var(--a29-blue); font-size: .7rem; font-weight: 800; }
.web-plan.is-featured .plan-index { color: var(--a29-accent); }
.web-plan .btn { margin-top: auto; }
.cloud-deck { gap: 1rem; }
.cloud-node { position: relative; overflow: hidden; color: #fff; background: var(--a29-navy); border-color: var(--brand-dark-line); box-shadow: none; }
.cloud-node::after { position: absolute; right: -30px; bottom: -30px; width: 120px; height: 120px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; content: ''; }
.cloud-node.is-featured { color: #fff; background: var(--a29-blue-deep); border-color: var(--a29-accent); box-shadow: 0 0 0 1px var(--a29-accent), var(--a29-shadow); }
.cloud-node h3, .cloud-node .plan-price > span { color: #fff; }
.cloud-node > p, .cloud-node header, .cloud-node .plan-price small, .resource-dials small { color: rgba(255,255,255,.62); }
.resource-dials strong { color: #fff; }
.resource-dials .meter { background: rgba(255,255,255,.14); }
.resource-dials .meter i { background: var(--a29-accent); }
.wp-journal { gap: 0; border-block: 1px solid var(--a29-line); }
.wp-plan { min-height: 220px; padding: 1.5rem 0; border: 0; border-bottom: 1px solid var(--a29-line); background: #fff; }
.wp-plan:nth-child(even) { margin-left: clamp(1rem,5vw,4rem); background: var(--a29-pale); }
.wp-plan.is-featured { border-left: 5px solid var(--a29-blue); padding-left: 1.3rem; }
.reseller-ladder { border: 1px solid var(--a29-line); background: #fff; }
.ladder-head, .reseller-row { padding-inline: 1.2rem; }
.reseller-row:hover { background: var(--a29-pale); }
.reseller-row.is-featured { background: var(--a29-soft); box-shadow: inset 4px 0 0 var(--a29-blue); }
.vps-console { background: var(--a29-night); border-color: var(--brand-dark-line); border-radius: 0; }
.console-bar { background: color-mix(in srgb, var(--a29-night) 86%, #fff); }
.vps-row.is-featured { box-shadow: inset 4px 0 0 var(--a29-accent); }
.vps-row .btn-terminal { color: var(--a29-night); background: var(--a29-accent); }

/* Heroes de subpáginas: la imagen se elige en /config/media.php */
.service-page .service-hero, .domain-hero, .compare-hero, .promo-hero, .payments-hero, .email-hero, .email-detail-hero, .support-hero, .knowledge-hero, .contact-hero, .about-hero, .infra-hero, .landing-hero, .legal-hero, .complaints-shell .complaints-grid:first-child, .file-hero.theme-dark, .file-hero.theme-primary {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    color: #fff;
    background-color: var(--a29-navy);
    background-image: linear-gradient(90deg, color-mix(in srgb, var(--a29-night) 96%, transparent) 0%, color-mix(in srgb, var(--a29-night) 84%, transparent) 46%, color-mix(in srgb, var(--a29-night) 35%, transparent) 76%, color-mix(in srgb, var(--a29-night) 72%, transparent) 100%), var(--page-hero-image, none);
    background-position: center, var(--page-hero-position, center);
    background-size: cover;
}
.service-hero::after, .domain-hero::after, .compare-hero::after, .promo-hero::after, .payments-hero::after, .email-hero::after, .email-detail-hero::after, .support-hero::after, .knowledge-hero::after, .contact-hero::after, .about-hero::after, .infra-hero::after, .landing-hero::after, .legal-hero::after {
    position: absolute; z-index: -1; inset: 0; background-image: linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size: 54px 54px; mask-image: linear-gradient(90deg,#000,transparent 75%); content: '';
}
.service-hero h1, .domain-hero h1, .compare-hero h1, .promo-hero h1, .payments-hero h1, .email-hero h1, .email-detail-hero h1, .support-hero h1, .knowledge-hero h1, .contact-hero h1, .about-hero h1, .infra-hero h1, .landing-hero h1, .legal-hero h1 { color: #fff; }
.service-hero p, .domain-hero p, .compare-hero p, .promo-hero p, .payments-hero p, .email-hero p, .email-detail-hero p, .support-hero p, .knowledge-hero p, .contact-hero p, .about-hero p, .infra-hero p, .landing-hero p, .legal-hero p { color: rgba(255,255,255,.68); }
.service-hero .eyebrow, .domain-hero .eyebrow, .email-hero .eyebrow, .email-detail-hero .eyebrow, .support-hero .eyebrow, .knowledge-hero .eyebrow, .contact-hero .eyebrow, .about-hero .eyebrow, .infra-hero .eyebrow, .landing-hero .eyebrow, .legal-hero .eyebrow { color: color-mix(in srgb, var(--brand-mint) 82%, #fff); }
.service-hero .btn-text { color: #fff; }
.service-page .service-hero-panel { color: #fff; background: color-mix(in srgb, var(--a29-night) 64%, transparent); border: 1px solid rgba(255,255,255,.2); backdrop-filter: blur(16px); box-shadow: none; transform: none; }
.service-hero-panel .use-case-list span, .service-hero-panel blockquote { color: #fff; border-color: rgba(255,255,255,.16); }
.service-hero-panel small, .panel-head { color: var(--a29-accent); }
.breadcrumbs { padding-block: .8rem; }

/* Características, comparadores, correo y contenido */
.service-highlights { background: #fff; }
.service-highlights[class*="highlights-"] { color: var(--a29-navy); }
.service-highlights[class*="highlights-"] .eyebrow { color: var(--a29-blue); }
.service-highlights[class*="highlights-"] .highlight-heading > p,
.service-highlights[class*="highlights-"] .capability-item p,
.service-highlights[class*="highlights-"] .capability-meta small { color: var(--a29-muted); }
.capability-board { gap: 1px; border: 1px solid var(--a29-line); background: var(--a29-line); }
.capability-item { min-height: 255px; border: 0; border-radius: 0; background: #fff; }
.capability-item:hover { background: var(--a29-pale); }
.capability-meta span { border-radius: 0; background: var(--a29-soft); }
.comparison-section { background: #fff; }
.comparison-wrap { border-radius: 0; }
.comparison-table th, .comparison-table td { font-size: .88rem; }
.faq-section { background: var(--a29-pale); }
.faq-list { border-top: 1px solid var(--a29-line); }
.faq-item { border-bottom: 1px solid var(--a29-line); }
.faq-item button { padding-block: 1.35rem; }
.email-choice, .email-plans-section { background: var(--a29-pale); }
.email-choice-grid, .email-plans { gap: 1px; border: 1px solid var(--a29-line); background: var(--a29-line); }
.email-product, .email-plan { border: 0; border-radius: 0; box-shadow: none; background: #fff; }
.email-plan { display: flex; flex-direction: column; min-height: 640px; }
.email-plan.is-featured { z-index: 2; color: #fff; background: var(--a29-blue-deep); border: 0; box-shadow: var(--a29-shadow); transform: translateY(-14px); }
.email-plan.is-featured h3, .email-plan.is-featured .email-plan-pricing strong { color: #fff; }
.email-plan.is-featured > p, .email-plan.is-featured li, .email-plan.is-featured .email-plan-pricing small, .email-plan.is-featured .email-plan-pricing span { color: rgba(255,255,255,.7); }
.email-plan.is-featured .email-plan-pricing > div { background: rgba(255,255,255,.08); border-color: var(--a29-accent); }
.email-plan.is-featured li { border-color: rgba(255,255,255,.16); }
.email-plan > .btn { margin-top: auto; }
.route-google-workspace .email-plan:nth-child(1) { box-shadow: inset 0 4px 0 color-mix(in srgb,var(--a29-blue) 72%,#fff); }
.route-google-workspace .email-plan:nth-child(2) { box-shadow: inset 0 4px 0 var(--a29-accent), var(--a29-shadow); }
.route-google-workspace .email-plan:nth-child(3) { box-shadow: inset 0 4px 0 var(--a29-blue-deep); }
.route-titan-email .email-plans-section { color: #fff; background: var(--a29-navy); }
.route-titan-email .email-plans-section h2, .route-titan-email .email-plans-section .eyebrow { color: #fff; }
.route-titan-email .email-plans-section .plans-heading > p { color: rgba(255,255,255,.62); }
.route-titan-email .email-plans { border-color: var(--brand-dark-line); background: var(--brand-dark-line); }
.route-titan-email .email-plan { color: #fff; background: var(--brand-dark-panel); }
.route-titan-email .email-plan h3, .route-titan-email .email-plan-pricing strong { color: #fff; }
.route-titan-email .email-plan > p, .route-titan-email .email-plan li, .route-titan-email .email-plan-pricing small, .route-titan-email .email-plan-pricing span { color: rgba(255,255,255,.68); }
.route-titan-email .email-plan-pricing > div { background: rgba(255,255,255,.06); border-color: var(--a29-accent); }
.route-titan-email .email-plan li { border-color: rgba(255,255,255,.14); }
.route-titan-email .email-plan.is-featured { background: var(--a29-blue-deep); box-shadow: 18px 18px 0 var(--a29-night); }
.about-timeline, .about-principles, .technology-list, .support-options, .contact-section { background: #fff; }
.about-market, .local-context, .landing-plans { background: var(--a29-pale); }
.technology-grid article, .support-card, .contact-card { border-radius: 0; }
.legal-hero { padding-block: 5.5rem; }
.legal-content { background: #fff; }

/* Pie */
.site-footer { padding-top: 4.5rem; color: rgba(255,255,255,.62); background: var(--a29-night); }
.footer-top { display: grid; grid-template-columns: minmax(230px,.72fr) minmax(620px,1.28fr); gap: clamp(3rem,7vw,7rem); align-items: start; padding-bottom: 3.2rem; }
.brand-light { color: #fff; }
.brand-light .brand-symbol-letter { fill: #fff; }
.footer-brand p { max-width: 310px; margin: 1rem 0 1.4rem; color: rgba(255,255,255,.54); font-size: .84rem; }
.footer-conversation { color: color-mix(in srgb, var(--brand-mint) 82%, #fff); font-size: .8rem; font-weight: 800; }
.footer-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 1.6rem; padding: 0; }
.footer-grid h2 { margin-bottom: 1.1rem; color: #fff; font-family: var(--font-body); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.footer-grid a { margin: .52rem 0; color: rgba(255,255,255,.58); font-size: .78rem; }
.footer-grid a:hover { color: #fff; }
.footer-bottom { margin-top: 0; padding-block: 1.4rem; border-top: 1px solid rgba(255,255,255,.13); }
.footer-bottom p { color: rgba(255,255,255,.5); font-size: .7rem; }
.social-links a { color: #fff; border-color: rgba(255,255,255,.16); }

/* Plantillas basadas en archivos */
.file-page .theme-sand { background: var(--a29-pale); }
.file-page .theme-mint { background: var(--a29-soft); }
.file-page .theme-coral { background: color-mix(in srgb, var(--a29-accent) 12%, #fff); }
.file-page .theme-dark { background: var(--a29-navy); }
.file-page .theme-primary { background: var(--a29-blue-deep); }
.file-plan, .file-feature-card, .file-info-card { border-radius: 0; }
.file-hero.has-configured-image { background-image: linear-gradient(90deg,color-mix(in srgb,var(--a29-night) 96%,transparent),color-mix(in srgb,var(--a29-night) 38%,transparent)),var(--section-image); background-position: center,var(--section-image-position); background-size: cover; }
.file-section-content.media-side .file-content-grid { grid-template-columns: minmax(240px,.65fr) minmax(300px,.85fr) minmax(320px,.8fr); }
.file-content-media { min-height: 360px; margin: 0; overflow: hidden; }
.file-content-media img { width: 100%; height: 100%; object-fit: cover; object-position: var(--section-image-position); }
.file-section-content.media-background { isolation: isolate; color: #fff; background-image: linear-gradient(90deg,color-mix(in srgb,var(--a29-night) 96%,transparent),color-mix(in srgb,var(--a29-night) 56%,transparent)),var(--section-image); background-position: center,var(--section-image-position); background-size: cover; }
.file-section-content.media-background h2, .file-section-content.media-background p, .file-section-content.media-background li { color: #fff; }

@media (max-width: 1180px) {
    .desktop-nav, .nav-actions { display: none; }
    .menu-toggle { display: grid; place-items: center; }
    .mobile-menu { position: fixed; z-index: 1200; top: 0; right: 0; width: min(430px,92vw); height: 100dvh; display: block; overflow-y: auto; padding: 1.5rem; background: #fff; box-shadow: -30px 0 70px rgba(4,19,38,.25); }
    .menu-backdrop { position: fixed; z-index: 1190; inset: 0; display: block; background: rgba(4,19,38,.58); backdrop-filter: blur(3px); }
    .mobile-menu-head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 1.2rem; border-bottom: 1px solid var(--a29-line); }
    .mobile-menu-head button { width: 42px; height: 42px; border: 1px solid var(--a29-line); background: #fff; }
    .mobile-menu nav { padding-block: 1rem; }
    .mobile-nav-group > button, .mobile-direct { padding: 1rem 0; border-color: var(--a29-line); }
    .mobile-nav-group > div { padding-left: 2rem; }
    .mobile-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; margin-top: 1rem; }
    .slider-grid { grid-template-columns: .9fr 1.1fr; gap: 2rem; }
    .slider-copy { padding-left: 0; }
    .slider-media { height: 520px; }
    .email-plan.is-featured, .web-plan.is-featured { transform: none; margin-top: 0; }
    .footer-top { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
    :root { --shell: min(100% - 32px,760px); }
    .shell-wide { width: min(100% - 32px,820px); }
    .utility-contact a:not(.utility-whatsapp) span { display: none; }
    .slider-grid { grid-template-columns: 1fr; padding-top: 4rem; }
    .slide-azure, .slide-cobalt, .slide-navy { background: var(--a29-pale); }
    .slide-navy .slider-copy { color: var(--a29-navy); }
    .slide-navy .slider-copy h2, .slide-navy .slider-copy p, .slide-navy .slider-copy .btn-text { color: var(--a29-navy); }
    .slider-copy { max-width: 740px; }
    .slider-media { height: 460px; margin: 0; }
    .slider-footer { bottom: 72px; }
    .product-rail { grid-template-columns: 1fr 1fr; margin-top: -40px; }
    .product-rail a:nth-child(2) { border-right: 0; }
    .product-rail a:nth-child(-n+2) { border-bottom: 1px solid var(--a29-line); }
    .domain-search-inner, .services-layout, .mail-grid { grid-template-columns: 1fr; }
    .sticky-heading { position: static; }
    .service-row { grid-template-columns: 34px 48px 1fr 32px; }
    .service-row ul { grid-column: 3 / 5; }
    .home-infrastructure { grid-template-columns: 1fr; }
    .infrastructure-image { min-height: 430px; background-image: linear-gradient(0deg,var(--a29-navy),transparent 60%),url("../img/hero/cloud-infrastructure.webp"); }
    .infrastructure-copy { max-width: none; padding: 0 max(24px,calc((100vw - 760px)/2)) 5rem; }
    .email-plans { grid-template-columns: 1fr; }
    .email-plan { min-height: 0; }
    .experience-inner { grid-template-columns: auto 1fr; }
    .experience-inner > .btn { grid-column: 2; justify-self: start; }
    .service-hero-grid, .email-detail-hero > .shell, .email-hero-grid, .infra-hero-grid, .landing-hero-grid { grid-template-columns: 1fr; }
    .file-section-content.media-side .file-content-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
    :root { --shell: calc(100% - 24px); }
    .shell-wide { width: calc(100% - 24px); }
    .section-pad { padding-block: 4.4rem; }
    .utility-inner { min-height: 39px; }
    .utility-facts { gap: .7rem; }
    .utility-facts span { font-size: .64rem; }
    .utility-facts span:nth-child(2) { display: none; }
    .utility-contact { gap: .75rem; }
    .nav-shell { min-height: 69px; }
    .brand-symbol { width: 35px; height: 35px; }
    .brand-word { font-size: 1.32rem; }
    .slider-grid { min-height: 0; padding-block: 3.5rem 5.5rem; }
    .slider-copy h1, .slider-copy h2 { font-size: clamp(2.65rem,14vw,4.6rem); }
    .slider-trust { margin-top: 2.4rem; }
    .slider-media { height: 360px; }
    .slider-status { bottom: 1.2rem; min-width: 190px; }
    .slider-media figcaption { right: 1rem; bottom: 1rem; }
    .slider-footer { bottom: 48px; }
    .slider-dots button { width: 38px; }
    .product-rail { margin-top: -28px; }
    .product-rail a { min-height: 86px; grid-template-columns: auto 1fr; padding: 1rem; }
    .product-rail a > i { display: none; }
    .domain-search-block { margin-top: 4rem; }
    .domain-search-block .domain-form { grid-template-columns: auto 1fr 90px; }
    .domain-search-block .btn { grid-column: 1 / -1; }
    .service-row { grid-template-columns: 30px 44px 1fr; min-height: 0; }
    .service-row ul, .service-row > a { grid-column: 3; }
    .plans-web { grid-template-columns: 1fr; }
    .web-plan { min-height: 0; }
    .wp-plan { grid-template-columns: 70px 1fr; }
    .wp-action { grid-column: 2; }
    .wp-plan:nth-child(even) { margin-left: 0; }
    .reseller-row, .vps-row { display: grid; grid-template-columns: 1fr; gap: 1rem; }
    .ladder-head, .vps-head { display: none; }
    .metric-list, .mail-products { grid-template-columns: 1fr; }
    .mail-product { min-height: 300px; }
    .promo-line { grid-template-columns: 1fr; }
    .experience-inner { grid-template-columns: 1fr; }
    .experience-year { padding: 0 0 1.5rem; border: 0; border-bottom: 1px solid var(--a29-line); }
    .experience-inner > .btn { grid-column: auto; justify-self: stretch; }
    .footer-grid { grid-template-columns: 1fr 1fr; }
    .footer-bottom { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 420px) {
    .utility-facts span:nth-child(3) { display: none; }
    .slider-actions { align-items: stretch; flex-direction: column; }
    .slider-actions .btn { width: 100%; }
    .slider-media { height: 310px; }
    .slider-media figcaption { display: none; }
    .slider-footer { bottom: 24px; }
    .slider-arrows { display: none; }
    .product-rail { grid-template-columns: 1fr; }
    .product-rail a { border-right: 0; border-bottom: 1px solid var(--a29-line); }
    .mobile-actions, .footer-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
