/* ============================================================
   Optimix Networks — modern theme (public site only)
   Inspired by ui.com's structure/restraint, tuned to a fluo-green accent.
   Loaded last so it wins the cascade over the legacy stylesheets.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');

:root{
  --ink:#14181a;
  --ink-2:#4c5760;
  --ink-3:#8b959c;
  --paper:#ffffff;
  --panel:#f3f9f5;
  --panel-2:#eaf5ee;
  --line:#e2e9e5;
  --brand:#49ff39;
  --brand-2:#1fb954;
  --brand-ink:#0a3d1d;
  --dark:#0a0f0c;
  --dark-2:#121a15;
  --radius:22px;
  --radius-sm:14px;
  --shadow:0 30px 70px -30px rgba(6,20,12,.35);
  --maxw:1220px;
  --gap:clamp(16px, 3vw, 32px);
}

/* ---------- reset / base ---------- */
#header_top, #header_top *, .mh, .mh *{ box-sizing:border-box; }

body{
  font-family:'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}

html{ scroll-behavior:smooth; }

.mh h1,.mh h2,.mh h3,.mh h4{
  font-family:'Inter', sans-serif;
  color:var(--ink);
  letter-spacing:-0.02em;
  margin:0;
}

.mh a{ text-decoration:none; }

.mh-wrap{ max-width:var(--maxw); margin:0 auto; padding:0 24px; }

.mh-eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--brand-2); margin-bottom:14px;
}
.mh-eyebrow::before{
  content:''; width:8px; height:8px; border-radius:50%; background:var(--brand);
  box-shadow:0 0 0 4px rgba(73,255,57,.18);
}

.mh-h2{ font-size:clamp(28px,4vw,42px); font-weight:800; line-height:1.08; }
.mh-lede{ font-size:clamp(16px,1.6vw,19px); color:var(--ink-2); line-height:1.6; max-width:640px; }

.mh-rule{ width:64px; height:4px; border-radius:2px; background:var(--brand); margin:18px 0 22px; }

/* ---------- reveal-on-scroll ---------- */
.mh-reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
.mh-reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .mh-reveal{ opacity:1; transform:none; transition:none; } }

/* ---------- buttons ---------- */
.mh-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 30px; border-radius:999px; font-weight:700; font-size:15px;
  border:2px solid transparent; cursor:pointer; transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
  white-space:nowrap;
}
.mh-btn:hover{ transform:translateY(-2px); }
.mh-btn--primary{ background:var(--brand); color:var(--brand-ink); box-shadow:0 14px 30px -12px rgba(73,255,57,.55); }
.mh-btn--primary:hover{ background:#5dff4f; color:var(--brand-ink); }
.mh-btn--ghost-dark{ background:transparent; border-color:rgba(255,255,255,.35); color:#fff; }
.mh-btn--ghost-dark:hover{ border-color:var(--brand); color:var(--brand); }
.mh-btn--ghost-light{ background:transparent; border-color:var(--line); color:var(--ink); }
.mh-btn--ghost-light:hover{ border-color:var(--brand-2); color:var(--brand-2); }

/* =========================================================
   NAV — override the legacy header2/navbar without touching PHP
   ========================================================= */
#header_top.header2{
  background:rgba(255,255,255,.92) !important;
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line);
  position:fixed !important; top:0; left:0; right:0; width:100%; z-index:2000;
  box-shadow:0 1px 0 rgba(0,0,0,.02);
}
#header_top .navbar{ background:transparent !important; box-shadow:none !important; min-height:74px; }
#header_top #mainNav{ align-items:center; }
#header_top #mainNav > li > a{
  font-family:'Inter',sans-serif !important; font-weight:600 !important; font-size:14.5px !important;
  color:var(--ink) !important; padding:27px 18px !important; position:relative; transition:color .15s ease;
}
#header_top #mainNav > li > a:hover{ color:var(--brand-2) !important; background:transparent !important; }
#header_top #mainNav > li.active{ background:transparent !important; }
#header_top #mainNav > li.active > a{ color:var(--ink) !important; }
#header_top #mainNav > li.active > a::after{
  content:''; position:absolute; left:18px; right:18px; bottom:20px; height:3px; border-radius:2px; background:var(--brand);
}
#header_top #mainNav > li:last-child > a{
  background:var(--dark) !important; color:#fff !important; border-radius:999px; padding:12px 24px !important; margin-left:8px;
}
#header_top #mainNav > li:last-child > a:hover{ background:var(--brand-2) !important; color:#06210f !important; }

/* body offset since nav is fixed */
body{ padding-top:74px !important; }

