/* Shared foundation for all three BrightNest demo designs. Colours and fonts come from tokens each design sets. */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;transition:background-color .25s,color .25s;overflow-x:clip}
img{display:block;max-width:100%}
h1,h2,h3,h4,p,ul,ol,figure,fieldset{margin:0;padding:0}
fieldset{border:0;min-width:0}
ul,ol{list-style:none}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
summary{cursor:pointer}
:focus-visible{outline:3px solid var(--focus,var(--brand));outline-offset:3px;border-radius:4px}
.i{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;background:var(--brand);color:var(--on-brand);padding:10px 16px;border-radius:8px;z-index:100}
.skip:focus{top:12px}
.wrap{width:min(1200px,100% - 48px);margin-inline:auto}
@media(max-width:640px){.wrap{width:calc(100% - 32px)}}

/* theme toggle */
.theme-btn{width:44px;height:44px;display:inline-grid;place-items:center;border-radius:999px;border:1px solid var(--line);background:transparent;transition:background-color .2s,border-color .2s}
.theme-btn:hover{background:var(--surface-2)}
[data-theme=light] .theme-btn .i-moon-w{display:inline}
[data-theme=light] .theme-btn .i-sun-w{display:none}
[data-theme=dark] .theme-btn .i-moon-w{display:none}
[data-theme=dark] .theme-btn .i-sun-w{display:inline}
.theme-btn svg{display:block}

/* "sample" chip */
.sample{display:inline-flex;align-items:center;gap:5px;font:600 11px/1 var(--font-body);letter-spacing:.06em;text-transform:uppercase;padding:5px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted);border:1px dashed var(--line);white-space:nowrap}

/* reveal on scroll */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1)}
.js .reveal.in{opacity:1;transform:none}

