.contact-hero{padding:158px 0 86px; color:#fff; background:radial-gradient(circle at 12% 8%, rgba(0,217,166,.32), transparent 25%), radial-gradient(circle at 82% 16%, rgba(106,183,255,.22), transparent 28%), linear-gradient(128deg,#061722 0%,#102b43 44%,#123c5d 100%); position:relative; overflow:hidden;}
.contact-hero::before{content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px); background-size:44px 44px; opacity:.44;}
.hero-grid{position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr; gap:42px; align-items:center;}
.hero-copy h1{font-size:clamp(38px,5vw,62px); line-height:1.03; margin:16px 0; letter-spacing:-.02em; max-width:680px;}
.hero-copy p{font-size:16.5px; line-height:1.75; color:rgba(255,255,255,.74); max-width:610px;}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap; margin-top:28px;}
.contact-panel{border:1px solid rgba(255,255,255,.14); border-radius:24px; background:rgba(255,255,255,.07); padding:28px; box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 24px 50px rgba(0,0,0,.2);}
.panel-head{display:flex; align-items:center; gap:10px; font-family:var(--mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.64); margin-bottom:20px;}
.status-dot{width:9px; height:9px; border-radius:50%; background:var(--teal); box-shadow:0 0 0 5px rgba(0,217,166,.14);}
.contact-list{display:grid; gap:12px;}
.contact-list a,.contact-list div{display:flex; align-items:center; gap:14px; padding:16px; border:1px solid rgba(255,255,255,.12); border-radius:14px; background:rgba(255,255,255,.05);}
.contact-list a:hover{border-color:rgba(0,217,166,.45); background:rgba(0,217,166,.08);}
.icon{width:38px; height:38px; border-radius:10px; display:grid; place-items:center; background:var(--teal); color:var(--navy-deep); font-weight:800;}
.contact-list small{display:block; font-family:var(--mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.45); margin-bottom:4px;}
.contact-list strong{display:block; color:#fff; font-size:15px;}
section{padding:82px 0;}
.quick-contact{padding:34px 0; background:var(--navy-deep);}
.quick-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
.quick-card{display:block; border:1px solid var(--line-dark); border-radius:18px; padding:22px; background:rgba(255,255,255,.05); color:#fff; transition:transform .2s ease, border-color .2s ease, background .2s ease;}
.quick-card:hover{transform:translateY(-3px); border-color:rgba(0,217,166,.42); background:rgba(255,255,255,.08);}
.quick-card span{font-family:var(--mono); font-size:11px; color:var(--teal);}
.quick-card h2{font-size:20px; margin:10px 0 8px;}
.quick-card p{font-size:14px; line-height:1.6; color:rgba(255,255,255,.62);}
.quote-grid{display:grid; grid-template-columns:.85fr 1.15fr; gap:32px; align-items:start;}
.quote-copy h2,.office-card h2{font-size:clamp(28px,3vw,38px); color:var(--navy); margin:14px 0 12px;}
.quote-copy p,.office-card p{font-size:15.5px; line-height:1.75; color:var(--slate-soft);}
.service-tags{display:flex; flex-wrap:wrap; gap:10px; margin-top:24px;}
.service-tags span{padding:9px 12px; border-radius:999px; border:1px solid rgba(0,181,138,.22); background:#f3fbf8; color:var(--teal-deep); font-family:var(--mono); font-size:11px; letter-spacing:.04em; text-transform:uppercase;}
.quote-form{background:#fff; border:1px solid var(--line); border-radius:22px; padding:28px; box-shadow:0 18px 42px rgba(10,37,64,.07); display:grid; gap:16px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
label{display:grid; gap:8px; color:var(--navy); font-weight:600; font-size:13.5px;}
input,select,textarea{width:100%; border:1px solid var(--line); border-radius:12px; background:#fbfdfc; padding:13px 14px; color:var(--slate); font:inherit; font-size:14px; transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;}
textarea{resize:vertical; min-height:140px;}
input:focus,select:focus,textarea:focus{outline:none; border-color:rgba(0,181,138,.58); box-shadow:0 0 0 4px rgba(0,217,166,.12); background:#fff;}
.quote-form .btn{justify-self:start; border:none;}
.office-section{background:var(--paper-dim);}
.office-grid{display:grid; grid-template-columns:.92fr 1.08fr; gap:28px; align-items:stretch;}
.office-stack{display:grid; gap:18px;}
.office-card{background:#fff; border:1px solid var(--line); border-radius:22px; padding:30px; box-shadow:0 16px 36px rgba(10,37,64,.05);}
.map-stack{display:grid; gap:18px;}
dl{display:grid; gap:14px; margin-top:24px;}
dl div{display:grid; grid-template-columns:110px 1fr; gap:14px; padding-top:14px; border-top:1px solid var(--line);}
dt{font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--teal-dark);}
dd{color:var(--navy); font-weight:600;}
.map-card{min-height:360px; overflow:hidden; border-radius:24px; background:#fff; border:1px solid var(--line); box-shadow:0 20px 44px rgba(10,37,64,.12); position:relative;}
.map-card iframe{width:100%; height:100%; min-height:360px; display:block; border:0;}
.map-stack .map-card{min-height:260px;}
.map-stack .map-card iframe{min-height:260px;}
.map-search-link{position:absolute; right:18px; bottom:18px; display:inline-flex; align-items:center; justify-content:center; padding:11px 14px; border-radius:999px; background:var(--navy-deep); color:#fff; font-weight:700; font-size:13px; box-shadow:0 12px 26px rgba(6,26,46,.2);}
.map-search-link:hover{background:var(--teal); color:var(--navy-deep);}
@media (max-width:980px){
  .hero-grid,.quote-grid,.office-grid{grid-template-columns:1fr;}
  .quick-grid{grid-template-columns:1fr;}
  .contact-panel,.quote-copy,.office-card{max-width:680px;}
}
@media (max-width:680px){
  .contact-hero{padding:124px 0 62px;}
  .hero-copy h1{font-size:clamp(34px,12vw,44px); line-height:1.06;}
  .hero-copy p{font-size:15px; line-height:1.65;}
  section{padding:64px 0;}
  .hero-actions{width:100%;}
  .contact-panel,.quick-card,.quote-form,.office-card,.map-card{border-radius:16px;}
  .contact-panel,.quote-form,.office-card{padding:22px;}
  .contact-list a,.contact-list div{align-items:flex-start; padding:14px;}
  .form-row{grid-template-columns:1fr;}
  .quote-grid,.office-grid{gap:22px;}
  dl div{grid-template-columns:1fr;}
  .map-card,.map-card iframe{min-height:300px;}
  .map-stack .map-card,.map-stack .map-card iframe{min-height:260px;}
  .map-search-link{left:14px; right:14px; bottom:14px; border-radius:12px;}
}
@media (max-width:420px){
  .contact-list strong{font-size:14px; overflow-wrap:anywhere;}
  .service-tags span{font-size:10px;}
}
