/* ==========================================================================
   CSD Engineers — Contact page (navy + gold, light, blueprint-friendly)
   Sits between the theme header & footer. Class names kept so existing JS works.
   ========================================================================== */
.csd-contact-page{ --brand:#0B2A4A; --brand-dark:#071D34; --gold:#E0A012; --gold-d:#C1860C;
  --ink:#0F1B2D; --body:#33424F; --muted:#5A6B7E; --line:#E3E8EF; --cloud:#F4F6F9;
  --error:#E5484D; --ok:#0E8F6E; --focus:rgba(224,160,18,.18);
  color:var(--body); padding:0 0 72px; }
.csd-contact-page *{ box-sizing:border-box; }
.csd-contact-page .cp-inner{ max-width:1160px; margin:0 auto; padding:0 24px; }

/* ---------- Hero band ---------- */
.cp-hero2{ background:#0B2A4A; background-image:linear-gradient(135deg,rgba(11,42,74,.93),rgba(7,29,52,.97)),url("../images/csd-blueprint-light.svg");
  background-size:auto,900px; color:#fff; padding:62px 24px 92px; text-align:center; }
.cp-hero2 .eyebrow{ display:inline-flex; align-items:center; gap:7px; color:var(--gold); font-weight:800; letter-spacing:.1em; font-size:.78rem; text-transform:uppercase; background:rgba(224,160,18,.12); border:1px solid rgba(224,160,18,.35); padding:6px 14px; border-radius:999px; margin-bottom:16px; }
.cp-hero2 h1{ color:#fff; font-size:clamp(2rem,1.3rem + 2.6vw,3rem); font-weight:900; margin:0 0 12px; letter-spacing:-.015em; }
.cp-hero2 p{ color:rgba(234,241,249,.9); font-size:1.08rem; max-width:62ch; margin:0 auto; line-height:1.6; }

/* ---------- Quick action cards (pulled up over hero) ---------- */
.cp-quick{ max-width:1160px; margin:-60px auto 0; padding:0 24px; display:grid; grid-template-columns:repeat(3,1fr); gap:18px; position:relative; z-index:2; }
.cp-qcard{ background:#fff; border:1px solid var(--line); border-radius:16px; padding:22px; text-align:center; box-shadow:0 12px 30px rgba(11,42,74,.1); transition:transform .2s, box-shadow .2s; text-decoration:none; display:block; }
.cp-qcard:hover{ transform:translateY(-4px); box-shadow:0 18px 40px rgba(11,42,74,.16); border-color:var(--gold); }
.cp-qcard .ic{ width:52px; height:52px; margin:0 auto 12px; border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:24px; background:rgba(224,160,18,.14); }
.cp-qcard .t{ font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); font-weight:800; }
.cp-qcard .v{ font-size:1.02rem; font-weight:800; color:var(--ink); margin-top:3px; word-break:break-word; }

/* ---------- Main card ---------- */
.cp-card{ background:#fff; border:1px solid var(--line); border-radius:20px; box-shadow:0 10px 34px rgba(11,42,74,.08); overflow:hidden; display:grid; grid-template-columns:1fr 1.1fr; margin-top:34px; }
@media (max-width:860px){ .cp-card{ grid-template-columns:1fr; } }

/* Left info panel — navy */
.cp-info{ background:#0B2A4A; background-image:linear-gradient(160deg,rgba(11,42,74,.96),rgba(7,29,52,.99)),url("../images/csd-blueprint-light.svg"); background-size:auto,700px;
  color:#fff; padding:40px 34px; display:flex; flex-direction:column; gap:26px; }
.cp-info-title{ font-size:1.4rem; font-weight:800; margin:0 0 6px; color:#fff; }
.cp-info-sub{ color:rgba(234,241,249,.8); font-size:.94rem; margin:0; line-height:1.6; }
.cp-info-list{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.cp-info-list li{ display:flex; align-items:flex-start; gap:14px; padding:14px 16px; border-radius:12px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); transition:background .2s, border-color .2s; }
.cp-info-list li:hover{ background:rgba(224,160,18,.1); border-color:rgba(224,160,18,.3); }
.cp-info-ico{ font-size:18px; width:38px; height:38px; display:flex; align-items:center; justify-content:center; background:rgba(224,160,18,.18); border-radius:10px; flex-shrink:0; }
.cp-info-content{ display:flex; flex-direction:column; gap:2px; }
.cp-info-label{ font-size:.66rem; text-transform:uppercase; letter-spacing:.08em; color:var(--gold); font-weight:800; }
.cp-info-val{ font-size:.92rem; color:#e8eef7; line-height:1.55; }
.cp-info-val a{ color:#F6C24A; text-decoration:none; }
.cp-info-val a:hover{ text-decoration:underline; }
.cp-hours{ background:rgba(224,160,18,.12); border:1px solid rgba(224,160,18,.3); border-radius:12px; padding:14px 16px; font-size:.92rem; color:#FFE9BE; display:flex; align-items:center; gap:10px; }
.cp-social{ display:flex; gap:10px; flex-wrap:wrap; }
.cp-social a{ display:inline-flex; align-items:center; gap:7px; font-size:.82rem; padding:9px 14px; border-radius:10px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); color:#e8eef7; text-decoration:none; transition:background .2s, color .2s; }
.cp-social a:hover{ background:var(--gold); color:#0B2A4A; border-color:var(--gold); }

/* Right form panel — light */
.cp-form-wrap{ padding:40px 36px; }
@media (max-width:860px){ .cp-form-wrap{ padding:32px 24px; } .cp-info{ padding:32px 24px; } }
.cp-form-heading{ font-size:1.3rem; font-weight:800; margin:0 0 6px; color:var(--ink); }
.cp-form-sub{ color:var(--muted); font-size:.95rem; margin:0 0 22px; }
.cp-form{ display:grid; gap:14px; }
.cp-field{ display:flex; flex-direction:column; }
.cp-field label{ font-size:.85rem; color:var(--ink); margin-bottom:6px; font-weight:700; }
.cp-row{ display:flex; gap:12px; }
.cp-row .cp-field{ flex:1 1 0; }
.cp-form input, .cp-form select, .cp-form textarea{ width:100%; padding:12px 14px; border-radius:10px; border:1px solid var(--line); background:#fff; color:var(--ink); outline:none; font-size:.95rem; font-family:inherit; transition:border-color .15s, box-shadow .15s; }
.cp-form input::placeholder, .cp-form textarea::placeholder{ color:#9AA7B4; }
.cp-form textarea{ min-height:130px; resize:vertical; }
.cp-form input:focus, .cp-form select:focus, .cp-form textarea:focus{ border-color:var(--gold); box-shadow:0 0 0 4px var(--focus); }
.cp-form select option{ background:#fff; }
.cp-error-msg{ color:var(--error); font-size:.76rem; margin-top:5px; display:none; }
.has-error .cp-error-msg{ display:block; }
.has-error input, .has-error textarea, .has-error select{ border-color:var(--error); box-shadow:0 0 0 4px rgba(229,72,77,.15); }
.cp-consent{ display:flex; align-items:flex-start; gap:10px; font-size:.85rem; color:var(--muted); line-height:1.5; }
.cp-consent input[type=checkbox]{ width:17px; height:17px; margin-top:2px; accent-color:var(--gold); flex-shrink:0; }
.cp-consent a{ color:var(--gold-d); text-decoration:none; }
.cp-actions{ display:flex; align-items:center; gap:12px; margin-top:4px; }
.cp-submit-btn{ background:var(--gold); border:none; color:#0B2A4A; font-weight:800; font-size:.98rem; padding:13px 26px; border-radius:10px; cursor:pointer; transition:background .15s, transform .1s, box-shadow .15s; box-shadow:0 8px 22px rgba(224,160,18,.3); display:inline-flex; align-items:center; gap:8px; }
.cp-submit-btn:hover{ background:#F2B62E; box-shadow:0 12px 30px rgba(224,160,18,.4); }
.cp-submit-btn:active{ transform:translateY(1px); }
.cp-submit-btn:disabled{ opacity:.6; cursor:not-allowed; }
.cp-spinner{ width:18px; height:18px; border:2px solid rgba(11,42,74,.25); border-top-color:#0B2A4A; border-radius:50%; animation:cpSpin 1s linear infinite; display:none; }
.cp-status{ font-size:.9rem; padding:12px 14px; border-radius:10px; border:1px dashed var(--line); color:var(--body); display:none; margin-top:4px; }
.cp-status.ok{ border-color:rgba(14,143,110,.4); background:rgba(14,143,110,.08); color:#0E7A5F; }
.cp-status.err{ border-color:rgba(229,72,77,.4); background:rgba(229,72,77,.07); color:#C0392B; }

/* ---------- Map ---------- */
.cp-map-section{ max-width:1160px; margin:38px auto 0; padding:0 24px; }
.cp-map-inner{ border-radius:16px; overflow:hidden; border:1px solid var(--line); box-shadow:0 8px 24px rgba(11,42,74,.06); }
.cp-map-section iframe{ width:100%; height:340px; display:block; border:none; }

/* ---------- FAQ ---------- */
.cp-faq{ max-width:1160px; margin:46px auto 0; padding:0 24px; }
.cp-faq h2{ text-align:center; color:var(--ink); font-size:clamp(1.5rem,1.1rem + 1.2vw,2rem); font-weight:900; margin:0 0 8px; }
.cp-faq .sub{ text-align:center; color:var(--muted); margin:0 auto 26px; max-width:52ch; }
.cp-faq details{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:0 20px; margin-bottom:12px; box-shadow:0 4px 14px rgba(11,42,74,.04); }
.cp-faq summary{ cursor:pointer; list-style:none; padding:18px 0; font-weight:700; color:var(--ink); display:flex; justify-content:space-between; align-items:center; gap:16px; }
.cp-faq summary::-webkit-details-marker{ display:none; }
.cp-faq summary::after{ content:"+"; color:var(--gold-d); font-size:1.5rem; font-weight:800; line-height:1; }
.cp-faq details[open] summary::after{ content:"\2212"; }
.cp-faq details p{ margin:0 0 18px; color:var(--body); line-height:1.65; }

@keyframes cpSpin{ to{ transform:rotate(360deg); } }
@media (max-width:720px){ .cp-quick{ grid-template-columns:1fr; margin-top:-46px; } .cp-row{ flex-direction:column; } }
