.tsfm-phone-row {
  display: grid !important;
  grid-template-columns: minmax(96px, 116px) minmax(0, 1fr) !important;
  gap: 10px !important;
  width: 100% !important;
  align-items: stretch !important;
}

.tsfm-phone-row select.tsfm-phone-code {
  width: 100% !important;
  min-height: 50px !important;
  border-radius: 13px !important;
  border: 1.2px solid rgba(255,255,255,0.17) !important;
  background: rgba(255,255,255,0.075) !important;
  color: #fff !important;
  padding: 0 12px !important;
  outline: none !important;
  font-weight: 800 !important;
  appearance: auto !important;
  -webkit-appearance: menulist !important;
}

.tsfm-phone-row select.tsfm-phone-code option {
  color: #111 !important;
  background: #fff !important;
}

.tsfm-phone-hint,
.tsfm-field-error {
  display: block !important;
  margin-top: 6px !important;
  font-size: 12px !important;
  line-height: 1.3 !important;
  letter-spacing: -0.01em !important;
}

.tsfm-phone-hint {
  color: rgba(255,255,255,0.48) !important;
}

.tsfm-field-error {
  color: #ffd0d0 !important;
  font-weight: 800 !important;
}

.tsfm-has-error input,
.tsfm-has-error select,
.tsfm-has-error textarea,
.tsfm-has-error .ts-file-box {
  border-color: rgba(255, 125, 125, 0.85) !important;
  box-shadow: 0 0 0 4px rgba(255, 80, 80, 0.10) !important;
}

.tsfm-inline-message {
  grid-column: 1 / -1 !important;
  margin-top: 14px !important;
  padding: 13px 15px !important;
  border-radius: 13px !important;
  font-weight: 800 !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  letter-spacing: -0.012em !important;
}

.tsfm-inline-message.is-error {
  background: #FFECEC !important;
  color: #8A1F1F !important;
  border: 1px solid #FFC7C7 !important;
}

.tsfm-inline-message.is-success {
  background: #F0FFF4 !important;
  color: #14532D !important;
  border: 1px solid #B7F5C8 !important;
}

.tsfm-form-hidden {
  display: none !important;
}

.tsfm-show-success {
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px) !important;
}

