/* Only terrace-specific modules; the page shell, type, colors and form come from TP24. */
:root{--paper:var(--background);--ink:var(--foreground);--line:var(--border)}
html{scroll-behavior:auto}.terrace-demo-strip{padding:7px 20px;text-align:center;font-size:12px;color:#526463;background:#eee9df}.terrace-skip{position:absolute;top:-100px;left:16px;z-index:100;padding:12px;background:white}.terrace-skip:focus{top:8px}.site-wordmark small{font-size:11px;font-weight:400;letter-spacing:0;margin-left:4px}.header-mobile-links[hidden],[hidden]{display:none!important}.terrace-hero-photo{height:auto;background:#e8ede8;overflow:hidden}.terrace-hero-photo svg{display:block;width:100%;height:auto}.terrace-hero-photo figcaption{position:static;padding:10px 14px;color:#526463;background:var(--background);font-size:12px}.hero h1{font-size:clamp(40px,4.2vw,62px)}.full{grid-column:1/-1}.form-box textarea{min-height:100px;resize:vertical}.form-box .note,.form-box small{font-size:12px;color:#526463;line-height:1.5}.form-box small{display:block}.form-error{margin:18px 0;padding:12px;background:#fce0da;color:#8b281c;border-left:3px solid #a52825}.result{margin-top:24px;padding:26px;background:#f7f3ea;border-radius:12px;color:#223233;overflow-wrap:anywhere}.result h3{font-size:23px;line-height:1.2}.result dl{display:grid;grid-template-columns:140px 1fr;gap:10px 20px}.result dt{font-size:14px;font-weight:600}.result dd{margin:0}.result pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}.text-button{background:none;border:0;padding:10px 0;min-height:44px;text-decoration:underline;text-underline-offset:4px;color:#164e50;cursor:pointer}.terrace-demo-fill{padding:10px 0;background:none;border:0;color:white;text-decoration:underline;text-underline-offset:4px;cursor:pointer;min-height:44px}.terrace-plan-scene svg{width:100%;height:auto;display:block}.terrace-plan-scene figcaption{padding:0 20px 20px;font-size:13px;color:#526463}.terrace-planner #plan-result{font-size:14px;min-height:46px}.terrace-planner .button{width:100%}.terrace-faq details{padding:18px 0;border-bottom:1px solid #ccd5cd}.terrace-faq summary{cursor:pointer;font-weight:600;min-height:30px}.terrace-faq details p{max-width:70ch;color:#526463}.form-box input:focus-visible,.form-box textarea:focus-visible,.form-box select:focus-visible,.planner-controls input:focus-visible,.planner-controls select:focus-visible{outline:3px solid #ed8067;outline-offset:3px}.planner-controls input{width:100%;min-width:0}.footer-bottom{overflow-wrap:anywhere}.build-info>.button{max-width:100%;white-space:normal}.build-pin{background:var(--background)}
@media(max-width:800px){.hero h1{font-size:40px;letter-spacing:-1.8px}.terrace-hero-photo{height:auto}.result dl{grid-template-columns:1fr;gap:4px}.result dd{margin-bottom:10px}.terrace-planner .planner-controls{min-width:0}.result{padding:22px 18px}.section-heading h2{font-size:30px}.hero .button{max-width:100%}.hero .intro{font-size:17px}.site-header-shell{position:relative}.build-info .button{gap:12px}.build-controls button{flex:1;white-space:nowrap}}
@media(max-width:430px){.hero h1{font-size:35px;letter-spacing:-1.2px}.site-wordmark{font-size:24px}.site-wordmark small{font-size:10px}.form-box .form-grid{grid-template-columns:1fr}.build-stages li strong{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

.build-layout figure{margin:0}.terrace-planner .planner-controls{display:block}.terrace-planner .planner-scene{margin:0}.terrace-planner .form-grid{gap:0 18px}.terrace-hero-photo svg{min-height:0}.button{animation:none!important;transition:none!important;transform:none!important}.build-controls button{animation:none;transition:none}.form-intro{max-width:65ch}.form-box>.form-intro{font-size:14px;padding-bottom:18px;border-bottom:1px solid #ccd5cd;margin-bottom:22px}.terrace-plan-scene text{pointer-events:none}
@media(max-width:430px){.site-wordmark small{display:none}.site-wordmark{gap:6px}.site-wordmark svg{width:32px;height:24px}}
.build-heading .eyebrow{margin:0 0 8px}.build-heading h2{margin:0 0 10px}.build-heading>p:last-child{margin:0}.build-layout{margin-top:20px}
@media(min-width:761px){.build-layout svg{max-height:calc(100svh - 340px)}}
@media(max-width:760px){.build-layout{margin-top:14px}.build-heading h2{margin:0 0 8px}}
