:root{--navy:#102e39;--cream:#f5f1e8;--paper:#fffdf8;--timber:#c9a379;--ink:#18343b;--muted:#53666a;--line:#c8cec6;--error:#9b2923}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.65 'Segoe UI',Arial,sans-serif}a{color:inherit;text-underline-offset:5px}a:hover{color:#6c4d2e}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,select,summary{cursor:pointer}button,input,select{min-height:44px}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline:3px solid #a35e20;outline-offset:5px}[hidden]{display:none!important}.skip{position:absolute;left:20px;top:-100px;z-index:5;padding:10px;background:var(--paper)}.skip:focus{top:10px}.site-header{padding:27px 5%;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:15px;align-items:center;text-decoration:none;font-size:17px;letter-spacing:2px;font-weight:650;line-height:1.25}.brand small{display:block;font-size:9px;letter-spacing:2.8px;margin-top:6px}.monogram{font:29px Georgia,serif;border:1px solid var(--ink);padding:10px 9px;letter-spacing:-3px;width:53px;height:54px}.site-header nav{display:flex;gap:32px;align-items:center;font-size:14px}.site-header nav a{text-decoration:none;min-height:44px;display:inline-flex;align-items:center;gap:7px}.tag{font-size:10px;text-transform:uppercase;border:1px solid var(--line);padding:2px 5px;letter-spacing:.5px}.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:5%;padding:62px 5% 72px;max-width:1600px;margin:auto}.eyebrow{font-size:11px;letter-spacing:2.2px;font-weight:650;margin:0 0 23px}.hero-copy{padding:30px 0 5px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400}h1{font-size:clamp(54px,6.3vw,100px);line-height:1.02;letter-spacing:-4px;margin-bottom:30px}h1 em{font-weight:400;color:#6c765c}h2{font-size:clamp(34px,3.3vw,52px);line-height:1.12;letter-spacing:-1.4px;margin-bottom:24px}.lead{font-size:18px;line-height:1.75;max-width:440px}.actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin:29px 0 23px}.button{display:inline-flex;align-items:center;justify-content:center;padding:14px 21px;min-height:50px;background:var(--navy);color:var(--cream);text-decoration:none;font-size:14px;border:1px solid var(--navy)}.button:hover{background:#254952;color:white}.text-link{font-size:14px}.quiet,.help{color:var(--muted);font-size:13px}.water-study{background:var(--navy);color:var(--cream);position:relative;min-height:505px;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:25px 26px}.study-heading{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.8px;gap:12px}.study-caption{display:flex;justify-content:space-between;align-items:end;gap:20px;z-index:1;font:22px/1.3 Georgia,serif}.study-caption small{font:10px/1.6 'Segoe UI',sans-serif;color:#c6d2cf;text-align:right}.pier-art{position:absolute;inset:90px 50px 80px;transform:rotate(-24deg);background:repeating-linear-gradient(0deg,transparent 0 37px,#ffffff0b 38px 39px)}.art-walk,.art-platform{position:absolute;background:repeating-linear-gradient(0deg,#c3a078 0 8px,#7d694f 9px 10px);border:2px solid #ddc09a;box-shadow:12px 12px 0 #071b2459}.art-walk{left:42%;top:28%;width:22%;height:84%}.art-platform{top:12%;left:7%;width:75%;height:25%}.pole{position:absolute;background:#e8d0aa;width:10px;height:10px;box-shadow:4px 5px 0 #071b24}.p1{left:5%;top:12%}.p2{left:82%;top:12%}.p3{left:40%;top:67%}.p4{left:64%;top:67%}.service-intro{padding:65px 8% 25px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:10%;max-width:1500px;margin:auto}.service-intro>div:last-child{padding-top:40px;max-width:530px}.services{padding:15px 8% 80px;max-width:1500px;margin:auto}.service-row{display:grid;grid-template-columns:60px 1fr 1fr;align-items:baseline;gap:20px;border-top:1px solid var(--line);padding:26px 0}.service-row>span{font:12px monospace;color:var(--muted)}.service-row h3{font-size:29px;line-height:1.25;margin:0}.service-row p{font-size:14px;margin:0;color:var(--muted)}.preview-banner{background:var(--navy);color:var(--cream);padding:66px 8%;display:flex;align-items:center;justify-content:space-between;gap:60px}.preview-banner p{max-width:560px}.preview-banner .quiet{color:#c5d0cb}.light{background:var(--cream);color:var(--navy);white-space:nowrap}.contact{padding:80px 8%;display:grid;grid-template-columns:1.1fr 1fr;gap:60px}address{font-style:normal;display:flex;flex-direction:column;align-items:start;gap:15px}address p{margin:0}.phone{font:35px Georgia,serif;text-decoration:none}footer{padding:26px 5%;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:25px;font-size:12px}.estimator-heading{padding:45px 5% 15px}.estimator-heading h1{font-size:clamp(37px,4vw,60px);letter-spacing:-2px;margin-bottom:18px}.estimator-heading .eyebrow{margin-bottom:18px}.concept-notice,.notice{margin:0 5% 26px;background:#e6dfce;padding:17px 21px;font-size:13px}.config-layout{display:grid;grid-template-columns:345px minmax(0,1fr);gap:32px;margin:0 5% 45px;align-items:start}fieldset{border:0;padding:0;margin:0;min-width:0}legend{font-size:13px;letter-spacing:1px;font-weight:650;margin-bottom:22px}label{display:block;font-size:13px;font-weight:600;margin-bottom:7px}input,select{background:var(--paper);color:var(--ink);border:1px solid #87948e;border-radius:0;padding:9px 11px;width:100%}input:invalid{border-color:var(--error)}.input-pair{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:19px 0}.input-pair small{font-size:11px;color:var(--muted)}.control-title{font:21px Georgia,serif;margin:28px 0 10px;letter-spacing:0}.control-title small{font:11px 'Segoe UI',sans-serif;margin-left:12px}.help{line-height:1.6;margin:12px 0}.secondary,.camera button{border:1px solid #87948e;background:transparent;color:var(--ink);padding:8px 12px;font-size:13px}.secondary:hover,.camera button:hover{background:#e1e4da}.platform{padding:15px;border:1px solid var(--line);margin:25px 0 16px;background:#edece3}.platform legend{padding:0 8px;margin:0}.platform .input-pair{margin:12px 0}details{border-top:1px solid var(--line);margin-top:27px;padding-top:17px}summary{min-height:44px;font-size:14px;font-weight:600}.error{color:var(--error);font-weight:600;font-size:14px;margin-top:16px}.preview-panel{background:var(--paper);border:1px solid var(--line);min-width:0}.viewer-toolbar{display:flex;justify-content:space-between;align-items:end;gap:16px;padding:17px 22px;border-bottom:1px solid var(--line)}.viewer-toolbar label{margin:0;min-width:0}.viewer-toolbar select{margin-top:5px}.camera{display:flex;gap:7px;flex-wrap:wrap;justify-content:end}.camera button{min-width:44px}.canvas-wrap{background:#e5ebe6;position:relative;min-height:290px}canvas{display:block;width:100%;height:auto;max-height:640px;object-fit:contain}.viewer-status{position:absolute;inset:45% 20px auto;text-align:center;font-size:14px}.viewer-status:empty{display:none}.viewer-note{font:9px/1.6 monospace;letter-spacing:.7px;padding:12px 22px;margin:0;border-bottom:1px solid var(--line);color:var(--muted)}#summary{padding:23px}#summary h2{font-size:25px;letter-spacing:-.5px;margin-bottom:14px}#counts{font-size:14px}.pending{padding:18px 22px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:13px}.review-note{margin:25px 5% 60px;max-width:760px}.review-note h2{font-size:30px}.review-note p{font-size:14px}.not-found{min-height:65vh;padding:80px 8%}.not-found h1{font-size:70px}@media(min-width:1500px){.config-layout{grid-template-columns:390px minmax(0,1fr)}}@media(max-width:1000px){.site-header nav{gap:15px}.hero{gap:30px}.hero h1{font-size:70px}.water-study{min-height:480px}.actions{align-items:start;flex-direction:column}.config-layout{grid-template-columns:300px minmax(0,1fr);gap:20px}.viewer-toolbar{align-items:start;flex-direction:column}.camera{justify-content:start}.preview-banner{gap:25px}.service-row{grid-template-columns:35px 1fr 1fr}}@media(max-width:720px){.site-header{align-items:start;flex-direction:column;padding:20px 6%;gap:12px}.site-header nav{gap:18px;flex-wrap:wrap;font-size:12px}.brand{font-size:16px}.hero{grid-template-columns:1fr;padding:28px 6% 45px;gap:28px}.hero-copy{padding-top:14px}.hero h1{font-size:68px;letter-spacing:-3px}.hero .lead{font-size:17px;max-width:100%}.actions{gap:20px}.water-study{min-height:420px}.service-intro{grid-template-columns:1fr;padding:45px 6% 10px;gap:0}.service-intro>div:last-child{padding-top:0}.services{padding:0 6% 45px}.service-row{grid-template-columns:28px 1fr;gap:9px}.service-row h3{font-size:26px}.service-row p{grid-column:2}.preview-banner{padding:45px 6%;align-items:start;flex-direction:column;gap:12px}.preview-banner h2{font-size:36px}.contact{grid-template-columns:1fr;padding:50px 6%;gap:10px}.phone{font-size:32px}footer{flex-direction:column;padding:25px 6%;gap:12px}.estimator-heading{padding:30px 6% 10px}.estimator-heading h1{font-size:42px}.concept-notice,.notice{margin-left:6%;margin-right:6%}.config-layout{grid-template-columns:1fr;margin:0 6% 35px;gap:16px}.viewer-toolbar{flex-direction:row;align-items:end;padding:13px;gap:10px}.camera{justify-content:end}.camera button{font-size:12px;padding:7px}.viewer-toolbar select{font-size:12px;padding:8px 5px}.canvas-wrap{min-height:250px}.viewer-note{padding:12px}#summary{padding:18px}.pending{padding:18px}.review-note{margin:30px 6% 40px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Decking controls extend the existing Configure tokens. */
.estimator-page #deck-colors{display:flex;flex-wrap:wrap;gap:8px}.estimator-page .deck-swatch{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 10px;text-align:left}.estimator-page .deck-swatch[aria-pressed="true"]{outline:2px solid var(--navy);outline-offset:1px;font-weight:700}.estimator-page .color-chip{display:inline-block;flex-shrink:0;width:22px;height:22px;border:1px solid var(--ink)}.estimator-page #decking-controls{min-width:0}.estimator-page #decking-controls select{max-width:100%;font-size:14px}.estimator-page #deck-sources{font-size:12px;overflow-wrap:anywhere}.estimator-page #material-review{margin:16px}
.estimator-page .swatch-natural-treated-wood .color-chip{background:rgb(203,167,123)}
.estimator-page .swatch-foggy-wharf .color-chip{background:rgb(150,153,151)}
.estimator-page .swatch-rocky-harbor .color-chip{background:rgb(145,132,116)}
.estimator-page .swatch-toasted-sand .color-chip{background:rgb(175,139,103)}
.estimator-page .swatch-honey-grove .color-chip{background:rgb(175,132,78)}
.estimator-page .swatch-cinnamon-cove .color-chip{background:rgb(144,96,65)}
.estimator-page .swatch-golden-hour .color-chip{background:rgb(195,154,97)}
.estimator-page .swatch-saddle .color-chip{background:rgb(129,87,57)}
.estimator-page .swatch-clam-shell .color-chip{background:rgb(137,143,142)}
.estimator-page .swatch-tide-pool .color-chip{background:rgb(99,119,120)}
.estimator-page .swatch-pebble-beach .color-chip{background:rgb(184,177,157)}
.estimator-page .swatch-havana-gold .color-chip{background:rgb(177,127,66)}
.estimator-page .swatch-island-mist .color-chip{background:rgb(159,164,161)}
.estimator-page .swatch-lava-rock .color-chip{background:rgb(98,72,66)}
.estimator-page .swatch-spiced-rum .color-chip{background:rgb(116,77,53)}
.estimator-page .swatch-tiki-torch .color-chip{background:rgb(179,116,63)}
.estimator-page .swatch-rope-swing .color-chip{background:rgb(188,175,143)}
.estimator-page .swatch-slate-gray .color-chip{background:rgb(139,146,145)}
/* Provisional materials allowance; existing Configure visual language. */
.estimator-page #price-total{font-size:20px;font-weight:650;font-variant-numeric:tabular-nums}
.estimator-page #price-summary{border-top:1px solid var(--line);padding-top:22px;margin-top:22px}
.estimator-page #price-sources{font-size:13px;overflow-wrap:anywhere;margin-bottom:22px}
.estimator-page #price-observations{padding-left:20px}.estimator-page #price-observations li{margin-bottom:18px}
.estimator-page #price-breakdown{font-size:14px;margin-bottom:22px}
.estimator-page .price-table{table-layout:fixed}
.estimator-page .price-table th,.estimator-page .price-table td{vertical-align:top;text-align:left;overflow-wrap:anywhere}
.estimator-page .price-table span,.estimator-page .price-table strong{display:block}
.estimator-page .price-table .price-basis{font-size:12px;color:var(--muted);margin-top:8px}
.estimator-page .price-table .price-line-total{margin-top:3px}
.estimator-page .price-table td>span:nth-child(2){margin-top:12px;color:var(--muted)}
.estimator-page .price-totals{font-size:14px;font-variant-numeric:tabular-nums}
.estimator-page .price-totals dt{font-weight:650}.estimator-page .price-totals dd{margin:0 0 14px}
/* Estimator correction only. Existing homepage rules above are unchanged. */
.estimator-page .site-inputs{margin-top:25px;padding-top:20px;border-top:1px solid var(--line)}
.estimator-page .site-inputs legend{margin-bottom:0;letter-spacing:.4px}
.estimator-page .component-table{width:100%;border-collapse:collapse;margin:20px 0 24px;text-align:left}
.estimator-page .component-table caption{text-align:left;font-weight:650;padding:0 0 12px}
.estimator-page .component-table th,.estimator-page .component-table td{padding:8px 0;border-bottom:1px solid var(--line);font-size:13px;font-weight:400}
.estimator-page .component-table thead th{font-weight:650}
.estimator-page .component-table td,.estimator-page .component-table th:last-child{text-align:right;font-variant-numeric:tabular-nums;padding-left:15px}
.estimator-page .assembly-assumptions{margin-bottom:22px;font-size:13px}
.estimator-page #site-summary{font-size:14px}
.estimator-page .detail-controls{padding:16px 22px;border-bottom:1px solid var(--line)}
.estimator-page .detail-controls .help{margin-bottom:0}
.estimator-page .viewer-toolbar{flex-wrap:wrap}
@media(max-width:720px){.estimator-page .viewer-toolbar{align-items:start;flex-direction:column}.estimator-page .viewer-toolbar label{width:100%}.estimator-page .camera{justify-content:start}.estimator-page .detail-controls{padding:14px}}
