/* Temas de AFT. La selección global se guarda en el servidor: private/appearance.json
   No se requiere editar CSS para cambiar de color. El logo no se modifica. */
body[data-theme="verde_lila"]{--theme-main:#087f75;--theme-secondary:#26b9ab;--theme-accent:#aa82d4;--theme-tint:#e4f7f3;--theme-deep:#075951}
body[data-theme="azul_noche"]{--theme-main:#113b77;--theme-secondary:#5986bc;--theme-accent:#accee5;--theme-tint:#eaf2fb;--theme-deep:#082b55}
body[data-theme="violeta_corporativo"]{--theme-main:#742b98;--theme-secondary:#aa78c7;--theme-accent:#d4b2e8;--theme-tint:#f4eafa;--theme-deep:#53196f}
body[data-theme="ciruela_sobria"]{--theme-main:#704268;--theme-secondary:#ac83a3;--theme-accent:#d9b8d8;--theme-tint:#f5edf4;--theme-deep:#51304c}
body[data-theme="grafito_aqua"]{--theme-main:#344b56;--theme-secondary:#24ada7;--theme-accent:#b18bd7;--theme-tint:#eaf5f3;--theme-deep:#253841}
body[data-theme="cobre_turquesa"]{--theme-main:#906a51;--theme-secondary:#29afa8;--theme-accent:#b48cd5;--theme-tint:#f8f1eb;--theme-deep:#6e4e37}
body[data-theme="azul_pizarra"]{--theme-main:#506a83;--theme-secondary:#76bec9;--theme-accent:#c19add;--theme-tint:#edf4f9;--theme-deep:#334c66}
body[data-theme="oliva_elegante"]{--theme-main:#59715f;--theme-secondary:#86b8a8;--theme-accent:#b895d4;--theme-tint:#eff5ee;--theme-deep:#3f5647}
body{--theme-main:#087f75;--theme-secondary:#26b9ab;--theme-accent:#aa82d4;--theme-tint:#e4f7f3;--theme-deep:#075951}
/* Paleta institucional: fondos claros, colores puntuales, legibilidad alta. */
.site-header{background:#fff;box-shadow:0 4px 20px rgba(27,48,72,.09)}
.nav a.active,.nav a:hover,.text-link,.card-link,.eyebrow,.service-number{color:var(--theme-main)}
.nav a.active:after,.eyebrow-line{background:var(--theme-main)}
.button-primary{background:linear-gradient(110deg,var(--theme-deep),var(--theme-main));color:#fff;box-shadow:0 9px 22px rgba(15,55,65,.14)}
.button-dark{background:var(--theme-deep);color:#fff}
.button-outline{color:var(--theme-main);border-color:var(--theme-secondary)}
.hero{background:#eef5f8;color:#142e45;min-height:485px;height:min(555px,calc(100svh - 85px))}
.hero-slide{background:linear-gradient(90deg,rgba(250,253,255,.98) 0%,rgba(249,252,254,.92) 35%,rgba(246,250,253,.47) 60%,rgba(248,250,253,0) 80%),var(--hero) center 49%/cover no-repeat}
.hero-slide:after{height:116px;width:430px;left:-85px;right:auto;bottom:-28px;opacity:.4;background:radial-gradient(ellipse 250px 170px at 5% 135%,transparent 0 33%,var(--theme-main) 34% 47%,var(--theme-secondary) 48% 61%,var(--theme-accent) 62% 72%,transparent 73%)}
.hero-copy h1,.hero-copy h2{color:#132a46;font-size:clamp(2.5rem,4.15vw,4.5rem)}
.hero-copy h1 em,.hero-copy h2 em{color:var(--theme-main)}
.hero-copy>p:not(.eyebrow){color:#465e6c}
.hero .eyebrow-light{color:var(--theme-main)}
.hero .button-outline-light{background:#fff;border:1px solid #bbcdd6;color:#16364f;backdrop-filter:none}
.hero .button-outline-light:hover{background:var(--theme-tint)}
.hero-dot{background:#bed0d8}.hero-dot.is-active{background:var(--theme-main)}
.arrow-round{background:rgba(255,255,255,.96);border-color:#d0dce2;color:#204356;box-shadow:0 3px 14px #1c3b5422}.arrow-round:hover{background:var(--theme-main);color:white}
.eyebrow-light .eyebrow-line{background:var(--theme-secondary)}
.benefit-icon,.need-icon,.service-glyph,.promo-icon,.method-icon{color:var(--theme-main);background:var(--theme-tint)}
.need-tab.is-active{background:var(--theme-deep);border-color:var(--theme-deep);color:white}
.need-tab.is-active .need-icon{color:white;background:var(--theme-main)}
.need-detail-right li:before,.check-line a,.contact-method a:hover{color:var(--theme-main)}
.section-heading h2 span,.about-content h2 span,.contact-info h2 span,.pandora-copy h2 span{color:var(--theme-main)}
.promo-card-featured{border-color:var(--theme-secondary)}
.promo-mark{background:var(--theme-tint);color:var(--theme-main)}
.service-card:hover{border-color:var(--theme-secondary)}
.contact-band{background:linear-gradient(115deg,#122a48,var(--theme-deep) 95%)}
.contact-band .band-inner h2 em{color:#c9f3ec}
.pandora-section{background:linear-gradient(130deg,#f8fbfd,var(--theme-tint))}
.pandora-panel{border-color:#dce7e9}
.footer-main a:hover{color:#bdeade}
@media(max-width:600px){
 .hero{height:615px;min-height:600px;max-height:none}
 .hero-slide{background:linear-gradient(90deg,rgba(248,252,255,.95) 0%,rgba(248,252,255,.83) 65%,rgba(248,252,255,.47) 100%),var(--hero) 67% center/cover no-repeat}
 .hero-copy h1,.hero-copy h2{color:#122b45;font-size:clamp(2.1rem,8.8vw,3rem)}
 .hero .button-outline-light{background:#fff;border-color:#9bb2c4;color:#153c52}
 .hero-controls{bottom:17px}
}


/* === Ajustes v3.1 de portada por tema === */
.hero{height:min(600px,calc(100svh - 88px));min-height:540px}
.hero-slide{background:none !important}
.hero-slide::before{background:linear-gradient(90deg,rgba(248,252,255,.98) 0%,rgba(248,252,255,.93) 35%,rgba(246,250,253,.55) 63%,rgba(248,250,253,.08) 88%)}
@media(max-width:600px){
 .hero{height:690px;min-height:690px;max-height:none}
 .hero-slide{background:none !important}
 .hero-slide::before{background:linear-gradient(90deg,rgba(248,252,255,.96) 0%,rgba(248,252,255,.90) 58%,rgba(248,252,255,.55) 80%,rgba(248,252,255,.10) 100%)}
}

/* v3.4: en teléfonos, respetar la imagen original sin velo blanco sobre los rostros */
@media(max-width:600px){
  .hero-slide::before{
    background:linear-gradient(to bottom,rgba(246,250,253,.02) 0%,rgba(246,250,253,.03) 70%,rgba(245,248,251,.46) 90%,#f5f8fb 100%) !important;
  }
}

/* AFT 4.1 — Acentos de campañas, independientes del tema corporativo */
body[data-season="navidad"]{--season-accent:#765723;--season-soft:#f6eddc;--season-border:#d9c18b;}
body[data-season="halloween"]{--season-accent:#96531e;--season-soft:#f9eddd;--season-border:#d5a36d;}
body[data-season="san_valentin"]{--season-accent:#aa456a;--season-soft:#f9ebf0;--season-border:#e3b3c2;}
body[data-season="dia_trabajo"]{--season-accent:#326d88;--season-soft:#eaf3f7;--season-border:#a7cedb;}
body[data-season="amor_amistad"]{--season-accent:#8051a5;--season-soft:#f2ecf8;--season-border:#c7acd9;}
body[data-season="ninguna"]{--season-accent:var(--theme-main);--season-soft:#ffffff;--season-border:#dce7ed;}
.season-banner[hidden]{display:none!important;}
.season-banner{background:linear-gradient(105deg,#fff 8%,var(--season-soft) 100%);border-bottom:1px solid var(--season-border);border-top:1px solid var(--season-border);color:#274253;}
.season-banner-inner{min-height:46px;display:flex;justify-content:center;align-items:center;gap:11px;text-align:center;padding-block:9px;}
.season-banner-mark{background:var(--season-soft);border:1px solid var(--season-border);color:var(--season-accent);border-radius:100%;min-width:28px;height:28px;display:grid;place-items:center;font-size:14px;font-weight:800;}
.season-banner-label{color:var(--season-accent);font-weight:800;font-size:.73rem;letter-spacing:.06em;text-transform:uppercase;}
.season-banner-text{font-size:.83rem;color:#425a67;}
body[data-season-intensity="moderada"] .season-banner{background:linear-gradient(95deg,var(--season-soft) 0%,#fff 52%,var(--season-soft) 100%);border-bottom-width:2px;}
body[data-season-intensity="moderada"] .season-banner-mark{width:34px;height:34px;font-size:18px;}
body[data-season-intensity="moderada"] #soluciones .eyebrow{color:var(--season-accent);}
@media(max-width:600px){.season-banner-inner{justify-content:flex-start;flex-wrap:wrap;gap:6px 9px;padding-block:8px}.season-banner-text{flex:1 1 100%;font-size:.78rem}.season-banner-label{font-size:.69rem}}

/* AFT v4.2: colores estacionales, con contraste reforzado para alertas. */
body[data-season="navidad"]{--season-accent:#155a3e;--season-soft:#ecf7ef;--season-border:#b08a48;}
body[data-season="halloween"]{--season-accent:#a94b0f;--season-soft:#fff0dd;--season-border:#d68b3b;}
body[data-season="anio_nuevo"]{--season-accent:#384f9d;--season-soft:#ebefff;--season-border:#c9ad54;}
body[data-season="vencimientos"]{--season-accent:#831b32;--season-soft:#ffe9e4;--season-border:#b45458;}
body[data-season="navidad"] .season-banner{background:linear-gradient(100deg,#ecf7ef 0%,#fff 55%,#fceee8 100%);border-top-color:#185f40;border-bottom-color:#a83240;}
body[data-season="halloween"] .season-banner{background:linear-gradient(100deg,#fff0dc,#fff6eb 56%,#f0e8f9);border-top-color:#d16b1a;border-bottom-color:#673e72;}
body[data-season="anio_nuevo"] .season-banner{background:linear-gradient(100deg,#edf1ff,#fff 55%,#fff6df);border-top-color:#384f9d;border-bottom-color:#c1a55c;}
body[data-season="vencimientos"] .season-banner{background:linear-gradient(110deg,#531426,#842239 70%,#571423);border-top:2px solid #f2bf76;border-bottom:2px solid #f2bf76;box-shadow:0 9px 22px #5b17202a;}
body[data-season="vencimientos"] .season-banner-label,body[data-season="vencimientos"] .season-banner-text{color:#fff7ef;}
body[data-season="vencimientos"] .season-banner-mark{background:#fff4ed;border-color:#ffc17d;color:#702237;}
body[data-season="vencimientos"] .season-banner-cta{background:#fff7eb;border:1px solid #f2c48b;color:#682134;font-size:.76rem;font-weight:800;padding:7px 12px;border-radius:7px;white-space:nowrap;}
.season-banner-cta[hidden]{display:none!important;}
.season-banner-mark{font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif;font-size:20px;background:#fff;line-height:1;}
body[data-season-intensity="moderada"] .season-banner-mark{font-size:23px;}
body[data-season="vencimientos"][data-season-intensity="moderada"] .season-banner{background:linear-gradient(100deg,#46101d,#991e37 55%,#501120);}
@media(max-width:600px){body[data-season="vencimientos"] .season-banner-cta{margin-left:auto;}}


/* AFT 4.3: contraste refinado en Grafito y aqua (solo este tema) */
body[data-theme="grafito_aqua"]{--theme-deep:#172f40;--theme-main:#344b56;--theme-secondary:#007c7c;--grafito-emphasis:#006b74;}
body[data-theme="grafito_aqua"] .section-heading h2 span,
body[data-theme="grafito_aqua"] .about-content h2 span,
body[data-theme="grafito_aqua"] .contact-info h2 span,
body[data-theme="grafito_aqua"] .pandora-copy h2 span,
body[data-theme="grafito_aqua"] .hero-copy h1 em,
body[data-theme="grafito_aqua"] .hero-copy h2 em{
  color:var(--grafito-emphasis)!important;
  box-shadow:none; /* AFT v4.4: sin subrayados decorativos en títulos bicolor */
}
body[data-theme="grafito_aqua"] .button-primary{
  background:linear-gradient(110deg,#172f40 0%,#006b74 100%)!important;
  color:#fff!important;
  border-color:#154554;
  box-shadow:0 9px 21px rgba(12,59,70,.23);
}
body[data-theme="grafito_aqua"] .button-outline,
body[data-theme="grafito_aqua"] .hero .button-outline-light{
  color:#14434d!important;
  background:#fff!important;
  border:2px solid #006b74!important;
}
body[data-theme="grafito_aqua"] .button-outline:hover,
body[data-theme="grafito_aqua"] .hero .button-outline-light:hover{background:#e6f4f2!important;}
body[data-theme="grafito_aqua"] .button-dark{background:#172f40!important;color:#fff!important;}
body[data-theme="grafito_aqua"] .nav a.active,
body[data-theme="grafito_aqua"] .nav a:hover,
body[data-theme="grafito_aqua"] .eyebrow{color:#006b74;}


/* AFT v4.4: los iconos de campaña no deben desbordar la franja.
   themes.css se carga después de styles.css, por eso el tamaño del
   contenedor debe quedar definido también aquí, no solo en styles.css. */
.season-banner .season-banner-inner{
  min-height:66px;
  padding-block:12px;
  display:flex;
  align-items:center;
}
.season-banner .season-banner-mark{
  display:grid;
  place-items:center;
  align-self:center;
  flex:0 0 40px;
  width:40px;
  min-width:40px;
  height:40px;
  padding:0;
  border:0;
  border-radius:10px;
  background:transparent;
  box-shadow:none;
  overflow:hidden;
}
.season-banner .season-banner-mark img{
  display:block;
  flex:none;
  width:40px;
  height:40px;
  object-fit:contain;
}
body[data-season-intensity="moderada"] .season-banner .season-banner-mark{
  flex-basis:46px;
  width:46px;
  min-width:46px;
  height:46px;
}
body[data-season-intensity="moderada"] .season-banner .season-banner-mark img{
  width:46px;
  height:46px;
}
@media(max-width:600px){
  .season-banner .season-banner-inner{
    min-height:0;
    padding-block:12px;
  }
  .season-banner .season-banner-mark{
    flex-basis:38px;
    width:38px;
    min-width:38px;
    height:38px;
  }
  .season-banner .season-banner-mark img{
    width:38px;
    height:38px;
  }
  body[data-season-intensity="moderada"] .season-banner .season-banner-mark{
    flex-basis:42px;
    width:42px;
    min-width:42px;
    height:42px;
  }
  body[data-season-intensity="moderada"] .season-banner .season-banner-mark img{
    width:42px;
    height:42px;
  }
}

/* AFT v4.6 — Los bordes horizontales de los mensajes de temporada
   corresponden al color principal del tema corporativo activo.
   Se mantienen los fondos, iconos y textos de cada ambientación. */
body[data-season]:not([data-season="ninguna"]) .season-banner{
  border-top-color:var(--theme-main);
  border-bottom-color:var(--theme-main);
}
