/*
 * 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 {
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 {
padding: 1.35rem;
}



.quote .wpcf7 form,
.quote .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,
.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"]),
.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,
.contact-form-shell .wpcf7 .full,
.request-form-box .wpcf7 .full,
.quote-form .full,
.quote .wpcf7-spinner,
.contact-form-shell .wpcf7-spinner,
.request-form-box .wpcf7-spinner,
.quote .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,
.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;
}






.contact-form-shell input,
.contact-form-shell textarea,
.contact-form-shell select {
color: var(--text);
  background: #fff;
}



.contact-form-shell input::placeholder,
.contact-form-shell textarea::placeholder {
color: var(--muted);
}






.quote .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,
.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,
.contact-form-shell .wpcf7-not-valid-tip,
.request-form-box .wpcf7-not-valid-tip {
margin-top: 8px;
  font-size: 14px;
}



/* Dark quote form */


.request-form-box .wpcf7 label,
.request-form-box .cf7-fallback p,
.request-form-box .quote-form label,
.request-form-box .quote-form p {
color: #fff;
}



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



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



.quote .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,
.contact-form-shell .wpcf7 input[type="submit"]:hover,
.request-form-box .wpcf7 input[type="submit"]:hover {
background: #bf3d0b;
}



.request-form-box .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,
.contact-form-shell .wpcf7 form,
.contact-form-shell .wpcf7-form,
.request-form-box .wpcf7 form,
.request-form-box .wpcf7-form {
grid-template-columns: 1fr;
}


}



/* v1.2.44 form hardening and visibility corrections */


.contact-form-shell,
.request-form-box {
padding: clamp(1.35rem, 1rem + 1vw, 1.9rem);
}



.contact-form-shell {
max-width: 100%;
}



.contact-form-shell .wpcf7,
.request-form-box .wpcf7,
.contact-form-shell .oli-cf7-form,
.request-form-box .oli-cf7-form {
width: 100%;
  max-width: 100%;
}



.contact-form-shell .wpcf7-form,
.request-form-box .wpcf7-form {
width: 100%;
}



.contact-form-shell .wpcf7-form-control-wrap,
.request-form-box .wpcf7-form-control-wrap {
display: block;
  width: 100%;
  margin-top: .4rem;
}



.quote .wpcf7 label,
.contact-form-shell .wpcf7 label,
.request-form-box .wpcf7 label {
color: var(--steel);
  margin-bottom: .95rem;
}



.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,
.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 {
color: var(--steel);
  background: #fbfcfe;
  border: 1.5px solid #b8c3ce;
}



.contact-form-shell input::placeholder,
.contact-form-shell textarea::placeholder,
.request-form-box input::placeholder,
.request-form-box textarea::placeholder,
.page-preisrechner .wpcf7 input::placeholder,
.page-preisrechner .wpcf7 textarea::placeholder,
.page-template-page-preisrechner .wpcf7 input::placeholder,
.page-template-page-preisrechner .wpcf7 textarea::placeholder {
color: #667788;
}



.contact-form-shell input:focus,
.contact-form-shell textarea:focus,
.contact-form-shell select:focus,
.request-form-box input:focus,
.request-form-box textarea:focus,
.request-form-box select:focus,
.page-preisrechner .wpcf7 input:focus,
.page-preisrechner .wpcf7 textarea:focus,
.page-preisrechner .wpcf7 select:focus,
.page-template-page-preisrechner .wpcf7 input:focus,
.page-template-page-preisrechner .wpcf7 textarea:focus,
.page-template-page-preisrechner .wpcf7 select:focus {
outline: none;
  background: #fff;
  border-color: rgba(212, 68, 12, .58);
  box-shadow: 0 0 0 4px rgba(212, 68, 12, .12);
}



.contact-form-shell .wpcf7-form p:has(.wpcf7-acceptance),
.request-form-box .wpcf7-form p:has(.wpcf7-acceptance),
.contact-form-shell .wpcf7-acceptance,
.request-form-box .wpcf7-acceptance {
grid-column: 1 / -1;
}



.contact-form-shell .wpcf7-acceptance .wpcf7-list-item,
.request-form-box .wpcf7-acceptance .wpcf7-list-item {
margin: 0;
}



.contact-form-shell .wpcf7-acceptance label,
.request-form-box .wpcf7-acceptance label {
display: flex;
  align-items: flex-start;
  gap: .7rem;
  margin: 0;
  font-size: .92rem;
  font-weight: 500;
  line-height: 1.6;
}



.contact-form-shell .wpcf7-acceptance input[type="checkbox"],
.request-form-box .wpcf7-acceptance input[type="checkbox"] {
width: 18px;
  min-width: 18px;
  height: 18px;
  min-height: 18px;
  margin: .15rem 0 0;
  padding: 0;
}



.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"] {
min-height: 58px;
  padding-inline: 1.35rem;
}



.request-form-box .wpcf7-form p:last-child,
.contact-form-shell .wpcf7-form p:last-child {
margin-bottom: 0;
}



.request-form-box .wpcf7-spinner,
.contact-form-shell .wpcf7-spinner {
margin: .4rem 0 0;
}



/* v1.2.71 targeted form refactor: reduce selector list size and specificity */
.quote :is(input[type="text"], input[type="email"], input[type="tel"], textarea, select),
.quote-form :is(input, textarea, select),
.contact-form-shell :is(input, textarea, select),
.request-form-box :is(input, textarea, select),
.page-preisrechner .wpcf7 :is(input[type="text"], input[type="email"], input[type="tel"], textarea, select),
.page-template-page-preisrechner .wpcf7 :is(input[type="text"], input[type="email"], input[type="tel"], textarea, select),
.preisrechner-tool-embed :is(input, textarea, select) {
  width: 100%;
  min-height: 54px;
  padding: .9rem 1rem;
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: none;
}

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