/* estimator */
.est{display:grid;gap:18px}
.est-label,.est legend{font-size:14px;font-weight:600;margin-bottom:8px;display:block;padding:0}
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;background:var(--surface-2);padding:4px;border-radius:calc(var(--radius) * .7)}
.seg label{position:relative;display:grid;place-items:center;text-align:center;min-height:44px;padding:6px 4px;font-size:14px;font-weight:600;line-height:1.2;border-radius:calc(var(--radius) * .5);cursor:pointer;color:var(--muted);transition:background-color .18s,color .18s}
.seg input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.seg label:has(input:checked){background:var(--surface);color:var(--text);box-shadow:0 1px 4px rgb(0 0 0 / .14)}
.seg label:has(input:focus-visible){outline:3px solid var(--focus,var(--brand));outline-offset:2px}
.seg-6{grid-auto-flow:row;grid-template-columns:repeat(3,1fr);grid-auto-columns:auto}
.seg-6 label{font-size:13px;overflow-wrap:anywhere}
.est-steppers{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.stepper{display:flex;align-items:center;justify-content:space-between;background:var(--surface-2);border-radius:calc(var(--radius) * .7);padding:4px}
.stepper button{width:44px;height:44px;border:0;background:var(--surface);border-radius:calc(var(--radius) * .5);display:grid;place-items:center;transition:transform .12s,opacity .15s}
.stepper button:active{transform:scale(.94)}
.stepper button:disabled{opacity:.4;cursor:not-allowed}
.stepper output{font-weight:700;font-variant-numeric:tabular-nums}
.est-more summary{display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:600;min-height:44px;list-style:none}
.est-more summary::-webkit-details-marker{display:none}
.est-more summary .i{transition:transform .2s}
.est-more[open] summary .i{transform:rotate(180deg)}
.chips{display:flex;flex-wrap:wrap;gap:8px;padding-top:4px}
.chips label{position:relative;display:inline-flex;align-items:center;min-height:40px;padding:6px 12px;font-size:14px;border:1px solid var(--line);border-radius:999px;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}
.chips input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.chips label:has(input:checked){background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.chips label:has(input:focus-visible){outline:3px solid var(--focus,var(--brand));outline-offset:2px}
.est-out{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px 16px;border-top:1px solid var(--line);padding-top:16px}
.est-price{font-family:var(--font-display);font-size:44px;line-height:1;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.est-price small{font:500 14px var(--font-body);letter-spacing:0;color:var(--muted);margin-left:4px}
.est-price{white-space:nowrap}
@media(max-width:440px){.est-out{grid-template-columns:minmax(0,1fr)}.est-out .btn{width:100%}}
.est-note{grid-column:1/-1;font-size:14px;color:var(--muted);line-height:1.45}
.est-foot{font-size:13px;color:var(--muted);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.est-bar{display:grid;grid-template-columns:repeat(4,1fr) auto auto;gap:14px;align-items:end}
.est-bar label{font-size:13px;font-weight:600;display:grid;gap:6px}
.est-bar select{width:100%;min-height:48px;padding:0 12px;background:var(--surface-2);border:1px solid var(--line);border-radius:calc(var(--radius) * .6)}
.est-bar .est-price{font-size:38px}
.est-bar-out{display:grid;gap:2px;min-width:132px}
.est-bar-out .est-note{font-size:12px}
@media(max-width:980px){.est-bar{grid-template-columns:1fr 1fr}.est-bar-out,.est-bar>a{grid-column:1/-1}.est-bar>a{justify-content:center}}

/* forms */
.field{display:grid;gap:6px}
.field label{font-size:14px;font-weight:600}
.field input,.field textarea,.field select{width:100%;min-height:48px;padding:11px 14px;background:var(--surface);border:1px solid var(--line);border-radius:calc(var(--radius) * .6);transition:border-color .15s}
.field input:focus,.field textarea:focus{border-color:var(--brand)}
.field .err{font-size:13px;color:var(--danger,#B3261E);display:none}
.field.bad input,.field.bad textarea{border-color:var(--danger,#B3261E)}
.field.bad .err{display:block}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-grid .full{grid-column:1/-1}
@media(max-width:560px){.form-grid{grid-template-columns:1fr}}
.est-summary{font-size:14px;padding:10px 14px;border-radius:calc(var(--radius) * .6);background:var(--surface-2);display:none}
.est-summary.on{display:block}
.form-done{display:none;padding:24px;border-radius:var(--radius);background:var(--surface-2)}
.form-done.on{display:block}
.form-done h3{margin-bottom:6px}
.postal{display:flex;gap:8px;flex-wrap:wrap}
.postal input{flex:1 1 150px;min-width:0;min-height:48px;padding:10px 14px;text-transform:uppercase;background:var(--surface);border:1px solid var(--line);border-radius:calc(var(--radius) * .6)}
.postal-out{margin-top:10px;font-size:15px;min-height:1.5em;font-weight:500}

/* demo switcher: goes away when the final site ships */
.demo-pill{position:fixed;right:16px;bottom:16px;z-index:60;display:flex;align-items:center;gap:6px;padding:6px 8px 6px 14px;background:rgb(15 18 22 / .92);color:#fff;border-radius:999px;font:500 13px/1 system-ui,-apple-system,sans-serif;box-shadow:0 8px 28px rgb(0 0 0 / .32);backdrop-filter:blur(8px);white-space:nowrap;max-width:calc(100vw - 16px);border:1px solid rgb(255 255 255 / .16)}
.demo-pill .lbl{opacity:.75;margin-right:4px}
.demo-pill a{display:grid;place-items:center;min-width:36px;height:36px;border-radius:999px;color:#fff;text-decoration:none;padding:0 8px}
.demo-pill a:hover{background:rgb(255 255 255 / .16)}
.demo-pill a[aria-current]{background:#fff;color:#111;font-weight:700}
.demo-pill .all{border-left:1px solid rgb(255 255 255 / .22);border-radius:0 999px 999px 0;margin-left:2px;padding:0 12px}
.demo-pill a:focus-visible{outline:2px solid #fff;outline-offset:1px}
.demo-pill{transition:opacity .2s,transform .2s}
.demo-pill.away{opacity:0;pointer-events:none}
.toast{position:fixed;left:50%;bottom:72px;transform:translate(-50%,10px);z-index:70;background:#111;color:#fff;padding:12px 16px;border-radius:12px;font:500 14px/1.35 system-ui,-apple-system,sans-serif;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;width:max-content;max-width:calc(100vw - 32px);text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* mobile call/price bar */
.mobile-cta{display:none}
@media(max-width:760px){
  .mobile-cta{position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;grid-template-columns:1fr 1.4fr;gap:8px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line)}
  .mobile-cta a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border-radius:calc(var(--radius) * .6);font-weight:700;text-decoration:none;font-size:15px}
  body{padding-bottom:calc(66px + env(safe-area-inset-bottom))}
  .demo-pill{right:auto;left:50%;transform:translateX(-50%);bottom:calc(72px + env(safe-area-inset-bottom));padding-left:10px;font-size:12px}
  .demo-pill .lbl{display:none}
  .demo-pill a{height:32px;min-width:32px}
  .toast{bottom:132px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .js .reveal{opacity:1;transform:none}
}
@media(max-width:400px){.demo-pill a{min-width:28px;padding:0 4px}.demo-pill .all{padding:0 8px}.demo-pill{padding-left:6px}}
