/* =========================================================================
   home.css — homepage hero, live-dispatch console, and home sections
   ========================================================================= */

/* ---------- signature hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;isolation:isolate;overflow:hidden;padding:7rem 0 4rem}
.hero__poster,#hero-gl{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__poster{z-index:-2}
#hero-gl{z-index:-1}
.hero::after{ /* readability scrim */
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(95deg,rgba(12,14,17,.92) 0%,rgba(12,14,17,.72) 38%,rgba(12,14,17,.30) 70%,rgba(12,14,17,.6) 100%);
}
.hero .container{position:relative;z-index:2;display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:center;width:min(100% - 2.4rem,1240px)}
.hero__copy{max-width:40rem}
.hero__badge{display:inline-flex;align-items:center;gap:.6rem;background:rgba(20,23,28,.6);border:1px solid var(--steel-600);border-radius:40px;padding:.45rem .95rem;font-family:var(--f-mono);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text);margin-bottom:1.5rem}
.hero__badge .pulse{width:9px;height:9px;border-radius:50%;background:#36d399;position:relative}
.hero__badge .pulse::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1px solid #36d399;animation:ping 1.8s var(--ease) infinite}
@keyframes ping{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.8);opacity:0}}
.hero h1{font-size:clamp(2.9rem,7.5vw,6rem);color:var(--white);letter-spacing:.005em}
.hero h1 .amber{color:var(--amber);display:block}
.hero__sub{font-size:1.22rem;color:var(--text-dim);margin:1.4rem 0 2rem;max-width:46ch}
.hero__actions{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}
.hero__trust{display:flex;gap:1.8rem;margin-top:2.4rem;flex-wrap:wrap}
.hero__trust .t{display:flex;flex-direction:column}
.hero__trust .t b{font-family:var(--f-display);font-size:1.7rem;color:var(--white);line-height:1}
.hero__trust .t span{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);margin-top:.25rem}
.hero__trust .stars{color:var(--amber);font-size:1.7rem;line-height:1;font-family:var(--f-display)}

@media (max-width:980px){
  .hero .container{grid-template-columns:1fr}
  .hero__console{display:none}
}
@media (prefers-reduced-motion:reduce){.hero__badge .pulse::after{animation:none}}

