:root{
  --g:#84bd00;--gd:#374f00;--ga:#5e8600;--gl:#d9ebb0;
  --tx:#1D1D1B;--ts:#6B6B6B;--bg:#FFFFFF;--soft:#F2F2F2;
  --ft:#1e2731;--fd:#42546a;--fa:#abb4bf;
  --cream:#FBFCF6;--cream2:#f3f8e6;
  /* Ferrer brand gradient */
  --grad-start:#00B5AD;--grad-end:#8DC63F;
  --ferrer-grad:linear-gradient(120deg,#84bd00 0%,#00A36C 45%,#009ca6 100%);
}
*{box-sizing:border-box;}

@font-face {
  font-family: 'Avenir Roman';
  src: url('../fonts/AvenirLTProRoman.otf') format('opentype');
  font-weight: normal;
  font-style: normal;
}

body{font-family:'Avenir Roman',serif;color:var(--tx);background:var(--cream);margin:0;}
h1,h2,h3,h4{font-family:'Avenir Roman',serif;}

/* ── NAVBAR ── */
nav.top-nav{background:var(--bg);padding:1.1rem 0;position:sticky;top:0;z-index:100;border-bottom:1px solid var(--cream2);}
.nav-logo{font-family:'Avenir Roman',serif;font-style:italic;font-size:1.15rem;font-weight:700;color:var(--tx);text-decoration:none;}
.nav-links a{color:var(--tx);text-decoration:none;font-size:.9rem;font-weight:500;opacity:.7;transition:opacity .2s;}
.nav-links a:hover{opacity:1;}
.btn-access{background:transparent;color:var(--g);border:none;font-size:.9rem;font-weight:500;padding:.45rem 1rem;border-radius:40px;cursor:pointer;opacity:.7;text-decoration:none;}
.btn-access:hover{opacity:1;}
.btn-register{background:var(--ferrer-grad);color:#fff;border:none;font-size:.9rem;font-weight:600;padding:.5rem 1.3rem;border-radius:40px;cursor:pointer;transition:opacity .2s;text-decoration:none;}
.btn-register:hover{opacity:.88;}

/* ── HERO ── */
.hero{padding:80px 0 90px;background:var(--bg);}
.hero-label{font-size:.7rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--ts);margin-bottom:1.5rem;display:flex;align-items:center;gap:.5rem;}
.hero-label::before{content:'';width:28px;height:2px;background:var(--grad-start);display:inline-block;}
.hero h1{font-size:clamp(2.8rem,6vw,4.2rem);line-height:1.08;color:var(--tx);margin-bottom:1.5rem;font-weight:800;}
.hero h1 em{font-style:inherit;background:var(--ferrer-grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.hero-sub{font-size:1rem;color:var(--ts);max-width:420px;line-height:1.7;margin-bottom:2.5rem;}
.btn-primary-hero{background:var(--ferrer-grad);color:#fff;font-weight:600;font-size:.95rem;padding:.75rem 1.8rem;border-radius:40px;border:none;text-decoration:none;display:inline-block;transition:opacity .2s;}
.btn-primary-hero:hover{opacity:.88;color:#fff;}
.btn-ghost-hero{background:transparent;color:var(--tx);font-weight:500;font-size:.95rem;padding:.75rem 1.6rem;border-radius:40px;border:1.5px solid var(--cream2);text-decoration:none;display:inline-block;transition:all .2s;}
.btn-ghost-hero:hover{border-color:#bbb;color:var(--tx);}
.hero-img-wrap{position:relative;}
/*.hero-img-placeholder{width:100%;aspect-ratio:4/3;border-radius:24px;overflow:hidden;background:var(--ferrer-grad);display:flex;align-items:flex-end;justify-content:flex-start;}
.hero-img-inner{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative;}
.hero-img-inner svg{opacity:.08;position:absolute;width:70%;height:70%;}*/
.hero-img-placeholder {width: 100%;aspect-ratio: 4 / 3;border-radius: 24px;overflow: hidden;box-shadow: 0 8px 32px rgba(0,0,0,.1);}
.hero-img-inner {width: 100%;height: 100%;}
.hero-img-inner img {width: 100%;height: 100%;object-fit: cover;display: block;}
.hero-float-card{position:absolute;bottom:-20px;left:-20px;background:#fff;border-radius:16px;padding:1rem 1.4rem;box-shadow:0 8px 32px rgba(0,0,0,.1);display:flex;align-items:center;gap:.85rem;min-width:220px;}
.hero-float-icon{width:36px;height:36px;background:var(--ferrer-grad);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1rem;flex-shrink:0;}
.hero-float-card p{margin:0;font-size:.82rem;color:var(--tx);font-weight:500;line-height:1.35;}
.hero-stats{display:flex;gap:2rem;margin-top:2.5rem;flex-wrap:wrap;}
.hero-stat .n{font-family:'Avenir Roman',serif;font-size:1.8rem;font-weight:800;background:var(--ferrer-grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:block;line-height:1;}
.hero-stat .l{font-size:.75rem;color:var(--ts);margin-top:.2rem;}

/* ── MODULES ── */
.section-modules{padding:80px 0;background:var(--cream);}
.section-head-row{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:2.5rem;}
.section-head h2{font-size:clamp(1.8rem,4vw,2.4rem);margin:0;margin-top:.3rem;}
.section-head p{color:var(--ts);font-size:.93rem;margin:.5rem 0 0;max-width:380px;}
.progress-widget{background:#fff;border-radius:12px;padding:.9rem 1.4rem;display:flex;align-items:center;gap:1rem;min-width:220px;box-shadow:0 2px 12px rgba(0,0,0,.06);}
.progress-widget .pw-label{font-size:.75rem;font-weight:600;color:var(--ts);white-space:nowrap;}
.progress-widget .pw-bar{flex:1;height:6px;background:var(--cream2);border-radius:3px;overflow:hidden;}
.progress-widget .pw-fill{height:100%;background:var(--g);border-radius:3px;transition:width .5s;}
.progress-widget .pw-pct{font-size:.82rem;font-weight:700;color:var(--g);white-space:nowrap;}

/* Module card */
.mod-card{background:#fff;border-radius:18px;padding:1.5rem;border:1.5px solid transparent;transition:all .25s;height:100%;display:flex;flex-direction:column;position:relative;overflow:hidden;}
.mod-card:hover{box-shadow:0 10px 30px rgba(0,0,0,.08);transform:translateY(-2px);}
.mod-card.active{border-color:var(--g);}
.mod-card.locked{opacity:.65;}
.mod-num{font-family:'Avenir Roman',serif;font-size:2rem;font-weight:800;color:var(--gl);line-height:1;margin-bottom:.6rem;}
.mod-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;margin-bottom:.9rem;background:var(--gl);}
.mod-icon img{width:24px;height:24px;display:block;}
.mod-card h5{font-family:'Avenir Roman',serif;font-size:1.1rem;margin-bottom:.45rem;}
.mod-case-badge{display:inline-flex;align-items:center;gap:.35rem;font-size:1rem;color:var(--ga);background:var(--gl);border-radius:20px;padding:.25rem .65rem;margin-bottom:.9rem;margin-top:.9rem;width:fit-content;}
.mod-card p{font-size:.83rem;color:var(--ts);line-height:1.55;margin-bottom:1rem;}
.mod-topics{list-style:none;padding:0;margin:0 0 1.2rem;flex:1;}
.mod-topics li{font-size:.8rem;color:var(--tx);padding:.3rem 0;border-bottom:1px solid var(--cream2);display:flex;align-items:center;gap:.5rem;}
.mod-topics li::before{content:'';width:5px;height:5px;background:var(--ga);border-radius:50%;flex-shrink:0;}
.mod-meta{display:flex;gap:1rem;font-size:.78rem;color:var(--ts);border-top:1px solid var(--cream2);padding-top:.9rem;margin-top:auto;}
.mod-meta span{display:flex;align-items:center;gap:.3rem;}

/* ── COMMITTEE ── */
.section-committee{padding:80px 0;background:var(--cream2); margin-bottom:80px;}
.section-eyebrow{color:var(--ts);font-size:.7rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem;}
.section-eyebrow span{width:20px;height:1.5px;background:var(--grad-start);display:inline-block;}
.section-committee-title{font-size:clamp(1.8rem,4vw,2.4rem);margin-bottom:.5rem;}
.section-committee-sub{color:var(--ts);font-size:.93rem;max-width:520px;margin:0;}
/* Coordinator */
.committee-coordinator-wrap{margin:2.5rem 0 0;}
.coordinator-label{font-size:.68rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--ts);margin-bottom:.75rem;}
.coordinator-card{background:#fff;border-radius:16px;padding:1.5rem 1.75rem;display:inline-flex;align-items:center;gap:1.25rem;border-left:4px solid;border-image:var(--ferrer-grad) 1;margin-bottom:2.5rem;box-shadow:0 2px 12px rgba(0,0,0,.05);}
.coordinator-avatar{width:76px;height:76px;border-radius:50%;background:var(--ferrer-grad);flex-shrink:0;overflow:hidden;}
.coordinator-avatar img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;}
.coordinator-name{font-family:'Playfair Display',serif;font-size:1.15rem;font-weight:700;color:var(--tx);margin-bottom:.2rem;}
.coordinator-role{font-size:.83rem;color:var(--ts);margin-bottom:.35rem;}
.coordinator-location{font-size:.78rem;color:var(--ts);display:flex;align-items:center;gap:.35rem;}
.coordinator-location i{color:var(--grad-start);font-size:.75rem;}
/* Authors */
.authors-label{font-size:.68rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--ts);margin-bottom:.75rem;}
.author-card{background:#fff;border-radius:14px;padding:1.4rem;height:100%;display:flex;flex-direction:column;gap:.5rem;transition:all .2s;border:1.5px solid transparent;}
.author-card:hover{border-color:var(--grad-start);box-shadow:0 8px 24px rgba(0,0,0,.07);transform:translateY(-2px);}
.author-avatar{width:64px;height:64px;border-radius:50%;background:var(--gl);margin-bottom:.3rem;overflow:hidden;}
.author-avatar img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;}
.author-name{font-family:'Playfair Display',serif;font-size:.97rem;font-weight:700;color:var(--tx);line-height:1.3;}
.author-role{font-size:.78rem;color:var(--ts);line-height:1.45;flex:1;}
.author-location{font-size:.75rem;color:var(--ts);display:flex;align-items:center;gap:.3rem;margin-top:.3rem;}
.author-location i{color:var(--grad-start);font-size:.72rem;}

/* ── EXAM CARD ── */
.section-exam{padding:0 0 80px;}
.exam-wrap{background:var(--ferrer-grad);border-radius:28px;padding:3rem;overflow:hidden;position:relative;}
.exam-wrap::before{content:'';position:absolute;top:-60px;right:-60px;width:280px;height:280px;background:rgba(255,255,255,.08);border-radius:50%;}
.exam-wrap::after{content:'';position:absolute;bottom:-80px;left:30%;width:220px;height:220px;background:rgba(255,255,255,.06);border-radius:50%;}
.exam-label{font-size:.7rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.75);margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem;}
.exam-label::before{content:'';width:20px;height:1.5px;background:rgba(255,255,255,.6);display:inline-block;}
.exam-wrap h2{font-size:clamp(1.8rem,4vw,2.5rem);color:#fff;margin-bottom:.9rem;}
.exam-wrap>div>p{color:rgba(255,255,255,.9);font-size:.95rem;max-width:480px;line-height:1.7;margin-bottom:1.8rem;}
.exam-info-row{display:flex;gap:2rem;flex-wrap:wrap;margin-bottom:2rem;}
.exam-info-item{display:flex;align-items:center;gap:.55rem;color:rgba(255,255,255,.9);font-size:.85rem;}
.exam-info-item i{color:#fff;font-size:1rem;}
.exam-info-item strong{color:#fff;}
.btn-exam{background:#fff;color:var(--gd);font-weight:700;font-size:.95rem;padding:.75rem 2rem;border-radius:10px;border:none;cursor:pointer;transition:all .2s;text-decoration:none;display:inline-block;}
.btn-exam:hover{background:rgba(255,255,255,.9);color:var(--gd);}
.exam-points-card{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);border-radius:20px;padding:2rem;text-align:center;backdrop-filter:blur(8px);position:relative;z-index:2;}
.exam-points-card .pts-num{font-family:'Avenir Roman',serif;font-size:4rem;font-weight:800;color:#fff;line-height:1;display:block;}
.exam-points-card .pts-lbl{color:rgba(255,255,255,.75);font-size:.72rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin-top:.4rem;display:block;}
.pts-icon{width:38px;height:38px;background:rgba(255,255,255,.25);border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1rem;margin:0 auto 1rem;}

/* ── HOW ── */
.section-how{padding:80px 0;background:var(--cream2);}
.how-step{background:#fff;border-radius:16px;padding:1.8rem 1.5rem;text-align:center;height:100%;}
.how-num{font-family:'Avenir Roman',serif;font-size:2.5rem;font-weight:800;color:var(--gl);line-height:1;margin-bottom:.75rem;}
.how-step h5{font-size:1rem;margin-bottom:.4rem;}
.how-step p{font-size:.83rem;color:var(--ts);margin:0;}

/* ── FOOTER ── */
footer{background:var(--ft);padding:48px 0 28px;}
.footer-logo{font-family:'Avenir Roman',serif;font-style:italic;font-size:1.1rem;font-weight:700;color:var(--bg);margin-bottom:.4rem;}
.footer-tagline{font-size:.75rem;color:var(--fa);text-transform:uppercase;letter-spacing:1px;max-width:200px;line-height:1.5;}
.footer-social{display:flex; }
footer .footer-social a {
	font-size: 1.2rem;
	margin-right: 0.5rem;
	border: 1px solid;
	border-radius: 50%;
	height: 30px;
	width: 30px;
	text-align: center;
}
.footer-col-title{font-size:.7rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--bg);margin-bottom:1rem;}
footer a{color:var(--bg);text-decoration:none;font-size:.85rem;display:block;margin-bottom:.55rem;transition:color .2s;}
footer a:hover{color:var(--g);}
.footer-bottom{border-top:1px solid var(--fd);padding-top:1.2rem;margin-top:2rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;}
.footer-bottom span{font-size:.75rem;color:var(--bg);}
.cert-badge{background:var(--fd);border-radius:6px;padding:.3rem .75rem;font-size:.68rem;font-weight:700;color:var(--ts);letter-spacing:.5px;}

/* ── BOTÓN FLOTANTE DE COOKIES ── */
.cookie-prefs-btn{position:fixed;bottom:20px;right:20px;z-index:1045;display:flex;align-items:center;gap:.6rem;background:var(--ferrer-grad);color:#fff;border:none;border-radius:50px;padding:.4rem 1.1rem .4rem .4rem;font-family:'Avenir Roman',serif;font-size:.85rem;font-weight:600;box-shadow:0 4px 14px rgba(0,0,0,.25);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease;}
.cookie-prefs-btn:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.3);opacity:.92;}
.cookie-prefs-icon{width:30px;height:30px;border-radius:50%;background:#fff;color:var(--ga);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;}

/* Ajuste para que el contenido ocupe el alto restante tras el nav */
.main-wrapper { min-height: calc(100vh - 72px); display: flex; }

.side-image {
    background: linear-gradient(rgba(132, 189, 0, 0.8), rgba(0, 156, 166, 0.9)), 
                url('../img/photo-1522202176988-66273c2fd55f.jpg');
    background-size: cover;
    background-position: center;
    color: white;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 60px;
}

.form-section {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px;
    background: var(--bg);
}

.auth-form-container { width: 100%; max-width: 400px; }

.nav-link.active-auth { color: var(--ferrer-blue) !important; font-weight: 700; }

.main-wrapper { min-height: calc(100vh - 72px); display: flex; }
        
.side-info {
    background: var(--ferrer-grad);
    color: white;
    display: flex;
    flex-direction: column;
    padding: 80px;
    position: relative;
    overflow: hidden;
}

/* Elemento decorativo sutil */
.side-info::after {
    content: "";
    position: absolute;
    bottom: -50px;
    right: -50px;
    width: 300px;
    height: 300px;
    background: rgba(255,255,255,0.05);
    border-radius: 50%;
}

.form-section {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 60px 40px;
}

.auth-form-container { width: 100%; max-width: 480px; }
.form-control { padding: 0.75rem 1rem; border-color: #dee2e6; }
.form-control:focus { border-color: var(--ferrer-blue); box-shadow: none; }

.testimonial-box {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    border-radius: 1rem;
    padding: 20px;
    margin-top: 40px;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

@media(max-width:767px){
  .hero{padding:50px 0 60px;}
  .hero-float-card{left:10px;bottom:-15px;min-width:180px;}
  .exam-wrap{padding:2rem 1.5rem;}
  .section-head-row{flex-direction:column;align-items:flex-start;}
}