@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@500;600;700;800;900&display=swap');

:root{
  --ink:#27314a;
  --muted:#69738d;
  --paper:#fffdf8;
  --white:#fff;
  --purple:#5b4fc8;
  --purple-dark:#463aa9;
  --lavender:#eeeaff;
  --yellow:#ffd85a;
  --green:#318866;
  --line:#e7e5f2;
  --shadow:0 16px 40px rgba(65,56,130,.12);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  font-family:"Nunito",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at 12% 8%,#fff1b8 0,transparent 25%),
    radial-gradient(circle at 90% 18%,#e6e0ff 0,transparent 28%),
    linear-gradient(180deg,#f8fbff 0%,#fffaf1 100%);
}
button,a{font:inherit}
button:focus-visible,a:focus-visible{outline:4px solid rgba(91,79,200,.24);outline-offset:4px}
.page-shell{width:min(1100px,calc(100% - 28px));margin:0 auto}
.eyebrow{font-size:.78rem;letter-spacing:.12em;font-weight:900;color:var(--purple)}

.hero{
  min-height:310px;
  margin-top:18px;
  padding:clamp(30px,6vw,64px);
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:30px;
  background:linear-gradient(135deg,#fffef8,#f7f2ff);
  border:1px solid rgba(91,79,200,.11);
  border-radius:34px;
  box-shadow:var(--shadow);
  overflow:hidden;
}
.hero h1{font-size:clamp(2.5rem,6vw,4.6rem);line-height:1;margin:12px 0 18px;letter-spacing:-.045em}
.hero p{max-width:650px;margin:0;color:var(--muted);font-size:1.2rem;line-height:1.5}
.hero-mascot{width:clamp(145px,22vw,235px);filter:drop-shadow(0 16px 20px rgba(81,70,140,.15))}
.learning-hero .hero-copy{max-width:720px}
.learning-hero .hero-lead{max-width:680px;color:var(--ink);font-size:clamp(1.2rem,2.3vw,1.5rem);font-weight:800;line-height:1.4}
.learning-hero .hero-support{max-width:630px;margin-top:13px;font-size:1rem}

main{padding:18px 0 30px}
.guidance{
  margin:0 0 42px;
  padding:20px 22px;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:16px;
  background:rgba(255,255,255,.78);
  border:1px solid #e2def7;
  border-radius:22px;
}
.guidance-icon{font-size:2rem}
.guidance h2{font-size:1.1rem;margin:0 0 7px}
.guidance p{margin:5px 0;color:var(--muted);line-height:1.55}
.guidance strong{color:var(--ink)}

.section-heading{margin-bottom:20px}
.section-heading h2{font-size:clamp(1.8rem,4vw,2.5rem);margin:7px 0 6px}
.section-heading p{margin:0;color:var(--muted)}
.learning-areas{padding:28px 0 14px}
.area-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.area-card{
  min-height:245px;
  padding:22px;
  display:flex;
  flex-direction:column;
  border:1px solid #e4e1f1;
  border-radius:26px;
  background:rgba(255,255,255,.82);
  color:var(--ink);
  text-decoration:none;
  box-shadow:0 8px 24px rgba(72,68,120,.06);
}
.area-card.is-available{grid-column:span 2;border:2px solid #cfc7ff;background:linear-gradient(135deg,#fff,#f7f4ff);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
a.area-card.is-available:hover{transform:translateY(-3px);border-color:#aea2f1;box-shadow:0 13px 28px rgba(72,68,120,.11)}
.area-card.is-coming{border-style:dashed;background:rgba(255,255,255,.58);box-shadow:none}
.area-status{align-self:flex-start;padding:6px 10px;border-radius:999px;background:#ececf2;color:#686d7c;font-size:.72rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.is-available .area-status{background:#e8f8ef;color:#267252}
.area-icon{margin:18px 0 10px;font-size:2.4rem}
.area-card h3{margin:0 0 7px;font-size:1.4rem}
.area-card p{margin:0 0 15px;color:var(--muted);line-height:1.45}
.area-action{margin-top:auto;color:var(--purple-dark);font-weight:900}
.area-note{margin-top:auto;color:#72788a;font-size:.88rem;font-weight:700;line-height:1.4}
.reviews-section{padding-top:44px;scroll-margin-top:18px}
.reviews-heading{max-width:760px}
.storage-note{margin-top:7px!important;font-size:.92rem}
.subject-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.subject-card{
  min-height:300px;
  padding:22px;
  display:flex;
  flex-direction:column;
  position:relative;
  background:var(--white);
  border:2px solid transparent;
  border-radius:26px;
  box-shadow:0 10px 28px rgba(72,68,120,.08);
  color:var(--ink);
  text-decoration:none;
}
.subject-card.available{transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.subject-card.available:hover{transform:translateY(-4px);border-color:#d8d0ff;box-shadow:0 16px 34px rgba(72,68,120,.13)}
.subject-card.math{background:linear-gradient(180deg,#fff,#f2fbff)}
.subject-card.english{background:linear-gradient(180deg,#fff,#fff9e8)}
.subject-card.portuguese{background:linear-gradient(180deg,#fff,#f8f5ff)}
.subject-card.unavailable{background:rgba(255,255,255,.55);border-color:#ecebf2;box-shadow:none;color:#71788b}
.status{align-self:flex-start;border-radius:999px;padding:6px 10px;font-size:.72rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.available-status{background:#e8f8ef;color:#267252}
.next-status{background:#fff0b5;color:#795c00}
.preparing-status{background:#ececf2;color:#686d7c}
.subject-icon{font-size:2.7rem;margin:20px 0 12px}
.subject-card h3{font-size:1.45rem;margin:0 0 8px}
.subject-card p{margin:0 0 18px;color:var(--muted);line-height:1.45}
.exam-info{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);font-size:.9rem}
.card-action{margin-top:15px;color:var(--purple-dark);font-weight:900}

.site-footer{text-align:center;margin:34px 0 22px;padding:28px 20px;border-top:1px solid rgba(91,79,200,.14);color:var(--muted)}
.site-footer img{width:138px;height:auto}
.site-footer p{margin:10px 0 7px}
.footer-link{padding:8px;border:0;background:transparent;color:var(--purple-dark);font-weight:900;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.institutional-footer{margin:28px auto 18px;padding:24px 16px 4px;max-width:720px}
.institutional-footer img{width:112px;margin:0 auto;opacity:.92}
.institutional-footer .brand-relation{margin:13px 0 3px;color:var(--ink);font-weight:900}
.institutional-footer .brand-support{margin:3px auto 5px;max-width:560px;font-size:.94rem;line-height:1.5}
.institutional-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 10px}
.future-note,.family-link{display:grid;grid-template-columns:auto 1fr;gap:15px;padding:22px;border-radius:24px;background:rgba(255,255,255,.78);border:1px solid #ded9f5}
.future-note{margin-top:34px}.future-note>span,.family-link>span{font-size:2rem}.future-note h2,.family-link h2{margin:0 0 7px;font-size:1.35rem}.future-note p,.family-link p{margin:5px 0;color:var(--muted);line-height:1.5}
.family-link{margin:0 0 18px;background:linear-gradient(135deg,#f0fbf4,#fff);border-color:#cfe9d7}.family-link .footer-link{padding-left:0}
.inline-link{display:inline-block;margin-top:7px;color:var(--purple-dark);font-weight:900;text-underline-offset:3px}

.dialog-backdrop{position:fixed;inset:0;z-index:10;padding:18px;display:grid;place-items:center;background:rgba(30,33,49,.56)}
.dialog-backdrop[hidden]{display:none}
.dialog{width:min(480px,100%);padding:28px;background:var(--white);border-radius:26px;box-shadow:0 24px 70px rgba(25,22,60,.28);text-align:center}
.dialog-icon{font-size:2.1rem}
.dialog h2{font-size:1.55rem;margin:9px 0}
.dialog p{color:var(--muted);line-height:1.55;margin:0 0 22px}
.dialog-actions{display:flex;gap:10px;justify-content:center}
.primary-button,.secondary-button{min-height:48px;border:0;border-radius:14px;padding:12px 17px;font-weight:900;cursor:pointer}
.primary-button{background:var(--purple);color:var(--white)}
.secondary-button{background:var(--lavender);color:var(--purple-dark)}

@media (max-width:850px){
  .subject-grid{grid-template-columns:repeat(2,1fr)}
  .area-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .area-card.is-available{grid-column:1/-1}
}
@media (max-width:620px){
  .page-shell{width:min(1100px,calc(100% - 18px))}
  .hero{min-height:auto;margin-top:9px;padding:28px 22px;grid-template-columns:1fr;border-radius:26px}
  .hero h1{font-size:2.65rem}
  .hero p{font-size:1.05rem}
  .learning-hero .hero-lead{font-size:1.18rem}
  .learning-hero .hero-support{font-size:.96rem}
  .hero-mascot{width:125px;justify-self:center}
  main{padding-top:12px}
  .guidance{grid-template-columns:1fr;padding:18px;margin-bottom:34px}
  .guidance-icon{font-size:1.7rem}
  .learning-areas{padding-top:22px}
  .area-grid{grid-template-columns:1fr}
  .area-card,.area-card.is-available{grid-column:auto;min-height:220px;padding:19px}
  .reviews-section{padding-top:36px}
  .subject-grid{grid-template-columns:1fr}
  .subject-card{min-height:275px}
  .dialog{padding:24px 18px}
  .dialog-actions{flex-direction:column}
  .dialog-actions button{width:100%}
  .future-note,.family-link{grid-template-columns:1fr;padding:18px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
