/* Madalengoitia Consultores — Premium corporate theme (no external dependencies)
   Designed for fast loading, accessibility, and Microsoft Ads-friendly compliance. */

:root{
  --bg: #f7f8fb;
  --surface: #ffffff;
  --surface-2: #f1f5f9;
  --text: #0f172a;
  --muted: #475569;
  --muted-2:#64748b;
  --border: rgba(15, 23, 42, .10);
  --shadow: 0 18px 60px rgba(2, 6, 23, .12);
  --shadow-sm: 0 10px 30px rgba(2, 6, 23, .10);

  --brand-900:#0b1220;
  --brand-700:#0f1a33;
  --brand-500:#1f5eff;
  --brand-400:#2b7fff;
  --accent:#7c3aed;
  --accent-2:#0ea5e9;

  --radius-lg: 18px;
  --radius-md: 14px;
  --radius-sm: 10px;

  --container: 1180px;

  --font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  --mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;

  --h1: clamp(2.1rem, 2.7vw, 3.15rem);
  --h2: clamp(1.65rem, 2.1vw, 2.2rem);
  --h3: clamp(1.25rem, 1.6vw, 1.55rem);
  --p: 1.05rem;
  --lh: 1.65;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font);
  font-size:16px;
  color:var(--text);
  background: radial-gradient(1200px 520px at 80% -10%, rgba(31,94,255,.14), transparent 62%),
              radial-gradient(900px 500px at 10% -10%, rgba(124,58,237,.12), transparent 60%),
              var(--bg);
}

img{max-width:100%; height:auto;}
a{color:inherit; text-decoration:none;}
a:hover{text-decoration:none;}
button, input, textarea, select{font:inherit;}
:focus-visible{outline:3px solid rgba(31,94,255,.45); outline-offset:2px; border-radius:10px;}
::selection{background: rgba(31,94,255,.18);}

.container{
  width:min(var(--container), calc(100% - 2rem));
  margin-inline:auto;
}

.skip-link{
  position:absolute; left:-999px; top:auto;
  width:1px; height:1px; overflow:hidden;
}
.skip-link:focus{
  left:1rem; top:1rem; width:auto; height:auto;
  padding:.75rem 1rem;
  background:var(--surface);
  box-shadow:var(--shadow-sm);
  border:1px solid var(--border);
  z-index:9999;
}

/* Top bar */
.topbar{
  background: rgba(255,255,255,.65);
  backdrop-filter: blur(10px);
  border-bottom:1px solid var(--border);
}
.topbar .row{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem;
  padding:.5rem 0;
  font-size:.92rem;
  color:var(--muted);
}
.topbar a{color:var(--muted); text-decoration:none;}
.topbar a:hover{color:var(--text);}
.pills{display:flex; gap:.65rem; flex-wrap:wrap;}
.pill{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.35rem .6rem;
  border:1px solid var(--border);
  background:rgba(255,255,255,.85);
  border-radius:999px;
}

/* Header / navigation */
.header{
  position:sticky; top:0; z-index:999;
  background: rgba(247,248,251,.72);
  backdrop-filter: blur(12px);
  border-bottom:1px solid var(--border);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:.9rem 0;
}
.brand{
  display:flex; align-items:center; gap:.75rem;
}
.brand img{width:44px; height:44px;}
.brand .name{
  display:flex; flex-direction:column; line-height:1.05;
}
.brand .name strong{font-weight:800; letter-spacing:-0.02em;}
.brand .name span{color:var(--muted); font-weight:600; font-size:.92rem;}

.nav-links{
  display:flex; gap:1rem; align-items:center;
}
.nav-links > a, .nav-links > button{
  border:0;
  background:transparent;
  color:var(--text);
  padding:.55rem .7rem;
  border-radius:12px;
  cursor:pointer;
  font-weight:650;
  letter-spacing:-0.01em;
}
.nav-links > a:hover, .nav-links > button:hover{
  background: rgba(2,6,23,.04);
}
.cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.65rem 1rem;
  border-radius:999px;
  border:1px solid rgba(31,94,255,.18);
  background: linear-gradient(135deg, rgba(31,94,255,.14), rgba(124,58,237,.10));
  color:var(--text);
  font-weight:750;
  box-shadow: 0 10px 26px rgba(2,6,23,.10);
}
.cta:hover{
  transform: translateY(-1px);
  box-shadow: 0 14px 34px rgba(2,6,23,.14);
}

.menu-btn{
  display:none;
  padding:.6rem .75rem;
  border-radius:12px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.7);
}

