/*
 * FAD shared form layer.
 * Loaded only when the current page declares a Contact Form 7 embed.
 */

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .wpcf7-form{
  --fad-form-border:rgba(48,78,133,.18);
  --fad-form-border-focus:#304e85;
  --fad-form-focus:rgba(48,78,133,.14);
  --fad-form-error:#a4262c;
  --fad-form-error-soft:#fff4f4;
  --fad-form-success:#17663a;
  --fad-form-success-soft:#effaf3;
  display:grid;
  gap:18px;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .wpcf7-form > p{
  display:grid;
  gap:8px;
  margin:0;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-required-note{
  margin:0;
  color:var(--fad-type-light-muted,#526176);
  font-size:13px;
  line-height:1.45;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-field{
  display:grid;
  min-width:0;
  gap:8px;
  margin:0;
  padding:0;
  border:0;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-field > label,
:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-field > legend{
  margin:0;
  padding:0;
  color:var(--fad-type-ink,#071326);
  font:inherit;
  font-size:15px;
  font-weight:800;
  line-height:1.35;
  letter-spacing:-.01em;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-hint{
  display:block;
  margin:0;
  color:var(--fad-type-light-muted,#526176);
  font-size:13.5px;
  line-height:1.48;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
  :is(.fad-form-field,.wpcf7-form-control-wrap)
  > :is(input[type="text"],input[type="email"],input[type="tel"],input[type="url"],input[type="number"],textarea,select){
  width:100%;
  min-height:56px;
  margin:0;
  padding:0 18px;
  border:1px solid var(--fad-form-border);
  border-radius:16px;
  background:#fff;
  color:var(--fad-type-ink,#071326);
  font:inherit;
  font-size:16px;
  line-height:1.35;
  outline:0;
  box-shadow:none;
  transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
  :is(.fad-form-field,.wpcf7-form-control-wrap) > textarea[rows]{
  height:144px;
  min-height:144px;
  padding-top:15px;
  padding-bottom:15px;
  resize:vertical;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
  :is(.fad-form-field,.wpcf7-form-control-wrap) > textarea[rows]:focus::placeholder{
  color:transparent;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
  :is(.fad-form-field,.wpcf7-form-control-wrap)
  > :is(input[type="text"],input[type="email"],input[type="tel"],input[type="url"],input[type="number"],textarea,select):focus-visible{
  border-color:var(--fad-form-border-focus);
  box-shadow:0 0 0 4px var(--fad-form-focus);
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
  :is(.fad-form-field,.wpcf7-form-control-wrap)
  > :is(input,textarea)::placeholder{
  color:#718096;
  opacity:1;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
  :is(.fad-form-field,.wpcf7-form-control-wrap) > select{
  height:56px;
  color:var(--fad-type-light-color,#334155);
  font-weight:400;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
  :is(.fad-form-field,.wpcf7-form-control-wrap) > select.fad-form-select--placeholder{
  color:#718096;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
  :is(.fad-form-field,.wpcf7-form-control-wrap) > select option{
  color:var(--fad-type-light-color,#334155);
  font-weight:400;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
  :is(.fad-form-field,.wpcf7-form-control-wrap) > select option[value=""]{
  color:#718096;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-field--choice .wpcf7-form-control{
  display:grid;
  gap:8px;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-field--choice .wpcf7-list-item{
  display:block;
  margin:0;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-field--choice .wpcf7-list-item > label{
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  gap:10px;
  align-items:start;
  min-height:46px;
  margin:0;
  padding:11px 13px;
  border:1px solid var(--fad-form-border);
  border-radius:14px;
  background:#fff;
  color:var(--fad-type-light-color,#334155);
  cursor:pointer;
  transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-field--choice
  :is(input[type="radio"],input[type="checkbox"]){
  width:20px;
  height:20px;
  margin:1px 0 0;
  accent-color:#304e85;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-field--choice
  .wpcf7-list-item > label:has(input:checked){
  border-color:rgba(48,78,133,.55);
  background:#f3f6fb;
  box-shadow:0 0 0 3px rgba(48,78,133,.08);
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-field--choice
  .wpcf7-list-item > label:has(input:focus-visible){
  border-color:var(--fad-form-border-focus);
  box-shadow:0 0 0 4px var(--fad-form-focus);
}

/* Reusable card-style radio choices for small, decision-critical option sets. */
:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
  .fad-form-field--choice-cards .wpcf7-list-item > label{
  align-items:center;
  border-color:rgba(48,78,133,.24);
  background:#eef2f7;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
  .fad-form-field--choice-cards input[type="radio"]{
  -webkit-appearance:none;
  appearance:none;
  display:grid;
  place-content:center;
  width:20px;
  height:20px;
  margin:0;
  border:1.5px solid rgba(48,78,133,.58);
  border-radius:50%;
  background:#fff;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
  .fad-form-field--choice-cards input[type="radio"]::before{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#304e85;
  content:"";
  transform:scale(0);
  transition:transform .14s ease;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
  .fad-form-field--choice-cards input[type="radio"]:checked{
  border-color:#304e85;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
  .fad-form-field--choice-cards input[type="radio"]:checked::before{
  transform:scale(1);
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
  .fad-form-field--choice-cards .wpcf7-list-item > label:has(input:checked){
  border-color:#304e85;
  background:#e8eef8;
  box-shadow:0 0 0 3px rgba(48,78,133,.09);
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
  .fad-form-field--choice-cards--split .wpcf7-list-item-label{
  display:grid;
  gap:3px;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
  .fad-form-field--choice-cards--split .fad-form-choice-card__title{
  color:var(--fad-form-border-focus,#304e85);
  font-weight:800;
  line-height:1.35;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
  .fad-form-field--choice-cards--split .fad-form-choice-card__description{
  color:var(--fad-type-light-color,#334155);
  line-height:1.48;
}

@media (hover:hover) and (pointer:fine){
  :where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
    .fad-form-field--choice-cards .wpcf7-list-item > label:hover{
    border-color:rgba(48,78,133,.48);
  }
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .wpcf7-not-valid{
  border-color:var(--fad-form-error);
  background:var(--fad-form-error-soft);
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .wpcf7-not-valid-tip{
  display:block;
  margin-top:7px;
  color:var(--fad-form-error);
  font-size:13.5px;
  font-weight:650;
  line-height:1.42;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-error-summary{
  padding:16px 18px;
  border:1px solid rgba(164,38,44,.32);
  border-left:4px solid var(--fad-form-error);
  border-radius:14px;
  background:var(--fad-form-error-soft);
  color:#61181c;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-error-summary:focus{
  outline:3px solid rgba(164,38,44,.22);
  outline-offset:3px;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-error-summary h3{
  margin:0 0 8px;
  color:inherit;
  font-size:16px;
  line-height:1.35;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-error-summary ul{
  display:grid;
  gap:5px;
  margin:0;
  padding-left:20px;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-error-summary a{
  color:inherit;
  text-decoration:underline;
  text-underline-offset:2px;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-submit{
  display:grid;
  gap:11px;
  justify-items:start;
}

:is(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
  :is(input[type="submit"].fad-btn:not(.fad-btn--sm),button[type="submit"].fad-btn:not(.fad-btn--sm)){
  height:56px!important;
  min-height:56px!important;
  padding-inline:28px!important;
}

:is(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-privacy,
:is(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-privacy > p{
  max-width:640px;
  margin:0;
  color:var(--fad-type-light-muted,#526176);
  font-size:13px;
  line-height:1.48;
}

:is(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-privacy a{
  color:inherit;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .wpcf7-spinner{
  margin:0 0 0 10px;
  vertical-align:middle;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .wpcf7-form.is-sending
  :is(input[type="submit"],button[type="submit"]){
  cursor:wait;
  opacity:.72;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .wpcf7-response-output{
  margin:0;
  padding:14px 16px;
  border:1px solid var(--fad-form-border);
  border-radius:14px;
  color:var(--fad-type-light-color,#334155);
  font-size:14px;
  line-height:1.5;
}

:where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .wpcf7.is-success .wpcf7-response-output{
  border-color:rgba(23,102,58,.32);
  border-left:4px solid var(--fad-form-success);
  background:var(--fad-form-success-soft);
  color:#124c2c;
}

@media (max-width:640px){
  :where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-grid{
    grid-template-columns:1fr;
  }

  :is(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
    :is(input[type="submit"].fad-btn:not(.fad-btn--sm),button[type="submit"].fad-btn:not(.fad-btn--sm)){
    height:54px!important;
    min-height:54px!important;
  }

  :where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-submit{
    justify-items:stretch;
  }

  :where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell) .fad-form-submit
    :is(input[type="submit"],button[type="submit"]){
    width:100%;
    min-width:0;
  }
}

@media (prefers-reduced-motion:reduce){
  :where(.fad-contact-form-panel,.fad-campaign-form,.fad-form-shell)
    :is(input,textarea,select,.wpcf7-list-item > label){
    transition:none;
  }
}

