.communes-directory { display:block; background:#f8f5ef; color:#142b3e; font-family:Inter,Arial,sans-serif; line-height:1.65; }
.communes-directory * { box-sizing:border-box; }
.communes-directory .directory-shell { width:100%; max-width:1280px; margin:0 auto; padding:0 clamp(20px,4vw,64px); }
.communes-directory h1,.communes-directory h2,.communes-directory h3 { font-family:Playfair,"Playfair Display",Georgia,serif; font-weight:500; letter-spacing:-.025em; line-height:1.1; margin:0; text-wrap:balance; }
.communes-directory a { text-underline-offset:4px; }
.communes-directory a:focus-visible { outline:3px solid #94642f; outline-offset:5px; }
.communes-directory .directory-hero { position:relative; isolation:isolate; overflow:hidden; background:#142b3e; min-height:580px; color:#fff; }
.communes-directory .directory-hero::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(6,16,29,.78) 0%,rgba(6,16,29,.72) 48%,rgba(6,16,29,.16) 100%); }
.communes-directory .directory-hero-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 50%; z-index:-2; }
.communes-directory .directory-hero-copy { padding-top:184px; padding-bottom:64px; }
.communes-directory .directory-eyebrow { margin:0 0 20px; font-size:12px; line-height:1.5; font-weight:650; letter-spacing:.12em; text-transform:uppercase; color:#84552f; }
.communes-directory .directory-hero .directory-eyebrow { color:#f5cc9f; }
.communes-directory h1 { max-width:760px; font-size:clamp(42px,5vw,66px); }
.communes-directory h1 em { color:#f5cc9f; font-style:normal; }
.communes-directory .directory-lead { max-width:550px; margin:24px 0 28px; font-size:18px; line-height:1.7; }
.communes-directory .directory-primary-link { display:inline-flex; align-items:center; justify-content:space-between; gap:32px; padding:14px 22px; color:#142b3e; background:#f0c69d; font-size:14px; font-weight:600; text-decoration:none; }
.communes-directory .directory-primary-link:hover { background:#f7d8b9; }
.communes-directory .directory-hero a:focus-visible { outline-color:#fff; }
.communes-directory .directory-hero-credit { background:#eeeae2; color:#46596b; font-size:11px; line-height:1.65; padding:14px 0; }
.communes-directory .directory-hero-credit .directory-shell { display:flex; flex-wrap:wrap; gap:4px 24px; justify-content:space-between; }
.communes-directory .directory-list-section { padding:76px 0; scroll-margin-top:calc(var(--knh-header-height,120px) + 24px); }
.communes-directory .directory-section-heading { display:grid; grid-template-columns:1fr 1fr; gap:48px; margin-bottom:42px; align-items:start; }
.communes-directory .directory-section-heading h2,.communes-directory .directory-periphery h2 { font-size:clamp(30px,3vw,42px); }
.communes-directory .directory-section-heading p:last-child { max-width:490px; margin:0; color:#52616e; font-size:15px; }
.communes-directory .directory-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px 24px; align-items:stretch; }
.communes-directory .directory-card { min-width:0; display:flex; flex-direction:column; background:#fffdf9; border:1px solid #d9d6cf; }
.communes-directory .directory-card figure { margin:0; }
.communes-directory .directory-card img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; background:#ece8df; }
.communes-directory .directory-card figcaption { padding:12px 18px; background:#eeeae2; font-size:10px; line-height:1.7; color:#46596b; }
.communes-directory .directory-card figcaption span { display:block; }
.communes-directory .directory-card figcaption a { color:inherit; }
.communes-directory .directory-card-content { padding:24px 20px 18px; flex:1; display:flex; flex-direction:column; }
.communes-directory .directory-card h3 { font-size:28px; margin:0 0 22px; overflow-wrap:anywhere; }
.communes-directory .directory-card-links { margin-top:auto; }
.communes-directory .directory-card-links a { display:flex; justify-content:space-between; gap:15px; padding:13px 0; min-height:48px; font-size:13px; color:#142b3e; text-decoration:none; border-top:1px solid #d9d6cf; }
.communes-directory .directory-card-links .directory-hub-link { font-weight:650; }
.communes-directory .directory-card-links a:hover { color:#754923; text-decoration:underline; }
.communes-directory .directory-card-links span { flex:none; }
.communes-directory .directory-photo-note { margin:28px 0 0; max-width:850px; font-size:12px; line-height:1.7; color:#52616e; }
.communes-directory .directory-periphery { padding:64px 0; background:#142b3e; color:#fff; }
.communes-directory .directory-periphery .directory-shell { display:flex; align-items:center; justify-content:space-between; gap:40px; }
.communes-directory .directory-periphery .directory-eyebrow { color:#f5cc9f; }
.communes-directory .directory-periphery p:last-child { max-width:580px; margin:20px 0 0; color:#d9e0e5; font-size:15px; }
.communes-directory .directory-periphery a { display:inline-flex; align-items:center; justify-content:space-between; gap:24px; min-height:48px; padding:14px 18px; color:#f5cc9f; border:1px solid #9eacb9; flex:none; font-size:14px; text-decoration:none; }
.communes-directory .directory-periphery a:hover { background:#213e54; }
.communes-directory .directory-periphery a:focus-visible { outline-color:#f5cc9f; }
@media(max-width:1099px) { .communes-directory .directory-hero-copy { padding-top:148px; } .communes-directory .directory-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) {
 .communes-directory .directory-hero { min-height:0; }
 .communes-directory .directory-hero::after { background:linear-gradient(180deg,rgba(6,16,29,.16) 0,rgba(6,16,29,.74) 150px,rgba(6,16,29,.78) 100%); }
 .communes-directory .directory-hero-copy { padding-top:190px; padding-bottom:52px; }
 .communes-directory .directory-lead { font-size:16px; }
 .communes-directory .directory-hero-credit .directory-shell { display:block; }
 .communes-directory .directory-hero-credit span { display:block; }
 .communes-directory .directory-list-section { padding:52px 0; }
 .communes-directory .directory-section-heading { display:block; margin-bottom:30px; }
 .communes-directory .directory-section-heading p:last-child { margin-top:20px; }
 .communes-directory .directory-grid { grid-template-columns:minmax(0,1fr); gap:24px; }
 .communes-directory .directory-periphery { padding:48px 0; }
 .communes-directory .directory-periphery .directory-shell { display:block; }
 .communes-directory .directory-periphery a { margin-top:28px; }
}