.dropdown{
  position:relative;
}
.dropdown-panel{
  position:absolute;
  right:0;
  top:calc(100% + .6rem);
  width: 320px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius: 16px;
  box-shadow: var(--shadow-sm);
  padding:.65rem;
  display:none;
}
.dropdown-panel a{
  display:block;
  padding:.75rem .85rem;
  border-radius: 14px;
  color:var(--text);
  font-weight:650;
}
.dropdown-panel a small{
  display:block;
  color:var(--muted);
  font-weight:600;
  margin-top:.1rem;
}
.dropdown-panel a:hover{background: rgba(2,6,23,.04);}
.dropdown.open .dropdown-panel{display:block;}

/* Mobile nav */
.mobile-nav{
  display:none;
  padding: 0 0 1rem 0;
}
.mobile-nav a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:.8rem .85rem;
  border-radius: 14px;
  border:1px solid var(--border);
  background: rgba(255,255,255,.72);
  margin-top:.65rem;
  font-weight:700;
}
.mobile-nav a span{color:var(--muted); font-weight:650; font-size:.95rem;}

/* Hero */
.hero{
  padding: 3.6rem 0 2.1rem 0;
}
.hero-grid{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 2.2rem;
  align-items:center;
}
.kicker{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  padding:.45rem .75rem;
  border-radius:999px;
  background: rgba(255,255,255,.72);
  border:1px solid var(--border);
  color:var(--muted);
  font-weight:650;
}
h1{
  font-size: var(--h1);
  letter-spacing:-0.035em;
  margin:.85rem 0 .75rem 0;
}
.lead{
  font-size: clamp(1.08rem, 1.25vw, 1.25rem);
  line-height: var(--lh);
  color:var(--muted);
  margin:0 0 1.25rem 0;
}
.hero-actions{
  display:flex;
  gap:.9rem;
  flex-wrap:wrap;
  align-items:center;
  margin-top: 1.1rem;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  padding:.78rem 1.05rem;
  border-radius: 999px;
  border:1px solid var(--border);
  background: rgba(255,255,255,.8);
  font-weight:750;
  cursor:pointer;
  transition: transform .18s ease, box-shadow .18s ease;
}
.btn:hover{
  transform: translateY(-1px);
  box-shadow: 0 12px 30px rgba(2,6,23,.10);
}
.btn.primary{
  border:1px solid rgba(31,94,255,.22);
  background: linear-gradient(135deg, rgba(31,94,255,.18), rgba(124,58,237,.14));
}
.hero-card{
  border-radius: var(--radius-lg);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.55);
  box-shadow: var(--shadow);
  position:relative;
  background: #0b1220;
}
.hero-card img{display:block; width:100%; height:auto;}
.hero-card .overlay{
  position:absolute; inset:0;
  background: linear-gradient(120deg, rgba(11,18,32,.15), rgba(11,18,32,.75));
}
.hero-card .badge{
  position:absolute;
  left:1.1rem; bottom:1.1rem;
  right:1.1rem;
  padding: .9rem 1rem;
  border-radius: 16px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.16);
  backdrop-filter: blur(10px);
  color: rgba(247,248,251,.92);
}
.hero-card .badge strong{display:block; font-size:1.05rem;}
.hero-card .badge span{display:block; opacity:.86; margin-top:.25rem; line-height:1.45;}

.trust-row{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
  margin-top: 1.25rem;
  color: var(--muted);
}
.trust-row .pill{
  background: rgba(255,255,255,.78);
}

/* Sections */
.section{
  padding: 3rem 0;
}
.section.alt{
  background: linear-gradient(180deg, rgba(255,255,255,.80), rgba(255,255,255,.50));
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
}
h2{font-size:var(--h2); margin:0 0 .8rem 0; letter-spacing:-0.03em;}
h3{font-size:var(--h3); margin:.1rem 0 .55rem 0; letter-spacing:-0.02em;}
.p{font-size:var(--p); line-height:var(--lh); color:var(--muted); margin:0;}
.grid-3{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
  margin-top: 1.4rem;
}
.card{
  border: 1px solid var(--border);
  background: rgba(255,255,255,.76);
  border-radius: var(--radius-lg);
  padding: 1.2rem;
  box-shadow: 0 14px 40px rgba(2,6,23,.08);
}
.card:hover{transform: translateY(-2px); transition: transform .18s ease;}
.card .icon{
  width:44px; height:44px;
  display:grid; place-items:center;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(31,94,255,.12), rgba(124,58,237,.10));
  border: 1px solid rgba(31,94,255,.18);
}
.card .icon svg{width:28px; height:28px; color: var(--brand-900);}
.card p{color:var(--muted); line-height:1.6; margin:0;}

.split{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 1.6rem;
  align-items:start;
}
.panel{
  border:1px solid var(--border);
  background: rgba(255,255,255,.82);
  border-radius: var(--radius-lg);
  padding: 1.2rem;
  box-shadow: var(--shadow-sm);
}
.panel.dark{
  background: linear-gradient(135deg, rgba(11,18,32,.96), rgba(15,26,51,.96));
  border:1px solid rgba(255,255,255,.10);
  color: rgba(247,248,251,.92);
}
.panel.dark .muted{color: rgba(226,232,240,.78);}
.muted{color:var(--muted); line-height:var(--lh); margin:0;}

