/* ==========================================
   SWSM 2026 - Contact Form 7
   Dark-theme form styling matched to the site's
   existing tokens. Loaded by swsm-motion.php.
   ========================================== */

.swsm-cf7{ display:flex; flex-direction:column; gap:18px; }
.swsm-cf7 p{ margin:0; }
.swsm-cf7__row{ display:flex; flex-wrap:wrap; gap:18px; }
.swsm-cf7__row > .swsm-cf7__field{ flex:1 1 240px; min-width:0; }

.swsm-cf7__field{ display:flex; flex-direction:column; gap:7px; }
.swsm-cf7__field label{
  font-family:"Barlow", system-ui, sans-serif;
  font-size:13px; font-weight:600;
  letter-spacing:1.4px; text-transform:uppercase;
  color:#9DB4C2;
  transition:color 220ms var(--swsm-ease, ease);
}
.swsm-cf7__req{ color:#5FC4F0; margin-left:2px; }
.swsm-cf7__field:focus-within label{ color:#5FC4F0; }

.swsm-cf7 input[type="text"],
.swsm-cf7 input[type="email"],
.swsm-cf7 input[type="tel"],
.swsm-cf7 input[type="url"],
.swsm-cf7 select,
.swsm-cf7 textarea{
  width:100%; box-sizing:border-box;
  font-family:"Barlow", system-ui, sans-serif;
  font-size:16px;            /* 16px keeps iOS from zooming on focus */
  line-height:1.5;
  color:#F1F6F9;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.18);
  border-radius:2px;
  padding:13px 14px;
  -webkit-appearance:none;
  appearance:none;
  transition:border-color 240ms var(--swsm-ease, ease),
             background-color 240ms var(--swsm-ease, ease),
             box-shadow 240ms var(--swsm-ease, ease);
}
.swsm-cf7 textarea{ resize:vertical; min-height:150px; }

/* appearance:none strips the native arrow - draw one back on */
.swsm-cf7 select{
  padding-right:42px;
  cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239DB4C2' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  background-size:16px 16px;
}
.swsm-cf7 select:focus{
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235FC4F0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
}
/* the dropdown list itself is painted by the OS - keep it readable */
.swsm-cf7 select option{ color:#0f1f2b; background:#ffffff; }
.swsm-cf7 ::placeholder{ color:rgba(157,180,194,0.7); }

.swsm-cf7 input:hover,
.swsm-cf7 textarea:hover,
.swsm-cf7 select:hover{ border-color:rgba(255,255,255,0.34); }

.swsm-cf7 input:focus,
.swsm-cf7 textarea:focus,
.swsm-cf7 select:focus{
  outline:none;
  border-color:#2FAAE1;
  background:rgba(47,170,225,0.06);
  box-shadow:0 0 0 3px rgba(47,170,225,0.22);
}

/* autofill: Chrome forces a white inset background otherwise */
.swsm-cf7 input:-webkit-autofill,
.swsm-cf7 input:-webkit-autofill:hover,
.swsm-cf7 input:-webkit-autofill:focus{
  -webkit-text-fill-color:#F1F6F9;
  -webkit-box-shadow:0 0 0 1000px #0F2B3F inset;
  caret-color:#F1F6F9;
}

/* ---------- submit ---------- */
.swsm-cf7__actions{ margin-top:4px !important; position:relative; }
.swsm-cf7 input[type="submit"]{
  font-family:"Barlow", system-ui, sans-serif;
  font-size:16px; font-weight:700;
  letter-spacing:.2px;
  color:#04202F;
  background:#2FAAE1;
  border:0; border-radius:2px;
  padding:16px 30px;
  cursor:pointer;
  -webkit-appearance:none; appearance:none;
  transition:transform 320ms var(--swsm-ease, ease),
             background-color 320ms var(--swsm-ease, ease),
             box-shadow 320ms var(--swsm-ease, ease);
}
@media (hover:hover) and (pointer:fine){
  .swsm-cf7 input[type="submit"]:hover{
    background:#5FC4F0;
    transform:translateY(-2px);
    box-shadow:0 12px 26px -14px rgba(47,170,225,.85);
  }
}
.swsm-cf7 input[type="submit"]:active{ transform:translateY(0); box-shadow:none; }
.swsm-cf7 input[type="submit"]:focus-visible{ outline:2px solid #5FC4F0; outline-offset:3px; }
.swsm-cf7 input[type="submit"]:disabled{ opacity:.55; cursor:default; transform:none; box-shadow:none; }

/* CF7's sending spinner */
.wpcf7-spinner{ background-color:#5FC4F0; margin:0 0 0 14px; vertical-align:middle; }

/* ---------- validation ---------- */
.swsm-cf7 .wpcf7-not-valid{
  border-color:#E5736A !important;
  background:rgba(229,115,106,0.08) !important;
}
.swsm-cf7 .wpcf7-not-valid-tip{
  display:block;
  margin-top:6px;
  font-family:"Barlow", system-ui, sans-serif;
  font-size:13px; font-weight:500;
  letter-spacing:.2px; text-transform:none;
  color:#F0A9A2;
}

/* ---------- response banner ---------- */
.wpcf7 form .wpcf7-response-output{
  margin:22px 0 0;
  padding:15px 18px;
  border:1px solid rgba(255,255,255,0.18);
  border-left-width:3px;
  border-radius:2px;
  font-family:"Barlow", system-ui, sans-serif;
  font-size:15px; line-height:1.55;
  color:#F1F6F9;
  background:rgba(255,255,255,0.04);
}
.wpcf7 form.sent .wpcf7-response-output{
  border-color:rgba(47,170,225,0.55);
  border-left-color:#2FAAE1;
  background:rgba(47,170,225,0.12);
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output{
  border-color:rgba(240,169,162,0.55);
  border-left-color:#E5736A;
  background:rgba(229,115,106,0.12);
}
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output{
  border-color:rgba(240,169,162,0.55);
  border-left-color:#E5736A;
  background:rgba(229,115,106,0.12);
}

/* ---------- responsive ---------- */
@media (max-width:767px){
  .swsm-cf7{ gap:16px; }
  .swsm-cf7__row{ gap:16px; }
  .swsm-cf7__row > .swsm-cf7__field{ flex:1 1 100%; }
  .swsm-cf7 input[type="submit"]{ width:100%; padding:16px 24px; }
  .swsm-cf7 textarea{ min-height:132px; }
}

@media (prefers-reduced-motion: reduce){
  .swsm-cf7 input,
  .swsm-cf7 textarea,
  .swsm-cf7 select,
  .swsm-cf7 input[type="submit"]{ transition:none; }
}

/* ---------- 17. Registration fee selector (CF7 registration form) ---------- */
.swsm-cf7__fees{margin:0 0 22px;padding:20px 22px 18px;border:1px solid rgba(255,255,255,0.14);border-radius:14px;background:rgba(255,255,255,0.03)}
.swsm-cf7__fees-legend{padding:0 8px;margin-left:-8px;font-family:"Zilla Slab",Georgia,serif;font-size:18px;font-weight:700;color:#F1F6F9}
.swsm-cf7__fees-hint{margin:6px 0 16px;font-size:13px;line-height:1.6;color:#9DB4C2}
.swsm-cf7__fees-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px}
.swsm-cf7__fees-group{min-width:0}
.swsm-cf7__fees-group--wide{grid-column:1/-1}
.swsm-cf7__fees-label{display:block;margin-bottom:8px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#9DB4C2;font-weight:600}
.swsm-cf7__fees .wpcf7-radio{display:flex;flex-wrap:wrap;gap:8px}
.swsm-cf7__fees .wpcf7-list-item{margin:0}
.swsm-cf7__fees .wpcf7-list-item label{display:inline-flex;align-items:center;gap:8px;margin:0;padding:9px 16px;border:1px solid rgba(255,255,255,0.14);border-radius:999px;background:rgba(255,255,255,0.02);color:#9DB4C2;font-size:14px;font-weight:600;line-height:1.2;cursor:pointer;transition:background .22s ease,border-color .22s ease,color .22s ease}
.swsm-cf7__fees .wpcf7-list-item label:hover{color:#F1F6F9;border-color:rgba(47,170,225,0.45)}
.swsm-cf7__fees .wpcf7-list-item input[type=radio]{appearance:none;-webkit-appearance:none;width:13px;height:13px;min-width:13px;margin:0;padding:0;border:1.5px solid currentColor;border-radius:50%;background:transparent}
.swsm-cf7__fees .wpcf7-list-item input[type=radio]:checked{background:radial-gradient(circle,currentColor 0 46%,transparent 47%)}
.swsm-cf7__fees .wpcf7-list-item label:focus-within{outline:2px solid #5FC4F0;outline-offset:2px}
.swsm-cf7__fees .wpcf7-list-item.is-checked label,.swsm-cf7__fees .wpcf7-list-item:has(input:checked) label{background:#2FAAE1;border-color:#2FAAE1;color:#04202F}
.swsm-cf7__fees-result{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px 18px;margin:18px 0 0;padding-top:16px;border-top:1px solid rgba(255,255,255,0.14)}
.swsm-cf7__fees-result-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#9DB4C2;font-weight:600}
.swsm-cf7__fees-amount{font-family:"Zilla Slab",Georgia,serif;font-size:34px;line-height:1;font-weight:700;color:#5FC4F0;font-variant-numeric:tabular-nums}
@media (max-width:600px){.swsm-cf7__fees{padding:18px 16px}.swsm-cf7__fees-grid{grid-template-columns:1fr}.swsm-cf7__fees-amount{font-size:28px}}
@media (prefers-reduced-motion:reduce){.swsm-cf7__fees *{transition:none !important}}
