/* GENERATED by tools/build.py from tools/src — edit the sources, not this file. */
.spec-list{border-top:2px solid var(--ink)}.spec-row{display:grid;gap:4px 32px;padding:20px 0;border-bottom:1px solid var(--line-strong)}.spec-row h3{font:700 1.5rem/1.1 var(--display);text-transform:uppercase;letter-spacing:.02em}@media (min-width:768px){.spec-row{grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:baseline}}.spec-note{margin-top:24px;padding:16px 20px;border-left:4px solid var(--stamp);background:var(--kraft)}.steps-strip{display:grid;gap:0;counter-reset:step;border:2px solid var(--ink);background:var(--paper)}.steps-strip li{position:relative;padding:20px;border-bottom:1px solid var(--line-strong)}.steps-strip li:last-child{border-bottom:0}.steps-strip .step-num{display:block;font:700 2.5rem/1 var(--display);color:var(--accent)}.steps-strip h3{margin-top:8px}.steps-strip p{margin-top:8px;font-size:.875rem;color:var(--ink-2)}@media (min-width:1024px){.steps-strip{grid-template-columns:repeat(5,minmax(0,1fr))}.steps-strip li{border-bottom:0;border-right:1px solid var(--line-strong)}.steps-strip li:last-child{border-right:0}}.section-foot{margin-top:24px}.map-figure{border:1px solid var(--line-strong);background:var(--paper);padding:16px}.map-figure svg{width:100%;height:auto;max-width:340px;margin:0 auto}.map-figure figcaption{margin-top:12px;font-size:.875rem;color:var(--ink-2);text-align:center}.in-state{fill:var(--kraft);stroke:var(--ink);stroke-width:2;stroke-linejoin:round}.in-dot{fill:var(--ink)}.in-home{fill:var(--spot);stroke:var(--ink);stroke-width:2}.in-label{font:600 11px/1 var(--sans);fill:var(--ink)}.in-label-home{font:700 15px/1 var(--display);text-transform:uppercase;letter-spacing:.04em}.in-route{stroke:var(--ink-2);stroke-width:1;stroke-dasharray:3 4;fill:none}.city-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin-top:24px;border-top:1px solid var(--line-strong)}.city-links a{display:flex;justify-content:space-between;align-items:center;min-height:48px;border-bottom:1px solid var(--line-strong);color:var(--ink);text-decoration:none}.city-links a:hover{color:var(--accent)}.city-links a::after{content:"→";color:var(--accent)}.faq-list{border-top:2px solid var(--ink)}.faq-item{border-bottom:1px solid var(--line-strong)}.faq-item h3{font-size:1.125rem}.faq-q{display:flex;width:100%;justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:16px 0;background:none;border:0;color:var(--ink);font:600 1.125rem/1.35 var(--sans);text-align:left;cursor:pointer}.faq-q::after{content:"+";flex:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:2px solid var(--ink);border-radius:var(--r);font:600 1.25rem/1 var(--mono)}.faq-item.open .faq-q::after{content:"−";background:var(--ink);color:var(--paper)}.faq-a{display:none;padding:0 0 20px}.faq-a>* + *{margin-top:12px}.faq-item.open .faq-a{display:block}.faq-group + .faq-group{margin-top:56px}.faq-group>h2{margin-bottom:16px}.cta-band{background:var(--ink);color:var(--paper);padding:64px 0}.cta-band h2{max-width:8.8em}.cta-band p{margin-top:16px;font-size:1.125rem;max-width:56ch}.cta-band .btn-row{margin-top:32px}.cta-band .btn-outline{border-color:var(--paper);color:var(--paper)}.cta-band .btn-outline:hover{background:var(--paper);color:var(--ink)}.cta-band a:not(.btn){color:var(--paper)}.cta-band:focus-visible{outline-color:var(--paper)}.table-wrap{overflow-x:auto;border:1px solid var(--line-strong);background:var(--paper)}.spec-table{width:100%;border-collapse:collapse;font-size:1rem}.spec-table th,.spec-table td{padding:14px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.spec-table thead th{background:var(--kraft);font-family:var(--mono);font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;border-bottom:2px solid var(--ink)}.spec-table tbody th{font-weight:600}.spec-table tr:last-child td,.spec-table tr:last-child th{border-bottom:0}.checklist{counter-reset:item;border-top:2px solid var(--ink)}.checklist li{display:grid;grid-template-columns:40px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid var(--line-strong);counter-increment:item}.checklist li::before{content:counter(item,decimal-leading-zero);font:600 .875rem/1.8 var(--mono);color:var(--accent)}.checklist strong{font-weight:600}.panel{background:var(--kraft);border:1px solid var(--line-strong);padding:24px}.panel>* + *{margin-top:12px}.panel h2,.panel h3{margin-top:0}.panel-ink{background:var(--ink);color:var(--paper);border-color:var(--ink)}.panel-ink a{color:var(--paper)}.panel-ink:focus-visible{outline-color:var(--paper)}.info-list{display:grid;gap:0;border-top:2px solid var(--ink)}.info-list>div{display:grid;grid-template-columns:96px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line-strong)}.info-list dt{font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);line-height:2}.info-list dd a{font-weight:600}.map-container{position:relative;aspect-ratio:16 / 9;border:1px solid var(--line-strong);background:var(--kraft);overflow:hidden}.map-container iframe{width:100%;height:100%;border:0;display:block}.map-facade{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center}.map-facade p{font-family:var(--mono);font-size:.875rem}@media (max-width:767.98px){.map-container{aspect-ratio:4 / 3}}.link-list{border-top:1px solid var(--line-strong)}.link-list a{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:52px;padding:8px 0;border-bottom:1px solid var(--line-strong);color:var(--ink);text-decoration:none;font-weight:600}.link-list a::after{content:"→";color:var(--accent)}.link-list a:hover{color:var(--accent)}.link-list span{font-weight:400;color:var(--ink-2);font-size:.875rem}.site-footer{background:var(--ink);color:var(--paper);padding:56px 0 24px;font-size:.875rem}.site-footer a{color:var(--paper);text-decoration:underline;text-underline-offset:3px}.site-footer a:hover{color:#fff}.site-footer:focus-visible{outline-color:var(--paper)}.footer-grid{display:grid;gap:40px}@media (min-width:768px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr 1fr}}.footer-brand .logo-text{font-size:2rem}.footer-brand address a{display:inline-block;padding:6px 0}.footer-brand p,.footer-brand address{margin-top:12px;font-style:normal;line-height:1.6}.site-footer h3{font:700 1.125rem/1.2 var(--display);text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px}.site-footer ul{list-style:none}.footer-h-gap{margin-top:24px}.site-footer ul li a{display:inline-block;padding:6px 0}.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin-top:48px;padding-top:20px;border-top:1px solid rgba(244,239,228,.24);font-size:.75rem;line-height:1.6}.footer-bottom p{max-width:none}.site-footer .ph{color:var(--ink)}.fade-in{opacity:0;transform:translateY(16px);transition:opacity .3s ease-out,transform .3s ease-out}.fade-in.visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.fade-in{transform:none;transition:opacity .15s linear}}.visually-hidden{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.form-layout{display:grid;gap:40px;padding-top:40px;padding-bottom:64px}@media (min-width:1024px){.form-layout{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:56px;align-items:start}.form-aside{position:sticky;top:104px}}.quote-form fieldset{border:0;border-top:2px solid var(--ink);padding:24px 0 8px}.quote-form fieldset + fieldset{margin-top:24px}.quote-form legend{float:left;width:100%;padding:0;margin-bottom:16px;font:700 1.5rem/1.1 var(--display);text-transform:uppercase;letter-spacing:.02em}.quote-form legend + *{clear:both}.legend-num{font-family:var(--mono);font-size:.875rem;font-weight:600;color:var(--accent);margin-right:8px;vertical-align:middle}.form-row{display:grid;gap:0 20px}@media (min-width:640px){.form-row{grid-template-columns:1fr 1fr}}.form-group{margin-bottom:20px}.form-group label,.group-label{display:block;margin-bottom:6px;font-weight:600}.req{color:var(--stamp)}.opt{font-weight:400;color:var(--ink-2);font-size:.875rem}.form-group input[type="text"],.form-group input[type="email"],.form-group input[type="tel"],.form-group input[type="number"],.form-group input[type="date"],.form-group select,.form-group textarea{display:block;width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--line-strong);border-bottom:2px solid var(--ink);border-radius:var(--r) var(--r) 0 0;background:#FBF8F2;color:var(--ink);font:400 1rem/1.4 var(--sans)}.form-group textarea{min-height:120px;resize:vertical}.form-group select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%231C1B19' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px}.form-group input:focus-visible,.form-group select:focus-visible,.form-group textarea:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.help{margin-top:6px;font-size:.875rem;color:var(--ink-2)}.field-error{display:none;margin-top:6px;font-size:.875rem;font-weight:600;color:var(--stamp)}.is-invalid .field-error{display:block}.is-invalid .help{display:none}.is-invalid input,.is-invalid select,.is-invalid textarea{border-color:var(--stamp);border-bottom-color:var(--stamp)}.choice-grid{display:flex;flex-wrap:wrap;gap:8px}.choice{position:relative}.choice input{position:absolute;opacity:0;width:1px;height:1px}.choice label{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:10px 16px;border:1px solid var(--line-strong);border-radius:var(--r);background:#FBF8F2;cursor:pointer;font-weight:400;margin:0}.choice label::before{content:"";width:18px;height:18px;border:2px solid var(--ink);border-radius:2px;background:#FBF8F2;flex:none}.choice input:checked + label{border-color:var(--ink);background:var(--kraft);font-weight:600}.choice input:checked + label::before{background:var(--ink);box-shadow:inset 0 0 0 3px #FBF8F2}.choice input:focus-visible + label{outline:3px solid var(--accent);outline-offset:2px}.size-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}@media (min-width:640px){.size-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}.size-grid .form-group{margin-bottom:0}.size-grid label{font-family:var(--mono);font-size:.875rem}.size-grid input{text-align:center}.size-total{margin-top:12px;font-family:var(--mono);font-size:.875rem}.notice{margin-top:12px;padding:14px 16px;border-left:4px solid var(--stamp);background:var(--kraft)}.notice[hidden]{display:none}.file-input{display:block;width:100%;min-height:48px;padding:10px;border:2px dashed var(--line-strong);border-radius:var(--r);background:#FBF8F2;font:400 1rem/1.4 var(--sans)}.form-status{margin-bottom:16px;padding:14px 16px;border-left:4px solid var(--ink);background:var(--kraft)}.form-status[hidden]{display:none}.form-status.is-error{border-left-color:var(--stamp)}.form-status.is-success{border-left-color:#2F6B3A}.form-submit{margin-top:24px}.form-submit .btn{width:100%;min-height:56px;font-size:1.125rem}@media (min-width:640px){.form-submit .btn{width:auto;min-width:280px}}.btn[aria-busy="true"]{cursor:progress}.form-aside>* + *{margin-top:24px}.next-steps{counter-reset:n}.next-steps li{counter-increment:n;display:grid;grid-template-columns:28px 1fr;gap:8px;padding:10px 0;border-bottom:1px solid var(--line)}.next-steps li::before{content:counter(n);font:600 .875rem/1.7 var(--mono);color:var(--accent)}.quote-form .sub-fieldset{border:0;padding:0;margin:0 0 20px}.quote-form .sub-fieldset legend.group-label{float:none;font:600 1rem/1.4 var(--sans);text-transform:none;letter-spacing:0;margin-bottom:6px}.timeline{counter-reset:t;padding:16px 0 0}.t-step{position:relative;display:grid;gap:8px 32px;padding:32px 0;border-bottom:1px solid var(--line-strong)}@media (min-width:768px){.t-step{grid-template-columns:120px minmax(0,1fr) minmax(0,1fr)}}.t-num{font:700 4.5rem/0.9 var(--display);color:var(--accent);text-shadow:.05em .045em 0 rgba(217,67,42,.45)}.t-body>* + *{margin-top:12px}.t-body h2{font-size:clamp(1.625rem,1.6vw + 1rem,2.25rem)}.t-side{align-self:start;background:var(--kraft);border:1px solid var(--line-strong);padding:16px 20px;font-size:.875rem}.t-side dt{font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}.t-side dd + dt{margin-top:12px}.gallery-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}.slot{margin:0;border:2px dashed var(--line-strong);background:#FBF8F2}.slot-frame{aspect-ratio:4 / 5;display:flex;flex-direction:column;justify-content:space-between;padding:16px;background-image:repeating-linear-gradient(135deg,transparent 0 14px,rgba(28,27,25,.05) 14px 15px)}.slot-frame img{width:100%;height:100%;object-fit:cover}.slot-id{font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}.slot-reg{width:40px;height:40px;align-self:center;color:var(--ink-2)}.slot figcaption{padding:12px 16px;border-top:2px dashed var(--line-strong);font-size:.875rem}.slot figcaption strong{display:block;font-weight:600;font-size:1rem}.gallery-group + .gallery-group{margin-top:56px}.gallery-group h2{margin-bottom:8px}.gallery-group>p{margin-bottom:24px}.areas-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:40px}@media (min-width:1024px){.areas-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);align-items:start}}.area-table td:first-child a{font-weight:600}.fact-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));border:2px solid var(--ink);background:var(--paper);margin-top:32px}.fact-strip>div{padding:16px 20px;border-bottom:1px solid var(--line-strong)}@media (min-width:768px){.fact-strip>div{border-bottom:0;border-right:1px solid var(--line-strong)}.fact-strip>div:last-child{border-right:0}}.fact-strip dt{font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}.fact-strip dd{margin-top:4px;font-weight:600}.local-list{border-top:2px solid var(--ink)}.local-list li{padding:16px 0;border-bottom:1px solid var(--line-strong)}.local-list strong{font-weight:600}
