/* Shared polish for the public pages. The course landing keeps its established layout. */
[hidden]{display:none!important}
.skip-link{position:fixed;left:20px;top:-100px;z-index:1000;padding:12px 20px;background:var(--green-dark);color:white;border-radius:12px}.skip-link:focus{top:12px}
.page-kicker{display:block;font-size:12px;font-weight:600;letter-spacing:.12em;color:var(--green-dark);margin-bottom:20px}
.section-description{max-width:700px;color:#607254;margin:-18px 0 30px;font-size:16px}
.text-action{color:var(--green-dark);font-size:15px;font-weight:500;text-decoration:underline;text-underline-offset:5px}
.form__next-link{display:block;margin-top:12px;text-decoration:underline;text-underline-offset:4px}
.form__row>.field,.materials-detail,.lesson-nav{min-width:0}
.field__input:focus{box-shadow:0 0 0 4px #69a6591f}
.field__input[aria-invalid=true]{border-color:var(--orange)}
.field__error:empty{display:none}
.modal__panel{overscroll-behavior:contain}
.modal .form__success,.modal .form__failure{font-size:15px}
.teacher-hero{background:linear-gradient(120deg,#f6faf2,#edf5e7);padding:76px 0 0;overflow:hidden}
.teacher-hero__grid{display:grid;grid-template-columns:1.25fr 1fr;gap:70px;align-items:center}
.teacher-hero__copy{padding-bottom:70px}
.teacher-hero h1{font-size:64px;letter-spacing:-.04em;line-height:1.05;color:var(--ink-strong)}
.teacher-hero h1 span{color:var(--green)}
.teacher-hero__lead{font-size:23px;line-height:1.55;max-width:590px;margin:30px 0 20px}
.teacher-hero__copy>p:not(.teacher-hero__lead){font-size:16px;line-height:1.8;color:#607254;max-width:550px}
.teacher-hero__actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap;margin-top:32px}
.teacher-hero__actions .btn{font-size:15px;padding-inline:24px}
.teacher-portrait{position:relative;align-self:end}
.teacher-portrait>img{width:100%;border-radius:180px 180px 0 0;object-fit:cover}
.teacher-portrait__note{position:absolute;left:-28px;bottom:35px;padding:18px 25px;background:#fff;border-left:3px solid var(--orange);border-radius:0 12px 12px 0;box-shadow:0 12px 28px #34492412;font-size:15px;transform:rotate(-3deg)}
.teacher-portrait__note b{font-weight:500;color:var(--green-dark)}
.section-intro{max-width:720px;margin-bottom:36px}.section-intro .section__title{margin-bottom:0}
.education-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.education-card{padding:30px;border:1px solid #e3eadc;border-radius:20px;background:#fbfcf9}
.education-card>span{font-size:11px;letter-spacing:.12em;color:#607254}
.education-card h3{margin:24px 0 14px;font-size:23px;line-height:1.3;color:var(--ink-strong)}
.education-card p{font-size:15px;line-height:1.75;color:#607254;margin:0}
.gallery--docs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;columns:auto}
.gallery--docs .gallery__item{margin:0;text-align:left;border:1px solid #e0e5dc;box-shadow:none;background:white}
.gallery--docs img{aspect-ratio:1.48;object-fit:contain;background:#f4f5f1;padding:12px}
.document-label{display:block;padding:20px;font-size:15px;font-weight:500;color:var(--ink-strong)}
.document-label small{display:block;margin-top:6px;font-size:12px;color:#607254;font-weight:400}
.policy-page .page-hero{padding:55px 0;background:#f2f7ed}
.policy-page .page-hero__title{font-size:clamp(28px,4vw,44px);max-width:1000px;letter-spacing:-.025em;text-transform:none;line-height:1.2}
.policy-page .page-hero__subtitle{font-size:16px;color:#607254}
.policy-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:55px;align-items:start}
.policy-sidebar{position:sticky;top:100px}
.policy-toc{background:#f5f8f0;border:1px solid #e3eadb;border-radius:16px;padding:20px}
.policy-toc summary{font-size:15px;font-weight:600;color:var(--green-dark);cursor:pointer}
.policy-toc nav{display:grid;gap:12px;padding-top:20px}
.policy-toc a{font-size:12px;line-height:1.6;color:#607254}.policy-toc a:hover{text-decoration:underline}
.policy-layout .prose{max-width:780px;margin:0;font-size:16px;line-height:1.85;overflow-wrap:anywhere}
.policy-layout .prose h2{font-size:24px;line-height:1.35;color:var(--green-dark);margin:42px 0 18px;scroll-margin-top:100px}
.policy-layout .prose h2:first-child{margin-top:0}
.policy-layout .prose li{margin-bottom:10px}
.materials-hero{padding:55px 0;background:#eff6e9}
.materials-hero .page-hero__title{font-size:44px;text-transform:none;letter-spacing:-.035em;line-height:1.15}.materials-hero h1 span{color:var(--green)}
.materials-hero .page-hero__subtitle{font-size:16px;line-height:1.7;max-width:630px;color:#607254}
.gate-card{width:100%;max-width:460px;margin:0 auto;border:1px solid #e3eadc;border-radius:24px;box-shadow:0 14px 50px #3858220b;padding:38px;background:var(--white)}
.gate-card__badge{display:inline-block;margin-bottom:14px;padding:5px 12px;border-radius:999px;background:var(--green);color:#fff;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}
.gate-card__title{font-size:24px;letter-spacing:-.02em;color:var(--ink-strong);margin:0 0 8px}
.gate-card__hint{font-size:14px;color:#607254;margin:0 0 22px}
.gate-form{display:flex;flex-direction:column;gap:16px}
.gate-form .field__input{width:100%;font-size:14px;border-radius:12px;min-height:54px}
.gate-form .btn{border-radius:12px;font-size:16px;min-height:52px}
.gate-form .form__note,.gate-help{font-size:12px;color:#607254;margin:12px 0 0}
.gate-help a{color:var(--green-dark)}
.gate-switch{display:flex;gap:4px;padding:4px;margin:0 auto 32px;max-width:560px;background:var(--mint-light);border:1px solid var(--gray-line);border-radius:14px}
.gate-switch__btn{flex:1;padding:13px 16px;border:0;border-radius:11px;background:transparent;font-size:15px;font-weight:600;color:var(--ink);cursor:pointer;transition:background .15s,color .15s}
.gate-switch__btn:hover{color:var(--green-dark)}
.gate-switch__btn.is-active{background:var(--white);color:var(--green-darker);box-shadow:0 2px 8px #3858221a}
@media(max-width:900px){.gate-card{max-width:none;padding:28px}}
@media(max-width:600px){.gate-card{padding:26px}}
.materials-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:32px}
.materials-toolbar .page-kicker{margin-bottom:10px}.materials-toolbar h2{font-size:30px;color:var(--ink-strong)}
.materials-toolbar .btn{font-size:13px}
.materials-tabs{gap:8px;margin-bottom:20px}.materials-tab{font-size:14px;padding:10px 22px}
.materials-layout{grid-template-columns:300px minmax(0,1fr);gap:24px;margin-top:20px}
.materials--trial .materials-layout{grid-template-columns:1fr}
.materials--trial .materials-detail{max-width:920px;margin:0 auto;width:100%}
.lesson-nav{box-shadow:none;border:1px solid #e0e6d9}.lesson-nav__heading{padding:20px;font-size:12px;color:#607254;border-bottom:1px solid #e7edde;text-transform:uppercase;letter-spacing:.08em}
.lesson-list{max-height:600px}
.lesson-list__item{padding:0;border-bottom:1px solid #e8eee1;display:block}
.lesson-list__button{display:flex;gap:12px;align-items:center;border:0;background:none;width:100%;padding:16px;text-align:left;cursor:pointer}
.lesson-list__title{font-size:13px;line-height:1.5}.lesson-list__num{font-size:12px;width:30px;height:30px}
.materials-detail{box-shadow:none;border:1px solid #e0e6d9;padding:24px}
.lesson-heading{font-size:23px;color:var(--ink-strong);margin:0 0 20px;line-height:1.35}
.player__title{background:#fff;color:#6b7d5b;padding:12px 0 0}
.video-tab{font-size:13px;padding:8px 15px}
.attachment-row__name{font-size:13px}.attachment-row__actions .btn{font-size:12px;min-height:36px;padding:7px 16px}
.attachments__title{font-size:16px}
.materials-empty,.player-error{padding:22px;background:#fff8eb;border:1px solid #efe3cb;border-radius:15px;color:#9b7744;font-size:14px;line-height:1.6}
@media(max-width:900px){
 .teacher-hero{padding-top:45px}.teacher-hero__grid{gap:30px}.teacher-hero h1{font-size:45px}.teacher-hero__lead{font-size:18px}.teacher-hero__copy{padding-bottom:40px}
 .education-grid{gap:14px}.education-card{padding:22px}.education-card h3{font-size:19px}
 .policy-layout{grid-template-columns:1fr;gap:32px}.policy-sidebar{position:static}.policy-toc nav{grid-template-columns:1fr 1fr;max-height:240px;overflow:auto}
 .materials-layout{grid-template-columns:1fr}.lesson-list{max-height:235px}.lesson-nav__heading{padding:14px 18px}
 .gallery--docs{gap:14px}.document-label{padding:14px;font-size:12px}
}
@media(max-width:600px){
 .page-kicker{font-size:10px;letter-spacing:.08em}
 .teacher-hero__grid{grid-template-columns:1fr;gap:0}.teacher-hero h1{font-size:44px}.teacher-hero__lead{font-size:19px}.teacher-hero__actions{gap:18px;margin-top:24px}.teacher-hero__actions .btn{font-size:13px;padding-inline:20px}
 .teacher-portrait{max-width:330px;margin:0 auto;width:100%}.teacher-portrait__note{left:0;font-size:12px}
 .education-grid{grid-template-columns:1fr}.education-card{padding:24px}.education-card h3{margin-top:16px;font-size:23px}
 .gallery--docs{grid-template-columns:1fr}.document-label{padding:18px;font-size:15px}
 .policy-page .section{padding-block:35px}.policy-toc nav{grid-template-columns:1fr;max-height:200px}.policy-layout .prose{font-size:15px}.policy-layout .prose h2{font-size:22px}
 .materials-hero{padding:36px 0}.materials-hero .page-hero__title{font-size:34px}.materials-hero .page-hero__subtitle{font-size:14px}
 .materials-toolbar{align-items:flex-start;flex-direction:column;gap:16px}.materials-toolbar h2{font-size:26px}.materials-toolbar .btn{padding:8px 16px;min-height:38px}
 .materials-detail{padding:16px}.lesson-heading{font-size:20px}.materials-page .messengers{bottom:14px;right:12px;gap:8px}.materials-page .messengers__btn{width:42px;height:42px}
 .lightbox__nav{width:40px;height:40px;top:auto;bottom:18px;transform:none}.lightbox__nav--prev{left:20px}.lightbox__nav--next{right:20px}.lightbox__img{max-height:78vh}.lightbox__counter{bottom:28px}
}
@media(max-width:900px){.nav:not([data-open="true"]){visibility:hidden;pointer-events:none}.nav[data-open="true"]{visibility:visible}}

/* Keep form text readable without triggering zoom on mobile browsers. */
@media(max-width:600px){.field__input{font-size:16px}.attachment-row{flex-wrap:wrap;gap:12px}.attachment-row__name{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.has-reveal .reveal{opacity:1;transform:none;transition:none}}

/* Notebook paper: a lightweight, crisp grid at every screen resolution. */
.notebook {
  --notebook-cell: 28px;
  --notebook-line: rgba(92, 129, 139, .13);
  background-image:
    linear-gradient(var(--notebook-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--notebook-line) 1px, transparent 1px);
  background-size: var(--notebook-cell) var(--notebook-cell);
  background-position: center top;
}
.teacher-hero.notebook { background-color: #f1f7eb; }
@media (max-width:600px) { .notebook { --notebook-cell: 24px; } }
