[hidden] { display: none !important; }
.toast-region { position:fixed; z-index:1000; right:20px; bottom:20px; width:min(430px,calc(100vw - 40px)); pointer-events:none; }
.toast { display:flex; gap:16px; align-items:flex-start; padding:22px; color:#f2f5f3; background:#102a20; border:1px solid #35c88b; border-radius:18px; box-shadow:0 16px 60px #0006; pointer-events:auto; }
.toast-error { background:#371d1a; border-color:#e78776; }
.toast strong { display:block; font-size:16px; line-height:1.4; }
.toast p { margin:8px 0 0; color:#d4dfd8; font-size:13px; line-height:1.6; }
.toast-close { flex-shrink:0; margin-left:auto; padding:0; width:28px; height:28px; border:0; border-radius:50%; background:#ffffff14; color:white; font-size:22px; line-height:1; }
.toast-close:focus-visible { outline:2px solid #62f4bc; outline-offset:3px; }
section[id] { scroll-margin-top: 95px; }
.brand-mark { flex-shrink:0; overflow:hidden; }
.brand-mark img { width:100%; height:100%; object-fit:cover; transform:scale(3.2); transform-origin:47% 38%; }
.hero h1 { font-size: clamp(52px,7vw,100px); }
.hero h1 em { display: inline-block; }
.hero:has(.hero-portrait) { padding-bottom:140px; }
.hero-portrait { height:auto; width:min(100%,560px); aspect-ratio:1; min-height:0; align-self:center; isolation:isolate; }
.hero-portrait img { height:100%; width:100%; max-height:none; max-width:none; border-radius:32px; border:1px solid #ffffff26; object-fit:cover; object-position:center; }
.hero-p2p { position:absolute; z-index:3; bottom:-55px; left:50%; transform:translateX(-50%); font-size:clamp(150px,17vw,235px); font-weight:800; letter-spacing:-.075em; line-height:.82; padding-right:.075em; color:var(--sand); text-shadow:0 2px 0 #b59c72,0 5px 0 #9a8057,0 9px 0 #79603b,0 20px 35px #0008; pointer-events:none; }
.program-page { padding:140px max(7vw,20px) 80px; min-height:80vh; }
.program-page .section-heading { margin-bottom:45px; }
.program-page h1 em { color:var(--green-dark); }
.program-page .pricing-grid { max-width:1180px; margin:auto; }
.lesson { padding: 100px max(7vw,30px); }
.lesson .section-heading { margin: 0 0 35px; }
.section-sand h2 i { color: #0c6b4c; }
.lesson-note { margin: 25px 0 0; }
.lesson-preview { position: relative; width: min(100%,1000px); aspect-ratio: 16/9; display: grid; place-items: center; overflow: hidden; border-radius: 24px; background: #0d1b18; color: white; margin-bottom: 25px; }
.lesson-preview img { width:100%; height:100%; object-fit:cover; position:absolute; }
.play-symbol { z-index:1; background:#1fd290; color:#07110f; border-radius:50%; width:76px; height:76px; display:grid; place-items:center; font-size:26px; }
.lesson-preview p { position:absolute; bottom:12%; font-size:14px; color:#d4dbd8; }
.price-body .tariff-meta { font-size:12px; color:#53615d; line-height:1.6; margin:15px 0; }
.price-body .tariff-meta strong { color:#07110f; }
.price .price-only { margin-left:auto; }
.pricing-grid { align-items:stretch; }
.price-card { display:flex; flex-direction:column; }
.price-body { display:flex; flex-direction:column; flex:1; }
.price-body .price { margin-top:auto; padding-top:25px; }
.lead-form { display:grid; gap:18px; }
.lead-form > label { display:grid; gap:8px; font-size:12px; color:#f2f5f3; }
.lead-form input:not([type=checkbox]), .lead-form select { width:100%; background:#182a24; border:1px solid #3b5046; border-radius:10px; padding:14px; color:white; font:inherit; font-size:16px; min-height:48px; }
.lead-form input:focus, .lead-form select:focus { outline:2px solid #1fd290; outline-offset:2px; }
.lead-form small { margin:0; }
.lead-form .consent { display:flex; align-items:flex-start; gap:12px; line-height:1.6; }
.consent input { margin-top:4px; accent-color:#1fd290; }
.consent a { text-decoration:underline; }
button { cursor:pointer; font-family:inherit; }
.button { border:0; }
.button:disabled { opacity:.55; cursor:wait; transform:none; }
.content-note { border-left:3px solid #866a35; padding-left:16px; font-size:12px; }
.honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
#form-message { margin:0; line-height:1.6; font-size:13px; text-transform:none; letter-spacing:normal; }
#form-message.error, .load-error { color:#ffb2a7; }
.load-error { background:#671c12; padding:16px; border-radius:12px; }
#form-message.success { color:#62f4bc; }
.consent-banner { position:fixed; bottom:18px; left:18px; z-index:60; max-width:500px; padding:24px; border:1px solid #47705e; border-radius:18px; color:white; background:#0d1b18; box-shadow:0 20px 50px #0006; }
.consent-banner p { font-size:12px; line-height:1.7; }
.consent-banner > div { display:flex; gap:12px; }
.plain-button { background:none; border:0; color:inherit; text-decoration:underline; padding:0; }
.legal-page { max-width:800px; margin:100px auto; padding:30px; color:white; }
.legal-page p { line-height:1.8; }
.enroll-dialog-open { overflow:hidden; }
.enroll-dialog { width:min(560px,calc(100% - 24px)); max-height:calc(100dvh - 32px); padding:0; border:1px solid #3b5046; border-radius:24px; color:white; background:var(--ink); box-shadow:0 32px 120px #0009; overflow:auto; overscroll-behavior:contain; }
.enroll-dialog::backdrop { background:#020b08c9; backdrop-filter:blur(8px); }
.dialog-heading { padding:32px 36px 0; }
.dialog-heading h2 { font-family:'Manrope',sans-serif; font-size:30px; letter-spacing:-.04em; line-height:1.2; margin:16px 0 10px; }
.dialog-heading > p:last-child { margin:0; color:#b3c5bb; font-size:13px; line-height:1.6; }
.enroll-dialog .final-card { padding:26px 36px 36px; border-radius:0; box-shadow:none; }
.dialog-close { position:absolute; right:15px; top:14px; display:grid; place-items:center; width:34px; height:34px; padding:0; border:1px solid #40564a; border-radius:50%; color:white; background:#1b3026; font-size:24px; line-height:1; }
.dialog-close:hover { background:#2e493b; }
@media(max-width:1080px) { .hero-portrait { height:auto; width:min(100%,560px); margin:30px auto 0; } .hero-p2p { font-size:235px; } }
@media(max-width:760px) { .hero-portrait { height:auto; width:100%; margin-top:35px; } .hero-p2p { font-size:clamp(150px,49vw,235px); bottom:-42px; } .hero:has(.hero-portrait) { padding-bottom:110px; } .dialog-heading { padding:28px 24px 0; } .enroll-dialog .final-card { padding:22px 24px 28px; } }
@media(max-width:760px) { .lesson { padding:80px 20px; } .consent-banner { left:10px; right:10px; bottom:10px; } .play-symbol { width:52px; height:52px; font-size:18px; } .lesson-preview p { font-size:10px; bottom:4%; } }
