/* Complete supplied sheets stay uncropped in the project and media dialogs. */
.product-section.modular-compact-section { padding-block:44px; }
.modular-compact-section .section-head { margin-bottom:24px; }
.modular-compact-layout { display:grid; grid-template-columns:minmax(300px,380px) minmax(0,1fr); align-items:start; gap:40px; }
.modular-compact-visual { display:block; width:100%; max-width:420px; min-width:0; padding:0; text-align:left; background:var(--soft); border:1px solid var(--line); cursor:zoom-in; }
.modular-compact-visual:hover { border-color:var(--lime); }
.modular-compact-visual:focus-visible { outline:2px solid var(--lime); outline-offset:4px; }
.modular-compact-thumbnail { display:block; width:100%; height:auto; aspect-ratio:4/3; background:#f4f6f7; }
.modular-compact-thumbnail img { display:block; width:100%; height:100%; object-fit:contain; padding:8px; }
.modular-compact-visual[data-view="technology"] .modular-compact-thumbnail { background:var(--soft); overflow:hidden; }
.modular-compact-visual[data-view="technology"] .modular-compact-thumbnail img { object-fit:cover; object-position:center; padding:0; }
.modular-compact-caption { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:16px 18px; font-size:.875rem; line-height:1.4; }
.modular-compact-caption strong { display:block; font-weight:700; }
.modular-compact-caption>span { display:block; flex-shrink:0; color:var(--lime); text-decoration:underline; text-underline-offset:3px; }
.modular-technology-steps { display:grid; gap:0; }
.modular-technology-steps article { display:grid; grid-template-columns:32px 1fr; column-gap:16px; min-width:0; border-top:1px solid var(--line); padding-block:18px; }
.modular-technology-steps article:last-child { border-bottom:1px solid var(--line); }
.modular-technology-steps p { grid-column:2; }
.modular-step-number { display:block; color:var(--lime); font-size:.875rem; margin-bottom:10px; }
.modular-technology-steps h3 { font-size:1.125rem; line-height:1.4; margin-bottom:10px; }
.modular-technology-steps p,.modular-material-intro { font-size:1rem; line-height:1.6; color:var(--muted); }
.modular-material-intro { margin-bottom:20px; max-width:850px; }
.modular-materials { display:grid; grid-template-columns:1fr; gap:14px; margin:0 0 20px; }
.modular-materials>div { min-width:0; }
.modular-materials dt { font-weight:750; font-size:1rem; line-height:1.45; margin-bottom:6px; }
.modular-materials dd { margin:0; font-size:1rem; line-height:1.55; color:var(--muted); }
.modular-specifications { margin-top:26px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.modular-specifications summary { cursor:pointer; font-weight:700; font-size:1rem; padding-block:16px; }
.modular-specifications summary:focus-visible { outline:2px solid var(--lime); outline-offset:3px; }
.modular-spec-note { font-size:1rem; color:var(--muted); line-height:1.6; margin:4px 0 18px; }
.modular-specifications .spec-grid>div { padding-block:16px; }
.modular-specifications .spec-grid dt { margin-bottom:8px; }
.project-sheet-preview { position: relative; display: block; width: calc(100% - 80px); margin: 0 40px; padding: 0 0 48px; background: #fff; border: 1px solid var(--line); cursor: zoom-in; }
.project-sheet-preview img { display: block; width: 100%; height: auto; }
.project-sheet-preview .zoom-label { right: 0; bottom: 0; font-size: .875rem; min-height: 44px; }
.project-dialog .project-sheet-preview .zoom-label { display: block; }
.project-source-note { font-size: .875rem; line-height: 1.65; border-left: 2px solid var(--lime); padding-left: 16px; }
.media-source-note { font-size: .875rem; line-height: 1.65; color: var(--muted); margin-bottom: 20px; }
 .modular-compact-visual[data-view="overview"] .modular-compact-thumbnail { aspect-ratio:2048/1720; }
.modular-material-group { border-top:1px solid var(--line); }
.modular-material-group:last-child { border-bottom:1px solid var(--line); }
.modular-material-group summary { cursor:pointer; padding-block:18px; font-size:1rem; font-weight:750; line-height:1.5; }
.modular-material-group summary:focus-visible { outline:2px solid var(--lime); outline-offset:3px; }
@media (max-width:1000px) {
  .modular-compact-layout { grid-template-columns:minmax(260px,.85fr) minmax(0,1.3fr); gap:28px; }
  .modular-compact-caption { display:block; }
  .modular-compact-caption>span { margin-top:8px; }
}
@media (max-width:760px) {
  .product-section.modular-compact-section { padding-block:36px; }
  .modular-compact-layout { grid-template-columns:1fr; gap:24px; }
  .modular-compact-visual { max-width:420px; justify-self:center; }
  .modular-compact-caption { display:flex; }
  .modular-compact-caption>span { margin-top:0; }
}
@media (max-width:520px) {
  .modular-materials { grid-template-columns: 1fr; }
  .project-sheet-preview { width: calc(100% - 32px); margin-inline: 16px; }
}

/* Direct image markup follows the working timber catalogue cards. */
.modular-project-grid { align-items:stretch; }
.modular-project-card .modular-card-image { display:block; width:100%; flex:0 0 auto; aspect-ratio:1.84; background:#18211d; }
.modular-project-card .modular-card-image img { display:block; position:static; width:100%; height:100%; object-fit:cover; object-position:center top; transform:none; transition:none; }
.modular-project-card:hover .modular-card-image img { transform:none; }
.modular-render-card .modular-card-image img { object-position:50% 15%; }
.modular-project-detail .timber-project-views { grid-template-columns:repeat(2,minmax(0,1fr)); }
.modular-project-detail .timber-facts dd { font-size:clamp(16px,2vw,21px); }
.modular-project-card .timber-card-code { line-height:1.3; overflow-wrap:anywhere; }
.modular-project-card .timber-card-summary { margin-top:10px; font-size:.875rem; }
.modular-project-card .timber-card-copy .text-link { font-size:.875rem; }
.modular-project-card:hover { border-color:var(--lime); }
.modular-project-card .modular-area-basis { display:block; font-size:.875rem; line-height:1.4; color:var(--muted); margin-top:6px; }
.modular-area-note { margin-top:24px; max-width:960px; color:var(--muted); font-size:.875rem; line-height:1.6; }
@media(max-width:600px) { .modular-project-card .timber-card-code { font-size:1rem; } }

.modular-project-facts { margin:18px 0 24px; }
.modular-original { color:var(--muted); font-size:.875rem; margin-bottom:14px; }
.modular-project-facts .modular-area-note { margin-top:12px; }

/* Selected interior examples use the established compact gallery. */
.modular-interiors { background:#26372d; border-block:1px solid var(--line); padding-block:48px; }
.modular-interiors .section-head { margin-bottom:26px; }
/* Both photo galleries use uniform previews; dialogs retain complete images. */
.modular-photo-gallery .interior-card-image { aspect-ratio:4/3; background:#18211d; }
.modular-photo-gallery .interior-card-image img { object-fit:cover; object-position:50% 50%; }
@media(max-width:540px) { .modular-interiors { padding-block:36px; } }

.modular-production { padding-block:48px; }
.modular-production .section-head { margin-bottom:26px; }
.modular-photo-gallery .interior-card { border-color:transparent; }
.modular-photo-gallery .interior-card:hover,.modular-photo-gallery .interior-card:focus-visible { border-color:var(--lime); }
@media(max-width:540px) { .modular-production { padding-block:36px; } }


/* The selected modular hero keeps the complete roof and facade at every width. */
.product-hero-photo.modular-hero-photo { width:100%; max-width:640px; height:auto; aspect-ratio:4/3; justify-self:center; }
.product-hero-photo.modular-hero-photo img { object-fit:contain; object-position:center; }
