/* ============================================
   AREAS WE COVER — premium local SEO hub
============================================ */
.areas-v2{overflow-x:hidden;}
.areas-v2 header{position:sticky;}
.areas-v2 .eyebrow{justify-content:flex-start;}

/* ===== HERO ===== */
.areas-hero{position:relative; min-height:690px; overflow:hidden; background:linear-gradient(122deg,#071427 0%,#0d2343 58%,#102d52 100%); color:#fff;}
.areas-grid-lines{position:absolute; inset:0; opacity:.13; background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px); background-size:70px 70px; mask-image:linear-gradient(90deg,transparent,black 30%,black 100%);}
.areas-glow{position:absolute; width:660px; height:660px; right:-130px; top:-210px; border-radius:50%; background:radial-gradient(circle,rgba(154,170,138,.2),transparent 68%); filter:blur(4px);}
.areas-hero-grid{position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1.07fr) minmax(390px,.78fr); gap:80px; align-items:center; min-height:690px; padding-top:76px; padding-bottom:76px;}
.areas-kicker{display:inline-flex; align-items:center; gap:9px; padding:8px 13px; margin-bottom:24px; border:1px solid rgba(154,170,138,.4); border-radius:30px; background:rgba(8,20,38,.46); color:var(--sky); font:700 10.5px/1 'Manrope',sans-serif; letter-spacing:.1em; text-transform:uppercase;}
.areas-kicker i{width:6px; height:6px; border-radius:50%; background:var(--sky); box-shadow:0 0 0 5px rgba(154,170,138,.12);}
.areas-hero h1{max-width:790px; margin:0 0 25px; color:#fff; font-size:61px; line-height:1.05; letter-spacing:-.03em;}
.areas-hero h1 em{color:var(--sky); font-style:normal;}
.areas-hero-copy>p{max-width:660px; margin-bottom:35px; color:#c8d3e4; font-size:16px; line-height:1.75;}
.areas-hero-actions{display:flex; gap:14px; flex-wrap:wrap;}
.areas-owner-note{display:flex; align-items:center; gap:14px; max-width:520px; margin-top:42px; padding-top:25px; border-top:1px solid rgba(255,255,255,.13);}
.areas-owner-note>span{display:flex; align-items:center; justify-content:center; width:43px; height:43px; flex:0 0 43px; border-radius:50%; background:var(--sky); color:var(--navy); font:800 12px/1 'Manrope',sans-serif;}
.areas-owner-note p{color:#aab8cc; font-size:11.5px; line-height:1.55;}
.areas-owner-note strong{display:block; margin-bottom:2px; color:#fff; font-size:12.5px;}

.coverage-board{position:relative; min-height:470px; overflow:hidden; padding:27px; border:1px solid rgba(255,255,255,.14); border-radius:12px; background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(255,255,255,.035)); box-shadow:0 30px 80px rgba(2,10,23,.35); backdrop-filter:blur(8px);}
.coverage-board-head{display:flex; align-items:center; justify-content:space-between; position:relative; z-index:3; padding-bottom:21px; border-bottom:1px solid rgba(255,255,255,.12); color:#d9e3f1; font:700 10px/1 'Manrope',sans-serif; text-transform:uppercase; letter-spacing:.1em;}
.live-dot{display:inline-flex; align-items:center; gap:7px; color:#8fa0b7; font-size:9px; letter-spacing:.07em;}
.live-dot i{width:7px; height:7px; border-radius:50%; background:#72d99b; box-shadow:0 0 0 5px rgba(114,217,155,.12);}
.core-area{position:absolute; z-index:4; left:50%; top:48%; transform:translate(-50%,-50%); width:150px; height:150px; display:flex; flex-direction:column; align-items:center; justify-content:center; border:1px solid rgba(154,170,138,.6); border-radius:50%; background:rgba(8,25,48,.9); box-shadow:0 0 0 11px rgba(154,170,138,.07),0 20px 50px rgba(0,0,0,.25); text-align:center;}
.core-area small{color:var(--sky); font:700 8px/1 'Manrope',sans-serif; letter-spacing:.14em; text-transform:uppercase;}
.core-area strong{display:block; margin:8px 0 3px; color:#fff; font:800 22px/1 'Manrope',sans-serif;}
.core-area span{color:#93a7c2; font-size:10.5px;}
.coverage-rings{position:absolute; left:50%; top:48%; width:360px; height:360px; transform:translate(-50%,-50%);}
.coverage-rings i{position:absolute; inset:0; border:1px solid rgba(154,170,138,.16); border-radius:50%;}
.coverage-rings i:nth-child(2){inset:45px; border-color:rgba(154,170,138,.22);}
.coverage-rings i:nth-child(3){inset:95px; border-color:rgba(154,170,138,.3);}
.coverage-rings b{position:absolute; right:26px; top:91px; width:9px; height:9px; border-radius:50%; background:var(--sky); box-shadow:0 0 0 7px rgba(154,170,138,.12);}
.county-row{position:absolute; z-index:4; left:22px; right:22px; bottom:52px; display:grid; grid-template-columns:repeat(4,1fr); gap:6px;}
.county-row span{padding:9px 4px; border:1px solid rgba(255,255,255,.1); border-radius:4px; background:rgba(5,15,29,.52); color:#c4cfde; font:700 8px/1.2 'Manrope',sans-serif; text-align:center; text-transform:uppercase; letter-spacing:.035em;}
.coverage-board>p{position:absolute; z-index:4; left:0; right:0; bottom:18px; color:#7588a4; font-size:9.5px; text-align:center;}

/* ===== PROOF STRIP ===== */
.coverage-proof{background:#fff; border-bottom:1px solid var(--line);}
.coverage-proof-grid{display:grid; grid-template-columns:repeat(4,1fr); padding-top:0; padding-bottom:0;}
.coverage-proof-grid>div{display:flex; align-items:center; gap:15px; min-height:118px; padding:24px 26px; border-right:1px solid var(--line);}
.coverage-proof-grid>div:first-child{padding-left:0;}
.coverage-proof-grid>div:last-child{border-right:0;}
.coverage-proof-grid>div>span{color:var(--sky-dark); font:800 24px/1 'Manrope',sans-serif; letter-spacing:-.04em;}
.coverage-proof-grid p{font-size:11px; line-height:1.45;}
.coverage-proof-grid strong{display:block; margin-bottom:3px; color:var(--navy); font-size:12.5px;}
.coverage-proof-grid small{color:var(--grey-light); font-size:10.5px;}

/* ===== BERKSHIRE TOWNS ===== */
.berkshire-areas{padding:112px 0 120px; background:var(--cream);}
.area-section-heading{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.74fr); column-gap:80px; align-items:end; margin-bottom:48px;}
.area-section-heading .eyebrow{grid-column:1;}
.area-section-heading h2{grid-column:1; font-size:40px;}
.area-section-heading>p{grid-column:2; grid-row:1 / span 2; color:var(--grey); font-size:14.5px; line-height:1.8;}
.town-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px;}
.town-card{position:relative; min-height:260px; padding:30px; overflow:hidden; border:1px solid var(--line); border-radius:9px; background:#fff; box-shadow:var(--shadow-sm); transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);}
.town-card:hover{transform:translateY(-4px); border-color:#c8d8e8; box-shadow:var(--shadow-md);}
.town-card::after{content:''; position:absolute; right:-50px; bottom:-70px; width:155px; height:155px; border:1px solid rgba(46,157,224,.12); border-radius:50%; box-shadow:0 0 0 26px rgba(46,157,224,.035);}
.town-card>*{position:relative; z-index:2;}
.town-index{position:absolute; right:24px; top:19px; color:#d9e1eb; font:800 30px/1 'Manrope',sans-serif; letter-spacing:-.05em;}
.town-county{display:block; margin-bottom:29px; color:var(--sky-dark); font:700 9.5px/1 'Manrope',sans-serif; letter-spacing:.1em; text-transform:uppercase;}
.town-card h3{margin-bottom:10px; font-size:24px;}
.town-card p{max-width:330px; margin-bottom:23px; color:var(--grey); font-size:12.5px; line-height:1.65;}
.town-card a{display:inline-flex; color:var(--navy); font:800 10.5px/1.2 'Manrope',sans-serif; text-transform:uppercase; letter-spacing:.05em; border-bottom:1px solid var(--sky); padding-bottom:4px;}
.town-links{display:flex; gap:16px; flex-wrap:wrap;}
.town-featured{background:var(--navy); border-color:var(--navy); box-shadow:var(--shadow-md);}
.town-featured .town-index{color:rgba(255,255,255,.11);}
.town-featured .town-county{color:var(--sky);}
.town-featured h3{color:#fff;}
.town-featured p{color:#b9c6d8;}
.town-featured a{color:#fff;}
.town-simple{background:linear-gradient(135deg,#fff,#f4f8fc);}

/* ===== SURROUNDING COUNTIES ===== */
.surrounding-counties{position:relative; padding:116px 0; overflow:hidden; background:var(--navy); color:#fff;}
.surrounding-counties::before{content:''; position:absolute; width:650px; height:650px; left:-260px; bottom:-330px; border:1px solid rgba(154,170,138,.12); border-radius:50%; box-shadow:0 0 0 80px rgba(154,170,138,.025),0 0 0 160px rgba(154,170,138,.02);}
.surrounding-grid{position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,.72fr) minmax(0,1.1fr); gap:100px; align-items:start;}
.surrounding-copy{position:sticky; top:110px;}
.surrounding-copy .eyebrow{color:var(--sky);}
.surrounding-copy h2{max-width:480px; margin-bottom:21px; color:#fff; font-size:39px;}
.surrounding-copy p{max-width:480px; margin-bottom:29px; color:#aebcd0; font-size:14px; line-height:1.8;}
.county-list{border-top:1px solid rgba(255,255,255,.14);}
.county-list article{display:grid; grid-template-columns:62px 1fr; gap:19px; padding:30px 0; border-bottom:1px solid rgba(255,255,255,.14);}
.county-list article>span{color:var(--sky); font:800 22px/1 'Manrope',sans-serif;}
.county-list small{display:block; margin-bottom:8px; color:#7f91aa; font:700 9.5px/1 'Manrope',sans-serif; letter-spacing:.12em; text-transform:uppercase;}
.county-list h3{margin-bottom:8px; color:#fff; font-size:18px; line-height:1.4;}
.county-list p{color:#aebbd0; font-size:12.5px;}
.county-case-links{display:flex; gap:17px; margin-top:13px;}
.county-case-links a,.county-project-link{display:inline-block; margin-top:13px; padding-bottom:3px; border-bottom:1px solid var(--sky); color:var(--sky); font:700 10px/1 'Manrope',sans-serif; text-transform:uppercase; letter-spacing:.04em;}

/* ===== SERVICES ===== */
.local-services{padding:112px 0 120px; background:#fff;}
.local-services-heading{max-width:690px; margin:0 auto 49px; text-align:center;}
.local-services-heading .eyebrow{justify-content:center;}
.local-services-heading h2{margin-bottom:16px; font-size:39px;}
.local-services-heading p{color:var(--grey); font-size:14px;}
.local-service-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px;}
.local-service-card{position:relative; min-height:415px; display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden; padding:36px; border-radius:10px; background:var(--navy); box-shadow:var(--shadow-md); transition:transform .35s var(--ease),box-shadow .35s var(--ease);}
.local-service-card::before{content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(5,14,29,.98) 0%,rgba(7,26,50,.74) 60%,rgba(35,97,138,.28) 100%);}
.local-service-card::after{content:''; position:absolute; width:330px; height:330px; right:-165px; top:-165px; border:1px solid rgba(154,170,138,.27); border-radius:50%; box-shadow:0 0 0 52px rgba(154,170,138,.035),0 0 0 104px rgba(154,170,138,.025);}
.local-service-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-lift);}
.local-service-card>*{position:relative; z-index:2;}
.local-service-card>span{position:absolute; top:29px; left:32px; color:rgba(255,255,255,.15); font:800 52px/1 'Manrope',sans-serif;}
.local-service-card small{margin-bottom:12px; color:var(--sky); font:700 9.5px/1 'Manrope',sans-serif; text-transform:uppercase; letter-spacing:.11em;}
.local-service-card h3{margin-bottom:14px; color:#fff; font-size:23px; line-height:1.25;}
.local-service-card p{margin-bottom:25px; color:#adbbcf; font-size:12.5px; line-height:1.65;}
.local-service-card b{color:var(--sky); font:800 10.5px/1 'Manrope',sans-serif; letter-spacing:.05em; text-transform:uppercase;}
.service-landscape{background:linear-gradient(145deg,#14394c,#0d2235);}
.service-commercial{background:linear-gradient(145deg,#1a2c4a,#081823);}

/* ===== LOCAL PROOF ===== */
.local-proof{padding:112px 0 120px; background:var(--cream);}
.local-proof-heading{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.8fr); gap:80px; align-items:end; margin-bottom:48px;}
.local-proof-heading .eyebrow{grid-column:1;}
.local-proof-heading h2{grid-column:1; font-size:38px;}
.local-proof-heading>p{grid-column:2; grid-row:1 / span 2; color:var(--grey); font-size:14px; line-height:1.8;}
.project-route{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.project-route a{position:relative; min-height:260px; padding:30px 25px; border-right:1px solid var(--line); transition:background .3s var(--ease),color .3s var(--ease);}
.project-route a:last-child{border-right:0;}
.project-route a:hover{background:var(--navy);}
.project-route span{display:block; margin-bottom:53px; color:var(--sky-dark); font:800 24px/1 'Manrope',sans-serif;}
.project-route small{display:block; margin-bottom:7px; color:var(--grey-light); font:700 9px/1 'Manrope',sans-serif; letter-spacing:.1em; text-transform:uppercase;}
.project-route strong{display:block; margin-bottom:25px; color:var(--navy); font:800 15px/1.35 'Manrope',sans-serif;}
.project-route b{color:var(--sky-dark); font:800 9.5px/1 'Manrope',sans-serif; text-transform:uppercase; letter-spacing:.05em;}
.project-route a:hover strong{color:#fff;}
.project-route a:hover small{color:#8798af;}
.project-route a:hover b{color:var(--sky);}
.all-local-projects{display:flex; justify-content:center; margin-top:43px;}

/* ===== FAQ ===== */
.area-faqs{padding:112px 0; background:#fff;}
.faq-layout{display:grid; grid-template-columns:minmax(0,.72fr) minmax(0,1.05fr); gap:100px; align-items:start;}
.faq-intro{position:sticky; top:110px;}
.faq-intro h2{max-width:470px; margin-bottom:18px; font-size:36px;}
.faq-intro p{max-width:460px; margin-bottom:25px; color:var(--grey); font-size:14px; line-height:1.78;}
.faq-phone{display:inline-block; color:var(--sky-dark); font:800 20px/1 'Manrope',sans-serif; border-bottom:2px solid var(--sky); padding-bottom:7px;}
.faq-list{border-top:1px solid var(--line);}
.faq-list details{border-bottom:1px solid var(--line);}
.faq-list summary{display:flex; align-items:center; justify-content:space-between; gap:20px; padding:26px 0; list-style:none; color:var(--navy); font:800 14px/1.45 'Manrope',sans-serif; cursor:pointer;}
.faq-list summary::-webkit-details-marker{display:none;}
.faq-list summary span{display:flex; align-items:center; justify-content:center; width:30px; height:30px; flex:0 0 30px; border-radius:50%; background:var(--cream); color:var(--sky-dark); font-size:20px; font-weight:500; transition:transform .25s var(--ease),background .25s var(--ease);}
.faq-list details[open] summary span{transform:rotate(45deg); background:var(--sky); color:var(--navy);}
.faq-list details p{padding:0 48px 27px 0; color:var(--grey); font-size:13px; line-height:1.75;}

/* ===== POSTCODE CHECK ===== */
.postcode-check{position:relative; padding:114px 0; overflow:hidden; background:linear-gradient(130deg,#081823,#102a4d); color:#fff;}
.postcode-check::after{content:''; position:absolute; right:-250px; top:-350px; width:700px; height:700px; border:1px solid rgba(154,170,138,.15); border-radius:50%; box-shadow:0 0 0 80px rgba(154,170,138,.025),0 0 0 160px rgba(154,170,138,.018);}
.postcode-grid{position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1fr); gap:95px; align-items:center;}
.postcode-copy .eyebrow{color:var(--sky);}
.postcode-copy h2{max-width:510px; margin-bottom:19px; color:#fff; font-size:38px;}
.postcode-copy>p{max-width:520px; color:#aebcd0; font-size:14px; line-height:1.8;}
.postcode-direct{display:flex; gap:22px; flex-wrap:wrap; margin-top:30px;}
.postcode-direct a{padding-bottom:5px; border-bottom:1px solid var(--sky); color:#fff; font:700 11px/1 'Manrope',sans-serif;}
.postcode-form{padding:34px; border:1px solid rgba(255,255,255,.14); border-radius:10px; background:rgba(255,255,255,.07); box-shadow:0 24px 70px rgba(0,0,0,.23); backdrop-filter:blur(7px);}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:15px;}
.postcode-form label{display:block; margin-bottom:16px; color:#c8d3e2; font:700 10px/1.2 'Manrope',sans-serif; letter-spacing:.04em; text-transform:uppercase;}
.postcode-form input,.postcode-form select,.postcode-form textarea{width:100%; margin-top:8px; padding:14px 15px; border:1px solid rgba(255,255,255,.15); border-radius:4px; outline:none; background:rgba(4,13,27,.52); color:#fff; font:400 13px/1.4 'Inter',sans-serif; transition:border-color .2s var(--ease),background .2s var(--ease);}
.postcode-form select{color:#dce4ef;}
.postcode-form select option{color:var(--ink); background:#fff;}
.postcode-form textarea{resize:vertical; min-height:100px;}
.postcode-form input:focus,.postcode-form select:focus,.postcode-form textarea:focus{border-color:var(--sky); background:rgba(4,13,27,.7);}
.postcode-form>p{margin:-2px 0 20px; color:#8394aa; font-size:9.5px;}
.postcode-form .form-submit-status{margin:14px 0 0; padding:12px 14px; border:1px solid rgba(255,176,168,.45); border-radius:5px; background:rgba(120,28,22,.25); color:#ffd8d4; font-size:10.5px; line-height:1.55; text-transform:none; letter-spacing:0;}
.postcode-form .form-submit-status[hidden]{display:none;}
.postcode-form .form-submit-status a{color:#fff; font-weight:800; text-decoration:underline;}

/* ===== MOBILE CTA ===== */
.areas-mobile-cta{display:none;}

/* ===== RESPONSIVE ===== */
@media (max-width:1180px){
  .areas-hero-grid{grid-template-columns:minmax(0,1fr) 390px; gap:45px;}
  .areas-hero h1{font-size:53px;}
  .coverage-board{min-height:440px;}
}
@media (max-width:980px){
  .areas-hero-grid{grid-template-columns:1fr; padding-top:75px; padding-bottom:75px;}
  .areas-hero-copy{max-width:760px;}
  .coverage-board{width:100%; max-width:620px; min-height:470px;}
  .area-section-heading,.local-proof-heading{display:block;}
  .area-section-heading h2,.local-proof-heading h2{margin-bottom:18px;}
  .area-section-heading>p,.local-proof-heading>p{max-width:700px;}
  .town-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .surrounding-grid,.faq-layout,.postcode-grid{grid-template-columns:1fr; gap:55px;}
  .surrounding-copy,.faq-intro{position:static;}
  .local-service-grid{grid-template-columns:1fr;}
  .local-service-card{min-height:340px;}
  .project-route{grid-template-columns:repeat(2,1fr);}
  .project-route a:nth-child(2){border-right:0;}
  .project-route a:nth-child(-n+2){border-bottom:1px solid var(--line);}
  .coverage-proof-grid{grid-template-columns:repeat(2,1fr);}
  .coverage-proof-grid>div:nth-child(2){border-right:0;}
  .coverage-proof-grid>div:nth-child(-n+2){border-bottom:1px solid var(--line);}
  .coverage-proof-grid>div:nth-child(3){padding-left:0;}
}
@media (max-width:600px){
  .areas-v2{padding-bottom:58px;}
  .areas-hero-grid{padding-top:58px; padding-bottom:58px; gap:48px;}
  .areas-hero h1{font-size:40px;}
  .areas-hero-copy>p{font-size:14.5px;}
  .areas-hero-actions{flex-direction:column; align-items:stretch;}
  .areas-hero-actions .btn{justify-content:center;}
  .coverage-board{min-height:405px; padding:20px;}
  .coverage-rings{width:300px; height:300px;}
  .core-area{width:130px; height:130px;}
  .core-area strong{font-size:19px;}
  .county-row{left:12px; right:12px; bottom:49px; grid-template-columns:1fr 1fr;}
  .county-row span{padding:7px 2px;}
  .coverage-board>p{display:none;}
  .coverage-proof-grid{grid-template-columns:1fr;}
  .coverage-proof-grid>div{min-height:92px; padding:18px 0; border-right:0; border-bottom:1px solid var(--line);}
  .coverage-proof-grid>div:nth-child(3){padding-left:0;}
  .coverage-proof-grid>div:last-child{border-bottom:0;}
  .berkshire-areas,.surrounding-counties,.local-services,.local-proof,.area-faqs,.postcode-check{padding:82px 0;}
  .area-section-heading h2,.surrounding-copy h2,.local-services-heading h2,.local-proof-heading h2,.faq-intro h2,.postcode-copy h2{font-size:30px;}
  .town-grid{grid-template-columns:1fr;}
  .town-card{min-height:235px; padding:26px;}
  .county-list article{grid-template-columns:45px 1fr; gap:12px;}
  .county-list h3{font-size:16px;}
  .local-service-card{min-height:360px; padding:29px;}
  .project-route{grid-template-columns:1fr;}
  .project-route a{min-height:220px; border-right:0; border-bottom:1px solid var(--line);}
  .project-route a:nth-child(3){border-bottom:1px solid var(--line);}
  .project-route a:last-child{border-bottom:0;}
  .project-route span{margin-bottom:38px;}
  .field-row{grid-template-columns:1fr; gap:0;}
  .postcode-form{padding:24px 20px;}
  .areas-mobile-cta{position:fixed; z-index:250; left:0; right:0; bottom:0; display:grid; grid-template-columns:1fr 1.45fr; height:58px; box-shadow:0 -10px 30px rgba(7,20,38,.22);}
  .areas-mobile-cta a{display:flex; align-items:center; justify-content:center; font:800 11px/1 'Manrope',sans-serif; text-transform:uppercase; letter-spacing:.04em;}
  .areas-mobile-cta .mobile-call{background:#fff; color:var(--navy);}
  .areas-mobile-cta .mobile-survey{background:var(--sky); color:var(--navy);}
}
