/* ═══════════════════════════════════════════════════
   Location page styles (city + county template)
   ═══════════════════════════════════════════════════ */

/* ── Services grid (6 items, 3×2) ── */
.loc-svc-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule);border-left:1px solid var(--rule)}
.loc-svc{padding:var(--s-7) var(--s-6);border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);background:var(--paper-1);display:flex;flex-direction:column;gap:var(--s-3);min-height:260px;transition:background .2s}
.loc-svc:hover{background:var(--paper-0)}
.loc-svc-num{font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;color:var(--steel-3);text-transform:uppercase;display:flex;justify-content:space-between;align-items:center}
.loc-svc-num a{color:var(--amber-1)}
.loc-svc-num a:hover{color:var(--amber-0)}
.loc-svc h3{font-size:24px;letter-spacing:.02em;line-height:1.05;color:var(--ink-1)}
.loc-svc p{font-family:var(--f-body);font-size:15px;line-height:1.55;color:var(--steel-3);flex:1}

/* ── Districts / neighbourhood grid ── */
.loc-dist-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--rule-dark);border-left:1px solid var(--rule-dark);margin-top:var(--s-8)}
.loc-dist{padding:var(--s-5) var(--s-5);border-right:1px solid var(--rule-dark);border-bottom:1px solid var(--rule-dark);display:flex;flex-direction:column;gap:var(--s-1);background:rgba(255,255,255,.01);transition:background .2s}
.loc-dist.has-link:hover{background:rgba(216,154,60,.06)}
.loc-dist .cn{font-family:var(--f-display);font-weight:700;font-size:18px;letter-spacing:.03em;text-transform:uppercase;color:#fff;line-height:1.1}
.loc-dist .cr{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.2em;color:rgba(255,255,255,.55);text-transform:uppercase}
.loc-dist.has-link .cr{color:var(--amber-2)}

/* ── Use-cases / industries ── */
.loc-uc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-6);margin-top:var(--s-8)}
.loc-uc{padding:var(--s-7) var(--s-6);border:1px solid var(--rule);background:var(--paper-0);border-radius:var(--chamfer-md);display:flex;flex-direction:column;gap:var(--s-3);min-height:240px}
.loc-uc-label{font-family:var(--f-mono);font-size:11px;letter-spacing:.22em;color:var(--amber-1);text-transform:uppercase}
.loc-uc h3{font-size:22px;letter-spacing:.02em;line-height:1.1;color:var(--ink-1)}
.loc-uc p{font-family:var(--f-body);font-size:14.5px;line-height:1.55;color:var(--steel-3);flex:1}

/* ── Field reports / representative scenarios ── */
.field-reports{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-6);margin-top:var(--s-8)}
.fr-card{padding:var(--s-7) var(--s-6);border:1px solid var(--rule-dark);background:rgba(255,255,255,.02);border-radius:var(--chamfer-md);display:flex;flex-direction:column;gap:var(--s-3);min-height:220px;position:relative}
.fr-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--amber-2);border-radius:var(--chamfer-md) 0 0 var(--chamfer-md)}
.fr-kicker{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.22em;color:var(--amber-2);text-transform:uppercase;display:flex;justify-content:space-between;align-items:center}
.fr-kicker em{font-style:normal;color:rgba(255,255,255,.45);font-weight:400}
.fr-card h3{font-size:20px;letter-spacing:.02em;line-height:1.1;color:#fff;font-family:var(--f-display);font-weight:700}
.fr-card p{font-family:var(--f-body);font-size:14.5px;line-height:1.6;color:rgba(255,255,255,.78);flex:1}
.fr-disclaimer{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.45);margin-top:var(--s-7);padding-top:var(--s-5);border-top:1px dashed var(--rule-dark);text-align:center}

