/* Duchesne City Civic Experience 2.5.0
   Non-destructive visual layer: existing blocks, menu items and plugin data are preserved. */
.duchesne-city-theme{--dc25-radius:16px;--dc25-edge:#dbe5df;--dc25-shadow:0 12px 34px rgba(12,40,43,.09);--dc25-focus:#f3bd48}
.duchesne-city-theme :is(a,button,input,select,textarea):focus-visible{outline:3px solid var(--dc25-focus)!important;outline-offset:3px}
.duchesne-city-theme :is(.dc-hero,.dc-community,.dc-news,.dc-info-wrap) :is(h1,h2,h3){text-wrap:balance}
/* 1. Refined header and menu */
.duchesne-city-theme .dc-site-header{isolation:isolate}
.duchesne-city-theme .dc-header-top{gap:clamp(12px,2vw,30px)!important}
.duchesne-city-theme .dc-nav-bar{box-shadow:0 5px 15px rgba(12,34,37,.13)}
.duchesne-city-theme .dc-header-search .wp-block-search__inside-wrapper{border-radius:12px;transition:border-color .18s ease,box-shadow .18s ease}
.duchesne-city-theme .dc-header-search .wp-block-search__inside-wrapper:focus-within{border-color:#20725f;box-shadow:0 0 0 3px rgba(32,114,95,.16)}
.duchesne-city-theme .dc-menu-toggle{min-width:48px;min-height:48px}
.duchesne-city-theme .dc-legacy-primary-nav .dc-menu a{transition:background-color .18s ease,color .18s ease}
/* 2. Hero typography / contrast / calls to action */
.duchesne-city-theme .dc-hero .wp-block-cover__background{opacity:.55!important;background:linear-gradient(95deg,rgba(8,32,39,.85),rgba(8,32,39,.45) 63%,rgba(8,32,39,.15))!important}
.duchesne-city-theme .dc-hero .wp-block-cover__inner-container{position:relative;z-index:1}
.duchesne-city-theme .dc-hero h1{font-size:clamp(3rem,5.7vw,6.4rem)!important;letter-spacing:-.045em;line-height:1.02!important;max-width:900px;text-shadow:0 3px 22px rgba(0,0,0,.24)}
.duchesne-city-theme .dc-hero .wp-block-buttons{gap:12px}
.duchesne-city-theme .dc-hero .wp-block-button__link{min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:13px 23px!important;border-radius:11px!important;font-weight:750;box-shadow:0 6px 16px rgba(0,0,0,.13);transition:transform .2s ease,box-shadow .2s ease}
.duchesne-city-theme .dc-hero .wp-block-button__link:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(0,0,0,.2)}
/* 3. Unified service cards and finder */
.duchesne-city-theme .dc-service-finder{border-radius:var(--dc25-radius)}
.duchesne-city-theme :is(.dc-service-card,.dc-photo-card,.dc-news-card){border-radius:var(--dc25-radius)!important;border:1px solid var(--dc25-edge)!important;box-shadow:0 4px 18px rgba(12,40,43,.055);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.duchesne-city-theme :is(.dc-service-card,.dc-photo-card,.dc-news-card):hover{transform:translateY(-3px);box-shadow:var(--dc25-shadow);border-color:#94b5aa!important}
.duchesne-city-theme .dc-service-list .dc-service-card{height:100%;padding:24px 18px!important;display:flex;flex-direction:column;justify-content:center;gap:8px}
.duchesne-city-theme .dc-service-list .dc-service-card h3{line-height:1.3;margin-block:4px}
.duchesne-city-theme .dc-service-list .dc-service-card a{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.duchesne-city-theme :is(.dc-finder-controls input,.dc-finder-controls select){border-radius:12px}
.duchesne-city-theme .dc-task-row button{border-radius:12px;padding-inline:16px;cursor:pointer}
/* 4. Connected & Informed panels */
.duchesne-city-theme .dc-info-wrap{padding-block:clamp(34px,4.8vw,66px)!important}
.duchesne-city-theme .dc-info-wrap .dc-section-heading{margin-bottom:25px}
.duchesne-city-theme .dc-info-wrap .dc-section-heading h2{font-size:clamp(1.85rem,3vw,2.65rem);letter-spacing:-.035em}
.duchesne-city-theme .dc-home-panels{align-items:stretch;gap:18px!important}
.duchesne-city-theme .dc-home-panels>.wp-block-column{min-width:0;display:flex;flex-direction:column}
.duchesne-city-theme .dc-home-panels .dc-panel{flex:1;min-width:0;border-radius:var(--dc25-radius)!important;overflow:hidden;box-shadow:var(--dc25-shadow);padding:clamp(22px,2.4vw,32px)!important}
.duchesne-city-theme .dc-calendar-panel{background:#fff;border:1px solid var(--dc25-edge)}
.duchesne-city-theme .dc-home-panels .dc-panel h2{line-height:1.2}
.duchesne-city-theme .dc-home-panels .dc-panel a{text-underline-offset:4px}
.duchesne-city-theme .dc-home-panels .dc-panel a:focus-visible{border-radius:4px}
.duchesne-city-theme .dc-alert-item+.dc-alert-item{border-top:1px solid rgba(255,255,255,.18)}
.duchesne-city-theme .dc-meeting-card{border-radius:var(--dc25-radius);box-shadow:0 7px 24px rgba(12,40,43,.055)}
/* 5. Rhythm of homepage sections and news */
.duchesne-city-theme .dc-news{padding-block:clamp(42px,5vw,70px)!important}
.duchesne-city-theme .dc-news-card{overflow:hidden}
.duchesne-city-theme .dc-news-card .wp-block-post-featured-image img{width:100%;object-fit:cover}
.duchesne-city-theme .dc-community{padding-block:clamp(42px,6vw,76px)!important}
.duchesne-city-theme .dc-community .dc-values{gap:clamp(15px,2.4vw,28px)}
.duchesne-city-theme .dc-app-feature{margin-block:clamp(28px,4vw,58px)}
.duchesne-city-theme .dc-photo-grid{gap:20px}
/* 6. Footer polish */
.duchesne-city-theme .dc-site-footer{border-top:4px solid var(--dc-p-accent,#ddb968)}
.duchesne-city-theme .dc-site-footer>.wp-block-columns{gap:clamp(26px,3.3vw,46px)!important}
.duchesne-city-theme .dc-site-footer h4{font-size:1rem!important;letter-spacing:.02em}
.duchesne-city-theme .dc-site-footer a{color:inherit;text-underline-offset:4px}
.duchesne-city-theme .dc-site-footer a:hover{text-decoration:underline}
.duchesne-city-theme .dc-footer-legal{line-height:1.8}
.duchesne-city-theme .dc-civic-credit img{max-height:48px;width:auto;object-fit:contain}
/* 7. Palette control: a discreet tab at lower left, always upright */
html body .dc-palette-launch{position:fixed!important;top:auto!important;bottom:18px!important;left:12px!important;width:42px!important;height:42px!important;border-radius:12px!important;transform:none!important;writing-mode:horizontal-tb!important;box-shadow:0 5px 22px rgba(0,0,0,.22)!important}
html body .dc-palette-panel{position:fixed!important;top:auto!important;bottom:68px!important;left:12px!important;max-height:min(65dvh,500px)!important;transform:none!important;writing-mode:horizontal-tb!important}
html body.admin-bar .dc-palette-launch{top:auto!important;bottom:18px!important}
html body.admin-bar .dc-palette-panel{top:auto!important;bottom:68px!important}
@media(max-width:900px){
 .duchesne-city-theme .dc-legacy-primary-nav .dc-primary-menu-panel{border-radius:0 0 16px 16px;box-shadow:0 22px 34px rgba(0,0,0,.22)}
 .duchesne-city-theme .dc-legacy-primary-nav .dc-menu>li>a{min-height:48px!important;display:flex;align-items:center}
 .duchesne-city-theme .dc-home-panels{flex-wrap:wrap!important}
 .duchesne-city-theme .dc-home-panels>.wp-block-column{flex:1 1 260px!important}
}
@media(max-width:700px){
 .duchesne-city-theme .dc-hero .wp-block-cover__background{background:linear-gradient(90deg,rgba(8,32,39,.83),rgba(8,32,39,.5))!important}
 .duchesne-city-theme .dc-hero h1{font-size:clamp(2.45rem,10vw,4.25rem)!important;letter-spacing:-.04em}
 .duchesne-city-theme .dc-hero .wp-block-buttons{align-items:stretch;flex-wrap:wrap}
 .duchesne-city-theme .dc-hero .wp-block-button{flex:1 1 185px}
 .duchesne-city-theme .dc-hero .wp-block-button__link{width:100%}
 .duchesne-city-theme .dc-info-wrap{padding-inline:16px!important}
 .duchesne-city-theme .dc-home-panels>.wp-block-column{flex:1 1 100%!important}
 .duchesne-city-theme .dc-home-panels .dc-panel{padding:22px!important}
 .duchesne-city-theme .dc-news{padding-inline:18px!important}
 .duchesne-city-theme .dc-site-footer{padding-inline:18px}
 html body .dc-palette-launch{left:8px!important;bottom:12px!important;width:38px!important;height:38px!important}
 html body .dc-palette-panel{left:8px!important;bottom:58px!important;width:min(310px,calc(100vw - 16px))!important}
}
@media(max-width:480px){
 .duchesne-city-theme .dc-service-list{grid-template-columns:1fr 1fr!important;gap:10px!important}
 .duchesne-city-theme .dc-service-list .dc-service-card{padding:16px 10px!important;min-height:154px}
 .duchesne-city-theme .dc-service-list .dc-service-card h3{font-size:.99rem}
}
@media(prefers-reduced-motion:reduce){
 .duchesne-city-theme :is(.dc-service-card,.dc-photo-card,.dc-news-card,.dc-hero .wp-block-button__link){transition:none!important;transform:none!important}
}
@media(forced-colors:active){.duchesne-city-theme :is(.dc-service-card,.dc-photo-card,.dc-news-card,.dc-home-panels .dc-panel){border:1px solid CanvasText!important}}
