/* Contact page based on the local Gaudeo contact layout. */
.contact-page { padding: 100px 0 150px; }
.contact-page__container { width: 100%; max-width: 1640px; }
.contact-page h1,
.contact-page h2,
.contact-page h3,
.contact-page h4 { font-family: "DynaPuff", system-ui; font-weight: 700; letter-spacing: 0; }
.contact-page h1 { position: relative; z-index: 2; margin: 0; color: #000; font-size: 42px; }
.contact-page h2 { margin: 0 0 35px; font-size: 34px; }
.contact-page h3 { margin: 0 0 35px; font-size: 27px; }
.contact-page h4 { margin: 30px 0 12px; font-size: 18px; }
.contact-page h6 { margin: 30px 0 8px; color: #a22480; font: 700 13px "Montserrat", sans-serif; }
.contact-page p,
.contact-page li { font: 400 15px/1.9 "Montserrat", sans-serif; }
.contact-hero { margin-bottom: 140px; }
.contact-title { position: relative; display: flex; min-height: 150px; align-items: center; }
.contact-title figure.contact-title__balloons { position: absolute; z-index: 1; top: -25px; left: 0; width: 155px; margin: 0; opacity: .16; }
.contact-title__balloons img { display: block; width: 100%; height: auto; }
.contact-hero > .wp-block-columns,
.contact-hero > .wp-block-columns.are-vertically-aligned-center { gap: 95px; align-items: flex-start !important; }
.contact-hero > .wp-block-columns > .wp-block-column:first-child { flex-basis: 43% !important; }
.contact-hero > .wp-block-columns > .wp-block-column:last-child { flex-basis: 57% !important; }
.contact-hero a { color: #a22480; text-decoration: none; }
.contact-data,
.contact-data.is-vertically-aligned-center { padding-left: 0; align-self: flex-start !important; }
.contact-data h3 { margin: 0 0 35px; font-size: 18px; }
.contact-data h6 { margin-top: 30px; }
.contact-data p { margin: 0; font-size: 13px; line-height: 1.65; }
.contact-data figure.contact-data__decor { width: 430px; max-width: 90%; margin: 35px 0 0; opacity: .16; }
.contact-data__decor img { display: block; width: 100%; height: auto; }
.contact-brief,
.contact-brief.is-vertically-aligned-center { position: relative; margin-top: 0 !important; padding: 42px 38px 55px; border: 1px solid #a22480; border-radius: 20px; align-self: flex-start !important; }
.contact-brief h3 { margin: 0 0 35px; font-family: "Montserrat", sans-serif; font-size: 17px; }
.contact-brief h4 { margin: 27px 0 10px; color: #a22480; font-family: "Montserrat", sans-serif; font-size: 17px; }
.contact-brief p { margin: 0; font-size: 12px; line-height: 1.55; }
.contact-brief figure.wp-block-image.contact-offer { position: absolute; z-index: 3; right: 35px; bottom: -34px; display: block; width: 76px; height: 81px; max-width: none; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; filter: drop-shadow(0 6px 2px rgba(0,0,0,.2)); overflow: visible; }
.contact-brief figure.wp-block-image.contact-offer img { display: block; width: 76px; height: 81px; max-width: none; margin: 0; padding: 0; border: 0; border-radius: 0; object-fit: contain; }
.contact-visuals { width: 100%; max-width: 1640px; margin: 190px auto 130px; }
.contact-visuals .wp-block-columns { display: flex; margin: 0 -12px; align-items: center; gap: 0; }
.contact-visuals .content-admin-cell { width: 50%; padding: 0 12px; flex: 0 0 50% !important; }
.contact-visuals figure { margin: 0; }
.contact-visuals img { display: block; width: 100%; height: 340px; object-fit: contain; }
.contact-hero .wp-block-list { margin: 0; padding: 0; list-style: none; }
.contact-hero .wp-block-list li { position: relative; padding-left: 22px; }
.contact-hero .wp-block-list li::before { content: ""; position: absolute; top: 10px; left: 0; width: 9px; height: 9px; background: url("../img/icons/ico-list.svg") center/contain no-repeat; }
.contact-form-section { width: min(1216px, 100%); margin-right: auto; margin-bottom: 150px; margin-left: auto; padding: 35px clamp(20px, 5.6%, 80px) 14px; border-radius: 20px; background: linear-gradient(180deg, #faf7fa 0%, #faeff7 100%); }
.contact-form-section .wpcf7 { width: 100%; max-width: none; margin-right: auto; margin-left: auto; }
.contact-form-section > h2 { margin: 0 0 34px; text-align: center; font-size: 28px; }
.contact-form,
.contact-form__grid,
.contact-form__fields,
.contact-form__name,
.contact-form__message,
.contact-form__upload { width: 100%; max-width: none; box-sizing: border-box; }
.contact-form > p { margin: 0; }
.contact-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 10px; align-items: stretch; }
.contact-form__grid > p { width: 100%; margin: 0; grid-column: 1 / -1 !important; }
.contact-form__grid > p > label { width: 100%; }
.contact-form__name,
.contact-form__message,
.contact-form__upload { grid-column: 1 / -1 !important; }
.contact-form__fields { display: grid; min-width: 0; gap: 10px; grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.contact-form__fields > p { width: 100%; min-width: 0; margin: 0; }
.contact-form__fields > p > label { width: 100%; }
.contact-form label { display: grid; gap: 5px; color: #a22480; font: 700 11px/1.2 "Montserrat", sans-serif; }
.contact-form__name { color: #111 !important; }
.contact-form__message { display: flex; min-width: 0; grid-row: auto; align-self: stretch; }
.contact-form__message > p { width: 100%; margin: 0; }
.contact-form__message label { display: flex; width: 100% !important; height: 100%; flex-direction: column; }
.contact-form__message .wpcf7-form-control-wrap { display: flex; width: 100% !important; min-width: 0; min-height: 0; flex: 1 1 auto; align-items: stretch; flex-direction: column; }
.contact-form__message .wpcf7-not-valid-tip { display: block; width: 100%; }
.contact-form input:not([type="checkbox"]),
.contact-form textarea { width: 100% !important; box-sizing: border-box; padding: 10px 14px; border: 1px solid #efdaea; border-radius: 18px; background: #fff; color: #322751; font: 400 11px/1.35 "Montserrat", sans-serif; outline: none; }
.contact-form input:not([type="checkbox"]) { height: 36px; padding: 8px 14px; }
.contact-form__message textarea { height: 160px; min-height: 160px; border: 2px solid #b52a92; flex: 0 0 auto; resize: none; }
.contact-form__upload { display: grid; width: 100%; gap: 4px; }
.contact-form__upload-help { color: #322751; font: 400 10px/1.25 "Montserrat", sans-serif; }
.contact-form__upload-drop { display: flex; width: 100% !important; min-height: 94px; box-sizing: border-box; border: 1px dashed #df91c8; border-radius: 18px; color: #6f6a73; background: #fff; align-items: center; justify-content: center; flex-direction: column; font: 400 10px/1.4 "Montserrat", sans-serif; }
.contact-form__upload-button { display: block; margin-top: 10px; padding: 5px 16px; border-radius: 14px; color: #7b4670; background: #f1d8eb; font-weight: 700; }
.contact-form__upload input[type="file"] { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.contact-form input[type="submit"].testimonials__button { display: flex; width: fit-content !important; min-width: 0; height: 30px; margin: 0 auto; padding: 7px 17px; border: 0; border-radius: 18px; color: #fff; background: #a22480; align-items: center; justify-content: center; font-family: "Montserrat", sans-serif; font-size: 10px; font-weight: 400; line-height: 1; cursor: pointer; transition: background-color .15s ease-in-out; }
.contact-form input[type="submit"].testimonials__button:hover,
.contact-form input[type="submit"].testimonials__button:focus-visible { color: #fff; background: #b6529b; }
.contact-form input:focus,
.contact-form textarea:focus { border-color: #a22480; }
.contact-form__consent { display: flex !important; margin: 10px 0 15px; align-items: flex-start; }
.contact-form__consent .wpcf7-list-item { margin: 0; }
.contact-form__consent label { display: flex !important; gap: 10px; color: #322751; align-items: flex-start; font-size: 10px; font-weight: 400; }
.contact-form__consent input { margin-top: 4px; accent-color: #a22480; }
.contact-form .testimonials__button { margin: 0 auto; border: 0; cursor: pointer; }
.contact-form__notice { color: #a22480; font-weight: 700; }
.contact-form .wpcf7-not-valid-tip { margin-top: 4px; color: #a22480; font: 400 11px/1.35 "Montserrat", sans-serif; }
.contact-form .wpcf7-response-output { margin: 18px 0 0; padding: 12px 16px; border: 1px solid #a22480; border-radius: 18px; color: #a22480; background: #f8eff6; font: 400 12px/1.45 "Montserrat", sans-serif; }
.wpcf7 form.contact-form.invalid .wpcf7-response-output,
.wpcf7 form.contact-form.failed .wpcf7-response-output { border-color: #a22480; }
.wpcf7 form.contact-form.sent .wpcf7-response-output { border-color: #a22480; color: #322751; background: #fff; }
.contact-faq { width: 100%; max-width: 1430px; margin: 0 auto; }
.contact-faq > h2 { margin-bottom: 50px; text-align: center; }
.contact-faq details { margin: 0; border: 0; border-top: 1px solid #a22480; border-radius: 0; background: #fff; overflow: hidden; }
.contact-faq details:last-child { border-bottom: 1px solid #a22480; }
.contact-faq summary { position: relative; padding: 25px 58px 25px 10px; border: 0; background: #fff; cursor: pointer; list-style: none; font: 700 16px/1.45 "Montserrat", sans-serif; }
.contact-faq details[open] summary { border-bottom: 1px solid #a22480; background: #f8eff6; }
.contact-faq summary::-webkit-details-marker { display: none; }
.contact-faq summary::after { content: ""; position: absolute; top: 50%; right: 15px; width: 11px; height: 11px; border-top: 1.5px solid #322751; border-left: 1.5px solid #322751; transform: translateY(-30%) rotate(45deg); transition: transform .15s ease-in-out; }
.contact-faq details:not([open]) summary::after { transform: translateY(-70%) rotate(225deg); }
.contact-faq details p { margin: 0; padding: 18px 20px 26px; background: #fff; font-size: 15px; line-height: 1.75; }
@media (max-width: 859.98px) {
  .contact-page { padding: 135px 0 90px; }
  .contact-page h1 { margin-bottom: 50px; font-size: 34px; }
  .contact-page h2 { font-size: 28px; }
  .contact-hero { margin-bottom: 90px; }
  .contact-hero > .wp-block-columns { gap: 55px; }
  .contact-title { min-height: 105px; }
  .contact-title figure.contact-title__balloons { width: 110px; }
  .contact-hero > .wp-block-columns > .wp-block-column:first-child,
  .contact-hero > .wp-block-columns > .wp-block-column:last-child { flex-basis: auto !important; }
  .contact-brief { padding: 35px 24px 50px; }
  .contact-visuals { margin-top: 90px; margin-bottom: 90px; }
  .contact-visuals .wp-block-columns { flex-direction: column; margin: 0; gap: 40px; }
  .contact-visuals .content-admin-cell { width: 100%; padding: 0; flex-basis: auto !important; }
  .contact-visuals img { height: auto; max-height: 260px; }
  .contact-form-section { margin-bottom: 90px; padding: 35px 20px 14px; }
  .contact-form-section .wpcf7 { width: 100%; }
  .contact-form__grid { grid-template-columns: 1fr; }
  .contact-form__fields { grid-column: 1; grid-template-columns: 1fr; }
  .contact-form__name,
  .contact-form__message,
  .contact-form__upload { grid-column: 1; }
  .contact-form__message { grid-row: auto; }
  .contact-form__message textarea { min-height: 180px; }
}
