:root{font-family:system-ui,sans-serif;color:#153850;background:#f4f7fa;font-size:16px}*{box-sizing:border-box}body{margin:0}header{display:flex;align-items:center;gap:20px;justify-content:space-between;background:white;border-bottom:1px solid #dbe4ec;padding:18px max(20px,calc((100vw - 1100px)/2))}header img{max-width:42vw;height:auto}a{color:#086b88;text-underline-offset:3px;overflow-wrap:anywhere}main{max-width:1100px;margin:38px auto;padding:0 22px 50px}h1{font-size:clamp(1.7rem,3vw,2.6rem);margin-bottom:12px}p{line-height:1.65}select,input,textarea{font:inherit;padding:11px;border:1px solid #b8cbd7;border-radius:8px;max-width:100%;background:white;color:#153850}label{display:grid;gap:7px;min-width:0}select{width:100%}.filters{display:grid;grid-template-columns:1fr 2fr;gap:18px;margin:24px 0}.stats{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.stat{padding:14px 20px;background:#e5f1f5;border-radius:12px}details{background:white;border:1px solid #d8e4eb;border-radius:12px;margin:12px 0}summary{cursor:pointer;padding:20px;font-weight:650}details>div{padding:0 20px 20px;white-space:pre-line;line-height:1.7}details a{display:block;margin:10px 0}table{border-collapse:collapse;width:100%;font-size:.95rem}th,td{padding:12px 8px;text-align:left;border-bottom:1px solid #e0e7ed}tr.past{color:#657786}.tableWrap{overflow:auto;white-space:normal}#provinceWrap{max-width:300px;margin:20px 0}.schools{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:18px}.school{background:white;border:1px solid #d8e4eb;border-radius:14px;padding:22px}.badge{background:#d8f4e7;padding:5px 9px;border-radius:9px}.note{font-size:.92rem;color:#536a78}button{padding:12px 18px;border:0;border-radius:8px;background:#145873;color:white;font:inherit;cursor:pointer}.help-admin{max-width:1100px;margin:auto}.help-admin .fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.help-admin textarea{width:100%;min-height:130px}.help-admin .wide{grid-column:1/-1}.help-admin .row{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:10px 0}.help-admin .row label{flex:1;min-width:180px}.help-admin small{display:block} @media(max-width:600px){header{gap:10px;padding:14px}header>a:not(:first-child){font-size:.85rem}header select{width:95px}.filters,.help-admin .fields{grid-template-columns:1fr}main{margin-top:24px;padding:0 16px 35px}summary{padding:16px}details>div{padding:0 16px 16px}th,td{padding:10px 6px}.stat{flex:1;padding:12px;min-width:125px}}
header select{width:auto;max-width:220px;flex-shrink:0}header>a:nth-child(2){margin-left:auto} @media(max-width:600px){header select{max-width:95px}}
.account-operation{max-width:620px;width:calc(100% - 32px);max-height:90vh;overflow:auto;border:1px solid #cbdce6;border-radius:16px;padding:24px;color:#153850}.account-operation::backdrop{background:#12364770}.account-operation label{margin:15px 0}.account-operation p{line-height:1.65}

.school-cover{display:block;width:100%;max-height:220px;object-fit:cover;border-radius:12px}.school-logo{display:block;max-width:140px;max-height:100px;object-fit:contain;margin:12px 0}

/* School profile cards: cover, identity and readable offers. */
.schools{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start}.school{padding:0;overflow:hidden;box-shadow:0 8px 24px #1538500d;min-width:0}.school-wall{height:190px;background:linear-gradient(135deg,#12394f,#087780);border-bottom:1px solid #d8e4eb}.school-wall .school-cover{width:100%;height:100%;max-height:none;border-radius:0;object-fit:cover}.school-avatar{position:relative;margin:-48px 0 0 24px;width:96px;height:96px;background:white;border:5px solid white;border-radius:20px;box-shadow:0 3px 12px #12394f26;display:grid;place-items:center;color:#145873;font-size:1.8rem;font-weight:700;overflow:hidden}.school-avatar .school-logo{margin:0;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain}.school-information{padding:16px 24px 24px;overflow-wrap:anywhere}.school-information h3{font-size:1.45rem;line-height:1.25;margin:0 0 12px}.school-information p{margin:12px 0}.school-information h4{margin:24px 0 12px;font-size:1.1rem}.school-offers{padding:0;list-style:none;display:grid;gap:12px}.school-offers li,.school-information .promotion{background:#edf6f8;border:1px solid #d3e8ec;border-radius:12px;padding:16px;line-height:1.7}.school-information>a[href^="tel:"],.school-information>a[href^="mailto:"]{display:inline-block;padding:10px 14px;margin:6px 0;background:#e8f1f5;border-radius:8px;font-weight:600;text-decoration:none}.school-information .note{font-size:.82rem;margin-top:20px}@media(max-width:760px){.schools{grid-template-columns:1fr;gap:22px}.school-wall{height:180px}.school-information{padding:16px 20px 22px}.school-avatar{margin-left:20px}}

body.practices-directory main>.filters:not(#directoryFilters),body.practices-directory #guide{display:none!important}body:not(.practices-directory) #schools,body:not(.practices-directory) #provinceWrap,body:not(.practices-directory) #directoryFilters{display:none!important}.practices-directory #directoryTitle{margin-top:28px}

/* Directory pagination and collaborator carousel, using the same profile cards. */
.practices-directory .schools{display:block}.school-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.school-carousel{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:16px}.school-carousel>.school{flex:0 0 calc(50% - 12px);scroll-snap-align:start}.school-carousel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.school-featured,.school-other{margin-bottom:28px}.school-information{height:400px;overflow:auto}.school-presentation{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.school-information h3{min-height:3.6rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media(max-width:760px){.school-grid{grid-template-columns:1fr}.school-carousel>.school{flex-basis:90%}.school-information{height:400px}}


/* Public practices only: cards first, filters in a reserved fixed footer. */
body.ps-directory-view{height:100dvh;display:flex;flex-direction:column;overflow:hidden}body.ps-directory-view>header{flex:0 0 auto}body.ps-directory-view>main{flex:1;min-height:0;width:100%;max-width:1100px;margin:0 auto var(--ps-filter-height,120px);padding:12px 22px 24px;overflow-y:auto;scroll-padding-bottom:24px}body.ps-directory-view #title,body.ps-directory-view #intro,body.ps-directory-view #directoryTitle{display:none}body.ps-directory-view .ps-practices{margin-top:0}body.ps-directory-view .ps-filter-dock{position:fixed;inset:auto 0 0;z-index:20;margin:0;padding:12px max(20px,calc((100vw - 1056px)/2)) calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #cadce6;box-shadow:0 -4px 18px #1538500d;display:block;max-height:45dvh;overflow-y:auto}body.ps-directory-view #psPrimaryFilters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}body.ps-directory-view #provinceWrap{margin:0;max-width:none}body.ps-directory-view .ps-filter-dock label{font-size:13px;gap:5px}body.ps-directory-view .ps-filter-dock select,body.ps-directory-view .ps-filter-dock input{width:100%;min-width:0;font-size:14px;min-height:40px;padding:8px}body.ps-directory-view #psExtraFilters{border:0;background:none;margin:7px 0 0;border-radius:0}body.ps-directory-view #psExtraFilters>summary{font-size:13px;padding:4px 0;text-align:right;color:#086b88}body.ps-directory-view #psExtraFilters>div{padding:10px 0 0;white-space:normal}.ps-extra-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}@media(max-width:600px){body.ps-directory-view>main{padding:8px 14px 20px}body.ps-directory-view .ps-filter-dock{padding:9px 14px calc(9px + env(safe-area-inset-bottom))}body.ps-directory-view #psPrimaryFilters{gap:8px}body.ps-directory-view .ps-filter-dock label{font-size:12px}body.ps-directory-view .ps-filter-dock select{font-size:13px}.ps-extra-grid{grid-template-columns:1fr}}

/* More room for the public carousel; keep other pages and the student desktop intact. */
body.ps-directory-view>header{padding:7px 16px;gap:12px}body.ps-directory-view>header img{width:170px;max-width:38vw}body.ps-directory-view>main{max-width:1600px;padding:6px 12px 18px}body.ps-directory-view .ps-heading h3{margin:6px 0}body.ps-directory-view .ps-carousel{padding:4px 0 10px}body.ps-directory-view .ps-filter-dock{padding:7px max(12px,calc((100vw - 1576px)/2)) calc(7px + env(safe-area-inset-bottom))}body.ps-directory-view #psExtraFilters{margin-top:2px}@media(max-width:600px){body.ps-directory-view>header{padding:6px 12px;gap:8px}body.ps-directory-view>header img{width:140px}body.ps-directory-view>main{padding:4px 10px 14px}body.ps-directory-view .ps-filter-dock{padding:6px 10px calc(6px + env(safe-area-inset-bottom))}}

/* Compact public cards; learner dashboard and school forms remain unchanged. */
body.ps-directory-view>header{display:flex;flex-wrap:nowrap;min-width:0}#psPublicCarouselNav{flex:1;min-width:0;justify-content:center;gap:12px}#psPublicCarouselNav h3{font-size:17px;line-height:1.15;margin:0}#psPublicCarouselNav>div{display:flex;gap:5px}#psPublicCarouselNav button{padding:5px 10px;border:0;border-radius:7px;background:#145873;color:#fff;font-size:18px;cursor:pointer}body.ps-directory-view>main{overflow-x:hidden}body.ps-directory-view .ps-carousel{gap:16px;scrollbar-width:none;overscroll-behavior-x:contain}body.ps-directory-view .ps-carousel>.ps-card{flex-basis:calc((100% - 32px)/3)}body.ps-directory-view .ps-card{overflow:hidden;min-width:0}body.ps-directory-view .ps-cover{height:185px}body.ps-directory-view .ps-body{padding:12px 14px;min-height:0!important}body.ps-directory-view .ps-school-name{display:flex;align-items:center;gap:10px}body.ps-directory-view .ps-card-logo{width:44px;height:44px;flex-shrink:0;margin:0}body.ps-directory-view .ps-body h3{font-size:18px;margin:0;line-height:1.2}body.ps-directory-view .ps-body p{margin:8px 0;line-height:1.3;font-size:13px}body.ps-directory-view .ps-badge{font-size:11px;padding:3px 7px;margin-top:7px}body.ps-directory-view .ps-service-tags{display:flex;flex-wrap:wrap;gap:5px;margin:9px 0}body.ps-directory-view .ps-service-tags span{background:#edf2f6;border-radius:5px;padding:3px 6px;font-size:12px}body.ps-directory-view .ps-price-list{margin:10px 0;gap:8px}body.ps-directory-view .ps-price-list .ps-dated-offer{display:block;background:#e1f2ec;color:#123f35;border:1px solid #b4d8ca;border-radius:9px;padding:9px;font-size:13px;line-height:1.5}body.ps-directory-view .ps-dated-offer strong{display:block;font-size:17px}body.ps-directory-view .ps-open{margin-top:10px;font-size:13px}body.ps-directory-view .ps-grid{gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}body.ps-directory-view .ps-featured{margin-bottom:16px}body.ps-directory-view .ps-other h3{margin:10px 0}body.ps-directory-view .ps-public-profile .ps-cover{height:260px}
@media(max-width:1050px){body.ps-directory-view .ps-carousel>.ps-card{flex-basis:calc((100% - 16px)/2)}body.ps-directory-view .ps-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body.ps-directory-view>header img{width:115px}#psPublicCarouselNav h3{font-size:14px}}
@media(max-width:600px){body.ps-directory-view .ps-carousel>.ps-card{flex-basis:100%}body.ps-directory-view .ps-grid{grid-template-columns:1fr}body.ps-directory-view>header{gap:5px;padding:6px}body.ps-directory-view>header img{width:65px}body.ps-directory-view>header #back{font-size:11px;white-space:nowrap}body.ps-directory-view>header #language{max-width:73px;font-size:11px;padding:4px}#psPublicCarouselNav{gap:4px}#psPublicCarouselNav h3{font-size:11px}#psPublicCarouselNav button{padding:4px 6px;font-size:15px}body.ps-directory-view .ps-cover{height:180px}}

/* Natural card heights prevent empty panels; top edges stay aligned. */
body.ps-directory-view .ps-carousel{align-items:flex-start}body.ps-directory-view .ps-grid{align-items:start}body.ps-directory-view .ps-school-name{min-height:48px}body.ps-directory-view .ps-card-logo{width:52px;height:52px}body.ps-directory-view .ps-cover{height:210px}

/* Equal complete cards fill the reserved carousel area; natural content sets the minimum. */
body.ps-directory-view .ps-carousel>.ps-card{display:flex;flex-direction:column}body.ps-directory-view .ps-card .ps-cover{flex:0 0 210px}body.ps-directory-view .ps-card .ps-body{display:flex;flex-direction:column;flex:1}body.ps-directory-view .ps-school-name{min-height:54px}body.ps-directory-view .ps-card .ps-badge{align-self:flex-start;min-height:20px}body.ps-directory-view .ps-card .ps-port{min-height:34px}body.ps-directory-view .ps-card .ps-service-tags{min-height:52px;align-content:flex-start}body.ps-directory-view .ps-card .ps-open{margin-top:auto;padding-top:12px}body.ps-directory-view .ps-dock-links{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;font-size:12px}body.ps-directory-view .ps-dock-links #psExtraFilters{margin:0;background:none;flex:1;text-align:right}body.ps-directory-view .ps-dock-links #officialDirectory{white-space:nowrap;padding:4px 0}body.ps-directory-view .ps-dock-links #psExtraFilters>div{text-align:left}body.ps-directory-view #schools+p:empty{display:none}