/* ── Protocol rail ── */
.loc-proto-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--rule-dark);border-radius:var(--chamfer-md);overflow:hidden;margin-top:var(--s-8)}
.loc-proto-step{padding:var(--s-7) var(--s-6) var(--s-8);position:relative;border-right:1px solid var(--rule-dark);background:linear-gradient(180deg,rgba(255,255,255,.02),transparent 80%)}
.loc-proto-step:last-child{border-right:0}
.lp-time{font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;color:rgba(255,255,255,.55);text-transform:uppercase;display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--s-4);padding-bottom:var(--s-3);border-bottom:1px dashed var(--rule-dark)}
.lp-time .clock{color:var(--amber-2);font-weight:500}
.lp-n{font-family:var(--f-display);font-weight:800;font-size:58px;line-height:.9;color:rgba(255,255,255,.08);letter-spacing:-.03em;position:absolute;top:var(--s-4);right:var(--s-6);pointer-events:none}
.loc-proto-step h4{font-size:22px;letter-spacing:.02em;line-height:1.05;color:#fff;margin-bottom:var(--s-2)}
.loc-proto-step p{font-family:var(--f-body);font-size:14.5px;line-height:1.55;color:rgba(255,255,255,.72)}
.lp-bar{position:absolute;left:0;right:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--amber-2) 0%,var(--amber-2) var(--p,25%),rgba(255,255,255,.1) var(--p,25%))}

/* ── FAQ ── */
.loc-faq{border:1px solid var(--rule);border-radius:var(--chamfer-md);overflow:hidden;background:var(--paper-0);margin-top:var(--s-8)}
.loc-faq-item{border-bottom:1px solid var(--rule)}
.loc-faq-item:last-child{border-bottom:0}
.loc-faq-item summary{list-style:none;display:grid;grid-template-columns:auto 1fr auto;gap:var(--s-5);align-items:center;padding:var(--s-6) var(--s-6);cursor:pointer;transition:background .2s}
.loc-faq-item summary::-webkit-details-marker{display:none}
.loc-faq-item summary:hover{background:var(--paper-1)}
.loc-faq-item summary .n{font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;color:var(--amber-1);text-transform:uppercase;white-space:nowrap}
.loc-faq-item summary .q{font-family:var(--f-display);font-weight:700;font-size:18px;letter-spacing:.02em;text-transform:uppercase;color:var(--ink-1);line-height:1.2}
.loc-faq-item summary .ic{font-family:var(--f-display);font-weight:400;font-size:24px;color:var(--steel-3);transition:transform .25s}
.loc-faq-item[open] summary .ic{transform:rotate(45deg);color:var(--amber-1)}
.loc-faq-item .a{padding:0 var(--s-6) var(--s-6) calc(var(--s-6) + 60px);font-family:var(--f-body);font-size:16px;line-height:1.65;color:var(--steel-3)}