/* ---------- live dispatch console (signature interaction) ---------- */
.hero__console{
  background:linear-gradient(180deg,rgba(20,23,28,.94),rgba(12,14,17,.96));
  border:1px solid var(--steel-700);border-radius:var(--radius-lg);box-shadow:var(--shadow);
  overflow:hidden;backdrop-filter:blur(4px);font-family:var(--f-mono)
}
.console__bar{display:flex;align-items:center;gap:.55rem;padding:.7rem 1rem;border-bottom:1px solid var(--steel-700);background:rgba(0,0,0,.25)}
.console__bar i{width:11px;height:11px;border-radius:50%;display:block}
.console__bar i:nth-child(1){background:#ff5f57}.console__bar i:nth-child(2){background:#febc2e}.console__bar i:nth-child(3){background:#28c840}
.console__bar span{margin-left:.5rem;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim)}
.console__bar .live{margin-left:auto;color:#36d399;display:flex;align-items:center;gap:.4rem;font-size:.7rem}
.console__bar .live::before{content:"";width:7px;height:7px;border-radius:50%;background:#36d399;box-shadow:0 0 0 0 rgba(54,211,153,.6);animation:livepulse 1.6s infinite}
@keyframes livepulse{0%{box-shadow:0 0 0 0 rgba(54,211,153,.5)}100%{box-shadow:0 0 0 7px rgba(54,211,153,0)}}
.console__body{padding:1.1rem 1.2rem;min-height:268px;font-size:.86rem;line-height:1.7}
.console__line{display:flex;gap:.6rem;margin-bottom:.7rem;opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s}
.console__line.show{opacity:1;transform:none}
.console__line .tag{color:var(--steel-500);flex:0 0 auto}
.console__line .tag.in{color:var(--amber)}
.console__line .tag.ok{color:#36d399}
.console__line .tag.go{color:#5ea0ff}
.console__line p{margin:0;color:var(--text)}
.console__eta{margin-top:.4rem;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--steel-700);padding-top:.9rem}
.console__eta .k{color:var(--text-dim);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}
.console__eta .v{color:var(--amber);font-size:1.4rem}
.console__cursor{display:inline-block;width:8px;height:1.05em;background:var(--amber);margin-left:2px;vertical-align:-2px;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
html.no-motion .console__cursor{animation:none}

/* ---------- services preview ---------- */
.svc-grid .card{padding-top:2rem}
.svc-feature{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr;gap:0;padding:0;background:var(--steel-800)}
.svc-feature .txt{padding:2.2rem}
.svc-feature .frame{border:0;border-radius:0}
.svc-feature .frame img{height:100%;min-height:280px}
@media (max-width:760px){.svc-feature{grid-template-columns:1fr}.svc-feature{grid-column:span 1}}

/* ---------- heritage split ---------- */
.heritage{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.heritage__media{position:relative}
.heritage__media .frame{box-shadow:var(--shadow)}
.heritage__media .badge{position:absolute;bottom:-22px;right:-12px;background:var(--amber);color:var(--ink);font-family:var(--f-display);text-transform:uppercase;padding:1rem 1.3rem;border-radius:var(--radius);box-shadow:var(--shadow-amber);text-align:center;line-height:.95}
.heritage__media .badge b{font-size:2.3rem;display:block}
.heritage__media .badge span{font-size:.72rem;letter-spacing:.1em;font-family:var(--f-mono)}
.heritage__media .frames-2{display:grid;grid-template-columns:1.3fr .9fr;gap:1rem;align-items:end}
@media (max-width:860px){.heritage{grid-template-columns:1fr;gap:3.5rem}}

/* ---------- process steps ---------- */
.steps{counter-reset:step;display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.step{position:relative;background:var(--steel-800);border:var(--line);border-radius:var(--radius-lg);padding:2rem 1.6rem 1.6rem}
.step::before{counter-increment:step;content:"0" counter(step);font-family:var(--f-display);font-size:3.2rem;color:var(--amber);opacity:.32;line-height:1;display:block;margin-bottom:.4rem}
.step h3{color:var(--white);font-size:1.35rem;margin-bottom:.5rem}
.step p{color:var(--text-dim);margin:0;font-size:.96rem}
@media (max-width:760px){.steps{grid-template-columns:1fr}}

/* ---------- reviews ---------- */
.review-rating{display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;margin-bottom:2.4rem}
.review-rating .big{font-family:var(--f-display);font-size:4rem;color:var(--white);line-height:.9}
.review-rating .stars{color:var(--amber);font-size:1.6rem}
.review-rating .meta{font-family:var(--f-mono);font-size:.8rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.review{background:var(--steel-800);border:var(--line);border-radius:var(--radius-lg);padding:1.7rem;position:relative}
.review .q{color:var(--amber);font-family:var(--f-display);font-size:2.6rem;line-height:.6;height:.6em;display:block;margin-bottom:.6rem}
.review p{color:var(--text);font-size:1rem;margin:0 0 1.1rem}
.review .who{display:flex;align-items:center;gap:.7rem}
.review .av{width:38px;height:38px;border-radius:50%;background:var(--amber-soft);color:var(--amber);display:grid;place-items:center;font-family:var(--f-display);font-size:1.1rem}
.review .who b{color:var(--white);font-size:.95rem;display:block;font-family:var(--f-body)}
.review .who span{color:var(--text-dim);font-size:.78rem;font-family:var(--f-mono)}
@media (max-width:900px){.reviews-grid{grid-template-columns:1fr}}

/* ---------- service-area map list ---------- */
.areas{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}
.area-chip{display:flex;align-items:center;gap:.6rem;background:var(--steel-800);border:var(--line);border-radius:var(--radius);padding:.9rem 1.1rem;transition:border-color .25s,transform .25s;font-weight:600}
.area-chip:hover{border-color:var(--amber);transform:translateY(-2px)}
.area-chip svg{width:1rem;height:1rem;color:var(--amber);flex:0 0 auto}
@media (max-width:760px){.areas{grid-template-columns:1fr 1fr}}
@media (max-width:460px){.areas{grid-template-columns:1fr}}

/* ---------- gallery ---------- */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:1rem}
.gallery .frame{border-radius:var(--radius-lg)}
.gallery .frame img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.gallery .frame:hover img{transform:scale(1.06)}
.gallery .span-2{grid-column:span 2;grid-row:span 2}
@media (max-width:900px){.gallery{grid-template-columns:repeat(2,1fr)}.gallery .span-2{grid-column:span 2}}

/* ---------- contact split ---------- */
.contact-split{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.contact-info .line{display:flex;gap:1rem;padding:1.1rem 0;border-bottom:var(--line)}
.contact-info .line svg{width:1.4rem;height:1.4rem;color:var(--amber);flex:0 0 auto;margin-top:.2rem}
.contact-info .line b{color:var(--white);display:block;font-family:var(--f-display);font-size:1.2rem;text-transform:uppercase;letter-spacing:.02em}
.contact-info .line span,.contact-info .line a{color:var(--text-dim)}
.contact-card{background:var(--steel-800);border:var(--line);border-radius:var(--radius-lg);padding:2rem}
@media (max-width:860px){.contact-split{grid-template-columns:1fr}}
