/* Readability and editorial composition; native per-element typography controls retain precedence. */
body.cse-site{font-family:var(--cse-body-font,DM,Arial,sans-serif);font-size:var(--cse-body-size,18px);line-height:var(--cse-body-line,1.65);font-weight:var(--cse-body-weight,400)}
.cse-site .cse-editorial p{max-width:68ch;margin:0 0 1.15em}
.cse-site .cse-editorial h2{margin:0 0 .55em}
.cse-site .cse-editorial .eyebrow{margin-bottom:1em;line-height:1.5}
.cse-site .cse-reading{max-width:920px}
.cse-site .cse-related{display:flex;flex-wrap:wrap;align-items:center;gap:24px}
.cse-site .cse-related h2{flex-basis:100%}
.cse-site .cse-related .elementor-widget-button{width:auto;max-width:100%}
.cse-site .cse-editorial .cse-inner-photo{height:auto;min-height:420px}
.cse-site .cse-editorial .cse-inner-photo img{aspect-ratio:4/3;object-fit:cover}
.cse-site .cse-menu{font-size:var(--cse-nav-size,16px);line-height:1.5}.cse-site .cse-menu a{font-size:inherit;line-height:inherit}
.cse-site .button,.cse-site .text-link,.cse-site .text-link .elementor-button,.cse-site .elementor-button{font-size:16px;line-height:1.45}
.cse-site button,.cse-site input,.cse-site select,.cse-site textarea{font-size:18px}
.cse-site .cse-form label{font-size:17px;line-height:1.5}
.cse-site .cse-form input,.cse-site .cse-form textarea,.cse-site .cse-form select{min-height:48px}
.cse-site .disclosure,.cse-site .caption,.cse-site .eyebrow,.cse-site .cse-footer-legal{font-size:14px;line-height:1.6}
.cse-site .elementor-accordion .elementor-tab-content{font-size:18px;line-height:1.65}
.cse-site a:focus-visible,.cse-site button:focus-visible,.cse-site input:focus-visible,.cse-site textarea:focus-visible,.cse-site select:focus-visible,.cse-site summary:focus-visible{outline:3px solid currentColor;outline-offset:5px}
@media(prefers-reduced-motion:no-preference){.cse-site a .cse-picture img,.cse-site .cse-project-card img{transition:transform .25s ease}.cse-site a:hover .cse-picture img,.cse-site .cse-project-card:hover img{transform:scale(1.015)}}
@media(prefers-reduced-motion:reduce){.cse-site,.cse-site *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media(max-width:767px){body.cse-site{font-size:var(--cse-body-size,17.5px)}.cse-site .cse-editorial .cse-inner-photo{min-height:260px}.cse-site .cse-editorial .cse-inner-photo img{aspect-ratio:4/3}.cse-site .disclosure,.cse-site .caption,.cse-site .eyebrow{font-size:14px}.cse-site .elementor-accordion .elementor-tab-content{font-size:17.5px}.cse-site .cse-related{gap:18px}}

.cse-site .brand{font-family:var(--cse-heading-font,inherit)}.cse-site .cse-project-copy p,.cse-site .cse-diagram li{font-size:var(--cse-body-size,17.5px);line-height:1.65}.cse-site .cse-filter-status,.cse-site .cse-form .wpcf7-not-valid-tip{font-size:15px}.cse-site .elementor-button{border-radius:var(--cse-button-radius,0)}.cse-site .cse-picture img{border-radius:var(--cse-radius,0)}

@media(max-width:767px){.cse-site .site-header .elementor-widget-cse-brand{min-width:0;flex:1 1 0;max-width:none}.cse-site .site-header .elementor-widget-cse-navigation{flex:0 0 auto}.cse-site .site-header .brand span{overflow-wrap:anywhere;min-width:0}.cse-site .elementor .atlas-service>.arrow{grid-column:auto;grid-row:auto}}

@media(max-width:1024px){.cse-site .site-header .cse-header-cta{display:none}}

/* Legacy static preview paragraphs must not shrink native Elementor body controls. */
.cse-site .elementor-widget-text-editor p{font-size:inherit;line-height:inherit}

/* Group02: keep the photographic-context disclosure readable on small screens. */
.cse-site .cse-comparison .disclosure{font-size:14px}

/* Group03 visual foundations. Native widget and Kit typography still take precedence. */
:where(.cse-site) :is(.cse-editorial,.cse-reading,.cse-aside-grid) .elementor-widget-text-editor :is(p,li){max-width:68ch}
:where(.cse-site) :is(.caption,.disclosure,figcaption,.room-label,.image-stamp,.report-caption,.footer-bottom,.project-plaque small,.tag){font-size:14px;line-height:1.6}
:where(.cse-site) :is(.cse-menu-toggle,.cse-filters button,.cse-comparison button,.cse-search button){min-height:44px;min-width:44px;font-size:16px;line-height:1.5}
:where(.cse-site) .cse-menu a{min-height:44px;display:flex;align-items:center}
:where(.cse-site) :is(.elementor-button,.elementor-accordion-title){min-height:44px}
:where(.cse-site) .elementor-accordion-title{display:inline-flex;align-items:center;max-width:calc(100% - 32px)}
:where(.cse-site) :is(.cse-form input,.cse-form textarea,.cse-search input){border-color:currentColor}
:where(.cse-site) :is(.cse-editorial,.cse-reading,.cse-aside-grid) .elementor-widget-text-editor:not(.eyebrow){text-wrap:pretty}
:where(.cse-site) .elementor-widget-heading :is(h1,h2,h3){text-wrap:balance}
:where(.cse-site) main .elementor-widget-text-editor p a{text-decoration:underline;text-underline-offset:.2em}
:where(.cse-site) :is(.elementor-button,.cse-menu a,.cse-filters button,.cse-comparison button){transition:background-color .18s,color .18s,outline-offset .18s}
:where(.cse-site) :is(.elementor-button,.cse-menu a,.cse-filters button,.cse-comparison button):hover{text-decoration:underline;text-underline-offset:.22em}
:where(.cse-site) :is(a,button,input,textarea,select,summary):focus-visible{outline:3px solid currentColor;outline-offset:4px;box-shadow:0 0 0 2px var(--paper)}
/* Preserve each brand's palette; readable link feedback on light and inverse surfaces. */
:where(.cse-site) main .elementor-widget-text-editor p a:hover{text-decoration-thickness:2px;color:inherit}
@media(max-width:767px){
 :where(.cse-site) :is(.room-label,.image-stamp,figcaption,.report-caption,.caption,.disclosure,.footer-bottom){font-size:14px;line-height:1.6}
 :where(.cse-site) .cse-menu .sub-menu a{font-size:16px;min-height:44px}
 :where(.cse-site) .cse-filters{gap:12px}
 :where(.cse-site) .cse-comparison>div{flex-wrap:wrap}
 :where(.cse-site) .cse-comparison button{flex:1 1 120px}
}
/* Final Group03 corrections. */
.cse-site .iron-service :is(.elementor-button-content-wrapper,.elementor-button-text){font-size:inherit;color:inherit}
.cse-site .system-grid :is(figure,.cse-figure) figcaption{font-size:14px;line-height:1.6}
.cse-site .civic-image figcaption,.cse-site .report-panel .report-caption,.cse-site .hearth-hero .room-label{font-size:14px;line-height:1.6}
.cse-site .iron-footer .footer-top>.elementor-widget-button{flex:0 0 auto}
.cse-site .cse-credits-text{text-transform:none;letter-spacing:normal;text-align:left;max-width:78ch}
.cse-site .cse-credits-text :is(h2,h3){font-size:clamp(28px,3.2vw,44px);line-height:1.2;margin-block:1.5em .65em;text-transform:none;letter-spacing:-.02em}
.cse-site .cse-credits-text li{margin-bottom:1.2em;overflow-wrap:anywhere}
.cse-site .brand small{font-size:14px;line-height:1.3;letter-spacing:.06em}
.cse-site .disclosure{opacity:1}.cse-site .muted{opacity:.85}
.cse-site .cse-journal-feed{border-top:1px solid var(--line);padding-block:56px 0;margin-top:48px}
.cse-site .cse-journal-feed>h2{font-size:clamp(32px,4vw,56px);margin-bottom:18px}
.cse-site .cse-journal-feed>p{font-size:18px;line-height:1.65}
.cse-site .cse-journal-feed .cse-archive article{min-width:0}
.cse-site .cse-journal-feed .cse-archive img{height:260px;object-fit:cover}


/* Filled and selected controls need a ring that contrasts with their surrounding surface. */
.cse-site .button .elementor-button:focus-visible,.cse-site :is(input[type=submit],button[type=submit]):focus-visible,.cse-site .cse-filters button:focus-visible,.cse-site .cse-comparison button:focus-visible{outline-color:var(--ink)}

/* Keep a distinct outer focus ring on filled buttons in inverse footers. */
.cse-site :is(.hearth-footer,.civic-footer,.iron-footer) .button .elementor-button:focus-visible{outline-color:var(--paper)}
