:root{--teal:#1e4f55;--teal-dark:#0d2d2f;--teal-soft:#2f5f61;--aqua:#70c0bd;--mist:#c6d3d4;--cream:#f6f1e7;--paper:#fffdf8;--coral:#e3503d;--burgundy:#781229;--ink:#183234;--muted:#53696a;--line:#c6d3d4;--font-display:"Ligurino Condensed", Ligurino, Georgia, "Times New Roman", serif;--font-body:"Rival Sans", "Avenir Next", Avenir, "Segoe UI", Arial, sans-serif}*{box-sizing:border-box}html,body{max-width:100%;margin:0;padding:0;overflow-x:clip}body{background:var(--cream);color:var(--ink);font-family:var(--font-body);line-height:1.55}img{max-width:100%;height:auto;display:block}button,input,textarea{font:inherit}button{cursor:pointer;min-height:44px}h1,h2,h3,h4{color:var(--teal);overflow-wrap:anywhere;margin:0 0 .65rem;line-height:1.08}h1,h2,h3{font-family:var(--font-display);font-weight:500}h1{letter-spacing:-.035em;max-width:15ch;font-size:clamp(2.35rem,6vw,4.7rem)}h2{font-size:clamp(1.4rem,3vw,2rem)}h3{font-size:1.45rem}h4{font-size:1.05rem}p{margin:0 0 1rem}:focus-visible{outline:3px solid var(--coral);outline-offset:3px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.preview-banner{background:var(--burgundy);color:#fff;text-align:center;letter-spacing:.03em;margin:0;padding:.42rem 1rem;font-size:.78rem}.app-main{max-width:1240px;margin:0 auto;padding:0 2rem 4rem}nav[aria-label=Planner\ steps]{margin:1.25rem 0 2rem}.stepper{counter-reset:planner-step;align-items:center;gap:0;margin:0;padding:0;list-style:none;display:flex}.stepper li{counter-increment:planner-step;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;align-items:center;min-width:0;font-size:.73rem;display:flex}.stepper li:before{content:counter(planner-step, decimal-leading-zero);border:1px solid var(--line);width:2rem;height:2rem;color:var(--teal);place-items:center;margin-right:.45rem;font-weight:700;display:grid}.stepper li:not(:last-child):after{content:"";background:var(--line);width:clamp(.5rem,4vw,3.5rem);height:1px;margin:0 .65rem}.stepper li[aria-current=step]{color:var(--teal);font-weight:800}.stepper li[aria-current=step]:before{background:var(--teal);border-color:var(--teal);color:#fff}main>section{border-top:5px solid var(--teal);background:0 0;padding:clamp(1.2rem,4vw,3.5rem)}main>section:has(>.hero){grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);align-items:center;gap:2rem;display:grid}.eyebrow{color:var(--burgundy);text-transform:uppercase;letter-spacing:.16em;margin-bottom:.75rem;font-size:.76rem;font-weight:800}.hero{grid-area:1/2;width:100%;min-height:460px}.hero img{object-fit:cover;width:100%;height:520px}.intro-panel{background:0 0;border-left:0;grid-area:1/1;width:100%;padding:clamp(1.5rem,4vw,3rem);position:relative}.intro-panel>p:not(.eyebrow):not(.disclaimer){max-width:52ch;font-size:1.08rem}.disclaimer{border-left:3px solid var(--burgundy);background:var(--cream);color:#3f5152;margin-top:1.25rem;padding:.85rem 1rem;font-size:.86rem}.category-nav{grid-template-columns:repeat(5,1fr);gap:.75rem;margin:2rem 0;padding:0;list-style:none;display:grid}.category-scroll-hint,.mobile-selection-bar{display:none}.category-card{background:var(--teal);text-align:left;border:2px solid #0000;width:100%;min-height:150px;padding:0;transition:border-color .15s,transform .15s;position:relative;overflow:hidden}.category-card img{object-fit:cover;opacity:.72;width:100%;height:145px}.category-card span{color:#fff;background:var(--teal-dark);font-family:var(--font-display);padding:.45rem .7rem;font-size:1.1rem;position:absolute;inset:auto 0 0}.category-card[aria-pressed=true]{border-color:var(--coral)}.category-card[aria-pressed=true] img{opacity:.92}.build-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:2rem;display:grid}.service-catalog{min-width:0}.group-block{border-top:1px solid var(--line);grid-template-columns:170px minmax(0,1fr);gap:.75rem 1.25rem;padding:1.5rem 0;display:grid}.group-block:first-child{border-top:0;padding-top:0}.group-image{object-fit:cover;grid-row:1/span 2;width:170px;height:155px}.group-block>h2{grid-column:2}.option-grid{grid-column:2;gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.option-card{border:1px solid var(--line);background:#fff;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.25rem 1rem;padding:1rem;display:grid}.option-card.is-selected{border-left:5px solid var(--teal);background:var(--mist)}.option-card h3,.option-card p{grid-column:1;margin:0}.option-card h3{font-family:var(--font-body);font-size:1.05rem;font-weight:800}.option-card p{color:var(--muted);font-size:.88rem}.option-card.is-selected p{color:var(--ink)}.option-card .price{color:var(--burgundy);white-space:nowrap;grid-area:1/2;font-weight:800}.option-card button{border:1px solid var(--teal);color:var(--teal);background:#fff;grid-area:2/2;padding:.45rem .7rem;font-size:.8rem;font-weight:800}.option-card button[aria-pressed=true]{background:var(--teal);color:#fff}.selection-tray{background:var(--teal);color:#fff;border-top:5px solid var(--coral);padding:1.35rem;position:sticky;top:1rem}.selection-tray h2,.selection-tray .tray-total{color:#fff}.selection-tray ul{margin:0 0 1rem;padding:0;list-style:none}.selection-tray li{border-bottom:1px solid #fff3;grid-template-columns:1fr auto;gap:.2rem .5rem;padding:.65rem 0;font-size:.85rem;display:grid}.selection-tray li .price{text-align:right}.remove-btn{color:#ffad9f;background:0 0;border:0;grid-column:1/-1;justify-self:start;padding:.15rem 0;text-decoration:underline}.tray-total{font-size:1.05rem;font-weight:800}.tray-actions,.step-actions{flex-wrap:wrap;gap:.75rem;margin-top:1.25rem;display:flex}.btn-primary,.btn-secondary,.btn-danger{border:2px solid;border-radius:0;padding:.7rem 1.15rem;font-weight:800;transition:background .15s,color .15s}.btn-primary{border-color:var(--coral);background:var(--burgundy);color:#fff}.btn-secondary{border-color:var(--teal);color:var(--teal);background:0 0}.btn-danger{color:#ffd9e2;background:0 0;border-color:#c998a5}.selection-tray .btn-primary{width:100%}.review-table{border-collapse:collapse;width:100%;margin:1.5rem 0}.review-table th,.review-table td{text-align:left;border-bottom:1px solid var(--line);padding:.8rem .6rem}.review-table .figure{text-align:right;white-space:nowrap}.review-total-row td{color:var(--teal);border-top:2px solid var(--teal);font-weight:800}.contact-section>p{max-width:58ch}.contact-layout{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:2rem;margin-top:1.5rem;display:grid}.contact-form{max-width:800px}.contact-project-summary{border-top:5px solid var(--burgundy);background:var(--teal-dark);color:#fff;padding:1.25rem;position:sticky;top:1rem}.contact-project-summary h2{color:#fff;font-size:1.5rem}.contact-project-summary ul{margin:1rem 0;padding:0;list-style:none}.contact-project-summary li{border-bottom:1px solid #ffffff38;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;padding:.65rem 0;font-size:.85rem;display:grid}.contact-project-summary p{margin:0;padding-top:.5rem}.form-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.field-wide{grid-column:1/-1}.field-wide>.field{width:100%}.field label{margin-bottom:.25rem;font-size:.85rem;font-weight:800;display:block}.field input,.field textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #8ca3a0;border-radius:0;padding:.7rem}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border:3px solid var(--burgundy)}.field-error{color:var(--burgundy);margin:.25rem 0 0;font-size:.82rem;font-weight:800}.error-summary,.error-state{border-left:6px solid var(--burgundy);background:#fae9ec;padding:1rem 1.25rem}.error-summary h2{color:var(--burgundy);font-size:1.25rem}.turnstile-placeholder{border:1px dashed var(--muted);color:var(--muted);margin-top:1rem;padding:.75rem;font-size:.82rem}.outcome-state{flex-direction:column;justify-content:center;min-height:420px;display:flex}.success-state{border-left:8px solid var(--teal)}.success-project-summary{border-top:5px solid var(--teal);background:var(--paper);width:min(100%,760px);margin-top:1rem;padding:1.25rem}.success-project-summary .review-table{margin-block:.75rem 1rem}.pdf-help{color:var(--muted);margin:0;font-size:.9rem}.print-summary{display:none}@media print{@page{margin:16mm}.preview-banner,.app-main{display:none!important}.print-summary{color:#000;font-family:Arial,sans-serif;font-size:10pt;display:block}.print-header{border-bottom:3px solid #153f42;align-items:center;gap:1rem;padding-bottom:1rem;display:flex}.print-header img{object-fit:contain;width:180px;max-height:70px}.print-header p,.print-header h2{color:#000;margin:0}.print-contact,.print-summary footer{border-top:1px solid #777;margin-top:1.5rem;padding-top:1rem}.print-summary h3{color:#000}}@media (max-width:850px){.app-main{padding-inline:1rem}.stepper li{font-size:0}.stepper li:before{margin:0;font-size:.7rem}.stepper li:not(:last-child):after{width:clamp(.7rem,9vw,4rem);margin-inline:.4rem}main>section:has(>.hero){display:block}.hero{width:100%;min-height:0}.hero img{height:300px}.intro-panel{background:var(--paper);width:calc(100% - 1rem);margin:-4rem 0 0 1rem}.category-nav{scroll-snap-type:x mandatory;padding-bottom:.5rem;display:flex;overflow-x:auto}.category-nav li{scroll-snap-align:start;flex:0 0 155px}.category-scroll-hint{color:var(--muted);margin:-.25rem 0 1.5rem;font-size:.8rem;display:block}.build-layout{grid-template-columns:1fr}.selection-tray{order:2;position:static}.mobile-selection-bar{z-index:20;border-block:1px solid var(--line);border-top:3px solid var(--teal);background:var(--paper);grid-template-columns:1fr 1fr;gap:.5rem;margin:0 -1rem 1rem;padding:.65rem 1rem;display:grid;position:sticky;top:0;box-shadow:0 8px 18px #0d2d2f1f}.mobile-selection-bar button{width:100%;padding-inline:.6rem}.group-block{grid-template-columns:1fr}.group-image{grid-row:auto;width:100%;height:190px}.group-block>h2,.option-grid{grid-column:1}}@media (max-width:560px){main>section{padding:1rem}h1{font-size:2.4rem}.hero img{height:160px}.intro-panel{width:100%;margin:-6rem 0 0}.option-card{grid-template-columns:1fr}.option-card .price,.option-card button{grid-area:auto/1;justify-self:start}.contact-layout{grid-template-columns:1fr}.contact-project-summary{grid-row:1;position:static}.form-grid{grid-template-columns:1fr}.field-wide{grid-column:1}.step-actions>button{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
