/* Keep all copy readable before, during and after scroll reveals. */
:root{--pink:#563080;--pink-dark:#43215f;--muted:#473c52}
.will-reveal{opacity:1;transform:translateY(10px);transition:transform .45s ease}
.will-reveal.is-visible{opacity:1;transform:none}
.process-section p,.process-section .small-note{color:#473c52}
.gallery-section .image-disclaimer{color:#473c52}
.final-cta .eyebrow{color:#43215f}
.hero .button-outline{color:#563080}
.academy-section .course-card .eyebrow{color:#563080}
/* Mobile and tablet interaction layer. Brand colours and business rules stay unchanged. */
[hidden]{display:none!important}
main,section,article,aside,form,.dashboard-main,.learning-main,.card-body,.product-info,.course-main{min-width:0}
h1,h2,h3,p,legend,.alert,.badge,.breadcrumbs,.certificate-card,.receipt-row{overflow-wrap:anywhere}
button,a,input,select,textarea,summary{touch-action:manipulation}
video{max-width:100%}
progress{display:block;width:100%;max-width:100%;height:10px;accent-color:var(--pink)}
.learning-outline{margin-top:18px}
.learning-outline summary{min-height:48px;padding:12px 0;cursor:pointer;font-weight:700;font-size:15px;color:var(--ink)}
.learning-outline summary:focus-visible{outline:3px solid var(--pink);outline-offset:4px}
.learning-outline ol{margin:0;font-size:14px}
.learning-outline li a{display:block;padding:6px 0;line-height:1.5}
.learning-outline li small{display:block;color:var(--pink)}
.learning-outline .lesson-locked{font-size:13px;line-height:1.5;color:var(--muted)}
.learning-evaluations{margin-top:28px;scroll-margin-top:120px}
.learning-evaluations form{margin-bottom:20px;padding:18px;background:var(--cream);border:1px solid var(--line);border-radius:12px}
.learning-evaluations form p{margin-bottom:12px}
.learning-page .floating-whatsapp,.account-page .floating-whatsapp{display:none}
.protected-player{padding:16px;overflow:hidden}
.protected-player video{display:block;aspect-ratio:16/9;max-height:65svh;border-radius:10px;background:#160e20;object-fit:contain}
.protected-player>p{font-size:14px;color:#fff;margin:14px 0 0}
.protected-player>button{min-height:48px}
.video-watermark{font-size:clamp(10px,2.4vw,12px);max-width:65%;overflow-wrap:anywhere}
[data-lesson-continuation]{margin:20px 0;padding:18px;border:1px solid #b6d53f;border-radius:12px;background:#f4fbdc}
[data-lesson-continuation] p{margin-bottom:12px;color:var(--ink)}
.lesson-content{font-size:16px;line-height:1.8}
.lesson-materials a{display:inline-block;min-height:44px;padding-block:10px;overflow-wrap:anywhere}
.lesson-actions{border-top:1px solid var(--line);padding-top:18px}
.exam-shell{padding-block:32px 64px}
.exam-shell h1{margin-top:10px}
.exam-back{display:inline-flex;align-items:center;min-height:44px;margin-bottom:14px}
.exam-intro{font-size:16px}
.reading .exam-form{padding:24px}
.exam-question{min-width:0;margin:0 0 30px;border:0;padding:0}
.exam-question:last-of-type{margin-bottom:18px}
.exam-question legend{width:100%;padding:0;font-size:18px;line-height:1.5;font-weight:700}
.question-number{display:block;margin-bottom:8px;font-size:12px;font-weight:600;color:var(--pink);text-transform:uppercase;letter-spacing:.06em}
.reading .question-hint{font-size:14px;margin:10px 0;color:var(--muted)}
.reading .exam-option{display:flex;align-items:center;gap:14px;padding:14px 16px;margin:10px 0;min-height:56px;background:var(--white);border:1px solid var(--line);border-radius:12px;cursor:pointer;font-size:16px;line-height:1.5}
.exam-option input[type=radio],.exam-option input[type=checkbox]{flex:0 0 22px;width:22px;height:22px;margin:0;accent-color:var(--pink)}
.exam-option span{min-width:0;overflow-wrap:anywhere}
.exam-option:has(input:checked){border-color:var(--pink);background:#efe6f9;box-shadow:inset 0 0 0 1px var(--pink)}
.exam-option:focus-within{outline:2px solid var(--pink);outline-offset:3px}
.exam-actions{padding-top:12px;border-top:1px solid var(--line)}
.exam-actions p{margin:10px 0 0;text-align:center;font-size:13px}
.exam-result{display:grid;gap:12px;padding:24px;background:#eaddf8;border:1px solid #ceb8e5;border-radius:16px;margin:24px 0}
.exam-result .badge{justify-self:start}
.exam-result strong{font:700 42px/1.2 var(--sans);color:var(--pink)}
.exam-result p{margin:0;color:var(--ink);font-size:16px}
.exam-correction{padding:20px 0;border-bottom:1px solid var(--line)}
.exam-correction h2{font:600 19px/1.5 var(--sans);letter-spacing:normal}
.table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.cookie-panel{max-height:85svh;overflow-y:auto}
@media(max-width:1099px){.main-nav{max-height:calc(100svh - 126px);overflow-y:auto;overscroll-behavior:contain}.main-nav>a{min-height:44px;padding:12px 4px}.header-inner{gap:12px}.menu-toggle{width:44px;min-height:44px;flex-shrink:0}}
@media(max-width:1023px){
.learning-layout{grid-template-columns:1fr;gap:18px;padding-block:24px 50px}
.lesson-sidebar{position:static;padding:18px 22px}
.lesson-sidebar h2{font-size:22px;margin:12px 0}
.lesson-sidebar>p{font-size:14px;margin:10px 0 0}
.lesson-sidebar>.text-link{display:inline-flex;align-items:center;min-height:44px}
.lesson-sidebar>.eyebrow{margin-bottom:6px}
.learning-outline ol{max-height:min(50svh,360px);overflow-y:auto;padding-right:8px;overscroll-behavior:contain}
.learning-main{padding:26px}
.learning-main h1{font-size:clamp(27px,4vw,38px);line-height:1.2}
}
@media(max-width:767px){
html{scroll-padding-top:126px}
.container{width:calc(100% - 32px)}
.button,.button-small{min-height:48px;font-size:15px;white-space:normal;text-align:center}
input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px;min-height:48px;max-width:100%}
input[type=file]{min-width:0;font-size:14px!important}
input[type=checkbox],input[type=radio]{width:21px;height:21px;flex-shrink:0}
.form-field label{font-size:14px}
.field-help,.field-error{font-size:13px}
.header-inner{width:calc(100% - 24px);gap:8px;min-height:70px}
.brand-logo img{width:62px;height:62px}
.header-actions{gap:6px;min-width:0}
.header-actions .account-link{width:44px;height:44px;justify-content:center;flex-shrink:0}
.site-header .button-small{font-size:12px;min-height:44px;padding:10px;max-width:135px}
.mobile-account-bar{padding:0 12px;min-height:40px}
.mobile-account-bar a{display:inline-flex;align-items:center;min-height:40px;padding:4px 8px}
.main-nav{top:100%;left:0;right:0;max-height:calc(100svh - 126px)}
.menu-toggle{width:44px;min-height:44px;padding:12px}
.dashboard{padding-top:20px;gap:22px}
.dashboard-nav{padding:16px}
.dashboard-nav nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;white-space:normal;overflow:visible}
.dashboard-nav nav a{display:flex;align-items:center;min-height:48px;padding:10px;border-radius:9px;background:#f4edf9;font-size:14px;line-height:1.4}
.dashboard-nav form{display:block;margin:12px 0 0;padding-top:10px;border-top:1px solid var(--line)}
.dashboard-nav .text-button{min-height:44px;font-size:14px}
.dashboard-welcome h1{font-size:32px}
.stat-grid{gap:10px}
.stat-grid>div{min-width:0;padding:16px}
.stat-grid span{font-size:13px}
.dashboard-section{scroll-margin-top:130px}
.dashboard-section .section-heading{flex-direction:column;align-items:flex-start}
.enrollment-card{display:flex;flex-direction:column;gap:0;overflow:hidden}
.enrollment-card>img{width:100%;height:180px;object-fit:cover}
.enrollment-card>div{padding:20px;min-width:0}
.enrollment-card h3{font-size:24px;line-height:1.3}
.enrollment-card .button{width:100%}
.progress-label{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:13px}
.certificate-card{align-items:flex-start;gap:12px;padding:20px}
.certificate-card>div{min-width:0;flex:1}
.certificate-card h3{font-size:23px;line-height:1.3}
.certificate-card p{font-size:14px;overflow-wrap:anywhere}
.certificate-symbol{font-size:30px;flex-shrink:0}
.certificate-card .button-row{align-items:stretch;flex-direction:column;gap:8px}
.certificate-card .text-link{display:flex;align-items:center;justify-content:center;min-height:44px}
.receipt-row{align-items:flex-start;flex-direction:column;gap:8px;padding-block:16px}
.receipt-row a{display:inline-flex;align-items:center;min-height:44px}
.learning-main{padding:20px 16px}
.learning-main h1{font-size:28px;margin-bottom:18px}
.lesson-sidebar{padding:14px 18px}
.learning-outline{margin-top:10px}
.lesson-tile{align-items:flex-start;gap:12px}
.lesson-tile>div{min-width:0;flex:1}
.lesson-tile h3{font-size:19px;line-height:1.4}
.lesson-tile small{font-size:12px}
.lesson-tile>span:last-child{display:block;margin:0;font-size:11px;max-width:75px;white-space:normal}
.learning-evaluations .button,.lesson-actions .button,[data-lesson-continuation] .button{width:100%}
.lesson-content{font-size:16px;padding-bottom:18px}
.lesson-materials{padding:14px 14px 14px 30px}
.protected-player{padding:10px;border-radius:12px}
.protected-player>button{width:100%;font-size:15px}
.protected-player video{max-height:65svh}
.video-watermark{left:8%;top:20%;font-size:10px}
.watermark-bottom{left:auto;right:8%;top:auto;bottom:30%}
[data-lesson-continuation]{padding:16px}
.exam-shell{padding-block:20px 48px}
.exam-shell h1{font-size:32px;line-height:1.2}
.reading .exam-form{padding:18px 14px;border-radius:14px}
.exam-question{margin-bottom:26px}
.exam-question legend{font-size:17px}
.reading .exam-option{padding:13px 12px;gap:12px;min-height:56px;font-size:16px}
.exam-result{padding:20px}
.reading:not(.exam-shell){width:calc(100% - 32px);padding-block:24px}
.reading label{font-size:15px}
.breadcrumbs{flex-wrap:wrap;line-height:1.5;font-size:12px}
.card-bottom{flex-wrap:wrap;gap:12px}
.card-bottom .text-link{display:inline-flex;align-items:center;min-height:44px;font-size:14px}
.category-pills a{display:inline-flex;align-items:center;min-height:44px;font-size:13px}
.footer-grid a{display:inline-flex;align-items:center;min-height:44px;padding-block:8px}
.footer-grid h2{font-size:20px}
.social-links{flex-wrap:wrap}
.cookie-panel{padding:22px 18px}
.cookie-close{width:44px;height:44px}
}
@media(max-width:359px){.site-header .button-small{max-width:112px;font-size:11px}.header-actions{gap:2px}.brand-logo img{width:54px;height:54px}.header-inner{gap:4px}.certificate-card{padding:16px}.footer-grid{grid-template-columns:1fr}.hero h1{font-size:36px}}
@media(max-height:500px) and (orientation:landscape){.learning-page .site-header{position:relative}.learning-layout{padding-top:16px}.learning-outline ol{max-height:160px}.protected-player video{max-height:none}.main-nav{max-height:65svh}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:0s!important}}

.local-service-heading{max-width:850px;margin-bottom:40px}.local-service-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:44px}.local-service article section,.blog-article>section{margin-block:28px}.local-service article h2,.blog-article>section h2{font-size:30px;line-height:1.25}.local-facts{align-self:start;padding:26px;background:#eaddf8;border-radius:18px}.local-facts h2{font-size:26px}.local-facts dt{font-weight:700;margin-top:14px}.local-facts dd{margin:6px 0 18px;color:var(--muted)}.article-cta{padding:24px;background:#eaddf8;border-radius:16px;margin-top:36px}.article-cta h2{font-size:28px}@media(max-width:1023px){.local-service-layout{grid-template-columns:1fr;gap:24px}}@media(max-width:767px){.local-service-heading h1{font-size:34px}.local-service-heading .button-row{align-items:stretch;flex-direction:column}.local-service article h2,.blog-article>section h2{font-size:26px}.local-facts{padding:22px}}

/* Individually authored service directory. */
.local-directory{margin-top:3rem;padding-top:2rem;border-top:1px solid #cdbbde}.local-service-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem;margin-top:1.5rem}.local-service-list article{padding:1.5rem;border:1px solid #c9b5de;border-radius:18px;background:#eee4f8}.local-service-list article:nth-child(3n){background:#edf6ce;border-color:#bbcc8e}.local-service-list h3{font-size:1.4rem;line-height:1.3;margin:.6rem 0}.local-service-list h3 a{color:#382148}.local-service-list p{color:#403547;line-height:1.65}.local-service-list .eyebrow{color:#563080}@media(max-width:720px){.local-service-list{grid-template-columns:1fr}.local-directory{margin-top:2rem}}
