/* Zimbl final theme-specific frontend/editor adjustments. */

/* Main navigation: preserve entered letter case and keep the slightly smaller size. */
@media (min-width: 1181px) {
    .zim-main-navigation .zim-primary-menu a,
    .zim-main-navigation .zim-primary-menu .sub-menu a {
        text-transform: none !important;
    }

    .zim-main-navigation .zim-primary-menu > .menu-item > a {
        font-size: 1.25rem !important;
    }

    .zim-main-navigation .zim-primary-menu .sub-menu a {
        font-size: 1.12rem !important;
    }
}

@media (max-width: 1180px) {
    .zim-main-navigation .zim-primary-menu a,
    .zim-main-navigation .zim-primary-menu .sub-menu a {
        text-transform: none !important;
    }
}

@media (max-width: 767px) {
    .zim-main-navigation .zim-primary-menu > .menu-item > a {
        font-size: 1.2rem !important;
    }

    .zim-main-navigation .zim-primary-menu .sub-menu a {
        font-size: 1.05rem !important;
    }
}

/* Footer navigation must always use the normal content font, never the headline font. */
.zim-site-footer .zim-footer-navigation,
.zim-site-footer .zim-footer-menu,
.zim-site-footer .zim-footer-menu li,
.zim-site-footer .zim-footer-menu a,
.zim-site-footer .zim-footer-menu a:link,
.zim-site-footer .zim-footer-menu a:visited,
.zim-site-footer .zim-footer-menu a:hover,
.zim-site-footer .zim-footer-menu a:focus,
.zim-site-footer .zim-footer-menu a:focus-visible,
.zim-site-footer .zim-footer-menu a:active,
.zim-site-footer .zim-footer-menu a *,
.zim-site-footer .zim-footer-menu a::before,
.zim-site-footer .zim-footer-menu a::after {
    font-family: "ZimblWebfontContent", var(--zim-font-content), sans-serif !important;
}

/* Link button: normal content font; hover is white on black with a white border. */
.zim-link-button,
.zim-link-button:link,
.zim-link-button:visited,
.editor-styles-wrapper .zim-link-button,
.editor-styles-wrapper .zim-link-button:link,
.editor-styles-wrapper .zim-link-button:visited {
    color: #000000 !important;
    font-family: "ZimblWebfontContent", var(--zim-font-content), sans-serif !important;
}

.zim-link-button:hover,
.zim-link-button:focus,
.zim-link-button:focus-visible,
.zim-link-button:active,
.editor-styles-wrapper .zim-link-button:hover,
.editor-styles-wrapper .zim-link-button:focus,
.editor-styles-wrapper .zim-link-button:focus-visible,
.editor-styles-wrapper .zim-link-button:active {
    color: #ffffff !important;
    background: #000000 !important;
    border-color: #ffffff !important;
    font-family: "ZimblWebfontContent", var(--zim-font-content), sans-serif !important;
}

/* Partner graphics: keep both logos visually balanced and vertically centered. */
.zim-partner-links {
    align-items: center;
    gap: 30px !important;
}

.zim-partner-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 1.75rem;
    min-height: 1.75rem;
}

.zim-partner-image {
    display: block;
    width: auto !important;
    height: 1.75rem !important;
    max-width: none !important;
    max-height: 1.75rem !important;
    object-fit: contain;
    object-position: center;
    vertical-align: middle;
}

.zim-partner-link--partner-secondary .zim-partner-image {
    height: 1.25rem !important;
    max-height: 1.25rem !important;
}

@media (max-width: 767px) {
    .zim-partner-links--mobile {
        gap: 0.8rem 30px !important;
    }
}

/* Contact Form 7: entered text must remain black in all form fields. */
.wpcf7-form input:not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.wpcf7-form textarea,
.wpcf7-form select {
    color: #000000 !important;
}

/* Contact Form 7: text fields use the same inner padding as the textarea. */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="url"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="number"],
.wpcf7-form input[type="date"],
.wpcf7-form input[type="search"] {
    padding: 0.45rem 0.65rem !important;
}

.wpcf7-form input:not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="file"])::placeholder,
.wpcf7-form textarea::placeholder {
    color: #000000 !important;
    opacity: 1;
}

/* Contact Form 7 submit button: same appearance as the Zimbl link button. */
.wpcf7-form .wpcf7-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.65rem 1.15rem;
    color: #000000 !important;
    background: var(--zim-color-link);
    border: 2px solid var(--zim-color-link);
    border-radius: 20px;
    font-family: "ZimblWebfontContent", var(--zim-font-content), sans-serif !important;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    text-align: center;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    transform: none;
    transition: color 0.18s ease, background-color 0.18s ease, border-color 0.18s ease;
}

.wpcf7-form .wpcf7-submit:hover,
.wpcf7-form .wpcf7-submit:focus,
.wpcf7-form .wpcf7-submit:focus-visible,
.wpcf7-form .wpcf7-submit:active {
    color: #ffffff !important;
    background: #000000 !important;
    border-color: #ffffff !important;
    text-decoration: none;
    transform: none;
}

.wpcf7-form .wpcf7-submit:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}

/* Contact Form 7: labels, option text and validation/status messages use the normal content font. */
.wpcf7-form label,
.wpcf7-form .zim-cf7-field-label,
.wpcf7-form .nbcf7a-field-label,
.wpcf7-form .zim-cf7-section-title,
.wpcf7-form .nbcf7a-section-title,
.wpcf7-form .wpcf7-list-item-label,
.wpcf7-form .wpcf7-not-valid-tip,
.wpcf7 form .wpcf7-response-output {
    font-family: "ZimblWebfontContent", var(--zim-font-content), sans-serif !important;
}

/* Contact Form 7: keep the text caret visible on the white fields. */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="url"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="number"],
.wpcf7-form input[type="date"],
.wpcf7-form input[type="search"],
.wpcf7-form textarea {
    caret-color: #000000 !important;
}

/* Contact Form 7: custom checkbox with a clearly visible checkmark in all browsers. */
.wpcf7-form input[type="checkbox"] {
    -webkit-appearance: none !important;
    appearance: none !important;
    position: relative;
    display: inline-block;
    width: 1.35em;
    height: 1.35em;
    min-width: 1.35em;
    min-height: 1.35em;
    margin: 0.2em 0 0 !important;
    padding: 0 !important;
    vertical-align: top;
    background-color: #ffffff !important;
    background-image: none !important;
    border: 2px solid #000000 !important;
    border-radius: 4px;
    box-shadow: none !important;
    cursor: pointer;
}

.wpcf7-form input[type="checkbox"]:checked {
    background-color: #000000 !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M3.5 10.5 8 15 16.5 5.5' fill='none' stroke='%23ffffff' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 82% 82% !important;
    border-color: #000000 !important;
}

/* The older pseudo-element checkmark is not reliable on checkbox inputs in every browser. */
.wpcf7-form input[type="checkbox"]:checked::after {
    display: none !important;
    content: none !important;
}

.wpcf7-form input[type="checkbox"]:focus-visible {
    outline: 2px solid #000000 !important;
    outline-offset: 3px;
}