.tsfm-success-panel {
  min-width: 0 !important;
  padding: clamp(26px, 4vw, 44px) !important;
  border-radius: clamp(22px, 3vw, 34px) !important;
  background: radial-gradient(circle at 18% 8%, rgba(255,255,255,0.18), transparent 32%), linear-gradient(135deg, #9E76DD 0%, #8B52CE 100%) !important;
  color: #fff !important;
  box-shadow: 0 26px 70px rgba(139,82,206,0.28) !important;
  align-self: stretch !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  animation: tsfmSuccessIn 480ms cubic-bezier(0.22, 1, 0.36, 1) both !important;
}

.tsfm-success-mark {
  width: 74px !important;
  height: 74px !important;
  border-radius: 50% !important;
  display: grid !important;
  place-items: center !important;
  margin-bottom: 24px !important;
  background: #fff !important;
  color: #8B52CE !important;
  font-size: 44px !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  box-shadow: 0 20px 40px rgba(0,0,0,0.12) !important;
}

.tsfm-success-panel h3 {
  margin: 0 !important;
  color: #fff !important;
  font-size: clamp(32px, 4vw, 52px) !important;
  line-height: 0.98 !important;
  letter-spacing: -0.058em !important;
  font-weight: 800 !important;
}

.tsfm-success-panel p {
  max-width: 560px !important;
  margin: 18px 0 0 !important;
  color: rgba(255,255,255,0.82) !important;
  font-size: clamp(15px, 1.2vw, 18px) !important;
  line-height: 1.38 !important;
  font-weight: 600 !important;
}

.tsfm-success-actions {
  display: flex !important;
  gap: 12px !important;
  flex-wrap: wrap !important;
  margin-top: 28px !important;
}

.tsfm-success-actions a,
.tsfm-success-actions button {
  all: unset !important;
  box-sizing: border-box !important;
  cursor: pointer !important;
  min-height: 46px !important;
  padding: 12px 18px !important;
  border-radius: 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  color: #fff !important;
  font-size: 14px !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  text-decoration: none !important;
  border: 1px solid rgba(255,255,255,0.42) !important;
  background: rgba(255,255,255,0.12) !important;
}

.tsfm-success-actions a:first-child {
  background: #fff !important;
  color: #7B42C8 !important;
  border-color: #fff !important;
}

.tsfm-is-sending {
  position: relative !important;
  pointer-events: none !important;
}

.tsfm-is-sending::after {
  content: "" !important;
  width: 16px !important;
  height: 16px !important;
  border-radius: 999px !important;
  border: 2px solid rgba(255,255,255,0.45) !important;
  border-top-color: #fff !important;
  margin-left: 10px !important;
  animation: tsfmSpin 850ms linear infinite !important;
}

@keyframes tsfmSpin {
  to { transform: rotate(360deg); }
}

@keyframes tsfmSuccessIn {
  from { opacity: 0; transform: translateY(14px) scale(0.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 960px) {
  .tsfm-show-success {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 680px) {
  .tsfm-phone-row {
    grid-template-columns: 92px minmax(0, 1fr) !important;
  }

  .tsfm-phone-row select.tsfm-phone-code {
    min-height: 50px !important;
    padding-left: 10px !important;
    padding-right: 8px !important;
    font-size: 13px !important;
  }

  .tsfm-success-panel {
    padding: 28px 20px !important;
    border-radius: 24px !important;
  }

  .tsfm-success-actions a,
  .tsfm-success-actions button {
    width: 100% !important;
  }
}

/* =========================================================
   Talent Studio Form Mailer — v1.2 refinement patch
   Keeps existing form design, fixes consent/error wrapping,
   file row stability, and success/error states.
========================================================= */
.ts-contact-page form[data-demo-submit],
.ts-contact-page form[data-ts-mailer-form],
form[data-ts-mailer-form] {
  min-width: 0 !important;
}

.ts-contact-page .ts-form-fields,
.ts-contact-page .ts-form,
.ts-contact-page .ts-contact-grid {
  min-width: 0 !important;
}

.ts-contact-page .ts-consent,
form[data-ts-mailer-form] .ts-consent,
.ts-consent {
  display: grid !important;
  grid-template-columns: 20px minmax(0, 1fr) !important;
  column-gap: 12px !important;
  row-gap: 5px !important;
  align-items: start !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin-top: 8px !important;
  overflow: visible !important;
}

.ts-contact-page .ts-consent input[type="checkbox"],
form[data-ts-mailer-form] .ts-consent input[type="checkbox"],
.ts-consent input[type="checkbox"] {
  grid-column: 1 !important;
  grid-row: 1 !important;
  flex: 0 0 20px !important;
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  max-width: 20px !important;
  margin: 0 !important;
}

.ts-contact-page .ts-consent span,
form[data-ts-mailer-form] .ts-consent span,
.ts-consent span {
  grid-column: 2 !important;
  grid-row: 1 !important;
  display: block !important;
  min-width: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: anywhere !important;
  line-height: 1.38 !important;
}

.ts-contact-page .ts-consent .tsfm-field-error,
form[data-ts-mailer-form] .ts-consent .tsfm-field-error,
.ts-consent .tsfm-field-error {
  grid-column: 2 !important;
  grid-row: 2 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: anywhere !important;
  font-size: 12px !important;
  line-height: 1.32 !important;
}

.ts-contact-page .ts-file-grid,
.ts-file-grid {
  min-width: 0 !important;
}

.ts-contact-page .ts-file-copy,
.ts-file-copy {
  min-width: 0 !important;
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
}

.ts-contact-page .ts-file-copy strong,
.ts-file-copy strong,
.ts-contact-page [data-file-name],
[data-file-name] {
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  white-space: normal !important;
}

.ts-contact-page .ts-choice-row,
.ts-choice-row {
  align-items: flex-start !important;
}

.ts-contact-page .ts-choice,
.ts-choice {
  white-space: normal !important;
  text-align: center !important;
  line-height: 1.1 !important;
}

.tsfm-has-error input,
.tsfm-has-error select,
.tsfm-has-error textarea {
  border-color: rgba(255, 125, 125, 0.9) !important;
}

.tsfm-has-error.ts-consent input[type="checkbox"],
.ts-consent.tsfm-has-error input[type="checkbox"] {
  border-color: rgba(255, 125, 125, 0.95) !important;
  box-shadow: 0 0 0 4px rgba(255, 80, 80, 0.10) !important;
}

.ts-contact-page .tsfm-inline-message,
.tsfm-inline-message {
  width: min(100%, 520px) !important;
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
}

.ts-contact-page .tsfm-show-success,
.tsfm-show-success {
  grid-template-columns: 1fr !important;
  justify-items: center !important;
}

.ts-contact-page .tsfm-show-success .ts-contact-side,
.tsfm-show-success .ts-contact-side {
  display: none !important;
}

.ts-contact-page .tsfm-success-panel,
.tsfm-success-panel {
  grid-column: 1 / -1 !important;
  width: min(760px, 100%) !important;
  min-height: 320px !important;
  margin: 0 auto !important;
}

@media (max-width: 680px) {
  .ts-contact-page .ts-consent,
  .ts-consent {
    grid-template-columns: 20px minmax(0, 1fr) !important;
    column-gap: 10px !important;
  }

  .ts-contact-page .ts-consent span,
  .ts-consent span {
    font-size: 12.5px !important;
    line-height: 1.38 !important;
  }

  .ts-contact-page .ts-consent .tsfm-field-error,
  .ts-consent .tsfm-field-error {
    font-size: 12px !important;
  }

  .ts-contact-page .tsfm-inline-message,
  .tsfm-inline-message {
    width: 100% !important;
  }
}

.tsfm-phone-row .tsfm-field-error,
.ts-file-area > .tsfm-field-error,
.ts-field > .tsfm-field-error {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: 100% !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: anywhere !important;
}
