:root {
  --primary: #6C3CE7;
  --primary-dark: #3E1F9E;
  --accent: #FF7A2F;
  --accent-soft: #FFC24B;
  --dark: #14142B;
  --dark-2: #1A1A2E;
  --light: #f7f7fb;
  --ink: #1a1a2e;
  --muted: #6b6b84;
  --line: #e6e6f0;
  --whatsapp: #25D366;
  --facebook: #1877F2;
  --twitter: #1DA1F2;
  --instagram-grad: linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);
  --shadow: 0 10px 34px rgba(40,22,90,.16);
  --radius: 16px;
  --font: 'Segoe UI', system-ui, -apple-system, 'Helvetica Neue', Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; font-family:var(--font); color:var(--ink); background:#fff; line-height:1.6; }

h1,h2,h3,h4 { font-weight:800; letter-spacing:-.01em; }
p { line-height:1.75; }
a { color:var(--primary); text-decoration:none; }
img { max-width:100%; display:block; }

.container { width:min(1180px, 92vw); margin:0 auto; padding:0 16px; }
.section { padding:84px 0; }
.section.dark { background:var(--dark-2); color:#fff; }
.section.tint { background:var(--ink); }
.eyebrow { display:inline-block; color:var(--primary); font-weight:700; font-size:.82rem; letter-spacing:.12em; text-transform:uppercase; margin-bottom:14px; }
.lede { max-width:720px; color:var(--muted); font-size:1.06rem; margin:18px auto 0; }

/* ============ STICKY HEADER (topbar + nav) ============ */
.site-header { position: sticky; top: 0; z-index: 200; }

/* ============ TOP ANNOUNCEMENT BAR (marquee) ============ */
.topbar {
  position: relative;
  background: linear-gradient(90deg, var(--primary), var(--primary-dark));
  color:#fff;
  overflow:hidden;
  padding:.55rem 0;
  box-shadow:0 2px 0 rgba(0,0,0,.15);
}
.topbar-track {
  display: flex; white-space: nowrap; will-change:transform;
  animation: marquee 38s linear infinite;
}
.topbar-group-wrap { display:flex; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.topbar-group { display:inline-flex; align-items:center; gap:6px; padding:0 2.2rem; font-size:.92rem; font-weight:600; }
.topbar-group a { color:#fff; text-decoration:none; font-weight:700; }
.topbar-group a:hover { text-decoration:underline; }
@media (prefers-reduced-motion: reduce) { .topbar-track { animation:none; overflow-x:auto; } }

/* ============ NAVBAR ============ */
.nav { position: relative; z-index:60; background:rgba(255,255,255,.96); backdrop-filter:blur(10px); border-bottom:1px solid var(--line); }
.nav-inner { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.7rem 0; }
.brand a { display:flex; align-items:center; gap:10px; }
.brand img { height:46px; width:auto; }
.brand small { display:block; font-size:.7rem; color:var(--primary); font-weight:700; letter-spacing:.05em; }
.nav-links { display:flex; gap:.3rem; align-items:center; }
.nav-links a { padding:.6rem .85rem; border-radius:9px; font-weight:600; font-size:.95rem; color:var(--ink); }
.nav-links a:hover, .nav-links a.active { background:var(--ink); color:#fff; }
.nav-cta { display:inline-flex; align-items:center; gap:8px; background:var(--accent); color:#fff; font-weight:700; padding:.62rem 1.15rem; border-radius:30px; font-size:.92rem; box-shadow:var(--shadow); }
.nav-cta:hover { transform:translateY(-1px); background:#ff6a18; }
.nav-burger { display:none; background:none; border:1px solid var(--line); border-radius:8px; padding:.55rem .65rem; font-size:1.25rem; color:var(--ink); cursor:pointer; }
.mobile-menu { display:none; flex-direction:column; gap:.7rem; background:#fff; border-bottom:1px solid var(--line); padding:1.1rem 1.4rem; }

/* ============ BUTTONS ============ */
.btn { display:inline-flex; align-items:center; gap:9px; background:var(--primary); color:#fff; font-weight:700; padding:.85rem 1.7rem; border:0; border-radius:30px; font-size:.98rem; box-shadow:var(--shadow); transition:.18s; }
.btn:hover { transform:translateY(-2px); background:var(--primary-dark); }
.btn.ghost { background:transparent; color:#fff; border:2px solid rgba(255,255,255,.85); }
.btn.outline { background:#fff; color:var(--primary); border:2px solid var(--primary); }
.btn.accent { background:var(--accent); }
.btn.sm { padding:.55rem 1.1rem; font-size:.86rem; }

/* ============ HERO ============ */
.hero { position:relative; overflow:hidden; background:var(--dark); }
.hero-bg { position:absolute; inset:0; }
.hero-bg img { width:100%; height:100%; object-fit:cover; }
.hero-bg::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(11,14,43,.92), rgba(20,20,43,.55)); }
.hero-inner { position:relative; min-height:520px; display:flex; align-items:center; }
.hero-content { color:#fff; max-width:620px; }
.hero-badge { display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.12); padding:.4rem 1rem; border-radius:30px; font-size:.8rem; color:var(--accent-soft); border:1px solid rgba(255,255,255,.25); }
.hero-title { font-size:clamp(2.1rem, 5vw, 3.4rem); line-height:1.08; margin:.7rem 0 .6rem; }
.hero-title span { color:var(--accent-soft); }
.hero-sub { font-size:1.12rem; opacity:.92; max-width:560px; margin:0 0 1.6rem; line-height:1.7; }
.hero-actions { display:flex; gap:1rem; flex-wrap:wrap; }
.hero-stats { margin-top:2rem; padding-top:1.2rem; border-top:1px solid rgba(255,255,255,.12); }
.stat-grid { display:flex; gap:1.6rem; justify-content:center; flex-wrap:wrap; }
.stat b { display:block; font-size:1.9rem; color:#fff; }
.stat small { display:block; color:rgba(255,255,255,.72); }

/* ============ CARDS / GRID ============ */
.card { background:#fff; border:1px solid var(--line); border-radius:20px; padding:2rem; box-shadow:var(--shadow); transition:.2s; }
.card:hover { transform:translateY(-5px); border-color:var(--primary); }
.grid { display:grid; gap:1.8rem; }
.cols-2{grid-template-columns:repeat(2,1fr)} .cols-3{grid-template-columns:repeat(3,1fr)} .cols-4{grid-template-columns:repeat(4,1fr)}

.icon-badge { width:58px;height:58px;display:grid;place-items:center;border-radius:16px;background:var(--primary);color:#fff;font-size:1.6rem;box-shadow:0 6px 18px rgba(108,60,231,.25); }
.feature h3 { margin:.8rem 0 .4rem; }
.feature p { color:var(--muted); font-size:.96rem; }
.number { font-size:2.6rem; font-weight:800; color:var(--primary); }

/* ============ SECTION HEADERS ============ */
.shead { text-align:center; max-width:760px; margin:0 auto 2.4rem; }
.shead h2 { font-size:clamp(1.6rem,3.4vw,2.3rem); margin:.5rem 0; }
.shead p { color:var(--muted); margin-top:.9rem; }

/* ============ SERVICES ============ */
.service-row { display:flex; align-items:center; gap:2.6rem; background:#fff; border:1px solid var(--line); border-radius:24px; padding:2.2rem; box-shadow:var(--shadow); }
.service-row:nth-child(even){ flex-direction:row-reverse; }
.service-row img { width:40%; border-radius:18px; }
.service-body h3 { font-size:1.4rem; }
.service-body ul { margin-top:.8rem; padding-left:1.1rem; }
.service-body li { margin:.3rem 0; }

/* ============ IMAGE + TEXT SPLIT ============ */
.split { display:flex; align-items:center; gap:3rem; }
.split img { border-radius:22px; box-shadow:var(--shadow); flex:0 0 46%; }
.split-text { flex:1; }
.split-text .eyebrow{color:var(--primary)} 
.split.rev { flex-direction:row-reverse; }

/* ============ TESTIMONIALS ============ */
.testi { display:flex; flex-direction:column; justify-content:space-between; gap:1.2rem; }
.testi p { font-size:.98rem; color:var(--muted); }
.testi .who { display:flex; align-items:center; gap:10px; }
.testi .avatar { width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;background:var(--primary); }
.testi small{display:block;color:var(--muted);font-size:.8rem}

/* ============ STATS STRIP ============ */
.stats-strip { background:var(--dark-2); color:#fff; padding:3rem 0; }
.stats-strip .stat b { font-size:2.4rem; color:var(--accent-soft); }

/* ============ FAQ ============ */
.faq details { background:#fff; border:1px solid var(--line); border-radius:12px; padding:1.1rem 1.4rem; margin-bottom:.9rem; }
.faq summary { font-weight:700; cursor:pointer; list-style:none; }
.faq summary::-webkit-details-marker{display:none}
.faq summary::after { content:" +"; color:var(--primary); font-weight:800; }
.faq details[open] summary::after { content:" –"; }
.faq p { color:var(--muted); font-size:.96rem; }

/* ============ CTA BAND ============ */
.cta-band { position:relative; border-radius:26px; background:linear-gradient(120deg,var(--primary),var(--primary-dark)); color:#fff; padding:3.4rem; text-align:center; box-shadow:var(--shadow); overflow:hidden; }
.cta-band::before { content:""; position:absolute; right:-40px; top:-40px; width:220px; height:220px; border-radius:100%; background:var(--accent); opacity:.5; filter:blur(2px); }
.cta-band h2 { font-size:1.9rem; }
.cta-band p { opacity:.92; margin:.6rem 0 1.4rem; }
.cta-band .btn { background:var(--accent); }

/* ============ PAGE HERO (subpages) ============ */
.page-hero { position:relative; background:linear-gradient(120deg,var(--dark),var(--primary-dark)); color:#fff; padding:5.4rem 0 7.2rem; overflow:hidden; }
.page-hero::after { content:""; position:absolute; inset:0; background:radial-gradient(circle at 80% 20%, rgba(108,60,231,.4), transparent 60%); }
.page-hero .crumbs { display:inline-block; color:var(--accent-soft); font-size:.8rem; margin-bottom:1.2rem; }
.page-hero h1 { font-size:clamp(2rem,4.5vw,2.8rem); position:relative; }
.page-hero p { font-size:1.12rem; opacity:.94; max-width:680px; margin:.8rem auto 0; position:relative; }

/* ============ LEGAL PAGES ============ */
.legal { background:#fff; border:1px solid var(--line); border-radius:18px; padding:2.6rem 2.8rem; box-shadow:var(--shadow); }
.legal h2 { margin-top:1.6rem; border-bottom:1px solid var(--line); padding-bottom:.4rem; }
.legal h3 { margin-top:1.1rem; }
.legal ul { margin:.6rem 0 1rem; padding-left:1.2rem; }
.legal p { margin:.4rem 0 .9rem; }
.legal .meta { background:var(--ink); color:var(--muted); border-radius:10px; padding:.9rem 1.2rem; margin-bottom:1.4rem; font-size:.9rem; }
.toc { background:var(--ink); border:1px solid var(--line); border-radius:12px; padding:1rem 1.3rem; }
.toc b { display:block; margin-bottom:.4rem; }
.toc ol { margin:0; padding-left:1.1rem; }
.toc a { color:var(--primary); font-size:.92rem; }

/* ============ PROSE / CONTENT CARDS ============ */
.content-card { background:#fff; border:1px solid var(--line); border-radius:18px; padding:1.9rem; box-shadow:var(--shadow); }
.content-card h3 { margin-bottom:.7rem; }
.content-card p { color:var(--muted); font-size:.96rem; }

/* ============ FORMS ============ */
.field { display:flex; flex-direction:column; gap:.5rem; margin-bottom:1.1rem; }
.field label { font-weight:600; font-size:.92rem; }
.field input, .field textarea, .field select { border:1.5px solid var(--line); border-radius:12px; padding:.85rem 1rem; font-family:var(--font); font-size:.96rem; background:#fff; transition:.15s; }
.field input:focus,.field textarea:focus,.field select:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 3px rgba(108,60,231,.15); }
textarea { resize:vertical; min-height:140px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.form-note { font-size:.88rem; color:var(--muted); margin-top:1rem; }
.form-success { display:none; background:#e9f9ef; border:1px solid #27a966; color:#14532d; border-radius:12px; padding:1.1rem 1.4rem; margin-bottom:1rem; }
.form-success.error { background:#fdecec; border-color:#dc2626; color:#7f1d1d; }

/* ============ MAP ============ */
.map-wrap { position:relative; padding-bottom:62%; overflow:hidden; border:1px solid var(--line); border-radius:20px; }
.map-wrap iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.contact-block { background:var(--dark); color:#fff; border-radius:20px; padding:1.8rem; }
.contact-block h4 { color:var(--accent-soft); margin-bottom:1rem; }
.contact-block a { color:#fff; }
.contact-block .kv { display:flex; align-content:center; gap:10px; margin-bottom:.7rem; }

/* ============ TIMELINE (Actualidad) ============ */
.timeline { position:relative; padding-left:2rem; }
.timeline::before { content:""; position:absolute; left:8px; top:0; bottom:0; width:3px; background:var(--primary); }
.tl-item { position:relative; margin-bottom:1.4rem; }
.tl-item::before { content:""; position:absolute; left:-1.75rem; top:.4rem; width:14px; height:14px; border-radius:50%; background:var(--accent); }
.tl-item .year { display:inline-block; background:var(--primary); color:#fff; font-weight:800; border-radius:8px; padding:.15rem .8rem; margin-bottom:.4rem; }
.tl-item p { color:var(--muted); font-size:.95rem; }

/* ============ GLOSSARY ============ */
.gloss { display:flex; flex-direction:column; gap:.7rem; }
.gloss-item { display:grid; grid-template-columns:220px 1fr; gap:1rem; background:#fff; border:1px solid var(--line); border-radius:12px; padding:1.1rem 1.4rem; }
.gloss-item b { color:var(--primary); }
.gloss-item p { color:var(--muted); font-size:.94rem; }

/* ============ TOOLS / GUIDES ============ */
.tool-card { display:flex; gap:1.4rem; background:#fff; border:1px solid var(--line); border-radius:16px; padding:1.5rem; box-shadow:var(--shadow); }
.tool-card .tool-icon { width:52px; height:52px; border-radius:14px; background:var(--ink); display:grid; place-items:center; font-size:1.4rem; color:#fff; flex-shrink:0; }
.tool-card h3 { font-size:1.05rem; }
.tool-card p { color:var(--muted); font-size:.92rem; }
.guide-card { background:#fff; border:1px solid var(--line); border-radius:16px; padding:0; overflow:hidden; box-shadow:var(--shadow); }
.guide-card img { height:150px; object-fit:cover; width:100%; }
.guide-card .body { padding:1.4rem 1.6rem; }
.guide-card h3 { font-size:1.08rem; }
.guide-card p { color:var(--muted); font-size:.92rem; }
.guide-card .tag { display:inline-block; background:var(--ink); color:var(--primary); font-size:.74rem; font-weight:700; border-radius:20px; padding:.15rem .7rem; margin-bottom:.7rem; }

/* ============ FOOTER ============ */
footer { background:var(--dark); color:#fff; padding:3.6rem 0 1.8rem; }
.footer-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.8rem; }
.footer-col h4 { color:var(--accent-soft); margin-bottom:.9rem; font-size:.98rem; }
.footer-col ul { list-style:none; padding:0; }
.footer-col ul li { margin:.32rem 0; }
.footer-col ul li a { color:rgba(255,255,255,.82); font-size:.92rem; }
.footer-col ul li a:hover { color:#fff; text-decoration:underline; }
.footer-brand p { color:rgba(255,255,255,.7); font-size:.92rem; margin-top:.8rem; }
.social-row { display:flex; gap:.7rem; }
.social a { width:42px;height:42px; border-radius:50%; display:grid; place-items:center; color:#fff; font-size:1.15rem; }
.social a.fb{background:var(--facebook);} .social a.ig{background:var(--instagram);} .social a.x{background:var(--twitter,#000);}
.footer-bottom { border-top:1px solid rgba(255,255,255,.15); padding-top:1.4rem; text-align:center; font-size:.86rem; color:rgba(255,255,255,.66); }
.footer-bottom a { color:var(--accent-soft); }

/* ============ COOKIE CONSENT ============ */
.cookie-bar { position:fixed; bottom:0; left:0; right:0; z-index:100; background:var(--dark); color:#fff; padding:1.2rem 1.4rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; box-shadow:0 -8px 22px rgba(0,0,0,.22); flex-wrap:wrap; }
.cookie-bar p { font-size:.9rem; flex:1; min-width:220px; }
.cookie-bar a { color:var(--accent-soft); text-decoration:underline; }
.cookie-btns { display:flex; gap:.7rem; }
.cookie-btns .btn { font-size:.86rem; padding:.6rem 1.1rem; }
.cookie-btns .accept { background:var(--accent); }
.cookie-btns .reject { background:transparent; color:#fff; border:2px solid rgba(255,255,255,.5); }
.cookie-btns .reject:hover { background:rgba(255,255,255,.1); }

/* ============ WHATSAPP FLOAT ============ */
.whatsapp-float { position:fixed; bottom:22px; left:22px; z-index:300; width:58px;height:58px;border-radius:50%; background:var(--whatsapp); color:#fff; display:grid;place-items:center; box-shadow:0 8px 24px rgba(37,211,102,.4); transition:.2s; }
.whatsapp-float:hover { transform:scale(1.08); }
.whatsapp-float svg { width:30px; height:30px; fill:#fff; }
.whatsapp-float::after { content:""; position:absolute; inset:0; border-radius:50%; box-shadow:0 0 0 0 rgba(37,211,102,.5); animation:wa 2.2s infinite; }
@keyframes wa { 0%{box-shadow:0 0 0 0 rgba(37,211,102,.45)} 70%{box-shadow:0 0 0 16px rgba(37,211,102,0)} }

/* ============ SCROLL TOP ============ */
.to-top { position:fixed; right:22px; bottom:22px; z-index:300; width:46px;height:46px;border-radius:50%;background:var(--primary);color:#fff;font-size:1.2rem;display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.25s; }
.to-top.show{opacity:1;pointer-events:auto}
.to-top:hover{background:var(--primary-dark)}

/* ============ BREADCRUMB / PAGE HEADING HELPERS ============ */
.quick-contact { position:fixed; right:22px; bottom:90px; z-index:300; background:var(--accent);color:#fff;border-radius:30px;padding:.5rem 1rem; font-size:.8rem; box-shadow:var(--shadow); }
.quick-contact a{color:#fff;text-decoration:none}

/* ============ RESPONSIVE ============ */
@media (max-width:992px){
  .cols-3{grid-template-columns:repeat(2,1fr)} .cols-4{grid-template-columns:repeat(2,1fr)}
  .split{flex-direction:column} .split.rev{flex-direction:column}
  .service-row{flex-direction:column} .service-row:nth-child(even){flex-direction:column}
  .service-row img,.service-row .service-img{width:100%;max-height:260px;object-fit:cover;border-radius:16px}
  .footer-grid{grid-template-columns:repeat(2,1fr)}
  .form-grid{grid-template-columns:1fr}
  .hero-inner{min-height:460px}
}
@media (max-width:720px){
  .cols-2{grid-template-columns:1fr} .cols-3{grid-template-columns:1fr} .cols-4{grid-template-columns:1fr}
  .nav-links{display:none} .nav-burger{display:inline-flex}
  .footer-grid{grid-template-columns:1fr}
  .gloss-item{grid-template-columns:1fr}
  .guide-card .tag{font-size:.7rem}
  .cookie-bar{flex-direction:column;text-align:center}
  .page-hero{padding:4.4rem 0}
  .to-top{bottom:86px}
}