/*
 * Forms and legal copy
 * Shared form shells, CF7 styling and calculator embedding.
 */

.legal-copy p { margin: 0 0 16px; }
.legal-copy h2,
.legal-copy h3,
.legal-copy h4 { margin: 28px 0 12px; }
.legal-copy ul,
.legal-copy ol { margin: 0 0 18px 1.25rem; padding: 0; }
.legal-copy li { margin: 0 0 8px; }
.legal-copy a { color: var(--accent); text-decoration: underline; }
.legal-copy strong { color: var(--steel); }
.legal-copy table { width: 100%; border-collapse: collapse; margin: 0 0 18px; }
.legal-copy td,
.legal-copy th { padding: 10px 12px; border: 1px solid var(--line); text-align: left; }
.legal-copy address { font-style: normal; line-height: 1.7; }

.request-form-box,
.contact-form-shell,
.homepage-form-shell {
  background: #fff;
  border: 1px solid rgba(30, 46, 62, .08);
  border-radius: 24px;
  box-shadow: 0 14px 32px rgba(16, 29, 43, .07);
}

.contact-form-shell,
.homepage-form-shell {
  padding: 1.35rem;
}

.quote .wpcf7 form,
.quote .wpcf7-form,
.homepage-form-shell .wpcf7 form,
.homepage-form-shell .wpcf7-form,
.contact-form-shell .wpcf7 form,
.contact-form-shell .wpcf7-form,
.request-form-box .wpcf7 form,
.request-form-box .wpcf7-form,
.request-form-box .quote-form,
.page-preisrechner .wpcf7 form,
.page-template-page-preisrechner .wpcf7 form,
.preisrechner-tool-embed form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: start;
  margin-top: var(--space-4);
}

.quote .wpcf7-form p,
.homepage-form-shell .wpcf7-form p,
.contact-form-shell .wpcf7-form p,
.request-form-box .wpcf7-form p,
.preisrechner-tool-embed form p,
.page-preisrechner .wpcf7 form p,
.page-template-page-preisrechner .wpcf7 form p,
.cf7-fallback p {
  margin: 0;
}

.quote .wpcf7-form p:has(textarea),
.quote .wpcf7-form p:has(.wpcf7-textarea),
.quote .wpcf7-form p:has(input[type="submit"]),
.homepage-form-shell .wpcf7-form p:has(textarea),
.homepage-form-shell .wpcf7-form p:has(.wpcf7-textarea),
.homepage-form-shell .wpcf7-form p:has(input[type="submit"]),
.contact-form-shell .wpcf7-form p:has(textarea),
.contact-form-shell .wpcf7-form p:has(.wpcf7-textarea),
.contact-form-shell .wpcf7-form p:has(input[type="submit"]),
.request-form-box .wpcf7-form p:has(textarea),
.request-form-box .wpcf7-form p:has(.wpcf7-textarea),
.request-form-box .wpcf7-form p:has(input[type="submit"]),
.page-preisrechner .wpcf7 form p:has(textarea),
.page-preisrechner .wpcf7 form p:has(input[type="submit"]),
.page-template-page-preisrechner .wpcf7 form p:has(textarea),
.page-template-page-preisrechner .wpcf7 form p:has(input[type="submit"]),
.preisrechner-tool-embed form p:has(textarea),
.preisrechner-tool-embed form p:has(input[type="submit"]),
.preisrechner-tool-embed form p:has(button),
.quote .wpcf7 .full,
.homepage-form-shell .wpcf7 .full,
.contact-form-shell .wpcf7 .full,
.request-form-box .wpcf7 .full,
.quote-form .full,
.quote .wpcf7-spinner,
.homepage-form-shell .wpcf7-spinner,
.contact-form-shell .wpcf7-spinner,
.request-form-box .wpcf7-spinner,
.quote .wpcf7 form .wpcf7-response-output,
.homepage-form-shell .wpcf7 form .wpcf7-response-output,
.contact-form-shell .wpcf7 form .wpcf7-response-output,
.request-form-box .wpcf7 form .wpcf7-response-output {
  grid-column: 1 / -1;
}

.quote .wpcf7 label,
.homepage-form-shell .wpcf7 label,
.contact-form-shell .wpcf7 label,
.request-form-box .wpcf7 label {
  display: block;
  margin-bottom: var(--space-3);
  font-size: .94rem;
  line-height: 1.45;
  font-weight: 600;
}

.quote .wpcf7 input[type="text"],
.quote .wpcf7 input[type="email"],
.quote .wpcf7 input[type="tel"],
.quote .wpcf7 textarea,
.quote .wpcf7 select,
.quote-form input,
.quote-form textarea,
.quote-form select,
.contact-form-shell input,
.contact-form-shell textarea,
.contact-form-shell select,
.homepage-form-shell input,
.homepage-form-shell textarea,
.homepage-form-shell select,
.request-form-box input,
.request-form-box textarea,
.request-form-box select,
.page-preisrechner .wpcf7 input[type="text"],
.page-preisrechner .wpcf7 input[type="email"],
.page-preisrechner .wpcf7 input[type="tel"],
.page-preisrechner .wpcf7 textarea,
.page-preisrechner .wpcf7 select,
.page-template-page-preisrechner .wpcf7 input[type="text"],
.page-template-page-preisrechner .wpcf7 input[type="email"],
.page-template-page-preisrechner .wpcf7 input[type="tel"],
.page-template-page-preisrechner .wpcf7 textarea,
.page-template-page-preisrechner .wpcf7 select,
.preisrechner-tool-embed input,
.preisrechner-tool-embed textarea,
.preisrechner-tool-embed select {
  width: 100%;
  min-height: 54px;
  padding: .9rem 1rem;
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: none;
}

