/* ============================================================================
   PAGE LAYOUTS — service, about, contact, faq, prose, locations
   ============================================================================ */
.svc-hero h1{font-size:clamp(36px,5vw,60px);margin-bottom:20px}

/* feature list (contact / about) */
.feat-list{list-style:none;display:grid;gap:14px;margin-top:6px}
.feat-list li{display:flex;gap:13px;align-items:flex-start;font-size:15.5px;color:var(--ink-2);line-height:1.55}
.feat-list .fi{flex:0 0 auto;width:36px;height:36px;border-radius:10px;background:var(--grad-soft);
  border:1px solid rgba(22,104,251,.14);display:grid;place-items:center;font-size:16px}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:48px;align-items:start}
.contact-meta{display:grid;gap:12px;margin-top:26px}
.contact-meta a{display:flex;align-items:center;gap:12px;font-weight:600;color:var(--ink);font-size:15px}
.contact-meta .ic{width:42px;height:42px;border-radius:12px;background:var(--grad-soft);border:1px solid rgba(22,104,251,.14);
  display:grid;place-items:center;font-size:18px;flex:0 0 auto}
.contact-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:32px;box-shadow:var(--shadow)}
.contact-card h3{font-size:22px;margin-bottom:8px}
.contact-card > p{color:var(--muted);margin-bottom:22px;font-size:15px}
.field{margin-bottom:16px}
.field label{display:block;font-size:14px;font-weight:600;margin-bottom:7px}
.field input,.field textarea{width:100%;padding:14px 16px;border:1.5px solid var(--line);border-radius:14px;
  font-family:inherit;font-size:15px;background:#fff;transition:border-color .16s,box-shadow .16s}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 4px rgba(22,104,251,.13)}

/* prose (generic pages, blog) */
.prose{font-size:16.5px;color:var(--ink-2);line-height:1.75}
.prose h2{font-size:26px;margin:32px 0 14px}
.prose h3{font-size:20px;margin:26px 0 12px}
.prose p{margin-bottom:16px}
.prose ul,.prose ol{margin:0 0 18px 22px}
.prose li{margin-bottom:8px}
.prose a{color:var(--blue);font-weight:600}
.prose img{border-radius:14px;margin:20px 0}

/* FAQ accordion */
.faq-list{display:grid;gap:12px}
.faq-item{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm);overflow:hidden;transition:box-shadow .2s,border-color .2s}
.faq-item[open]{box-shadow:var(--shadow);border-color:rgba(22,104,251,.24)}
.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px;cursor:pointer;
  font-family:var(--font-d);font-weight:600;font-size:16.5px;color:var(--ink);list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-plus{flex:0 0 auto;position:relative;width:22px;height:22px}
.faq-plus::before,.faq-plus::after{content:"";position:absolute;background:var(--blue);border-radius:2px;transition:transform .25s var(--ease)}
.faq-plus::before{top:10px;left:3px;right:3px;height:2px}
.faq-plus::after{left:10px;top:3px;bottom:3px;width:2px}
.faq-item[open] .faq-plus::after{transform:rotate(90deg);opacity:0}
.faq-a{padding:0 22px 22px;color:var(--muted);font-size:15.5px;line-height:1.65}

/* locations list */
.loc-list{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.loc-item{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:16px 18px;box-shadow:var(--shadow-sm);transition:transform .2s var(--ease),box-shadow .2s,border-color .2s}
.loc-item:hover{transform:translateY(-3px);border-color:rgba(22,104,251,.24);box-shadow:var(--shadow)}
.loc-item .li-city{font-weight:700;font-family:var(--font-d);font-size:15px}
.loc-item .li-state{font-size:12.5px;color:var(--muted-2);margin-left:auto}
.loc-item .li-arrow{color:var(--blue);font-weight:700;transition:transform .2s}
.loc-item:hover .li-arrow{transform:translateX(3px)}

@media(max-width:1024px){
  .contact-grid{grid-template-columns:1fr;gap:32px}
  .loc-list{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:640px){
  .loc-list{grid-template-columns:repeat(2,1fr)}
}