/* ============================ HERO ============================ */
.mh-hero{
  position:relative; overflow:hidden;
  min-height:min(88vh, 780px);
  display:flex; align-items:center;
  background:var(--dark);
  isolation:isolate;
}
.mh-hero__bg{
  position:absolute; inset:0; z-index:0;
  background-size:cover; background-position:center;
  opacity:.72;
  filter:saturate(1.06) brightness(1.16) contrast(1.03);
  transition:opacity .45s ease, filter .45s ease;
}
.mh-hero__scrim{
  position:absolute; inset:0; z-index:1;
  background:
    radial-gradient(60% 55% at 18% 30%, rgba(73,255,57,.28), transparent 60%),
    linear-gradient(180deg, rgba(6,10,8,.40) 0%, rgba(6,10,8,.70) 62%, rgba(5,8,6,.82) 100%);
  transition:background .45s ease;
}

/* Hero: al pasar el mouse se aclara aun mas, sin perder la onda */
.mh-hero:not(.mh-hero--campus):hover .mh-hero__bg{
  opacity:.9;
  filter:saturate(1.1) brightness(1.34) contrast(1.05);
}
.mh-hero:not(.mh-hero--campus):hover .mh-hero__scrim{
  background:
    radial-gradient(60% 55% at 18% 30%, rgba(73,255,57,.30), transparent 60%),
    linear-gradient(180deg, rgba(6,10,8,.24) 0%, rgba(6,10,8,.52) 62%, rgba(5,8,6,.68) 100%);
}
.mh-hero__content{ position:relative; z-index:2; padding:180px 0 110px; }
.mh-hero h1{
  color:#fff; font-size:clamp(34px, 5.6vw, 64px); font-weight:900; line-height:1.04; max-width:820px;
  text-shadow:0 2px 18px rgba(0,0,0,.45);
}
.mh-hero h1 em{ font-style:normal; color:var(--brand); }
.mh-hero p{
  color:rgba(255,255,255,.82); font-size:clamp(16px,1.7vw,20px); max-width:600px; margin-top:22px; line-height:1.6;
  text-shadow:0 1px 12px rgba(0,0,0,.5);
}
.mh-hero__cta{ display:flex; gap:16px; margin-top:38px; flex-wrap:wrap; }
.mh-hero__scrollcue{
  position:absolute; left:50%; bottom:28px; transform:translateX(-50%); z-index:2;
  width:26px; height:42px; border:2px solid rgba(255,255,255,.4); border-radius:16px;
}
.mh-hero__scrollcue::before{
  content:''; position:absolute; top:8px; left:50%; width:4px; height:8px; margin-left:-2px;
  border-radius:2px; background:var(--brand); animation:mhScroll 1.8s infinite;
}
@keyframes mhScroll{ 0%{opacity:1; transform:translateY(0);} 70%{opacity:0; transform:translateY(14px);} 100%{opacity:0;} }

/* ============================ FEATURE (alternating) ============================ */
.mh-section{ padding:110px 0; background:var(--paper); position:relative; }
.mh-section--panel{ background:var(--panel); }
.mh-feature{
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,6vw,90px); align-items:center;
}
.mh-feature--reverse .mh-feature__media{ order:2; }
.mh-feature--reverse .mh-feature__body{ order:1; }
.mh-feature__media{
  position:relative; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow);
  aspect-ratio:4/3.1; background:#eee;
}
.mh-feature__media img{ width:100%; height:100%; object-fit:cover; display:block; }
.mh-feature__media::after{
  content:''; position:absolute; inset:0; border-radius:var(--radius); box-shadow:inset 0 0 0 1px rgba(0,0,0,.06);
}
.mh-feature__tag{
  position:absolute; left:18px; bottom:18px; z-index:2;
  background:rgba(10,15,12,.72); backdrop-filter:blur(6px);
  color:#fff; font-size:13px; font-weight:600; padding:8px 14px; border-radius:999px;
}
.mh-feature__body p{ color:var(--ink-2); font-size:16.5px; line-height:1.7; margin-top:18px; }

/* ============================ ABOUT / QUIENES ============================ */
.mh-about-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:56px; }
.mh-stat{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-sm); padding:28px 26px;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.mh-stat:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:transparent; }
.mh-stat__icon{
  width:44px; height:44px; border-radius:12px; background:var(--panel-2); color:var(--brand-2);
  display:flex; align-items:center; justify-content:center; font-size:19px; margin-bottom:16px;
}
.mh-stat h4{ font-size:17px; font-weight:700; }
.mh-stat p{ color:var(--ink-2); font-size:14.5px; margin-top:8px; line-height:1.55; }

