/* Styles loaded only by the homepage and contact page. */
:is(.home-page,.contact-page) main .prose p { max-width:none; }
:is(.home-page,.contact-page) main :is(h1,h2,h3) { text-align:center; text-wrap:balance; }
:is(.home-page,.contact-page) main h2 { font-size:26px; line-height:1.35; letter-spacing:-.65px; }
:is(.home-page,.contact-page) main h3 { font-size:18px; line-height:1.4; letter-spacing:-.25px; }
:is(.home-page,.contact-page) main p { hyphens:auto; overflow-wrap:break-word; }
:is(.home-page,.contact-page) .contact-options { display:flex; flex-direction:column; align-items:center; gap:var(--space-control); }
:is(.home-page,.contact-page) .contact-options .btn { margin-top:0; }
:is(.home-page,.contact-page) .contact-band .eyebrow { text-align:center; }
:is(.home-page,.contact-page) .contact-band p { margin-inline:auto; max-width:none; }
.home-page .hero-grid { min-height:430px; padding-block:var(--space-block); gap:var(--space-grid); }
.home-page .hero-copy { display:flex; flex-direction:column; justify-content:center; align-self:stretch; min-width:0; padding:20px 24px; }
.home-page .hero h1 { width:100%; max-width:none; font-size:36px; line-height:1.2; letter-spacing:-.8px; margin:0 0 20px; }
.home-page .hero-intro { max-width:none; margin-inline:auto; font-size:16px; }
.home-page .hero-copy .eyebrow { width:100%; text-align:center; margin:0 0 16px; }
.home-page .hero-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; width:100%; margin:24px 0 16px; }
.home-page .hero-actions .btn { width:100%; min-width:0; max-width:none; height:100%; padding:13px 12px; }
.home-page .hero-meta { display:block; width:100%; margin:0; text-align:center; font-size:12px; }
.home-page .hero-figure { min-height:350px; }
.home-page .hero-figure figcaption { padding:14px 16px; }
.home-shortcuts { border-bottom:1px solid var(--line); background:#fff; }
.home-shortcuts .container { display:flex; flex-wrap:wrap; justify-content:center; gap:8px 32px; padding-block:10px; }
.home-shortcuts a { display:inline-flex; align-items:center; min-height:44px; font-size:14px; text-decoration:underline; text-underline-offset:4px; }
.home-shortcuts a:hover { color:var(--orange-dark); }
.home-page .section { padding-block:var(--space-section); }
.home-page .source-copy { margin-bottom:24px; }
.home-page .source-services { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 32px; width:100%; max-width:none; margin:0 auto var(--space-block); padding:18px 24px; background:var(--pale); border-left:3px solid var(--orange); }
.home-page .source-services p { margin:0; padding:8px 0; font-size:15px; text-align:left; border-bottom:1px solid var(--line); }
.home-page .source-description { width:100%; max-width:none; margin:auto; }
.home-page .source-description h2 { margin:28px 0 18px; }
.home-page .source-description h3 { margin:24px 0 0; }
.home-page .source-description p { max-width:none; }
.home-page .supplemental-copy { padding-top:24px; }
.home-page .home-intro { grid-template-columns:minmax(0,1fr) 260px; gap:var(--space-grid); align-items:center; }
.home-page .home-intro figure { margin:0 auto; max-width:260px; }
.home-page .home-intro figcaption { text-align:center; }
.home-page .home-content .home-block { margin-top:var(--space-block); padding-top:var(--space-panel); }
.home-page .home-content .home-block>.eyebrow { text-align:center; }
.home-page .home-services { column-gap:var(--space-grid); row-gap:12px; }
.home-page .home-services>div { display:flex; flex-direction:column; align-items:center; padding:14px 0 24px; }
.home-page .home-services p { max-width:none; }
.home-page .home-services .text-link { margin-top:auto; }
.home-page .home-planning { gap:var(--space-grid); grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); }
.home-page .home-planning .eyebrow { text-align:center; }
.home-page .home-note { padding:24px; }
.home-page .home-steps { gap:24px; }
.home-page .home-steps li:before { text-align:center; font-size:20px; }
.home-page .home-steps h3 { font-size:17px; }
.home-page .home-guide { display:block; }
.home-page .home-guide>div:first-child { width:100%; max-width:none; margin-inline:auto; }
.home-page .home-guide p { max-width:none; }
.home-page .home-gallery { display:flex; justify-content:center; align-items:center; gap:var(--space-image); margin:var(--space-block) auto 0; width:100%; max-width:none; }
.home-page .home-gallery img,.home-page .home-gallery img:first-child { width:calc((100% - 2 * var(--space-image))/3); max-width:300px; height:auto; aspect-ratio:4/3; object-fit:contain; background:var(--pale); }
.home-page .home-questions { width:100%; max-width:none; margin-inline:auto; }
.home-page .home-questions summary { min-height:44px; align-content:center; padding:6px 0; }
.home-page .home-questions p { max-width:none; }
.contact-page .page-hero-grid { display:block; padding:var(--space-block) 0; width:100%; max-width:none; margin:auto; }
.contact-page .page-hero h1 { font-size:30px; line-height:1.3; letter-spacing:-.7px; }
.contact-page .page-hero p { margin-inline:auto; max-width:none; }
.contact-page .contact-main { padding:var(--space-section) 0; }
.contact-page .source-copy { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 32px; align-items:center; width:100%; max-width:none; margin:0 auto 20px; padding:var(--space-panel); border:1px solid var(--line); border-top:3px solid var(--orange); border-radius:7px; }
.contact-page .source-copy h2,.contact-page .source-copy>p:not([class]) { grid-column:1/-1; text-align:center; max-width:none; margin:0; }
.contact-page .source-copy p { margin:0; text-align:center; hyphens:none; }
.contact-page .source-copy .contact-source-phone a { display:inline-flex; align-items:center; min-height:44px; font:750 clamp(25px,3vw,32px)/1.4 Manrope,Arial,sans-serif; color:var(--navy); text-decoration:none; }
.contact-page .source-copy .contact-source-email a { display:inline-flex; align-items:center; min-height:44px; max-width:100%; overflow-wrap:anywhere; font-size:15px; }
.contact-page .supplemental-copy { border:0; padding:0; }
.contact-page .contact-availability { text-align:center; max-width:none; margin-bottom:24px; font-size:14px; }
.contact-request { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:var(--space-grid); align-items:stretch; width:100%; max-width:none; }
.contact-request>*,.contact-pricing>* { min-width:0; }
.contact-request .quote-card { width:100%; max-width:none; margin:0; padding:var(--space-panel); }
.contact-request .quote-card h2 { margin:0; font-size:25px; }
.contact-request .quote-card>p { margin:16px 0 24px; font-size:15px; }
.contact-page .quote-fields { gap:16px; }
.contact-page .quote-fields label { font-weight:400; font-size:14px; }
.contact-page .quote-fields :is(input,textarea) { min-height:46px; line-height:1.5; }
.contact-page .quote-fields textarea { min-height:150px; }
.field-help { font-size:13px; line-height:1.6; color:var(--muted); }
.contact-page .quote-card .quote-note { margin:20px 0; font-size:13px; line-height:1.7; }
.quote-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; }
.quote-actions .btn { flex:1 1 190px; }
.contact-page #quote-status { font-size:14px; margin:16px 0 0; }
.contact-page #quote-status:empty { display:none; }
.quote-draft:not([hidden]) { display:grid; gap:var(--space-control); margin-top:20px; }
.quote-draft label { font-size:14px; }
.quote-draft textarea { width:100%; min-width:0; padding:12px; border:1px solid #8a9ba5; border-radius:5px; font:400 16px/1.6 'DM Sans',Arial,sans-serif; color:var(--ink); background:white; resize:vertical; }
.quote-draft textarea:focus-visible { outline:3px solid #b85413; outline-offset:2px; }
.contact-page .quote-draft p { font-size:13px; margin:0; }
.contact-page .quote-help { display:flex; flex-direction:column; width:100%; margin:0; padding:var(--space-panel); border:1px solid var(--line); border-radius:8px; background:#fff; }
.contact-page .quote-help h2 { font-size:25px; margin:0 0 24px; }
.quote-help ol { list-style:none; padding:0; margin:0; counter-reset:help-step; }
.quote-help li { counter-increment:help-step; position:relative; padding:0 0 16px 44px; margin-bottom:16px; border-bottom:1px solid var(--line); }
.quote-help li:before { content:'0' counter(help-step); position:absolute; left:0; top:0; font:600 16px/1.6 Manrope,Arial,sans-serif; color:var(--orange-dark); }
.contact-page .quote-help h3 { font-size:17px; text-align:left; margin:0 0 10px; }
.contact-page .quote-help p { font-size:15px; line-height:1.75; margin:0; }
.contact-page .quote-help .quote-help-note { font-size:14px; }
.contact-pricing { width:100%; max-width:none; margin:var(--space-block) auto 0; }
.contact-pricing section { border-top:1px solid var(--line); padding-top:24px; margin-top:24px; }
.contact-page .contact-pricing h2 { margin:0 0 18px; }
.contact-pricing p { max-width:none; }
.contact-example blockquote { margin:0 0 18px; border-left:3px solid var(--orange); padding:16px 20px; background:var(--pale); font-size:16px; text-align:justify; hyphens:auto; }
/* Dedicated contact portrait: preserve the transparent asset's natural proportions. */
.contact-page .quote-help .quote-photo { display:flex; flex:1 0 auto; align-items:flex-end; justify-content:center; width:100%; max-width:none; margin:0; padding:28px 0 0; background:transparent; border:0; border-radius:0; }
.contact-page .quote-photo img { display:block; flex:0 1 280px; width:280px; min-width:0; max-width:100%; height:auto; aspect-ratio:304/279; object-fit:contain; object-position:center bottom; margin:0; border:0; border-radius:0; background:transparent; }
.contact-page .nav [aria-current="page"] { text-decoration:underline; text-underline-offset:6px; }
@media(max-width:1000px) {
 .home-page .hero-grid { gap:var(--space-grid); }
 .home-page .hero h1 { font-size:34px; }
 .home-page .home-intro { grid-template-columns:minmax(0,1fr) 220px; gap:var(--space-grid); }
 .home-page .home-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .contact-request { grid-template-columns:1fr; gap:24px; margin:auto; }
 .contact-page .quote-help { padding:var(--space-panel); }
 .quote-help ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-grid); }
 .quote-help li { padding:0 0 18px; }
 .quote-help li:before { position:static; display:block; margin-bottom:10px; text-align:center; }
 .contact-page .quote-help h3 { text-align:center; }
}
@media(max-width:680px) {
 :is(.home-page,.contact-page) main h2 { font-size:23px; }
 .home-page .hero-grid { min-height:0; padding-block:var(--space-block); gap:24px; }
 .home-page .hero h1 { font-size:30px; max-width:none; }
 .home-page .hero-figure { min-height:0; aspect-ratio:4/3; max-height:400px; }
 .home-page .hero-copy { padding:0; }
 .home-page .hero-actions { grid-template-columns:1fr; gap:var(--space-control); }
 .home-page .hero-actions .btn { width:100%; max-width:none; }
 .home-shortcuts .container { gap:0 16px; }
 .home-shortcuts a { font-size:13px; }
 .home-page .section { padding-block:var(--space-section); }
 .home-page .source-services { grid-template-columns:1fr; gap:0; padding:12px 18px; margin-bottom:28px; }
 .home-page .source-services p { font-size:14px; }
 .home-page .home-intro,.home-page .home-services,.home-page .home-planning { grid-template-columns:1fr; gap:var(--space-grid); }
 .home-page .home-intro figure { width:100%; max-width:260px; }
 .home-page .home-content .home-block { margin-top:var(--space-block); padding-top:var(--space-panel); }
 .home-page .home-note { padding:var(--space-panel); }
 .home-page .home-steps { grid-template-columns:1fr; gap:var(--space-grid); }
 .home-page .home-steps p { font-size:15px; }
 .home-page .home-gallery { gap:12px; justify-content:flex-start; overflow-x:auto; padding-bottom:12px; scroll-snap-type:x proximity; }
 .home-page .home-gallery img,.home-page .home-gallery img:first-child { flex:0 0 min(240px,82%); width:min(240px,82%); border-radius:7px; scroll-snap-align:start; }
 .contact-page .page-hero-grid { padding:var(--space-block) 0; }
 .contact-page .page-hero h1 { font-size:26px; }
 .contact-page .contact-main { padding-top:var(--space-section); }
 .contact-page .source-copy { grid-template-columns:1fr; padding:var(--space-panel); gap:12px; }
 .contact-page .source-copy .contact-source-email a { font-size:14px; }
 .contact-page .contact-availability { font-size:13px; margin-bottom:24px; }
 .contact-request .quote-card,.contact-page .quote-help { padding:var(--space-panel); }
 .contact-request .quote-card h2,.contact-page .quote-help h2 { font-size:23px; }
 .contact-page .quote-fields { grid-template-columns:1fr; }
 .contact-page .quote-fields input[type="date"] { appearance:none; min-width:0; max-width:100%; }
 .quote-help ol { grid-template-columns:1fr; gap:0; }
 .quote-help li { padding:0 0 18px; margin:0 0 18px; }
 .contact-pricing { margin-top:var(--space-block); }
 .contact-example blockquote { padding:14px 16px; font-size:15px; }
}

/* Price explanation, 21.10.2026: no fixed widths or invented rates. */
.contact-page .page-hero .hero-actions{justify-content:center}
.price-factors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 32px;margin:24px 0}
.price-factors>div{min-width:0;border-top:1px solid var(--line);padding-top:16px}
.price-factors dt{font:600 17px/1.5 Manrope,Arial,sans-serif;color:var(--navy);margin-bottom:10px}
.price-factors dd{margin:0;font-size:16px;color:var(--muted);text-align:justify;text-align-last:left;hyphens:auto;overflow-wrap:break-word}
@media(max-width:680px){.price-factors{grid-template-columns:1fr;gap:20px}.price-factors dt{text-align:center}.price-factors dd{font-size:15px}.contact-page .page-hero .hero-actions .btn{width:100%}}
