/* Kenyon & Sons — city / service-area landing pages */
.loc-hero{position:relative;padding:150px 0 64px;overflow:hidden;
  background:radial-gradient(110% 90% at 85% -10%,#bfe0ff,rgba(191,224,255,0) 55%),linear-gradient(180deg,#dcefff,#f6fbff);}
.loc-hero .blob{position:absolute;width:440px;height:440px;border-radius:50%;filter:blur(50px);opacity:.5;background:radial-gradient(circle at 35% 35%,#7fc0ff,#1f86e8);top:-130px;right:-60px;}
.loc-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center;position:relative;}
.loc-hero h1{margin:14px 0 18px;}
.loc-hero h1 .grad{background:linear-gradient(120deg,var(--blue-600),var(--blue-500) 60%,var(--ember-500));-webkit-background-clip:text;background-clip:text;color:transparent;}
.loc-badges{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 26px;}
.loc-cta{display:flex;flex-wrap:wrap;gap:12px;}
.loc-photo{border-radius:var(--r-xl);overflow:hidden;aspect-ratio:4/3.4;border:6px solid rgba(255,255,255,.6);box-shadow:0 40px 80px -28px rgba(10,40,72,.55);}
.loc-photo img{width:100%;height:100%;object-fit:cover;}

/* quick contact strip */
.loc-strip{background:linear-gradient(180deg,var(--blue-800),var(--blue-900));color:#fff;}
.loc-strip .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:22px 28px;}
.loc-strip .msg{font-family:var(--font-display);font-weight:600;font-size:1.15rem;}
.loc-strip .acts{display:flex;gap:12px;flex-wrap:wrap;}

.loc-areas{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;}
.loc-areas .chip{display:flex;align-items:center;gap:8px;padding:.6em 1em;border-radius:999px;background:#fff;border:1px solid var(--line);font-family:var(--font-display);font-weight:600;font-size:.92rem;color:var(--ink);box-shadow:0 6px 16px -12px rgba(10,40,72,.4);}
.loc-areas .chip svg{width:15px;height:15px;color:var(--ember-500);}

.loc-svc{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.loc-svc .item{padding:24px;border-radius:var(--r-lg);}
.loc-svc .ic{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;margin-bottom:14px;background:linear-gradient(180deg,#eaf4ff,#cfe6ff);color:var(--blue-700);box-shadow:inset 0 1px 0 #fff,0 8px 18px -10px rgba(18,104,199,.5);}
.loc-svc .ic svg{width:25px;height:25px;}
.loc-svc .item.ember .ic{background:linear-gradient(180deg,#fff0e4,#ffd9bd);color:var(--ember-600);}
.loc-svc h3{font-family:var(--font-display);font-weight:700;font-size:1.12rem;margin:0 0 6px;}
.loc-svc p{margin:0;color:var(--ink-soft);font-size:.94rem;line-height:1.5;}

.loc-why{display:grid;grid-template-columns:.95fr 1.05fr;gap:50px;align-items:center;}
.loc-why-photo{border-radius:var(--r-xl);overflow:hidden;aspect-ratio:4/3.2;border:6px solid rgba(255,255,255,.6);box-shadow:0 36px 70px -28px rgba(10,40,72,.5);}
.loc-why-photo img{width:100%;height:100%;object-fit:cover;}

.loc-cta-band{position:relative;overflow:hidden;border-radius:var(--r-xl);padding:clamp(44px,6vw,76px);background:radial-gradient(120% 120% at 0% 0%,#1f86e8,#0a3a72 70%);color:#fff;}
.loc-cta-band::after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;right:-120px;bottom:-160px;background:radial-gradient(circle,rgba(251,122,43,.55),transparent 65%);}
.loc-cta-band .acts{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px;position:relative;z-index:1;}

.loc-faq{border-radius:var(--r-md);overflow:hidden;background:#fff;border:1px solid var(--line);margin-bottom:12px;}
.loc-faq summary{list-style:none;cursor:pointer;padding:20px 22px;font-family:var(--font-display);font-weight:600;font-size:1.05rem;display:flex;justify-content:space-between;align-items:center;gap:14px;}
.loc-faq summary::-webkit-details-marker{display:none;}
.loc-faq summary .pl{width:24px;height:24px;flex:none;position:relative;}
.loc-faq summary .pl::before,.loc-faq summary .pl::after{content:"";position:absolute;background:var(--blue-600);border-radius:2px;}
.loc-faq summary .pl::before{top:11px;left:3px;right:3px;height:2px;}
.loc-faq summary .pl::after{left:11px;top:3px;bottom:3px;width:2px;transition:opacity .3s;}
.loc-faq[open] summary .pl::after{opacity:0;}
.loc-faq .ans{padding:0 22px 20px;color:var(--ink-soft);line-height:1.6;}
.loc-faq .ans a{color:var(--blue-700);font-weight:600;}

@media (max-width:920px){
  .loc-hero-grid,.loc-why{grid-template-columns:1fr;gap:38px;}
  .loc-photo{max-width:460px;margin:0 auto;}
  .loc-svc{grid-template-columns:1fr;}
}
