/* Shared inner-page design, using the home's existing typography and palette. */
.desktop-nav { gap:22px; }
.site-header { position:relative; z-index:20; }
.services-nav { position:relative; }
.services-nav-heading { display:flex; align-items:center; }
.services-nav-toggle { display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; background:transparent; color:var(--brown); cursor:pointer; }
.services-nav-toggle svg { transition:transform 180ms; }
.services-nav-toggle[aria-expanded="true"] svg { transform:rotate(180deg); }
.services-submenu { position:absolute; top:100%; left:-20px; width:300px; margin:0; padding:12px; list-style:none; background:var(--paper); border:1px solid var(--line); box-shadow:0 12px 32px #362b201a; }
.services-submenu[hidden] { display:none; }
.desktop-nav .services-submenu a { min-height:44px; padding:10px 12px; font-size:15px; line-height:1.4; }
.desktop-nav .services-submenu a:after { display:none; }
.services-submenu a:hover,.services-submenu a[aria-current="page"] { background:#eae2d7; color:var(--brown); }
.mobile-menu .services-nav-heading>a { flex:1; }
.mobile-menu .services-submenu { position:static; width:100%; box-shadow:none; border:0; border-left:1px solid var(--line); padding:4px 0 4px 14px; }
.mobile-menu .services-submenu a { font-size:15px; line-height:1.4; padding:8px; }
@media(prefers-reduced-motion:reduce) { .services-nav-toggle svg { transition:none; } }
.desktop-nav a,.header-phone { flex-shrink:0; }
.footer-pages { display:flex; flex-wrap:wrap; gap:12px 28px; padding:18px 0 24px; border-top:1px solid var(--line); font-size:15px; }
.footer-pages a:hover,.inner-page a:not(.button):hover,.service-copy h3 a:hover { color:var(--brown); }
.mobile-menu a[aria-current="page"] { color:var(--brown); }
.home-services-more { padding-bottom:30px; }
.inner-header { border-bottom:1px solid var(--line); background:var(--paper) url('assets/paper.webp') repeat; }
.inner-header .site-header { height:124px; align-items:center; padding-top:0; }
.inner-header .brand,.inner-header .desktop-nav,.inner-header .header-phone,.inner-header .menu-toggle { margin-top:0; }
.inner-page { font-size:16px; line-height:1.6; }
.inner-page h2 { font-size:36px; line-height:1.2; }
.inner-page h3 { font-size:24px; line-height:1.25; }
.inner-page .eyebrow { margin-bottom:12px; }
.inner-page .text-link { display:inline-flex; align-items:center; gap:16px; min-height:44px; border-bottom:1px solid #b49776; font-size:15px; padding-bottom:4px; }
.inner-page .text-link:hover .arrow { transform:translateX(3px); }
.inner-page .arrow { transition:transform 180ms ease; flex-shrink:0; }
.page-hero { padding:24px 0 66px; background:var(--paper) url('assets/paper.webp') repeat; }
.breadcrumb { display:flex; flex-wrap:wrap; gap:12px; font-size:15px; line-height:1.5; color:var(--body); padding-bottom:34px; }
.breadcrumb a { border-bottom:1px solid var(--line); }
.breadcrumb [aria-current] { color:var(--brown); }
.page-hero-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:64px; }
.page-hero-copy { padding:24px 0; }
.page-hero h1 { font-size:clamp(42px,4.6vw,64px); line-height:1.04; letter-spacing:-1.8px; text-wrap:balance; }
.page-lead { max-width:510px; font-size:17px; line-height:1.65; margin-top:24px; color:var(--body); }
.page-hero .text-link { margin-top:24px; }
.page-hero-grid.text-only { grid-template-columns:1fr; max-width:900px; }
.text-only .page-lead { max-width:620px; }
.editorial-photo { min-width:0; position:relative; }
.editorial-photo>img { width:100%; height:auto; aspect-ratio:1.23; object-fit:cover; }
.editorial-photo figcaption { font-size:15px; line-height:1.5; color:var(--body); margin-top:10px; }
.editorial-section { padding:80px 0; }
.section-heading { margin-bottom:38px; max-width:760px; }
.section-heading>p:last-child:not(.eyebrow) { margin-top:16px; color:var(--body); }
.sand-section { background:#eee8df url('assets/paper.webp') repeat; }
.editorial-grid { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:center; }
.prose>p:not(.eyebrow) { margin-top:22px; line-height:1.75; color:var(--body); }
.prose>h3 { margin-top:32px; }
.prose>.text-link { margin-top:22px; }
.story-art { position:relative; padding-right:38px; padding-bottom:55px; }
.story-art .editorial-photo>img { aspect-ratio:1; }
.story-badge { position:absolute; right:0; bottom:0; width:200px; height:auto; background:var(--paper); padding:22px; box-sizing:content-box; }
.facts-strip { background:#eae2d6; border-block:1px solid #ded3c4; padding:36px 0; }
.fact-grid { display:grid; grid-template-columns:repeat(3,1fr); }
.fact-grid>div { padding:0 32px; border-right:1px solid #cbbca8; }
.fact-grid>div:first-child { padding-left:0; }
.fact-grid>div:last-child { border:0; }
.fact-grid strong { display:block; font:48px/1.1 var(--serif); color:var(--brown); }
.fact-grid strong span { font-size:26px; }
.fact-grid p { margin-top:10px; font-size:16px; }
.principle-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:48px; }
.chapter-number { font:36px var(--serif); color:#9b7955; display:block; border-bottom:1px solid #d7cbbb; padding-bottom:16px; margin-bottom:24px; }
.principle-grid p { margin-top:16px; color:var(--body); }
.inner-cta { padding:58px 0; background:#e5d9c8 url('assets/paper.webp') repeat; }
.inner-cta>.content { display:flex; align-items:center; justify-content:space-between; gap:40px; }
.inner-cta h2 { margin-bottom:14px; }
.inner-cta .button { flex-shrink:0; }
.catalog-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.catalog-card { display:flex; flex-direction:column; align-items:flex-start; padding:30px 24px 24px; border:1px solid #ded5c9; background:#faf7f1; min-width:0; transition:background 180ms,border-color 180ms; }
.catalog-card:hover { background:#f1ebe2; border-color:#a88b67; }
.catalog-card>img { width:144px; height:87px; object-fit:contain; margin-bottom:22px; }
.catalog-card h3 { margin-bottom:14px; }
.catalog-card p { color:var(--body); font-size:16px; line-height:1.6; margin-bottom:28px; }
.catalog-link { display:flex; gap:12px; align-items:center; margin-top:auto; font-size:15px; color:var(--brown); }
.catalog-card:hover .arrow { transform:translateX(3px); }
.detail-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); align-items:start; gap:90px; }
.project-details { padding:0; list-style:none; margin:20px 0 0; }
.project-details li { padding:15px 0 15px 25px; border-bottom:1px solid var(--line); position:relative; }
.project-details li:before { content:""; position:absolute; left:0; top:27px; width:9px; height:1px; background:var(--brown); }
.project-note { padding:38px; background:#eee7dc url('assets/paper.webp') repeat; border-top:2px solid #ae8c66; }
.project-note>p { margin:20px 0; }
.project-note .note-phone { font-size:23px; line-height:1.4; white-space:nowrap; }
.project-note .button { width:100%; }
.service-art-panel { min-height:350px; position:relative; display:flex; flex-direction:column; justify-content:center; align-items:center; padding:42px; border:1px solid #dfd5c8; background:var(--paper); text-align:center; }
.service-art-panel:before { content:""; position:absolute; inset:0; background:url('assets/blueprint.webp') right top/90% auto no-repeat; mask-image:linear-gradient(to bottom,#000,transparent 65%); opacity:.5; pointer-events:none; }
.service-art-panel>* { position:relative; }
.service-art-panel img { width:190px; height:115px; object-fit:contain; margin:20px 0; }
.service-art-panel p { font:26px/1.25 var(--serif); max-width:330px; }
.art-index { align-self:flex-start; font:40px var(--serif); color:#a78a68; }
.art-location { margin-top:22px; color:var(--brown); font-size:15px; }
.faq-layout { display:grid; grid-template-columns:1fr 1.5fr; gap:80px; }
.faq-list details { border-bottom:1px solid #d5c8b6; }
.faq-list summary { font:22px/1.35 var(--serif); cursor:pointer; padding:22px 35px 22px 0; position:relative; list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary:after { content:"+"; position:absolute; right:3px; top:20px; font:26px var(--sans); color:var(--brown); }
.faq-list details[open] summary:after { content:"−"; }
.faq-list p { padding:0 24px 24px 0; color:var(--body); }
.faq-list p a { text-decoration:underline; }
.related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:900px; }
.back-services { margin-top:28px; }
.contact-section { padding:0 0 80px; }
.contact-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); gap:90px; align-items:start; }
.contact-info { padding-top:25px; }
.contact-info dl { margin:28px 0; }
.contact-info dl>div { padding:19px 0; border-bottom:1px solid var(--line); }
.contact-info dt { font-size:15px; color:var(--brown); margin-bottom:5px; }
.contact-info dd { margin:0; font-size:18px; overflow-wrap:anywhere; }
.contact-info dd a:hover { text-decoration:underline; }
.inquiry-panel { padding:40px; background:#eee7dd; border-top:2px solid #ab8962; }
.inquiry-panel>p:not(.eyebrow) { margin-top:16px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:28px; }
.form-grid label { display:flex; flex-direction:column; font-size:15px; gap:8px; }
.form-grid label>span { display:contents; }
.full-field { grid-column:1/-1; }
.form-grid input,.form-grid select,.form-grid textarea { width:100%; min-width:0; min-height:48px; background:#fcfaf6; border:1px solid #b9aa96; border-radius:0; padding:12px; color:var(--ink); font:16px/1.4 var(--sans); }
.form-grid textarea { resize:vertical; }
.form-grid input:user-invalid,.form-grid textarea:user-invalid,.form-grid select:user-invalid { border-color:#a3442c; }
.form-actions { display:flex; align-items:center; flex-wrap:wrap; gap:18px 24px; margin-top:26px; }
.form-actions .text-link { background:none; border:0; border-bottom:1px solid #b49776; padding-inline:0; }
.form-status { min-height:24px; font-size:15px; margin-top:18px; }
.form-footnote { font-size:15px; line-height:1.6; }
.form-footnote a { text-decoration:underline; }
.reviews-section { padding:80px 0 80px; }
.sample-notice { padding:22px 28px; border-left:2px solid var(--brown); background:#ece3d5; margin-bottom:35px; }
.sample-notice .eyebrow { margin-bottom:4px; }
.review-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.review-card { padding:30px; border:1px solid #e0d7cb; background:#fbf8f2; }
.quote-mark { font:74px/.8 var(--serif); color:#ac8c65; display:block; margin:12px 0 24px; }
.review-card .eyebrow { font-size:15px; text-transform:none; letter-spacing:0; }
.review-card h2 { font-size:28px; line-height:1.2; letter-spacing:-.5px; }
.review-card .service-perspective { margin-top:24px; color:var(--body); font-size:16px; line-height:1.75; }
.review-card blockquote { margin:24px 0; color:var(--body); line-height:1.75; }
.review-category { font-size:15px; color:var(--brown); border-top:1px solid var(--line); padding-top:18px; }
.feedback-layout { display:grid; grid-template-columns:1.5fr 1fr; align-items:center; gap:80px; }
.feedback-layout p:not(.eyebrow) { margin-top:20px; max-width:550px; }
.feedback-actions { display:flex; flex-direction:column; align-items:flex-start; gap:20px; }
input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:2px solid #71502d; outline-offset:4px; }
@media(min-width:2001px) { .page-hero { padding-bottom:90px; } .editorial-section { padding-block:100px; } }
@media(max-width:1100px) {
 .desktop-nav { gap:17px; }
 .site-header { gap:22px; }
 .page-hero-grid,.editorial-grid,.detail-grid,.contact-grid { gap:40px; }
 .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .review-grid { gap:18px; }
 .review-card { padding:24px; }
 .inquiry-panel { padding:28px; }
}
@media(max-width:899px) {
 .inner-header .site-header { height:110px; }
 .page-hero-grid,.editorial-grid,.detail-grid,.contact-grid,.faq-layout,.feedback-layout { grid-template-columns:1fr; gap:38px; }
 .page-hero-copy { padding:0; }
 .page-hero .editorial-photo>img { aspect-ratio:1.8; }
 .page-hero { padding-bottom:45px; }
 .editorial-section { padding:55px 0; }
 .principle-grid { gap:24px; }
 .review-grid { grid-template-columns:1fr; }
 .review-card { padding:32px; }
 .story-art { max-width:600px; }
 .inner-cta>.content { align-items:flex-start; flex-direction:column; gap:25px; }
 .contact-info { padding-top:0; }
 .contact-info dl { display:grid; grid-template-columns:1fr 1fr; gap:0 30px; }
 .service-art-panel { min-height:300px; }
 .fact-grid strong { font-size:38px; }
 .fact-grid>div { padding-inline:22px; }
}
@media(max-width:599px) {
 .inner-header .site-header { height:100px; padding-inline:20px; }
 .inner-page h2 { font-size:32px; }
 .inner-page h3 { font-size:24px; }
 .page-hero { padding-top:20px; }
 .breadcrumb { padding-bottom:25px; gap:8px; }
 .page-hero h1 { font-size:42px; letter-spacing:-1.1px; }
 .page-lead { font-size:16px; margin-top:20px; }
 .page-hero .editorial-photo>img { aspect-ratio:1.3; }
 .editorial-section { padding:44px 0; }
 .catalog-grid,.principle-grid,.fact-grid,.contact-info dl { grid-template-columns:1fr; }
 .catalog-card { padding:26px; }
 .fact-grid>div,.fact-grid>div:first-child { padding:22px 0; border-right:0; border-bottom:1px solid #cbbca8; }
 .facts-strip { padding-block:10px; }
 .fact-grid strong { font-size:44px; }
 .story-art { padding-right:20px; padding-bottom:60px; }
 .story-badge { width:150px; padding:16px; }
 .inner-cta { padding-block:38px; }
 .inquiry-panel { padding:24px 20px; }
 .form-grid { grid-template-columns:1fr; }
 .project-note { padding:28px; }
 .contact-section,.reviews-section { padding-bottom:45px; }
 .review-card { padding:25px; }
 .review-card h2 { font-size:28px; }
 .feedback-actions .button { font-size:15px; padding-inline:16px; }
 .footer-pages { gap:14px 24px; }
 .service-art-panel { padding:28px; }
}
@media(prefers-reduced-motion:reduce) { .inner-page .arrow,.catalog-card { transition:none; } }
