:root{--navy:#0b1630;--mid:#0f1f42;--ink:#16274f;--gold:#f3c969;--gold2:#e0a93b;--white:#fff;--snow:#e9eef8;--mute:#aab6d3;--r:14px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;color:var(--snow);background:var(--navy)}
img{max-width:100%;display:block}a{color:var(--gold)}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;color:#fff;line-height:1.15;margin:0 0 .5em;font-weight:600}
h1{font-size:clamp(2.1rem,6vw,3.9rem)}h2{font-size:clamp(1.7rem,4vw,2.5rem)}h3{font-size:1.25rem}
.wrap{max-width:1160px;margin:0 auto;padding:0 20px}
section{padding:72px 0}.alt{background:var(--mid)}
.eyebrow{color:var(--gold);text-transform:uppercase;letter-spacing:.18em;font-size:.78rem;font-weight:700;margin-bottom:.6em}
.lead{font-size:1.12rem;color:var(--snow);max-width:640px}
.btn{display:inline-block;padding:14px 24px;border-radius:999px;font-weight:700;text-decoration:none;border:2px solid var(--gold);transition:.2s;cursor:pointer;font-size:1rem}
.btn-gold{background:linear-gradient(180deg,var(--gold),var(--gold2));color:#1a1405;box-shadow:0 0 24px rgba(243,201,105,.35)}
.btn-gold:hover{box-shadow:0 0 36px rgba(243,201,105,.6)}
.btn-ghost{color:#fff;background:transparent}.btn-ghost:hover{background:rgba(243,201,105,.12)}
/* header */
.top{position:sticky;top:0;z-index:50;background:rgba(11,22,48,.92);backdrop-filter:blur(8px);border-bottom:1px solid rgba(243,201,105,.18)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:68px;gap:16px}
.logo img{height:44px;width:auto}
.nav{display:none;gap:22px;align-items:center}.nav a{color:var(--snow);text-decoration:none;font-size:.95rem}.nav a:hover{color:var(--gold)}
.top .btn{padding:10px 18px;font-size:.9rem}
.call-top{display:none}
@media(min-width:960px){.nav{display:flex}.call-top{display:inline-block}}
/* string lights strip */
.string{height:18px;background:radial-gradient(circle at 10px 9px,#ffd77a 3px,rgba(255,215,122,.35) 5px,transparent 8px) 0 0/40px 18px repeat-x}
/* hero */
.hero{position:relative;min-height:88vh;display:flex;align-items:center;padding:90px 0 110px;background:linear-gradient(180deg,rgba(11,22,48,.35),rgba(11,22,48,.8) 72%,var(--navy)),url(img/hero.jpg) center/cover}
.hero .lead{font-size:1.2rem}
.hero .ctas{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0}
.trust{display:flex;flex-wrap:wrap;gap:10px 22px;padding:0;margin:22px 0 0;list-style:none;color:#fff;font-size:.95rem}
.trust li:before{content:"✦ ";color:var(--gold)}
.badge{display:inline-block;border:1px solid rgba(243,201,105,.5);color:var(--gold);border-radius:999px;padding:5px 14px;font-size:.85rem;margin-bottom:18px;background:rgba(11,22,48,.5)}
/* grids */
.grid{display:grid;gap:20px}
@media(min-width:700px){.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.g4{grid-template-columns:repeat(4,1fr)}}
.card{background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.1);border-radius:var(--r);padding:26px}
.step .num{font-family:Georgia,serif;font-size:2.2rem;color:var(--gold);line-height:1}
.pkg{display:flex;flex-direction:column}.pkg.feat{border-color:var(--gold);box-shadow:0 0 40px rgba(243,201,105,.18)}
.price{font-family:Georgia,serif;font-size:2.1rem;color:#fff}.price small{font-size:.95rem;color:var(--mute);font-family:inherit}
.pkg ul,.checks{padding:0;list-style:none;margin:14px 0 22px}.pkg li,.checks li{padding:5px 0 5px 26px;position:relative}
.pkg li:before,.checks li:before{content:"✓";position:absolute;left:0;color:var(--gold);font-weight:700}
.pkg .btn{margin-top:auto;text-align:center}
.tag{display:inline-block;background:var(--gold);color:#1a1405;font-size:.75rem;font-weight:800;border-radius:999px;padding:3px 10px;margin-bottom:10px;text-transform:uppercase;letter-spacing:.08em}
.note{color:var(--mute);font-size:.9rem}
.split{display:grid;gap:36px;align-items:center}@media(min-width:900px){.split{grid-template-columns:1.1fr 1fr}}
.photo{border-radius:var(--r);overflow:hidden;position:relative;border:1px solid rgba(255,255,255,.1)}
.photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.photo figcaption{position:absolute;left:10px;bottom:10px;background:rgba(11,22,48,.8);color:var(--snow);font-size:.75rem;padding:4px 10px;border-radius:999px}
.gallery{display:grid;gap:14px;grid-template-columns:1fr}@media(min-width:700px){.gallery{grid-template-columns:repeat(3,1fr)}}
.areas a.card{text-decoration:none;color:var(--snow);display:block;transition:.2s}.areas a.card:hover{border-color:var(--gold);transform:translateY(-2px)}
.areas .towns{color:var(--mute);font-size:.92rem}
.bundle{background:radial-gradient(circle at 80% 0,rgba(243,201,105,.18),transparent 55%),var(--ink);border:1px solid rgba(243,201,105,.4);border-radius:22px;padding:36px}
details{border-bottom:1px solid rgba(255,255,255,.12);padding:16px 0}summary{cursor:pointer;font-weight:700;color:#fff;list-style:none;display:flex;justify-content:space-between;gap:12px}
summary:after{content:"+";color:var(--gold);font-size:1.3rem;line-height:1}details[open] summary:after{content:"–"}
details p{margin:10px 0 0;color:var(--snow)}
.reviews{text-align:center;border:1px dashed rgba(243,201,105,.45)}
/* form */
form{display:grid;gap:14px}
label{font-weight:600;font-size:.92rem;color:#fff;display:block}
input,select,textarea{width:100%;margin-top:6px;padding:13px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.2);background:#0a1430;color:#fff;font:inherit}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);border-color:transparent}
fieldset{border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:12px 14px;margin:0}legend{font-weight:600;font-size:.92rem;padding:0 6px;color:#fff}
.chk{display:flex;align-items:center;gap:10px;font-weight:400;margin:6px 0}.chk input{width:20px;height:20px;margin:0;accent-color:var(--gold)}
.two{display:grid;gap:14px}@media(min-width:640px){.two{grid-template-columns:1fr 1fr}}
.hidden{position:absolute;left:-9999px}
.quote-box{background:var(--ink);border-radius:22px;padding:28px;border:1px solid rgba(255,255,255,.1)}
/* footer */
footer{background:#070f22;padding:48px 0 120px;color:var(--mute);font-size:.92rem}footer a{color:var(--snow)}
footer .grid{gap:28px}@media(min-width:800px){footer .grid{grid-template-columns:2fr 1fr 1fr}}
.credits{font-size:.78rem;margin-top:26px;border-top:1px solid rgba(255,255,255,.08);padding-top:16px}
/* mobile sticky bar */
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(7,15,34,.96);border-top:1px solid rgba(243,201,105,.3)}
.sticky .btn{text-align:center;padding:12px 8px}
@media(min-width:960px){.sticky{display:none}footer{padding-bottom:48px}}
.page-hero{min-height:auto;padding:80px 0 70px}
.crumbs{font-size:.85rem;color:var(--mute)}.crumbs a{color:var(--mute)}
@media(max-width:699px){.hero{min-height:auto;padding:56px 0 64px}section{padding:56px 0}}
.towns-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
/* v2 additions */
.ph{background:#ffe58a;color:#3a2a00;padding:0 4px;border-radius:3px;font-weight:700}
.urgent{background:#c8102e;color:#fff;text-align:center;font-size:.95rem;padding:8px 12px}
.urgent a{color:#fff;text-decoration:underline;font-weight:700}
.why{list-style:none;padding:0;margin:0}
.why li{margin:0 0 10px}
.pricetable{width:100%;border-collapse:collapse;margin-top:18px;background:#fff;color:#0b1630;border-radius:10px;overflow:hidden}
.pricetable th,.pricetable td{padding:10px 12px;border-bottom:1px solid #e3e6ee;text-align:left;font-size:.95rem}
.pricetable th{background:#0b1630;color:#fff}

/* v3 benchmark additions */
.anchor{font-size:1.1rem;margin:4px 0 14px}.anchor a{font-weight:700}
.mini{display:grid;gap:10px;max-width:640px;margin:8px 0 6px}@media(min-width:700px){.mini{grid-template-columns:1.4fr 1fr auto}}
.mini input{margin:0}.mini .btn{white-space:nowrap}
.calc input[type=range]{padding:0;accent-color:var(--gold)}
.est{background:#0a1430;border:1px solid var(--gold);border-radius:12px;padding:14px;text-align:center}.est span{display:block;color:var(--mute);font-size:.85rem}.est strong{display:block;font-family:Georgia,serif;font-size:2.4rem;color:#fff}.est small{color:var(--gold)}
.ba{position:relative;max-width:900px;margin:24px auto 10px;border-radius:var(--r);overflow:hidden;aspect-ratio:4/3}
.ba img{width:100%;height:100%;object-fit:cover;max-width:none}
.ba-before{position:absolute;inset:0 auto 0 0;width:50%;overflow:hidden;border-right:3px solid var(--gold)}
.ba-before img{width:900px;max-width:none;height:100%}.ba-before .dim{filter:grayscale(1) brightness(.45)}
@media(max-width:900px){.ba-before img{width:calc(100vw - 40px)}}
.ba input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}
.ba-l,.ba-r{position:absolute;top:12px;background:rgba(11,22,48,.8);padding:3px 10px;border-radius:999px;font-size:.8rem}.ba-l{left:12px}.ba-r{right:12px}
.compare td:nth-child(2){font-weight:700;color:#0b6b2e}
details.more{padding:6px 0;display:grid;gap:14px}details.more>*{margin-top:12px}

/* Nearby towns welcome block */
.nearby-callout{margin-top:28px;padding:22px 24px;border-radius:16px;border:1px solid rgba(243,201,105,.35);background:rgba(243,201,105,.08)}
.nearby-callout h3{margin:0 0 8px;color:var(--snow);font-size:1.15rem}
.nearby-callout p{margin:0 0 14px;color:var(--mute);max-width:52ch}
.nearby-callout .btn{display:inline-flex}
/* v4 best-of additions */
.g5{grid-template-columns:1fr}@media(min-width:900px){.g5{grid-template-columns:repeat(5,1fr)}}
.included{padding:34px 0;background:var(--ink);border-top:1px solid rgba(243,201,105,.2);border-bottom:1px solid rgba(243,201,105,.2)}
.inc{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:14px;text-align:center}
@media(min-width:900px){.inc{grid-template-columns:repeat(6,1fr)}}
.inc b{display:block;color:#fff}.inc span{font-size:.85rem;color:var(--mute)}
.hero-call{margin-top:12px}
.dots{display:flex;gap:10px;margin-bottom:12px}.dots i{width:18px;height:24px;border-radius:50% 50% 45% 45%;background:var(--c);box-shadow:0 0 14px var(--c)}
.tablewrap{overflow-x:auto;margin-top:24px}
.compare{width:100%;border-collapse:collapse;min-width:520px}.compare th,.compare td{padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.1);text-align:left}
.compare th:nth-child(2),.compare td:nth-child(2){background:rgba(243,201,105,.08);color:#fff}.compare thead th{color:var(--gold)}
.guarantee{display:flex;gap:24px;align-items:center;border-color:var(--gold)}.seal{flex:none;width:84px;height:84px;border-radius:50%;border:2px solid var(--gold);display:grid;place-items:center;font-size:2rem;color:var(--gold)}
@media(max-width:600px){.guarantee{flex-direction:column;text-align:center}}
.sticky .btn{padding:12px 10px;font-size:.92rem}
.sticky{grid-template-columns:1fr 1fr 1.2fr}
.top .btn,.nav a{white-space:nowrap}.text-top{display:none}@media(min-width:1280px){.text-top{display:inline-block}}
.top .wrap>div:last-child{display:flex;gap:8px;flex-wrap:nowrap}.text-top{display:none!important}@media(min-width:1360px){.text-top{display:inline-block!important}}
