/* ==========================================================================
   EliteBlocc v2 — Contact Page
   File: assets/css/pages/eb-contact.css  v1.0
   Namespace: .eb-ct-wrap / .eb-ct__*
   Design: Obsidian Forge — amber→emerald gradient edges throughout
   Loaded by: inc/assets/enqueue-assets.php on contact / enquire slug.

   SECTION RHYTHM
   01 Hero           — dark  #020c07  — two-col, promise cards, trust band
   02 Intent selector— mid   #060d09  — 4 large clickable cards
   03 Main grid      — white #ffffff  — 330px sidebar | form column
   04 Reassure strip — light #f4f8f4  — 3 trust items

   SIGNATURE GRADIENT (preserved from v1, used everywhere)
   linear-gradient(90deg, #b45309 0%, #f59e0b 40%, #10b981 75%, #064e3b 100%)
   Used as: top edge on cards, animated underline on form fields,
            left edge on context bars, hero hairline.
   ========================================================================== */

/* ── 00. GSAP STATES ─────────────────────────────────────────────────────── */
.eb-ct-wrap .gsap-reveal,
.eb-ct-wrap .gsap-stagger > * { opacity:1!important; transform:none!important; }

/* ── 01. PAGE TOKENS ─────────────────────────────────────────────────────── */
.eb-ct-wrap {
  --ct-dark:   #020c07;
  --ct-mid:    #060d09;
  --ct-em:     #10b981;
  --ct-emd:    #064e3b;
  --ct-gold:   #f59e0b;
  --ct-gold-d: #b45309;
  --ct-ts:     rgba(235,245,240,.85);
  --ct-tm:     rgba(200,225,210,.5);
  --ct-bdr:    rgba(255,255,255,.08);
  /* Light sections */
  --ct-light:  #f4f8f4;
  --ct-ink:    #1a1a1a;
  --ct-ink-m:  #4a5568;
  --ct-ink-f:  #718096;
  --ct-bdr-l:  rgba(0,0,0,.09);
  /* Signature gradient */
  --ct-grad:   linear-gradient(90deg, #b45309 0%, #f59e0b 35%, #10b981 70%, #064e3b 100%);
  --ct-grad-v: linear-gradient(180deg, #b45309 0%, #f59e0b 35%, #10b981 75%, #064e3b 100%);
  font-family: 'Inter', sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* ── 02. KEYFRAMES ───────────────────────────────────────────────────────── */
@keyframes eb-ct-pulse {
  0%,100% { opacity:1; box-shadow:0 0 0 0 rgba(16,185,129,.5); }
  50%     { opacity:.7; box-shadow:0 0 0 4px rgba(16,185,129,0); }
}
@keyframes eb-ct-btn-pulse {
  0%,100% { box-shadow:0 4px 18px rgba(245,158,11,.28); }
  50%     { box-shadow:0 4px 22px rgba(245,158,11,.52), 0 0 0 3px rgba(245,158,11,.1); }
}
@keyframes eb-ct-reveal-up {
  from { opacity:0; transform:translateY(20px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes eb-ct-shimmer {
  from { transform:translateX(-120%) skewX(-18deg); }
  to   { transform:translateX(220%) skewX(-18deg); }
}


/* ── ELEMENTOR OVERRIDE — kill theme button color on intent cards ─────────── */
/* Elementor applies a "theme primary" colour on button:hover at high specificity.
   These rules ensure our intent cards are immune to that override. */
.elementor .eb-ct-wrap button.eb-ct__intent-card,
.elementor .eb-ct-wrap button.eb-ct__intent-card:hover,
.elementor .eb-ct-wrap button.eb-ct__intent-card:focus,
.elementor .eb-ct-wrap button.eb-ct__intent-card:active {
  background-image: none !important;
}
.elementor .eb-ct-wrap button.eb-ct__intent-card:hover {
  background-color: rgba(16,185,129,.07) !important;
}
.elementor .eb-ct-wrap button.eb-ct__intent-card.is-active {
  background-color: rgba(16,185,129,.12) !important;
}
.elementor .eb-ct-wrap button.eb-ct__intent-card.is-active--gold {
  background-color: rgba(245,158,11,.1) !important;
}

/* ── 03. REVEAL SYSTEM ───────────────────────────────────────────────────── */
.eb-ct-reveal { opacity:0; transform:translateY(16px); transition:opacity .55s cubic-bezier(0.22,1,0.36,1), transform .55s cubic-bezier(0.22,1,0.36,1); }
.eb-ct-reveal.is-visible { opacity:1; transform:none; }
@media(prefers-reduced-motion:reduce){ .eb-ct-reveal{ opacity:1!important; transform:none!important; transition:none!important; } }

/* ═══════════════════════════════════════════════════════════════════════════
   04. HERO
   ═══════════════════════════════════════════════════════════════════════════ */
.eb-ct__section--hero {
  background: var(--ct-dark);
  padding: clamp(44px,6.5vw,80px) clamp(20px,4vw,56px) 0;
  position: relative;
  overflow: hidden;
}
/* Dot grid */
.eb-ct__section--hero::before {
  content: '';
  position: absolute; inset: 0;
  background-image: radial-gradient(circle, rgba(16,185,129,.13) 1px, transparent 1px);
  background-size: 22px 22px;
  pointer-events: none;
}
/* Amber→emerald hairline */
.eb-ct__section--hero::after {
  content: '';
  position: absolute; top:0; left:0; right:0; height:2px;
  background: var(--ct-grad);
  pointer-events: none;
}

.eb-ct__hero-inner {
  max-width: 1100px; margin: 0 auto;
  display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px,5vw,60px);
  position: relative; z-index: 1;
  padding-bottom: clamp(20px,3vw,40px);
}

/* Breadcrumb */
.eb-ct__breadcrumb {
  display: flex; align-items: center; gap: 5px;
  font-family: monospace; font-size: .58rem; letter-spacing: .1em; text-transform: uppercase;
  color: rgba(255,255,255,.28); margin-bottom: 14px;
}
.eb-ct__breadcrumb a { color: inherit; text-decoration: none; }
.eb-ct__breadcrumb a:hover { color: rgba(255,255,255,.5); }
.eb-ct__breadcrumb span { color: rgba(16,185,129,.5); }

/* Hero eyebrow */
.eb-ct__hero-eyebrow {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: monospace; font-size: .6rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase; color: var(--ct-em);
  margin-bottom: 12px;
}
.eb-ct__hero-eyebrow__bar {
  width: 16px; height: 1.5px;
  background: linear-gradient(90deg, var(--ct-gold-d), var(--ct-em));
}

/* Hero heading */
.eb-ct__h1 {
  font-family: 'Orbitron', monospace;
  font-size: clamp(1.7rem,3.2vw,2.7rem);
  font-weight: 900; line-height: 1.06; letter-spacing: -.02em;
  color: #fff; margin-bottom: 14px;
}
.eb-ct__h1 em { font-style: normal; color: var(--ct-em); }

.eb-ct__hero-lead {
  font-size: .88rem; line-height: 1.78; color: rgba(255,255,255,.54);
}

/* ── Promise cards (hero right) ──────────────────────────────────────────── */
.eb-ct__promises { display: flex; flex-direction: column; gap: 9px; }
.eb-ct__promise {
  background: rgba(6,78,59,.12);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 10px; padding: 13px 15px;
  display: flex; align-items: center; gap: 12px;
  position: relative; overflow: hidden;
}
/* Signature gradient top edge */
.eb-ct__promise::before {
  content: ''; position: absolute; top:0; left:0; right:0; height:2px;
  background: var(--ct-grad);
}
.eb-ct__promise-icon {
  width: 36px; height: 36px; border-radius: 8px;
  background: rgba(16,185,129,.1); border: .5px solid rgba(16,185,129,.2);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.eb-ct__promise-icon svg {
  width: 16px; height: 16px;
  stroke: var(--ct-em); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; fill: none;
}
.eb-ct__promise-body { flex: 1; }
.eb-ct__promise-title {
  font-family: monospace; font-size: .62rem; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; color: #fff;
  display: block; margin-bottom: 2px;
}
.eb-ct__promise-sub { font-size: .74rem; color: rgba(255,255,255,.4); }
.eb-ct__promise-val {
  font-family: monospace; font-size: .78rem; font-weight: 900;
  color: var(--ct-gold); white-space: nowrap;
}

/* ── Trust band ──────────────────────────────────────────────────────────── */
.eb-ct__trust-band {
  max-width: 1100px; margin: 0 auto;
  display: flex; justify-content: center; gap: clamp(14px,3vw,36px);
  padding: 13px clamp(20px,4vw,56px);
  border-top: 1px solid rgba(255,255,255,.07);
  background: rgba(6,78,59,.06);
  position: relative; z-index: 1;
  flex-wrap: wrap;
}
.eb-ct__trust-item {
  display: flex; align-items: center; gap: 6px;
  font-family: monospace; font-size: .58rem; font-weight: 700;
  letter-spacing: .07em; text-transform: uppercase;
  color: rgba(200,225,210,.42);
}
.eb-ct__trust-item svg {
  width: 13px; height: 13px;
  stroke: var(--ct-em); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; fill: none;
}

/* ═══════════════════════════════════════════════════════════════════════════
   05. INTENT SELECTOR (mid dark)
   ═══════════════════════════════════════════════════════════════════════════ */
.eb-ct__section--intent {
  background: var(--ct-mid);
  border-top: 1px solid rgba(255,255,255,.06);
  padding: clamp(18px,3.5vw,32px) clamp(20px,4vw,56px);
}
.eb-ct__intent-inner { max-width: 1100px; margin: 0 auto; }
.eb-ct__intent-label {
  font-family: monospace; font-size: .6rem; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase;
  color: rgba(16,185,129,.65); margin-bottom: 12px;
}

/* Intent card grid */
.eb-ct__intent-grid {
  display: grid; grid-template-columns: repeat(4,1fr);
  gap: 9px; margin-bottom: 10px;
}
.eb-ct__intent-card,
.elementor .eb-ct__intent-card {
  all: unset;
  display: flex; flex-direction: column; align-items: center; text-align: center;
  background: rgba(255,255,255,.04);
  border: .5px solid rgba(255,255,255,.09);
  border-radius: 10px; padding: 15px 12px;
  cursor: pointer; position: relative; overflow: hidden;
  transition: background .18s, border-color .18s;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}
/* Gradient top edge — hidden until active */
.eb-ct__intent-card::before {
  content: ''; position: absolute; top:0; left:0; right:0; height:2px;
  background: var(--ct-grad);
  opacity: 0; transition: opacity .2s;
}
.eb-ct__intent-card:hover,
.elementor .eb-ct__intent-card:hover,
.elementor-widget-html .eb-ct__intent-card:hover {
  background: rgba(16,185,129,.07) !important;
  background-color: rgba(16,185,129,.07) !important;
  border-color: rgba(16,185,129,.2) !important;
  color: inherit !important;
}
.eb-ct__intent-card.is-active,
.elementor .eb-ct__intent-card.is-active {
  background: rgba(16,185,129,.12) !important;
  background-color: rgba(16,185,129,.12) !important;
  border-color: rgba(16,185,129,.38) !important;
  color: inherit !important;
}
.eb-ct__intent-card.is-active::before { opacity: 1; }
.eb-ct__intent-card.is-active--gold,
.elementor .eb-ct__intent-card.is-active--gold {
  background: rgba(245,158,11,.1) !important;
  background-color: rgba(245,158,11,.1) !important;
  border-color: rgba(245,158,11,.35) !important;
  color: inherit !important;
}
.eb-ct__intent-card.is-active--gold::before {
  background: linear-gradient(90deg,#7c2d12,#b45309 35%,#f59e0b 65%,#ca8a04);
}
.eb-ct__intent-card:focus-visible { outline: 2px solid rgba(16,185,129,.6); outline-offset: 2px; }

/* Intent icon */
.eb-ct__intent-icon {
  width: 40px; height: 40px; border-radius: 9px;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 10px; border: .5px solid;
  transition: background .18s, border-color .18s;
  background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.1);
}
.eb-ct__intent-icon svg {
  width: 18px; height: 18px; stroke-width: 1.8;
  stroke-linecap: round; stroke-linejoin: round; fill: none;
  stroke: rgba(255,255,255,.4); transition: stroke .18s;
}
.eb-ct__intent-card.is-active .eb-ct__intent-icon { background: rgba(16,185,129,.16); border-color: rgba(16,185,129,.4); }
.eb-ct__intent-card.is-active .eb-ct__intent-icon svg { stroke: var(--ct-em); }
.eb-ct__intent-card.is-active--gold .eb-ct__intent-icon { background: rgba(245,158,11,.16); border-color: rgba(245,158,11,.4); }
.eb-ct__intent-card.is-active--gold .eb-ct__intent-icon svg { stroke: var(--ct-gold); }

.eb-ct__intent-title {
  font-family: monospace; font-size: .64rem; font-weight: 700;
  letter-spacing: .05em; text-transform: uppercase;
  color: rgba(255,255,255,.5); display: block; margin-bottom: 4px; line-height: 1.3;
}
.eb-ct__intent-card.is-active .eb-ct__intent-title { color: var(--ct-em); }
.eb-ct__intent-card.is-active--gold .eb-ct__intent-title { color: var(--ct-gold); }
.eb-ct__intent-sub { font-size: .7rem; color: rgba(255,255,255,.3); line-height: 1.45; }

/* Intent context bar */
.eb-ct__intent-ctx {
  background: rgba(16,185,129,.07); border: .5px solid rgba(16,185,129,.18);
  border-radius: 8px; padding: 10px 14px;
  display: flex; align-items: flex-start; gap: 9px;
  font-size: .78rem; color: rgba(255,255,255,.62); line-height: 1.65;
  position: relative; overflow: hidden;
}
.eb-ct__intent-ctx::before {
  content: ''; position: absolute; top:0; left:0; bottom:0; width:2px;
  background: var(--ct-grad-v);
}
.eb-ct__intent-ctx svg {
  width: 14px; height: 14px; stroke: var(--ct-em); stroke-width: 2;
  stroke-linecap: round; stroke-linejoin: round; fill: none;
  flex-shrink: 0; margin-top: 1px;
}

/* ═══════════════════════════════════════════════════════════════════════════
   06. MAIN GRID — sidebar + form
   ═══════════════════════════════════════════════════════════════════════════ */
.eb-ct__section--main {
  display: grid; grid-template-columns: 330px 1fr;
  background: #fff;
  border-top: 1px solid rgba(0,0,0,.07);
}

/* ── SIDEBAR ─────────────────────────────────────────────────────────────── */
.eb-ct__sidebar {
  background: var(--ct-light);
  border-right: 1px solid rgba(0,0,0,.07);
  padding: clamp(18px,3vw,32px);
}
.eb-ct__sidebar-label {
  font-family: monospace; font-size: .58rem; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--ct-emd); margin-bottom: 12px;
}

/* Office card */
.eb-ct__office-card {
  background: #fff; border: 1px solid var(--ct-bdr-l);
  border-radius: 10px; padding: 15px; margin-bottom: 9px;
  position: relative; overflow: hidden;
}
.eb-ct__office-card::before {
  content: ''; position: absolute; top:0; left:0; right:0; height:2px;
  background: var(--ct-grad);
}
.eb-ct__office-card:hover { border-color: rgba(16,185,129,.2); }
.eb-ct__office-tag {
  display: inline-flex; align-items: center; gap: 4px;
  font-family: monospace; font-size: .55rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase;
  background: rgba(6,78,59,.1); border: .5px solid rgba(6,78,59,.2);
  color: var(--ct-emd); padding: 3px 8px; border-radius: 999px; margin-bottom: 7px;
}
.eb-ct__office-tag svg { width: 9px; height: 9px; stroke: var(--ct-emd); stroke-width: 1.8; fill: none; }
.eb-ct__office-name {
  font-family: monospace; font-size: .72rem; font-weight: 800;
  color: var(--ct-ink); margin-bottom: 5px;
}
.eb-ct__office-addr {
  font-size: .76rem; color: var(--ct-ink-f); line-height: 1.65; margin-bottom: 8px;
}
.eb-ct__office-link {
  display: flex; align-items: center; gap: 6px; padding: 3px 0;
  font-size: .76rem; color: var(--ct-ink-m); text-decoration: none; transition: color .16s;
}
.eb-ct__office-link svg { width: 12px; height: 12px; stroke: var(--ct-emd); stroke-width: 1.8; fill: none; flex-shrink: 0; }
.eb-ct__office-link:hover { color: var(--ct-emd); }

/* Response card */
.eb-ct__response-card {
  background: rgba(6,78,59,.06); border: 1px solid rgba(6,78,59,.15);
  border-radius: 10px; padding: 13px; margin-bottom: 9px;
  position: relative; overflow: hidden;
}
.eb-ct__response-card::before {
  content: ''; position: absolute; top:0; left:0; right:0; height:2px;
  background: var(--ct-grad);
}
.eb-ct__response-hdr {
  display: flex; align-items: center; gap: 7px;
  font-family: monospace; font-size: .6rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--ct-emd); margin-bottom: 9px;
}
.eb-ct__response-dot {
  width: 7px; height: 7px; border-radius: 50%; background: var(--ct-em);
  animation: eb-ct-pulse 2.2s ease-in-out infinite; flex-shrink: 0;
}
.eb-ct__response-row {
  display: flex; justify-content: space-between; align-items: center;
  font-size: .76rem; padding: 5px 0; border-bottom: .5px solid rgba(6,78,59,.1);
}
.eb-ct__response-row:last-child { border-bottom: none; }
.eb-ct__response-lbl { color: var(--ct-ink-m); }
.eb-ct__response-val { font-family: monospace; font-weight: 700; color: var(--ct-emd); font-size: .72rem; }

/* Team callout */
.eb-ct__team-card {
  background: #fff; border: 1px solid var(--ct-bdr-l);
  border-radius: 10px; padding: 13px;
  display: flex; align-items: center; gap: 10px;
  position: relative; overflow: hidden;
}
.eb-ct__team-card::before {
  content: ''; position: absolute; top:0; left:0; right:0; height:2px;
  background: var(--ct-grad);
}
.eb-ct__avatars { display: flex; }
.eb-ct__avatar {
  width: 30px; height: 30px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: monospace; font-size: .65rem; font-weight: 700;
  color: #fff; border: 2px solid var(--ct-light); margin-right: -7px; flex-shrink: 0;
}
.eb-ct__avatar:nth-child(1) { background: #064e3b; }
.eb-ct__avatar:nth-child(2) { background: #065f46; }
.eb-ct__avatar:nth-child(3) { background: #047857; }
.eb-ct__avatar:nth-child(4) { background: #b45309; }
.eb-ct__team-body { flex: 1; min-width: 0; margin-left: 12px; }
.eb-ct__team-title { font-size: .8rem; font-weight: 700; color: var(--ct-ink); display: block; margin-bottom: 2px; }
.eb-ct__team-sub { font-size: .72rem; color: var(--ct-ink-f); }

/* ── FORM COLUMN ─────────────────────────────────────────────────────────── */
.eb-ct__form-col { padding: clamp(18px,3vw,32px); }
.eb-ct__form-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.eb-ct__form-heading { font-family: monospace; font-size: .9rem; font-weight: 800; color: var(--ct-ink); }
.eb-ct__form-req-note { font-size: .72rem; color: var(--ct-ink-f); }
.eb-ct__form-req-note em { font-style: normal; color: var(--ct-em); }

/* Context bar — vertical gradient left accent */
.eb-ct__form-ctx {
  background: rgba(6,78,59,.05); border: 1px solid rgba(6,78,59,.13);
  border-radius: 8px; padding: 10px 12px; margin-bottom: 14px;
  display: flex; align-items: flex-start; gap: 9px;
  font-size: .78rem; color: var(--ct-ink-m); line-height: 1.65;
  position: relative; overflow: hidden; transition: all .22s;
}
.eb-ct__form-ctx::before {
  content: ''; position: absolute; top:0; left:0; bottom:0; width:2px;
  background: var(--ct-grad-v);
}
.eb-ct__form-ctx-icon {
  width: 24px; height: 24px; border-radius: 5px;
  background: rgba(6,78,59,.1); border: .5px solid rgba(6,78,59,.2);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px;
}
.eb-ct__form-ctx-icon svg { width: 12px; height: 12px; stroke: var(--ct-emd); stroke-width: 2; fill: none; }

/* Hidden field for enquiry type */
.eb-ct__enq-type-input { display: none; }

/* Form grid */
.eb-ct__form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 10px; }
.eb-ct__form-grid--full { grid-template-columns: 1fr; }

/* Field */
.eb-ct__field { display: flex; flex-direction: column; gap: 4px; }
.eb-ct__field-label {
  font-family: monospace; font-size: .58rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase; color: var(--ct-ink-f);
}
.eb-ct__req { color: var(--ct-em); font-size: .72rem; }
.eb-ct__optional { font-size: .62rem; color: #9ca3af; font-family: sans-serif; text-transform: none; letter-spacing: 0; font-weight: 400; }
.eb-ct__field-wrap { position: relative; }

/* Input / select */
.eb-ct__input {
  width: 100%; background: #fff;
  border: 1px solid rgba(0,0,0,.12); border-radius: 7px;
  padding: 9px 11px; font-size: .84rem; color: var(--ct-ink);
  outline: none; transition: border-color .18s; font-family: inherit;
  -webkit-appearance: none; appearance: none;
}
.eb-ct__input::placeholder { color: #d1d5db; }
.eb-ct__input:focus { border-color: var(--ct-em); }
.eb-ct__input.is-invalid { border-color: #ef4444; }
.eb-ct__input.is-filled { border-color: rgba(16,185,129,.35); }

/* Signature amber→emerald underline animation — v1 preserved */
.eb-ct__field-acc {
  position: absolute; bottom: 0; left: 10px; right: 10px; height: 2px;
  border-radius: 1px;
  background: linear-gradient(90deg, #b45309, #f59e0b 40%, #10b981);
  transform: scaleX(0); transform-origin: left;
  transition: transform .28s cubic-bezier(0.22,1,0.36,1); pointer-events: none;
}
.eb-ct__input:focus ~ .eb-ct__field-acc { transform: scaleX(1); }

/* Field error */
.eb-ct__field-error { font-size: .7rem; color: #ef4444; min-height: 1em; }

/* Textarea */
.eb-ct__textarea {
  width: 100%; background: #fff;
  border: 1px solid rgba(0,0,0,.12); border-radius: 7px;
  padding: 9px 11px; font-size: .84rem; color: var(--ct-ink);
  outline: none; resize: none; min-height: 80px; font-family: inherit;
  transition: border-color .18s;
}
.eb-ct__textarea::placeholder { color: #d1d5db; }
.eb-ct__textarea:focus { border-color: var(--ct-em); }

/* Consent */
.eb-ct__consent { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 14px; padding-top: 4px; }
.eb-ct__consent-input { position: absolute; opacity: 0; width: 0; height: 0; }
.eb-ct__consent-box {
  width: 18px; height: 18px; border-radius: 4px; background: #fff;
  border: 1.5px solid rgba(0,0,0,.18); display: flex; align-items: center;
  justify-content: center; flex-shrink: 0; margin-top: 1px;
  transition: background .16s, border-color .16s; cursor: pointer;
}
.eb-ct__consent-input:checked ~ .eb-ct__consent-box { background: var(--ct-emd); border-color: var(--ct-emd); }
.eb-ct__consent-input:focus-visible ~ .eb-ct__consent-box { outline: 2px solid rgba(16,185,129,.5); outline-offset: 2px; }
.eb-ct__consent-check { width: 10px; height: 10px; stroke: #fff; stroke-width: 2.5; fill: none; opacity: 0; transition: opacity .16s; }
.eb-ct__consent-input:checked ~ .eb-ct__consent-box .eb-ct__consent-check { opacity: 1; }
.eb-ct__consent-label { font-size: .75rem; color: var(--ct-ink-f); line-height: 1.6; cursor: pointer; }
.eb-ct__consent-label a { color: var(--ct-emd); text-decoration: none; }
.eb-ct__consent-label a:hover { text-decoration: underline; }
.eb-ct__consent-error { font-size: .7rem; color: #ef4444; min-height: 1em; margin-top: 2px; }

/* Form footer */
.eb-ct__form-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
.eb-ct__submit-btn,
.elementor .eb-ct__submit-btn,
.elementor-widget-html .eb-ct__submit-btn {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 12px 26px; border-radius: 999px;
  font-family: monospace; font-size: .78rem; font-weight: 700;
  letter-spacing: .07em; text-transform: uppercase;
  background: linear-gradient(135deg,#d97706,#f59e0b,#fbbf24,#d97706) !important;
  color: #0a0500 !important;
  cursor: pointer; border: none !important;
  animation: eb-ct-btn-pulse 3.5s ease-in-out infinite;
  transition: filter .18s; min-height: 44px;
  -webkit-appearance: none; appearance: none;
  text-decoration: none !important;
}
.eb-ct__submit-btn:hover,
.elementor .eb-ct__submit-btn:hover { filter: brightness(1.08); color: #0a0500 !important; }
.eb-ct__submit-btn:disabled,
.elementor .eb-ct__submit-btn:disabled { opacity: .65; cursor: wait; animation: none; }

/* Force icon stroke colour — Elementor overrides currentColor on SVG inside buttons */
.eb-ct__submit-btn svg,
.elementor .eb-ct__submit-btn svg {
  width: 15px; height: 15px;
  stroke: #0a0500 !important;
  stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; fill: none;
}
/* Force label text colour */
.eb-ct__submit-btn .eb-ct__submit-label,
.elementor .eb-ct__submit-btn .eb-ct__submit-label {
  color: #0a0500 !important;
}
.eb-ct__form-note { font-size: .74rem; color: var(--ct-ink-f); max-width: 210px; line-height: 1.55; }

/* Success / error messages */
.eb-ct__form-success {
  display: none; background: rgba(6,78,59,.08); border: 1px solid rgba(6,78,59,.25);
  border-radius: 8px; padding: 14px 16px; margin-top: 12px;
  position: relative; overflow: hidden;
}
.eb-ct__form-success::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:var(--ct-grad); }
.eb-ct__form-success.is-shown { display: block; }
.eb-ct__form-success h3 { font-family: monospace; font-size: .8rem; font-weight: 700; color: var(--ct-emd); margin-bottom: 4px; }
.eb-ct__form-success p { font-size: .78rem; color: var(--ct-ink-m); line-height: 1.6; }
.eb-ct__form-error {
  display: none; background: rgba(239,68,68,.06); border: 1px solid rgba(239,68,68,.2);
  border-radius: 8px; padding: 10px 14px; margin-top: 10px;
  font-size: .78rem; color: #dc2626; line-height: 1.5;
}
.eb-ct__form-error.is-shown { display: block; }

/* ═══════════════════════════════════════════════════════════════════════════
   07. REASSURANCE STRIP (light)
   ═══════════════════════════════════════════════════════════════════════════ */
.eb-ct__section--strip {
  background: var(--ct-light);
  border-top: 1px solid rgba(0,0,0,.07);
  padding: clamp(14px,2.5vw,26px) clamp(20px,4vw,56px);
}
.eb-ct__strip-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; max-width: 1100px; margin: 0 auto; }
.eb-ct__strip-item {
  display: flex; align-items: flex-start; gap: 10px;
  background: #fff; border: 1px solid var(--ct-bdr-l);
  border-radius: 10px; padding: 14px;
  position: relative; overflow: hidden;
}
.eb-ct__strip-item::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:var(--ct-grad); }
.eb-ct__strip-icon {
  width: 32px; height: 32px; border-radius: 7px;
  background: rgba(6,78,59,.1); border: .5px solid rgba(6,78,59,.18);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.eb-ct__strip-icon svg { width: 15px; height: 15px; stroke: var(--ct-emd); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; fill: none; }
.eb-ct__strip-title { font-size: .82rem; font-weight: 700; color: var(--ct-ink); margin-bottom: 3px; }
.eb-ct__strip-body { font-size: .74rem; color: var(--ct-ink-f); line-height: 1.55; }
.eb-ct__strip-body a { color: var(--ct-emd); text-decoration: none; }
.eb-ct__strip-body a:hover { text-decoration: underline; }

/* ═══════════════════════════════════════════════════════════════════════════
   08. RESPONSIVE
   ═══════════════════════════════════════════════════════════════════════════ */
@media(max-width:1024px){
  .eb-ct__hero-inner       { grid-template-columns:1fr; }
  .eb-ct__promises         { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px; }
  .eb-ct__section--main    { grid-template-columns:1fr; }
  .eb-ct__sidebar          { border-right:none; border-bottom:1px solid rgba(0,0,0,.07); }
  .eb-ct__intent-grid      { grid-template-columns:1fr 1fr; }
}
@media(max-width:768px){
  .eb-ct__form-grid        { grid-template-columns:1fr; }
  .eb-ct__trust-band       { gap:10px; }
  .eb-ct__strip-grid       { grid-template-columns:1fr; }
  .eb-ct__promises         { grid-template-columns:1fr; }
}
@media(max-width:560px){
  .eb-ct__intent-grid      { grid-template-columns:1fr 1fr; }
}
@media(min-width:1400px){
  .eb-ct__hero-inner,.eb-ct__intent-inner,
  .eb-ct__trust-band,.eb-ct__strip-grid { max-width:1360px; }
}
@media(prefers-reduced-motion:reduce){
  .eb-ct__submit-btn       { animation:none; }
  .eb-ct__response-dot     { animation:none; }
  .eb-ct__field-acc        { transition:none; }
  .eb-ct__intent-card      { transition:none; }
}
@media print{
  .eb-ct__section--hero    { background:#fff!important; color:#111!important; }
  .eb-ct__section--intent  { display:none!important; }
}


/* ==========================================================================
   PATCH — CLASS AUDIT FIX
   ISSUE 04: eb-ct__hero-copy — left column wrapper in .eb-ct__hero-inner grid.
   .eb-ct__hero-inner uses grid-template-columns:1fr 1fr but the left column
   div .eb-ct__hero-copy has no CSS rule defined.
   ========================================================================== */

.eb-ct__hero-copy {
  display:        flex;
  flex-direction: column;
  justify-content: flex-start;
  min-width:      0;
}

@media (max-width: 768px) {
  .eb-ct__hero-copy {
    max-width: 100%;
  }
}

/* END CLASS AUDIT PATCH — eb-contact.css */


/* ==========================================================================
   PATCH — Responsive hardening pass
   ─────────────────────────────────────────────────────────────────────────
   1. Intent grid — 1-col at ≤380px (currently 2-col; too tight at 320px)
   2. Consent label long-text overflow
   3. Form col padding tightening at very narrow
   4. ≤320px minimum viewport
   ========================================================================== */


/* ── ≤380px — intent grid single column ─────────────────────────────────── */

@media (max-width: 380px) {
  .eb-ct__intent-grid {
    grid-template-columns: 1fr;
  }

  /* Stacked cards — left-align text for readability */
  .eb-ct__intent-card {
    flex-direction: row;
    text-align: left;
    align-items: center;
    padding: 12px;
  }

  .eb-ct__intent-icon {
    margin: 0 12px 0 0;
    flex-shrink: 0;
  }

  .eb-ct__intent-title {
    font-size: 0.68rem;
  }

  .eb-ct__intent-sub {
    font-size: 0.66rem;
  }
}


/* ── ≤480px — consent label and privacy text overflow ───────────────────── */

@media (max-width: 480px) {
  /* Consent label — long URLs in privacy text can overflow */
  .eb-ct__consent-label {
    overflow-wrap: break-word;
    word-break: break-word;
    hyphens: auto;
  }

  .eb-ct__consent-label a {
    word-break: break-all;
  }

  /* Form footer — stack submit + note vertically */
  .eb-ct__form-footer {
    flex-direction: column;
    align-items: stretch;
  }

  .eb-ct__submit-btn {
    width: 100%;
    justify-content: center;
  }

  .eb-ct__form-note {
    max-width: 100%;
    font-size: 0.7rem;
  }

  /* Hero CTA buttons */
  .eb-ct__hero-ctas {
    flex-direction: column;
    gap: 8px;
  }
}


/* ── ≤390px ──────────────────────────────────────────────────────────────── */

@media (max-width: 390px) {
  .eb-ct__h1 {
    font-size: clamp(1.4rem, 7vw, 1.8rem);
  }

  .eb-ct__hero-lead {
    font-size: 0.82rem;
  }

  /* Trust band — single-column at very narrow */
  .eb-ct__trust-band {
    flex-direction: column;
    gap: 6px;
    align-items: flex-start;
    padding: 12px 16px;
  }

  /* Sidebar cards — ensure they don't overflow */
  .eb-ct__office-addr {
    overflow-wrap: break-word;
    word-break: break-word;
  }

  .eb-ct__office-link {
    overflow-wrap: break-word;
    word-break: break-all;
  }

  /* Intent context bar */
  .eb-ct__intent-ctx {
    font-size: 0.72rem;
  }
}


/* ── ≤320px ──────────────────────────────────────────────────────────────── */

@media (max-width: 320px) {

  .eb-ct__section--hero {
    padding: 36px 14px 0;
  }

  .eb-ct__h1 {
    font-size: 1.3rem;
  }

  .eb-ct__form-col {
    padding: 14px;
  }

  .eb-ct__sidebar {
    padding: 14px;
  }

  .eb-ct__strip-grid {
    grid-template-columns: 1fr;
  }

  .eb-ct__input,
  .eb-ct__textarea {
    font-size: 0.8rem;
  }

  /* Consent checkbox touch target */
  .eb-ct__consent-box {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
  }
}

/* END PATCH — eb-contact.css */
