/* ===== Contact hub family (Contact.png, Contact the Agency.png, Submit Inquiry.png,
   Book Consultation.png, Office Locations.png) - page-specific overrides on top of
   the shared ronin-shell design system. ===== */

/* ---------- hero ---------- */
.contact-hero{ background:#fff; padding-block:34px 40px; position:relative; overflow:hidden; }
.contact-hero__grid{ display:grid; grid-template-columns:1.3fr 1fr; gap:36px; align-items:center; }
.contact-hero__eyebrow{ display:flex; align-items:center; gap:8px; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--green); margin-bottom:16px; }
.contact-hero__eyebrow-icon{ width:16px; height:16px; color:var(--green); flex:0 0 auto; }
.contact-hero__eyebrow-icon svg{ width:100%; height:100%; }
.contact-hero__title{ color:var(--ink); font-size:34px; font-weight:800; line-height:1.2; letter-spacing:-.01em; margin-bottom:16px; }
.contact-hero__desc{ color:var(--ink-soft); font-size:14px; line-height:1.6; margin-bottom:22px; }
.contact-hero__actions{ display:flex; gap:12px; flex-wrap:wrap; margin-bottom:16px; }
.ronin-contact .btn--outline-navy{ background:#fff; color:var(--ink); border:1.5px solid var(--gray-200); transition:background .18s ease,border-color .18s ease; }
.ronin-contact .btn--outline-navy:hover,.ronin-contact .btn--outline-navy:focus-visible{ background:var(--bg-tint); border-color:var(--navy-950); }
.contact-hero__agency-link{ font-size:13px; color:var(--ink-soft); }
.ronin-page .contact-hero__agency-link a{ color:var(--blue-ring); font-weight:600; }
.ronin-page .contact-hero__agency-link a:hover{ text-decoration:underline; }

.contact-hero__map-col{ display:flex; align-items:center; justify-content:center; }
.contact-hero-map{ position:relative; width:100%; aspect-ratio:4/3; }
.contact-hero-map__svg{ width:100%; height:100%; display:block; }
.contact-hero-map__route{ fill:none; stroke:var(--blue-ring); stroke-width:1.6; stroke-dasharray:3 3; animation:contact-hero-map-dash 1.6s linear infinite; }
@keyframes contact-hero-map-dash{ to{ stroke-dashoffset:-12; } }
.contact-hero-map__region{ position:absolute; background:#fff; border:1px solid var(--gray-200); border-radius:20px; padding:4px 12px; font-size:10px; font-weight:600; letter-spacing:.02em; color:var(--blue-ring); box-shadow:var(--shadow-card); }
.contact-hero-map__region--europe{ top:6%; left:14%; }
.contact-hero-map__region--africa{ bottom:8%; left:44%; }
.contact-hero-map__region--cis{ top:44%; right:2%; }

.contact-hero-map__pin{ position:absolute; transform:translate(-50%,-100%); display:flex; flex-direction:column; align-items:center; gap:4px; }
.contact-hero-map__pin-flag{ width:34px; height:34px; border-radius:50%; overflow:hidden; border:2.5px solid #fff; box-shadow:0 2px 8px rgba(10,20,40,.22); }
.contact-hero-map__pin-flag svg{ width:100%; height:100%; }
.contact-hero-map__pin-label{ background:#fff; border:1px solid var(--gray-200); border-radius:10px; padding:5px 10px; font-size:9px; font-weight:700; letter-spacing:.02em; line-height:1.4; color:var(--ink); text-align:center; white-space:nowrap; box-shadow:var(--shadow-card); }

@media (max-width:900px){
  .contact-hero__grid{ grid-template-columns:1fr; }
  .contact-hero__title{ max-width:none; }
  .contact-hero-map{ margin-top:24px; }
}

/* ---------- trust bar ---------- */
.contact-trustbar{ padding-block:0 40px; }
.contact-trustbar__card{ background:var(--navy-900); border-radius:14px; padding:22px 32px; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.contact-trustbar__item{ display:flex; align-items:center; gap:12px; padding-inline:20px; position:relative; flex:1 1 0; min-width:0; }
.contact-trustbar__item:first-child{ padding-inline-start:0; }
.contact-trustbar__item:last-child{ padding-inline-end:0; }
.contact-trustbar__item + .contact-trustbar__item::before{ content:""; position:absolute; left:0; top:50%; transform:translateY(-50%); width:1px; height:34px; background:rgba(255,255,255,.14); }
.contact-trustbar__icon{ width:22px; height:22px; flex:0 0 auto; color:#fff; }
.contact-trustbar__icon svg{ width:100%; height:100%; }
.contact-trustbar__icon.is-accent{ color:var(--green); }
.contact-trustbar__text{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.contact-trustbar__text strong{ font-size:13px; font-weight:700; color:#fff; white-space:nowrap; }
.contact-trustbar__text span{ font-size:11.5px; color:#9fb0c7; white-space:nowrap; }

@media (max-width:900px){
  .contact-trustbar__card{ flex-wrap:wrap; row-gap:18px; }
  .contact-trustbar__item{ flex:1 1 45%; padding-inline-start:0; }
  .contact-trustbar__item::before{ display:none; }
}

/* ---------- official ways to reach OTSI (tabs) ---------- */
.contact-offices{ background:#fff; padding-block:0 44px; }
.contact-offices__heading{ font-size:22px; font-weight:800; color:var(--ink); margin-bottom:18px; }

.contact-offices__card{ background:#fff; border:1px solid var(--gray-200); border-radius:16px; padding:22px; box-shadow:var(--shadow-card); display:grid; grid-template-columns:200px 1fr; gap:24px; margin-bottom:20px; }

.contact-offices__tabs{ display:flex; flex-direction:column; gap:8px; }
.contact-offices__tab{ display:flex; align-items:center; gap:10px; text-align:left; border:1px solid var(--gray-200); background:#fff; padding:12px 14px; border-radius:10px; font-size:13px; font-weight:600; color:var(--ink-soft); cursor:pointer; position:relative; transition:background .15s ease,color .15s ease,border-color .15s ease; }
.contact-offices__tab-icon{ width:18px; height:18px; flex:0 0 auto; }
.contact-offices__tab-icon svg{ width:100%; height:100%; }
.contact-offices__tab.is-active{ background:var(--blue); border-color:var(--blue); color:#fff; }
.contact-offices__tab:not(.is-active):hover{ background:var(--blue-tint); }
.contact-offices__tab.is-active::after{ content:""; position:absolute; right:-7px; top:50%; transform:translateY(-50%); width:0; height:0; border-top:7px solid transparent; border-bottom:7px solid transparent; border-left:7px solid var(--blue); }

.contact-offices__spotlight{ display:grid; grid-template-columns:1.3fr 1fr; gap:24px; grid-column:2; }
.contact-offices__spotlight.is-full{ grid-template-columns:1fr; }
.contact-offices__spotlight[hidden]{ display:none; }
.contact-offices__info-head{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.contact-offices__info-head h3{ font-size:18px; font-weight:800; color:var(--ink); }
.contact-offices__badge{ display:inline-flex; align-items:center; gap:5px; background:var(--green-tint); color:var(--green); font-size:11px; font-weight:700; padding:4px 10px; border-radius:20px; }
.contact-offices__badge svg{ width:12px; height:12px; }

.contact-offices__fields{ display:grid; gap:12px; margin-bottom:16px; }
.contact-offices__fields li{ display:flex; align-items:flex-start; gap:10px; font-size:13px; color:var(--ink-soft); line-height:1.5; }
.ronin-page .contact-offices__fields a{ color:var(--ink-soft); }
.ronin-page .contact-offices__fields a:hover{ color:var(--blue-ring); }
.contact-offices__field-icon{ width:16px; height:16px; flex:0 0 auto; color:var(--ink-soft); margin-top:1px; }
.contact-offices__field-icon svg{ width:100%; height:100%; }
.contact-offices__field-tag{ margin-left:auto; font-size:10px; font-weight:600; padding:3px 8px; border-radius:12px; background:var(--gray-100); color:var(--gray-500); white-space:nowrap; }
.contact-offices__field-tag.is-primary{ background:var(--green-tint); color:var(--green); }

.contact-offices__notice{ display:flex; align-items:center; gap:8px; background:rgba(232,147,74,.12); color:#b06a1e; font-size:12px; font-weight:600; padding:9px 12px; border-radius:8px; margin-bottom:16px; }
.contact-offices__notice-icon{ width:14px; height:14px; flex:0 0 auto; color:var(--orange); }
.contact-offices__notice-icon svg{ width:100%; height:100%; }

.contact-offices__actions{ display:flex; gap:10px; flex-wrap:wrap; }
.contact-offices__actions .btn svg{ width:14px; height:14px; }

.contact-offices__map{ border-radius:12px; overflow:hidden; border:1px solid var(--gray-200); min-height:220px; }
.contact-offices__map iframe{ width:100%; height:100%; min-height:220px; border:0; display:block; }

.contact-offices__refs{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.contact-offices__ref-card{ background:#fff; border:1px solid var(--gray-200); border-radius:14px; padding:20px 22px; }
.contact-offices__ref-card h4{ display:flex; align-items:center; gap:8px; font-size:15px; font-weight:800; color:var(--ink); margin-bottom:4px; }
.contact-offices__ref-icon{ width:18px; height:18px; color:var(--blue-ring); flex:0 0 auto; }
.contact-offices__ref-icon svg{ width:100%; height:100%; }
.contact-offices__ref-sub{ font-size:12px; color:var(--ink-soft); margin-bottom:14px; }
.contact-offices__ref-list{ display:grid; gap:10px; margin:14px 0; }
.contact-offices__ref-list li{ display:flex; align-items:center; gap:10px; font-size:12.5px; color:var(--ink-soft); }
.ronin-page .contact-offices__ref-list a{ color:var(--ink-soft); }
.ronin-page .contact-offices__ref-list a:hover{ color:var(--blue-ring); }

@media (max-width:900px){
  .contact-offices__card{ grid-template-columns:1fr; }
  .contact-offices__tabs{ flex-direction:row; flex-wrap:wrap; }
  .contact-offices__tab.is-active::after{ display:none; }
  .contact-offices__spotlight{ grid-template-columns:1fr; }
  .contact-offices__refs{ grid-template-columns:1fr; }
}

/* ---------- choose the right channel (purpose table) ---------- */
.contact-purpose{ background:#fff; padding-block:0 44px; }
.contact-purpose__heading{ font-size:22px; font-weight:800; color:var(--ink); margin-bottom:18px; }
.contact-purpose__table-wrap{ background:#fff; border:1px solid var(--gray-200); border-radius:14px; overflow-x:auto; margin-bottom:16px; }
.contact-purpose__table{ width:100%; border-collapse:collapse; font-size:13px; white-space:nowrap; }
.contact-purpose__table th{ text-align:left; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--gray-500); padding:12px 18px; border-bottom:1px solid var(--gray-200); background:var(--bg-tint); }
.contact-purpose__table td{ padding:14px 18px; border-bottom:1px solid var(--gray-200); color:var(--ink-soft); vertical-align:middle; }
.contact-purpose__table tbody tr:last-child td{ border-bottom:0; }
.ronin-page a.contact-purpose__channel{ display:inline-flex; align-items:center; gap:8px; color:var(--ink); font-weight:600; }
.ronin-page .contact-purpose__channel:hover{ color:var(--blue-ring); }
.contact-purpose__channel-icon{ width:15px; height:15px; flex:0 0 auto; color:var(--ink-soft); }
.contact-purpose__channel-icon svg{ width:100%; height:100%; }
.contact-purpose__protected{ display:inline-flex; align-items:center; gap:6px; font-weight:600; }
.contact-purpose__protected svg{ width:15px; height:15px; }
.contact-purpose__protected.is-no{ color:var(--green); }
.contact-purpose__protected.is-yes{ color:#d64545; }
.ronin-page a.contact-purpose__next-link{ display:inline-flex; align-items:center; gap:6px; color:var(--blue-ring); font-weight:600; }
.contact-purpose__next-link svg{ width:13px; height:13px; }
.ronin-page .contact-purpose__next-link:hover{ text-decoration:underline; }

.contact-purpose__notice{ display:flex; align-items:center; gap:8px; background:rgba(232,147,74,.12); color:#b06a1e; font-size:12.5px; font-weight:600; padding:11px 16px; border-radius:8px; }
.contact-purpose__notice-icon{ width:15px; height:15px; flex:0 0 auto; color:var(--orange); }
.contact-purpose__notice-icon svg{ width:100%; height:100%; }

/* ---------- request a conversation (consultation form) ---------- */
.contact-conversation{ background:#fff; padding-block:0 44px; }
.contact-conversation__heading{ font-size:22px; font-weight:800; color:var(--ink); margin-bottom:18px; }
.contact-conversation__grid{ display:grid; grid-template-columns:1.7fr 1fr; gap:24px; align-items:start; }

.contact-conversation__form-card{ background:#fff; border:1px solid var(--gray-200); border-radius:16px; padding:26px; box-shadow:var(--shadow-card); }
.contact-conversation__step-title{ display:flex; align-items:center; gap:10px; font-size:15px; font-weight:800; color:var(--ink); margin:22px 0 16px; }
.contact-conversation__step-title:first-of-type{ margin-top:0; }
.contact-conversation__step-num{ display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; border-radius:50%; background:var(--blue); color:#fff; font-size:12px; font-weight:700; flex:0 0 auto; }

.contact-conversation__types{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:8px; }
.contact-conversation__type{ display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center; padding:16px 10px; border:1.5px solid var(--gray-200); border-radius:12px; background:#fff; color:var(--ink-soft); font-size:12.5px; font-weight:600; cursor:pointer; transition:border-color .15s ease,background .15s ease,color .15s ease; }
.contact-conversation__type-icon{ width:22px; height:22px; color:var(--ink-soft); }
.contact-conversation__type-icon svg{ width:100%; height:100%; }
.contact-conversation__type.is-active{ border-color:var(--blue); background:var(--blue-tint); color:var(--blue); }
.contact-conversation__type.is-active .contact-conversation__type-icon{ color:var(--blue); }
.contact-conversation__type:not(.is-active):hover{ border-color:var(--gray-500); }

.contact-conversation__row{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:14px; }
.contact-conversation__field{ display:flex; flex-direction:column; gap:6px; min-width:0; }
.contact-conversation__field--wide{ grid-column:span 2; }
.contact-conversation__field label{ font-size:12px; font-weight:700; color:var(--ink); }
.contact-conversation__field .is-required{ color:#d64545; }
.contact-conversation__field input,.contact-conversation__field select{ width:100%; padding:9px 12px; border:1px solid var(--gray-200); border-radius:8px; font-size:13px; color:var(--ink); background:#fff; font-family:inherit; }
.contact-conversation__field input:focus,.contact-conversation__field select:focus{ outline:2px solid var(--blue-tint); border-color:var(--blue); }
.contact-conversation__field input::placeholder{ color:var(--gray-500); }

.contact-conversation__consent{ display:flex; align-items:flex-start; gap:10px; font-size:12.5px; color:var(--ink-soft); line-height:1.5; margin:6px 0 18px; cursor:pointer; }
.contact-conversation__consent input{ margin-top:2px; flex:0 0 auto; }
.ronin-page .contact-conversation__consent a{ color:var(--blue-ring); font-weight:600; }
.ronin-page .contact-conversation__consent a:hover{ text-decoration:underline; }

.contact-conversation__hint{ font-size:11.5px; color:var(--gray-500); margin-top:10px; }
.contact-conversation__errors{ background:rgba(214,69,69,.08); border:1px solid rgba(214,69,69,.25); border-radius:8px; padding:12px 16px; margin-bottom:16px; }
.contact-conversation__errors ul{ margin:0; padding-left:18px; list-style:disc; }
.contact-conversation__errors li{ color:#c23a3a; font-size:12.5px; }
.contact-conversation__success{ background:var(--green-tint); color:var(--green); border-radius:10px; padding:20px; font-size:14px; font-weight:600; text-align:center; }

.contact-conversation__summary{ background:#fff; border:1px solid var(--gray-200); border-radius:16px; padding:24px; box-shadow:var(--shadow-card); position:sticky; top:20px; }
.contact-conversation__summary h3{ font-size:15px; font-weight:800; color:var(--ink); margin-bottom:18px; }
.contact-conversation__summary-item{ padding-block:12px; border-top:1px solid var(--gray-200); }
.contact-conversation__summary-item:first-of-type{ border-top:0; padding-top:0; }
.contact-conversation__summary-item span{ display:block; font-size:11px; color:var(--gray-500); margin-bottom:4px; }
.contact-conversation__summary-item strong{ font-size:13.5px; font-weight:700; color:var(--ink); }
.contact-conversation__summary-status{ display:flex; align-items:center; gap:7px; }
.contact-conversation__status-dot{ width:8px; height:8px; border-radius:50%; background:var(--blue); flex:0 0 auto; }

@media (max-width:900px){
  .contact-conversation__grid{ grid-template-columns:1fr; }
  .contact-conversation__types{ grid-template-columns:1fr 1fr; }
  .contact-conversation__row{ grid-template-columns:1fr 1fr; }
  .contact-conversation__field--wide{ grid-column:span 2; }
  .contact-conversation__summary{ position:static; }
}
@media (max-width:560px){
  .contact-conversation__row{ grid-template-columns:1fr; }
  .contact-conversation__field--wide{ grid-column:span 1; }
}

/* ---------- plan an office visit ---------- */
.contact-visitplan{ background:#fff; padding-block:0 44px; }
.contact-visitplan__heading{ font-size:22px; font-weight:800; color:var(--ink); margin-bottom:18px; }
.contact-visitplan__grid{ display:grid; grid-template-columns:1fr .8fr 1fr; gap:20px; align-items:start; }
.contact-visitplan__card{ border-radius:14px; padding:22px; border:1.5px solid var(--gray-200); background:#fff; }
.contact-visitplan__card.is-green{ border-color:rgba(31,157,100,.3); }
.contact-visitplan__card.is-blue{ border-color:rgba(63,126,232,.3); }
.contact-visitplan__card.is-center{ border-color:var(--gray-200); background:var(--bg-tint); text-align:center; display:flex; flex-direction:column; align-items:center; }
.contact-visitplan__card.is-center h3{ font-size:16px; font-weight:800; color:var(--ink); margin-bottom:8px; }
.contact-visitplan__card.is-center p{ font-size:12.5px; color:var(--ink-soft); line-height:1.5; }

.contact-visitplan__card-head{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.contact-visitplan__card-icon{ width:22px; height:22px; flex:0 0 auto; }
.contact-visitplan__card-icon svg{ width:100%; height:100%; }
.contact-visitplan__card.is-green .contact-visitplan__card-icon{ color:var(--green); }
.contact-visitplan__card.is-blue .contact-visitplan__card-icon{ color:var(--blue-ring); }
.contact-visitplan__card-head strong{ font-size:15px; font-weight:800; color:var(--ink); }
.contact-visitplan__card-head strong.is-link{ color:var(--blue-ring); }
.contact-visitplan__badge{ display:inline-flex; align-items:center; gap:5px; background:var(--green-tint); color:var(--green); font-size:10.5px; font-weight:700; padding:3px 9px; border-radius:20px; }
.contact-visitplan__badge svg{ width:11px; height:11px; }

.contact-visitplan__city{ font-size:13.5px; font-weight:700; color:var(--ink); margin-bottom:4px; }
.contact-visitplan__addr{ font-size:12.5px; color:var(--ink-soft); line-height:1.5; margin-bottom:10px; }
.contact-visitplan__phone,.contact-visitplan__note{ display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--ink-soft); margin-bottom:8px; }
.ronin-page .contact-visitplan__phone a{ color:var(--ink-soft); }
.ronin-page .contact-visitplan__phone a:hover{ color:var(--blue-ring); }
.contact-visitplan__note.is-green{ color:var(--green); font-weight:600; }
.contact-visitplan__field-icon{ width:14px; height:14px; flex:0 0 auto; }
.contact-visitplan__field-icon svg{ width:100%; height:100%; }

.contact-visitplan__notice{ display:flex; align-items:flex-start; gap:8px; background:rgba(232,147,74,.12); color:#b06a1e; font-size:11.5px; font-weight:600; line-height:1.4; padding:10px 12px; border-radius:8px; margin:8px 0 14px; }
.contact-visitplan__notice-icon{ width:14px; height:14px; flex:0 0 auto; margin-top:1px; color:var(--orange); }
.contact-visitplan__notice-icon svg{ width:100%; height:100%; }

.contact-visitplan__card h4{ font-size:12.5px; font-weight:800; color:var(--ink); margin:14px 0 10px; }
.contact-visitplan__checklist{ display:grid; gap:9px; }
.contact-visitplan__checklist li{ display:flex; align-items:flex-start; gap:8px; font-size:12px; color:var(--ink-soft); line-height:1.4; }
.contact-visitplan__checklist svg{ width:14px; height:14px; flex:0 0 auto; color:var(--green); margin-top:1px; }

.contact-visitplan__shield-row{ display:flex; align-items:center; gap:16px; margin:18px 0; }
.contact-visitplan__shield{ width:64px; height:64px; color:var(--green); flex:0 0 auto; }
.contact-visitplan__shield svg{ width:100%; height:100%; }
.contact-visitplan__arrow{ color:var(--green); font-size:20px; }

@media (max-width:900px){
  .contact-visitplan__grid{ grid-template-columns:1fr; }
  .contact-visitplan__card.is-center{ order:3; }
}

/* ---------- send a general enquiry ---------- */
.contact-enquiry{ background:#fff; padding-block:0 44px; }
.contact-enquiry__heading{ font-size:22px; font-weight:800; color:var(--ink); margin-bottom:18px; }
.contact-enquiry__grid{ display:grid; grid-template-columns:1.7fr 1fr; gap:24px; align-items:start; }

.contact-enquiry__form-card{ background:#fff; border:1px solid var(--gray-200); border-radius:16px; padding:26px; box-shadow:var(--shadow-card); }
.contact-enquiry__row{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:14px; }
.contact-enquiry__field{ display:flex; flex-direction:column; gap:6px; min-width:0; }
.contact-enquiry__field--full{ margin-bottom:14px; }
.contact-enquiry__field--wide{ grid-column:span 2; }
.contact-enquiry__field label{ font-size:12px; font-weight:700; color:var(--ink); }
.contact-enquiry__field .is-required{ color:#d64545; }
.contact-enquiry__field input,.contact-enquiry__field select,.contact-enquiry__field textarea{ width:100%; padding:9px 12px; border:1px solid var(--gray-200); border-radius:8px; font-size:13px; color:var(--ink); background:#fff; font-family:inherit; }
.contact-enquiry__field textarea{ resize:vertical; min-height:90px; }
.contact-enquiry__field input:focus,.contact-enquiry__field select:focus,.contact-enquiry__field textarea:focus{ outline:2px solid var(--blue-tint); border-color:var(--blue); }
.contact-enquiry__field input::placeholder,.contact-enquiry__field textarea::placeholder{ color:var(--gray-500); }
.contact-enquiry__field input[type="file"]{ padding:7px 10px; }
.contact-enquiry__field small{ font-size:11px; color:var(--gray-500); }

.contact-enquiry__consent{ display:flex; align-items:flex-start; gap:10px; font-size:12.5px; color:var(--ink-soft); line-height:1.5; margin:6px 0 18px; cursor:pointer; }
.contact-enquiry__consent input{ margin-top:2px; flex:0 0 auto; }
.ronin-page .contact-enquiry__consent a{ color:var(--blue-ring); font-weight:600; }
.ronin-page .contact-enquiry__consent a:hover{ text-decoration:underline; }

.contact-enquiry__errors{ background:rgba(214,69,69,.08); border:1px solid rgba(214,69,69,.25); border-radius:8px; padding:12px 16px; margin-bottom:16px; }
.contact-enquiry__errors ul{ margin:0; padding-left:18px; list-style:disc; }
.contact-enquiry__errors li{ color:#c23a3a; font-size:12.5px; }
.contact-enquiry__success{ background:var(--green-tint); color:var(--green); border-radius:10px; padding:20px; font-size:14px; font-weight:600; text-align:center; }

.contact-enquiry__routes{ background:#fff; border:1px solid var(--gray-200); border-radius:16px; padding:24px; box-shadow:var(--shadow-card); }
.contact-enquiry__routes h3{ font-size:15px; font-weight:800; color:var(--ink); margin-bottom:16px; }
.contact-enquiry__route-item{ display:grid; grid-template-columns:20px 1fr; gap:10px; padding-block:14px; border-top:1px solid var(--gray-200); }
.contact-enquiry__route-item:first-of-type{ border-top:0; padding-top:0; }
.contact-enquiry__route-icon{ width:20px; height:20px; color:var(--blue-ring); }
.contact-enquiry__route-icon svg{ width:100%; height:100%; }
.contact-enquiry__route-label{ grid-column:2; font-size:12.5px; color:var(--ink-soft); line-height:1.4; }
.ronin-page a.contact-enquiry__route-link{ grid-column:2; display:inline-flex; align-items:center; gap:5px; font-size:12.5px; font-weight:700; color:var(--blue-ring); margin-top:4px; }
.contact-enquiry__route-link svg{ width:12px; height:12px; }
.contact-enquiry__route-link:hover{ text-decoration:underline; }

@media (max-width:900px){
  .contact-enquiry__grid{ grid-template-columns:1fr; }
  .contact-enquiry__row{ grid-template-columns:1fr 1fr; }
  .contact-enquiry__field--wide{ grid-column:span 2; }
}
@media (max-width:560px){
  .contact-enquiry__row{ grid-template-columns:1fr; }
  .contact-enquiry__field--wide{ grid-column:span 1; }
}

/* ---------- verify the channel ---------- */
.contact-verify{ background:#fff; padding-block:0 44px; }
.contact-verify__panel{ background:var(--navy-900); border-radius:16px; padding:30px; display:grid; grid-template-columns:1.7fr 1fr; gap:28px; margin-bottom:16px; }
.contact-verify__main h2{ font-size:19px; font-weight:800; color:#fff; margin-bottom:20px; }

.contact-verify__steps{ display:flex; align-items:flex-start; gap:14px; margin-bottom:24px; }
.contact-verify__step{ display:flex; align-items:flex-start; gap:10px; flex:1; min-width:0; }
.contact-verify__step-icon{ width:26px; height:26px; color:#fff; flex:0 0 auto; }
.contact-verify__step-icon svg{ width:100%; height:100%; }
.contact-verify__step strong{ display:flex; align-items:center; gap:6px; font-size:13px; font-weight:700; color:#fff; margin-bottom:4px; }
.contact-verify__dot{ width:14px; height:14px; color:var(--green); flex:0 0 auto; }
.contact-verify__dot svg{ width:100%; height:100%; }
.contact-verify__step p{ font-size:11.5px; color:#aebbcf; line-height:1.5; }
.contact-verify__step p b{ color:#fff; }
.contact-verify__connector{ width:20px; height:20px; color:#5a6b85; flex:0 0 auto; margin-top:6px; }
.contact-verify__connector svg{ width:100%; height:100%; }

.contact-verify__boundaries{ border-top:1px solid rgba(255,255,255,.14); padding-top:18px; }
.contact-verify__boundaries h4{ font-size:12px; font-weight:800; color:#fff; margin-bottom:12px; }
.contact-verify__boundaries-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.contact-verify__boundary{ display:flex; align-items:flex-start; gap:8px; font-size:11.5px; color:#aebbcf; line-height:1.4; }
.contact-verify__boundary-icon{ width:16px; height:16px; color:#e2725a; flex:0 0 auto; margin-top:1px; }
.contact-verify__boundary-icon svg{ width:100%; height:100%; }

.contact-verify__tool{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:12px; padding:22px; }
.contact-verify__tool h3{ font-size:14px; font-weight:800; color:#fff; margin-bottom:8px; }
.contact-verify__tool p{ font-size:11.5px; color:#aebbcf; line-height:1.5; margin-bottom:14px; }
.contact-verify__tool input{ width:100%; padding:10px 12px; border:1px solid rgba(255,255,255,.2); border-radius:8px; font-size:12.5px; background:#fff; color:var(--ink); margin-bottom:12px; font-family:inherit; }
.contact-verify__tool .btn{ width:100%; justify-content:center; }
.contact-verify__result{ margin-top:14px; padding:10px 12px; border-radius:8px; font-size:12px; font-weight:600; line-height:1.5; }
.contact-verify__result.is-match{ background:rgba(31,157,100,.18); color:#5fd68f; }
.contact-verify__result.is-nomatch{ background:rgba(214,69,69,.18); color:#f19b9b; }
.contact-verify__result.is-warn{ background:rgba(232,147,74,.18); color:#f0b878; }

.contact-verify__footer-links{ display:flex; flex-wrap:wrap; gap:24px; padding:18px 30px; background:var(--navy-900); border-radius:16px; }
.ronin-page .contact-verify__footer-links a{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:600; color:#7cabf5; }
.ronin-page .contact-verify__footer-links a svg{ width:12px; height:12px; }
.ronin-page .contact-verify__footer-links a:hover{ text-decoration:underline; }

@media (max-width:900px){
  .contact-verify__panel{ grid-template-columns:1fr; }
  .contact-verify__steps{ flex-direction:column; }
  .contact-verify__connector{ display:none; }
  .contact-verify__boundaries-grid{ grid-template-columns:1fr 1fr; }
}

/* ---------- public communications FAQ ---------- */
.contact-faq{ background:#fff; padding-block:0 44px; }
.contact-faq__heading{ font-size:22px; font-weight:800; color:var(--ink); margin-bottom:18px; }
.contact-faq__list{ border:1px solid var(--gray-200); border-radius:14px; overflow:hidden; }
.contact-faq__item{ border-bottom:1px solid var(--gray-200); }
.contact-faq__item:last-child{ border-bottom:0; }
.contact-faq__question{ display:flex; align-items:center; justify-content:space-between; gap:14px; padding:16px 20px; font-size:13.5px; font-weight:700; color:var(--ink); cursor:pointer; list-style:none; }
.contact-faq__question::-webkit-details-marker{ display:none; }
.contact-faq__chevron{ width:16px; height:16px; flex:0 0 auto; color:var(--gray-500); transition:transform .18s ease; }
.contact-faq__chevron svg{ width:100%; height:100%; }
.contact-faq__item[open] .contact-faq__chevron{ transform:rotate(180deg); color:var(--blue-ring); }
.contact-faq__answer{ padding:0 20px 18px; font-size:13px; color:var(--ink-soft); line-height:1.6; }

/* ---------- closing CTA ---------- */
.contact-closing{ background:#fff; padding-block:0 60px; }
.contact-closing__grid{ background:linear-gradient(150deg,var(--navy-950),#0a2a4d); border-radius:18px; padding:40px 44px; display:grid; grid-template-columns:1.3fr 1fr; gap:32px; align-items:center; overflow:hidden; }
.contact-closing__text h2{ font-size:24px; font-weight:800; color:#fff; line-height:1.35; margin-bottom:14px; }
.contact-closing__text p{ font-size:13.5px; color:#c7d2e0; line-height:1.6; max-width:44ch; margin-bottom:22px; }
.contact-closing__actions{ display:flex; gap:12px; flex-wrap:wrap; }
.contact-closing__graphic{ width:100%; height:auto; max-height:180px; }

@media (max-width:900px){
  .contact-closing__grid{ grid-template-columns:1fr; padding:32px 26px; }
  .contact-closing__graphic{ display:none; }
}