/* ── Index page — locations grid ── */
.loc-index-hero{background:var(--ink-1);color:#fff;padding:calc(var(--header-h) + var(--s-11)) 0 var(--s-11);position:relative;overflow:hidden;border-bottom:1px solid var(--rule-dark)}
.loc-index-hero::before{content:"";position:absolute;inset:0;background-image:var(--grid-dark);background-size:var(--grid-size);mask-image:radial-gradient(ellipse at 70% 40%,#000 20%,transparent 80%);-webkit-mask-image:radial-gradient(ellipse at 70% 40%,#000 20%,transparent 80%);pointer-events:none}
.loc-index-hero > .container{position:relative;z-index:1}

.loc-group{margin-top:var(--s-10)}
.loc-group-head{display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:var(--s-5);border-bottom:1px solid var(--rule);margin-bottom:var(--s-6)}
.loc-group-head h3{font-size:clamp(28px,3vw,44px);font-weight:800;letter-spacing:-.005em}
.loc-group-head .c{font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;color:var(--steel-3);text-transform:uppercase}
.loc-index-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-5)}
.loc-index-card{background:var(--paper-0);border:1px solid var(--rule);border-radius:var(--chamfer-md);padding:var(--s-6) var(--s-6) var(--s-5);display:flex;flex-direction:column;gap:var(--s-3);min-height:200px;transition:transform .2s,background .2s,border-color .2s}
.loc-index-card:hover{background:#fff;border-color:var(--ink-4);transform:translateY(-2px)}
.loc-index-card .kicker{font-family:var(--f-mono);font-size:11px;letter-spacing:.22em;color:var(--amber-1);text-transform:uppercase;display:flex;justify-content:space-between;align-items:center}
.loc-index-card .kicker em{font-style:normal;color:var(--steel-3)}
.loc-index-card .title{font-family:var(--f-display);font-weight:800;font-size:28px;letter-spacing:.01em;text-transform:uppercase;color:var(--ink-1);line-height:.95}
.loc-index-card .title small{font-family:var(--f-mono);font-weight:400;font-size:12px;letter-spacing:.15em;color:var(--steel-3);display:block;margin-top:var(--s-2)}
.loc-index-card .meta{font-family:var(--f-body);font-size:14.5px;color:var(--steel-3);line-height:1.55;flex:1}
.loc-index-card .go{font-family:var(--f-mono);font-size:11px;letter-spacing:.2em;color:var(--amber-1);text-transform:uppercase;padding-top:var(--s-4);border-top:1px dashed var(--rule);display:flex;justify-content:space-between;align-items:center}
.loc-index-card.coming{opacity:.65;pointer-events:none}
.loc-index-card.coming .kicker em{color:var(--amber-2)}

/* ── Index page — search & filter controls ── */
.loc-controls{display:flex;align-items:center;gap:var(--s-5);margin-top:var(--s-9);padding:var(--s-4) var(--s-5);background:var(--paper-1);border:1px solid var(--rule);border-radius:var(--chamfer-md)}
.loc-tabs{display:flex;gap:var(--s-1);padding:3px;background:var(--paper-2);border-radius:var(--r-sm)}
.loc-tab{appearance:none;border:0;background:transparent;padding:var(--s-2) var(--s-4);font-family:var(--f-display);font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--steel-3);cursor:pointer;border-radius:var(--r-sm);transition:background .15s,color .15s}
.loc-tab:hover{color:var(--ink-1)}
.loc-tab[aria-selected="true"]{background:var(--ink-1);color:var(--paper-0)}
.loc-tab-count{margin-left:var(--s-2);font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;opacity:.7;font-weight:400}
.loc-search{flex:1;display:flex;align-items:center;gap:var(--s-3);padding-left:var(--s-4);border-left:1px solid var(--rule)}
.loc-search .lbl{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.22em;color:var(--steel-3);text-transform:uppercase}
.loc-search input{flex:1;border:0;background:transparent;font-family:var(--f-body);font-size:16px;color:var(--ink-1);outline:none;letter-spacing:.01em}
.loc-search input::placeholder{color:var(--steel-2)}
.loc-count{font-family:var(--f-mono);font-size:11px;letter-spacing:.22em;color:var(--amber-1);text-transform:uppercase;white-space:nowrap}

/* ── Region section headings ── */
.loc-region{margin-top:var(--s-9)}
.loc-region:first-of-type{margin-top:var(--s-8)}
.loc-region-head{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:var(--s-3);border-bottom:1px solid var(--rule);margin-bottom:var(--s-5)}
.loc-region-head h4{font-family:var(--f-display);font-weight:800;font-size:clamp(22px,2.4vw,32px);letter-spacing:.01em;text-transform:uppercase;color:var(--ink-1)}
.loc-region-head .rc{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.22em;color:var(--steel-3);text-transform:uppercase}
.loc-empty{padding:var(--s-9) var(--s-6);text-align:center;font-family:var(--f-body);color:var(--steel-3);border:1px dashed var(--rule);border-radius:var(--chamfer-md)}
.loc-empty strong{color:var(--ink-1);font-family:var(--f-display);letter-spacing:.02em;font-weight:700}

/* Hidden state used by the search filter */
[hidden]{display:none !important}

/* Tighter card for dense grids */
.loc-index-grid.dense{grid-template-columns:repeat(4,1fr);gap:var(--s-4)}
.loc-index-grid.dense .loc-index-card{min-height:170px;padding:var(--s-5) var(--s-5) var(--s-4);gap:var(--s-2)}
.loc-index-grid.dense .loc-index-card .title{font-size:22px}
.loc-index-grid.dense .loc-index-card .meta{font-size:13.5px;line-height:1.5}
@media (max-width:1280px){ .loc-index-grid.dense{grid-template-columns:repeat(3,1fr)} }
@media (max-width:1024px){ .loc-index-grid.dense{grid-template-columns:repeat(2,1fr)} .loc-controls{flex-wrap:wrap} .loc-search{flex-basis:100%;border-left:0;padding-left:0} }
@media (max-width:768px)  { .loc-index-grid.dense{grid-template-columns:1fr} }

/* ── Industry chip grid (on location pages) ── */
.loc-ind-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--s-3);margin-top:var(--s-8)}
.loc-ind-chip{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-4) var(--s-5);background:var(--paper-0);border:1px solid var(--rule);border-left:3px solid var(--a,var(--amber-1));border-radius:var(--chamfer-md);color:var(--ink-1);transition:background .2s,transform .2s,border-color .2s}
.loc-ind-chip:hover{background:#fff;transform:translateY(-2px);border-color:var(--a)}
.loc-ind-chip .ic{width:10px;height:10px;border-radius:2px;background:var(--a,var(--amber-1));flex-shrink:0}
.loc-ind-chip .nm{font-family:var(--f-display);font-weight:700;font-size:15px;letter-spacing:.04em;text-transform:uppercase;flex:1}
.loc-ind-chip .ar{font-family:var(--f-mono);font-size:12px;color:var(--a,var(--amber-1))}

/* ── Responsive ── */
@media (max-width:1280px){
  .loc-svc-grid{grid-template-columns:repeat(2,1fr)}
  .loc-dist-grid{grid-template-columns:repeat(3,1fr)}
  .loc-uc-grid{grid-template-columns:repeat(2,1fr)}
  .loc-index-grid{grid-template-columns:repeat(2,1fr)}
  .loc-ind-grid{grid-template-columns:repeat(3,1fr)}
  .field-reports{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:768px){
  .loc-ind-grid{grid-template-columns:repeat(2,1fr)}
  .field-reports{grid-template-columns:1fr}
}
@media (max-width:1024px){
  .loc-proto-grid{grid-template-columns:repeat(2,1fr)}
  .loc-proto-step{border-bottom:1px solid var(--rule-dark)}
  .loc-proto-step:nth-child(2n){border-right:0}
  .loc-proto-step:nth-last-child(-n+2){border-bottom:0}
  .quote-inner{grid-template-columns:1fr !important;gap:var(--s-8) !important}
}
@media (max-width:768px){
  .loc-svc-grid{grid-template-columns:1fr}
  .loc-dist-grid{grid-template-columns:repeat(2,1fr)}
  .loc-uc-grid{grid-template-columns:1fr}
  .loc-proto-grid{grid-template-columns:1fr}
  .loc-proto-step{border-right:0;border-bottom:1px solid var(--rule-dark)}
  .loc-proto-step:last-child{border-bottom:0}
  .loc-faq-item summary{grid-template-columns:1fr auto;gap:var(--s-3);padding:var(--s-5)}
  .loc-faq-item summary .n{grid-column:1/-1;font-size:10px}
  .loc-faq-item .a{padding:0 var(--s-5) var(--s-5);grid-column:1/-1}
  .loc-index-grid{grid-template-columns:1fr}
  .loc-group-head{flex-direction:column;align-items:flex-start;gap:var(--s-2)}
}