/* ============================ LOGO CLOUD ============================ */
.mh-logos-head{ text-align:center; margin-bottom:46px; }
.mh-logos-head .mh-rule{ margin-left:auto; margin-right:auto; }
.mh-logos{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:0;
  border-top:1px solid var(--line); border-left:1px solid var(--line);
}
.mh-logos__item{
  flex:1 1 16%; min-width:140px; aspect-ratio:2.1/1;
  border-right:1px solid var(--line); border-bottom:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; padding:22px;
}
.mh-logos__item img{
  max-width:100%; max-height:46px; object-fit:contain;
  filter:grayscale(1) opacity(.55); transition:filter .25s ease, transform .25s ease;
}
.mh-logos__item:hover img{ filter:grayscale(0) opacity(1); transform:scale(1.05); }

/* ============================ CTA BAND ============================ */
.mh-cta{
  position:relative; overflow:hidden; background:var(--dark); border-radius:32px;
  margin:0 24px; padding:80px 40px; text-align:center; isolation:isolate;
}
.mh-cta::before{
  content:''; position:absolute; inset:-20%; z-index:0;
  background:radial-gradient(45% 60% at 50% 0%, rgba(73,255,57,.35), transparent 70%);
}
.mh-cta__inner{ position:relative; z-index:1; max-width:640px; margin:0 auto; }
.mh-cta h2{ color:#fff; font-size:clamp(26px,4vw,40px); font-weight:800; }
.mh-cta p{ color:rgba(255,255,255,.7); margin-top:16px; font-size:17px; }
.mh-cta .mh-hero__cta{ justify-content:center; margin-top:32px; }

/* ============================ FOOTER override ============================ */
section.copyright#footer{
  position:static !important; background:var(--dark) !important; padding:70px 0 30px !important; color:rgba(255,255,255,.6);
}
section.copyright#footer *{ color:rgba(255,255,255,.65) !important; }
section.copyright#footer a:hover{ color:var(--brand) !important; }

/* ============================ RESPONSIVE ============================ */
/* ============================================================
   Light-touch pass for the public submenu pages (faq, contacto,
   agenda, consultoria, equipamiento). We don't rebuild their
   markup, just bring buttons / links / accordions into the
   same visual language as the rest of the public site.
   ============================================================ */
h1,h2,h3,h4,h5{ font-family:'Inter',sans-serif; letter-spacing:-0.01em; }

.btn.btn-primary,
.btn.btn-success,
button.btn-primary,
button.btn-success{
  background:var(--dark) !important; border-color:var(--dark) !important; color:#fff !important;
  border-radius:999px !important; font-weight:600 !important; transition:background .18s ease, transform .18s ease;
}
.btn.btn-primary:hover,
.btn.btn-success:hover,
button.btn-primary:hover,
button.btn-success:hover{
  background:var(--brand-2) !important; border-color:var(--brand-2) !important; color:#06210f !important; transform:translateY(-1px);
}

a{ color:var(--brand-2); }
a:hover{ color:var(--ink); }

/* jQuery UI accordion (FAQ) */
.ui-accordion .ui-accordion-header,
.ui-accordion h3{
  background:var(--paper) !important; border:1px solid var(--line) !important; color:var(--ink) !important;
  border-radius:var(--radius-sm) !important; margin-bottom:10px !important; font-weight:600 !important;
}
.ui-accordion .ui-accordion-header.ui-state-active,
.ui-accordion .ui-accordion-header:hover{
  border-color:var(--brand-2) !important; color:var(--brand-2) !important;
}
.ui-accordion .ui-accordion-content{ border:none !important; background:transparent !important; }

/* form fields */
input.form-control, textarea.form-control, select.form-control{
  border-radius:12px !important; border:1px solid var(--line) !important;
}
input.form-control:focus, textarea.form-control:focus, select.form-control:focus{
  border-color:var(--brand-2) !important; box-shadow:0 0 0 3px rgba(31,185,84,.15) !important;
}

/* ============================ SHARED NAV → anchor active state ============================ */
#header_top #mainNav > li > a{ scroll-margin-top:90px; }

/* ============================ AGENDA ============================ */
.mh-agenda{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-top:50px; }
.mh-agenda__card{
  display:flex; gap:20px; align-items:flex-start; background:var(--paper); border:1px solid var(--line);
  border-radius:var(--radius-sm); padding:22px; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.mh-agenda__card:hover{ transform:translateY(-3px); box-shadow:var(--shadow); border-color:transparent; }
.mh-agenda__date{
  flex:0 0 auto; width:64px; height:64px; border-radius:14px; background:var(--panel-2);
  display:flex; flex-direction:column; align-items:center; justify-content:center; line-height:1;
}
.mh-agenda__day{ font-size:22px; font-weight:800; color:var(--ink); }
.mh-agenda__month{ font-size:12px; font-weight:700; text-transform:uppercase; color:var(--brand-2); margin-top:2px; }
.mh-agenda__body{ flex:1 1 auto; min-width:0; }
.mh-agenda__tag{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--brand-2); margin-bottom:6px; }
.mh-agenda__body h3{ font-size:17px; font-weight:700; line-height:1.3; }
.mh-agenda__body p{ font-size:14px; color:var(--ink-2); margin-top:6px; line-height:1.5; }
.mh-agenda__action{ flex:0 0 auto; align-self:center; }

