*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Arial,sans-serif;color:#172019;background:#f3f2ed}button,input{font:inherit}button{touch-action:manipulation}.topbar{height:70px;background:#fff;border-bottom:1px solid #dddeda;display:flex;align-items:center;justify-content:space-between;padding:0 27px;position:relative;z-index:20}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#173b2b;line-height:1.05}.brand-mark{width:40px;height:40px;border:1px solid #173b2b;border-radius:50%;display:grid;place-items:center;font:20px Georgia,serif}.brand-copy{font-size:12px}.top-actions{display:flex;align-items:center;gap:9px}.private-pill{font-size:9px;letter-spacing:.14em;font-weight:900;background:#f7ebcd;color:#89611d;padding:8px 10px}.toolbar-btn{border:1px solid #d8d9d4;background:#fff;padding:9px 12px;border-radius:4px;font-size:10px;font-weight:750;cursor:pointer}
.builder-shell{height:calc(100vh - 70px);display:grid;grid-template-columns:minmax(0,1fr) 455px}.viewer{position:relative;overflow:hidden;background:#dbe8ed;transition:height .2s ease}.viewer:after{content:"";position:absolute;left:0;right:0;bottom:0;height:16%;background:linear-gradient(transparent,rgba(0,0,0,.06));pointer-events:none}#stage{position:absolute;inset:0}#stage canvas{display:block;width:100%;height:100%;touch-action:none}.view-toolbar{position:absolute;top:16px;left:16px;background:rgba(255,255,255,.96);padding:5px;border-radius:9px;box-shadow:0 5px 22px rgba(0,0,0,.13);z-index:4;display:flex}.view-toolbar button{border:0;background:transparent;padding:8px 12px;border-radius:5px;cursor:pointer;font-size:11px}.view-toolbar button.active{background:#173b2b;color:#fff}.mobile-view-toggle{display:none}.viewer-tip{position:absolute;left:16px;bottom:16px;background:rgba(255,255,255,.93);padding:9px 12px;border-radius:6px;font-size:10px;z-index:4;max-width:440px}.price-card{position:absolute;right:16px;top:16px;background:rgba(23,59,43,.95);color:#fff;padding:14px 17px;min-width:176px;border-radius:8px;box-shadow:0 8px 28px rgba(0,0,0,.18);z-index:4}.price-card small,.price-card span{display:block;font-size:9px;letter-spacing:.07em;opacity:.78}.price-card strong{display:block;font-size:25px;margin:3px 0}.control-panel{background:#fff;overflow:auto;padding:27px 30px 22px;box-shadow:-10px 0 28px rgba(0,0,0,.05);position:relative;z-index:10}.progress{display:flex;gap:5px;margin-bottom:24px}.progress i{height:4px;flex:1;background:#e7e7e2;border-radius:4px}.progress i.active,.progress i.done{background:#c89538}.step{display:none;animation:fade .18s ease}.step.active{display:block}@keyframes fade{from{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:none}}.eyebrow{font-size:10px;letter-spacing:.15em;color:#9b742c;font-weight:850;margin:0 0 8px}h1,h2{font:700 31px/1.08 Georgia,serif;color:#173b2b;margin:0 0 10px}h3{font-size:13px;margin:0 0 12px}.lead{color:#68716c;font-size:13px;line-height:1.5;margin:0 0 20px}.space-top{margin-top:18px}.field-label{display:block;font-size:11px;font-weight:800;color:#455149;margin:18px 0 7px}.range-field{margin-top:17px}.range-field label{display:flex;justify-content:space-between;font-size:11px;font-weight:800;color:#455149;margin-bottom:8px}.range-field input{width:100%;accent-color:#173b2b}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:11px}.number-input{width:100%;border:1px solid #d8d9d4;padding:11px 10px;border-radius:4px;background:#fff}.preset-row{display:flex;gap:6px;flex-wrap:wrap;margin:13px 0 3px}.preset-row button{border:1px solid #d8d9d4;background:#fff;padding:8px 10px;border-radius:4px;font-size:11px;cursor:pointer}.option-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.option-grid.three{grid-template-columns:repeat(3,1fr)}.option-card{border:1px solid #dcddd8;background:#fff;padding:13px 9px;cursor:pointer;border-radius:5px;color:#26332c;min-height:64px}.option-card b,.option-card small{display:block}.option-card small{color:#7a807c;font-size:9px;margin-top:4px}.option-card.selected,.segment button.selected,.material-row.selected,.edge-grid button.selected{border:2px solid #173b2b;background:#f2f6f3}.shape-grid .option-card{display:grid;grid-template-columns:44px 1fr;text-align:left;align-items:center}.shape-grid .option-card b,.shape-grid .option-card small{grid-column:2}.shape-icon{width:34px;height:28px;border:5px solid #9b7444;background:#c59a68;display:block;grid-row:1/3}.l-icon{clip-path:polygon(0 0,100% 0,100% 45%,45% 45%,45% 100%,0 100%)}.subpanel{margin-top:18px;padding:14px;background:#f6f5f1;border:1px solid #e5e2d9;border-radius:5px}.hidden{display:none!important}.segment{display:flex;gap:7px}.segment button{flex:1;border:1px solid #d8d9d4;background:#fff;padding:11px 8px;cursor:pointer;border-radius:4px;font-size:10px;min-height:42px}.info-box{background:#f5f2e9;color:#66685f;padding:12px 13px;font-size:10px;line-height:1.55;margin-top:18px;border-left:3px solid #c89538}.info-box.warning{background:#fff5e6;color:#7b5b22}.material-list{display:grid;gap:8px}.material-row{width:100%;display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;text-align:left;border:1px solid #dcddd8;background:#fff;padding:11px;border-radius:5px;cursor:pointer;min-height:60px}.material-row span b,.material-row span small{display:block}.material-row span small{font-size:9px;color:#777;margin-top:3px}.material-row em{font-style:normal;font-size:10px;color:#6d726e}.swatch{width:27px;height:27px;border-radius:50%;display:block}.sw-pt{background:#a6794f}.sw-comp{background:#646867}.sw-cedar{background:#a75b32}.colour-row{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.colour{border:1px solid #dadbd6;background:#fff;padding:8px 4px;font-size:9px;cursor:pointer;border-radius:4px;min-height:58px}.colour i{display:block;width:22px;height:22px;border-radius:50%;margin:0 auto 5px;background:var(--c)}.colour.selected{outline:2px solid #173b2b;outline-offset:-2px}.edge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:6px 0 18px}.edge-grid button{height:60px;border:1px solid #d8d9d4;background:#fff;border-radius:5px;cursor:pointer}.edge-grid button span,.edge-grid button small{display:block}.edge-grid button small{font-size:8px;color:#7d837f;margin-top:4px}.micro{font-size:9px;color:#818783;line-height:1.48}.micro.strong{font-weight:750;color:#4d5b53}.toggle-row{border:1px solid #dddeda;padding:14px;display:flex;align-items:center;justify-content:space-between;border-radius:5px;gap:10px}.toggle-row span b,.toggle-row span small{display:block}.toggle-row span small{font-size:9px;color:#777;margin-top:3px}.toggle-row input{width:20px;height:20px;accent-color:#173b2b;flex:0 0 auto}.stair-drag-note{margin:14px 0 4px;padding:10px 11px;border-radius:5px;background:#f4e8cc;color:#6e5220;font-size:10px;line-height:1.45;border-left:3px solid #c89538}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}.mini-stats span{background:#f5f5f1;padding:10px;font-size:8px;color:#737874}.mini-stats b{display:block;font-size:14px;color:#173b2b;margin-top:3px}.extras-list{display:grid;gap:7px}.extras-list>label{display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:10px;border:1px solid #dddeda;padding:12px;border-radius:5px;cursor:pointer}.extras-list input{width:18px;height:18px;accent-color:#173b2b}.extras-list span b,.extras-list span small{display:block}.extras-list span small{font-size:9px;color:#777;margin-top:3px}.extras-list em{font-size:9px;font-style:normal;color:#92702e}.house-plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.estimate-hero{background:#173b2b;color:#fff;padding:18px 19px;margin:16px 0}.estimate-hero span,.estimate-hero small{display:block;font-size:9px;letter-spacing:.08em;opacity:.75}.estimate-hero strong{display:block;font-size:34px;margin:3px 0}.estimate-hero.incomplete{background:#604f2f}.summary,.breakdown{font-size:11px}.summary .row,#breakdown .row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #eee}.summary .row b,#breakdown .row b{text-align:right}.breakdown{margin-top:14px}.breakdown summary{cursor:pointer;font-weight:800;padding:8px 0}.final-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:15px}.secondary-action{border:1px solid #d7d8d3;background:#fff;padding:11px;font-size:10px;font-weight:800;cursor:pointer;min-height:44px}.disclaimer{font-size:9px;color:#777;line-height:1.5;margin:14px 0}.quote-btn{display:block;text-decoration:none;text-align:center;background:#c89538;color:#151515;padding:14px;font-size:11px;font-weight:900;letter-spacing:.02em}.wizard-nav{position:sticky;bottom:-22px;background:#fff;border-top:1px solid #eee;padding:16px 0 22px;margin-top:26px;display:flex;gap:9px;z-index:12}.wizard-nav button{border:0;padding:13px 15px;font-weight:800;font-size:11px;cursor:pointer;min-height:44px}.wizard-nav .back{background:#ecece8}.wizard-nav .next{background:#173b2b;color:#fff;flex:1}.wizard-nav button:disabled{opacity:.35}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:#162d22;color:#fff;padding:10px 14px;border-radius:5px;font-size:11px;z-index:50;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.viewer-error{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:8px;padding:28px;background:#dde9ee;color:#173b2b}.viewer-error b{font-family:Georgia,serif;font-size:24px}.viewer-error span{max-width:520px;font-size:12px;line-height:1.5;color:#5b655f}
.start-notice{background:#eef5ef;border:1px solid #cfded3;border-left:4px solid #173b2b;padding:13px 14px;margin:0 0 20px;border-radius:5px;color:#536159;font-size:10px;line-height:1.55}.start-notice b,.start-notice span{display:block}.start-notice b{color:#173b2b;font-size:11px;margin-bottom:4px}.start-notice a{color:#8b651f;font-weight:850;text-decoration:underline}.segment.four{display:grid;grid-template-columns:repeat(2,1fr)}
@media(max-width:900px){body{overflow-x:hidden}.topbar{height:58px;padding:0 12px}.brand-mark{width:34px;height:34px;font-size:17px}.brand-copy{font-size:11px}.private-pill{display:none}.toolbar-btn{padding:8px 9px;font-size:9px;min-height:38px}.builder-shell{height:auto;display:block}.viewer{height:40svh;min-height:285px;position:sticky;top:0;z-index:2}.viewer.mobile-expanded{height:70svh}.control-panel{position:relative;z-index:5;padding:20px 16px calc(96px + env(safe-area-inset-bottom));min-height:60svh;box-shadow:0 -8px 25px rgba(0,0,0,.08);overflow:visible}.viewer-tip{display:none}.price-card{top:10px;right:10px;min-width:132px;padding:9px 10px}.price-card strong{font-size:19px}.price-card small{font-size:7px}.price-card span{font-size:7px}.view-toolbar{top:10px;left:10px;max-width:calc(100% - 164px);overflow-x:auto;scrollbar-width:none}.view-toolbar::-webkit-scrollbar{display:none}.view-toolbar button{padding:8px 9px;min-width:42px}.mobile-view-toggle{display:block;position:absolute;left:12px;bottom:10px;z-index:5;border:0;background:rgba(255,255,255,.94);color:#173b2b;padding:9px 11px;border-radius:6px;font-size:9px;font-weight:800;box-shadow:0 4px 16px rgba(0,0,0,.12)}.wizard-nav{position:fixed;left:0;right:0;bottom:0;margin:0;padding:11px 16px calc(11px + env(safe-area-inset-bottom));box-shadow:0 -5px 18px rgba(0,0,0,.10);z-index:40}.option-card,.segment button,.edge-grid button,.preset-row button,.material-row,.colour{min-height:44px}.control-panel input[type=range]{height:28px}.mini-stats{grid-template-columns:1fr 1fr 1fr}.topbar{position:relative}}
@media(max-width:520px){h1,h2{font-size:27px}.lead{font-size:12px}.viewer{height:38svh;min-height:270px}.viewer.mobile-expanded{height:72svh}.option-grid.three{grid-template-columns:1fr}.board-layout-grid,.stair-style-grid{grid-template-columns:1fr 1fr 1fr!important}.board-layout-grid .option-card,.stair-style-grid .option-card{padding:10px 5px;font-size:10px}.colour-row{grid-template-columns:repeat(2,1fr)}.shape-grid{grid-template-columns:1fr 1fr}.shape-grid .option-card{grid-template-columns:32px 1fr;padding:10px 7px}.shape-icon{width:27px;height:23px}.house-plan-grid{grid-template-columns:1fr 1fr}.two-col{grid-template-columns:1fr 1fr}.final-actions{grid-template-columns:1fr}.mini-stats{grid-template-columns:1fr 1fr}.mini-stats span:last-child{grid-column:1/-1}.price-card span{display:none}.control-panel{padding-left:14px;padding-right:14px}.wizard-nav{padding-left:14px;padding-right:14px}}
@media(max-width:370px){.top-actions{gap:4px}.toolbar-btn{padding:7px}.brand-copy{display:none}.option-grid.three,.board-layout-grid,.stair-style-grid{grid-template-columns:1fr}.two-col{grid-template-columns:1fr}.view-toolbar button{font-size:9px;padding:7px}.price-card{min-width:118px}.price-card strong{font-size:17px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

.compact-number{display:grid;grid-template-columns:auto 92px auto;gap:7px;align-items:center;justify-content:end;margin-top:6px}.compact-number label,.compact-number span{font-size:9px;color:#747a76}.compact-number .number-input{padding:8px 9px}
@media(max-width:520px){.compact-number{grid-template-columns:auto 100px auto}.compact-number .number-input{min-height:42px}}

.disabled-row{opacity:.55;cursor:not-allowed!important}.disabled-row input{cursor:not-allowed}

/* V5 level + mobile refinements */
#upperDeckPanel h3{margin-top:0}.upper-stair-inline{display:grid;gap:8px}.warning.hidden{display:none!important}
@media(max-width:900px){#upperDeckPanel .two-col{grid-template-columns:1fr 1fr}.control-panel .subpanel{padding:12px}.viewer.mobile-expanded+.control-panel{min-height:30svh}}
@media(max-width:520px){#upperDeckPanel .two-col{grid-template-columns:1fr}.house-plan-grid .option-card,.option-grid .option-card{min-height:52px}.price-card{max-width:42vw}.control-panel{font-size:16px}.range-field label,.field-label{font-size:12px}.segment button{font-size:11px;padding:11px 6px}}

/* V7 welcome + stair refinements */
body.modal-open{overflow:hidden}.welcome-modal{position:fixed;inset:0;z-index:1000;background:rgba(15,28,22,.72);backdrop-filter:blur(5px);display:none;align-items:center;justify-content:center;padding:22px}.welcome-modal.show{display:flex}.welcome-card{width:min(560px,100%);background:#fff;border-radius:10px;padding:30px;box-shadow:0 24px 80px rgba(0,0,0,.28);border:1px solid rgba(23,59,43,.15)}.welcome-mark{width:48px;height:48px;border:1.5px solid #173b2b;border-radius:50%;display:grid;place-items:center;font-family:Georgia,serif;font-size:24px;color:#173b2b;margin-bottom:18px}.welcome-card h2{margin-bottom:12px}.welcome-card>p:not(.eyebrow){font-size:13px;line-height:1.6;color:#5f6963;margin:0 0 16px}.welcome-note{background:#f4f7f4;border-left:4px solid #173b2b;padding:13px 14px;margin:16px 0;font-size:11px;line-height:1.55;color:#59645d}.welcome-note b,.welcome-note span{display:block}.welcome-note b{color:#173b2b;margin-bottom:4px}.welcome-actions{display:grid;grid-template-columns:1fr auto;gap:9px;margin-top:20px}.welcome-primary,.welcome-secondary{min-height:48px;border-radius:5px;font-size:11px;font-weight:900;letter-spacing:.02em;display:flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer}.welcome-primary{border:0;background:#173b2b;color:#fff}.welcome-secondary{border:1px solid #d2d6d2;background:#fff;color:#173b2b;padding:0 18px}.welcome-card>small{display:block;margin-top:13px;font-size:9px;line-height:1.45;color:#858b87}.l-stair-helper{margin-top:10px}
@media(max-width:520px){.welcome-modal{padding:12px}.welcome-card{padding:22px 18px;border-radius:8px}.welcome-card h2{font-size:25px}.welcome-actions{grid-template-columns:1fr}.welcome-secondary{min-height:46px}.welcome-card>p:not(.eyebrow){font-size:12px}}

/* V12 mobile persistent live preview
   Keep the 3D viewer above the scrolling controls so customers can see
   every change while working through the builder. Desktop is unchanged. */
@media (max-width:900px){
  .viewer{
    height:32svh;
    min-height:220px;
    position:sticky;
    top:0;
    z-index:30;
    box-shadow:0 8px 22px rgba(0,0,0,.14);
  }
  .viewer.mobile-expanded{height:70svh;z-index:45}
  .control-panel{z-index:5}
}
@media (max-width:520px){
  .viewer{height:31svh;min-height:220px}
  .viewer.mobile-expanded{height:72svh}
}


/* V13 search landing content for the public 3D Deck Builder */
.seo-content{background:#fff;color:#26332c;border-top:1px solid #e5e6e1;padding:84px 24px 92px}.seo-inner{max-width:1120px;margin:0 auto}.seo-kicker{margin:0 0 8px;color:#9b742c;font-size:10px;letter-spacing:.16em;font-weight:900}.seo-content h1,.seo-content h2{font-family:Georgia,serif;color:#173b2b}.seo-content h1{font-size:44px;line-height:1.08;margin:0 0 16px;max-width:840px}.seo-content h2{font-size:27px;line-height:1.18;margin:0 0 10px}.seo-intro{max-width:820px;font-size:16px;line-height:1.75;color:#59645e;margin:0 0 34px}.seo-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0 0 26px}.seo-card,.seo-copy-card{border:1px solid #e1e3de;background:#fafaf7;padding:25px;border-radius:8px}.seo-card p,.seo-copy-card p,.seo-permit p,.seo-faq p,.seo-cta p{font-size:13px;line-height:1.7;color:#5d6861;margin:0}.seo-card h2{font-size:21px}.seo-copy-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;margin:0 0 26px}.seo-list{margin:18px 0 0;padding-left:20px;color:#46544c;font-size:13px;line-height:1.8}.seo-permit{display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center;background:#173b2b;color:#fff;padding:30px;border-radius:8px;margin:0 0 46px}.seo-permit h2,.seo-permit .seo-kicker{color:#fff}.seo-permit p{color:#e5ece8;max-width:760px}.seo-primary-btn,.seo-outline-btn{display:inline-flex;min-height:46px;align-items:center;justify-content:center;padding:11px 18px;border-radius:5px;text-decoration:none;font-size:11px;font-weight:900;letter-spacing:.03em;text-align:center}.seo-primary-btn{background:#c89538;color:#172019}.seo-outline-btn{border:1px solid #b9c8c0;color:#173b2b;background:#fff}.seo-permit .seo-outline-btn{border-color:#fff;color:#173b2b;max-width:250px}.seo-faq{max-width:900px;margin:0 auto 46px}.seo-faq>h2{font-size:34px;margin-bottom:20px}.seo-faq details{border-top:1px solid #dfe2de;padding:0}.seo-faq details:last-child{border-bottom:1px solid #dfe2de}.seo-faq summary{cursor:pointer;list-style:none;font-size:14px;font-weight:850;color:#263b32;padding:18px 34px 18px 0;position:relative}.seo-faq summary::-webkit-details-marker{display:none}.seo-faq summary:after{content:'+';position:absolute;right:6px;top:13px;font-size:22px;color:#9b742c}.seo-faq details[open] summary:after{content:'–'}.seo-faq details p{padding:0 30px 18px 0}.seo-cta{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;background:#f2f4ef;padding:30px;border-radius:8px}.seo-cta h2{font-size:30px}.seo-cta-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:900px){.seo-content{padding:58px 18px 110px}.seo-content h1{font-size:36px}.seo-feature-grid,.seo-copy-grid{grid-template-columns:1fr}.seo-permit,.seo-cta{grid-template-columns:1fr}.seo-permit .seo-outline-btn{max-width:none}.seo-cta-actions{justify-content:flex-start}.seo-reading .wizard-nav{display:none!important}}
@media(max-width:520px){.seo-content{padding:48px 14px 105px}.seo-content h1{font-size:31px}.seo-content h2{font-size:24px}.seo-feature-grid{gap:10px}.seo-card,.seo-copy-card,.seo-permit,.seo-cta{padding:20px}.seo-faq>h2{font-size:28px}.seo-cta-actions{display:grid}.seo-primary-btn,.seo-outline-btn{width:100%}}
