html, body{height:100%;}

:root{
  --bg: #f4f7fb;
  --panel: #ffffff;
  --panel2: rgba(8,32,64,.035);
  --text: #082040;
  --ink: #082040;
  --muted: rgba(8,32,64,.78);
  --muted2: rgba(8,32,64,.70);
  --line: rgba(8,32,64,.12);
  --accent: #10558e;
  --accent2:#082040;
  --primary: #10558e;
  --grad: linear-gradient(135deg, var(--accent), var(--accent2));
  --danger:#d9425e;
  --ok:#2bb673;
  --warn:#ffcc66;
  --shadow: 0 18px 50px rgba(8,32,64,.18);
  --radius: 18px;
  --radius2: 26px;
  --max: 1160px;
  --font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  --headerH: 112px;
}

*{ box-sizing: border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background: radial-gradient(1200px 520px at 18% -10%, rgba(16,85,142,.16), transparent 60%),
              radial-gradient(900px 450px at 92% 0%, rgba(8,32,64,.08), transparent 55%),
              radial-gradient(700px 420px at 35% 120%, rgba(16,85,142,.10), transparent 65%),
              var(--bg);
  color:var(--text);
  font-family: var(--font);
  line-height: 1.45;
  min-height: 100vh;
  display: flex;
  flex-direction: column;

}

a{ color:inherit; text-decoration:none; }
a:hover{ text-decoration: none; }

.container{
  width:100%;
  max-width: var(--max);
  margin:0 auto;
  padding: 0 22px;
}

.topbar{
  position: sticky;
  top:0;
  z-index:50;
  backdrop-filter: blur(10px);
  background: rgba(255,255,255,.78);
  border-bottom: 1px solid var(--line);
}

.nav{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap:14px;
  padding: 14px 0;
}

.brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight: 650;
  letter-spacing:.2px;
}

.brand .logo{
  width:34px;
  height:34px;
  border-radius: 10px;
  display:grid;
  place-items:center;
  background:none;
  border: 1px solid var(--line);
  box-shadow: 0 12px 34px rgba(8,32,64,.12);
}
.brand span{ font-size: 15px; color: var(--text); }

.navlinks{
  display:flex;
  gap:16px;
  align-items:center;
}
.navlinks a{
  padding: 10px 10px;
  border-radius: 12px;
  color: var(--muted);
  font-size: 18px;
}
.navlinks a.active,
.navlinks a:hover{
  color: var(--text);
  background: var(--panel2);
}

.ctas{
  display:flex;
  gap:10px;
  align-items:center;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding: 11px 14px;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: var(--panel2);
  color: var(--text);
  font-weight: 600;
  font-size: 18px;
  cursor:pointer;
  transition: transform .08s ease, background .12s ease, border-color .12s ease;
}
.btn:hover{ background: rgba(8,32,64,.06); border-color: rgba(8,32,64,.18); }
.btn:active{ transform: translateY(1px); }

.btn.primary{
  background: var(--grad);
  border-color: rgba(8,32,64,.18);
  color: #fff;
}
.btn.primary:hover{
  filter: brightness(1.02);
}

.btn.ghost{
  background: transparent;
}

.badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 7px 10px;
  border-radius: 999px;
  background: var(--panel2);
  border:1px solid var(--line);
  color: var(--muted);
  font-size: 13px;
}

.hero{
  padding: 58px 0 28px;
}
.heroGrid{
  display:grid;
  grid-template-columns: 1.25fr .95fr;
  gap:24px;
  align-items:stretch;
}
@media (max-width: 940px){
  .heroGrid{ grid-template-columns: 1fr; }
}

.hTitle{
  font-size: 46px;
  line-height: 1.05;
  letter-spacing: -0.6px;
  margin: 12px 0 12px;
}
@media (max-width: 520px){
  .hTitle{ font-size: 38px; }
}

