/* GeNeSS Brand · v1.0 — identidad Módulos (Índigo + Lima) */
:root{
  --gn-noche:#1E1B4B; --gn-indigo:#4F46E5; --gn-lima:#A3E635; --gn-pizarra:#5A6880; --gn-hielo:#EEF2FF; --gn-blanco:#FFFFFF;
  --gn-texto:#334155; --gn-claro:#C7D2FE; --gn-borde:#DDE3F7;
  --gn-titular:"Space Grotesk",system-ui,sans-serif; --gn-cuerpo:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --gn-radio:16px; --gn-ancho:1180px;
}

/* ---------- Base ---------- */
body,body p,body li,.et_pb_module,.et_pb_text,input,textarea,select,button{font-family:var(--gn-cuerpo)}
body{color:var(--gn-texto);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;background:#fff}
h1,h2,h3,h4,h5,h6,.et_pb_module h1,.et_pb_module h2,.et_pb_module h3,.et_pb_module h4{font-family:var(--gn-titular)!important;color:var(--gn-noche);letter-spacing:-0.025em;font-weight:700;line-height:1.08;padding-bottom:0}
a{color:var(--gn-indigo)}
::selection{background:var(--gn-lima);color:var(--gn-noche)}
#page-container .et_pb_row{max-width:var(--gn-ancho);width:88%}
.gn-lima{color:var(--gn-lima)}
.gn-indigo{color:var(--gn-indigo)}

/* ---------- Header ---------- */
#main-header,#main-header.et-fixed-header{background:var(--gn-noche)!important;box-shadow:none!important;border-bottom:1px solid rgba(255,255,255,.06)}
#top-header{display:none!important}
#logo{max-height:42%!important}
#top-menu li{padding-right:28px}
#top-menu a,#top-menu li a{font-family:var(--gn-cuerpo);font-weight:500;font-size:15px;color:#fff!important;opacity:1!important;letter-spacing:0}
#top-menu li.current-menu-item>a,#top-menu a:hover{color:var(--gn-lima)!important}
#top-menu li.gn-menu-cta{padding-right:0}
#top-menu li.gn-menu-cta>a{background:var(--gn-lima);color:var(--gn-noche)!important;font-weight:600;padding:11px 18px!important;border-radius:9px;margin-top:-11px}
#main-header.et-fixed-header #top-menu li.gn-menu-cta>a{padding-bottom:11px!important}
#top-menu li.gn-menu-cta.current-menu-item>a,#top-menu li.gn-menu-cta.current_page_item>a{color:var(--gn-noche)!important;box-shadow:0 0 0 2px #fff inset}
.mobile_menu_bar:before{color:#fff!important}
.et_mobile_menu{background:var(--gn-noche)!important;border-top:3px solid var(--gn-lima)!important}
.et_mobile_menu li a{color:#fff!important;border-bottom:1px solid rgba(255,255,255,.08)!important;font-weight:500}
.et_mobile_menu li.gn-menu-cta a{color:var(--gn-lima)!important}
#et-top-navigation{font-weight:500}

/* ---------- Sections ---------- */
.et_pb_section.gn-dark{background:linear-gradient(90deg,rgba(30,27,75,.97) 0%,rgba(30,27,75,.86) 50%,rgba(30,27,75,.55) 100%),var(--gn-patron) 0 0/448px 448px repeat,var(--gn-noche)!important}
.et_pb_section.gn-dark-plain{background:var(--gn-noche)!important}
.et_pb_section.gn-ice{background:var(--gn-hielo)!important}
.et_pb_section.gn-white{background:#fff!important}
.et_pb_section.gn-pad{padding:96px 0!important}
.et_pb_section.gn-pad-sm{padding:64px 0!important}
.et_pb_section.gn-hero{padding:120px 0 150px!important}
.et_pb_section.gn-page-hero{padding:110px 0 90px!important}
.gn-dark h1,.gn-dark h2,.gn-dark h3,.gn-dark h4,.gn-dark-plain h2,.gn-dark-plain h3{color:#fff!important}
.gn-dark p,.gn-dark li,.gn-dark-plain p,.gn-dark-plain li{color:var(--gn-claro)}

/* ---------- Type helpers ---------- */
.gn-kicker{font-family:var(--gn-cuerpo)!important;font-size:13px!important;font-weight:600!important;letter-spacing:.22em!important;text-transform:uppercase;color:var(--gn-indigo)!important;margin:0 0 16px!important;padding:0!important}
.gn-dark .gn-kicker,.gn-dark-plain .gn-kicker{color:var(--gn-lima)!important}
.gn-hero h1{font-size:clamp(40px,5.6vw,72px)!important;max-width:880px}
.gn-page-hero h1{font-size:clamp(36px,4.6vw,60px)!important;max-width:900px}
.gn-h2 h2,.gn-h2{font-size:clamp(30px,3.4vw,46px)!important}
.gn-lead,.gn-lead p{font-size:19px!important;line-height:1.6!important;max-width:680px;margin-top:22px}
.gn-center{text-align:center}
.gn-center .gn-lead{margin-left:auto;margin-right:auto}
.et_pb_text_inner h1+p,.et_pb_text_inner h2+p{margin-top:18px}

/* ---------- Buttons ---------- */
body #page-container .et_pb_button.gn-btn,body #page-container .et_pb_contact_submit{font-family:var(--gn-cuerpo)!important;font-weight:600!important;font-size:16px!important;line-height:1.2!important;border-radius:10px!important;padding:15px 26px!important;border:2px solid var(--gn-lima)!important;background:var(--gn-lima)!important;color:var(--gn-noche)!important;letter-spacing:0!important;transition:transform .15s ease,background .15s ease}
body #page-container .et_pb_button.gn-btn:hover,body #page-container .et_pb_contact_submit:hover{background:#B5F04F!important;transform:translateY(-1px);padding:15px 26px!important}
body #page-container .et_pb_button.gn-btn:after,body #page-container .et_pb_contact_submit:after{display:none!important}
body #page-container .et_pb_button.gn-btn-ghost{background:transparent!important;color:#fff!important;border-color:#818CF8!important}
body #page-container .et_pb_button.gn-btn-ghost:hover{background:rgba(255,255,255,.08)!important}
body #page-container .et_pb_button.gn-btn-dark{background:var(--gn-noche)!important;border-color:var(--gn-noche)!important;color:#fff!important}
.gn-btns .et_pb_button_module_wrapper{display:inline-block;margin:34px 12px 0 0!important}
.gn-center.gn-btns .et_pb_button_module_wrapper,.gn-btns.gn-center .et_pb_button_module_wrapper{margin:30px 6px 0!important}
.gn-btns .et_pb_button_module_wrapper .et_pb_button{margin:0}

/* ---------- Cards ---------- */
.gn-cards .et_pb_column{background:#fff;border:1px solid var(--gn-borde);border-radius:var(--gn-radio);padding:32px!important;transition:box-shadow .2s ease,transform .2s ease}
.gn-cards .et_pb_column:hover{box-shadow:0 18px 40px -24px rgba(30,27,75,.35);transform:translateY(-2px)}
.gn-cards-float{margin-top:-120px!important;position:relative;z-index:2}
.gn-ico{width:52px;height:52px;border-radius:13px;background:var(--gn-hielo);display:flex;align-items:center;justify-content:center;margin-bottom:22px}
.gn-ico svg{width:26px;height:26px;stroke:var(--gn-noche)}
.gn-ico.gn-ico-dark{background:var(--gn-noche)}
.gn-ico.gn-ico-dark svg{stroke:var(--gn-lima)}
.gn-cards h3,.gn-card h3{font-size:22px!important;margin-bottom:10px}
.gn-cards p{font-size:15.5px;color:var(--gn-pizarra);line-height:1.6}
.gn-more{font-weight:600;font-size:15px;color:var(--gn-indigo)!important;display:inline-block;margin-top:14px}
.gn-more:hover{text-decoration:underline}

/* ---------- Steps (línea de módulos) ---------- */
.gn-steps .et_pb_column{position:relative}
.gn-step-mark{display:flex;gap:6px;margin-bottom:20px}
.gn-step-mark i{width:22px;height:22px;border-radius:6px;background:var(--gn-borde);display:block}
.gn-step-mark i.on{background:var(--gn-indigo)}
.gn-step-mark i.lima{background:var(--gn-lima)}
.gn-steps h3{font-size:21px!important;margin-bottom:10px}
.gn-steps p{font-size:15.5px;color:var(--gn-pizarra)}
.gn-step-n{font-family:var(--gn-titular);font-size:14px;font-weight:600;color:var(--gn-indigo);letter-spacing:.04em;margin-bottom:6px;display:block}

/* ---------- Feature list (dark) ---------- */
.gn-feats .et_pb_column{border-top:2px solid rgba(255,255,255,.14);padding-top:26px!important}
.gn-feats h3{font-size:21px!important;color:#fff!important;margin-bottom:10px}
.gn-feats p{font-size:15.5px;color:var(--gn-claro)}
.gn-feats .gn-dot{display:inline-block;width:14px;height:14px;border-radius:4px;background:var(--gn-lima);margin-bottom:18px}

/* ---------- Detail rows (servicios) ---------- */
.gn-detail h2{font-size:clamp(28px,3vw,40px)!important}
.gn-detail p{font-size:17px}
ul.gn-list{list-style:none!important;padding:0!important;margin:0}
ul.gn-list li{position:relative;padding:12px 0 12px 34px;border-bottom:1px solid var(--gn-borde);font-size:16px;color:var(--gn-noche)}
ul.gn-list li:last-child{border-bottom:0}
ul.gn-list li:before{content:"";position:absolute;left:0;top:17px;width:16px;height:16px;border-radius:5px;background:var(--gn-indigo)}
ul.gn-list li:last-child:before{background:var(--gn-lima)}
.gn-box{background:var(--gn-hielo);border-radius:var(--gn-radio);padding:34px}
.gn-ice .gn-box{background:#fff}
.gn-box h4{font-family:var(--gn-cuerpo)!important;font-size:13px!important;letter-spacing:.2em;text-transform:uppercase;color:var(--gn-indigo)!important;font-weight:600;margin-bottom:10px}

/* ---------- Symbol story ---------- */
.gn-symbol{background:var(--gn-hielo);border-radius:24px;padding:56px;display:flex;align-items:center;justify-content:center}
.gn-symbol img{width:220px;max-width:70%}
.gn-legend{display:grid;gap:22px;margin-top:26px}
.gn-legend div{display:flex;gap:16px;align-items:flex-start}
.gn-legend b{font-family:var(--gn-titular);font-size:19px;color:var(--gn-noche);display:block;margin-bottom:4px}
.gn-legend span.sw{flex:none;width:26px;height:26px;border-radius:7px;background:var(--gn-indigo);margin-top:2px}
.gn-legend span.sw.lima{background:var(--gn-lima)}
.gn-legend span.sw.empty{background:transparent;border:2px dashed var(--gn-indigo)}
.gn-legend p{font-size:15.5px;color:var(--gn-pizarra);margin:0}

/* ---------- CTA band ---------- */
.gn-cta h2{font-size:clamp(30px,3.6vw,48px)!important;max-width:820px;margin:0 auto}

/* ---------- Contact ---------- */
.gn-form .et_pb_contact_field input,.gn-form .et_pb_contact_field textarea,.gn-form input.et_pb_contact_captcha{background:#fff!important;border:1.5px solid var(--gn-borde)!important;border-radius:10px!important;color:var(--gn-noche)!important;font-size:16px!important;padding:15px 16px!important}
.gn-form .et_pb_contact_field input:focus,.gn-form .et_pb_contact_field textarea:focus{border-color:var(--gn-indigo)!important;outline:none}
.gn-form .et_pb_contact_main_title{display:none}
.gn-form .et_pb_contact_form{display:grid!important;grid-template-columns:1fr 1fr;column-gap:16px}
.gn-form .et_pb_contact_form>p,.gn-form .et_pb_contact_form>div{margin:0 0 16px!important;width:auto!important;float:none!important;padding:0!important;clear:none!important}
.gn-form .et_pb_contact_form>p:not(.et_pb_contact_field_half),.gn-form .et_contact_bottom_container{grid-column:1/-1}
.gn-form .et_contact_bottom_container{float:none;text-align:left}
.gn-form .et-pb-contact-message{color:var(--gn-noche);font-weight:600}
.gn-info{background:var(--gn-noche);border-radius:var(--gn-radio);padding:36px;color:var(--gn-claro)}
.gn-info h3{color:#fff!important;font-size:22px!important;margin-bottom:16px}
.gn-info ol{padding-left:20px;margin:0}
.gn-info li{color:var(--gn-claro);margin-bottom:10px}
.gn-info .gn-meta{border-top:1px solid rgba(255,255,255,.14);margin-top:24px;padding-top:20px;font-size:15px}
.gn-info .gn-meta div{margin-bottom:6px}
.gn-info b{color:#fff}

/* ---------- Footer ---------- */
#main-footer{background:var(--gn-noche)!important}
#footer-bottom{background:#16143A!important;padding:22px 0!important}
#footer-info,#footer-info a{color:#A5B4FC!important;font-size:14px}
.gn-credits{display:inline-flex;align-items:center;gap:10px}
.gn-credits::before{content:"";width:22px;height:22px;flex:none;background:url(simbolo-negativo.svg) center/contain no-repeat}
#et-footer-nav{border-top:1px solid rgba(255,255,255,.08)}
#et-footer-nav{background:#1E1B4B!important}
.bottom-nav a{color:#fff!important;font-weight:500}
.bottom-nav li.current-menu-item a{color:var(--gn-lima)!important}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .et_pb_section.gn-hero{padding:80px 0 130px!important}
  .et_pb_section.gn-pad{padding:72px 0!important}
  .gn-cards .et_pb_column,.gn-steps .et_pb_column,.gn-feats .et_pb_column{margin-bottom:22px!important}
  .gn-cards-float{margin-top:-100px!important}
  .gn-symbol{padding:40px}
}
@media (max-width:600px){
  .gn-lead,.gn-lead p{font-size:17px!important}
  .gn-btns .et_pb_button_module_wrapper{display:block;margin:16px 0 0!important}
  .gn-btns .et_pb_button_module_wrapper .et_pb_button{display:block;text-align:center}
  .gn-form .et_pb_contact_form{grid-template-columns:1fr}
}
/* ---------- Fixes v1.0.1 ---------- */
.gn-center,.gn-center .et_pb_text_inner,.gn-center h2,.gn-center p{text-align:center!important}
.et_pb_section.gn-pad:has(>.et_pb_row.gn-cards-float),.et_pb_section:has(>.et_pb_row.gn-cards-float){padding-top:0!important;display:flow-root;overflow:visible}
@media (min-width:981px){.gn-cards{display:flex!important;align-items:stretch}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
