:root {
  --navy: #071a2d;
  --navy-2: #0c2740;
  --ink: #13263a;
  --gold: #e7b85e;
  --gold-light: #f5d78f;
  --cream: #f7f4ed;
  --white: #fff;
  --muted: #667382;
  --line: rgba(12, 39, 64, .14);
  --shadow: 0 25px 70px rgba(4, 21, 36, .18);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: "DM Sans", Arial, sans-serif; color: var(--ink); background: #fff; -webkit-font-smoothing: antialiased; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
.container { width: min(1180px, calc(100% - 48px)); margin: 0 auto; }
.section-pad { padding: 110px 0; }

.season-bar { height: 38px; display: flex; align-items: center; justify-content: center; gap: 9px; background: #d9a94f; color: #10263a; font-size: 12px; font-weight: 700; letter-spacing: .03em; }
.season-bar a { margin-left: 14px; border-bottom: 1px solid rgba(16, 38, 58, .5); }
.season-short { display: none; }
.pulse-dot { width: 7px; height: 7px; background: #fff5cf; border-radius: 50%; box-shadow: 0 0 0 5px rgba(255,255,255,.16); animation: pulse 1.8s infinite; }
@keyframes pulse { 50% { box-shadow: 0 0 0 9px rgba(255,255,255,0); } }

.site-header { height: 82px; padding: 0 max(28px, calc((100vw - 1180px)/2)); display: flex; align-items: center; justify-content: space-between; position: absolute; top: 38px; left: 0; right: 0; z-index: 5; border-bottom: 1px solid rgba(255,255,255,.15); color: #fff; }
.brand { display: inline-flex; align-items: center; gap: 11px; }
.brand-mark { width: 39px; height: 39px; display: grid; place-items: center; color: var(--gold); }
.brand-mark svg { width: 100%; fill: none; stroke: currentColor; stroke-width: 2.4; }
.brand-mark .spark { stroke: #fff; stroke-dasharray: 3 4; }
.brand-text { font-family: Manrope, sans-serif; font-size: 16px; line-height: 1; letter-spacing: .08em; white-space: nowrap; }
.brand-text strong { color: var(--gold-light); }
.brand-text small { display: block; margin-top: 6px; font-size: 7px; letter-spacing: .3em; opacity: .7; }
.header-actions { display: flex; align-items: center; gap: 24px; }
.header-note { font-size: 11px; opacity: .7; padding-right: 24px; border-right: 1px solid rgba(255,255,255,.18); }
.phone-link { display: flex; gap: 9px; align-items: center; }
.phone-link span:last-child { display: flex; flex-direction: column; }
.phone-link small { font-size: 9px; opacity: .65; }
.phone-link strong { font-size: 13px; margin-top: 2px; }
.phone-icon { color: var(--gold-light); }

.button { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 15px; padding: 0 27px; border: 0; cursor: pointer; border-radius: 3px; font-weight: 800; font-size: 13px; letter-spacing: .02em; transition: transform .2s, box-shadow .2s, background .2s; }
.button:hover { transform: translateY(-2px); }
.button-gold { color: #102237; background: linear-gradient(135deg, var(--gold-light), var(--gold)); box-shadow: 0 10px 28px rgba(231,184,94,.2); }
.button-gold:hover { box-shadow: 0 13px 32px rgba(231,184,94,.35); }
.button-small { min-height: 40px; padding: 0 18px; font-size: 11px; }
.button-wide { width: 100%; }

.hero { min-height: 825px; padding-top: 120px; display: flex; align-items: center; color: #fff; background: var(--navy) url("assets/hero-christmas-home-v2.png") center/cover no-repeat; position: relative; overflow: hidden; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3,15,28,.96) 0%, rgba(3,15,28,.88) 34%, rgba(3,15,28,.43) 62%, rgba(3,15,28,.05) 100%), linear-gradient(0deg, rgba(3,15,28,.45), transparent 45%); }
.hero-grid { display: grid; grid-template-columns: 1fr 420px; gap: 75px; align-items: center; position: relative; z-index: 2; }
.hero-copy { max-width: 610px; padding-top: 20px; }
.eyebrow { display: inline-flex; gap: 9px; align-items: center; color: var(--gold-light); font-size: 10px; font-weight: 800; letter-spacing: .19em; text-transform: uppercase; }
.eyebrow.dark { color: #a47a2d; }
.hero h1, .section-heading h2, .reviews-header h2, .faq-intro h2, .final-cta h2 { margin: 20px 0 22px; font-family: Manrope, sans-serif; font-size: clamp(54px, 5vw, 78px); line-height: .98; letter-spacing: -.055em; color: #fff; }
h1 em, h2 em { font-style: normal; color: var(--gold-light); }
.hero-lead { max-width: 540px; font-size: 18px; line-height: 1.65; color: rgba(255,255,255,.76); }
.hero-benefits { display: grid; grid-template-columns: repeat(2, max-content); gap: 11px 30px; margin: 28px 0 35px; font-size: 13px; color: rgba(255,255,255,.88); }
.hero-benefits i { display: inline-grid; place-items: center; margin-right: 8px; width: 18px; height: 18px; font-style: normal; color: var(--navy); background: var(--gold); border-radius: 50%; font-size: 10px; }
.hero-trust { display: flex; align-items: center; gap: 12px; border-top: 1px solid rgba(255,255,255,.15); padding-top: 25px; width: max-content; }
.avatar-stack { display: flex; }
.avatar-stack span { width: 32px; height: 32px; margin-left: -7px; display: grid; place-items: center; border: 2px solid var(--navy); background: #d8d2c7; color: var(--ink); border-radius: 50%; font-size: 10px; font-weight: 800; }
.avatar-stack span:first-child { margin-left: 0; }
.stars { color: var(--gold); letter-spacing: 2px; font-size: 13px; }
.hero-trust small { font-size: 10px; color: rgba(255,255,255,.6); }

.estimate-card { background: rgba(255,255,255,.98); color: var(--ink); border-radius: 5px; box-shadow: var(--shadow); overflow: hidden; }
.form-progress { height: 4px; background: #e7e5df; }
.form-progress span { display: block; height: 100%; width: 33.333%; background: var(--gold); transition: width .35s ease; }
.form-topline { display: flex; justify-content: space-between; padding: 16px 32px 12px; font-size: 8px; font-weight: 800; letter-spacing: .14em; color: #8c9398; border-bottom: 1px solid #eeeae3; }
.form-topline span:last-child { letter-spacing: .02em; font-weight: 600; text-transform: none; }
#estimateForm { padding: 27px 32px 30px; min-height: 385px; }
.form-step { display: none; animation: slideIn .3s ease; }
.form-step.active { display: block; }
@keyframes slideIn { from { opacity: 0; transform: translateX(12px); } }
.form-kicker { font-size: 9px; color: #a37b31; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; }
.form-step h2, .form-success h2 { margin: 8px 0 8px; font: 800 26px/1.16 Manrope, sans-serif; letter-spacing: -.035em; }
.form-step > p, .form-success p { color: var(--muted); font-size: 12px; line-height: 1.6; margin: 0 0 20px; }
.form-step label { display: block; margin: 12px 0 6px; font-size: 10px; font-weight: 800; }
input { width: 100%; height: 48px; border: 1px solid #d8dce0; border-radius: 3px; padding: 0 14px; outline: none; color: var(--ink); background: #fff; }
input:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(231,184,94,.16); }
input.invalid { border-color: #bd493d; }
.input-with-icon { position: relative; margin-bottom: 15px; }
.input-with-icon span { position: absolute; left: 14px; top: 13px; color: #a47a2d; z-index: 1; }
.input-with-icon input { padding-left: 39px; }
.choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 22px; }
.choice { position: relative; min-height: 72px; display: flex !important; flex-direction: column; justify-content: center; align-items: center; gap: 4px; margin: 0 !important; border: 1px solid #dddfe1; border-radius: 4px; cursor: pointer; transition: .2s; }
.choice input { position: absolute; opacity: 0; }
.choice span { font-size: 20px; color: #a47a2d; }
.choice:has(input:checked) { border-color: var(--gold); background: #fff9eb; box-shadow: inset 0 0 0 1px var(--gold); }
.form-buttons { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 20px; }
.back-step, .text-button { border: 0; background: none; color: #7b858e; font-size: 11px; font-weight: 700; cursor: pointer; }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.privacy { display: block; margin-top: 14px; text-align: center; color: #8d969e; font-size: 8px; }
.card-footer { padding: 13px; text-align: center; color: #7e878e; background: #f4f2ed; font-size: 8px; letter-spacing: .03em; }
.card-footer span { margin: 0 6px; color: var(--gold); }
.form-success { display: none; text-align: center; padding: 26px 5px; }
.form-success.active { display: block; }
.success-icon { width: 54px; height: 54px; margin: 0 auto 18px; display: grid; place-items: center; border-radius: 50%; background: #d7eadf; color: #17613e; font-size: 25px; }
.text-button { color: #9b742d; border-bottom: 1px solid; }
.scroll-cue { position: absolute; bottom: 20px; left: 50%; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 7px; letter-spacing: .23em; color: rgba(255,255,255,.55); }
.scroll-cue i { font-size: 16px; font-style: normal; color: var(--gold); }

.promise-strip { background: #fff; border-bottom: 1px solid var(--line); }
.promise-grid { min-height: 115px; display: grid; grid-template-columns: 1.45fr repeat(4, 1fr); align-items: center; }
.promise-grid > span { min-height: 60px; padding: 8px 23px; display: grid; grid-template-columns: 26px 1fr; align-content: center; border-left: 1px solid var(--line); }
.promise-grid .promise-title { display: block; padding-left: 0; border: 0; color: #66717a; font-size: 13px; line-height: 1.45; }
.promise-title strong { color: var(--ink); }
.promise-grid i { grid-row: 1/3; color: var(--gold); font: 800 10px Manrope; }
.promise-grid b { font: 800 11px Manrope; }
.promise-grid small { margin-top: 4px; color: #8a9399; font-size: 8px; }

.section-heading h2, .reviews-header h2, .faq-intro h2 { color: var(--ink); font-size: clamp(40px, 4vw, 56px); }
.section-heading h2 em, .reviews-header h2 em, .faq-intro h2 em { color: #b28536; }
.section-heading.centered { text-align: center; }
.section-heading.centered p { max-width: 540px; margin: -8px auto 40px; color: var(--muted); font-size: 14px; }
.video-section { background: var(--cream); }
.video-card { width: min(920px, 100%); height: 490px; margin: 0 auto; padding: 0; display: block; position: relative; border: 0; cursor: pointer; overflow: hidden; box-shadow: var(--shadow); color: #fff; }
.video-card img,.video-card video { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.video-card:hover img,.video-card:hover video { transform:scale(1.025); }
.video-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,22,38,.2), transparent 55%), linear-gradient(0deg, rgba(3,18,32,.8), transparent 60%); }
.play-button { position:absolute; left:50%; top:46%; width:76px; height:76px; display:grid; place-items:center; transform:translate(-50%,-50%); border-radius:50%; border:1px solid rgba(255,255,255,.75); color:#fff; background:rgba(255,255,255,.15); backdrop-filter:blur(8px); cursor:pointer; }
#campaignVideo [hidden] { display:none !important; }
.play-button::after { content:""; position: absolute; inset: 8px; border-radius: 50%; background: #fff; }
.play-button i { position: relative; z-index: 1; color: var(--navy); font-style: normal; font-size: 19px; margin-left: 3px; }
.video-caption { position: absolute; left: 35px; bottom: 28px; text-align: left; display: flex; flex-direction: column; }
.video-caption small { color: var(--gold-light); font-size: 8px; letter-spacing: .16em; font-weight: 800; }
.video-caption strong { margin-top: 6px; font: 700 17px Manrope; }
.video-caption em { margin-top: 3px; font-style: normal; font-size: 9px; opacity: .7; }
.trust-badges { width: min(920px, 100%); margin: 38px auto 0; display: grid; grid-template-columns: repeat(4,1fr); }
.trust-badges > span { display: grid; grid-template-columns: 36px 1fr; padding: 4px 20px; border-right: 1px solid var(--line); }
.trust-badges > span:last-child { border: 0; }
.trust-badges i { grid-row: 1/3; width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid #d8c08f; color: #a47a2d; border-radius: 50%; font-style: normal; }
.trust-badges b { font: 800 10px Manrope; }
.trust-badges small { margin-top: 3px; color: #879098; font-size: 8px; }

.reviews-section { overflow: hidden; }
.reviews-header { display: flex; align-items: end; justify-content: space-between; margin-bottom: 45px; }
.reviews-header h2 { margin-bottom: 0; }
.rating-summary { display: grid; grid-template-columns: auto auto; align-items: center; gap: 4px 12px; text-align: right; }
.rating-summary .stars { grid-column: 1/3; }
.rating-summary strong { font: 800 26px Manrope; }
.rating-summary span { max-width: 90px; color: #879098; font-size: 9px; }
.review-window { overflow: hidden; margin: 0 -10px; padding: 15px 10px 25px; }
.review-track { display: flex; gap: 20px; transition: transform .45s cubic-bezier(.2,.7,.2,1); }
.review-card { flex: 0 0 calc((100% - 40px)/3); min-height: 305px; padding: 35px; display: flex; flex-direction: column; position: relative; background: #fff; border: 1px solid var(--line); box-shadow: 0 16px 45px rgba(5,24,40,.07); }
.review-card.featured { transform: translateY(-10px); background: var(--navy); color: #fff; }
.review-card .quote-mark { position: absolute; right: 25px; top: 15px; color: rgba(182,137,54,.18); font: 80px/1 Georgia,serif; }
.review-card p { flex: 1; margin: 22px 0 28px; font: 500 15px/1.75 Manrope; letter-spacing: -.015em; }
.review-card footer { display: flex; align-items: center; gap: 12px; }
.review-avatar { width: 36px; height: 36px; display: grid; place-items: center; background: #ded8cf; color: var(--ink); border-radius: 50%; font-size: 9px; font-weight: 800; }
.review-card footer span:last-child { display: flex; flex-direction: column; }
.review-card footer strong { font-size: 10px; }
.review-card footer small { margin-top: 4px; color: #8a949b; font-size: 8px; }
.carousel-controls { display: flex; justify-content: center; align-items: center; gap: 20px; }
.carousel-controls button { width: 39px; height: 39px; border: 1px solid var(--line); background: #fff; color: var(--ink); cursor: pointer; }
.dots { display: flex; gap: 7px; }
.dots span { width: 22px; height: 2px; background: #d8dadd; }
.dots span.active { background: var(--gold); }
.prototype-disclaimer { margin: 20px 0 0; text-align: center; color: #9aa1a6; font-size: 9px; }

.projects-section { color: #fff; background: var(--navy); }
.section-heading.split { display: flex; justify-content: space-between; align-items: end; margin-bottom: 45px; }
.section-heading.split h2 { margin-bottom: 0; color: #fff; }
.section-heading.split p { width: 335px; color: rgba(255,255,255,.55); line-height: 1.7; font-size: 13px; }
.project-grid { height: 520px; display: grid; grid-template-columns: 1.35fr 1fr; grid-template-rows: 1fr 1fr; gap: 15px; }
.project { padding: 0; border: 0; position: relative; overflow: hidden; cursor: pointer; color: #fff; background: #132b42; }
.project-large { grid-row: 1/3; }
.project img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.project:hover img { transform: scale(1.04); }
.project::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(3,18,32,.8),transparent 55%); }
.project > span { position:absolute; z-index:1; left:25px; bottom:23px; display:flex; flex-direction:column; text-align:left; }
.project small { color:var(--gold-light); font-size:8px; letter-spacing:.18em; }
.project b { margin-top:6px; font:700 15px Manrope; }
.center-cta { margin-top: 40px; text-align: center; }
.button-outline-light { color: #fff; border: 1px solid rgba(255,255,255,.35); background: transparent; }

.process-section { background: var(--cream); }
.process-grid { margin-top: 60px; display: grid; grid-template-columns: repeat(3,1fr); }
.process-grid article { min-height: 260px; padding: 35px 50px; position: relative; text-align: center; border-right: 1px solid var(--line); }
.process-grid article:last-child { border:0; }
.process-number { position:absolute; top:0; left:28px; color:#c5bda9; font:800 9px Manrope; }
.process-grid i { width:68px; height:68px; margin:0 auto 24px; display:grid; place-items:center; border:1px solid #d8c494; border-radius:50%; color:#a47a2d; font-size:25px; font-style:normal; }
.process-grid h3 { font:800 17px Manrope; }
.process-grid p { color:var(--muted); font-size:12px; line-height:1.7; }

.faq-grid { display:grid; grid-template-columns: .75fr 1.25fr; gap:100px; }
.faq-intro p { color:var(--muted); font-size:12px; }
.text-link { color:#9b742d; font-size:12px; font-weight:800; border-bottom:1px solid #d9bf8c; padding-bottom:4px; }
.accordion details { border-bottom:1px solid var(--line); }
.accordion summary { padding:23px 0; display:flex; justify-content:space-between; align-items:center; cursor:pointer; list-style:none; font:700 14px Manrope; }
.accordion summary::-webkit-details-marker { display:none; }
.accordion summary span { font-size:20px; font-weight:400; color:#a47a2d; transition: transform .2s; }
.accordion details[open] summary span { transform:rotate(45deg); }
.accordion p { margin:-5px 45px 24px 0; color:var(--muted); font-size:12px; line-height:1.7; }

.final-cta { height:540px; position:relative; color:#fff; display:flex; align-items:center; text-align:center; overflow:hidden; }
.final-cta-image { position:absolute; inset:0; background:url("assets/hero-christmas-home-v2.png") center 66%/cover; }
.final-cta-overlay { position:absolute; inset:0; background:rgba(3,18,32,.72); }
.final-cta-content { position:relative; }
.final-cta h2 { font-size:clamp(42px,4vw,60px); margin-bottom:16px; }
.final-cta p { color:rgba(255,255,255,.7); font-size:14px; margin-bottom:27px; }
.final-cta-content > small { display:block; margin-top:15px; color:rgba(255,255,255,.5); font-size:8px; }

.site-footer { padding:60px 0 20px; color:#d9e0e5; background:#041321; }
.footer-grid { display:grid; grid-template-columns:1.7fr .8fr 1fr; gap:60px; padding-bottom:45px; }
.footer-grid > div { display:flex; flex-direction:column; gap:10px; }
.footer-brand { margin-bottom:10px; color:#fff; }
.footer-grid p { max-width:310px; color:#758492; font-size:11px; line-height:1.7; }
.footer-grid small { color:var(--gold); font-size:8px; letter-spacing:.16em; font-weight:800; margin-bottom:8px; }
.footer-grid a,.footer-grid span { font-size:11px; color:#9ca8b1; }
.footer-bottom { padding-top:18px; border-top:1px solid rgba(255,255,255,.08); display:flex; justify-content:space-between; color:#687682; font-size:8px; }

.availability-toast { position:fixed; z-index:40; inset:0; display:grid; place-items:center; padding:24px; visibility:hidden; opacity:0; transition:opacity .3s ease,visibility .3s; }
.availability-toast.show { visibility:visible; opacity:1; }
.availability-backdrop { position:absolute; inset:0; background:rgba(2,14,22,.76); backdrop-filter:blur(7px); }
.availability-modal { width:min(900px,100%); min-height:510px; position:relative; display:grid; grid-template-columns:.95fr 1.05fr; overflow:hidden; background:#fff; color:var(--ink); box-shadow:0 35px 110px rgba(0,0,0,.45); transform:translateY(24px) scale(.98); transition:transform .4s cubic-bezier(.2,.8,.2,1); }
.availability-modal { cursor:pointer; }
.availability-modal .toast-close { cursor:pointer; }
.availability-toast.show .availability-modal { transform:none; }
.availability-visual { min-height:510px; padding:30px; display:flex; flex-direction:column; justify-content:space-between; position:relative; color:#fff; background:url("assets/hero-christmas-home-v2.png") 69% center/cover; }
.availability-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(3,18,28,.12),rgba(3,18,28,.9)); }
.availability-visual > * { position:relative; z-index:1; }
.availability-badge { width:max-content; display:flex; align-items:center; gap:8px; padding:9px 12px; color:#fff; background:rgba(4,25,32,.72); backdrop-filter:blur(8px); font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.12em; }
.availability-badge i { width:7px; height:7px; border-radius:50%; background:#efbb4f; box-shadow:0 0 0 5px rgba(239,187,79,.16); }
.availability-visual small { color:#f3c767; font-size:9px; letter-spacing:.17em; font-weight:800; }
.availability-visual strong { display:block; margin-top:9px; font:700 31px/1.08 Manrope,sans-serif; }
.availability-content { padding:55px 52px 42px; display:flex; flex-direction:column; justify-content:center; }
.toast-close { position:absolute; z-index:2; right:18px; top:15px; width:38px; height:38px; border:1px solid #dfe2e2; border-radius:50%; background:#fff; color:#526168; cursor:pointer; font-size:22px; line-height:1; }
.availability-content h2 { margin:13px 0 15px; font:800 35px/1.08 Manrope,sans-serif; letter-spacing:0; }
.availability-content > p { margin:0; color:var(--muted); font-size:13px; line-height:1.65; }
.availability-points { display:grid; grid-template-columns:1fr 1fr; gap:11px 15px; padding:22px 0 25px; margin:22px 0 0; border-top:1px solid var(--line); }
.availability-points span { font-size:11px; font-weight:700; }
.availability-points i { width:19px; height:19px; margin-right:6px; display:inline-grid; place-items:center; border-radius:50%; color:#173f3b; background:#f0c65e; font-size:9px; font-style:normal; }
.availability-content .button { width:100%; }
.availability-note { margin-top:13px; text-align:center; color:#8c969a; font-size:8px; letter-spacing:.05em; }
body.popup-open { overflow:hidden; }
.lightbox { position:fixed; z-index:30; inset:0; display:none; place-items:center; padding:5vw; background:rgba(2,12,22,.94); }
.lightbox.open { display:grid; }
.lightbox img { max-height:86vh; box-shadow:0 20px 80px #000; }
.lightbox button { position:absolute; top:20px; right:25px; color:#fff; border:0; background:none; font-size:35px; cursor:pointer; }
.mobile-cta { display:none; }

@media (max-width: 980px) {
  .site-header { position:absolute; }
  .header-note,.phone-link { display:none; }
  .hero { min-height:auto; padding:170px 0 80px; }
  .hero-grid { grid-template-columns:1fr; gap:45px; }
  .hero-copy { max-width:650px; }
  .estimate-card { width:min(500px,100%); }
  .scroll-cue { display:none; }
  .promise-grid { grid-template-columns:1fr 1fr; padding:25px 0; }
  .promise-grid .promise-title { grid-column:1/3; margin-bottom:15px; }
  .promise-grid > span:nth-child(even) { border-left:0; }
  .review-card { flex-basis:calc((100% - 20px)/2); }
  .trust-badges { grid-template-columns:1fr 1fr; gap:20px 0; }
  .trust-badges > span:nth-child(2) { border:0; }
  .faq-grid { gap:50px; }
}

@media (max-width: 680px) {
  .container { width:min(100% - 32px, 520px); }
  .section-pad { padding:75px 0; }
  .season-bar { padding:0 10px; font-size:9px; }
  .season-bar a { margin-left:3px; }
  .season-full { display:none; }
  .season-short { display:inline; }
  .site-header { height:70px; padding:0 16px; top:38px; }
  .header-actions .button { display:none; }
  .brand-mark { width:33px;height:33px; }
  .brand-text { font-size:14px; }
  .hero { padding-top:145px; background-position:63% center; }
  .hero-shade { background:linear-gradient(90deg,rgba(3,15,28,.94),rgba(3,15,28,.62)),linear-gradient(0deg,rgba(3,15,28,.7),transparent); }
  .hero h1 { font-size:52px; }
  .hero-lead { font-size:15px; }
  .hero-benefits { grid-template-columns:1fr 1fr; gap:10px; }
  #estimateForm { padding:25px 22px; }
  .form-topline { padding-left:22px;padding-right:22px; }
  .promise-grid { grid-template-columns:1fr; }
  .promise-grid .promise-title { grid-column:auto; }
  .promise-grid > span { border-left:0; border-top:1px solid var(--line); }
  .promise-grid > span:nth-child(2) { border-top:0; }
  .section-heading h2,.reviews-header h2,.faq-intro h2 { font-size:39px; }
  .video-card { height:430px; }
  .video-card img { object-position:40% center; }
  .play-button { width:65px;height:65px; }
  .trust-badges { grid-template-columns:1fr; }
  .trust-badges > span { border-right:0; border-bottom:1px solid var(--line); padding:13px; }
  .reviews-header { align-items:start; flex-direction:column; gap:25px; }
  .rating-summary { text-align:left; }
  .review-card { flex-basis:100%; }
  .section-heading.split { display:block; }
  .section-heading.split p { width:auto; }
  .project-grid { height:auto; display:block; }
  .project { height:270px; width:100%; margin-bottom:14px; }
  .process-grid { grid-template-columns:1fr; }
  .process-grid article { border-right:0; border-bottom:1px solid var(--line); }
  .faq-grid { grid-template-columns:1fr; gap:30px; }
  .final-cta { height:570px; }
  .footer-grid { grid-template-columns:1fr; gap:30px; }
  .availability-toast { padding:0; place-items:end center; }
  .availability-modal { width:100%; min-height:0; max-height:92vh; display:block; overflow:auto; }
  .availability-visual { min-height:190px; padding:20px; background-position:center 58%; }
  .availability-visual strong { font-size:24px; }
  .availability-content { padding:30px 24px 28px; }
  .availability-content h2 { padding-right:18px; font-size:27px; }
  .availability-content > p { font-size:12px; }
  .availability-points { gap:10px; padding:17px 0 19px; margin-top:17px; }
  .availability-points span { font-size:10px; }
  .mobile-cta { position:fixed; z-index:18; left:0; right:0; bottom:0; display:block; padding:9px 12px; background:rgba(4,19,33,.96); backdrop-filter:blur(8px); }
  .mobile-cta a { min-height:54px; display:flex; align-items:center; justify-content:space-between; padding:0 18px; color:#102237; background:linear-gradient(135deg,var(--gold-light),var(--gold)); }
  .mobile-cta span { display:flex;flex-direction:column; }
  .mobile-cta small { font-size:8px; }
  .mobile-cta strong { font-size:12px; }
  body { padding-bottom:70px; }
}

@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior:auto !important; animation:none !important; transition:none !important; }
}

/* 2026 campaign refresh */
:root { --navy:#071827; --navy-2:#102d32; --ink:#10232d; --gold:#e7b34f; --gold-light:#ffe29a; --cream:#f5f3ee; --green:#173f3b; --shadow:0 30px 80px rgba(2,14,22,.24); }
.season-bar { background:#e3b653; color:#14242a; letter-spacing:.06em; }
.site-header { height:88px; background:linear-gradient(180deg,rgba(3,17,27,.38),transparent); }
.brand-mark { width:43px; height:43px; }
.brand-text { font-size:17px; }
.button { border-radius:2px; text-transform:uppercase; letter-spacing:.08em; }
.button-gold { background:#e9b84f; box-shadow:0 12px 32px rgba(231,179,79,.25); }
.hero { min-height:900px; padding-top:126px; background-position:center; }
.hero::before { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:radial-gradient(circle at 78% 47%,rgba(255,205,105,.12),transparent 28%); }
.hero-shade { background:linear-gradient(90deg,rgba(3,17,28,.93) 0%,rgba(3,17,28,.82) 31%,rgba(3,17,28,.28) 56%,rgba(3,17,28,.04) 100%),linear-gradient(0deg,rgba(3,17,28,.62),transparent 42%); }
.hero-grid { grid-template-columns:minmax(0,1fr) 410px; gap:88px; }
.hero-copy { max-width:650px; padding-top:34px; }
.hero h1 { margin:25px 0; max-width:690px; font-size:clamp(62px,5.4vw,86px); line-height:.94; letter-spacing:0; }
.hero h1 em { color:#ffd87e; }
.hero-lead { max-width:565px; font-size:19px; line-height:1.6; color:rgba(255,255,255,.82); }
.eyebrow { font-size:10px; letter-spacing:.2em; }
.hero-copy .eyebrow span { width:20px; height:20px; display:grid; place-items:center; border:1px solid rgba(255,216,126,.55); border-radius:50%; }
.hero-benefits { display:flex; flex-wrap:wrap; gap:10px 22px; margin:31px 0 37px; }
.hero-benefits span { white-space:nowrap; }
.hero-benefits i { background:transparent; color:#ffd87e; border:1px solid rgba(255,216,126,.55); }
.hero-trust { gap:22px; width:auto; max-width:510px; }
.hero-rating,.hero-proof { display:flex; align-items:center; gap:12px; }
.hero-rating > strong,.hero-proof > strong { font:700 27px/1 Manrope,sans-serif; color:#fff; }
.hero-rating small,.hero-proof small { display:block; color:rgba(255,255,255,.58); font-size:9px; line-height:1.45; }
.trust-divider { width:1px; height:38px; background:rgba(255,255,255,.17); }
.estimate-card { border-radius:2px; border-top:5px solid var(--gold); box-shadow:0 35px 90px rgba(0,9,16,.38); }
.form-progress { display:none; }
.form-topline { padding:18px 32px 14px; background:#faf9f6; }
#estimateForm { min-height:360px; padding:34px 32px 32px; }
.form-step h2,.form-success h2 { margin:10px 0; font-size:29px; line-height:1.1; letter-spacing:0; }
.form-step > p,.form-success p { font-size:12px; margin-bottom:23px; }
input { height:54px; border-radius:2px; }
.button-wide { min-height:56px; margin-top:4px; }
.card-footer { padding:14px; }
.promise-strip { position:relative; z-index:3; box-shadow:0 -12px 40px rgba(3,17,28,.12); }
.promise-grid { min-height:126px; }
.promise-grid .promise-title { font-size:14px; }
.promise-grid b { font-size:12px; }
.section-pad { padding:125px 0; }
.section-heading h2,.reviews-header h2,.faq-intro h2 { letter-spacing:0; line-height:1.02; }
.video-card,.project,.review-card { border-radius:2px; }
.projects-section { background:#0c2929; }
.process-section,.video-section { background:#f4f2ed; }
.final-cta-overlay { background:linear-gradient(90deg,rgba(4,24,27,.84),rgba(4,24,27,.58)); }
@media (max-width:980px) { .hero { min-height:auto; padding:175px 0 90px; } .hero-grid { grid-template-columns:1fr; gap:55px; } .estimate-card { width:min(520px,100%); } }
@media (max-width:680px) {
  .site-header { height:72px; }
  .hero { padding:150px 0 50px; background-position:66% center; }
  .hero-shade { background:linear-gradient(90deg,rgba(3,17,28,.94),rgba(3,17,28,.62)),linear-gradient(0deg,rgba(3,17,28,.85),transparent 48%); }
  .hero-copy { padding-top:22px; }
  .hero h1 { font-size:50px; line-height:.96; margin:20px 0; }
  .hero-lead { font-size:15px; line-height:1.55; }
  .hero-benefits { display:grid; grid-template-columns:1fr 1fr; gap:12px 8px; margin:25px 0 30px; font-size:12px; }
  .hero-trust { gap:14px; padding-top:20px; }
  .hero-rating > strong,.hero-proof > strong { font-size:21px; }
  .hero-proof small { font-size:8px; }
  #estimateForm { min-height:345px; padding:28px 22px; }
  .form-step h2,.form-success h2 { font-size:25px; }
  .section-pad { padding:84px 0; }
  .promise-grid { padding:28px 0; }
}

/* Full visual reframe */
.site-header { border-bottom:0; }
.hero { min-height:970px; align-items:end; padding:175px 0 105px; background-position:58% center; }
.hero-shade { background:linear-gradient(90deg,rgba(2,16,22,.91) 0%,rgba(2,16,22,.7) 38%,rgba(2,16,22,.05) 72%),linear-gradient(0deg,rgba(2,16,22,.9) 0%,transparent 52%); }
.hero-grid { width:min(1320px,calc(100% - 80px)); grid-template-columns:minmax(0,1.3fr) 400px; gap:110px; align-items:end; }
.hero-copy { max-width:780px; padding:0 0 15px; }
.hero h1 { max-width:800px; margin:23px 0 27px; font-family:"Playfair Display",Georgia,serif; font-size:clamp(72px,6.2vw,102px); font-weight:600; line-height:.91; }
.hero h1 em { font-style:italic; font-weight:600; }
.hero-lead { max-width:580px; font-size:18px; }
.hero-benefits { margin:29px 0 34px; }
.estimate-card { background:#f7f4ed; border-top:0; border-bottom:6px solid var(--gold); }
.estimate-card.form-attention { animation:formAttention 1.1s ease; }
@keyframes formAttention {
  0%,100% { box-shadow:0 35px 90px rgba(0,9,16,.38); }
  40% { box-shadow:0 0 0 7px rgba(240,190,74,.38),0 35px 100px rgba(0,9,16,.55); }
}
.form-topline { background:#173f3b; color:rgba(255,255,255,.7); border:0; }
.form-topline span:first-child { color:#f1c65e; }
.form-step h2,.form-success h2 { font-family:"Playfair Display",Georgia,serif; font-weight:600; font-size:32px; }
.promise-strip { color:#fff; background:#173f3b; border:0; box-shadow:none; }
.promise-grid > span { border-color:rgba(255,255,255,.14); }
.promise-grid .promise-title,.promise-title strong,.promise-grid b { color:#fff; }
.promise-grid small { color:rgba(255,255,255,.5); }
.section-heading h2,.reviews-header h2,.faq-intro h2,.final-cta h2 { font-family:"Playfair Display",Georgia,serif; font-weight:600; }
.section-heading h2 em,.reviews-header h2 em,.faq-intro h2 em { font-style:italic; }
.video-section { color:#fff; background:#082a2a; }
.video-section .section-heading h2 { color:#fff; font-size:62px; }
.video-section .section-heading.centered p { color:rgba(255,255,255,.63); }
.video-section .eyebrow.dark { color:#efc568; }
.video-card { width:min(1100px,100%); height:auto; aspect-ratio:16/9; box-shadow:0 30px 80px rgba(0,0,0,.4); }
.trust-badges { color:#fff; }
.trust-badges > span { border-color:rgba(255,255,255,.14); }
.trust-badges small { color:rgba(255,255,255,.5); }
.reviews-section { background:#f4f0e7; }
.projects-section { padding-top:140px; background:#061c24; }
.process-grid article { background:#fff; padding-top:45px; }
.process-grid { gap:1px; background:var(--line); }
.faq-section { background:#fff; }
.final-cta { height:650px; }
.final-cta h2 { font-size:68px; }
@media (max-width:980px) {
  .hero { padding:180px 0 90px; }
  .hero-grid { width:min(100% - 48px,720px); grid-template-columns:1fr; gap:55px; }
  .hero h1 { font-size:76px; }
}
@media (max-width:680px) {
  .hero { min-height:auto; padding:155px 0 55px; background-position:68% center; }
  .hero-grid { width:min(100% - 32px,520px); }
  .hero h1 { font-size:53px; line-height:.95; }
  .video-section .section-heading h2 { font-size:43px; }
  .video-card { height:auto; aspect-ratio:9/13; }
  .video-card video { object-position:center; }
  .final-cta h2 { font-size:46px; }
}

/* Official Bright House identity */
.brand { width:118px; height:78px; flex:0 0 118px; display:block; background:url("assets/logo-bright-house.png") center/contain no-repeat; }
.brand .brand-mark,.brand .brand-text { display:none; }
.footer-brand { width:108px; height:76px; margin-bottom:14px; }
@media (max-width:680px) {
  .brand { width:98px; height:64px; flex-basis:98px; }
  .footer-brand { width:105px; height:74px; }
}

/* Refined process section */
.process-section { position:relative; overflow:hidden; color:#fff; background:#0b302e; }
.process-section .section-heading { position:relative; z-index:1; }
.process-section .eyebrow.dark { color:#e9bd5c; }
.process-section .section-heading h2 { color:#fff; }
.process-section .section-heading h2 em { color:#f1c86f; }
.process-grid { position:relative; z-index:1; margin-top:72px; gap:0; background:transparent; border-top:1px solid rgba(255,255,255,.16); border-bottom:1px solid rgba(255,255,255,.16); }
.process-grid article { min-height:310px; padding:56px 54px 48px; display:flex; flex-direction:column; align-items:center; justify-content:center; background:transparent; border-color:rgba(255,255,255,.16); }
.process-grid i { width:82px; height:82px; margin-bottom:28px; border-color:rgba(239,195,97,.58); color:#f0c361; background:rgba(255,255,255,.035); font-size:28px; }
.process-grid h3 { margin:0 0 13px; color:#fff; font-size:20px; }
.process-grid p { max-width:280px; margin:0; color:rgba(255,255,255,.62); font-size:13px; }
.process-grid article:hover i { color:#0b302e; background:#efc361; transform:translateY(-4px); }
.process-grid i { transition:transform .25s ease,background .25s ease,color .25s ease; }
@media (max-width:680px) {
  .process-grid { margin-top:48px; border-bottom:0; }
  .process-grid article { min-height:250px; padding:42px 24px; border-color:rgba(255,255,255,.16); }
  .process-grid i { width:72px; height:72px; }
}

/* Process journey layout */
.process-section { color:var(--ink); background:#f2efe8; }
.process-section > .container { display:grid; grid-template-columns:.8fr 1.2fr; gap:110px; align-items:center; }
.process-section .section-heading.centered { text-align:left; }
.process-section .eyebrow.dark { color:#9d7428; }
.process-section .section-heading h2 { max-width:470px; margin:20px 0 0; color:var(--ink); font-size:clamp(52px,4.4vw,70px); line-height:.98; }
.process-section .section-heading h2 em { display:block; color:#b88730; }
.process-section .process-intro { max-width:400px; margin:28px 0 24px; color:#65737a; font-size:14px; line-height:1.75; text-align:left; }
.process-link { display:inline-flex; align-items:center; gap:18px; padding-bottom:6px; color:#173f3b; border-bottom:1px solid rgba(23,63,59,.4); font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.process-link span { color:#af7d27; font-size:17px; transition:transform .2s ease; }
.process-link:hover span { transform:translateX(4px); }
.process-grid { margin:0; display:flex; flex-direction:column; border:0; }
.process-grid article { min-height:0; padding:30px 22px 30px 0; display:grid; grid-template-columns:72px 1fr; grid-template-rows:auto auto auto; column-gap:26px; justify-items:start; position:relative; text-align:left; border:0; border-bottom:1px solid rgba(16,35,45,.16); transition:padding-left .25s ease,background .25s ease; }
.process-grid article:first-child { border-top:1px solid rgba(16,35,45,.16); }
.process-grid article::before { content:""; width:1px; position:absolute; left:32px; top:0; bottom:0; background:rgba(168,120,36,.18); }
.process-grid article:first-child::before { top:50%; }
.process-grid article:last-child::before { bottom:50%; }
.process-grid i { grid-row:1/4; width:64px; height:64px; margin:0; align-self:center; position:relative; z-index:1; color:#a87824; border:1px solid rgba(168,120,36,.48); background:#f2efe8; font-size:22px; }
.process-label { margin:0 0 5px; color:#a87824; font-size:8px; font-weight:800; letter-spacing:.18em; }
.process-grid h3 { margin:0 0 7px; color:var(--ink); font:600 25px/1.2 "Playfair Display",Georgia,serif; }
.process-grid p { max-width:480px; color:#66747a; font-size:13px; line-height:1.7; text-align:left; }
.process-grid article:hover { padding-left:12px; background:rgba(255,255,255,.42); }
.process-grid article:hover i { color:#fff; background:#173f3b; border-color:#173f3b; transform:none; }
@media (max-width:980px) {
  .process-section > .container { grid-template-columns:1fr; gap:48px; }
  .process-section .section-heading h2 { max-width:650px; }
}
@media (max-width:680px) {
  .process-section > .container { gap:38px; }
  .process-section .section-heading h2 { font-size:45px; }
  .process-intro { margin-top:22px; }
  .process-grid { margin:0; }
  .process-grid article { min-height:0; padding:27px 0; grid-template-columns:58px 1fr; column-gap:18px; }
  .process-grid i { width:52px; height:52px; }
  .process-grid h3 { font-size:22px; }
}

/* Process spacing correction */
.process-section .section-heading.centered .process-intro { max-width:400px; margin:30px 0 25px; text-align:left; }

/* Elevated FAQ composition */
.faq-section { color:#fff; background:#0a292a; }
.faq-grid { grid-template-columns:.72fr 1.28fr; gap:0; align-items:stretch; }
.faq-intro { min-height:520px; padding:68px 64px; display:flex; flex-direction:column; justify-content:flex-end; position:relative; overflow:hidden; border:1px solid rgba(255,255,255,.13); border-right:0; background:url("assets/project-craftsman.png") center/cover; }
.faq-intro::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(4,28,29,.12),rgba(4,28,29,.94) 78%); }
.faq-intro > * { position:relative; z-index:1; }
.faq-intro .eyebrow.dark { color:#edc363; }
.faq-intro h2 { margin:20px 0 25px; color:#fff; font-size:62px; line-height:.93; }
.faq-intro h2 em { color:#edc363; }
.faq-intro p { max-width:330px; margin:0 0 26px; color:rgba(255,255,255,.7); font-size:13px; line-height:1.65; }
.faq-contact { width:100%; padding-top:20px; display:flex; align-items:center; gap:13px; border-top:1px solid rgba(255,255,255,.22); }
.faq-contact-icon { width:40px; height:40px; display:grid; place-items:center; flex:0 0 40px; border:1px solid rgba(237,195,99,.55); border-radius:50%; color:#edc363; font-size:15px; }
.faq-contact > span:last-child { display:flex; flex-direction:column; gap:3px; }
.faq-contact small { color:rgba(255,255,255,.5); font-size:7px; font-weight:800; letter-spacing:.15em; }
.faq-contact a { color:#fff; font:700 15px Manrope,sans-serif; }
.accordion { padding:42px 58px; color:var(--ink); background:#f5f2eb; }
.accordion details { border-color:rgba(16,35,45,.14); }
.accordion details:first-child { border-top:1px solid rgba(16,35,45,.14); }
.accordion summary { min-height:75px; padding:20px 0; font-size:15px; }
.accordion summary span { width:30px; height:30px; display:grid; place-items:center; flex:0 0 30px; border:1px solid rgba(168,120,36,.35); border-radius:50%; font-size:18px; }
.accordion details[open] summary { color:#95691e; }
.accordion details[open] summary span { color:#fff; background:#173f3b; border-color:#173f3b; }
.accordion p { max-width:590px; margin:-4px 55px 25px 0; font-size:13px; line-height:1.75; }
@media (max-width:980px) {
  .faq-grid { grid-template-columns:1fr; }
  .faq-intro { min-height:0; padding:52px; border-right:1px solid rgba(255,255,255,.13); border-bottom:0; }
}
@media (max-width:680px) {
  .process-section .section-heading.centered .process-intro { margin:24px 0 23px; }
  .faq-intro { padding:44px 28px; }
  .faq-intro h2 { font-size:49px; }
  .accordion { padding:18px 24px 28px; }
  .accordion summary { min-height:68px; gap:18px; font-size:13px; }
  .accordion p { margin-right:32px; }
}