.accentText{
  background: var(--grad);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

.hLead{
  color: var(--muted);
  font-size: 16px;
  margin: 0 0 18px;
  max-width: 62ch;
}

.heroCard{
  border:1px solid var(--line);
  border-radius: var(--radius2);
  background: var(--panel2);
  box-shadow: var(--shadow);
  padding: 18px;
  overflow:hidden;
  position:relative;
}
.heroCard:before{
  content:"";
  position:absolute;
  inset:-120px -120px auto auto;
  width: 260px;
  height: 260px;
  background: radial-gradient(circle at 30% 30%, rgba(16,85,142,.18), transparent 65%);
  filter: blur(2px);
}
.heroCard h3{
  margin:0;
  font-size:16px;
}
.heroCard p{
  margin:8px 0 16px;
  color: var(--muted);
  font-size: 14px;
}
.kpis{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap:12px;
}
.kpi{
  padding: 12px;
  border-radius: 16px;
  border:1px solid var(--line);
  background: var(--panel2);
}
.kpi .v{
  font-size: 22px;
  font-weight: 700;
  letter-spacing:-.3px;
}
.kpi .l{
  color: var(--muted2);
  font-size: 12px;
  margin-top:2px;
}

.section{
  padding: 26px 0;
}
.sectionHeader{
  display:flex;
  justify-content: space-between;
  align-items:flex-end;
  gap: 16px;
  margin-bottom: 14px;
}
.h2{
  margin: 0;
  font-size: 22px;
  letter-spacing: -.2px;
}
.small{
  color: var(--muted2);
  font-size: 13px;
  max-width: 70ch;
}

.grid3{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
@media (max-width: 900px){ .grid3{ grid-template-columns: 1fr; } }

.card{
  border:1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel2);
  padding: 16px;
  transition: border-color .15s ease, box-shadow .15s ease, transform .12s ease;
}
.card:hover{
  background: var(--panel2);
  border-color: rgba(8,32,64,.22);
  box-shadow: 0 6px 24px rgba(8,32,64,.08);
  transform: translateY(-1px);
}
.card h3{
  margin: 0 0 6px;
  font-size: 16px;
}
.card p{
  margin:0;
  color: var(--muted);
  font-size: 14px;
}
.card .meta{
  margin-top: 10px;
  color: var(--muted2);
  font-size: 12px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.steps{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
@media (max-width: 900px){ .steps{ grid-template-columns: 1fr; } }

.step{
  border: 1px dashed rgba(8,32,64,.18);
  border-radius: var(--radius);
  padding: 16px;
  background: var(--panel2);
}
.step .n{
  width:28px; height:28px;
  border-radius: 10px;
  display:grid;
  place-items:center;
  background: rgba(16,85,142,.12);
  border: 1px solid rgba(16,85,142,.22);
  font-weight: 700;
  margin-bottom: 10px;
}
.step p{ margin:0; color: var(--muted); font-size: 14px; }

.split{
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 14px;
  align-items: start;
}
@media (max-width: 900px){ .split{ grid-template-columns:1fr; } }

.list{
  margin: 10px 0 0;
  padding:0;
  list-style:none;
}
.list li{
  margin: 8px 0;
  padding-left: 18px;
  position: relative;
  color: var(--muted);
  font-size: 14px;
}
.list li:before{
  content:"";
  width: 8px; height: 8px;
  border-radius: 4px;
  background: var(--grad);
  position:absolute;
  left:0; top:.55em;
}

.footer{
  padding: 26px 0 40px;
  border-top: 1px solid var(--line);
  margin-top: 24px;
}
.footerGrid{
  display:grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 18px;
}
@media (max-width: 900px){ .footerGrid{ grid-template-columns:1fr; } }

.muted{ color: var(--muted); }
.tiny{ font-size: 12px; color: var(--muted2); }

/* Portal styles */
.portalShell{
  display:grid;
  grid-template-columns: 260px 1fr;
  gap: 16px;
  padding: 18px 0 34px;
}
@media (max-width: 1000px){
  .portalShell{ grid-template-columns:1fr; }
}

.sidebar{
  position: sticky;
  top: 72px;
  align-self: start;
  border:1px solid var(--line);
  border-radius: var(--radius2);
  background: var(--panel2);
  padding: 14px;
}
@media (max-width: 1000px){
  .sidebar{ position:relative; top:auto; }
}

.sideTitle{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  margin-bottom: 10px;
}
.sideTitle strong{ font-size: 14px; }
.sideLinks a{
  display:flex;
  gap:10px;
  align-items:center;
  padding: 10px 10px;
  border-radius: 14px;
  color: var(--muted);
  font-size: 14px;
}
.sideLinks a.active,
.sideLinks a:hover{
  background: var(--panel2);
  color: var(--text);
}

.mainPanel{
  border:1px solid var(--line);
  border-radius: var(--radius2);
  background: var(--panel2);
  padding: 16px;
}

.table{
  width:100%;
  border-collapse: collapse;
  overflow:hidden;
  border-radius: 14px;
  border: 1px solid var(--line);
}
.table th, .table td{
  text-align:left;
  padding: 10px 10px;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
}
.table th{
  font-size: 12px;
  letter-spacing: .2px;
  text-transform: uppercase;
  color: var(--muted2);
  background: var(--panel2);
}
.table tr:hover td{ background: var(--panel2); }

.pill{
  display:inline-flex;
  align-items:center;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  border: 1px solid var(--line);
  background: var(--panel2);
}
.pill.ok{ border-color: rgba(43,182,115,.35); background: rgba(43,182,115,.10); }
.pill.warn{ border-color: rgba(255,204,102,.35); background: rgba(255,204,102,.10); }
.pill.bad{ border-color: rgba(217,66,94,.35); background: rgba(217,66,94,.10); }

.input, .select, textarea{
  width:100%;
  padding: 12px 14px;
  border-radius: 10px;
  border:1px solid var(--line);
  background: #fff;
  color: var(--text);
  outline:none;
  font-size: 14px;
  font-family: var(--font);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.input:focus, .select:focus, textarea:focus{
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(16,85,142,.12);
}
.input::placeholder, textarea::placeholder{
  color: rgba(8,32,64,.48);
}
textarea{ min-height: 120px; resize: vertical; }

.formRow{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media(max-width: 700px){ .formRow{ grid-template-columns:1fr; } }

.note{
  padding: 12px;
  border-radius: 14px;
  border:1px solid var(--line);
  background: var(--panel2);
  color: var(--muted);
  font-size: 13px;
}

hr.sep{
  border:0; border-top:1px solid var(--line);
  margin: 16px 0;
}

code{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 12px;
  padding: 2px 6px;
  border-radius: 10px;
  background: rgba(16,85,142,.10);
  border: 1px solid rgba(8,32,64,.12);
  color: var(--text);
}

.hidden{ display:none !important; }

/* === Header logo sizing === */
.brandLogo{
  width: clamp(210px, 19vw, 258px);
  height: auto;
  max-width: 100%;
  display: block;
  object-fit: contain;
}

@media (max-width:1100px){
  :root{ --headerH: 92px; }
  .brandLogo{ width: min(210px, 100%); }
}

@media (max-width:768px){
  :root{ --headerH: 78px; }
  .brandLogo{ width: min(182px, 100%); }
}

@media (max-width:480px){
  :root{ --headerH: 68px; }
  .brandLogo{ width: min(158px, 100%); }
}

.trustRow{display:flex;gap:12px;flex-wrap:wrap;align-items:center;color:var(--muted);font-size:13px}
.trustItem{display:flex;gap:8px;align-items:center;background:rgba(255,255,255,.7);border:1px solid rgba(0,0,0,.06);padding:8px 10px;border-radius:999px}

.srOnly{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;}

.footerGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;}

.accredRow{display:flex;gap:10px;align-items:center;margin-bottom:10px;}
.accredRow img{height:28px;width:auto;display:block;}
.accred strong{font-weight:700;}


.footerBrandName{font-weight:800; font-size:16px; margin-bottom:6px; color:var(--ink);}
.accredStack{margin-top:8px}
.accredLogo{height:34px; width:auto; display:block; background:#fff; border-radius:8px; padding:6px; box-shadow:0 1px 0 rgba(0,0,0,.04);}
.accredItem{display:flex; gap:10px; align-items:center;}


.mapWrap{position:relative; width:100%; height:260px; border-radius:16px; overflow:hidden; border:1px solid rgba(0,0,0,.08);}
.mapWrap iframe{width:100%; height:100%; border:0;}
.list{padding-left:18px; margin:10px 0 0;}
.list li{margin:6px 0;}


.formNote{margin-top:10px;font-size:12px;color:#5b6b7b;}

/* Two-column grid helper */
.grid2{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
@media (max-width: 900px){
  .grid2{ grid-template-columns: 1fr; }
}

.consentRow{
  display:flex;
  gap:10px;
  align-items:flex-start;
  font-size:13px;
  color: var(--muted);
}
.consentRow input{ margin-top:2px; }
.consentRow a{ color: var(--primary); text-decoration: underline; }

.btn.disabled, .btn:disabled{
  opacity:.55;
  cursor:not-allowed;
}

/* Catchment map */
.mapFrame{height:260px;border-radius:14px;overflow:hidden;border:1px solid #d7dde6;background:#fff;}
@media (max-width: 860px){.mapFrame{height:220px;}}
/* Owner visibility filler */
.owner-extra{margin-top:14px;padding-top:12px;border-top:1px dashed #d7dde6;}
.owner-extra-title{font-weight:700;color:#0a2b4f;margin-bottom:6px;font-size:14px;}
.owner-extra-list{margin:0;padding-left:18px;color:#3b4a5a;font-size:13px;line-height:1.45;}
.owner-extra-list li{margin:6px 0;}
.muted{color:#6b7a8c;font-size:14px;margin:8px 0 12px;}

/* Areas we cover map */
.catchmentMap{height:240px;width:100%;border-radius:14px;overflow:hidden;background:#fff;}
.mapWrap{border-radius:14px;overflow:hidden;border:1px solid #d7dde6;background:#fff;}

/* Coverage proportions (match desktop screenshot) */
@media (min-width: 900px){
  #coverage .grid2{grid-template-columns:320px 1fr !important;}
}
@media (max-width: 899px){
  #coverage .grid2{grid-template-columns:1fr !important;}
  .catchmentMap{height:220px;}
}

/* Owner visibility filler */
.ownerNoteTitle{font-weight:700;color:#0a2b4f;margin-bottom:6px;font-size:14px;}
.ownerNoteList{margin:0;padding-left:18px;color:#3b4a5a;font-size:13px;line-height:1.45;}
.ownerNoteList li{margin:6px 0;}


/* Footer (unified) */
.footer{margin-top:auto;padding:28px 22px;border-top:1px solid #d7dde6;background:#f7f9fc;}
.footerGrid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1.2fr .8fr .9fr;gap:22px;align-items:start;}
.footerTitle{font-weight:700;color:#0a2b4f;margin-bottom:10px;}
.footerBrand{color:#3b4a5a;font-size:14px;line-height:1.5;margin-bottom:14px;max-width:420px;}
.footerAccTitle{font-weight:700;color:#0a2b4f;margin:12px 0 8px;}
.footerLink{display:block;color:#0a2b4f;text-decoration:none;margin:6px 0;font-size:14px;}
.footerLink:hover{text-decoration:underline;}
.footerText{color:#3b4a5a;font-size:14px;margin:6px 0;}
.footerAcc{color:#3b4a5a;font-size:13px;}
.accRow{display:flex;gap:10px;align-items:center;margin:10px 0;}
.accLogo{height:26px;width:auto;display:block;object-fit:contain;}
.accName{font-weight:700;color:#0a2b4f;font-size:13px;line-height:1.2;}
.accMeta{color:#3b4a5a;font-size:12.5px;line-height:1.25;}
@media (max-width: 900px){
  .footerGrid{grid-template-columns:1fr;gap:18px;}
}


/* Footer enhancements (policies + CMP) */
.footerSubhead{
  margin-top: 18px;
}
.accreditationLogoWide{
  width: 72px;
  height: auto;
  border-radius: 8px;
  background: transparent;
}
.accreditation--pending img{
  opacity: 1;
  filter: none;
}
@media (max-width: 720px){
  .accreditationLogoWide{
    width: 64px;
  }
}


/* Legal / policy pages */
.legalDoc{
  max-width: 900px;
}
.legalDoc h2{
  margin-top: 26px;
}
.legalDoc ul{
  margin-top: 10px;
}
.legalDoc li{
  margin: 6px 0;
}


/* Accessibility: skip link */
.skip-link{
  position:absolute;
  top:-48px;
  left:0;
  background: var(--primary);
  color: #fff;
  padding: 10px 12px;
  border-radius: 0 0 12px 0;
  text-decoration:none;
  z-index: 9999;
}
.skip-link:focus{ top: 0; }


/* Mobile layout improvements */
@media (max-width: 480px){
  .ctas{
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }
  .ctas .btn{
    width: 100%;
    justify-content: center;
  }
  .heroGrid{
    gap: 32px;
  }
}


/* ===== Unified header layout (V38) ===== */

/* ========================================
   HEADER RESPONSIVE CON MENÚ HAMBURGUESA
   ======================================== */

.siteHeader {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: #fff;
  border-bottom: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 2px 8px rgba(0,0,0,.03);
}

.headerInner {
  width: 100%;
  max-width: 1320px;
  margin: 0 auto;
  padding: 8px 22px;
  display: grid;
  grid-template-columns: clamp(240px, 22vw, 300px) 1fr auto;
  align-items: center;
  gap: clamp(18px, 2.4vw, 34px);
}

.headerLogo {
  display: flex;
  align-items: center;
  min-height: 112px;
  padding-right: clamp(18px, 2vw, 28px);
  border-right: 1px solid rgba(8,32,64,.16);
  z-index: 1001;
}

.headerLogo a{
  display:flex;
  align-items:center;
  width: 100%;
}

.headerNav {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  gap: 28px;
}

.headerNav a {
  color: var(--text, #0a2b4f);
  text-decoration: none;
  font-size: 18px;
  font-weight: 500;
  padding: 8px 12px;
  border-radius: 8px;
  transition: background-color 0.2s ease;
}

.headerNav a:hover {
  background-color: rgba(16,85,142,.08);
  text-decoration: none;
}

.headerNav a.active {
  background-color: rgba(16,85,142,.12);
  color: var(--accent, #10558e);
}

.headerCtas {
  display: flex;
  gap: 12px;
  align-items: center;
}

.headerCtas .btn {
  font-size: 16px;
}

/* Mobile Menu Toggle Button */
.mobileMenuToggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 48px;
  height: 48px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  z-index: 1001;
  position: relative;
}

.hamburgerIcon {
  width: 24px;
  height: 2px;
  background-color: var(--text, #0a2b4f);
  position: relative;
  transition: background-color 0.3s ease;
}

.hamburgerIcon::before,
.hamburgerIcon::after {
  content: '';
  position: absolute;
  width: 24px;
  height: 2px;
  background-color: var(--text, #0a2b4f);
  transition: transform 0.3s ease;
}

.hamburgerIcon::before {
  top: -7px;
}

.hamburgerIcon::after {
  top: 7px;
}

/* Hamburger animation when menu is open */
.mobileMenuToggle[aria-expanded="true"] .hamburgerIcon {
  background-color: transparent;
}

.mobileMenuToggle[aria-expanded="true"] .hamburgerIcon::before {
  transform: rotate(45deg) translate(5px, 5px);
}

.mobileMenuToggle[aria-expanded="true"] .hamburgerIcon::after {
  transform: rotate(-45deg) translate(5px, -5px);
}

/* Mobile Menu Overlay */
.mobileMenu {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  z-index: 999;
}

.mobileMenu[aria-hidden="false"] {
  opacity: 1;
  visibility: visible;
}

.mobileMenuNav {
  position: absolute;
  top: 0;
  right: 0;
  width: 280px;
  max-width: 85vw;
  height: 100vh;
  background: #fff;
  padding: calc(var(--headerH) + 12px) 24px 24px;
  display: flex;
  flex-wrap: nowrap;
  flex-direction: column;
  gap: 4px;
  box-shadow: -4px 0 24px rgba(0,0,0,.1);
  transform: translateX(100%);
  transition: transform 0.3s ease;
  overflow-y: auto;
}

.mobileMenu[aria-hidden="false"] .mobileMenuNav {
  transform: translateX(0);
}

.mobileMenuNav a {
  color: var(--text, #0a2b4f);
  text-decoration: none;
  font-size: 16px;
  font-weight: 500;
  padding: 14px 16px;
  border-radius: 10px;
  transition: background-color 0.2s ease;
}

.mobileMenuNav a:hover {
  background-color: rgba(16,85,142,.08);
}

.mobileMenuNav a.active {
  background-color: rgba(16,85,142,.12);
  color: var(--accent, #10558e);
}

.mobileMenuDivider {
  height: 1px;
  background: rgba(0,0,0,.08);
  margin: 12px 0;
}

.mobileMenuCta {
  margin-top: 8px;
  padding: 12px 16px !important;
  text-align: center;
  border-radius: 10px !important;
  border: 1px solid rgba(0,0,0,.12);
  background-color: rgba(0,0,0,.03);
}

.mobileMenuCta.primary {
  background: var(--grad, linear-gradient(135deg, #10558e, #082040));
  color: #fff !important;
  border-color: transparent;
}

/* ========================================
   RESPONSIVE BREAKPOINTS
   ======================================== */

/* Header tablet spacing handled by 1100px collapse block */

/* Colapsar navegación (hamburguesa) — móvil + zoom/tablet */
@media (max-width: 1100px) {
  .headerInner {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    padding: 8px 18px;
  }

  .headerLogo {
    min-height: 76px;
    padding-right: 0;
    border-right: 0;
  }

  /* Ocultar navegación desktop */
  .headerNav {
    display: none;
  }

  /* Ocultar CTAs (se muestran dentro del menú desplegable) */
  .headerCtas {
    display: none;
  }

  /* Mostrar botón hamburguesa */
  .mobileMenuToggle {
    display: flex;
    justify-self: end;
  }
}


/* Small mobile - ajustes adicionales */
@media (max-width: 480px) {
  .headerInner {
    padding: 6px 14px;
  }

  .headerLogo {
    min-height: 60px;
  }
  
  .mobileMenuNav {
    width: 100%;
    max-width: 100%;
    padding: calc(var(--headerH) + 12px) 20px 20px;
  }
}

/* Prevenir scroll cuando el menú está abierto */
body.menuOpen {
  overflow: hidden;
}

/* Zoom fix: nav already collapsed at 1100px, no override needed */

/* Ajuste fino en modo hamburguesa/zoom: un poco más compacto (sin pisar el móvil pequeño) */
@media (max-width: 1100px) and (min-width: 481px) {
  .headerInner {
    padding: 8px 18px;
  }
}


/* ===== Form label improvements ===== */
.formLabel {
  display: block;
  margin-bottom: 5px;
  font-size: 12px;
  font-weight: 600;
  color: var(--text);
  letter-spacing: .3px;
  text-transform: uppercase;
}
.req {
  color: var(--danger);
  font-weight: 700;
}
.formOptional {
  font-size: 10px;
  font-weight: 400;
  color: var(--muted2);
  text-transform: none;
  letter-spacing: 0;
}


/* ===== EKIN audit refresh ===== */
.headerPortalLink{
  color: var(--muted2);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}
.headerPortalLink:hover{
  color: var(--text);
}
@media (max-width: 1100px){
  .headerPortalLink{ display:none; }
}

.pageHero{
  padding: 42px 0 18px;
}
.pageLead{
  max-width: 72ch;
}

.proofStrip{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px;
}
.proofItem{
  display:inline-flex;
  align-items:center;
  padding:9px 12px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--muted);
  font-size:13px;
}

.homeDeliverables{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:14px;
}
@media (max-width: 900px){
  .homeDeliverables{ grid-template-columns:1fr; }
}

.miniGrid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  margin-top:12px;
}
@media (max-width: 700px){
  .miniGrid{ grid-template-columns:1fr; }
}

.miniCard{
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  padding:14px;
}
.miniCard strong{
  display:block;
  margin-bottom:6px;
}
.miniCard p{
  margin:0;
  color:var(--muted);
  font-size:14px;
}

.sectionStack{
  display:grid;
  gap:16px;
}

.downloadList{
  display:grid;
  gap:10px;
  margin-top:14px;
}
.downloadLink{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid var(--line);
  background:#fff;
  text-decoration:none;
}
.downloadLink:hover{
  border-color: rgba(8,32,64,.22);
  box-shadow: 0 6px 24px rgba(8,32,64,.06);
}
.downloadLink span{
  font-weight:600;
  color:var(--text);
}
.downloadLink small{
  color:var(--muted2);
  font-size:12px;
}

.formHint{
  margin-top:10px;
  font-size:12px;
  color:var(--muted2);
}

.ctaBand{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  padding:18px;
  border-radius:var(--radius2);
  border:1px solid var(--line);
  background:rgba(255,255,255,.7);
  box-shadow: 0 12px 34px rgba(8,32,64,.06);
}
.ctaBand .small{
  max-width:62ch;
}

.caseCard{
  gap:16px;
}
.caseMeta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.tag{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--muted);
}

.faqWrap{
  display:grid;
  gap:12px;
}
.faqItem{
  border:1px solid var(--line);
  border-radius:18px;
  background:rgba(255,255,255,.7);
  overflow:hidden;
}
.faqItem summary{
  cursor:pointer;
  padding:16px 18px;
  font-weight:600;
  list-style:none;
}
.faqItem summary::-webkit-details-marker{
  display:none;
}
.faqItem[open] summary{
  border-bottom:1px solid var(--line);
}
.faqAnswer{
  padding:0 18px 18px;
  color:var(--muted);
}
.faqAnswer p{
  margin:14px 0 0;
}

.footerTitle{
  margin:0 0 10px;
}
.footerBrand{
  color:#3b4a5a;
  font-size:14px;
  line-height:1.6;
  max-width:42ch;
}
.footerLinks{
  list-style:none;
  padding:0;
  margin:0;
}
.footerLinks li{
  margin:7px 0;
}
.footerLinks a{
  color:var(--text);
  text-decoration:none;
}
.footerLinks a:hover{
  text-decoration:underline;
}
.footerContact{
  display:grid;
  gap:8px;
}
.footerContact a{
  color:var(--text);
  text-decoration:none;
}
.footerContact a:hover{
  text-decoration:underline;
}
.footerText{
  color:#3b4a5a;
  font-size:14px;
  line-height:1.5;
}
.accreditations{
  display:grid;
  gap:10px;
  margin-top:8px;
}
.accreditation{
  padding-top:10px;
  border-top:1px solid rgba(8,32,64,.08);
}
.accreditation:first-child{
  padding-top:0;
  border-top:0;
}
.accLink{
  display:flex;
  gap:10px;
  align-items:center;
  text-decoration:none;
  color:inherit;
}
.accName{
  font-weight:700;
  color:#0a2b4f;
  font-size:13px;
  line-height:1.2;
}
.accMeta{
  color:#3b4a5a;
  font-size:12.5px;
  line-height:1.25;
}

@media (max-width: 720px){
  .ctaBand{
    padding:16px;
  }
  .proofStrip{
    gap:8px;
  }
  .proofItem{
    font-size:12px;
    padding:8px 10px;
  }
}

/* ===== .pageTag — label used on policy/legal pages ===== */
.pageTag {
  display: inline-flex;
  align-items: center;
  padding: 5px 12px;
  border-radius: 999px;
  background: var(--panel2);
  border: 1px solid var(--line);
  color: var(--muted);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .3px;
  text-transform: uppercase;
  margin-bottom: 14px;
}

/* ===== Page interior title size (used on all inner pages) ===== */
.hTitle--page {
  font-size: 40px;
}
@media (max-width: 520px){
  .hTitle--page { font-size: 32px; }
}

/* ===== Contact form extracted classes ===== */
.card--form {
  background: #fff;
  border-color: rgba(8,32,64,.14);
}
.formCardTitle {
  font-size: 18px;
  margin-bottom: 4px;
}
.formActions {
  margin-top: 16px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}
.btn--submit {
  min-width: 160px;
  padding: 12px 20px;
}
.consentRow--styled {
  padding: 12px 14px;
  background: rgba(16,85,142,.04);
  border-radius: 10px;
  border: 1px solid rgba(16,85,142,.14);
}
.consentCheck {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  accent-color: var(--accent);
  margin-top: 2px;
}
.consentLabel {
  font-size: 13px;
  line-height: 1.5;
  color: var(--muted);
}
.linkAccent {
  color: var(--accent);
  text-decoration: underline;
}
.mapWrap--contact {
  margin-top: 12px;
  height: 240px;
}

/* ===== Layout utility classes (extracted from inline styles) ===== */
.ctas--left {
  justify-content: flex-start;
  flex-wrap: wrap;
}
.btnRow {
  margin-top: 14px;
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}


/* ===== EKIN v3 visual refresh ===== */
.hero--media{
  padding-top: 44px;
}
.heroGrid--media{
  grid-template-columns: 1.08fr .92fr;
  align-items: center;
}
@media (max-width: 940px){
  .heroGrid--media{
    grid-template-columns: 1fr;
    gap: 18px;
  }
}
.heroCopy{
  max-width: 62ch;
}
.heroVisual,
.pageHeroMedia{
  position: relative;
  border-radius: 28px;
  overflow: hidden;
  border: 1px solid rgba(8,32,64,.10);
  background: #dfe8f3;
  box-shadow: 0 18px 50px rgba(8,32,64,.14);
}
.heroVisual{
  min-height: 460px;
}
.pageHeroMedia{
  min-height: 340px;
}
.heroVisual img,
.pageHeroMedia img{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}
.heroVisual::after,
.pageHeroMedia::after{
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(8,32,64,.03) 0%, rgba(8,32,64,.14) 46%, rgba(8,32,64,.50) 100%);
}
.heroVisualOverlay,
.mediaBadge{
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 18px;
  z-index: 1;
  padding: 16px 18px;
  border-radius: 18px;
  color: #fff;
  background: rgba(8,32,64,.56);
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(4px);
}
.heroVisualOverlay strong{
  display: block;
  font-size: 20px;
  margin-bottom: 6px;
  line-height: 1.15;
}
.heroVisualOverlay p,
.mediaBadge p{
  margin: 0;
  color: rgba(255,255,255,.88);
  font-size: 13px;
  line-height: 1.45;
}
.eyebrow{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .3px;
  text-transform: uppercase;
}
.heroSupport{
  margin-top: 18px;
  background: rgba(255,255,255,.78);
  border-radius: 24px;
  box-shadow: 0 12px 34px rgba(8,32,64,.06);
}
.heroSupportGrid{
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 18px;
  align-items: start;
}
@media (max-width: 900px){
  .heroSupportGrid{
    grid-template-columns: 1fr;
  }
}
.heroSupport .list{
  margin-top: 14px;
}
.heroNote{
  margin-top: 16px;
}
.pageHero--split{
  padding: 34px 0 10px;
}
.pageHeroSplit{
  display: grid;
  grid-template-columns: 1.02fr .98fr;
  gap: 22px;
  align-items: center;
}
@media (max-width: 940px){
  .pageHeroSplit{
    grid-template-columns: 1fr;
  }
}
.pageHeroCopy{
  max-width: 64ch;
}
.pageHeroMedia{
  min-height: 360px;
}
.pageHeroMedia--compact{
  min-height: 320px;
}
.mediaBadge{
  right: auto;
  max-width: 320px;
  font-size: 13px;
}
.mediaBadge strong{
  display: block;
  font-size: 16px;
  margin-bottom: 4px;
}
.photoInset{
  margin-top: 16px;
}
.outputPills{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}
.outputPill{
  display: inline-flex;
  align-items: center;
  padding: 8px 12px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--line);
  color: var(--muted);
  font-size: 13px;
}
.caseCard .miniGrid{
  margin-top: 16px;
}
.mutedNote{
  margin-top: 14px;
  font-size: 12.5px;
  color: var(--muted2);
}
.ctasWrap{
  flex-wrap: wrap;
}
.topSpace10{
  margin-top: 10px;
}
.topSpace12{
  margin-top: 12px;
}
.topSpace14{
  margin-top: 14px;
}
.topSpace16{
  margin-top: 16px;
}
.topSpace18{
  margin-top: 18px;
}
.bottomSpace18{
  margin-bottom: 18px;
}
.stepTitle{
  margin: 0 0 6px;
}
.inlineMutedAddress{
  margin-top: 6px;
}
.hiddenField{
  display: none;
}
.emailAccent{
  color: var(--accent);
}
.heroVisualOverlay--wide{
  max-width: 360px;
}
@media (max-width: 720px){
  .heroVisual{
    min-height: 300px;
  }
  .pageHeroMedia{
    min-height: 260px;
  }
  .heroVisualOverlay,
  .mediaBadge{
    left: 14px;
    right: 14px;
    bottom: 14px;
    padding: 14px;
  }
}


/* Portal access page */
.accessInterestGrid{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 18px;
}
@media (max-width: 980px){
  .accessInterestGrid{ grid-template-columns:1fr; }
}
.portalAccessNote{
  margin-top: 14px;
}


/* Accreditation split links */
.accreditation--split .accShell{
  display:flex;
  align-items:center;
  gap:12px;
}
.accLogoLink{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  flex:0 0 auto;
}
.accCopy{
  min-width:0;
}
.accRefLink{
  color:#0b66c3;
  font-weight:700;
  text-decoration:none;
}
.accRefLink:hover{
  text-decoration:underline;
}
.accRefPrefix{
  color:#6b7a8c;
}
.accMeta .sep{color:#9aa7b5; margin:0 4px;}
.accLogo.accLogo--badge,
.accreditationLogoWide.accLogo--badge{
  width:auto;
  height:54px;
}
.accLogo--ukala{
  height:54px;
  width:auto;
}
@media (max-width: 720px){
  .accreditation--split .accShell{
    align-items:flex-start;
  }
  .accLogo.accLogo--badge,
  .accreditationLogoWide.accLogo--badge{
    width:auto;
    height:48px;
  }
  .accLogo--ukala{
    height:48px;
  }
}
.catchmentFallback{
  width:100%;
  height:240px;
  border:0;
}


/* ===== About page: EKIN meaning + team ===== */
.brandStory{
  display:grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  padding: 22px;
  border-radius: 24px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.76);
  box-shadow: 0 12px 34px rgba(8,32,64,.06);
}
.brandStoryMarkWrap{
  display:flex;
  align-items:flex-start;
  justify-content:center;
}
.brandStoryMarkCard{
  width:100%;
  max-width:240px;
  padding: 20px;
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(240,246,252,.94));
  border:1px solid rgba(8,32,64,.10);
  box-shadow: 0 12px 28px rgba(8,32,64,.08);
}
.brandStoryMark{
  width:100%;
  max-width:200px;
  margin:0 auto;
  display:block;
  object-fit:contain;
}
.brandStoryCopy h3{
  margin-top:0;
  margin-bottom:10px;
}
.brandStoryCopy p{
  color: var(--muted);
  line-height: 1.65;
  margin: 0 0 14px;
}
.brandStoryCopy strong{
  color: var(--text);
}
.brandStorySubhead{
  margin: 18px 0 10px;
  font-size: 22px;
  color: var(--text);
}
.brandStoryList{
  margin: 0;
  padding-left: 18px;
}
.brandStoryList li{
  color: var(--muted);
  margin: 10px 0;
  line-height: 1.6;
}
.teamCard{
  height:100%;
}
.teamCardInner{
  display:grid;
  grid-template-columns: minmax(0,1fr) 132px;
  gap: 18px;
  align-items: center;
}
.teamCardCopy p{
  margin: 6px 0 10px;
}
.teamCardPhotoWrap{
  justify-self:end;
}
.teamCardPhoto{
  width: 132px;
  height: 132px;
  border-radius: 20px;
  object-fit: cover;
  display:block;
  border: 1px solid rgba(8,32,64,.12);
  box-shadow: 0 10px 24px rgba(8,32,64,.10);
  background:#fff;
}
@media (max-width: 900px){
  .brandStory{
    grid-template-columns: 1fr;
  }
  .brandStoryMarkWrap{
    justify-content:flex-start;
  }
}
@media (max-width: 720px){
  .teamCardInner{
    grid-template-columns: 1fr;
  }
  .teamCardPhotoWrap{
    justify-self:start;
    order:-1;
  }
}


/* =========================================================
   HOSTINGER HEADER LOGO HOTFIX V3
   Goal: make the header logo match the wide desktop reference
   and bust stale cache with a new file loaded after main CSS.
   ========================================================= */

:root{
  --headerH: 126px !important;
}

.siteHeader{
  background:#fff !important;
  border-bottom:1px solid rgba(0,0,0,.06) !important;
  box-shadow:none !important;
}

.headerInner{
  width:100% !important;
  max-width:1320px !important;
  min-height:126px !important;
  margin:0 auto !important;
  padding:0 18px !important;
  display:grid !important;
  grid-template-columns:minmax(290px, 312px) 1fr auto !important;
  align-items:center !important;
  gap:clamp(18px, 2.6vw, 36px) !important;
}

.headerLogo{
  display:flex !important;
  align-items:center !important;
  align-self:stretch !important;
  min-height:126px !important;
  padding:0 28px 0 0 !important;
  border-right:1px solid rgba(8,32,64,.16) !important;
  z-index:1001 !important;
}

.headerLogo a{
  display:flex !important;
  align-items:center !important;
  width:100% !important;
}

.brandLogo,
.brandLogo.brandLogo--hostfix{
  width:290px !important;
  max-width:100% !important;
  height:auto !important;
  object-fit:contain !important;
  display:block !important;
}

.headerNav{
  display:flex !important;
  justify-content:center !important;
  gap:28px !important;
}

.headerNav a{
  font-size:18px !important;
  font-weight:600 !important;
}

.headerCtas{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
}

.headerPortalLink{
  white-space:nowrap !important;
}

@media (max-width: 1280px){
  :root{ --headerH: 118px !important; }

  .headerInner{
    min-height:118px !important;
    grid-template-columns:minmax(260px, 288px) 1fr auto !important;
    gap:22px !important;
    padding:0 16px !important;
  }

  .headerLogo{
    min-height:118px !important;
    padding:0 24px 0 0 !important;
  }

  .brandLogo,
  .brandLogo.brandLogo--hostfix{
    width:252px !important;
  }

  .headerNav{
    gap:18px !important;
  }

  .headerNav a{
    font-size:16px !important;
    padding:8px 10px !important;
  }

  .headerPortalLink{
    font-size:14px !important;
  }
}

@media (max-width: 1100px){
  :root{ --headerH: 88px !important; }

  .headerInner{
    min-height:88px !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    gap:12px !important;
    padding:8px 16px !important;
  }

  .headerLogo{
    min-height:72px !important;
    padding:0 !important;
    border-right:0 !important;
  }

  .brandLogo,
  .brandLogo.brandLogo--hostfix{
    width:214px !important;
  }

  .headerNav,
  .headerCtas{
    display:none !important;
  }

  .mobileMenuToggle{
    display:flex !important;
    justify-self:end !important;
  }
}

@media (max-width: 768px){
  :root{ --headerH: 76px !important; }

  .headerInner{
    min-height:76px !important;
    padding:8px 14px !important;
  }

  .brandLogo,
  .brandLogo.brandLogo--hostfix{
    width:182px !important;
  }
}

@media (max-width: 480px){
  :root{ --headerH: 68px !important; }

  .headerInner{
    min-height:68px !important;
    padding:6px 14px !important;
  }

  .brandLogo,
  .brandLogo.brandLogo--hostfix{
    width:156px !important;
  }
}