/* ============================ FAQ (native details/summary) ============================ */
.mh-faq{ max-width:820px; margin:50px auto 0; }
.mh-faq__group{ font-size:14px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--brand-2); margin:34px 0 14px; }
.mh-faq__group:first-child{ margin-top:0; }
.mh-faq__item{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-sm);
  margin-bottom:10px; overflow:hidden;
}
.mh-faq__item summary{
  list-style:none; cursor:pointer; padding:18px 22px; font-weight:600; font-size:15.5px; color:var(--ink);
  display:flex; justify-content:space-between; align-items:center; gap:16px;
}
.mh-faq__item summary::-webkit-details-marker{ display:none; }
.mh-faq__item summary::after{
  content:'+'; font-size:22px; font-weight:400; color:var(--brand-2); flex:0 0 auto; transition:transform .2s ease;
}
.mh-faq__item[open] summary::after{ transform:rotate(45deg); }
.mh-faq__item[open] summary{ border-bottom:1px solid var(--line); }
.mh-faq__answer{ padding:16px 22px 20px; color:var(--ink-2); font-size:15px; line-height:1.7; }
.mh-faq__answer p{ margin:0 0 10px; }

/* ============================ CONTACT ============================ */
.mh-contact{ display:grid; grid-template-columns:1.3fr 1fr; gap:56px; margin-top:50px; align-items:start; }
.mh-contact__form{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:36px; }
.mh-field{ margin-bottom:18px; }
.mh-field label{ display:block; font-size:13.5px; font-weight:700; color:var(--ink); margin-bottom:8px; }
.mh-contact__info{
  background:var(--dark); border-radius:var(--radius); padding:36px; color:rgba(255,255,255,.85); height:100%;
}
.mh-contact__info h3{ color:#fff; font-size:19px; font-weight:700; margin-bottom:20px; }
.mh-contact__info p{ font-size:14.5px; line-height:1.5; margin:0 0 18px; color:rgba(255,255,255,.6); }
.mh-contact__info strong{ color:var(--brand); font-size:15.5px; }

/* ============================ CAMPUS (login, always last) ============================ */
.mh-hero--campus{ min-height:auto; padding:100px 0; }
.mh-hero--campus .mh-hero__scrim{
  background:
    radial-gradient(50% 70% at 82% 20%, rgba(73,255,57,.22), transparent 60%),
    linear-gradient(180deg, #05080a 0%, #0a0f0c 100%);
}
.mh-campus{ position:relative; z-index:2; display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.mh-campus__form{
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.12); border-radius:var(--radius);
  padding:36px; backdrop-filter:blur(8px);
}
.mh-campus__form .mh-field label{ color:rgba(255,255,255,.85); }
.mh-campus__form .form-control2{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.18); color:#fff; }
.mh-campus__form .form-control2::placeholder{ color:rgba(255,255,255,.4); }
.error_session:not(:empty){ color:#ff8a8a; margin-bottom:14px; font-size:14px; }
.mensaje_sesion:not(:empty){ color:#ff8a8a; font-size:13.5px; margin-top:8px; }

/* generic form-control2 baseline (contacto + campus share this) */
.form-control2{
  width:100%; padding:13px 16px; border-radius:12px; border:1px solid var(--line);
  font-family:'Inter',sans-serif; font-size:14.5px; background:var(--paper); color:var(--ink);
}
.form-control2:focus{ outline:none; border-color:var(--brand-2); box-shadow:0 0 0 3px rgba(31,185,84,.15); }

@media (max-width:900px){
  .mh-agenda{ grid-template-columns:1fr; }
  .mh-agenda__card{ flex-direction:column; }
  .mh-agenda__action{ align-self:stretch; }
  .mh-agenda__action .mh-btn{ width:100%; }
  .mh-contact{ grid-template-columns:1fr; }
  .mh-campus{ grid-template-columns:1fr; }
  .mh-feature{ grid-template-columns:1fr; }
  .mh-feature--reverse .mh-feature__media{ order:1; }
  .mh-feature--reverse .mh-feature__body{ order:2; }
  .mh-about-grid{ grid-template-columns:1fr; }
  .mh-section{ padding:72px 0; }
  .mh-cta{ margin:0 16px; padding:56px 24px; }
  #header_top #mainNav > li > a{ color:var(--ink) !important; padding:14px 18px !important; }
  #header_top #mainNav > li.active > a::after{ display:none; }
}
