/* Hallmark · route: custom (bespoke) · structure: home photograph, service masthead, repair selector
 * paper: oklch(95% .012 238) · accent: oklch(42% .13 248) · display: Plus Jakarta Sans · body: Manrope
 * axes: light / geometric-sans / blue · idea: the home is the hero and the next step is practical */
:root { color-scheme:light; --paper:oklch(95% .012 238); --panel:oklch(90% .023 238); --ink:oklch(25% .04 248); --muted:oklch(43% .035 248); --rule:oklch(77% .027 238); --accent:oklch(42% .13 248); --accent-ink:oklch(98% .007 238); --display:"Plus Jakarta Sans",sans-serif; --body:"Manrope",sans-serif; --weight:600; --page-gutter:clamp(20px,5vw,72px); }
.window-utility { display:flex; justify-content:space-between; gap:var(--space-4); align-items:center; background:var(--ink); color:var(--paper); padding:0 var(--page-gutter); font-size:.6875rem; }
.window-utility a { display:inline-flex; align-items:center; min-height:44px; }
.window-utility :focus-visible { outline-color:var(--paper); }
.window-header { display:flex; align-items:center; justify-content:space-between; gap:var(--space-6); padding:var(--space-5) var(--page-gutter); }
.window-brand { display:flex; gap:var(--space-3); align-items:center; text-decoration:none; font:700 1.75rem/1 var(--display); letter-spacing:-.06em; }
.window-brand small { display:block; margin-top:var(--space-2); font:600 .5rem/1.5 var(--body); letter-spacing:.2em; }
.window-symbol { position:relative; display:block; width:34px; height:40px; border:2px solid var(--accent); border-radius:12px 12px 0 0; }
.window-symbol::before { content:""; position:absolute; left:50%; width:2px; height:100%; background:var(--accent); }
.window-symbol::after { content:""; position:absolute; top:50%; width:100%; height:2px; background:var(--accent); }
.window-header nav { display:flex; gap:var(--space-8); margin-left:auto; }
.window-header nav a { display:inline-flex; min-height:44px; align-items:center; text-decoration:none; font-size:.75rem; }
.window-call,.window-button { display:inline-flex; gap:var(--space-8); align-items:center; min-height:48px; padding:var(--space-3) var(--space-5); border-radius:7px; background:var(--accent); color:var(--accent-ink); text-decoration:none; white-space:nowrap; font:600 .8125rem/1.5 var(--body); }
.window-hero figure { position:relative; margin:0; height:360px; overflow:hidden; }
.window-hero img { width:100%; height:100%; object-fit:cover; object-position:50% 43%; filter:saturate(.68); }
.window-hero figcaption { position:absolute; right:var(--page-gutter); bottom:var(--space-4); padding:var(--space-2) var(--space-3); background:var(--paper); color:var(--muted); font-size:.625rem; }
.window-hero-caption { display:flex; align-items:center; justify-content:space-between; gap:var(--space-8); padding:var(--space-8) var(--page-gutter) var(--space-10); background:var(--panel); }
.window-hero h1 { font:600 clamp(1.75rem,3.5vw,3rem)/1.13 var(--display); letter-spacing:-.055em; }
.window-hero-caption p { color:var(--muted); margin:var(--space-4) 0 0; font-size:.875rem; line-height:1.7; }
.repair-check { padding:var(--space-12) var(--page-gutter); }
.repair-check > header { display:flex; gap:var(--space-6); align-items:baseline; justify-content:space-between; margin-bottom:var(--space-6); }
.repair-check h2 { font-size:1.375rem; letter-spacing:-.045em; }
.repair-check header p { font-size:.75rem; color:var(--muted); }
.issue-picker { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-4); }
.issue-picker button { display:grid; grid-template-columns:minmax(0,1fr) auto; text-align:left; white-space:normal; padding:var(--space-5); border:1px solid var(--rule); border-radius:9px; color:var(--ink); background:var(--paper); }
.issue-picker button > span { font:600 .9375rem/1.4 var(--display); }
.issue-picker small { grid-column:1; font-size:.6875rem; color:var(--muted); margin-top:var(--space-2); }
.issue-picker b { grid-column:2; grid-row:1/3; align-self:center; margin-left:var(--space-2); }
.issue-picker [aria-pressed=true] { border-color:var(--accent); outline:1px solid var(--accent); outline-offset:-2px; background:var(--panel); }
.quote-details { margin:0 var(--page-gutter); display:grid; grid-template-columns:1fr 1.6fr; gap:var(--space-10); padding:var(--space-8) 0 var(--space-12); border-top:1px solid var(--rule); }
.quote-details h2 { font-size:1.375rem; }
.quote-details p { margin-top:0; font-size:.9375rem; }
.quote-details .quote-footnote { font-size:.75rem; color:var(--muted); }
.repair-process { display:grid; grid-template-columns:1fr 1.6fr; gap:var(--space-10); background:var(--panel); padding:var(--space-12) var(--page-gutter) var(--space-16); }
.repair-process h2 { font-size:clamp(1.75rem,3vw,2.25rem); max-width:15ch; }
.repair-process > div p { color:var(--muted); font-size:.875rem; max-width:32ch; }
.repair-process ol { margin:0; padding-left:var(--space-6); }
.repair-process li { padding:0 0 var(--space-5) var(--space-3); }
.repair-process h3 { font-size:1rem; }
.repair-process li p { color:var(--muted); font-size:.875rem; }
.window-kicker { font:600 .75rem/1.5 var(--body); color:var(--accent); margin:0 0 var(--space-4); }
.window-services { padding:var(--space-12) var(--page-gutter) var(--space-16); background:var(--ink); color:var(--paper); }
.window-services .window-kicker { color:var(--paper); }
.window-services h2 { font-size:clamp(1.75rem,3vw,2.5rem); }
.window-service-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-8); margin-top:var(--space-10); }
.window-service-list article { border-top:1px solid var(--rule); padding-top:var(--space-4); }
.service-index { font-size:.75rem; margin:0 0 var(--space-6); }
.window-service-list h3 { font-size:1.25rem; line-height:1.35; }
.window-service-list article > p:not(.service-index) { font-size:.875rem; line-height:1.8; margin:var(--space-5) 0 0; }
.window-service-list .service-prompt { border-top:1px solid var(--rule); padding-top:var(--space-4); }
.window-assessment { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:var(--space-16); padding:var(--space-16) var(--page-gutter); }
.window-assessment h2 { font-size:clamp(1.75rem,3vw,2.5rem); }
.window-assessment > div > p:last-child { font-size:.9375rem; line-height:1.8; color:var(--muted); margin-top:var(--space-6); }
.window-assessment ul { padding:0; margin:0; list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-8); }
.window-assessment li { border-top:1px solid var(--rule); padding-top:var(--space-5); }
.window-assessment h3 { font-size:1rem; line-height:1.5; }
.window-assessment li p { font-size:.875rem; line-height:1.8; color:var(--muted); margin-bottom:0; }
.window-questions { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:var(--space-16); padding:var(--space-12) var(--page-gutter) var(--space-16); border-top:1px solid var(--rule); }
.window-questions h2 { font-size:clamp(1.75rem,3vw,2.5rem); }
.window-questions header > a { display:inline-flex; min-height:44px; align-items:center; gap:var(--space-5); font-size:.875rem; margin-top:var(--space-5); }
.window-questions details { border-bottom:1px solid var(--rule); }
.window-questions summary { cursor:pointer; font-size:.9375rem; line-height:1.6; padding:var(--space-5) 0; }
.window-questions details p { font-size:.875rem; line-height:1.8; color:var(--muted); margin:0 0 var(--space-6); }
@media(max-width:52rem) { .window-service-list,.window-assessment,.window-questions { grid-template-columns:1fr; gap:var(--space-8); } .window-services,.window-assessment,.window-questions { padding-block:var(--space-12); } }
@media(max-width:32rem) { .window-assessment ul { grid-template-columns:1fr; gap:var(--space-6); } }
@media(max-width:52rem) { .window-header nav { display:none; } .window-hero-caption { align-items:start; flex-direction:column; gap:var(--space-6); } .repair-check > header { display:block; } .issue-picker { grid-template-columns:1fr; } .quote-details,.repair-process { grid-template-columns:1fr; gap:var(--space-6); } }
@media(max-width:32rem) { .window-utility > a { display:none; } .window-utility { min-height:36px; } .window-header { flex-wrap:wrap; gap:var(--space-4); } .window-header .window-call { font-size:.6875rem; padding:var(--space-2) var(--space-3); gap:var(--space-3); } .window-brand { font-size:1.375rem; } .window-symbol { width:26px; height:32px; } .window-hero figure { height:300px; } .window-hero-caption { padding-top:var(--space-6); } .window-hero h1 { font-size:1.875rem; } .window-hero-caption p { font-size:.8125rem; } .repair-check { padding-top:var(--space-8); } }
