:root {
  --ink:#17343a; --muted:#4d6468; --brand:#17645d; --brand-dark:#114e49;
  --wash:#f0f7f5; --blue:#edf6f8; --coral:#f4d4c7; --line:#d7e5e2;
  --white:#fff; --radius:14px; --shadow:0 14px 34px #17343a12;
  font-family:"Aptos","Segoe UI",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-padding-top:126px}
body{margin:0;background:#fff;color:var(--ink);font-size:16px;line-height:1.58}
a{color:inherit}
button,select,summary{font:inherit}
button,summary{cursor:pointer}
img{display:block;max-width:100%;height:auto}
[hidden]{display:none!important}
:focus-visible{outline:3px solid #167b82;outline-offset:4px}
h1,h2,h3,p{margin:0}
h1,h2,h3{line-height:1.12;letter-spacing:-.035em}
h1{font-size:clamp(2rem,4.15vw,3.65rem);font-weight:680}
h2{font-size:clamp(1.55rem,2.5vw,2.32rem);font-weight:680}
h3{font-size:1.12rem;font-weight:700;letter-spacing:-.016em}
.container{width:min(1190px,calc(100% - 70px));margin-inline:auto}
.pad{padding-block:60px}
.eyebrow{font-size:.72rem;line-height:1.38;font-weight:750;letter-spacing:.12em;text-transform:uppercase;color:var(--brand)}
.lead{max-width:650px;color:var(--muted);margin-top:9px}
.inline-link,.back{font-size:.9rem;font-weight:700;color:var(--brand-dark);text-underline-offset:4px}
.skip{position:fixed;z-index:30;top:-100px;left:12px;padding:10px;background:#fff}.skip:focus{top:10px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:44px;padding:10px 15px;border-radius:8px;background:var(--brand);border:1px solid var(--brand);color:white;text-decoration:none;font-size:.88rem;font-weight:700;line-height:1.25}
.button:hover{background:var(--brand-dark)}
.button.secondary{color:var(--brand-dark);background:white;border-color:#a8c4be}
.button.secondary:hover{background:var(--wash)}
.buttons{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
header{position:sticky;top:0;z-index:20;background:white;border-bottom:1px solid var(--line)}
.utility{background:#17343a;color:#f4f9f8;font-size:.78rem}
.utility .container{display:flex;align-items:center;justify-content:space-between;min-height:31px;gap:12px}
.utility a{font-weight:700;text-decoration:none;white-space:nowrap}
.top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:24px;min-height:76px;position:relative}
.brand img{width:164px}
.top nav{display:flex;align-items:center;justify-content:center;gap:3px}
.top nav>a,.nav-group>summary{font-size:.88rem;font-weight:700;white-space:nowrap;text-decoration:none;display:flex;align-items:center;gap:8px;min-height:42px;padding:8px 10px;border-radius:8px}
.top nav>a:hover,.nav-group>summary:hover,.nav-group[open]>summary{background:var(--wash);color:var(--brand-dark)}
.nav-group>summary{list-style:none}
.nav-group>summary::-webkit-details-marker{display:none}
.nav-group>summary span{width:6px;height:6px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:rotate(45deg);margin-top:-3px}
.nav-group[open]>summary span{transform:rotate(225deg);margin-top:2px}
.nav-panel{position:absolute;top:calc(100% - 4px);left:50%;transform:translateX(-50%);width:min(510px,100%);background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 16px 42px #17343a26;padding:12px;display:grid;grid-template-columns:1fr;gap:12px}
.nav-columns{display:flex;gap:9px}.nav-columns>div{flex:1}
.nav-columns .eyebrow{padding:7px 9px 4px}
.nav-columns a{display:block;text-decoration:none;font-size:.88rem;line-height:1.3;padding:8px 9px;border-radius:6px}
.nav-columns a:hover,.nav-columns a:focus-visible{background:var(--wash);color:var(--brand-dark)}
.menu,.mobile-rdv{display:none}
.hero{background:linear-gradient(112deg,#f1f7f4,#edf5f7)}
.hero-grid{display:grid;grid-template-columns:.96fr 1.04fr;align-items:center;gap:clamp(24px,5vw,74px);padding-block:50px}
.hero-copy h1{margin:12px 0 15px}
.hero-copy em{display:block;color:var(--brand);font-style:normal}
.hero-copy>p:not(.eyebrow){color:var(--muted);max-width:470px;margin-bottom:20px}
.dot{display:inline-block;width:17px;height:2px;background:#298077;vertical-align:middle;margin-right:5px}
.hero-media{margin:0;background:white;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.building{width:100%;aspect-ratio:1.58;object-fit:cover}
.hero-media figcaption{padding:9px 13px;color:var(--muted);font-size:.85rem}
.quick{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);padding-block:15px}
.quick a{display:grid;gap:3px;padding:6px 16px;text-decoration:none}
.quick a+a{border-left:1px solid var(--line)}
.quick a>span{font-size:.65rem;letter-spacing:.09em;color:var(--brand);font-weight:700}
.quick a:hover strong{text-decoration:underline}
.label-strip{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#f5f6e9;border:1px solid #e5e9cf;border-radius:var(--radius);padding:15px 18px;margin-top:19px}
.label-strip strong{display:block;font-size:1.03rem}
.split-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:20px}
.split-head h2,.story h2{margin-top:5px}
.wash{background:var(--wash)}.bluewash{background:var(--blue)}
.people-grid,.action-grid,.expertise-grid,.project-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.person{min-width:0}
.person-link{display:grid;grid-template-columns:60px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:101px;height:100%;padding:13px;border:1px solid var(--line);border-radius:11px;background:white;text-decoration:none}
.person-link:hover{border-color:#89b9ad;background:#fcfefe}
.person-link>span:last-child{color:var(--brand)}
.portrait{width:60px;height:60px;object-fit:cover;border-radius:50%;background:#dfeeed}
.placeholder{display:grid;place-items:center;font-weight:700}
.person h3{font-size:1.02rem;margin:3px 0;overflow-wrap:anywhere}
.person .eyebrow{font-size:.64rem;letter-spacing:.065em}
.person p:not(.eyebrow){font-size:.85rem;color:var(--muted)}
.care-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
.care-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-height:160px;padding:16px;background:white;border:1px solid var(--line);border-radius:11px;text-decoration:none}
.care-card:hover{border-color:#8eb9b0}.care-card:hover .care-more{text-decoration:underline}
.care-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:#e7f2e7;color:var(--brand);font-weight:700}
.care-card:nth-child(2) .care-icon{background:#f9e7df}.care-card:nth-child(3) .care-icon{background:#e4f2f4}
.care-card p,.expertise-grid p{color:var(--muted);font-size:.9rem}
.care-more{margin-top:auto;font-size:.85rem;font-weight:700;color:var(--brand)}
.expertise-heading{margin:27px 0 12px}.expertise-heading h2{font-size:1.55rem;margin-top:4px}
.expertise-grid>a{display:grid;grid-template-columns:24px 1fr auto;gap:8px;padding:13px;background:#fff;border:1px solid var(--line);border-radius:10px;text-decoration:none}
.expertise-grid h3{font-size:1rem;margin-bottom:5px}.expertise-grid>a:hover h3{text-decoration:underline}
.expertise-grid>a>span{font-size:.72rem;font-weight:750;color:var(--brand)}
.action{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.action-link{display:flex;flex-direction:column;flex:1;text-decoration:none}.action-link:hover h3{text-decoration:underline;text-underline-offset:3px}
.action-image,.action-illustration{width:100%;height:162px;background:#edf5f0}
.action-image{object-fit:contain}
.action-illustration{display:grid;align-items:end;padding:16px;background:radial-gradient(circle at 90% 105%,transparent 22%,#97c9c3 23% 26%,transparent 27% 34%,#efc4b3 35% 38%,transparent 39% 46%,#bed59b 47% 50%,transparent 51%),#edf5f0}
.action-illustration span{font-size:.84rem;font-weight:700;color:var(--brand-dark)}
.action-body{padding:14px;display:flex;flex-direction:column;align-items:start;flex:1}
.action-body h3{margin:5px 0}.action-body h3 a{text-decoration:none}.action-body h3 a:hover{text-decoration:underline}
.action-body>p:not(.eyebrow){font-size:.88rem;color:var(--muted);margin-bottom:6px}
.action-body .action-status{font-size:.72rem;font-weight:700;margin:4px 0 0}
.action-body .inline-link{margin-top:auto;padding-top:6px}.action-date{font-weight:650}.story-photo{width:100%;aspect-ratio:1.55;object-fit:cover;border-radius:14px}.action-link:focus-visible,.person-link:focus-visible{outline-offset:-3px}
.story{display:grid;grid-template-columns:1.5fr 1fr;gap:34px;align-items:center}
.story p:not(.eyebrow){margin:10px 0 16px;max-width:650px}
.story-mark{background:white;border:1px solid var(--line);border-radius:13px;padding:25px}
.internal{background:linear-gradient(#eef7f5 0 270px,#fff 270px)}
.internal .pad{padding-block:34px 60px}
.section-intro{padding:22px 25px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:22px}
.section-intro h1{font-size:clamp(1.85rem,3.45vw,3.1rem);margin:6px 0}
.section-intro>p:last-child:not(.eyebrow){max-width:760px;color:var(--muted);margin-top:7px}
.back{display:inline-block;margin-bottom:10px}
.related-title{font-size:1.55rem;margin:18px 0 11px}
.feature,.reading{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:19px}
.feature h2,.reading h2{font-size:1.52rem;margin-bottom:8px}
.feature p,.reading p{margin:6px 0 10px}
.feature .buttons{margin-top:11px}
.care-feature{margin-top:18px;background:#f4f8f2}
.profile-page{max-width:1080px}
.profile-top{display:flex;align-items:center;gap:18px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0}
.profile-top .portrait{width:110px;height:110px;flex:none}
.profile-top h1{font-size:clamp(1.9rem,3.6vw,3rem);margin:4px 0}
.section-nav{display:flex;gap:9px 21px;flex-wrap:wrap;background:#f4f9f7;border:1px solid var(--line);border-top:0;border-radius:0 0 11px 11px;padding:10px 16px}
.section-nav a{color:var(--brand);font-size:.87rem;font-weight:700;text-underline-offset:3px}
.profile-layout,.article-layout,.access-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(235px,.48fr);gap:24px;align-items:start;margin-top:19px}
.profile-content{background:#fff;border:1px solid var(--line);border-radius:12px;padding:0 22px}
.profile-content section,.profile-content details{padding:16px 0;border-bottom:1px solid var(--line)}
.profile-content>:last-child{border-bottom:0}
.profile-content h2,.profile-sidebar h2{font-size:1.48rem;margin:4px 0 8px}
.profile-content h3{margin:12px 0 6px}.profile-content p,.profile-content li{margin-bottom:7px}
.profile-content p.eyebrow{margin-bottom:3px}.profile-content ul,.profile-content ol{padding-left:20px}
.profile-content summary{font-weight:700;color:var(--brand-dark)}.profile-expand{margin-top:8px}.profile-content .profile-expand{border:0;padding:2px 0}.profile-content .inline-link{display:block;margin-top:8px}
.profile-sidebar{position:sticky;top:122px;padding:16px;background:#f0f7f4;border:1px solid var(--line);border-radius:12px}
.profile-sidebar hr{border:0;border-top:1px solid var(--line);margin:11px 0}
.profile-sidebar p{margin:4px 0}.profile-sidebar .practical{font-size:.84rem}
.platform-link{display:inline-flex;align-items:center;gap:14px;min-height:42px;padding:7px 11px;border:1px solid #add3e2;border-radius:8px;background:#fff;color:#146081;text-decoration:none}
.platform-link img{width:91px;height:auto}.platform-link:hover{background:#eef8fd;border-color:#7cb7cb}
.booking-logo{width:63px;max-height:24px;object-fit:contain;background:white;border-radius:3px}
.booking-badge{background:white;color:var(--brand-dark);border-radius:4px;padding:3px 5px;font-size:.66rem;white-space:nowrap}
.profession-filter{display:flex;align-items:end;gap:12px;margin-bottom:14px;padding:11px;background:#f2f7f5;border:1px solid var(--line);border-radius:9px}
.profession-filter label{display:grid;gap:3px;color:var(--brand-dark);font-size:.84rem;font-weight:700}
.profession-filter select,.profession-filter input{width:min(100%,220px);min-height:39px;padding:6px 9px;background:white;color:var(--ink);border:1px solid #95b5ac;border-radius:5px}
.profession-filter label{min-width:0}.profession-filter p{font-size:.84rem;color:var(--muted)}
.directory-intro{display:flex;justify-content:space-between;align-items:start;gap:12px;margin:8px 0 13px;color:var(--muted)}
.booking-list{display:grid;gap:8px}.booking-list article{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px 14px}.booking-list article p{color:var(--muted);font-size:.88rem}
.period{padding:12px 0;border-bottom:1px solid var(--line)}.period>summary{font-weight:700;font-size:1.04rem;color:var(--brand-dark)}.period .action-grid{margin-top:12px}
.archive-programmes,.project-context{margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}.archive-programmes h2,.project-context h2{margin-top:5px}.archive-programmes .action-grid,.project-cards{margin-top:12px}
.project-context>p:not(.eyebrow){max-width:740px;margin-top:9px}.project-cards article{border:1px solid var(--line);background:#f4f8f3;border-radius:10px;padding:14px}.project-cards article p{margin:7px 0}
.project-list section{display:grid;grid-template-columns:37px 1fr;gap:8px;border-bottom:1px solid var(--line);padding:16px 0}.project-list section>span{color:var(--brand);font-weight:700}.project-list h2{font-size:1.5rem}.project-list p{max-width:680px;margin:6px 0}
.article-image,.access-photo{width:100%;border-radius:12px}.access-photo{aspect-ratio:1.4;object-fit:cover}.event-partner{margin-top:12px}
footer{background:#17343a;color:#fff;padding:30px 0 12px}.footgrid{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:15px}.footgrid h2{font-size:.95rem;margin-bottom:7px}.footgrid a{display:block;text-decoration:none;margin-bottom:4px}.footgrid a:hover{text-decoration:underline}.footbrand{font-size:1.38rem;font-weight:700}.footgrid p,.credit{color:#dceae8}.credit{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #678284;margin-top:16px;padding-top:9px;font-size:.8rem}
@media(max-width:1050px){.container{width:calc(100% - 40px)}.top{gap:12px}.brand img{width:137px}.top nav>a,.nav-group>summary{padding-inline:7px}.desktop-rdv .button{padding-inline:11px}.care-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.top{min-height:62px;grid-template-columns:1fr auto}.desktop-rdv{display:none}.mobile-rdv{display:block;margin-top:8px}.js .menu{display:block;padding:6px 11px;color:var(--ink);background:#fff;border:1px solid #a7c2ba;border-radius:7px}.top nav{grid-column:1/-1;display:block;padding-bottom:12px}.js .top nav:not(.open){display:none}.top nav.open{max-height:calc(100dvh - 100px);overflow:auto}.top nav>a,.nav-group>summary{justify-content:space-between;border-bottom:1px solid var(--line);border-radius:0;padding-inline:5px}.nav-panel{position:static;transform:none;width:100%;box-shadow:none;margin:5px 0}.expertise-grid,.people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-grid{gap:25px}}
@media(max-width:680px){.container{width:calc(100% - 30px)}.pad,.internal .pad{padding-block:32px}.hero-grid,.story,.profile-layout,.article-layout,.access-grid{grid-template-columns:1fr}.hero-grid{padding-block:25px;gap:18px}.hero-copy>p:not(.eyebrow){margin-bottom:13px}.hero-caption{padding:9px 10px}.quick{grid-template-columns:1fr;padding:5px 0}.quick a{padding:8px 6px}.quick a+a{border-left:0;border-top:1px solid var(--line)}.label-strip,.split-head,.directory-intro{align-items:start;flex-direction:column;gap:9px}.split-head{margin-bottom:13px}.action-grid,.expertise-grid,.people-grid,.project-cards{grid-template-columns:1fr}.story-mark{display:none}.profile-top{padding:13px}.profile-top .portrait{width:70px;height:70px}.profile-sidebar{position:static;grid-row:1}.profile-content{padding:0 13px}.section-intro{padding:15px 13px}.nav-panel{grid-template-columns:1fr;gap:5px}.nav-overview{padding:8px}.nav-columns a{padding:6px}.nav-columns .eyebrow{padding-left:6px}.booking-list article{align-items:start;flex-wrap:wrap}.footgrid{grid-template-columns:1fr 1fr}.footgrid>div:first-child{grid-column:1/-1}.credit{flex-direction:column}}
@media(max-width:375px){.care-grid{grid-template-columns:1fr}.profession-filter{align-items:start;flex-direction:column;gap:4px}}

.top nav a[aria-current=page],.nav-group:has([aria-current=page])>summary{color:var(--brand-dark);background:var(--wash)}
@media(max-width:680px){.profession-filter{align-items:stretch;flex-direction:column;gap:7px}.profession-filter input,.profession-filter select{width:100%}.nav-columns{flex-wrap:wrap}.nav-columns>div{min-width:120px}.hero-media figcaption{padding:6px 10px}.story-photo{max-height:280px}.top .brand img{height:auto}}
