:root {
    --em-red:#e50914;
    --em-bg:#06070a;
    --em-panel:#111319;
    --em-text:#f5f7fa;
    --em-muted:#aeb5c0;
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth;background:var(--em-bg); }
body {
    margin:0;
    color:var(--em-text);
    background:var(--em-bg);
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
a { color:inherit; }

.public-header {
    position:fixed;
    inset:0 0 auto;
    z-index:100;
    display:flex;
    align-items:center;
    min-height:82px;
    padding:8px clamp(18px,4vw,70px);
    border-bottom:1px solid rgba(255,255,255,.05);
    background:linear-gradient(180deg,rgba(3,4,7,.96),rgba(3,4,7,.74));
    backdrop-filter:blur(15px);
}
.public-brand { width:78px;height:64px;flex:0 0 auto; }
.public-brand img { width:100%;height:100%;object-fit:contain; }
.public-nav { display:flex;align-items:center;gap:clamp(18px,3vw,42px);margin-left:auto; }
.public-nav a { color:#e7e9ed;font-size:13px;font-weight:750;text-decoration:none; }
.public-nav a:not(.login-link):hover { color:#ff424b; }
.login-link {
    padding:11px 17px;
    border:1px solid rgba(255,255,255,.2);
    border-radius:999px;
    background:rgba(255,255,255,.07);
}
.login-link:hover { border-color:rgba(255,255,255,.38);background:rgba(255,255,255,.13); }

.public-hero {
    position:relative;
    min-height:min(880px,100svh);
    display:flex;
    align-items:center;
    overflow:hidden;
    padding:130px clamp(22px,6vw,110px) 90px;
}
.hero-background {
    position:absolute;
    inset:0;
    background:url('../images/copiaGrupos_b.png') center 22%/cover no-repeat;
    transform:scale(1.015);
}
.hero-shade {
    position:absolute;
    inset:0;
    background:
        linear-gradient(90deg,rgba(3,4,7,.98) 0%,rgba(3,4,7,.82) 38%,rgba(3,4,7,.18) 74%),
        linear-gradient(0deg,var(--em-bg) 0%,transparent 30%),
        linear-gradient(180deg,rgba(3,4,7,.25),transparent 30%);
}
.hero-content { position:relative;z-index:2;width:min(680px,100%); }
.eyebrow {
    margin:0 0 14px;
    color:#ff3c45;
    font-size:11px;
    font-weight:900;
    letter-spacing:.24em;
}
.hero-content h1 {
    margin:0;
    font-size:clamp(58px,8.2vw,125px);
    line-height:.82;
    letter-spacing:-.065em;
    text-transform:uppercase;
    text-shadow:0 15px 50px rgba(0,0,0,.55);
}
.hero-copy { max-width:610px;margin:30px 0 0;color:#d5d9e0;font-size:clamp(16px,1.35vw,20px);line-height:1.58; }
.hero-actions { display:flex;flex-wrap:wrap;gap:12px;margin-top:34px; }
.primary-action,.secondary-action {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:50px;
    padding:13px 21px;
    border:1px solid transparent;
    border-radius:8px;
    font-size:14px;
    font-weight:850;
    text-decoration:none;
    transition:transform .2s ease,background .2s ease;
}
.primary-action { background:var(--em-red);box-shadow:0 14px 36px rgba(229,9,20,.27); }
.primary-action:hover { transform:translateY(-2px);background:#ff202b; }
.secondary-action { border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.1);backdrop-filter:blur(8px); }
.secondary-action:hover { transform:translateY(-2px);background:rgba(255,255,255,.17); }
.hero-scroll { position:absolute;z-index:2;bottom:38px;left:50%;width:28px;height:46px;border:1px solid rgba(255,255,255,.35);border-radius:20px;transform:translateX(-50%); }
.hero-scroll span { position:absolute;top:10px;left:50%;width:4px;height:8px;border-radius:4px;background:white;transform:translateX(-50%);animation:scrollDot 1.7s infinite; }
@keyframes scrollDot { 0%{opacity:0;transform:translate(-50%,0)} 30%{opacity:1} 100%{opacity:0;transform:translate(-50%,14px)} }

.catalog-section { width:min(1540px,100%);margin:auto;padding:105px clamp(18px,5vw,78px) 120px; }
.section-heading { display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:42px; }
.section-heading h2,.school-copy h2 { margin:0;font-size:clamp(38px,5vw,72px);line-height:.96;letter-spacing:-.045em; }
.section-heading>p { width:min(460px,100%);margin:0;color:var(--em-muted);font-size:15px;line-height:1.65; }
.public-products { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 16px; }
.public-card {
    min-width:0;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.07);
    border-radius:15px;
    background:linear-gradient(180deg,#171a21,#0f1116);
    box-shadow:0 15px 35px rgba(0,0,0,.3);
    transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;
}
.public-card:not(.is-coming-soon):hover { transform:translateY(-7px);border-color:rgba(255,255,255,.18);box-shadow:0 26px 60px rgba(0,0,0,.55); }
.public-card.is-coming-soon { opacity:.68; }
.card-cover { position:relative;display:block;width:100%;aspect-ratio:4/5;overflow:hidden;background:#14161c; }
.card-cover img { width:100%;height:100%;display:block;object-fit:cover;transition:transform .45s ease,filter .3s ease; }
.public-card:not(.is-coming-soon):hover .card-cover img { transform:scale(1.04);filter:saturate(1.08); }
.card-gradient { position:absolute;inset:auto 0 0;height:38%;background:linear-gradient(0deg,rgba(6,7,10,.9),transparent); }
.subscription-label,.coming-soon-label {
    position:absolute;
    top:12px;
    padding:7px 9px;
    border:1px solid rgba(255,255,255,.25);
    border-radius:5px;
    color:white;
    font-size:9px;
    font-weight:900;
    letter-spacing:.12em;
}
.subscription-label { left:12px;background:var(--em-red); }
.coming-soon-label { right:12px;background:rgba(9,10,14,.84);backdrop-filter:blur(8px); }
.card-info { min-height:112px;padding:18px 17px 20px; }
.card-info h3 { margin:0 0 15px;font-size:14px;line-height:1.35;letter-spacing:.01em; }
.card-info a,.muted-link { color:#ff555d;font-size:12px;font-weight:850;text-decoration:none; }
.card-info a:hover { color:white; }
.muted-link { color:#858b96; }
.empty-state { padding:70px 24px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(255,255,255,.035);text-align:center; }
.empty-state h3 { margin:0 0 10px;font-size:28px; }
.empty-state p { margin:0;color:var(--em-muted); }

.school-section {
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);
    gap:60px;
    align-items:end;
    width:min(1400px,calc(100% - 36px));
    margin:0 auto 110px;
    padding:clamp(38px,6vw,82px);
    border:1px solid rgba(255,255,255,.08);
    border-radius:24px;
    background:radial-gradient(circle at 92% 10%,rgba(229,9,20,.2),transparent 34%),linear-gradient(135deg,#171920,#0e1015);
    box-shadow:0 30px 70px rgba(0,0,0,.4);
}
.school-copy>p:last-child { max-width:780px;margin:27px 0 0;color:#c1c6cf;font-size:16px;line-height:1.7; }
.school-cta { padding-left:35px;border-left:1px solid rgba(255,255,255,.11); }
.school-cta p { margin:0 0 18px;color:#c7ccd4;font-size:14px; }

.public-footer {
    position:relative;
    display:grid;
    grid-template-columns:1.5fr 1fr 1fr;
    gap:45px;
    padding:58px clamp(22px,6vw,110px) 78px;
    border-top:1px solid rgba(255,255,255,.07);
    background:#030407;
}
.footer-brand img { width:96px;height:80px;object-fit:contain; }
.footer-brand p { margin:8px 0 0;color:#858c97;font-size:12px;letter-spacing:.08em; }
.footer-column { display:flex;flex-direction:column;align-items:flex-start;gap:10px; }
.footer-column h2 { margin:0 0 7px;font-size:13px;letter-spacing:.1em;text-transform:uppercase; }
.footer-column a { color:#aeb5c0;font-size:13px;text-decoration:none; }
.footer-column a:hover { color:white; }
.copyright { position:absolute;left:clamp(22px,6vw,110px);bottom:28px;margin:0;color:#666d77;font-size:11px; }

@media (max-width:1100px) {
    .public-products { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .hero-background { background-position:62% center; }
    .school-section { grid-template-columns:1fr;gap:35px; }
    .school-cta { padding:0;border-left:0; }
}

@media (max-width:760px) {
    .public-header { min-height:70px;padding:6px 14px; }
    .public-brand { width:65px;height:56px; }
    .public-nav { gap:8px; }
    .public-nav>a:not(.login-link) { display:none; }
    .login-link { padding:10px 14px;font-size:12px; }
    .public-hero { min-height:780px;align-items:flex-end;padding:112px 18px 115px; }
    .hero-background { background-position:68% center; }
    .hero-shade { background:linear-gradient(0deg,var(--em-bg) 0%,rgba(3,4,7,.7) 48%,rgba(3,4,7,.12) 78%),linear-gradient(90deg,rgba(3,4,7,.68),transparent); }
    .hero-content h1 { font-size:clamp(54px,17vw,78px); }
    .hero-copy { font-size:15px; }
    .hero-actions { display:grid;grid-template-columns:1fr; }
    .hero-scroll { display:none; }
    .catalog-section { padding:78px 13px 85px; }
    .section-heading { display:block;margin:0 5px 30px; }
    .section-heading>p { margin-top:18px;font-size:14px; }
    .public-products { grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 9px; }
    .card-info { min-height:101px;padding:14px 12px 16px; }
    .card-info h3 { font-size:12px; }
    .subscription-label,.coming-soon-label { top:7px;padding:5px 6px;font-size:7px; }
    .subscription-label { left:7px; }
    .coming-soon-label { right:7px; }
    .school-section { width:calc(100% - 26px);margin-bottom:72px;padding:36px 23px;border-radius:18px; }
    .school-copy>p:last-child { font-size:14px; }
    .public-footer { grid-template-columns:1fr 1fr;padding:45px 22px 76px; }
    .footer-brand { grid-column:1/-1; }
    .copyright { left:22px; }
}

@media (max-width:390px) {
    .public-hero { min-height:720px; }
    .hero-content h1 { font-size:52px; }
    .section-heading h2,.school-copy h2 { font-size:37px; }
}

@media (prefers-reduced-motion:reduce) {
    html { scroll-behavior:auto; }
    *,*::before,*::after { animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important; }
}