.quote .wpcf7 textarea,
.quote-form textarea,
.contact-form-shell textarea,
.homepage-form-shell textarea,
.request-form-box textarea,
.page-preisrechner .wpcf7 textarea,
.page-template-page-preisrechner .wpcf7 textarea,
.preisrechner-tool-embed textarea {
  min-height: 160px;
  padding: 1rem;
  line-height: 1.58;
}

.quote .wpcf7 input[type="submit"],
.homepage-form-shell .wpcf7 input[type="submit"],
.contact-form-shell .wpcf7 input[type="submit"],
.request-form-box .wpcf7 input[type="submit"],
.page-preisrechner .wpcf7 input[type="submit"],
.page-template-page-preisrechner .wpcf7 input[type="submit"],
.preisrechner-tool-embed input[type="submit"],
.preisrechner-tool-embed button,
.single-produkt .quote-form input[type="submit"],
.tax-produktkategorie .quote-form input[type="submit"] {
  appearance: none;
  width: 100%;
  min-height: 56px;
  padding: 0 var(--button-padding-x);
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: .01em;
}

.quote .wpcf7 form .wpcf7-response-output,
.homepage-form-shell .wpcf7 form .wpcf7-response-output,
.contact-form-shell .wpcf7 form .wpcf7-response-output,
.request-form-box .wpcf7 form .wpcf7-response-output {
  margin: 1rem 0 0;
  padding: .9rem 1rem;
  border-radius: var(--radius-sm);
}

.quote .wpcf7-not-valid-tip,
.homepage-form-shell .wpcf7-not-valid-tip,
.contact-form-shell .wpcf7-not-valid-tip,
.request-form-box .wpcf7-not-valid-tip {
  margin-top: 8px;
  font-size: 14px;
}

/* Dark quote form */
.quote .wpcf7 label,
.cf7-fallback p {
  color: #fff;
}

.quote .wpcf7 input[type="text"],
.quote .wpcf7 input[type="email"],
.quote .wpcf7 input[type="tel"],
.quote .wpcf7 textarea,
.quote .wpcf7 select,
.quote-form input,
.quote-form textarea,
.quote-form select {
  color: #fff;
  background: rgba(255, 255, 255, .08);
  border-color: rgba(255, 255, 255, .18);
}

.quote .wpcf7 input::placeholder,
.quote .wpcf7 textarea::placeholder,
.quote-form input::placeholder,
.quote-form textarea::placeholder {
  color: rgba(255, 255, 255, .72);
}

.quote .wpcf7 input[type="submit"],
.homepage-form-shell .wpcf7 input[type="submit"],
.contact-form-shell .wpcf7 input[type="submit"],
.request-form-box .wpcf7 input[type="submit"] {
  color: #fff;
  background: var(--accent);
  box-shadow: 0 16px 28px rgba(212, 68, 12, .24);
}

.quote .wpcf7 input[type="submit"]:hover,
.homepage-form-shell .wpcf7 input[type="submit"]:hover,
.contact-form-shell .wpcf7 input[type="submit"]:hover,
.request-form-box .wpcf7 input[type="submit"]:hover {
  background: #bf3d0b;
}

