/* Inner page templates: services hub, service, area + areas hub, about/contact, quote, thank-you, 404, legal. */

/* ---------- services hub: layer jump nav + one section per layer (concept 3) ---------- */
.jump{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:760px}
.jump a{--c:12px;position:relative;isolation:isolate;display:flex;align-items:center;gap:12px;min-height:64px;padding:10px 14px;color:var(--white);text-decoration:none;font:800 1.25rem/1 var(--fd);text-transform:uppercase}
.jump a::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#30353D 50%,#262A30 50%);clip-path:var(--chf);transition:background .3s}
.jump a:hover::before{background:var(--bevel)}
.jump a:hover{color:var(--g950)}
.jump svg{width:34px;height:auto;flex:none}
.jump small{display:block;font:600 .85rem/1.2 var(--fb);text-transform:none;color:var(--muted)}
.jump a:hover small{color:var(--g950)}
@media (min-width:760px){.jump{grid-template-columns:repeat(4,minmax(0,1fr))}}
.lsec{padding:clamp(64px,8vw,112px) 0;scroll-margin-top:70px}
.lsec-head{display:grid;gap:24px;margin-bottom:36px}
.lsec-title{display:flex;gap:18px;align-items:flex-start}
.lsec-mini{width:clamp(64px,10vw,96px);height:auto;flex:none;margin-top:4px}
.lsec-n{margin:0 0 8px;font:800 1.05rem/1 var(--fd);text-transform:uppercase;letter-spacing:.05em;color:var(--blue)}
.lsec h2{margin-bottom:.2em}
.lsec .lead{margin:0}
.lsec-img{margin:0;position:relative;aspect-ratio:16/9;clip-path:polygon(22px 0,100% 0,100% calc(100% - 22px),calc(100% - 22px) 100%,0 100%,0 22px);background:var(--g800)}
.lsec-img img{width:100%;height:100%;object-fit:cover}
.draw-line{display:block;width:100%;height:12px;margin:0 0 32px;overflow:visible}
.draw-line path{fill:none;stroke:url(#bevelG);stroke-width:3}
@media (min-width:900px){.lsec-head{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:end;gap:48px}.lsec-img{aspect-ratio:4/3}}

/* ---------- service page ---------- */
.svc-body{display:grid;gap:40px;padding-bottom:clamp(64px,8vw,104px)}
.svc-main{min-width:0}
.fig{margin:0}
.svc-fig{position:relative;aspect-ratio:16/10;clip-path:polygon(22px 0,100% 0,100% calc(100% - 22px),calc(100% - 22px) 100%,0 100%,0 22px);background:var(--g800)}
.svc-fig img{width:100%;height:100%;object-fit:cover}
.svc-art{display:block}
.svc-art svg{width:100%;height:100%}
.sa-grid path{stroke:rgba(195,204,213,.06);stroke-width:1}
.sa-ring{fill:none;stroke:#3B414A;stroke-width:3;vector-effect:non-scaling-stroke}
.sa-ring.hot{stroke:var(--blue);stroke-width:4;fill:rgba(134,200,240,.08)}
.sa-core{fill:#30353D}
.sa-icon{fill:none;stroke:var(--blue);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.sa-lb{font:800 15px var(--fd);letter-spacing:1.4px;fill:var(--muted)}
.svc-aside{display:grid;gap:16px;align-content:start}
.qcard{--c:18px;padding:26px 22px 22px}
.qcard-k{display:flex;align-items:center;gap:14px;margin:0 0 12px;font:800 1.5rem/1 var(--fd);text-transform:uppercase;color:var(--white)}
.qcard-k .svc-ic{margin:0}
.qcard-k small{display:block;margin-top:4px;font:600 .95rem/1.2 var(--fb);text-transform:none;color:var(--blue)}
.qcard>p{font-size:1rem;margin-bottom:16px}
.qcard .btn{margin-bottom:10px}
.qcard-call{display:flex;align-items:center;gap:10px;min-height:44px;color:var(--white);text-decoration:none;font-weight:500}
.qcard-call .ic{color:var(--blue)}
.qcard-facts{list-style:none;margin:12px 0 0;padding:12px 0 0;border-top:1px solid rgba(195,204,213,.14);display:flex;flex-wrap:wrap;gap:6px 16px;font:700 1rem/1.2 var(--fd);text-transform:uppercase;letter-spacing:.04em;color:var(--white)}
.qcard-facts b{color:var(--blue)}
.layer-nav{--c:14px;padding:22px 20px 14px}
.layer-nav-k .tag-mini{width:28px;height:auto;flex:none}
.layer-nav-k{display:flex;align-items:center;gap:10px;margin:0 0 6px;font:800 1.1rem/1 var(--fd);text-transform:uppercase;letter-spacing:.04em;color:var(--blue)}
.layer-nav ul{list-style:none;margin:0;padding:0}
.layer-nav a{display:flex;align-items:center;gap:10px;min-height:46px;border-top:1px solid rgba(195,204,213,.12);color:var(--white);text-decoration:none;font-weight:500}
.layer-nav a .ic{width:20px;height:20px;color:var(--blue)}
.layer-nav a:hover{color:var(--blue)}
.incl{padding-top:clamp(36px,5vw,56px)}
.incl .ticks{gap:12px;max-width:70ch}
@media (min-width:1000px){.svc-body{grid-template-columns:minmax(0,1fr) 340px;gap:56px;align-items:start}.svc-aside{position:sticky;top:96px}}
.rel-sec .svc-grid{margin-top:8px}
.rel-areas{display:flex;gap:12px;align-items:flex-start;margin:28px 0 0;max-width:80ch;color:var(--silver)}
.rel-areas .ic{color:var(--blue);margin-top:3px}

/* ---------- area pages + areas hub ---------- */
.phero-area .phero-motif{max-width:520px}
@media (max-width:899px){.phero-area .phero-motif{max-width:420px;margin-top:4px}}
.cmap{margin:0;position:relative}
.cmap svg{width:100%;height:auto;overflow:visible}
.cm-grid path{stroke:rgba(195,204,213,.07);stroke-width:1}
.cm-line{fill:none;stroke:#5A626E;stroke-width:2}
.cm-line.hot{stroke:var(--blue);stroke-width:3.5}
.cm-pt circle{fill:#30353D;stroke:#8A939E;stroke-width:2}
.cm-pt.hot circle{fill:var(--blue);stroke:var(--g950);stroke-width:3}
.cm-pt text{font:800 16px var(--fd);letter-spacing:1px;fill:var(--silver)}
.cm-pt.hot text{fill:var(--white)}
.cmap a:hover text,.cmap a:focus text{fill:var(--blue)}
.cmap a:focus-visible{outline:none}
.cmap a:focus-visible circle{stroke:var(--white);stroke-width:4}
.cm-base polygon{fill:var(--blue2);stroke:var(--g950);stroke-width:2}
.cm-ping{fill:none;stroke:var(--blue);stroke-width:2;transform-box:fill-box;transform-origin:center;animation:ping 3.6s cubic-bezier(.2,.7,.3,1) infinite}
.cm-hq{font:800 14px var(--fd);letter-spacing:1.2px;fill:var(--blue)}
.phero-area .phero-art{display:none}
.cmap figcaption,.cmap-note{margin-top:10px;font-size:.9rem;color:var(--muted)}
.where-in{display:grid;gap:36px}
.hq{display:flex;gap:12px;align-items:flex-start;margin-top:18px;color:var(--white)}
.hq .ic{color:var(--blue);margin-top:3px}
.sub-h{font-size:clamp(1.3rem,2.2vw,1.6rem);margin-bottom:14px}
.chips-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chips-list li{padding:9px 14px;font-weight:500;color:var(--white);background:linear-gradient(90deg,#30353D 50%,#262A30 50%);clip-path:var(--chf-s)}
.areas-note{margin-top:18px;color:var(--muted)}
@media (min-width:900px){.where-in{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start}}
.focus-grid{display:grid;gap:16px;perspective:1200px}
@media (min-width:700px){.focus-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.focus-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.area-body,.page-body{padding-bottom:clamp(64px,8vw,104px)}
.area-body:empty,.page-body:empty{display:none}
.area-links{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.area-links a{--c:12px;position:relative;isolation:isolate;display:flex;align-items:center;gap:10px;min-height:64px;padding:12px 16px;font:800 clamp(1.25rem,3vw,1.6rem)/1 var(--fd);text-transform:uppercase;color:var(--white);text-decoration:none}
.area-links a::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#30353D 50%,#262A30 50%);clip-path:var(--chf)}
.area-links a span{flex:1}
.area-links small{font:600 .8rem/1 var(--fb);text-transform:none;color:var(--blue)}
.area-links .ic{width:18px;height:18px;color:var(--blue);transition:transform .35s var(--pop)}
.area-links a:hover{color:var(--blue)}
.area-links a:hover .ic{transform:translateX(4px)}
.area-links .all{color:var(--blue)}
@media (min-width:760px){.area-links{grid-template-columns:repeat(4,minmax(0,1fr))}}
.area-cards{display:grid;gap:16px;perspective:1200px}
.acard{display:flex;flex-direction:column;transform-style:preserve-3d}
.acard-k{margin:0 0 10px;font:700 .95rem/1.2 var(--fd);text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.acard h3 a{color:var(--white);text-decoration:none}
.acard h3 a:hover{color:var(--blue)}
.acard p{flex:1}
.acard.base{--cl:#86C8F0;--cr:#4FA9DE;color:var(--g950)}
.acard.base h3 a,.acard.base .acard-k,.acard.base .link-arrow{color:var(--g950)}
.acard.base::after{background:var(--g950)}
@media (min-width:700px){.area-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.area-cards{grid-template-columns:repeat(4,minmax(0,1fr))}.area-cards .base{grid-column:span 2}}

/* ---------- contact page ---------- */
.contact-in{display:grid;gap:36px}
.cards{display:grid;gap:12px}
.ccard{--c:14px;display:flex;gap:14px;align-items:flex-start;padding:22px 18px 18px}
.ccard .cc-ic{width:44px;height:44px;padding:10px;flex:none;color:var(--g950);background:var(--bevel);clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px)}
.ccard h3{font-size:1.45rem;margin-bottom:4px}
.ccard p{margin:0 0 4px;color:var(--muted);font-size:.98rem}
.ccard a{display:inline-flex;align-items:center;min-height:44px;font-weight:600;color:var(--white);text-decoration-color:var(--blue);overflow-wrap:anywhere}
.ccard a:hover{color:var(--blue)}
.ccard .links{display:flex;flex-wrap:wrap;gap:0 18px}
@media (min-width:640px){.contact-in .cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1000px){.contact-in{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:56px;align-items:start}}
.map-wrap{display:grid;gap:28px}
.map{position:relative;aspect-ratio:4/3;clip-path:polygon(22px 0,100% 0,100% calc(100% - 22px),calc(100% - 22px) 100%,0 100%,0 22px);background:var(--g800)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.6) contrast(1.05)}
.map-wrap address{color:var(--white);font-size:1.1rem;margin-bottom:12px}
@media (min-width:900px){.map-wrap{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);align-items:center;gap:56px}.map{aspect-ratio:16/9}}

/* ---------- quote page ---------- */
.q-sec{padding-top:0}
.q-grid{display:grid;gap:40px}
.q-aside-k{margin:0 0 12px;font:800 1.35rem/1 var(--fd);text-transform:uppercase;color:var(--white)}
@media (min-width:1000px){.q-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);align-items:start;gap:56px}.q-aside{position:sticky;top:96px}}

/* ---------- thank-you ---------- */
.ty-hero{padding:calc(var(--hdr) + 48px) 0 clamp(64px,8vw,104px)}
.ty-in{max-width:760px}
.ty-shield{width:88px;height:auto;margin-bottom:22px}
.ty-hero h1{font-size:clamp(2.3rem,7.4vw,4.4rem)}
.ty-panel{margin:8px 0 22px}
.ty-acts{margin-top:8px}

/* ---------- 404 ---------- */
.nf{padding:calc(var(--hdr) + 48px) 0 clamp(64px,8vw,104px)}
.nf-in{display:grid;gap:40px;align-items:center}
.nf-links{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:0;max-width:420px}
.nf-links a{display:flex;align-items:center;justify-content:space-between;min-height:52px;border-top:1px solid rgba(195,204,213,.14);color:var(--white);text-decoration:none;font:700 1.2rem/1 var(--fd);text-transform:uppercase;letter-spacing:.03em}
.nf-links a .ic{color:var(--blue);width:18px;height:18px}
.nf-links a:hover{color:var(--blue)}
.nf-art .lshield{width:min(100%,340px);opacity:.85}
@media (max-width:899px){.nf-art{display:none}}
@media (min-width:900px){.nf-in{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:56px}}

/* ---------- legal ---------- */
.phero-legal h1{font-size:clamp(2.3rem,7vw,4.2rem)}
.legal-body{padding-bottom:clamp(64px,8vw,104px)}
.legal-body .psec h2{font-size:clamp(1.6rem,3.6vw,2.3rem)}
.legal-upd{margin:0;color:var(--muted);font-size:.95rem}
.legal-who{margin-top:48px;padding-top:18px;border-top:1px solid rgba(195,204,213,.14);font-size:.95rem;color:var(--muted);max-width:80ch}
