/* Shared Assembly shell: final layer for every service, guide and project. */
:root {--oxide:#783c3e;--header-height:86px}
.site-header {background:var(--paper)}
.site-nav {gap:22px}
.site-nav a {font-size:13px;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}
.site-nav .nav-contact {padding:10px 16px}
.header-row {gap:28px}
.brand img {width:126px;height:auto}
.brand-name {font-size:36px}
.review-strip,.review-strip a,.motion-toggle {font-size:12px}
.hero {padding-inline:var(--gutter);padding-top:48px}
.hero-copy {padding:24px 34px 40px 0}
.hero h1,.hero-rcc h1,.page-steel .hero h1 {font-size:clamp(42px,4.6vw,70px);line-height:1.06;letter-spacing:-.04em}
.hero h1 .serif {color:var(--oxide)}
.hero-deck {font-size:clamp(17px,1.5vw,21px);line-height:1.65}
.hero-copy .eyebrow {margin-bottom:24px}
.hero-visual {border:1px solid var(--line);height:auto}
.hero-baseline {margin-top:30px;padding-inline:0}
.hero-copy>.round-link {margin-top:28px}
.study-note {margin-top:40px}
.study-note p {font-size:25px;line-height:1.4}
.hero .model-viewport {height:clamp(320px,34vw,500px);min-height:0;max-height:500px;flex:0 0 auto}
.hero .model-label {display:none}
.hero .model-caption {padding:12px 20px 18px;font-size:12px;line-height:1.6;gap:22px}
.model-topline {font-size:12px;line-height:1.5;padding:18px 20px}
.model-controls--simple .model-tour button {font-size:14px}
.model-controls--simple .model-tour .reset-model {background:none;color:var(--ink)}
.model-controls--simple .model-play-status {font-size:13px;min-height:42px}
.model-controls--simple .model-keyboard-help {font-size:12px}
.model-inspection-options summary {font-size:14px}
.model-inspection-options button,.model-inspection-options .assembly-stage-detail,.model-inspection-options .control-label {font-size:13px}
.model-presets button {min-height:44px;padding:10px}
.model-controls--simple .stop-icon {display:none}
.model-controls--simple [data-play-breakdown][aria-pressed=true] .stop-icon {display:block}
.intro,.interface,.applications,.coordination,.project-cta,.peb-applications,.peb-process,.site-photo-section,.resource-feature,.epc-section {padding-block:64px}
.section-heading h2,.interface-title h2,.peb-section-heading h2,.site-photo-heading h2 {font-size:clamp(32px,3.5vw,49px)}
.eyebrow,.mono,.small-note,.step-number,.step-detail,.diagram-top,.detail-topics,.peb-use-label,.peb-application-note,.peb-study figcaption,.detail-source,.story-note {font-size:12px}
.material-details p,.interface-diagram figcaption {font-size:14px;line-height:1.8}
.application summary {transition:color 160ms ease,background-color 160ms ease}
.application summary:hover,.application[open] summary {padding-left:0;padding-right:0}
.site-photo-grid {gap:28px}
.site-photo-grid .construction-photo img {width:100%;height:290px;object-fit:cover}
.construction-photo figcaption {font-size:13px;line-height:1.7;gap:16px;padding-top:14px}
.site-photo-record {display:inline-block;margin-top:22px;font-size:14px;text-decoration:underline;text-underline-offset:5px}
.site-photo-record+.site-photo-record {margin-left:24px}
.service-nav {display:flex;align-items:center;flex-wrap:wrap;gap:16px 32px;padding-block:20px;border-bottom:1px solid var(--line)}
.service-nav span {font-size:12px;color:var(--muted);margin-right:auto}
.service-nav a {font-size:13px;min-height:44px;display:inline-flex;align-items:center;text-decoration:underline;text-underline-offset:5px}
.connected-specialists {border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:38px;display:grid;grid-template-columns:1fr 2fr;gap:35px}
.connected-specialists h2 {font-size:26px;line-height:1.3}
.connected-specialists p {max-width:66ch;font-size:15px;color:var(--muted)}
.connected-links {display:flex;flex-wrap:wrap;gap:12px 26px;margin-top:18px}
.connected-links a {font-size:14px;text-decoration:underline;text-underline-offset:5px}
.site-footer {padding-block:48px 25px;border-top:1px solid var(--line)}
.footer-directory {display:grid;grid-template-columns:1.2fr 1fr 1.1fr 1fr;gap:36px;padding-bottom:38px}
.footer-directory h2 {font-size:13px;margin-bottom:15px;font-weight:650}
.footer-directory nav {display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.footer-directory nav a {font-size:13px;min-height:32px;display:inline-flex;align-items:center}
.footer-directory nav a:hover,.connected-links a:hover {color:var(--oxide)}
.footer-directory .brand-name {font-size:30px}
.footer-directory .brand img {width:105px}
.footer-directory p {font-size:13px;color:var(--muted);margin-top:16px;max-width:23ch}
.footer-bottom {font-size:12px;line-height:1.7;gap:20px;align-items:center}
.footer-bottom>span:last-child {font-size:12px;max-width:58ch}
.gallery-intro {padding-block:64px 44px;display:grid;grid-template-columns:1.1fr 1fr;gap:50px;align-items:end}
.gallery-intro h1 {font-size:clamp(44px,5vw,72px);line-height:1.06;letter-spacing:-.045em;margin-top:20px}
.gallery-intro p {font-size:16px;color:var(--muted);max-width:52ch}
.gallery-section {padding-bottom:64px}
.gallery-toolbar {display:flex;justify-content:space-between;align-items:center;gap:20px;border-block:1px solid var(--line);padding-block:18px;margin-bottom:30px}
.gallery-filters {display:flex;flex-wrap:wrap;gap:8px}
.gallery-filters button {border:1px solid var(--line);background:none;padding:10px 16px;min-height:44px;font-size:13px;transition:color 160ms ease,background-color 160ms ease}
.gallery-filters button[aria-pressed=true] {background:var(--forest);color:var(--paper);border-color:var(--forest)}
.gallery-toolbar [data-gallery-count] {font-size:13px;color:var(--muted);white-space:nowrap}
.project-gallery {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 28px}
.gallery-photo>a {display:block;overflow:hidden;background:var(--pale)}
.gallery-photo img {display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform 300ms ease}
.gallery-photo a:hover img {transform:scale(1.025)}
.gallery-photo figcaption {padding-top:14px;font-size:14px;display:flex;justify-content:space-between;gap:20px;align-items:baseline}
.gallery-photo figcaption a {font-size:12px;color:var(--muted);white-space:nowrap;text-decoration:underline;text-underline-offset:4px}
.gallery-records {padding-block:48px 64px;border-top:1px solid var(--line)}
.gallery-records h2 {font-size:32px;margin-bottom:24px}
.gallery-records>div {display:grid;grid-template-columns:1fr 1fr;gap:28px}
.gallery-records article {border-top:1px solid var(--line);padding-top:22px}
.gallery-records h3 {font-size:24px;margin-bottom:12px}
.gallery-records p {font-size:15px;color:var(--muted);max-width:55ch}
.gallery-records article>a {display:inline-block;margin-top:18px;text-decoration:underline;text-underline-offset:5px}
.photo-viewer-open {overflow:hidden}
.photo-viewer {border:0;background:var(--paper);color:var(--ink);padding:0;width:min(1120px,calc(100vw - 40px));max-width:none;max-height:calc(100dvh - 40px)}
.photo-viewer::backdrop {background:rgba(15,28,23,.86)}
.photo-viewer-bar {display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-bottom:1px solid var(--line);gap:20px}
.photo-viewer-bar p {font-size:13px}
.photo-viewer button {min-height:44px;min-width:44px;background:transparent;border:1px solid var(--line);padding:8px 14px;font-size:14px}
.photo-viewer figure {padding:0 20px 18px}
.photo-viewer img {display:block;width:100%;height:min(64dvh,700px);object-fit:contain;margin-block:16px;background:var(--pale)}
.photo-viewer figcaption {font-size:14px;line-height:1.6}
.photo-viewer-actions {display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 20px 20px}
.photo-viewer-actions>div {display:flex;gap:10px}
.photo-viewer-actions a {font-size:13px;text-decoration:underline;text-underline-offset:4px}
@media(max-width:1280px){
  .header-row {min-height:80px;position:relative;flex-wrap:wrap}
  .menu-toggle {display:inline-flex;align-items:center;gap:18px;margin-left:auto;min-height:44px}
  .site-nav {width:100%;display:flex;flex-wrap:wrap;padding:18px 0 24px;gap:14px 25px;border-top:1px solid var(--line)}
  .enhanced .site-nav {display:none}
  .enhanced .site-nav.is-open {display:flex}
  .site-nav a {font-size:15px}
  .site-nav .nav-contact {margin-left:0}
  .footer-directory {grid-template-columns:1.2fr 1fr 1fr}
  .footer-directory>div:last-child {grid-column:2/4}
}
@media(max-width:800px){
  .hero {padding-top:28px}
  .hero-copy {padding:12px 0 30px}
  .hero-visual {margin-inline:0}
  .hero h1,.hero-rcc h1,.page-steel .hero h1 {font-size:clamp(46px,7vw,64px)}
  .hero .model-viewport {height:420px;max-height:none}
  .hero-baseline {margin-top:0}
  .study-note {margin-top:28px}
  .model-controls--simple .model-play-status {min-height:22px}
  .gallery-intro {gap:25px;grid-template-columns:1fr;padding-block:44px 32px}
  .connected-specialists {grid-template-columns:1fr;gap:18px}
}
@media(max-width:600px){
  :root {--header-height:74px}
  .header-row {min-height:74px}
  .brand img {width:96px}
  .brand-name {font-size:29px}
  .review-strip {gap:12px}
  .review-strip b {display:none}
  .review-actions {gap:16px}
  .review-strip,.review-strip a,.motion-toggle {font-size:11px}
  .site-nav {display:grid;grid-template-columns:1fr 1fr;gap:8px 20px}
  .site-nav a {white-space:normal;line-height:1.5}
  .enhanced .site-nav.is-open {display:grid}
  .site-nav .nav-contact {grid-column:1/3;justify-content:center}
  .hero .model-viewport {height:320px}
  .model-topline,.hero .model-caption {padding-inline:15px;font-size:12px}
  .hero .model-caption {display:block}
  .hero .model-caption span+span {display:block;margin-top:7px;text-align:left}
  .intro,.interface,.applications,.coordination,.project-cta,.peb-applications,.peb-process,.site-photo-section,.resource-feature,.epc-section {padding-block:46px}
  .site-photo-grid .construction-photo img {height:auto}
  .site-photo-record+.site-photo-record {margin-left:0;display:block;margin-top:14px}
  .service-nav {display:grid;grid-template-columns:1fr 1fr;gap:6px 20px;padding-block:18px}
  .service-nav span {grid-column:1/3;margin-bottom:6px}
  .footer-directory {grid-template-columns:1fr 1fr;gap:30px 22px}
  .footer-directory>div:first-child {grid-column:1/3}
  .footer-directory>div:last-child {grid-column:auto}
  .footer-directory nav a {min-height:40px}
  .footer-bottom {display:block}
  .footer-bottom>* {display:block;margin-top:15px}
  .gallery-toolbar {display:block}
  .gallery-toolbar [data-gallery-count] {margin-top:15px}
  .gallery-filters button {padding:9px 12px}
  .project-gallery,.gallery-records>div {grid-template-columns:1fr}
  .gallery-photo figcaption {font-size:13px}
  .photo-viewer {width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}
  .photo-viewer img {height:52dvh}
  .photo-viewer-bar,.photo-viewer figure,.photo-viewer-actions {padding-inline:14px}
}