.list{
  margin: .75rem 0 0 0;
  padding-left: 1.2rem;
  color: var(--muted);
  line-height: 1.75;
}
.list li{margin:.25rem 0;}

.kpi{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-top: 1.25rem;
}
.kpi .box{
  border: 1px solid var(--border);
  background: rgba(255,255,255,.7);
  border-radius: var(--radius-lg);
  padding: 1rem;
}
.kpi .box strong{display:block; font-size:1.1rem;}
.kpi .box span{display:block; color:var(--muted); margin-top:.2rem; line-height:1.45;}

.breadcrumbs{
  font-size:.95rem; color:var(--muted);
  margin:.9rem 0 0 0;
}
.breadcrumbs a{color:var(--muted); text-decoration:underline; text-underline-offset:3px;}
.breadcrumbs a:hover{color:var(--text);}

.page-hero{
  padding: 2.6rem 0 1.6rem 0;
}
.page-hero .wrap{
  display:flex; gap:1.2rem; align-items:flex-start; justify-content:space-between;
  flex-wrap:wrap;
}
.page-hero .meta{
  max-width: 720px;
}
.page-hero h1{margin:0 0 .5rem 0;}
.page-hero .lead{margin:0;}
.page-hero .side{
  border-radius: var(--radius-lg);
  border:1px solid var(--border);
  background: rgba(255,255,255,.78);
  padding: 1rem 1.1rem;
  min-width: 280px;
  box-shadow: var(--shadow-sm);
}
.page-hero .side strong{display:block;}
.page-hero .side small{color:var(--muted); display:block; margin-top:.3rem; line-height:1.55;}
.page-hero .side a{color:var(--brand-500); text-decoration:underline; text-underline-offset:3px;}
.page-hero .side a:hover{color:var(--accent);}

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

/* Forms */
.form{
  display:grid; gap: 1rem;
}
.field{
  display:grid; gap:.35rem;
}
label{font-weight:700;}
input, textarea, select{
  padding:.85rem .9rem;
  border-radius: 14px;
  border:1px solid var(--border);
  background: rgba(255,255,255,.9);
}
textarea{min-height:140px; resize:vertical;}
.help{
  font-size:.92rem;
  color:var(--muted);
  line-height:1.5;
}
.form-actions{display:flex; gap:.8rem; flex-wrap:wrap; align-items:center;}
.notice{
  border-radius: 16px;
  border:1px solid rgba(31,94,255,.18);
  background: linear-gradient(135deg, rgba(31,94,255,.08), rgba(124,58,237,.07));
  padding: 1rem;
  color: var(--muted);
  line-height: 1.6;
}
.notice strong{color:var(--text);}

/* FAQ accordion */
.accordion{display:grid; gap:.8rem; margin-top: 1rem;}
.ac-item{
  border:1px solid var(--border);
  background: rgba(255,255,255,.78);
  border-radius: var(--radius-lg);
  overflow:hidden;
}
.ac-btn{
  width:100%;
  text-align:left;
  padding: 1rem 1.05rem;
  border:0;
  background:transparent;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  cursor:pointer;
  font-weight:800;
}
.ac-btn span{color:var(--text);}
.ac-btn .chev{
  width:34px; height:34px;
  border-radius: 12px;
  border:1px solid var(--border);
  display:grid; place-items:center;
  background: rgba(255,255,255,.85);
}
.ac-panel{
  display:none;
  padding: 0 1.05rem 1.05rem 1.05rem;
  color: var(--muted);
  line-height: 1.7;
}
.ac-item.open .ac-panel{display:block;}
.ac-item.open .chev{transform: rotate(180deg); transition: transform .18s ease;}

/* Footer */
.footer{
  margin-top: 2.4rem;
  border-top: 1px solid var(--border);
  background: rgba(255,255,255,.70);
}
.footer .grid{
  display:grid;
  grid-template-columns: 1.2fr 1fr 1fr 1fr;
  gap: 1.2rem;
  padding: 2.2rem 0;
}
.footer h4{margin:.1rem 0 .55rem 0; font-size:1.05rem;}
.footer a{color:var(--muted); display:inline-block; padding:.2rem 0;}
.footer a:hover{color:var(--text); text-decoration:underline; text-underline-offset:3px;}
.footer .brandline{
  display:flex; gap:.8rem; align-items:flex-start;
}
.footer .brandline img{width:46px; height:46px;}
.footer .small{color:var(--muted); line-height:1.7; margin:.4rem 0 0 0;}
.footer .legalbar{
  border-top:1px solid var(--border);
  padding: 1rem 0;
  color: var(--muted);
  font-size:.92rem;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap: 1rem;
  flex-wrap:wrap;
}
.footer .legalbar button{
  border:1px solid var(--border);
  background: rgba(255,255,255,.8);
  border-radius: 999px;
  padding: .55rem .85rem;
  cursor:pointer;
  font-weight:700;
}

