.subpage { padding-top: 5.5rem; }
.subpage-header { padding: 2.5rem 0 3rem; border-bottom: 1px solid var(--border-color); }
.subpage-header h1 { max-width: 1000px; font-size: clamp(2.2rem, 4.5vw, 4.1rem); line-height: 1.15; font-weight: 700; letter-spacing: -.045em; margin: 1rem 0 1.5rem; }
.subpage-lead { max-width: 820px; color: var(--text-muted); font-size: 1.125rem; line-height: 1.85; margin-bottom: 1.8rem; }
.subpage-body { padding-top: 3rem; padding-bottom: 4rem; }
.breadcrumbs { font-size: .8rem; color: var(--text-muted); margin-bottom: 2.5rem; }
.breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: .6rem; padding: 0; }
.breadcrumbs li + li::before { content: '/'; margin-right: .6rem; opacity: .6; }
.breadcrumbs a { color: inherit; text-underline-offset: 3px; }
.page-section { padding: 3rem 0; }
.page-section + .page-section { border-top: 1px solid var(--border-color); }
.page-section h2, .page-cta h2 { font-size: clamp(1.6rem, 2.4vw, 2.3rem); line-height: 1.3; font-weight: 650; letter-spacing: -.035em; margin: 0 0 1.7rem; }
.page-section h3 { font-size: 1.25rem; line-height: 1.5; margin: 0 0 .8rem; }
.page-split { display: grid; grid-template-columns: 1fr 1.65fr; gap: 4rem; }
.prose { max-width: 780px; }
.prose p, .detail-list p, .needs-list { font-size: 1rem; color: var(--text-muted); line-height: 1.9; }
.prose p + h2, .prose p + h3 { margin-top: 2.5rem; }
.detail-list article + article { margin-top: 2rem; }
.detail-list a, .page-cta a:not(.btn-accent) { color: var(--text-primary); text-underline-offset: 5px; }
.detail-list a:hover { color: var(--accent); }
.needs-list { padding-left: 1.25rem; margin: 0; }
.needs-list li { padding: 0 0 1rem .5rem; }
.needs-list li::marker { color: var(--accent); }
.service-overview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem; }
.service-summary { display: flex; align-items: start; flex-direction: column; padding: 2rem 0 0; border-top: 2px solid var(--accent); min-width: 0; }
.service-summary h3 { font-size: 1.65rem; line-height: 1.4; font-weight: 650; letter-spacing: -.03em; margin: 0 0 1rem; }
.service-summary > p:not(.section-label), .service-summary li { color: var(--text-muted); font-size: 1rem; line-height: 1.85; }
.service-summary ul { padding-left: 1.2rem; margin: .8rem 0 2rem; }
.service-summary li { padding: 0 0 .6rem .3rem; }
.service-summary li::marker { color: var(--accent); }
.service-summary > a { margin-top: auto; }
.page-cta { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 2.5rem 0 0; margin-top: 3rem; border-top: 1px solid var(--border-color); }
.page-cta h2 { margin-bottom: .8rem; }
.page-cta p { color: var(--text-muted); font-size: 1rem; line-height: 1.8; margin: 0; }
.page-cta .btn-accent { flex-shrink: 0; }
.about-profile { display: grid; grid-template-columns: 1fr 1.6fr; gap: 4rem; align-items: start; }
.about-profile .portrait-panel { width: 100%; }
.portfolio-list { display: grid; gap: 2.5rem; }
.project-copy h3 a { color: inherit; text-decoration: none; }
.project-external { margin-top: 1rem; display: flex; }
.case-ownership { color: var(--text-muted); font-size: .85rem; margin: 0 0 1.5rem; }
.case-preview { margin: 0 0 2rem; }
.case-preview img { width: 100%; height: auto; display: block; border: 1px solid var(--border-color); border-radius: 8px; }
.case-preview figcaption, .case-gallery figcaption { font-size: .85rem; line-height: 1.7; color: var(--text-muted); margin-top: .8rem; }
.case-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 2.5rem; padding: 2rem 0; border-bottom: 1px solid var(--border-color); margin: 0; }
.case-facts dt { color: var(--accent); font: .75rem var(--font-mono); margin-bottom: .9rem; }
.case-facts dd { font-size: 1rem; line-height: 1.9; margin: 0; }
.preserve-lines { white-space: pre-line; overflow-wrap: anywhere; }
.case-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; align-items: start; }
.case-gallery img { max-width: 100%; height: auto; border: 1px solid var(--border-color); border-radius: 8px; }
.subpage .process-list p, .subpage .faq-list details, .subpage .contact-layout p { font-size: 1rem; }
.subpage .contact-layout { gap: 4rem; }
.subpage .faq-list details { padding: 1.3rem 0; }
.legal-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; color: var(--text-muted); font-size: .85rem; }
.legal-meta p { margin: 0; }
[data-print-document][hidden] { display: none; }
.legal-layout { display: grid; grid-template-columns: minmax(190px, 1fr) minmax(0, 3fr); gap: 4rem; align-items: start; }
.legal-toc { position: sticky; top: 7rem; }
.legal-toc h2 { font-size: .9rem; margin: 0 0 1.1rem; }
.legal-toc ol { padding-left: 1.2rem; margin: 0; }
.legal-toc li { padding: 0 0 .8rem .2rem; color: var(--text-muted); font-size: .85rem; line-height: 1.6; }
.legal-toc a { color: inherit; text-underline-offset: 4px; }
.legal-toc a:hover, .legal-document a:hover { color: var(--accent); }
.legal-document { max-width: 76ch; font-size: 1rem; line-height: 1.9; overflow-wrap: anywhere; }
.legal-document section { scroll-margin-top: 7rem; padding: 0 0 1.5rem; }
.legal-document h2 { color: var(--text-primary); font-size: 1.45rem; line-height: 1.4; font-weight: 600; margin: 0 0 1.25rem; }
.legal-document h3 { font-size: 1.1rem; margin: 1.8rem 0 .8rem; }
.legal-document p, .legal-document li, .legal-document address, .legal-document td { color: var(--text-muted); }
.legal-document address { font-style: normal; }
.legal-document a { color: var(--text-primary); text-underline-offset: 4px; }
.legal-document li { padding-bottom: .6rem; }
.legal-document strong { color: var(--text-primary); font-weight: 600; }
.legal-preview-note { border-left: 2px solid var(--accent); padding: .5rem 0 .5rem 1.2rem; margin-bottom: 2.5rem; font-size: .9rem; }
.legal-withdrawal { border-left: 2px solid var(--border-color); padding-left: 1.5rem; font-size: .9rem; margin: 1.5rem 0 2rem; }
.legal-storage { width: 100%; font-size: .9rem; margin: 1.5rem 0; }
.legal-storage th, .legal-storage td { padding: 1rem .8rem; border-bottom: 1px solid var(--border-color); vertical-align: top; }
.legal-storage th { font-weight: 500; }
.legal-storage code { overflow-wrap: anywhere; }
@media (max-width: 991px) { .legal-layout { gap: 2.5rem; } }
@media (max-width: 767px) { .legal-layout { grid-template-columns: 1fr; gap: 2.5rem; padding-top: 1rem; } .legal-toc { position: static; } .legal-storage, .legal-storage caption, .legal-storage tbody, .legal-storage tr, .legal-storage td, .legal-storage th { display: block; } .legal-storage caption { width: 100%; } .legal-storage thead { display: none; } .legal-storage td { padding: 0 .5rem .8rem; border: 0; } .legal-storage tbody th { padding: .8rem .5rem; border: 0; } .legal-storage tr { border-bottom: 1px solid var(--border-color); } }
@media print {
    .navbar, .site-footer, .legal-toc, .breadcrumbs, [data-print-document] { display: none !important; }
    .subpage { padding: 0; }
    .subpage-header, .subpage-body { padding: 1rem 0; }
    .legal-layout { display: block; }
    .legal-document { max-width: none; }
    .legal-document, .legal-document p, .legal-document li, .legal-document a, .legal-document h2, .legal-document h3, .legal-document strong, .legal-document address, .legal-document td, .legal-meta, .subpage-header h1, .subpage-lead { color: #000; }
    html, body, .subpage, .subpage-header { background: #fff !important; }
    .legal-document h2, .legal-document h3 { break-after: avoid; }
    .legal-document a { text-decoration: underline; }
}
@media (max-width: 991px) { .page-split, .about-profile { gap: 2rem; grid-template-columns: 1fr 1.5fr; } .subpage .contact-layout { gap: 2rem; } .page-cta { flex-direction: column; align-items: start; } }
@media (max-width: 767px) {
    .subpage-header { padding-top: 1.5rem; padding-bottom: 2rem; }
    .subpage-lead { font-size: 1rem; }
    .subpage-body { padding-top: 1rem; }
    .service-overview, .page-split, .about-profile, .case-gallery { grid-template-columns: 1fr; gap: 2rem; }
    .page-section { padding: 2rem 0; }
    .page-split > h2 { margin-bottom: 0; }
    .breadcrumbs { margin-bottom: 2rem; }
    .case-facts { gap: 1.5rem; }
}
