@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap');

:root { --ink:#183126; --muted:#617168; --green:#62af2d; --green-dark:#347c27; --mint:#e5f1df; --cream:#f7fbf5; --line:#d5e1d2; --white:#fff; --coral:var(--green); --coral-dark:var(--green-dark); --peach:var(--mint); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:clip; }
body { margin:0; color:var(--ink); background:var(--cream); font-family:'DM Sans', sans-serif; overflow-x:clip; }
a { color:inherit; text-decoration:none; }
.topline { background:var(--ink); color:#dfe5df; min-height:32px; padding:7px clamp(20px,5vw,72px); display:flex; justify-content:space-between; font-size:11px; letter-spacing:.09em; text-transform:uppercase; }
.site-header { 
    position: -webkit-sticky; /* Compatibilidad con Safari */
  position: sticky;
  top: 0;                   /* Se pega al llegar al borde superior */
  z-index: 100;
  height:76px; padding:0 clamp(20px,5vw,72px); display:flex; align-items:center; gap:40px; border-bottom:1px solid var(--line); background:var(--cream); }
.brand { font-family:'Space Grotesk',sans-serif; font-size:25px; font-weight:700; letter-spacing:-.06em; margin-right:auto; }.brand span { color:var(--green); }.brand-logo { display:flex; align-items:center; }.brand-logo img { width:112px; height:52px; object-fit:contain; object-position:left center; }
nav { display:flex; gap:30px; color:var(--muted); font-size:14px; } nav a:hover { color:var(--green-dark); }
.institutional-logos { display:flex; align-items:center; padding-left:10px; border-left:1px solid var(--line); }.institutional-logos img { width:125px; height:42px; object-fit:contain; }.header-phone { font-weight:700; color:var(--green-dark); font-size:15px; white-space:nowrap; }.phone-icon { display:inline-grid; place-items:center; width:26px; height:26px; margin-right:6px; color:var(--white); background:var(--green); border-radius:50%; font-size:17px; transform:rotate(-45deg); }
.section-shell { width:min(1180px, calc(100% - 40px)); margin:0 auto; }
.hero { display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(40px,8vw,120px); align-items:center; min-height:650px; padding:68px 0 82px; }.eyebrow { color:var(--coral-dark); font-size:12px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; margin:0 0 23px; }.eyebrow-dot { display:inline-block; width:8px; height:8px; background:var(--coral); margin-right:8px; border-radius:50%; }
h1,h2,h3 { font-family:'Space Grotesk',sans-serif; letter-spacing:-.055em; margin:0; } h1 { font-size:clamp(48px,6vw,83px); line-height:.99; max-width:700px; } h1 em { color:var(--coral); font-style:normal; }.hero-text { max-width:490px; color:var(--muted); font-size:18px; line-height:1.55; margin:29px 0; }.hero-tags { display:flex; gap:8px; margin:0 0 20px; }.hero-tags span { padding:8px 11px; color:var(--white); background:var(--green-dark); font:700 11px 'Space Grotesk',sans-serif; letter-spacing:.08em; }.hero-tags span:first-child { background:var(--green); }
.hero-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }.button { display:inline-flex; align-items:center; justify-content:center; gap:20px; border:0; cursor:pointer; font:700 14px 'DM Sans',sans-serif; padding:15px 20px; transition:transform .2s, background .2s; }.button:hover { transform:translateY(-2px); }.button-primary { background:var(--coral); color:var(--white); }.button-primary:hover { background:var(--coral-dark); }.button-quiet { color:var(--coral-dark); border-bottom:1px solid var(--coral); padding-inline:8px; }.button-dark { background:var(--ink); color:var(--white); width:100%; margin-top:10px; }.contact-note { color:var(--muted); font-size:13px; margin-top:29px; }.contact-note strong { color:var(--ink); margin-right:4px; }.contact-note a { color:var(--coral-dark); font-weight:700; }.signal { width:7px; height:7px; border-radius:50%; background:#54a377; display:inline-block; margin-right:8px; box-shadow:0 0 0 4px #d5ebdc; }
.scholarship-callout { display:flex; align-items:center; gap:13px; width:min(490px,100%); margin:25px 0 27px; padding:14px 16px; border:1px solid var(--green); background:var(--mint); }.scholarship-icon { display:grid; place-items:center; width:34px; height:34px; flex:0 0 34px; border-radius:50%; background:var(--green); color:var(--white); font:700 19px 'Space Grotesk',sans-serif; }.scholarship-callout div { display:grid; gap:3px; flex:1; }.scholarship-callout strong { color:var(--green-dark); font:700 13px 'Space Grotesk',sans-serif; letter-spacing:.03em; }.scholarship-callout div span { color:var(--muted); font-size:12px; }.scholarship-callout > a { color:var(--green-dark); font-size:23px; }
.hero-art { position:relative; padding:17px; background:var(--peach); transform:rotate(2.2deg); box-shadow:16px 18px 0 var(--coral); }.hero-art img { width:100%; height:auto; display:block; object-fit:contain; object-position:center; }.art-label { position:absolute; top:-27px; left:0; color:var(--coral-dark); font:700 11px 'Space Grotesk',sans-serif; letter-spacing:.1em; text-transform:uppercase; transform:rotate(-2.2deg); }.art-label span { color:var(--ink); margin:0 6px; }.art-sticker { position:absolute; bottom:28px; right:-40px; padding:17px 20px; background:var(--ink); color:var(--white); font-size:13px; line-height:1.15; transform:rotate(-7deg); box-shadow:5px 5px 0 var(--coral); }.art-sticker strong { color:#dff1d5; font-size:16px; }
.proof-strip { background:var(--coral); color:var(--white); padding:28px max(20px, calc((100% - 1180px)/2)); display:grid; grid-template-columns:repeat(4,1fr); }.proof-strip div { border-left:1px solid rgba(255,255,255,.35); padding:0 25px; }.proof-strip div:first-child { border:0; padding-left:0; }.proof-strip strong,.proof-strip span { display:block; }.proof-strip strong { font:700 23px 'Space Grotesk',sans-serif; }.proof-strip span { opacity:.83; font-size:12px; margin-top:4px; }
.proof-cta { grid-column:1 / -1; margin-top:22px; padding-top:18px; border-top:1px solid rgba(255,255,255,.35); font-size:13px; }.proof-cta strong { display:inline; margin-left:8px; text-decoration:underline; }.proof-cta span { display:inline; margin-left:12px; }
.proof-scholarship { grid-column:1 / -1; display:flex; align-items:center; gap:10px; margin-top:18px; padding:14px 0 0; border-top:1px solid rgba(255,255,255,.35); color:var(--white); font-size:13px; }.proof-scholarship strong { font:700 15px 'Space Grotesk',sans-serif; }.proof-scholarship span { opacity:.8; }.proof-scholarship b { margin-left:auto; font-size:20px; }
.course { padding:125px 0 105px; }.section-intro { max-width:670px; }.section-intro h2,.program h2 { font-size:clamp(36px,4vw,57px); line-height:1.03; }.course-grid { display:grid; grid-template-columns:1.15fr .85fr .85fr; gap:15px; margin-top:52px; }.feature-card { min-height:300px; padding:30px; border:1px solid var(--line); background:var(--white); position:relative; }.feature-main { background:var(--ink); color:var(--white); }.feature-light { background:#e5efe5; }.card-number { font:600 12px 'Space Grotesk',sans-serif; color:var(--coral); }.feature-card h3 { font-size:26px; margin:70px 0 13px; }.feature-card p { color:var(--muted); line-height:1.5; font-size:14px; max-width:260px; }.feature-main p { color:#bfc8c1; }.line-art { position:absolute; bottom:31px; left:30px; right:30px; display:flex; align-items:flex-end; gap:7px; height:50px; }.line-art span { background:var(--coral); width:18%; height:23%; }.line-art span:nth-child(2){height:50%}.line-art span:nth-child(3){height:35%}.line-art span:nth-child(4){height:78%}.line-art span:nth-child(5){height:100%}.text-link { display:inline-block; margin-top:28px; color:var(--coral-dark); font-size:13px; font-weight:700; border-bottom:1px solid var(--coral); padding-bottom:4px; }.text-link span { margin-left:16px; }.mini-code { position:absolute; bottom:29px; font:12px/1.6 monospace; color:#57815e; }.mini-code b { color:var(--coral-dark); }
.section-cta { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:30px; padding-top:18px; border-top:1px solid var(--line); color:var(--muted); font-size:13px; }.section-cta .text-link { margin-top:0; }.program-cta { grid-column:1 / -1; margin-top:0; }
.program { border-top:1px solid var(--line); padding:108px 0 120px; display:grid; grid-template-columns:.7fr 1.3fr; gap:90px; }.program-heading > p:last-child { color:var(--muted); line-height:1.55; max-width:280px; margin-top:25px; }.module-list { border-top:1px solid var(--ink); }.module-row { display:grid; grid-template-columns:45px 1fr 30px; align-items:center; gap:20px; padding:22px 0; border-bottom:1px solid var(--line); }.module-index { color:var(--coral-dark); font:600 13px 'Space Grotesk',sans-serif; }.module-row h3 { font-size:19px; letter-spacing:-.035em; }.module-row p { color:var(--muted); font-size:12px; margin:7px 0 0; }.module-arrow { color:var(--coral-dark); font-size:21px; }
.contact { padding-bottom:90px; }.contact-panel { background:var(--peach); display:grid; grid-template-columns:1fr .82fr; gap:80px; padding:65px clamp(30px,6vw,85px); position:relative; overflow:hidden; }.contact-panel:after { content:''; position:absolute; width:210px; height:210px; border:32px solid rgba(255,255,255,.5); border-radius:50%; right:-50px; bottom:-88px; }.contact-copy { position:relative; z-index:1; }.contact-copy h2 { font-size:clamp(38px,4vw,58px); line-height:1; max-width:510px; }.contact-copy > p:not(.eyebrow) { color:#774d45; max-width:440px; line-height:1.55; margin:25px 0 30px; }.big-contacts { display:grid; gap:17px; }.big-contacts a { display:flex; flex-direction:column; width:max-content; border-bottom:1px solid rgba(113,64,52,.35); padding-bottom:8px; }.big-contacts small { color:#a65440; font-size:11px; text-transform:uppercase; letter-spacing:.1em; font-weight:700; }.big-contacts span { font:700 clamp(21px,2.6vw,33px) 'Space Grotesk',sans-serif; letter-spacing:-.04em; }.contact-form { position:relative; z-index:1; padding-top:5px; }.contact-form label { display:block; color:#774d45; font-size:12px; font-weight:700; margin:0 0 7px; }.contact-form input,.contact-form textarea { width:100%; border:0; border-bottom:1px solid rgba(113,64,52,.45); border-radius:0; background:transparent; padding:9px 0 12px; margin-bottom:20px; color:var(--ink); outline:0; font:14px 'DM Sans',sans-serif; resize:vertical; }.contact-form input:focus,.contact-form textarea:focus { border-color:var(--coral-dark); }.contact-form ::placeholder { color:#a97669; }.form-status { color:#744a40; font-size:12px; min-height:17px; }
.site-footer { display:flex; align-items:center; gap:30px; padding:24px 0 40px; border-top:1px solid var(--line); color:var(--muted); font-size:12px; }.site-footer p { margin-right:auto; }.site-footer a { color:var(--coral-dark); font-weight:700; }.footer-logos img { width:122px; height:38px; object-fit:contain; }
.reveal { animation:rise .7s both; }.reveal-delay { animation-delay:.13s; }.reveal-delay-2 { animation-delay:.22s; }@keyframes rise { from {opacity:0; transform:translateY(18px)} to {opacity:1; transform:translateY(0)} }
@media (max-width:820px) { .site-header { gap:18px; }.site-header nav { display:none; }.institutional-logos { display:none; }.hero { grid-template-columns:1fr; padding-top:60px; }.hero-art { width:min(520px, 82%); margin:20px auto 0; }.proof-strip { grid-template-columns:repeat(2,1fr); gap:25px; }.proof-strip div:nth-child(3) { border:0; padding-left:0; }.course-grid,.program,.contact-panel { grid-template-columns:1fr; }.course-grid { margin-top:35px; }.feature-card { min-height:270px; }.program { gap:50px; }.program-heading > p:last-child { max-width:450px; }.contact-panel { gap:35px; }.site-footer { flex-wrap:wrap; }.site-footer p { width:100%; order:3; margin:0; } }
@media (max-width:520px) { .topline { font-size:9px; }.topline span:last-child { display:none; }.site-header { padding-inline:15px; gap:10px; }.brand-logo img { width:100px; }.header-phone { font-size:12px; }.hero { min-height:0; padding-bottom:70px; } h1 { font-size:52px; }.hero-text { font-size:16px; }.hero-art { width:90%; margin-right:7%; }.art-sticker { right:-25px; }.proof-strip { padding:25px 20px; }.proof-strip div { padding:0 12px; }.proof-strip div:nth-child(odd) { padding-left:0; }.proof-strip strong { font-size:18px; }.proof-strip span { font-size:11px; }.course { padding:82px 0; }.feature-card h3 { margin-top:55px; }.module-row { gap:10px; }.module-row h3 { font-size:16px; }.contact-panel { padding:45px 25px; }.big-contacts span { font-size:24px; }.section-shell { width:calc(100% - 30px); } }
.unit-list { margin-left:65px; border-top:1px solid var(--line); }
.unit-list div { display:grid; grid-template-columns:65px 1fr 36px; gap:14px; align-items:baseline; padding:12px 0; border-bottom:1px solid var(--line); color:var(--muted); font-size:13px; }
.unit-list b { color:var(--green-dark); font:700 12px 'Space Grotesk',sans-serif; }
.unit-list small { color:var(--ink); font-size:11px; font-weight:700; text-align:right; }
.menu-toggle { display:none; border:1px solid var(--line); background:var(--white); color:var(--green-dark); width:40px; height:40px; padding:9px; cursor:pointer; }
.menu-toggle span { display:block; height:2px; margin:4px 0; background:currentColor; transition:transform .2s, opacity .2s; }
@media (max-width:820px) {
  .site-header nav { display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; gap:0; padding:8px 20px; background:var(--cream); border-bottom:1px solid var(--line); box-shadow:0 10px 20px rgba(24,49,38,.08); }
  .site-header nav.menu-open { display:flex; }
  .site-header nav a { padding:14px 0; border-bottom:1px solid var(--line); }
  .site-header nav a:last-child { border-bottom:0; }
  .menu-toggle { display:block; flex:0 0 40px; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(6px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
  .menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-6px) rotate(-45deg); }
}
.feature-card { overflow:hidden; }
@media (max-width:520px) {
  .feature-card { min-height:0; padding:26px; }
  .feature-card h3 { margin:48px 0 13px; }
  .feature-card p { max-width:none; }
  .line-art { position:static; height:44px; margin-top:26px; }
  .mini-code { position:static; margin-top:25px; }
}
.course-career-copy { max-width:650px; margin:24px 0 0; color:var(--muted); font-size:16px; line-height:1.6; }.course-career-copy strong { color:var(--ink); }
.course-quote { margin:48px 0 0; color:var(--green-dark); font:600 clamp(22px,2.8vw,34px)/1.12 'Space Grotesk',sans-serif; letter-spacing:-.04em; max-width:760px; }
.privacy-consent { display:flex !important; align-items:flex-start; gap:9px; color:#46604d !important; font-size:12px !important; font-weight:400 !important; line-height:1.45; margin:2px 0 8px !important; }
.privacy-consent input { width:16px; height:16px; flex:0 0 16px; margin:1px 0 0; accent-color:var(--green-dark); }
.privacy-consent a { color:var(--green-dark); font-weight:700; text-decoration:underline; }
@media (max-width:520px) { .unit-list { margin-left:0; }.unit-list div { grid-template-columns:58px 1fr 30px; gap:8px; font-size:12px; } }
.database-image { width:100%; border-radius: 12px; margin-bottom:17px; overflow:hidden; background:var(--ink); }
.database-image img { width:100%; height:100%; display:block; object-fit:cover; object-position:center; }
