:root {
    --primary: #0a2c5a;
    --primary-light: #1e4785;
    --secondary: #c8963e;
    --secondary-light: #e2b86b;
    --accent: #1b9e4b;
    --accent-light: #2ecc71;
    --dark: #0a0f1a;
    --gray-50: #f8fafc;
    --gray-100: #f1f5f9;
    --gray-200: #e2e8f0;
    --gray-700: #334155;
    --gray-800: #1e293b;
    --bg-body: #f8fafc;
    --bg-card: #ffffff;
    --text-main: #1e293b;
    --text-muted: #334155;
    --border: #e2e8f0;
    --shadow-sm: 0 1px 3px rgba(0,0,0,0.08);
    --shadow-md: 0 4px 20px rgba(0,0,0,0.12);
    --gradient-primary: linear-gradient(135deg, #0a2c5a, #1e4785);
    --gradient-gold: linear-gradient(135deg, #b8860b, #e2b86b);
    --radius: 16px;
    --radius-sm: 10px;
}

body.dark-mode {
    --bg-body: #0f172a;
    --bg-card: #1e293b;
    --text-main: #f1f5f9;
    --text-muted: #cbd5e1;
    --border: #334155;
    --shadow-sm: 0 1px 3px rgba(0,0,0,0.3);
    --shadow-md: 0 4px 20px rgba(0,0,0,0.4);
    --gray-50: #0f172a;
    --gray-100: #1e293b;
    --gray-200: #334155;
    --gray-700: #cbd5e1;
    --gray-800: #f1f5f9;
}

* { margin:0; padding:0; box-sizing:border-box; }
body { font-family: 'Inter', sans-serif; background: var(--bg-body); color: var(--text-main); line-height:1.6; transition: background 0.3s, color 0.3s; }
.container { max-width:1200px; margin:0 auto; padding:0 20px; }
a { text-decoration:none; color:inherit; }
.section { padding:80px 0; }
.section--alt { background: var(--bg-card); }
.text-gradient { background: var(--gradient-gold); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }

.btn {
    display:inline-flex; align-items:center; gap:8px; padding:12px 28px; border-radius:50px; font-weight:600;
    transition: all 0.3s; border:2px solid transparent; cursor:pointer; font-size:16px;
}
.btn--primary { background: var(--primary); color:white; border-color: var(--primary); }
.btn--primary:hover { background: var(--primary-light); transform:translateY(-2px); box-shadow: var(--shadow-md); }
.btn--secondary { background: transparent; color: var(--primary); border-color: var(--primary); }
.btn--secondary:hover { background: var(--primary); color:white; }
.btn--outline { background: transparent; color: white; border-color: rgba(255,255,255,0.4); }
.btn--outline:hover { background: white; color: var(--primary); }
.btn--light { background: white; color: var(--primary); }
.btn--light:hover { background: var(--gray-100); }
.btn--whatsapp { background: #25D366; color:white; border-color:#25D366; }
.btn--whatsapp:hover { background: #128C7E; }
.btn--lg { padding:14px 36px; font-size:18px; }
.btn--sm { padding:8px 20px; font-size:14px; }
.btn--block { width:100%; justify-content:center; }

/* Header */
.header { position:fixed; top:0; left:0; width:100%; z-index:1000; background:rgba(10,44,90,0.9); backdrop-filter:blur(12px); border-bottom:1px solid rgba(255,255,255,0.1); }
.header__container { display:flex; align-items:center; justify-content:space-between; height:80px; }
.header__logo { display:flex; align-items:center; gap:12px; color:white; }
.logo-icon i { font-size:32px; color: var(--secondary); }
.logo-text__main { font-size:24px; font-weight:800; letter-spacing:-0.5px; }
.logo-text__sub { display:block; font-size:11px; font-weight:400; opacity:0.8; }
.nav { display:flex; align-items:center; gap:24px; }
.nav__list { display:flex; list-style:none; gap:24px; }
.nav__link { color:white; font-weight:500; padding:8px 0; position:relative; }
.nav__link::after { content:''; position:absolute; bottom:0; left:0; width:0; height:2px; background: var(--secondary); transition:0.3s; }
.nav__link:hover::after, .nav__link--active::after { width:100%; }
.nav__cta { background: var(--secondary); color:var(--dark); }
.nav__cta:hover { background: var(--secondary-light); }
.dark-toggle { background:none; border:none; color:white; font-size:20px; cursor:pointer; padding:8px; }
.header__actions-mobile { display:none; gap:12px; align-items:center; }
.hamburger { display:none; flex-direction:column; gap:6px; background:none; border:none; cursor:pointer; }
.hamburger__line { width:28px; height:3px; background:white; border-radius:2px; }

/* Hero */
.hero { position:relative; background: var(--gradient-primary); min-height:100vh; display:flex; align-items:center; overflow:hidden; color:white; }
.hero__overlay { position:absolute; inset:0; background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 320"><path fill="%230a2c5a" fill-opacity="0.3" d="M0,224L48,213.3C96,203,192,181,288,176C384,171,480,181,576,186.7C672,192,768,192,864,181.3C960,171,1056,149,1152,144C1248,139,1344,149,1392,154.7L1440,160L1440,320L0,320Z"/></svg>') no-repeat bottom; background-size:cover; opacity:0.5; }
.hero__pattern { position:absolute; top:0; right:0; width:600px; height:600px; background:radial-gradient(circle, rgba(255,255,255,0.08) 1px, transparent 1px); background-size:30px 30px; }
.hero__container { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; position:relative; z-index:2; padding-top:80px; }
.hero__badge { display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,0.15); padding:8px 20px; border-radius:50px; font-weight:600; font-size:14px; margin-bottom:24px; }
.hero__title { font-size:clamp(2.5rem, 6vw, 4rem); font-weight:800; line-height:1.2; margin-bottom:24px; }
.hero__highlight { background: var(--gradient-gold); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.hero__description { font-size:18px; opacity:0.9; margin-bottom:36px; max-width:500px; }
.hero__actions { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:48px; }
.hero__stats { display:flex; gap:32px; flex-wrap:wrap; }
.hero__stat-number { font-size:28px; font-weight:800; color: var(--secondary); display:block; }
.hero__stat-label { font-size:14px; opacity:0.8; }
.hero__visual { position:relative; display:flex; justify-content:center; align-items:center; }
.hero__globe { position:relative; width:280px; height:280px; }
.globe-ring { position:absolute; inset:0; border-radius:50%; border:2px dashed rgba(255,255,255,0.2); animation:spin 20s linear infinite; }
.globe-ring--2 { inset:-20px; border-color:rgba(255,255,255,0.1); animation-direction:reverse; animation-duration:25s; }
.globe-core { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-size:60px; color:var(--secondary); }
.hero__card { position:absolute; background:rgba(255,255,255,0.1); backdrop-filter:blur(12px); padding:12px 20px; border-radius:50px; display:flex; align-items:center; gap:10px; font-weight:600; }
.hero__card--1 { top:10%; left:-30px; }
.hero__card--2 { top:30%; right:-50px; }
.hero__card--3 { bottom:20%; left:-20px; }
.hero__card--4 { bottom:35%; right:-40px; }
.hero__wave { position:absolute; bottom:0; left:0; width:100%; color: var(--bg-body); }
.hero__wave svg { width:100%; height:80px; }
@keyframes spin { to{transform:rotate(360deg);} }

/* Sections */
.section__header { text-align:center; margin-bottom:60px; }
.section__subtitle { color: var(--secondary); font-weight:600; text-transform:uppercase; letter-spacing:2px; font-size:14px; }
.section__title { font-size:clamp(2rem, 5vw, 3rem); font-weight:700; margin:10px 0 16px; }
.section__description { color: var(--text-muted); max-width:600px; margin:0 auto; }
.section__cta { text-align:center; margin-top:40px; }

.courses-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(320px, 1fr)); gap:30px; }
.course-card { background: var(--bg-card); border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow-sm); transition:0.3s; display:flex; flex-direction:column; border: 1px solid var(--border); }
.course-card:hover { transform:translateY(-8px); box-shadow: var(--shadow-md); }
.course-card__header { padding:30px 24px 20px; text-align:center; position:relative; }
.course-card__header--siaf { background:linear-gradient(135deg, #0a2c5a, #1e4785); color:white; }
.course-card__header--siga { background:linear-gradient(135deg, #1b5e20, #388e3c); color:white; }
.course-card__header--osce { background:linear-gradient(135deg, #e65100, #f57c00); color:white; }
.course-card__header--contabilidad { background:linear-gradient(135deg, #00695c, #00897b); color:white; }
.course-card__header--invierte { background:linear-gradient(135deg, #4a148c, #7b1fa2); color:white; }
.course-card__header--tesoreria { background:linear-gradient(135deg, #b71c1c, #c62828); color:white; }
.course-card__icon { font-size:36px; margin-bottom:12px; }
.course-card__badge { position:absolute; top:12px; right:12px; background: var(--secondary); color:var(--dark); padding:4px 12px; border-radius:50px; font-size:12px; font-weight:700; }
.course-card__body { padding:20px 24px; flex:1; }
.course-card__title { font-size:20px; font-weight:700; margin-bottom:10px; }
.course-card__description { color: var(--text-muted); margin-bottom:16px; font-size:15px; }
.course-card__features { list-style:none; margin-bottom:16px; }
.course-card__features li { display:flex; align-items:center; gap:8px; font-size:14px; margin-bottom:8px; color:var(--text-muted); }
.course-card__features i { color: var(--accent); }
.course-card__footer { display:flex; align-items:center; justify-content:space-between; padding:20px 24px; border-top:1px solid var(--border); }
.course-card__price { font-size:24px; font-weight:800; color: var(--primary); }

.benefits__grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:30px; }
.benefit-card { background: var(--bg-card); padding:36px 28px; border-radius: var(--radius); box-shadow: var(--shadow-sm); text-align:center; transition:0.3s; border: 1px solid var(--border); }
.benefit-card:hover { transform:translateY(-5px); box-shadow: var(--shadow-md); }
.benefit-card__icon { font-size:40px; color: var(--secondary); margin-bottom:16px; }
.benefit-card h3 { margin-bottom:10px; }

.cta__box { background: var(--gradient-primary); border-radius: 24px; padding:60px; display:flex; align-items:center; justify-content:space-between; gap:40px; position:relative; overflow:hidden; color:white; flex-wrap:wrap; }
.cta__title span { color: var(--secondary); }
.cta__actions { display:flex; gap:16px; margin-top:24px; flex-wrap:wrap; }
.cta__visual { position:relative; font-size:100px; color:rgba(255,255,255,0.1); }
.cta__circle { position:absolute; border-radius:50%; background:rgba(255,255,255,0.05); }
.cta__circle--1 { width:200px; height:200px; top:-40px; right:-40px; }
.cta__circle--2 { width:150px; height:150px; bottom:-30px; left:-30px; }

.footer { background: var(--dark); color:white; padding:60px 0 20px; }
.footer__grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:40px; margin-bottom:40px; }
.footer__logo { display:flex; align-items:center; gap:10px; font-size:24px; font-weight:800; margin-bottom:12px; }
.footer__social { display:flex; gap:12px; margin-top:16px; }
.footer__social a { color:white; background:rgba(255,255,255,0.1); width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; transition:0.3s; }
.footer__social a:hover { background: var(--secondary); }
.footer h4 { color: var(--secondary); margin-bottom:16px; }
.footer ul { list-style:none; }
.footer ul li { margin-bottom:10px; }
.footer ul li i { margin-right:8px; width:20px; }
.footer__bottom { text-align:center; padding-top:20px; border-top:1px solid rgba(255,255,255,0.1); font-size:14px; opacity:0.7; }

.whatsapp-float { position:fixed; bottom:30px; right:30px; background:#25D366; color:white; width:60px; height:60px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:28px; box-shadow:0 4px 15px rgba(0,0,0,0.3); z-index:999; transition:0.3s; }
.whatsapp-float:hover { transform:scale(1.1); }

.page-header { background: var(--gradient-primary); padding:120px 0 60px; color:white; text-align:center; }
.page-header__title { font-size:3rem; font-weight:800; }
.page-header__description { opacity:0.9; margin-top:10px; }

.about__grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.about__stats { display:flex; gap:24px; margin-top:32px; flex-wrap:wrap; }
.about__stats div { text-align:center; background:var(--bg-card); padding:16px; border-radius:var(--radius-sm); border:1px solid var(--border); }
.about__stats span { font-size:28px; font-weight:800; color: var(--secondary); display:block; }
.about__img-placeholder { background: var(--gray-200); border-radius: var(--radius); height:300px; display:flex; flex-direction:column; align-items:center; justify-content:center; color:var(--text-muted); font-weight:600; }

.contact__grid { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.contact__form-wrapper h2 { margin-bottom:24px; }
.contact__form .form-group { margin-bottom:20px; }
.contact__form input, .contact__form select, .contact__form textarea { width:100%; padding:14px 16px; border:1px solid var(--border); border-radius: var(--radius-sm); font-family:inherit; font-size:16px; transition:0.2s; background:var(--bg-card); color:var(--text-main); }
.contact__form input:focus, .contact__form select:focus, .contact__form textarea:focus { outline:none; border-color: var(--primary); box-shadow:0 0 0 3px rgba(10,44,90,0.1); }
.form-checkbox { display:flex; align-items:center; gap:10px; }
.form-checkbox input[type="checkbox"] { width:auto; }
.contact__info { display:flex; flex-direction:column; gap:20px; }
.contact__card { background: var(--bg-card); padding:24px; border-radius: var(--radius); box-shadow: var(--shadow-sm); text-align:center; border: 1px solid var(--border); }
.contact__card i { font-size:28px; color: var(--secondary); margin-bottom:10px; }

.course-detail__grid { display:grid; grid-template-columns:1fr 300px; gap:40px; }
.course-detail__price { font-size:32px; font-weight:800; color: var(--secondary); margin:16px 0; }
.course-detail__features { list-style:none; margin:20px 0; }
.course-detail__features li { padding:10px 0; border-bottom:1px solid var(--border); display:flex; align-items:center; gap:10px; }
.course-detail__features i { color: var(--accent); }
.info-box { background: var(--bg-card); padding:20px; border-radius: var(--radius); box-shadow: var(--shadow-sm); margin-bottom:20px; border: 1px solid var(--border); }
.info-box h3 { display:flex; align-items:center; gap:8px; color: var(--primary); margin-bottom:8px; }

@media (max-width: 992px) {
    .hero__container { grid-template-columns:1fr; text-align:center; }
    .hero__visual { display:none; }
    .hero__actions { justify-content:center; }
    .hero__stats { justify-content:center; }
    .about__grid { grid-template-columns:1fr; }
    .contact__grid { grid-template-columns:1fr; }
    .course-detail__grid { grid-template-columns:1fr; }
}
@media (max-width: 768px) {
    .nav { position:fixed; top:80px; left:0; width:100%; background: var(--primary); flex-direction:column; padding:24px; gap:16px; transform:translateY(-150%); transition:0.3s; z-index:999; }
    .nav.active { transform:translateY(0); }
    .nav__list { flex-direction:column; gap:16px; }
    .hamburger { display:flex; }
    .header__actions-mobile { display:flex; }
    .dark-toggle#dark-toggle { display:none; }
    .cta__box { flex-direction:column; text-align:center; padding:40px 24px; }
    .footer__grid { grid-template-columns:1fr; }
}