.quote .wpcf7-not-valid-tip { color: #ffd8c5; }

/* Light request form override on product and category pages */
.single-produkt .quote,
.tax-produktkategorie .quote {
  color: var(--text);
  background: linear-gradient(180deg, #ffffff, #f5f9fd);
  border: 1px solid var(--line);
  border-radius: 24px;
  box-shadow: 0 14px 40px rgba(14, 24, 34, .08);
}

.single-produkt .quote h2,
.tax-produktkategorie .quote h2 {
  color: var(--steel);
  font-size: clamp(24px, 3vw, 34px);
  margin-bottom: 14px;
}

.single-produkt .quote p,
.tax-produktkategorie .quote p,
.single-produkt .quote .wpcf7 label,
.tax-produktkategorie .quote .wpcf7 label,
.single-produkt .cf7-fallback p,
.tax-produktkategorie .cf7-fallback p {
  color: #314456;
}

.single-produkt .quote .wpcf7 input[type="text"],
.single-produkt .quote .wpcf7 input[type="email"],
.single-produkt .quote .wpcf7 input[type="tel"],
.single-produkt .quote .wpcf7 textarea,
.single-produkt .quote .wpcf7 select,
.single-produkt .quote-form input,
.single-produkt .quote-form textarea,
.single-produkt .quote-form select,
.tax-produktkategorie .quote .wpcf7 input[type="text"],
.tax-produktkategorie .quote .wpcf7 input[type="email"],
.tax-produktkategorie .quote .wpcf7 input[type="tel"],
.tax-produktkategorie .quote .wpcf7 textarea,
.tax-produktkategorie .quote .wpcf7 select,
.tax-produktkategorie .quote-form input,
.tax-produktkategorie .quote-form textarea,
.tax-produktkategorie .quote-form select {
  color: var(--text);
  background: #fff;
  border-color: var(--line);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .65);
}

.single-produkt .quote .wpcf7 input::placeholder,
.single-produkt .quote .wpcf7 textarea::placeholder,
.single-produkt .quote-form input::placeholder,
.single-produkt .quote-form textarea::placeholder,
.tax-produktkategorie .quote .wpcf7 input::placeholder,
.tax-produktkategorie .quote .wpcf7 textarea::placeholder,
.tax-produktkategorie .quote-form input::placeholder,
.tax-produktkategorie .quote-form textarea::placeholder {
  color: #6c7a88;
}

.single-produkt .quote-form input:focus,
.single-produkt .quote-form textarea:focus,
.single-produkt .quote-form select:focus,
.tax-produktkategorie .quote-form input:focus,
.tax-produktkategorie .quote-form textarea:focus,
.tax-produktkategorie .quote-form select:focus,
.single-produkt .quote .wpcf7 input[type="text"]:focus,
.single-produkt .quote .wpcf7 input[type="email"]:focus,
.single-produkt .quote .wpcf7 input[type="tel"]:focus,
.single-produkt .quote .wpcf7 textarea:focus,
.single-produkt .quote .wpcf7 select:focus,
.tax-produktkategorie .quote .wpcf7 input[type="text"]:focus,
.tax-produktkategorie .quote .wpcf7 input[type="email"]:focus,
.tax-produktkategorie .quote .wpcf7 input[type="tel"]:focus,
.tax-produktkategorie .quote .wpcf7 textarea:focus,
.tax-produktkategorie .quote .wpcf7 select:focus {
  outline: none;
  border-color: rgba(212, 68, 12, .42);
  box-shadow: 0 0 0 4px rgba(212, 68, 12, .08);
}

/* Calculator */
.preisrechner-tool-card {
  border-radius: 32px;
  overflow: hidden;
  box-shadow: 0 20px 48px rgba(16, 29, 43, .10);
}

.preisrechner-tool-pad {
  padding: clamp(1rem, .8rem + 1vw, 1.75rem);
}

.preisrechner-tool-pad > p:first-child {
  max-width: 66ch;
  margin: 0 0 1.25rem;
  color: var(--muted);
  font-size: 1rem;
}

.preisrechner-tool-embed {
  padding: 0;
  border: 0;
  border-radius: 28px;
  background: #fff;
  box-shadow: none;
}

.preisrechner-tool-embed > *,
.page-preisrechner .preisrechner-tool-embed > *,
.page-template-page-preisrechner .preisrechner-tool-embed > * {
  width: 100% !important;
  max-width: none !important;
}

.page-preisrechner .preisrechner-tool-section .container,
.page-template-page-preisrechner .preisrechner-tool-section .container {
  width: min(calc(100% - 32px), 1460px);
}

.page-preisrechner .preisrechner-tool-embed form,
.page-preisrechner .preisrechner-tool-embed [class*="container"],
.page-preisrechner .preisrechner-tool-embed [class*="wrapper"],
.page-preisrechner .preisrechner-tool-embed [class*="inner"],
.page-preisrechner .preisrechner-tool-embed [class*="content"],
.page-preisrechner .preisrechner-tool-embed [class*="step"],
.page-template-page-preisrechner .preisrechner-tool-embed form,
.page-template-page-preisrechner .preisrechner-tool-embed [class*="container"],
.page-template-page-preisrechner .preisrechner-tool-embed [class*="wrapper"],
.page-template-page-preisrechner .preisrechner-tool-embed [class*="inner"],
.page-template-page-preisrechner .preisrechner-tool-embed [class*="content"],
.page-template-page-preisrechner .preisrechner-tool-embed [class*="step"] {
  width: 100% !important;
  max-width: none !important;
}

@media (max-width: 920px) {
  .page-preisrechner .preisrechner-tool-section .container,
  .page-template-page-preisrechner .preisrechner-tool-section .container {
    width: min(calc(100% - 20px), 1460px);
  }
}

@media (max-width: 860px) {
  .page-preisrechner .wpcf7 form,
  .page-template-page-preisrechner .wpcf7 form,
  .preisrechner-tool-embed form {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 782px) {
  .quote .wpcf7 form,
  .quote .wpcf7-form,
  .homepage-form-shell .wpcf7 form,
  .homepage-form-shell .wpcf7-form,
  .contact-form-shell .wpcf7 form,
  .contact-form-shell .wpcf7-form,
  .request-form-box .wpcf7 form,
  .request-form-box .wpcf7-form {
    grid-template-columns: 1fr;
  }
}
