
/* ═══════════ TRIGGER BUTTONS ═══════════ */
.cw-proper .cwp-contact-buttons {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 28px;
}
.cw-proper .cwp-contact-buttons .fl-button { padding: 10px 20px !important; }
@media (max-width: 480px) {
  .cw-proper .cwp-contact-buttons { flex-direction: column; align-items: stretch; gap: 16px; }
}

.cw-proper .cwp-contact-buttons .fl-button.cwp-contact-btn-talk {
  background: var(--cwp-accent) !important;
  border: 1px solid var(--cwp-accent) !important;
  color: #ffffff !important;
  transition: all 0.4s ease !important;
}
.cw-proper .cwp-contact-buttons .fl-button.cwp-contact-btn-talk .fl-button__label { color: #ffffff !important; }
.cw-proper .cwp-contact-buttons .fl-button.cwp-contact-btn-talk:hover {
  background: #0a0a0a !important;
  border-color: var(--cwp-accent) !important;
  color: #ffffff !important;
}
.cw-proper .cwp-contact-buttons .fl-button.cwp-contact-btn-talk:hover .fl-button__label { color: #ffffff !important; }

.cw-proper .cwp-contact-buttons .fl-button.cwp-contact-btn-dark,
.cw-proper .cwp-contact-buttons .fl-button.cwp-contact-btn-outline {
  background: #0a0a0a !important;
  border: 1px solid var(--cwp-accent) !important;
  color: #ffffff !important;
  transition: all 0.4s ease !important;
}
.cw-proper .cwp-contact-buttons .fl-button.cwp-contact-btn-dark .fl-button__label,
.cw-proper .cwp-contact-buttons .fl-button.cwp-contact-btn-outline .fl-button__label { color: #ffffff !important; }
.cw-proper .cwp-contact-buttons .fl-button.cwp-contact-btn-dark:hover,
.cw-proper .cwp-contact-buttons .fl-button.cwp-contact-btn-outline:hover {
  background: var(--cwp-accent) !important;
  border-color: var(--cwp-accent) !important;
  color: #ffffff !important;
}
.cw-proper .cwp-contact-buttons .fl-button.cwp-contact-btn-dark:hover .fl-button__label,
.cw-proper .cwp-contact-buttons .fl-button.cwp-contact-btn-outline:hover .fl-button__label { color: #ffffff !important; }

.cw-proper .cwp-contact-buttons .fl-button.cwp-contact-btn-fill {
  background: var(--cwp-accent) !important;
  border: 1px solid var(--cwp-accent) !important;
  color: #ffffff !important;
  transition: all 0.4s ease !important;
}
.cw-proper .cwp-contact-buttons .fl-button.cwp-contact-btn-fill .fl-button__label { color: #ffffff !important; }
.cw-proper .cwp-contact-buttons .fl-button.cwp-contact-btn-fill:hover {
  background: #0a0a0a !important;
  border-color: var(--cwp-accent) !important;
}
.cw-proper .cwp-contact-buttons .fl-button.cwp-contact-btn-fill:hover .fl-button__label { color: #ffffff !important; }

.cw-proper .cwp-contact-buttons .fl-button.cwp-contact-btn-outline-light {
  background: transparent !important;
  border: 1px solid var(--cwp-accent) !important;
  color: #0a0a0a !important;
  transition: all 0.4s ease !important;
}
.cw-proper .cwp-contact-buttons .fl-button.cwp-contact-btn-outline-light .fl-button__label { color: #0a0a0a !important; }
.cw-proper .cwp-contact-buttons .fl-button.cwp-contact-btn-outline-light:hover {
  background: var(--cwp-accent) !important;
  border-color: var(--cwp-accent) !important;
}
.cw-proper .cwp-contact-buttons .fl-button.cwp-contact-btn-outline-light:hover .fl-button__label { color: #ffffff !important; }

/* ═══════════ SCROLL LOCK ═══════════
   The one deliberately unscoped rule in this file. It has to sit on body,
   and overflow:hidden alone does not hold a page still on iOS Safari. */
body.cwp-modal-open {
  position: fixed;
  left: 0; right: 0;
  width: 100%;
  overflow: hidden;
}

/* ═══════════ WPAUTOP NEUTRALISER — added in v4.0.1 ═══════════
   CF7 runs wpautop over the Form tab. wpautop treats the inline content
   sitting directly inside a div as its own paragraph and wraps it in a
   <p>, whatever the line breaks around it. That is what broke the progress
   row: all five nodes and four connector lines ended up inside one <p>, so
   they were no longer flex children of .cwp-rmr-progress, and because
   .cwp-rmr-node is display:flex (block level) they stacked vertically.
   The same injection added stray paragraph margins to every chip, card and
   field.

   display:contents removes the injected paragraph's own box from the
   layout while keeping its children, so the nodes become flex items again
   and the stray margins disappear.

   Scoped to unclassed paragraphs only. Every intentional paragraph in both
   forms carries a class (cwp-rmr-q, cwp-rmr-subq, cwp-rmr-agreement,
   cwp-ptt-agreement), so none of them are touched. */
.cw-proper .cwp-contact-modal .cwp-rmr p:not([class]),
.cw-proper .cwp-contact-modal .cwp-ptt p:not([class]) { display: contents; }

/* ═══════════ MODAL SYSTEM ═══════════ */
.cw-proper .cwp-contact-overlay {
  position: fixed; inset: 0;
  background: rgba(10,10,10,0.75);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 100000;
  opacity: 0; pointer-events: none;
  transition: opacity 0.45s var(--cwp-ease);
}
.cw-proper .cwp-contact-overlay.cwp-open { opacity: 1; pointer-events: auto; }

/* The scale/lift animation lives on .cwp-contact-modal-body, not here. A
   transform on this element would create a containing block for the
   position:fixed close button and make it scroll away with the content. */
.cw-proper .cwp-contact-modal {
  position: fixed; inset: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  background:
    radial-gradient(ellipse 900px 440px at 50% -8%, rgba(68,200,245,0.07), transparent 70%),
    #ffffff;
  z-index: 100001;
  opacity: 0; pointer-events: none;
  transition: opacity 0.45s var(--cwp-ease);
}
.cw-proper .cwp-contact-modal.cwp-open { opacity: 1; pointer-events: auto; }

.cw-proper .cwp-contact-modal::before {
  content: '';
  position: fixed; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(68,200,245,0.55), transparent);
  z-index: 100002;
  pointer-events: none;
}

.cw-proper .cwp-contact-modal::-webkit-scrollbar { width: 5px; }
.cw-proper .cwp-contact-modal::-webkit-scrollbar-track { background: transparent; }
.cw-proper .cwp-contact-modal::-webkit-scrollbar-thumb { background: #d6d8da; border-radius: 0; }
.cw-proper .cwp-contact-modal::-webkit-scrollbar-thumb:hover { background: rgba(68,200,245,0.6); }

.cw-proper .cwp-contact-modal-close {
  position: fixed;
  top: 22px; right: 22px;
  width: 44px; height: 44px;
  background: rgba(255,255,255,0.88);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid #d6d8da;
  border-radius: 0;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  z-index: 100003;
  box-shadow: 0 2px 12px rgba(10,10,10,0.07);
  transition: border-color 0.3s ease, background 0.3s ease, transform 0.15s ease;
}
.cw-proper .cwp-contact-modal-close svg {
  width: 15px; height: 15px;
  stroke: #0a0a0a;
  transition: stroke 0.3s ease, transform 0.35s var(--cwp-ease);
}
.cw-proper .cwp-contact-modal-close:hover { border-color: #44c8f5; background: #ffffff; }
.cw-proper .cwp-contact-modal-close:hover svg { stroke: #44c8f5; transform: rotate(90deg); }
.cw-proper .cwp-contact-modal-close:active { transform: scale(0.94); }
.cw-proper .cwp-contact-modal-close:focus-visible { outline: 1px solid #44c8f5; outline-offset: 3px; }

.cw-proper .cwp-contact-modal-body {
  padding: 84px 30px 80px;
  max-width: 760px;
  margin: 0 auto;
  width: 100%;
  transform: translateY(12px) scale(1.005);
  opacity: 0;
  transition: transform 0.5s var(--cwp-ease), opacity 0.45s var(--cwp-ease) 0.06s;
}
.cw-proper .cwp-contact-modal.cwp-open .cwp-contact-modal-body {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.cw-proper .cwp-contact-switch-wrap {
  display: flex;
  justify-content: center;
  margin-bottom: 44px;
}
.cw-proper .cwp-contact-modal .cwp-more-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: rgba(68,200,245,0.05);
  border: 1px solid rgba(68,200,245,0.35);
  border-radius: 0;
  padding: 11px 20px;
  font-family: 'Raleway', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #5a6872 !important;
  cursor: pointer;
  box-shadow: none;
  transition: color 0.3s ease, border-color 0.3s ease, background 0.3s ease;
}
.cw-proper .cwp-contact-modal .cwp-more-link:hover {
  color: #0a0a0a !important;
  border-color: #44c8f5;
  background: rgba(68,200,245,0.12);
}
.cw-proper .cwp-contact-modal .cwp-more-link:focus-visible { outline: 1px solid #44c8f5; outline-offset: 3px; }
.cw-proper .cwp-contact-modal .cwp-more-link-arrow {
  color: #44c8f5;
  transition: transform 0.35s var(--cwp-ease);
}
.cw-proper .cwp-contact-modal .cwp-more-link:hover .cwp-more-link-arrow { transform: translateX(4px); }

/* CF7 leaves pointer-events:none on the submit button after a validation
   error, which makes it swallow clicks while never being disabled. Force
   it back, then re-apply only while CF7 genuinely has .submitting. */
.cw-proper .cwp-contact-modal input[type="submit"] { pointer-events: auto !important; }
.cw-proper .cwp-contact-modal form.submitting input[type="submit"] { pointer-events: none !important; }

.cw-proper .cwp-contact-modal .wpcf7-response-output {
  font-family: 'Raleway', sans-serif !important;
  font-size: 14px !important;
  padding: 14px 18px !important;
  margin: 24px 0 0 0 !important;
  border-radius: 0 !important;
  border-width: 1px !important;
  color: #0a0a0a !important;
  background: rgba(68,200,245,0.05) !important;
}
.cw-proper .cwp-contact-modal .wpcf7-not-valid-tip {
  font-family: 'Raleway', sans-serif !important;
  font-size: 13px !important;
  color: #e74c3c !important;
  margin-top: 8px !important;
}
.cw-proper .cwp-contact-modal .cwp-meta-fields { display: none; }

@media (max-width: 768px) {
  .cw-proper .cwp-contact-modal-body { padding: 78px 20px 64px; }
}
@media (max-width: 480px) {
  .cw-proper .cwp-contact-modal-close { top: 12px; right: 12px; }
  .cw-proper .cwp-contact-modal-body { padding: 68px 16px 56px; }
  .cw-proper .cwp-contact-switch-wrap { margin-bottom: 30px; }
  .cw-proper .cwp-contact-modal .cwp-ptt .wpcf7-submit { display: block; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .cw-proper .cwp-contact-modal-body,
  .cw-proper .cwp-contact-modal-close svg,
  .cw-proper .cwp-contact-modal .cwp-more-link-arrow { transition: none !important; }
}

/* ═══════════ REVIEW MY RISK — form styling ═══════════
   Scoped under .cwp-contact-modal so nothing here can leak. */
.cw-proper .cwp-contact-modal .cwp-rmr {
  --f-ink: var(--cwp-black, #0a0a0a);
  --f-muted: var(--cwp-slate, #5a6872);
  --f-placeholder: #7b98a3;
  --f-fill: rgba(68,200,245,.05);
  --f-fill-hover: rgba(68,200,245,.12);
  --f-line: rgba(68,200,245,.35);
  --f-rule: #e2e4e6;
  --f-accent: var(--cwp-accent, #44c8f5);
  --f-ease: var(--cwp-ease, cubic-bezier(.22,1,.36,1));
  font-family: 'Raleway', sans-serif;
  color: var(--f-ink);
  background: transparent;
  max-width: 600px;
  margin: 0 auto;
}
.cw-proper .cwp-contact-modal .cwp-rmr * { box-sizing: border-box; }

.cw-proper .cwp-contact-modal .cwp-rmr-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-weight: 400;
  text-align: center;
  font-size: clamp(30px, 5vw, 40px);
  line-height: 1.15;
  margin: 0 0 44px;
  color: var(--f-ink);
}

/* ── PROGRESSIVE ENHANCEMENT
   Without the wizard script the form is one plain scrolling CF7 form with
   native radios and a live submit button. The script adds .is-wizard and
   the stepped interface takes over. */
.cw-proper .cwp-contact-modal .cwp-rmr-progress { display: none; }
.cw-proper .cwp-contact-modal .cwp-rmr.is-wizard .cwp-rmr-progress {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 380px;
  margin: 0 auto 52px;
}
.cw-proper .cwp-contact-modal .cwp-rmr-cards,
.cw-proper .cwp-contact-modal .cwp-rmr-chips { display: none; }
.cw-proper .cwp-contact-modal .cwp-rmr.is-wizard .cwp-rmr-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.cw-proper .cwp-contact-modal .cwp-rmr.is-wizard .cwp-rmr-chips { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.cw-proper .cwp-contact-modal .cwp-rmr-step { display: block; padding-bottom: 36px; }
.cw-proper .cwp-contact-modal .cwp-rmr.is-wizard .cwp-rmr-step {
  display: none; opacity: 0; transform: translateY(16px); padding-bottom: 0;
  transition: opacity .45s var(--f-ease), transform .45s var(--f-ease);
}
.cw-proper .cwp-contact-modal .cwp-rmr.is-wizard .cwp-rmr-step.is-active { display: block; }
.cw-proper .cwp-contact-modal .cwp-rmr.is-wizard .cwp-rmr-step.is-visible { opacity: 1; transform: translateY(0); }
.cw-proper .cwp-contact-modal .cwp-rmr.is-wizard [hidden] { display: none !important; }
.cw-proper .cwp-contact-modal .cwp-rmr.is-wizard .cwp-rmr-native-radio {
  position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none;
}
.cw-proper .cwp-contact-modal .cwp-rmr-native-radio .wpcf7-list-item { display: block; margin: 0 0 8px; }
.cw-proper .cwp-contact-modal .cwp-rmr-mailonly { line-height: 0; font-size: 0; }

.cw-proper .cwp-contact-modal .cwp-rmr-node {
  flex-shrink: 0;
  width: 32px; height: 32px;
  border-radius: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700; letter-spacing: .04em;
  border: 1px solid var(--f-rule);
  color: var(--f-muted);
  background: #ffffff;
  cursor: default;
  transition: background .4s var(--f-ease), border-color .4s var(--f-ease), color .4s var(--f-ease), box-shadow .4s var(--f-ease);
}
.cw-proper .cwp-contact-modal .cwp-rmr-node.is-reachable { cursor: pointer; }
.cw-proper .cwp-contact-modal .cwp-rmr-node.is-reachable:hover { border-color: var(--f-accent); color: var(--f-ink); }
.cw-proper .cwp-contact-modal .cwp-rmr-node.is-active { border-color: var(--f-accent); color: var(--f-ink); box-shadow: 0 0 0 4px rgba(68,200,245,.12); }
.cw-proper .cwp-contact-modal .cwp-rmr-node.is-done { background: var(--f-accent); border-color: var(--f-accent); color: #ffffff; box-shadow: 0 2px 10px rgba(68,200,245,.30); }
.cw-proper .cwp-contact-modal .cwp-rmr-node:focus-visible { outline: 1px solid var(--f-accent); outline-offset: 3px; }
.cw-proper .cwp-contact-modal .cwp-rmr-line { flex: 1; height: 1px; background: var(--f-rule); margin: 0 7px; position: relative; overflow: hidden; }
.cw-proper .cwp-contact-modal .cwp-rmr-line i { position: absolute; inset: 0; background: var(--f-accent); transform: scaleX(0); transform-origin: left; transition: transform .55s var(--f-ease); display: block; }

.cw-proper .cwp-contact-modal .cwp-rmr-stage { position: relative; }
.cw-proper .cwp-contact-modal .cwp-rmr-q {
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-weight: 400;
  text-align: center;
  font-size: clamp(23px, 3.6vw, 28px);
  line-height: 1.3;
  margin: 0 0 32px;
  color: var(--f-ink);
  outline: none;
}
.cw-proper .cwp-contact-modal .cwp-rmr-subq {
  text-align: center; font-size: 12px; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--f-muted); margin: 36px 0 16px;
}

/* ── CARDS */
.cw-proper .cwp-contact-modal .cwp-rmr-card {
  position: relative;
  background: var(--f-fill);
  border: 1px solid var(--f-line);
  border-radius: 0;
  padding: 18px 20px;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(10,10,10,.04);
  transition: background .25s var(--f-ease), border-color .25s var(--f-ease), box-shadow .25s var(--f-ease), transform .15s var(--f-ease);
}
.cw-proper .cwp-contact-modal .cwp-rmr-card:hover { background: var(--f-fill-hover); border-color: var(--f-accent); box-shadow: 0 8px 22px rgba(10,10,10,.07); }
.cw-proper .cwp-contact-modal .cwp-rmr-card:active { transform: scale(.985); }
.cw-proper .cwp-contact-modal .cwp-rmr-card:focus-visible { outline: 1px solid var(--f-accent); outline-offset: 3px; }
.cw-proper .cwp-contact-modal .cwp-rmr-card-title { display: block; font-size: 15px; font-weight: 600; margin: 0 0 5px; padding-right: 26px; color: var(--f-ink); }
.cw-proper .cwp-contact-modal .cwp-rmr-card-desc { display: block; font-size: 13px; color: var(--f-muted); line-height: 1.5; }
.cw-proper .cwp-contact-modal .cwp-rmr-check {
  position: absolute; top: 15px; right: 15px; width: 19px; height: 19px; border-radius: 50%;
  background: var(--f-accent); color: #ffffff; font-size: 10px; line-height: 19px; text-align: center; font-weight: 700;
  opacity: 0; transform: scale(.6);
  transition: opacity .22s var(--f-ease), transform .22s var(--f-ease);
}
.cw-proper .cwp-contact-modal .cwp-rmr-card.is-selected {
  border-color: var(--f-accent);
  background: #ffffff;
  box-shadow: 0 0 0 1px var(--f-accent), 0 10px 26px rgba(68,200,245,.14);
}
.cw-proper .cwp-contact-modal .cwp-rmr-card.is-selected .cwp-rmr-check { opacity: 1; transform: scale(1); }

/* ── CHIPS */
.cw-proper .cwp-contact-modal .cwp-rmr-chip {
  background: var(--f-fill);
  border: 1px solid var(--f-line);
  border-radius: 0;
  padding: 14px 17px;
  font-size: 14px; font-weight: 500;
  text-align: left;
  line-height: 1.4;
  cursor: pointer;
  color: var(--f-ink);
  box-shadow: 0 1px 3px rgba(10,10,10,.04);
  transition: background .25s var(--f-ease), border-color .25s var(--f-ease), color .25s var(--f-ease), box-shadow .25s var(--f-ease), transform .15s var(--f-ease);
}
.cw-proper .cwp-contact-modal .cwp-rmr-chip:hover { background: var(--f-fill-hover); border-color: var(--f-accent); box-shadow: 0 6px 16px rgba(10,10,10,.06); }
.cw-proper .cwp-contact-modal .cwp-rmr-chip:active { transform: scale(.985); }
.cw-proper .cwp-contact-modal .cwp-rmr-chip:focus-visible { outline: 1px solid var(--f-accent); outline-offset: 3px; }
.cw-proper .cwp-contact-modal .cwp-rmr-chip.is-selected { background: var(--f-accent); border-color: var(--f-accent); color: #ffffff; font-weight: 600; box-shadow: 0 5px 16px rgba(68,200,245,.30); }

/* ── CONDITIONAL REVEAL */
.cw-proper .cwp-contact-modal .cwp-rmr-conditional { opacity: 0; transform: translateY(10px); transition: opacity .35s var(--f-ease), transform .35s var(--f-ease); }
.cw-proper .cwp-contact-modal .cwp-rmr-conditional.is-shown { opacity: 1; transform: translateY(0); }

/* ── TEXT FIELDS. Desktop can run smaller than mobile: on screens under
   480px, iOS Safari zooms the whole page in on focus if the field's
   font-size is under 16px, so that size is restored in the mobile media
   query below. Desktop has no such constraint. */
.cw-proper .cwp-contact-modal .cwp-rmr-field { margin-bottom: 16px; }
.cw-proper .cwp-contact-modal .cwp-rmr-field label { display: block; font-size: 11px; color: var(--f-muted); font-weight: 700; letter-spacing: .16em; text-transform: uppercase; margin: 0 0 9px; }
.cw-proper .cwp-contact-modal .cwp-rmr input[type=text],
.cw-proper .cwp-contact-modal .cwp-rmr input[type=tel],
.cw-proper .cwp-contact-modal .cwp-rmr input[type=email],
.cw-proper .cwp-contact-modal .cwp-rmr textarea {
  width: 100%; font-size: 14px; font-family: inherit; color: var(--f-ink);
  background: var(--f-fill);
  border: 1px solid var(--f-line); border-radius: 0; padding: 16px 17px;
  outline: none; appearance: none;
  box-shadow: 0 1px 3px rgba(10,10,10,.04);
  transition: box-shadow .2s var(--f-ease), background .2s var(--f-ease), border-color .2s var(--f-ease);
}
.cw-proper .cwp-contact-modal .cwp-rmr textarea { min-height: 120px; resize: vertical; }
.cw-proper .cwp-contact-modal .cwp-rmr input::placeholder,
.cw-proper .cwp-contact-modal .cwp-rmr textarea::placeholder { color: var(--f-placeholder); font-weight: 400; font-size: 13px; }
.cw-proper .cwp-contact-modal .cwp-rmr input:focus,
.cw-proper .cwp-contact-modal .cwp-rmr textarea:focus {
  background: #ffffff;
  border-color: var(--f-accent);
  box-shadow: 0 0 0 1px var(--f-accent), 0 8px 22px rgba(68,200,245,.12);
}

/* ── STEP NAVIGATION (built by the wizard script) */
.cw-proper .cwp-contact-modal .cwp-rmr-nav { display: flex; align-items: center; gap: 12px; margin-top: 34px; }
.cw-proper .cwp-contact-modal .cwp-rmr-btn {
  font-family: inherit; font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase;
  padding: 15px 30px; border-radius: 0; cursor: pointer;
  background: var(--f-accent); color: #ffffff; border: 1px solid var(--f-accent);
  box-shadow: 0 6px 20px rgba(68,200,245,.22);
  transition: all .4s ease;
}
.cw-proper .cwp-contact-modal .cwp-rmr-btn:hover { background: #0a0a0a; border-color: #0a0a0a; color: #ffffff; }
.cw-proper .cwp-contact-modal .cwp-rmr-btn:active { transform: scale(.97); }
.cw-proper .cwp-contact-modal .cwp-rmr-btn:focus-visible { outline: 1px solid var(--f-accent); outline-offset: 3px; }
.cw-proper .cwp-contact-modal .cwp-rmr-btn--next { margin-left: auto; }
.cw-proper .cwp-contact-modal .cwp-rmr-btn--back {
  background: transparent; color: var(--f-muted); border-color: var(--f-rule); box-shadow: none;
}
.cw-proper .cwp-contact-modal .cwp-rmr-btn--back:hover { background: transparent; color: var(--f-ink); border-color: var(--f-accent); }
.cw-proper .cwp-contact-modal .cwp-rmr-note { font-size: 13px; color: #e74c3c; margin: 12px 0 0; }
.cw-proper .cwp-contact-modal .cwp-rmr-note:empty { display: none; }

.cw-proper .cwp-contact-modal .cwp-rmr-agreement { font-size: 13px; color: var(--f-muted); line-height: 1.6; margin: 30px 0 26px; }
.cw-proper .cwp-contact-modal .cwp-rmr-agreement a { color: var(--f-accent); text-decoration: none; }
.cw-proper .cwp-contact-modal .cwp-rmr-agreement a:hover { text-decoration: underline; }

.cw-proper .cwp-contact-modal .cwp-rmr .wpcf7-submit {
  display: inline-block; border-radius: 0;
  font-family: inherit; font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase;
  cursor: pointer; padding: 10px 20px;
  background: var(--f-accent); color: #ffffff;
  border: 1px solid var(--f-accent);
  box-shadow: 0 6px 20px rgba(68,200,245,.22);
  transition: all .4s ease;
}
.cw-proper .cwp-contact-modal .cwp-rmr .wpcf7-submit:hover { background: #0a0a0a; border-color: var(--f-accent); color: #ffffff; box-shadow: 0 8px 24px rgba(10,10,10,.16); }
.cw-proper .cwp-contact-modal .cwp-rmr .wpcf7-submit:active { transform: scale(.97); }

@media (max-width: 560px) {
  .cw-proper .cwp-contact-modal .cwp-rmr.is-wizard .cwp-rmr-cards { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .cw-proper .cwp-contact-modal .cwp-rmr-title { margin-bottom: 30px; }
  .cw-proper .cwp-contact-modal .cwp-rmr.is-wizard .cwp-rmr-progress { margin-bottom: 38px; }
  .cw-proper .cwp-contact-modal .cwp-rmr-node { width: 28px; height: 28px; font-size: 11px; }
  .cw-proper .cwp-contact-modal .cwp-rmr-line { margin: 0 5px; }
  .cw-proper .cwp-contact-modal .cwp-rmr.is-wizard .cwp-rmr-chips { grid-template-columns: 1fr; }
  .cw-proper .cwp-contact-modal .cwp-rmr-nav { flex-direction: column-reverse; align-items: stretch; }
  .cw-proper .cwp-contact-modal .cwp-rmr-btn { width: 100%; margin-left: 0; }
  .cw-proper .cwp-contact-modal .cwp-rmr .wpcf7-submit { display: block; width: 100%; }
  /* iOS Safari zoom guard — see the comment above the base field rule. */
  .cw-proper .cwp-contact-modal .cwp-rmr input[type=text],
  .cw-proper .cwp-contact-modal .cwp-rmr input[type=tel],
  .cw-proper .cwp-contact-modal .cwp-rmr input[type=email],
  .cw-proper .cwp-contact-modal .cwp-rmr textarea { font-size: 16px; }
  .cw-proper .cwp-contact-modal .cwp-rmr input::placeholder,
  .cw-proper .cwp-contact-modal .cwp-rmr textarea::placeholder { font-size: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .cw-proper .cwp-contact-modal .cwp-rmr-line i,
  .cw-proper .cwp-contact-modal .cwp-rmr-step,
  .cw-proper .cwp-contact-modal .cwp-rmr-conditional,
  .cw-proper .cwp-contact-modal .cwp-rmr-node,
  .cw-proper .cwp-contact-modal .cwp-rmr-card,
  .cw-proper .cwp-contact-modal .cwp-rmr-chip { transition: none !important; }
}

/* ═══════════ PREFER TO TALK — form styling ═══════════ */
.cw-proper .cwp-contact-modal .cwp-ptt {
  --f-ink: var(--cwp-black, #0a0a0a);
  --f-muted: var(--cwp-slate, #5a6872);
  --f-placeholder: #7b98a3;
  --f-fill: rgba(68,200,245,.05);
  --f-accent: var(--cwp-accent, #44c8f5);
  --f-ease: var(--cwp-ease, cubic-bezier(.22,1,.36,1));
  font-family: 'Raleway', sans-serif;
  color: var(--f-ink);
  background: transparent;
  max-width: 440px;
  margin: 0 auto;
}
.cw-proper .cwp-contact-modal .cwp-ptt * { box-sizing: border-box; }

.cw-proper .cwp-contact-modal .cwp-ptt-title {
  font-family: 'Playfair Display', Georgia, serif;
  font-style: italic;
  font-weight: 400;
  text-align: center;
  font-size: clamp(30px, 5vw, 40px);
  line-height: 1.15;
  margin: 0 0 44px;
}

.cw-proper .cwp-contact-modal .cwp-ptt-field { margin-bottom: 16px; }
.cw-proper .cwp-contact-modal .cwp-ptt-field label { display: block; font-size: 11px; color: var(--f-muted); font-weight: 700; letter-spacing: .16em; text-transform: uppercase; margin: 0 0 9px; }
.cw-proper .cwp-contact-modal .cwp-ptt input[type=text],
.cw-proper .cwp-contact-modal .cwp-ptt input[type=tel] {
  width: 100%; font-size: 14px; font-family: inherit; color: var(--f-ink);
  background: var(--f-fill);
  border: 1px solid rgba(68,200,245,.35); border-radius: 0; padding: 16px 17px;
  outline: none; appearance: none;
  box-shadow: 0 1px 3px rgba(10,10,10,.04);
  transition: box-shadow .2s var(--f-ease), background .2s var(--f-ease), border-color .2s var(--f-ease);
}
.cw-proper .cwp-contact-modal .cwp-ptt input::placeholder { color: var(--f-placeholder); font-weight: 400; font-size: 13px; }
.cw-proper .cwp-contact-modal .cwp-ptt input:focus {
  background: #ffffff;
  border-color: var(--f-accent);
  box-shadow: 0 0 0 1px var(--f-accent), 0 8px 22px rgba(68,200,245,.12);
}

.cw-proper .cwp-contact-modal .cwp-ptt-agreement { font-size: 13px; color: var(--f-muted); line-height: 1.6; margin: 30px 0 26px; }
.cw-proper .cwp-contact-modal .cwp-ptt-agreement a { color: var(--f-accent); text-decoration: none; }
.cw-proper .cwp-contact-modal .cwp-ptt-agreement a:hover { text-decoration: underline; }

.cw-proper .cwp-contact-modal .cwp-ptt .wpcf7-submit {
  display: inline-block; width: auto;
  background: var(--f-accent); color: #ffffff; border: 1px solid var(--f-accent); border-radius: 0;
  font-family: inherit; font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; cursor: pointer;
  padding: 10px 20px;
  box-shadow: 0 6px 20px rgba(68,200,245,.22);
  transition: all .4s ease;
}
.cw-proper .cwp-contact-modal .cwp-ptt .wpcf7-submit:hover { background: #0a0a0a; border-color: var(--f-accent); color: #ffffff; box-shadow: 0 8px 24px rgba(10,10,10,.16); }

/* iOS Safari zoom guard for Prefer To Talk's fields — see the comment
   above .cwp-rmr's base field rule. Placed after the base 14px rule so it
   wins the cascade at this breakpoint regardless of source order
   elsewhere in the file. */
@media (max-width: 480px) {
  .cw-proper .cwp-contact-modal .cwp-ptt input[type=text],
  .cw-proper .cwp-contact-modal .cwp-ptt input[type=tel] { font-size: 16px; }
  .cw-proper .cwp-contact-modal .cwp-ptt input::placeholder { font-size: 16px; }
}
