/* Homepage only: compact editorial rhythm; module settings remain authoritative. */
.page-home .section:not(#hero){padding-block:40px}
.page-home .section-header{margin-bottom:24px}
.page-home .section-header.with-line{padding-top:18px}
.page-home .section-header.with-line::before{width:42px;height:2px}
.page-home .section-tag{font-size:12px;padding:4px 12px;margin-bottom:8px}
.page-home .section-title{font-size:clamp(24px,2.4vw,32px);line-height:1.5}
.page-home .section-subtitle{font-size:15px;line-height:1.85;margin:8px auto 0;max-width:760px}
.page-home .section-actions{margin-top:22px}
.page-home .section-actions .btn{padding:10px 20px;font-size:14px}
.page-home #news{padding-block:36px}
.page-home #services .services-grid{gap:16px}
.page-home #services .service-card{padding:18px 16px;display:flex;flex-direction:column;align-items:center;min-width:0}
.page-home #services .service-icon{width:52px;height:52px;font-size:22px;margin-bottom:10px;flex-shrink:0}
.page-home #services .service-title{font-size:17px;line-height:1.7;margin-bottom:6px}
.page-home #services .service-description{font-size:13px;line-height:1.8;margin-bottom:10px}
.page-home #services .service-link{margin-top:auto}
.page-home #stats{padding-block:32px}
.page-home #board .board-grid{gap:16px}
.page-home #board .board-image{height:190px;margin:12px 12px 0}
.page-home #board .board-body{padding:14px 12px 16px}
.page-home #board .board-name{font-size:17px;line-height:1.7}
.page-home #board .board-role{margin-bottom:6px;padding:3px 9px}
.page-home #board .board-desc{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.page-home #board .board-mail{font-size:11px;margin-top:6px}
.page-home #calendar .event-calendar{padding:16px}
.page-home #calendar .calendar-day{min-height:56px;padding:5px}
.page-home #calendar .calendar-header{margin-bottom:12px}
.page-home #calendar .calendar-legend{margin-top:12px;gap:12px}
.page-home #map .map-wrapper{grid-template-columns:300px minmax(0,1fr);align-items:stretch}
.page-home #map .map-stats{max-height:460px;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;padding:12px;gap:6px}
.page-home #map .map-stat{flex-shrink:0;padding:8px 10px;font-size:13px}
.page-home #map .map-canvas{height:460px;min-height:460px}
.page-home #videos .video-thumb{aspect-ratio:16/9;overflow:hidden}
.page-home #videos .video-thumb img{height:100%!important;width:100%;object-fit:cover}
.page-home #videos .video-body{padding:14px;display:flex;flex-direction:column;gap:6px}
.page-home #videos .video-title{font-size:15px;line-height:1.8;min-height:5.4em;max-height:5.4em;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.page-home #gallery .gm-overlay h3{font-size:16px;line-height:1.8;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.page-home #gallery .gm-overlay p{font-size:12px}
.page-home #newsletter{padding-block:32px}
.page-home .site-footer{padding-top:40px}
.page-home .footer-grid{margin-bottom:32px}
.page-home :is(.video-card,.gm-open,.board-mail):focus-visible{outline:3px solid #c6a03d;outline-offset:3px}
@media(min-width:1024px){
 .page-home #board .board-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(min-width:640px) and (max-width:1023px){
 .page-home #board .board-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;scrollbar-width:thin}
 .page-home #board .board-card{flex:0 0 calc((100% - 32px)/3);scroll-snap-align:start;min-width:0}
}
@media(max-width:767px){
 .page-home #map .map-wrapper{grid-template-columns:minmax(0,1fr)}
 .page-home #map .map-canvas{height:320px;min-height:320px;order:-1}
 .page-home #map .map-stats{max-height:180px}
}
@media(max-width:639px){
 .page-home .section:not(#hero),.page-home #news{padding-block:28px}
 .page-home .section-header{margin-bottom:18px}
 .page-home .section-header.with-line{padding-top:14px}
 .page-home .section-title{font-size:24px}
 .page-home .section-subtitle{font-size:13px;line-height:1.8}
 .page-home .section-actions{margin-top:18px}
 .page-home #services .services-grid{gap:10px}
 .page-home #services .service-card{padding:14px 12px}
 .page-home #services .service-title{font-size:15px}
 .page-home #services .service-description{font-size:12px}
 .page-home #board .board-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding-bottom:12px;scrollbar-width:thin}
 .page-home #board .board-card{flex:0 0 88%;min-width:0;scroll-snap-align:start;grid-template-columns:88px minmax(0,1fr);gap:12px;padding:12px}
 .page-home #board .board-image{height:112px;margin:0}
 .page-home #board .board-body{padding:0}
 .page-home #board .board-name{font-size:16px}
 .page-home #calendar .event-calendar{padding:10px}
 .page-home #calendar .calendar-day{min-height:48px;padding:3px}
 .page-home #calendar .calendar-title{font-size:17px}
 .page-home #calendar .calendar-legend{font-size:11px;gap:8px}
 .page-home #videos .video-title{font-size:14px}
 .page-home .site-footer{padding-top:32px}
}
@media(prefers-reduced-motion:reduce){.page-home .board-grid{scroll-behavior:auto}}
/* Keep the spam trap out of view without creating a huge RTL scroll area. */
.page-home .newsletter-form{position:relative;min-width:0}
.page-home .newsletter-form .newsletter-honeypot{left:0!important;top:0!important;clip:rect(0,0,0,0);clip-path:inset(50%);overflow:hidden}
/* Header search must shrink with the viewport; off-canvas menus stay clipped. */
body.page-home{overflow-x:clip}
.page-home .header-search,.page-home .header-search form,.page-home .header-search input{min-width:0}
.page-home .header-search input{width:100%}
@media(max-width:639px){
 .page-home .header-main-inner{gap:12px}
 .page-home .header-search{flex:1 1 0}
 .page-home .header-search form{padding-inline:8px}
 .page-home .header-search input{padding-inline:4px;font-size:12px}
}
@media(min-width:1024px){
 .page-home .has-mega:not(:hover):not(:focus-within)>.mega-menu{display:none}
}
.page-home #board,.page-home #gallery{background:#fff!important}
.page-home #calendar .calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
.page-home #calendar .calendar-day,.page-home #calendar .calendar-day-header{min-width:0}
.page-home #calendar .calendar-day-header{overflow-wrap:anywhere}
.page-home #calendar .calendar-header{flex-wrap:wrap;gap:10px}
.page-home #calendar .calendar-nav{flex-shrink:0}
@media(max-width:639px){.page-home #calendar .calendar-day-header{font-size:10px}}
