/* Feuerwehr Holdenstedt - Digitale Mitgliedsanmeldung CF7 */
.ffh-form-wrap {
  width:100%;
  max-width:1120px;
  margin:0 auto 70px;
  font-family:inherit
}

.ffh-form-hero {
  background:linear-gradient(135deg,#56616a 0%,#3f474f 100%);
  color:#fff;
  padding:52px 56px;
  margin-bottom:28px;
  text-align:center;
  position:relative;
  overflow:hidden;
  box-shadow:0 18px 45px rgba(0,0,0,.12)
}

.ffh-form-hero:before {
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:8px;
  height:100%;
  background:#d71920
}

.ffh-form-hero .ffh-kicker {
  margin:0 0 10px;
  color:rgba(255,255,255,.82);
  text-transform:uppercase;
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em
}

.ffh-form-hero h2 {
  color:#fff;
  max-width:820px;
  margin:0 auto 18px;
  font-size:clamp(34px,4.2vw,56px);
  line-height:1;
  font-weight:900;
  text-transform:uppercase;
  font-style:italic
}

.ffh-form-hero p {
  max-width:760px;
  margin:0 auto;
  color:rgba(255,255,255,.88);
  font-size:16px;
  line-height:1.75
}

.ffh-form-card {
  background:#fff;
  padding:36px 42px;
  margin-bottom:24px;
  border:0;
  box-shadow:0 18px 42px rgba(0,0,0,.075);
  position:relative
}

.ffh-form-card h3 {
  position:relative;
  margin:0 0 24px;
  padding-bottom:13px;
  color:#d71920;
  font-size:clamp(24px,2.2vw,34px);
  line-height:1.05;
  font-weight:900;
  text-transform:uppercase;
  font-style:italic
}

.ffh-form-card h3:after {
  content:"";
  display:block;
  width:58px;
  height:3px;
  background:#d71920;
  margin-top:13px
}

.ffh-form-card-highlight {
  background:#f6f6f6;
  border-left:8px solid #d71920
}

.ffh-consent-card {
  background:linear-gradient(180deg,#f5f6f7 0%,#eceeef 100%);
  border-top:6px solid #d71920
}

.ffh-help {
  margin:-6px 0 22px;
  color:#555;
  font-size:15px;
  line-height:1.7
}

.ffh-small {
  margin:16px 0 0;
  color:#555;
  font-size:13px;
  line-height:1.55
}

.ffh-grid {
  display:grid;
  gap:18px;
  margin-bottom:18px
}

.ffh-grid-2 {
  grid-template-columns:repeat(2,minmax(0,1fr))
}

.ffh-grid-plz {
  grid-template-columns:190px minmax(0,1fr)
}

.ffh-subheadline {
  margin:24px 0 14px;
  color:#222;
  font-size:18px;
  font-weight:900;
  text-transform:uppercase
}

.ffh-form-wrap .wpcf7-form-control-wrap {
  display:block;
  width:100%;
  margin-bottom:18px
}

.ffh-grid .wpcf7-form-control-wrap {
  margin-bottom:0
}

.ffh-form-wrap input[type=text],.ffh-form-wrap input[type=email],.ffh-form-wrap input[type=tel],.ffh-form-wrap input[type=date],.ffh-form-wrap textarea,.ffh-form-wrap select {
  width:100%;
  min-height:54px;
  margin:0;
  padding:15px 17px;
  border:1px solid #e1e1e1;
  background:#fbfbfb;
  color:#222;
  font-size:16px;
  line-height:1.4;
  border-radius:0;
  box-shadow:none;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease
}

.ffh-form-wrap textarea {
  min-height:165px;
  resize:vertical
}

.ffh-form-wrap input::placeholder,.ffh-form-wrap textarea::placeholder {
  color:#666;
  opacity:1;
  font-weight:600
}

.ffh-form-wrap input:hover,.ffh-form-wrap textarea:hover,.ffh-form-wrap select:hover {
  background:#fff;
  border-color:#cfcfcf
}

.ffh-form-wrap input:focus,.ffh-form-wrap textarea:focus,.ffh-form-wrap select:focus {
  outline:none;
  border-color:#d71920;
  background:#fff;
  box-shadow:0 0 0 4px rgba(215,25,32,.12)
}

.ffh-choice-grid .wpcf7-form-control,.ffh-radio-grid .wpcf7-form-control {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px
}

.ffh-choice-grid .wpcf7-list-item,.ffh-radio-grid .wpcf7-list-item {
  margin:0
}

.ffh-choice-grid .wpcf7-list-item label,.ffh-radio-grid .wpcf7-list-item label {
  display:flex;
  align-items:center;
  gap:13px;
  min-height:64px;
  margin:0;
  padding:16px 18px;
  border:1px solid #e1e1e1;
  background:#fafafa;
  cursor:pointer;
  font-size:15px;
  font-weight:900;
  transition:all .2s ease
}

.ffh-choice-grid .wpcf7-list-item label:hover,.ffh-radio-grid .wpcf7-list-item label:hover {
  border-color:#d71920;
  background:#fff;
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(0,0,0,.07)
}

.ffh-choice-grid .wpcf7-list-item label:has(input:checked),.ffh-radio-grid .wpcf7-list-item label:has(input:checked) {
  border-color:#d71920;
  background:rgba(215,25,32,.055);
  box-shadow:inset 4px 0 0 #d71920
}

.ffh-choice-grid input[type=checkbox],.ffh-radio-grid input[type=radio] {
  width:18px;
  height:18px;
  accent-color:#d71920;
  flex:0 0 auto
}

.ffh-choice-grid .wpcf7-list-item-label,.ffh-radio-grid .wpcf7-list-item-label {
  line-height:1.35
}

.ffh-info-box,.ffh-sepa-box {
  background:#fff;
  border:1px solid #e2e2e2;
  padding:18px 20px;
  margin:16px 0 18px
}

.ffh-sepa-box {
  border-left:5px solid #d71920
}

.ffh-consent {
  background:#fff;
  border:1px solid #e2e2e2;
  padding:18px 20px;
  margin-bottom:15px;
  box-shadow:0 8px 20px rgba(0,0,0,.035)
}

.ffh-consent-inner {
  box-shadow:none
}

.ffh-consent .wpcf7-list-item {
  margin:0
}

.ffh-consent label {
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin:0;
  font-weight:600;
  line-height:1.6;
  font-size:14px;
  color:#222;
  cursor:pointer
}

.ffh-consent input[type=checkbox] {
  margin-top:4px;
  width:19px;
  height:19px;
  accent-color:#d71920;
  flex:0 0 auto
}

.ffh-submit-row {
  margin-top:28px
}

.ffh-form-wrap input[type=submit],.ffh-form-wrap .wpcf7-submit {
  width:100%;
  min-height:56px;
  padding:18px 30px;
  border:0;
  background:#d71920!important;
  color:#fff!important;
  font-size:15px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  cursor:pointer;
  border-radius:0;
  opacity:1!important;
  transition:background .2s ease,transform .2s ease,box-shadow .2s ease
}

.ffh-form-wrap input[type=submit]:hover,.ffh-form-wrap .wpcf7-submit:hover {
  background:#b91218!important;
  transform:translateY(-1px);
  box-shadow:0 12px 28px rgba(215,25,32,.25)
}

.ffh-form-wrap input[type=submit]:disabled,.ffh-form-wrap .wpcf7-submit:disabled {
  background:#d71920!important;
  color:#fff!important;
  opacity:.55!important;
  cursor:not-allowed;
  transform:none;
  box-shadow:none
}

.ffh-form-wrap .wpcf7-not-valid-tip {
  color:#d71920;
  font-size:12px;
  line-height:1.4;
  margin-top:8px;
  font-weight:800
}

.ffh-form-wrap .wpcf7-response-output {
  margin:24px 0 0;
  padding:17px 20px;
  background:#fff;
  border-left:5px solid #d71920!important;
  border-top:1px solid #e1e1e1!important;
  border-right:1px solid #e1e1e1!important;
  border-bottom:1px solid #e1e1e1!important;
  font-weight:800
}

.ffh-form-wrap .wpcf7-spinner {
  display:block;
  margin:14px auto 0
}

.ffh-form-wrap .wpcf7cf-hidden {
  display:none!important
}

@media(max-width:980px) {
  .ffh-form-wrap {
    max-width:92vw
  }
}

@media(max-width:767px) {
  .ffh-form-wrap {
    max-width:94vw;
    margin-bottom:50px
  }
  .ffh-form-hero {
    padding:36px 24px;
    text-align:left
  }
  .ffh-form-hero h2 {
    font-size:31px
  }
  .ffh-form-hero p {
    font-size:15px;
    line-height:1.65
  }
  .ffh-form-card {
    padding:27px 22px;
    margin-bottom:18px
  }
  .ffh-form-card h3 {
    font-size:22px
  }
  .ffh-grid-2,.ffh-grid-plz,.ffh-choice-grid .wpcf7-form-control,.ffh-radio-grid .wpcf7-form-control {
    grid-template-columns:1fr
  }
  .ffh-choice-grid .wpcf7-list-item label,.ffh-radio-grid .wpcf7-list-item label {
    min-height:auto;
    padding:16px 17px;
    font-size:14px
  }
  .ffh-consent label {
    font-size:13px
  }
  .ffh-form-wrap input[type=submit],.ffh-form-wrap .wpcf7-submit {
    font-size:14px;
    white-space:normal
  }
}

@media(max-width:420px) {
  .ffh-form-hero {
    padding:32px 20px
  }
  .ffh-form-card {
    padding:24px 18px
  }
  .ffh-form-hero h2 {
    font-size:27px
  }
  .ffh-form-card h3 {
    font-size:21px
  }
}



/* v1.0.7 - stabile Grid- und Full-Width-Korrektur */
.ffh-required-note {
  max-width: 1120px;
  margin: 0 auto 24px;
  padding: 14px 18px;
  background: #fff;
  border-left: 5px solid #d71920;
  color: #333;
  font-size: 14px;
  line-height: 1.55;
  box-shadow: 0 8px 22px rgba(0,0,0,.045);
}

.ffh-field {
  width: 100%;
  min-width: 0;
}

.ffh-field-full {
  grid-column: 1 / -1;
  margin-bottom: 18px;
}

.ffh-form-card > .ffh-field-full:last-child {
  margin-bottom: 0;
}

.ffh-grid {
  display: grid;
  width: 100%;
  gap: 18px;
  margin-bottom: 18px;
  align-items: start;
}

.ffh-grid-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ffh-grid-plz {
  grid-template-columns: 190px minmax(0, 1fr);
}

.ffh-form-wrap .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
  max-width: 100%;
}

.ffh-field .wpcf7-form-control-wrap,
.ffh-grid .wpcf7-form-control-wrap {
  margin-bottom: 0;
}

.ffh-form-wrap input[type="text"],
.ffh-form-wrap input[type="email"],
.ffh-form-wrap input[type="tel"],
.ffh-form-wrap input[type="date"],
.ffh-form-wrap textarea,
.ffh-form-wrap select {
  display: block;
  width: 100% !important;
  max-width: 100%;
  box-sizing: border-box;
}

.ffh-choice-grid .wpcf7-form-control,
.ffh-radio-grid .wpcf7-form-control {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  width: 100%;
}

.ffh-choice-grid-single .wpcf7-form-control {
  grid-template-columns: 1fr;
}

.ffh-choice-grid .wpcf7-list-item,
.ffh-radio-grid .wpcf7-list-item {
  width: 100%;
}

.ffh-choice-grid .wpcf7-list-item label,
.ffh-radio-grid .wpcf7-list-item label {
  width: 100%;
  box-sizing: border-box;
}

.ffh-consent .wpcf7-form-control,
.ffh-consent .wpcf7-list-item,
.ffh-consent .wpcf7-list-item label {
  width: 100%;
}

@media (max-width: 767px) {
  .ffh-grid,
  .ffh-grid-2,
  .ffh-grid-plz,
  .ffh-choice-grid .wpcf7-form-control,
  .ffh-radio-grid .wpcf7-form-control {
    grid-template-columns: 1fr;
  }

  .ffh-field,
  .ffh-field-full {
    width: 100%;
    grid-column: 1 / -1;
  }
}


/* Anti-Spam-Feld: fuer Nutzer unsichtbar, serverseitig als Honeypot geprueft */
.ffh-anti-spam {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
