/* Page-specific editorial systems, shared tokens inherited from base.css. */
.site-main { min-height: 65vh; }
.page-hero { padding-block: clamp(2rem,5vw,4rem) clamp(3rem,6vw,5.5rem); }
.page-hero h1 { max-width: 62rem; margin-bottom: 1.5rem; font-size: clamp(2.4rem,5.2vw,5rem); }
.page-summary { max-width: 40rem; color: var(--color-muted); font-size: clamp(1rem,1.5vw,1.2rem); word-break: keep-all; }
.breadcrumbs { margin-bottom: 3rem; color: var(--color-muted); font-size: .75rem; }
.breadcrumbs ol { display:flex; flex-wrap:wrap; gap:.5rem; list-style:none; padding:0; margin:0; }
.breadcrumbs li + li::before { content:'/'; padding-right:.5rem; }
.breadcrumbs a { display:inline-block; padding-block:.35rem; text-decoration:none; }
.breadcrumbs [aria-current] { padding-block:.35rem; }
.page-section { padding-block: clamp(3rem,6vw,6rem); }
.section-topless { padding-top:0; }
.section-heading { margin-bottom:2.5rem; }
.section-heading h2 { margin-bottom:0; }
.muted { color:var(--color-muted); }
.detail-layout { display:grid; gap:2.5rem; padding-block:clamp(3rem,6vw,6rem); }
.detail-main { min-width:0; }
.detail-main > .entry-content { font-size:1.05rem; }
.detail-aside h2 { font-size:clamp(1.5rem,2.5vw,2.3rem); }
.detail-aside .text-link { margin-top:1.5rem; }
.detail-section { margin-bottom:3rem; }
.detail-section:last-child { margin-bottom:0; }
.detail-section h2 { font-size:clamp(1.6rem,2.7vw,2.4rem); margin-bottom:1.75rem; }
.detail-note { padding:1.5rem; border-left:1px solid var(--color-accent); background:var(--color-surface); font-size:.9rem; white-space:normal; }
.detail-points { display:grid; gap:1.25rem; }
.detail-points article { border-top:1px solid var(--color-line); padding-top:1.5rem; }
.detail-points h3 { font-size:1.2rem; }
.detail-points p { color:var(--color-muted); margin:0; }
.plain-list { padding-left:1.1rem; color:var(--color-muted); }
.process-list { list-style:none; counter-reset:steps; display:grid; gap:1rem; padding:0; }
.process-list li { counter-increment:steps; display:flex; gap:1rem; border-top:1px solid var(--color-line); padding-top:1rem; }
.process-list li::before { content:counter(steps,decimal-leading-zero); color:var(--color-accent); font-size:.8rem; }
.image-placeholder { position:relative; display:flex; align-items:flex-end; width:100%; height:100%; min-height:14rem; overflow:hidden; padding:1.5rem; background:linear-gradient(135deg,#2c3030,#1e2224 70%); }
.placeholder-lines { position:absolute; width:67%; height:66%; left:18%; top:15%; border:1px solid #606760; transform:skewY(-10deg); }
.placeholder-lines::before { content:''; position:absolute; inset:14% -14% -14% 14%; border:1px solid #434a48; }
.placeholder-lines::after { content:''; position:absolute; inset:0; background:repeating-linear-gradient(90deg,transparent 0,transparent calc(20% - 1px),#434a48 calc(20% - 1px),#434a48 20%); }
.placeholder-caption { position:relative; color:var(--color-muted); font-size:.7rem; }
.service-cover,.project-cover { aspect-ratio:16/8; width:100%; min-height:17rem; }
.service-cover > img,.project-cover > img { width:100%; height:100%; object-fit:cover; }
.collection { display:grid; grid-template-columns:1fr; gap:2.5rem 2rem; }
.collection article { min-width:0; }
.collection a { display:block; text-decoration:none; }
.collection-image { aspect-ratio:3/2; overflow:hidden; }
.collection-image > img { width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.collection a:hover .collection-image > img { transform:scale(1.02); }
.collection-caption { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; margin-top:1.3rem; }
.collection-caption h3 { font-size:1.35rem; margin-bottom:.7rem; }
.collection article > a > p { color:var(--color-muted); font-size:.88rem; }
.collection-empty { padding:3rem clamp(1.5rem,4vw,3rem); border:1px solid var(--color-line); background:var(--color-surface); }
.collection-empty p { font-size:1.1rem; margin-bottom:1.5rem; }
.collection-empty > span { font-size:.6rem; letter-spacing:.15em; color:var(--color-accent); }
.service-directory a { display:grid; gap:1rem; border-top:1px solid var(--color-line); text-decoration:none; padding:1.75rem 0; }
.service-directory a:last-child { border-bottom:1px solid var(--color-line); }
.service-directory h3,.service-directory p { margin:0; }
.service-directory p { color:var(--color-muted); font-size:.9rem; }
.service-directory .link-arrow { display:none; }
.filter-nav { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:2rem; }
.filter-nav a { display:inline-flex; align-items:center; min-height:2.8rem; padding:.5rem 1rem; text-decoration:none; border:1px solid var(--color-control); font-size:.85rem; }
.filter-nav a[aria-current],.filter-nav a:hover { background:var(--color-accent); color:var(--color-background); border-color:var(--color-accent); }
.result-count { color:var(--color-muted); font-size:.8rem; }
.detail-gallery { display:grid; grid-template-columns:1fr; gap:2rem; list-style:none; padding:0; }
.detail-gallery figure { margin:0; }
.detail-gallery a { display:block; aspect-ratio:4/3; overflow:hidden; }
.detail-gallery img { width:100%; height:100%; object-fit:cover; }
.detail-gallery figcaption { color:var(--color-muted); font-size:.85rem; margin-top:.75rem; }
.detail-image { aspect-ratio:16/7; min-height:16rem; }
.related-field-links { display:flex; flex-wrap:wrap; gap:1rem 2rem; margin-bottom:2rem; }
.related-columns { display:grid; gap:3rem; }
.spec-list { margin-block:1.5rem 2rem; }
.spec-list > div { display:grid; grid-template-columns:minmax(6rem,1fr) 2fr; gap:1rem; border-top:1px solid var(--color-line); padding-block:1rem; }
.spec-list dt { color:var(--color-muted); }
.spec-list dd { margin:0; }
.product-layout { display:grid; gap:2.5rem; }
.product-cover { width:100%; aspect-ratio:1/1; }
.product-cover > img { width:100%; height:100%; object-fit:cover; }
.product-information { align-self:center; }
.product-information > p { font-size:.88rem; }
.magazine-item { display:grid; gap:1.75rem; padding-block:2rem; border-top:1px solid var(--color-line); }
.magazine-image { display:block; width:100%; aspect-ratio:4/3; overflow:hidden; }
.magazine-image > img { width:100%; height:100%; object-fit:cover; }
.magazine-copy { align-self:center; }
.magazine-copy h2 { font-size:clamp(1.5rem,2.8vw,2.5rem); margin-block:1rem; }
.magazine-copy h2 a { text-decoration:none; }
.magazine-copy > p { color:var(--color-muted); font-size:.9rem; }
.story-meta { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; font-size:.8rem; color:var(--color-muted); }
.reading-surface { background:#f3f1eb; color:#24272a; padding:clamp(3rem,6vw,6rem) var(--page-gutter); }
.reading-inner { max-width:48rem; margin-inline:auto; }
.reading-content { font-size:1.08rem; line-height:1.95; }
.reading-content h2 { font-size:1.9rem; margin-top:2.5rem; }
.reading-content h3 { font-size:1.4rem; margin-top:2rem; }
.reading-content p { margin-bottom:1.5rem; }
.reading-surface a { color:#554324; }
.reading-surface .entry-content a { color:#554324; }
.reading-surface :focus-visible { outline-color:#554324; }
.reading-surface .story-meta { color:#595d60; margin-bottom:2rem; }
.reading-surface .entry-content td,.reading-surface .entry-content th { border-color:#9d9b95; }
.reading-surface .post-navigation a { display:block; padding-block:.6rem; }
.reading-disclosure { padding:1.5rem; border-top:1px solid #9d9b95; margin-top:2.5rem; font-size:.9rem; }
.story-cover { margin:0 0 3rem; }
.story-cover img { width:100%; }
.brand-statement { margin-bottom:4rem; max-width:68rem; }
.brand-statement h2 { font-size:clamp(2.3rem,5.3vw,4.8rem); }
.brand-statement > p:last-child { color:var(--color-muted); }
.brand-layout { display:grid; gap:3rem; }
.brand-image { width:100%; aspect-ratio:4/5; }
.brand-image > img { width:100%; height:100%; object-fit:cover; }
.brand-layout .entry-content { align-self:center; }
.brand-layout .entry-content h2 { font-size:1.8rem; margin-top:2rem; }
.brand-layout .related-field-links { margin-top:2.5rem; }
.contact-layout { display:grid; gap:3rem; }
.contact-links { margin-bottom:2.5rem; }
.contact-links a { display:block; text-decoration:none; border-bottom:1px solid var(--color-line); padding:1.25rem 0; font-size:1.3rem; overflow-wrap:anywhere; }
.contact-links span { display:block; font-size:.65rem; color:var(--color-accent); letter-spacing:.15em; }
.consultation-paths { display:grid; gap:2rem; }
.consultation-paths article { padding:clamp(1.5rem,4vw,3rem); background:var(--color-surface); }
.consultation-paths h2 { font-size:1.8rem; }
.consultation-paths p:not(.eyebrow) { color:var(--color-muted); font-size:.92rem; }
.consultation-paths .button { margin-top:1.5rem; }
.consultation-paths + .detail-section { margin-top:4rem; }
.form-intro { max-width:58rem; margin:0 auto 3rem; color:var(--color-muted); }
.completion-panel { padding:clamp(2rem,6vw,6rem); border:1px solid var(--color-line); background:var(--color-surface); }
.completion-panel p { max-width:40rem; }
.completion-panel .button { margin-top:2rem; }
.generic-page { max-width:52rem; margin:auto; }
.not-found-links { display:flex; flex-wrap:wrap; gap:2rem; align-items:center; }
.site-cta { border-top:1px solid var(--color-line); background:var(--color-surface); padding-block:4rem; margin-top:3rem; }
.site-cta > div { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:2rem; }
.site-cta h2 { font-size:clamp(1.7rem,3vw,2.6rem); margin:0; }
.pagination .nav-links { display:flex; flex-wrap:wrap; gap:.5rem; padding-top:2rem; }
.page-numbers { display:inline-grid; place-items:center; min-width:2.8rem; min-height:2.8rem; padding:.5rem; border:1px solid var(--color-control); text-decoration:none; }
.page-numbers.current { background:var(--color-accent); color:var(--color-background); }
.lightbox { width:min(68rem,calc(100% - 2rem)); max-height:92dvh; padding:2rem; border:1px solid var(--color-control); background:var(--color-background); color:var(--color-text); }
.lightbox::backdrop { background:rgba(0,0,0,.9); }
.lightbox-inner { position:relative; padding-top:2rem; }
.lightbox-close { position:absolute; right:0; top:-1rem; z-index:1; background:var(--color-background); }
.lightbox img { width:100%; max-height:65dvh; object-fit:contain; }
.lightbox p { margin-block:1rem; font-size:.9rem; }
.lightbox-controls { display:flex; justify-content:center; gap:1rem; }
@media (min-width:48rem) {
    .collection { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .collection-product { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .detail-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .detail-gallery li:first-child { grid-column:1/-1; }
    .detail-gallery li:first-child a { aspect-ratio:16/9; }
    .service-directory a { grid-template-columns:1fr 1.5fr 1rem; align-items:center; }
    .service-directory .link-arrow { display:block; }
    .related-columns,.product-layout,.brand-layout,.contact-layout,.consultation-paths { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .magazine-item { grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); gap:3rem; }
}
@media (min-width:75rem) {
    .detail-layout { grid-template-columns:minmax(0,1fr) minmax(0,2fr); gap:5rem; }
    .product-layout,.brand-layout,.contact-layout { gap:5rem; }
    .collection-story { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:47.999rem) { .lightbox { padding:1rem; } .spec-list { font-size:.9rem; } }
/* Explicit width prevents an aspect ratio + minimum height widening small screens. */
.detail-image,.collection-image { width:100%; }
.collection-image .image-placeholder { min-height:0; }
