@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&display=swap');
:root{--ink:#263b33;--muted:#67776c;--sage:#dce8dc;--sage-deep:#496e59;--forest:#375945;--sand:#e8dac5;--cream:#f8f6ef;--white:#fffdf8;--line:#dce3d9;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--cream)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}h1,h2,h3{font-weight:400;line-height:1.12}h1,h2{font-family:'DM Serif Display',Georgia,serif}h1{font-size:clamp(3.25rem,6vw,6.9rem);letter-spacing:-.035em}h2{font-size:clamp(2.5rem,4vw,4.8rem);letter-spacing:-.025em}h3{font-family:'DM Serif Display',Georgia,serif;font-size:1.9rem}h1 em,h2 em{font-weight:400;color:var(--sage-deep)}p{line-height:1.7}a{color:var(--forest);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button{cursor:pointer}.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:.72rem!important;font-weight:700;color:#7d886d!important;line-height:1.5}.site-header{height:88px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 max(4vw,24px);background:var(--cream);border-bottom:1px solid #e6e9df}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font:400 1.55rem 'DM Serif Display',Georgia,serif;white-space:nowrap}.brand:hover{text-decoration:none}.brand em{font-style:italic;color:var(--sage-deep)}.brand-mark{display:grid;place-items:center;width:35px;height:35px;border:1px solid #abc0ab;border-radius:50%;color:var(--sage-deep);font:1.45rem Georgia}.site-header nav{display:flex;align-items:center;gap:clamp(14px,2vw,34px)}.site-header nav>a:not(.button),.nav-logout{font-size:.9rem;font-weight:600;color:#40594b}.site-header form{margin:0}.nav-logout{background:none;border:0;padding:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;border:1px solid var(--forest);border-radius:99px;padding:1rem 1.5rem;background:var(--forest);color:#fff;font-size:.88rem;font-weight:700;line-height:1.2;transition:background .2s,transform .2s}.button:hover{background:#294937;transform:translateY(-2px);text-decoration:none}.button span{font-size:1.1rem;font-weight:400}.button.small{padding:.7rem 1.15rem;font-size:.82rem}.button.secondary{background:#e5eee5;color:var(--forest);border-color:#c7d8c8}.button:disabled{opacity:.5;cursor:default;transform:none}.button-light{background:var(--white);color:var(--forest);border-color:var(--white)}.button-light:hover{background:#f2ebdf}main{max-width:1280px;margin:auto;padding:0 24px 96px;min-height:65vh}.text-link{display:inline-flex;gap:18px;align-items:center;border-bottom:1px solid #718e74;padding-bottom:7px;font-weight:700;font-size:.9rem}.text-link:hover{text-decoration:none;color:#254633}.text-link span{font-size:1.15rem}.notice,.error{padding:1rem 1.2rem;border-radius:10px;margin:1.2rem 0;background:#e7f0e7;color:#385743}.error{background:#f7e4db;color:#944a39}
/* Landing page */
.landing{padding-top:22px}.hero{min-height:635px;position:relative;isolation:isolate;overflow:hidden;border-radius:24px;background:#e8ddca;display:flex;align-items:center}.hero-image{position:absolute;inset:0;z-index:-2;background:url('images/spanish-study-hero.webp') center right/cover no-repeat}.hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(247,239,224,.96) 0%,rgba(247,239,224,.9) 25%,rgba(247,239,224,.55) 45%,rgba(247,239,224,.02) 74%)}.hero-content{width:min(650px,60%);padding:65px clamp(36px,5.2vw,82px)}.hero h1{margin:18px 0 24px}.hero-copy{font-size:1rem;max-width:440px;color:#4f6155;margin-bottom:30px}.hero-actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap}.hero-note{display:flex;align-items:center;gap:10px;margin-top:56px;color:#617362;font-size:.82rem}.sparkle{font-size:1.45rem;color:#79977c}.intro-band{display:grid;grid-template-columns:repeat(3,1fr);padding:36px 18px 42px;border-bottom:1px solid var(--line)}.intro-band>div{display:grid;grid-template-columns:45px 1fr;column-gap:10px;align-items:start;padding:12px 24px;border-right:1px solid var(--line)}.intro-band>div:last-child{border:0}.intro-icon{grid-row:span 2;color:#8aa786;font:2rem Georgia;line-height:1}.intro-band strong{font-size:.9rem}.intro-band small{color:var(--muted);margin-top:5px;line-height:1.55}.section-block{padding:105px 0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:35px}.section-heading h2{margin:12px 0 0}.section-heading>p{max-width:340px;color:var(--muted);margin:0 0 7px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card,.panel{border:1px solid var(--line);background:var(--white);border-radius:16px;padding:28px}.package-card{min-height:310px;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}.package-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px #38533d12}.package-card:nth-child(3n+2){background:#ecf1e7}.package-card:nth-child(3n+3){background:#f1eadf}.card-top{display:flex;justify-content:space-between;align-items:start}.package-kicker{font-size:.69rem;text-transform:uppercase;letter-spacing:.15em;font-weight:700;color:#7f917d}.card-ornament{font:2.4rem Georgia;color:#9aaf91}.package-card h3{margin:35px 0 12px}.package-card p{font-size:.88rem;color:var(--muted);margin:0;flex:1}.card-bottom{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}.card-bottom strong{font:1.3rem 'DM Serif Display',Georgia,serif}.card-bottom small{font:.7rem 'DM Sans',sans-serif}.round-link{display:grid;place-items:center;width:38px;height:38px;border:1px solid #9cb49e;border-radius:50%;font-size:1.1rem}.round-link:hover{background:var(--forest);color:#fff;text-decoration:none}.editorial{display:grid;grid-template-columns:1fr 1fr;min-height:560px;overflow:hidden;border-radius:20px;background:#e8eee4}.editorial-photo{background:url('images/spanish-courtyard.webp') center/cover no-repeat;min-height:500px}.editorial-copy{padding:clamp(40px,6vw,90px);align-self:center}.editorial-copy h2{margin:16px 0 26px}.editorial-copy p:not(.eyebrow){max-width:440px;color:#5a6d5e}.editorial-copy .text-link{margin-top:20px}.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.steps-grid article{border-top:1px solid #a8bbaa;padding-top:24px}.steps-grid article span{font:italic 2rem 'DM Serif Display',Georgia,serif;color:#8fa58d}.steps-grid article h3{margin:22px 0 10px;font-size:1.65rem}.steps-grid article p{color:var(--muted);font-size:.9rem;max-width:300px}.closing-cta{display:flex;justify-content:space-between;align-items:center;gap:30px;background:#41624a;color:#fff;padding:70px clamp(32px,6vw,90px);border-radius:20px}.closing-cta .eyebrow{color:#c4d5bb!important}.closing-cta h2{margin:12px 0}.closing-cta h2 em{color:#d7e4ce}.closing-cta p:not(.eyebrow){color:#e4ede1;margin:0}.closing-cta .button{flex-shrink:0}
/* Interior pages */
.page-head{padding:52px 0 36px;max-width:850px}.page-head h1{font-size:clamp(2.8rem,5vw,5rem);margin:14px 0}.page-head p{color:var(--muted)}.page-head strong{display:block;font:2rem 'DM Serif Display',Georgia,serif;margin:22px 0}.back{display:inline-block;margin:35px 0 0;font-size:.88rem;font-weight:700}.list{border:1px solid var(--line);background:var(--white);border-radius:14px;overflow:hidden}.list-row{display:flex;align-items:center;gap:20px;padding:18px 22px;border-bottom:1px solid var(--line)}.list-row:last-child{border:0}.list-row a,.list-row .badge{margin-left:auto}.list-row small{display:block;margin-top:4px;color:var(--muted)}.number{font:italic 1.4rem 'DM Serif Display',Georgia,serif;color:#92aa91}.muted,.empty{color:var(--muted)}.empty{padding:18px}.badge{padding:7px 12px;border-radius:99px;background:#e3eee2;font-size:.8rem}.narrow{max-width:470px;margin:65px auto}.narrow h1{font-size:3.3rem}.panel{padding:32px}.panel form,.narrow form{display:grid;gap:16px}label{display:grid;gap:7px;font-weight:700;font-size:.87rem}input,select,textarea{width:100%;border:1px solid #cddbcc;border-radius:9px;padding:12px 13px;background:#fff;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid #9bb59d;outline-offset:1px}.full{width:100%}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:34px}.dashboard-grid h2{font-size:2.3rem;margin:0 0 20px}.video-shell{background:#1d2d27;border-radius:16px;overflow:hidden}.video-shell video{display:block;width:100%;max-height:68vh}.lesson-body{font-size:1.06rem;max-width:770px;padding:35px 0;line-height:1.8}.videos{display:grid;grid-template-columns:2fr 1fr;gap:12px}.video-tile{position:relative;background:#1d2d27;border-radius:14px;min-height:260px;overflow:hidden}.video-tile video{width:100%;height:100%;object-fit:contain}.video-tile span{position:absolute;left:14px;bottom:14px;padding:6px 10px;border-radius:6px;background:#0a1f1faa;color:#fff}.video-tile.screen{grid-column:1/-1}.controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:18px 0}.controls #status{color:var(--muted)}.finish{margin-top:30px}.finish button{background:none;border:0;text-decoration:underline;color:var(--muted)}.site-footer{display:flex;justify-content:space-between;align-items:center;gap:30px;max-width:1280px;margin:auto;padding:45px 24px 60px;border-top:1px solid var(--line);color:var(--muted)}.site-footer p{font-size:.84rem;margin:10px 0 0}.site-footer small{font-size:.75rem}.footer-links{display:flex;gap:25px;font-size:.84rem;font-weight:700}
@media(max-width:900px){.hero{min-height:590px}.hero-content{width:72%}.hero:after{background:linear-gradient(90deg,rgba(247,239,224,.96),rgba(247,239,224,.76) 58%,rgba(247,239,224,.15))}.intro-band>div{padding:12px}.grid{grid-template-columns:repeat(2,1fr)}.editorial-copy{padding:38px}.dashboard-grid{grid-template-columns:1fr}}
@media(max-width:680px){.site-header{height:auto;min-height:78px;align-items:flex-start;flex-direction:column;padding:16px 20px;gap:14px}.site-header nav{width:100%;gap:15px;overflow-x:auto;white-space:nowrap;padding-bottom:4px}.site-header nav>a:not(.button),.nav-logout{font-size:.8rem}.nav-join{margin-left:auto}.brand{font-size:1.4rem}main{padding:0 16px 65px}.landing{padding-top:14px}.hero{min-height:720px;align-items:flex-start;border-radius:17px}.hero-image{background-position:66% center}.hero:after{background:linear-gradient(180deg,rgba(247,239,224,.98) 0%,rgba(247,239,224,.94) 46%,rgba(247,239,224,.45) 70%,rgba(247,239,224,0) 100%)}.hero-content{width:100%;padding:42px 28px}.hero h1{font-size:clamp(3.1rem,12vw,4.8rem);margin:18px 0}.hero-copy{font-size:.92rem;max-width:370px}.hero-actions{gap:22px}.hero-note{margin-top:35px}.intro-band{grid-template-columns:1fr;padding:18px 0}.intro-band>div{border-right:0;border-bottom:1px solid var(--line);padding:16px}.intro-band>div:last-child{border:0}.section-block{padding:72px 0}.section-heading{display:block}.section-heading>p{margin-top:18px}.grid,.steps-grid,.editorial,.videos{grid-template-columns:1fr}.package-card{min-height:265px}.editorial-photo{min-height:320px}.editorial-copy{padding:36px 26px 45px}.closing-cta{display:block;padding:48px 30px}.closing-cta .button{margin-top:28px}.site-footer{display:block;padding:35px 20px}.footer-links{margin:26px 0}.list-row{flex-wrap:wrap}.page-head{padding-top:38px}}

.inline-price{display:flex!important;align-items:end;gap:12px;margin-left:auto}.inline-price label{min-width:130px}.inline-price input{max-width:150px}.inline-price .button{white-space:nowrap}@media(max-width:680px){.inline-price{width:100%;margin-left:0}.inline-price label{flex:1}}
/* Professor calendar */
main.wide-main{max-width:none;padding:0 clamp(18px,2.5vw,48px) 85px}.calendar-page{max-width:1800px;margin:auto}.calendar-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;padding:24px 0 34px}.calendar-heading .back{margin:0 0 28px}.calendar-heading h1{font-size:clamp(2.7rem,4vw,4.8rem);margin:8px 0}.calendar-heading p:not(.eyebrow){color:var(--muted);margin:0}.calendar-heading>.button{flex-shrink:0;margin-bottom:8px}.calendar-shell{border:1px solid var(--line);border-radius:18px;background:var(--white);overflow:hidden;box-shadow:0 22px 50px #314d3910}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;border-bottom:1px solid var(--line)}.calendar-navigation{display:flex;align-items:center;gap:8px}.calendar-navigation button,.calendar-view-switch button{border:1px solid var(--line);background:var(--white);color:var(--forest);height:38px;border-radius:8px;padding:0 13px;font-weight:700}.calendar-navigation button:first-child,.calendar-navigation button:nth-child(3){font-size:1.5rem;line-height:1;padding:0 12px}.calendar-navigation button:hover,.calendar-view-switch button:hover{background:#edf3eb}.calendar-navigation h2{font:400 1.8rem 'DM Serif Display',Georgia,serif;margin:0 0 0 17px;text-transform:capitalize}.calendar-view-switch{display:flex;gap:4px;padding:4px;background:#eaf0e7;border-radius:10px}.calendar-view-switch button{border:0;background:transparent}.calendar-view-switch button[aria-pressed="true"]{background:var(--white);box-shadow:0 2px 8px #31573b18}.calendar-legend{display:flex;align-items:center;gap:22px;padding:12px 24px;color:var(--muted);font-size:.78rem;border-bottom:1px solid var(--line)}.calendar-legend span{display:flex;align-items:center;gap:7px}.calendar-legend small{margin-left:auto;font-size:.75rem}.legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#8fac90}.legend-dot.live{background:#d5a364}.legend-dot.completed{background:#a9ada8}.calendar-message{margin:0;padding:10px 24px;background:#edf4ec;color:var(--forest)}.calendar-message.error{background:#f8e9e3;color:#9a4939}.calendar-scroll{overflow-x:auto}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));min-width:910px}.weekday{padding:13px 14px;background:#f5f7f1;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#758678}.weekday:nth-child(7){border-right:0}.month-cell{min-height:142px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fffdf9}.month-cell:nth-child(7n){border-right:0}.month-cell.outside{background:#f7f8f4}.month-cell.outside .day-number{color:#a5afa2}.month-cell.is-today{background:#f0f5ed}.day-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.day-number,.day-add{border:0;background:none;color:var(--ink);border-radius:50%;width:30px;height:30px;font-weight:700}.day-number:hover,.day-add:hover{background:#dce8dc}.month-cell.is-today .day-number{background:var(--forest);color:#fff}.day-add{font-size:1.2rem;color:#6f9776;opacity:.75}.calendar-event{display:flex;align-items:center;gap:7px;width:100%;overflow:hidden;text-align:left;border:0;border-left:3px solid #7da37d;border-radius:5px;background:#e5f0e4;color:#2f5940;padding:5px 7px;margin:4px 0;font-size:.72rem;white-space:nowrap;cursor:pointer}.calendar-event:hover{filter:brightness(.96)}.calendar-event strong{font-weight:700}.calendar-event span{overflow:hidden;text-overflow:ellipsis}.calendar-event.live{border-color:#c89652;background:#fbedd8;color:#765528}.calendar-event.completed{border-color:#9aa59a;background:#ecefec;color:#6b766b}.more-events{border:0;background:none;color:var(--forest);font-weight:700;font-size:.72rem;padding:4px 7px}.day-grid{position:relative;min-width:620px}.hour-row{display:grid;grid-template-columns:82px 1fr;height:72px;border-bottom:1px solid var(--line)}.hour-label{text-align:right;padding:6px 15px 0 0;color:#8b9b8b;font-size:.75rem}.hour-slot{border:0;border-left:1px solid var(--line);background:linear-gradient(to bottom,transparent 49%,#eff2eb 50%,transparent 51%);text-align:left;cursor:crosshair}.hour-slot:hover{background:#f1f7ed}.day-events{pointer-events:none;position:absolute;left:82px;right:20px;top:0}.day-events .calendar-event{pointer-events:auto;position:absolute;left:15px;width:calc(100% - 30px);display:flex;flex-wrap:wrap;align-content:center;gap:4px 12px;padding:10px 16px;font-size:.9rem;white-space:normal;box-shadow:0 4px 14px #233e2c1a}.day-events .calendar-event small{flex-basis:100%;overflow:hidden;text-overflow:ellipsis}.session-dialog{border:1px solid var(--line);border-radius:18px;background:var(--white);color:var(--ink);padding:0;width:min(550px,calc(100vw - 28px));max-height:calc(100vh - 28px);box-shadow:0 28px 90px #15291955}.session-dialog::backdrop{background:#14271d99}.session-dialog form{padding:30px}.dialog-head{display:flex;align-items:start;justify-content:space-between}.dialog-head h2{font-size:2.5rem;margin:7px 0 20px}.dialog-head .eyebrow{margin:0}.dialog-close{border:0;background:none;font-size:2rem;color:var(--muted);line-height:1}.dialog-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.dialog-fields label:nth-child(1),.dialog-fields label:nth-child(2){grid-column:span 2}.dialog-error{padding:12px;background:#f8e9e3;color:#954636;border-radius:8px}.dialog-help{font-size:.81rem;color:var(--muted);margin:19px 0}.dialog-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.dialog-actions a{margin-right:auto;font-weight:700;font-size:.85rem}.calendar-promo{background:#e8f0e5}.calendar-promo p:not(.eyebrow){color:var(--muted)}.calendar-promo .button{margin-top:18px}
@media(max-width:800px){.calendar-heading{align-items:start;flex-direction:column}.calendar-toolbar{align-items:start;flex-direction:column}.calendar-navigation{flex-wrap:wrap}.calendar-navigation h2{flex-basis:100%;margin:10px 0 0}.calendar-legend{flex-wrap:wrap}.calendar-legend small{margin-left:0}.dialog-fields{grid-template-columns:1fr}.dialog-fields label:nth-child(1),.dialog-fields label:nth-child(2){grid-column:span 1}}

.dashboard-calendar-link{display:inline-block;vertical-align:middle;margin-left:12px;font:700 .85rem 'DM Sans',sans-serif;letter-spacing:0}