/* Cookie banner */
#cookie-banner{
  position:fixed;
  inset:auto 1rem 1rem 1rem;
  max-width: 980px;
  margin-inline:auto;
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(12px);
  border:1px solid var(--border);
  border-radius: 20px;
  box-shadow: var(--shadow);
  padding: 1rem;
  z-index: 99999;
  display:none;
}
#cookie-banner .row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
}
#cookie-banner h4{margin:0 0 .35rem 0;}
#cookie-banner p{margin:0; color:var(--muted); line-height:1.6; max-width: 680px;}
#cookie-banner .actions{display:flex; gap:.6rem; flex-wrap:wrap;}
#cookie-banner .actions button{
  padding:.7rem .95rem;
  border-radius: 999px;
  border:1px solid var(--border);
  background: rgba(255,255,255,.95);
  font-weight:800;
  cursor:pointer;
}
#cookie-banner .actions button.primary{
  border:1px solid rgba(31,94,255,.22);
  background: linear-gradient(135deg, rgba(31,94,255,.18), rgba(124,58,237,.14));
}
#cookie-modal{
  position:fixed;
  inset:0;
  background: rgba(2,6,23,.55);
  z-index: 100000;
  display:none;
  padding: 1.2rem;
}
#cookie-modal .box{
  width:min(840px, 100%);
  margin: 5vh auto 0 auto;
  background: var(--surface);
  border-radius: 22px;
  border:1px solid var(--border);
  box-shadow: var(--shadow);
  overflow:hidden;
}
#cookie-modal header{
  padding: 1rem 1.15rem;
  border-bottom: 1px solid var(--border);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap: 1rem;
}
#cookie-modal header h4{margin:0;}
#cookie-modal header button{
  border:1px solid var(--border);
  background: rgba(255,255,255,.85);
  border-radius: 12px;
  padding: .55rem .75rem;
  cursor:pointer;
  font-weight:800;
}
#cookie-modal .content{
  padding: 1rem 1.15rem;
  display:grid; gap: .85rem;
}
.cookie-cat{
  border:1px solid var(--border);
  background: rgba(255,255,255,.9);
  border-radius: 18px;
  padding: .9rem 1rem;
  display:flex;
  justify-content:space-between;
  gap: 1rem;
  align-items:flex-start;
}
.cookie-cat .desc{color:var(--muted); line-height:1.6; margin-top:.15rem;}
.switch{
  display:flex; align-items:center; gap:.6rem;
  font-weight:800;
}
.switch input{width:22px; height:22px;}
#cookie-modal .footer{
  border-top:1px solid var(--border);
  padding: 1rem 1.15rem;
  display:flex;
  justify-content:flex-end;
  gap:.6rem;
  flex-wrap:wrap;
  background: rgba(241,245,249,.55);
}
#cookie-modal .footer button{
  padding:.7rem .95rem;
  border-radius: 999px;
  border:1px solid var(--border);
  background: rgba(255,255,255,.95);
  font-weight:800;
  cursor:pointer;
}
#cookie-modal .footer button.primary{
  border:1px solid rgba(31,94,255,.22);
  background: linear-gradient(135deg, rgba(31,94,255,.18), rgba(124,58,237,.14));
}

/* Motion safety */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation:none !important; transition:none !important;}
}

/* Responsive */
@media (max-width: 980px){
  .hero-grid{grid-template-columns: 1fr;}
  .grid-3{grid-template-columns: 1fr; }
  .split{grid-template-columns:1fr;}
  .kpi{grid-template-columns:1fr;}
  .footer .grid{grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px){
  .nav-links{display:none;}
  .menu-btn{display:inline-flex; align-items:center; gap:.5rem;}
  .mobile-nav{display:block;}
  .topbar .row{flex-direction:column; align-items:flex-start;}
  .footer .grid{grid-template-columns: 1fr; }
}

/* Scroll reveal */
.reveal{
  opacity:0;
  transform: translateY(14px);
}
.reveal.in{
  opacity:1;
  transform: translateY(0);
  transition: opacity .6s ease, transform .6s ease;
}

/* Utility */
.tag{
  display:inline-flex;
  padding:.35rem .6rem;
  border-radius:999px;
  border:1px solid var(--border);
  background: rgba(255,255,255,.75);
  color: var(--muted);
  font-weight:700;
  font-size:.92rem;
}
code.inline{
  font-family: var(--mono);
  background: rgba(2,6,23,.05);
  border:1px solid var(--border);
  padding: .1rem .35rem;
  border-radius: 10px;
}
