.vhi-page,
.vhi-page * {
    box-sizing: border-box;
}
.vhi-page {
    --vhi-motion-distance: 46px;
    width: 100%;
    min-height: 100vh;
    background: var(--vhi-light);
    color: var(--vhi-black);
    overflow-x: hidden;
    font-family: Arial, Helvetica, sans-serif;
}
.vhi-page a {
    color: inherit;
    text-decoration: none;
}
.vhi-header {
    min-height: var(--vhi-header-height);
    background: var(--vhi-header-bg, var(--vhi-black));
    color: var(--vhi-header-nav-color, #ffffff);
    display: flex;
    align-items: center;
    width: 100%;
    overflow: visible;
}
.vhi-header.is-sticky {
    z-index: 2147483000 !important;
}
@media (min-width: 901px) {
    .vhi-header.is-sticky-desktop {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
    }
    body.admin-bar .vhi-header.is-sticky-desktop {
        top: var(--wp-admin--admin-bar--height, 32px) !important;
    }
    .vhi-header.is-sticky-desktop + .vhi-main,
    .vhi-header.is-sticky-desktop + .vhi-shell-content {
        margin-top: var(--vhi-header-height) !important;
    }
    .vhi-url-injected-header:has(.vhi-header.is-sticky-desktop) {
        min-height: var(--vhi-header-height) !important;
    }
}
@media (max-width: 900px) {
    .vhi-header {
        min-height: var(--vhi-header-mobile-height, var(--vhi-header-height));
    }
    .vhi-header.is-sticky-mobile {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
    }
    body.admin-bar .vhi-header.is-sticky-mobile {
        top: var(--wp-admin--admin-bar--height, 46px) !important;
    }
    .vhi-header.is-sticky-mobile + .vhi-main,
    .vhi-header.is-sticky-mobile + .vhi-shell-content {
        margin-top: var(--vhi-header-mobile-height, var(--vhi-header-height)) !important;
    }
    .vhi-url-injected-header:has(.vhi-header.is-sticky-mobile) {
        min-height: var(--vhi-header-mobile-height, var(--vhi-header-height)) !important;
    }
}
@supports not selector(:has(*)) {
    .vhi-url-injected-header {
        min-height: 0;
    }
}
.vhi-header-inner {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    padding: 0 var(--vhi-header-padding-x);
}
.vhi-brand {
    position: relative;
    top: var(--vhi-header-logo-offset-y);
    color: var(--vhi-header-logo-color, var(--vhi-yellow)) !important;
    font-family: var(--vhi-header-logo-font-family);
    font-size: var(--vhi-header-logo-size);
    letter-spacing: var(--vhi-header-logo-letter-spacing);
    line-height: 1;
    font-weight: var(--vhi-header-logo-font-weight);
    white-space: nowrap;
    z-index: 2;
    display: inline-flex;
    align-items: center;
}
.vhi-brand img {
    display: block;
    width: var(--vhi-header-logo-image-width);
    max-width: 100%;
    max-height: var(--vhi-header-logo-image-max-height);
    height: auto;
    object-fit: contain;
    image-rendering: auto;
    -ms-interpolation-mode: bicubic;
}

.vhi-svg-logo,
.vhi-logo-object {
    display: block;
    width: var(--vhi-header-logo-image-width);
    max-width: 100%;
    max-height: var(--vhi-header-logo-image-max-height);
    line-height: 0;
}
.vhi-svg-logo svg,
.vhi-logo-object,
.vhi-logo-object img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: var(--vhi-header-logo-image-max-height);
}
.vhi-svg-logo svg {
    overflow: visible;
}
.vhi-nav {
    display: flex;
    align-items: center;
    gap: var(--vhi-header-nav-gap);
    font-family: var(--vhi-header-nav-font-family);
    font-size: var(--vhi-header-nav-size);
    letter-spacing: var(--vhi-header-nav-letter-spacing);
    font-weight: var(--vhi-header-nav-font-weight);
}
.vhi-nav a {
    color: var(--vhi-header-nav-color, #ffffff) !important;
}
.vhi-nav-button {
    min-height: var(--vhi-header-button-height);
    padding: 0 var(--vhi-header-button-padding-x);
    border-radius: var(--vhi-header-button-radius);
    background: var(--vhi-header-button-bg, var(--vhi-yellow));
    color: var(--vhi-header-button-text, #000000) !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--vhi-header-button-font-family);
    font-size: var(--vhi-header-button-font-size);
    letter-spacing: var(--vhi-header-button-letter-spacing);
    font-weight: var(--vhi-header-button-font-weight);
}
.vhi-main {
    display: grid;
    grid-template-columns: var(--vhi-left-column) 1fr;
    min-height: var(--vhi-hero-min-height);
}
.vhi-left {
    position: relative;
    background: var(--vhi-hero-area-bg, var(--vhi-yellow));
    min-height: var(--vhi-hero-min-height);
    overflow: hidden;
}
.vhi-left-content {
    position: relative;
    min-height: var(--vhi-hero-min-height);
    width: 100%;
}
.vhi-hero-rotator {
    position: absolute;
    top: var(--vhi-phrase-anchor-y);
    left: var(--vhi-phrase-anchor-x);
    transform: translate(var(--vhi-phrase-translate-x), var(--vhi-phrase-translate-y)) translate(var(--vhi-phrase-offset-x), var(--vhi-phrase-offset-y));
    width: min(var(--vhi-hero-phrase-max-width), calc(100% - 48px));
    min-height: calc(var(--vhi-hero-phrase-font-size) * 2.15);
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    overflow: visible;
}
.vhi-hero-phrase {
    width: 100%;
    display: flex;
    flex-direction: column;
    color: var(--vhi-hero-phrase-color, #ffffff);
    background: var(--vhi-hero-phrase-bg-color, rgba(0,0,0,0));
    padding: var(--vhi-hero-phrase-bg-padding-y, 0) var(--vhi-hero-phrase-bg-padding-x, 0);
    border-radius: var(--vhi-hero-phrase-bg-radius, 0);
    font-family: var(--vhi-hero-phrase-font-family);
    font-size: var(--vhi-current-phrase-size, var(--vhi-hero-phrase-font-size)) !important;
    line-height: var(--vhi-hero-phrase-line-height) !important;
    letter-spacing: var(--vhi-hero-phrase-letter-spacing) !important;
    font-weight: var(--vhi-hero-phrase-font-weight) !important;
    text-transform: uppercase;
    opacity: 0;
    transform: translate3d(0, var(--vhi-motion-distance), 0);
    will-change: transform, opacity;
    transition-property: opacity, transform;
    transition-timing-function: cubic-bezier(.22, .61, .36, 1);
}
.vhi-phrase-main-text {
    display: flex;
    flex-direction: column;
    width: 100%;
}
.vhi-hero-phrase .vhi-phrase-line {
    display: block;
    line-height: inherit;
    max-width: 100%;
}
.vhi-phrase-subtext {
    display: block;
    margin-top: var(--vhi-subphrase-margin-top, 22px);
    color: var(--vhi-subphrase-color, currentColor);
    font-family: var(--vhi-subphrase-font-family, Arial, Helvetica, sans-serif);
    font-size: var(--vhi-subphrase-font-size, 30px);
    line-height: var(--vhi-subphrase-line-height, 130%);
    letter-spacing: var(--vhi-subphrase-letter-spacing, 1px);
    font-weight: var(--vhi-subphrase-font-weight, 400);
    text-transform: none;
    opacity: 0;
    transition: opacity var(--vhi-subphrase-fade-ms, 700ms) ease;
}
.vhi-hero-phrase.is-sub-visible .vhi-phrase-subtext {
    opacity: 1;
}

.vhi-hero-phrase.vhi-phrase-fit .vhi-phrase-line {
    white-space: nowrap;
}
.vhi-hero-phrase .vhi-phrase-line span {
    display: inline;
    line-height: inherit;
}
.vhi-hero-phrase.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}
.vhi-hero-phrase.is-entering.vhi-direction-up { transform: translate3d(0, var(--vhi-motion-distance), 0); }
.vhi-hero-phrase.is-leaving.vhi-direction-up { transform: translate3d(0, calc(var(--vhi-motion-distance) * -1), 0); }
.vhi-hero-phrase.is-entering.vhi-direction-down { transform: translate3d(0, calc(var(--vhi-motion-distance) * -1), 0); }
.vhi-hero-phrase.is-leaving.vhi-direction-down { transform: translate3d(0, var(--vhi-motion-distance), 0); }
.vhi-hero-phrase.is-entering.vhi-direction-left { transform: translate3d(var(--vhi-motion-distance), 0, 0); }
.vhi-hero-phrase.is-leaving.vhi-direction-left { transform: translate3d(calc(var(--vhi-motion-distance) * -1), 0, 0); }
.vhi-hero-phrase.is-entering.vhi-direction-right { transform: translate3d(calc(var(--vhi-motion-distance) * -1), 0, 0); }
.vhi-hero-phrase.is-leaving.vhi-direction-right { transform: translate3d(var(--vhi-motion-distance), 0, 0); }
.vhi-copy {
    position: absolute;
    top: var(--vhi-copy-top);
    left: var(--vhi-copy-left);
    width: min(var(--vhi-copy-max-width), calc(100% - var(--vhi-copy-left) - 24px));
    margin: 0;
    color: rgba(0,0,0,.82);
    font-size: var(--vhi-copy-font-size);
    letter-spacing: var(--vhi-copy-letter-spacing);
    line-height: var(--vhi-copy-line-height);
    font-weight: 400;
}
.vhi-right {
    min-height: var(--vhi-hero-min-height);
    background: var(--vhi-light);
    padding: var(--vhi-right-padding-top) var(--vhi-right-padding-right) var(--vhi-right-padding-bottom) var(--vhi-right-padding-left);
    display: flex;
    align-items: flex-start;
    justify-content: center;
}
.vhi-form-card {
    width: min(100%, var(--vhi-form-card-width));
    margin: 0 auto;
    text-align: center;
}
.vhi-form-eyebrow {
    margin: 0 0 12px;
    color: #61676b;
    font-size: var(--vhi-form-eyebrow-size);
    letter-spacing: var(--vhi-form-eyebrow-letter-spacing);
    line-height: 1.2;
    font-weight: 800;
}
.vhi-form-title {
    margin: 0 0 var(--vhi-form-gap-after-title);
    color: #000000;
    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
    font-size: var(--vhi-form-title-size);
    letter-spacing: var(--vhi-form-title-letter-spacing);
    line-height: var(--vhi-form-title-line-height);
    font-weight: 900;
    text-transform: none;
}
.vhi-form-shortcode form,
.vhi-form-shortcode .wpcf7-form,
.vhi-form-shortcode .wpforms-form {
    margin: 0 !important;
    padding: 0 !important;
}
.vhi-form-shortcode form p,
.vhi-form-shortcode .wpcf7-form p,
.vhi-form-shortcode label,
.vhi-form-shortcode .wpcf7-form-control-wrap,
.vhi-form-shortcode .wpforms-field,
.vhi-form-shortcode .elementor-field-group,
.vhi-form-shortcode .forminator-row,
.vhi-form-shortcode .forminator-field,
.vhi-form-shortcode .nf-field-container,
.vhi-form-shortcode .gfield {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 1.15 !important;
}
.vhi-form-shortcode form p,
.vhi-form-shortcode .wpcf7-form p,
.vhi-form-shortcode .wpforms-field,
.vhi-form-shortcode .elementor-field-group,
.vhi-form-shortcode .forminator-row,
.vhi-form-shortcode .nf-field-container,
.vhi-form-shortcode .gfield {
    margin-top: 0 !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    margin-bottom: 0 !important;
}
.vhi-form-shortcode label,
.vhi-form-shortcode .wpcf7-form-control-wrap {
    display: block !important;
    margin: 0 !important;
}
.vhi-form-shortcode br {
    display: none !important;
}
.vhi-form-shortcode input[type="text"],
.vhi-form-shortcode input[type="email"],
.vhi-form-shortcode input[type="tel"],
.vhi-form-shortcode input[type="url"],
.vhi-form-shortcode input[type="number"],
.vhi-form-shortcode select,
.vhi-form-shortcode textarea {
    width: 100% !important;
    min-height: var(--vhi-form-field-height) !important;
    margin-top: 0 !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    margin-bottom: var(--vhi-form-field-gap) !important;
    border: 0 !important;
    border-radius: var(--vhi-form-field-radius) !important;
    background: #eeeeee !important;
    box-shadow: none !important;
    padding: 0 22px !important;
    color: #1d2327 !important;
    font-size: var(--vhi-form-field-font-size) !important;
    letter-spacing: var(--vhi-form-field-letter-spacing) !important;
}
.vhi-form-shortcode textarea {
    min-height: calc(var(--vhi-form-field-height) * 2.2) !important;
    padding-top: 18px !important;
}
.vhi-form-shortcode input[type="checkbox"] {
    margin-right: 10px !important;
    margin-bottom: var(--vhi-form-field-gap) !important;
}
.vhi-form-shortcode input[type="submit"],
.vhi-form-shortcode button[type="submit"],
.vhi-form-shortcode .wpforms-submit {
    width: 100% !important;
    min-height: var(--vhi-form-button-height) !important;
    border: 0 !important;
    border-radius: var(--vhi-form-button-radius) !important;
    background: var(--vhi-form-button-bg, var(--vhi-yellow)) !important;
    color: var(--vhi-form-button-text, #000000) !important;
    font-size: var(--vhi-form-button-font-size) !important;
    letter-spacing: var(--vhi-form-button-letter-spacing) !important;
    font-weight: 900 !important;
    cursor: pointer;
}
.vhi-missing-form {
    padding: 32px;
    text-align: left;
    background: #eeeeea;
    border-radius: 14px;
    font-size: 18px;
    line-height: 1.5;
}
.vhi-missing-form span {
    display: block;
    margin-top: 16px;
    color: #4f565a;
    font-size: 16px;
}
.vhi-footer {
    background: var(--vhi-footer-bg, var(--vhi-black));
    color: var(--vhi-footer-text-color, rgba(255,255,255,.82));
    padding: var(--vhi-footer-padding-y) var(--vhi-footer-padding-x);
    min-height: var(--vhi-footer-min-height, 78px);
    display: flex;
    align-items: center;
}
.vhi-footer > .vhi-footer-inner {
    width: 100%;
}
.vhi-footer-inner {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 34px;
}
.vhi-footer-copy {
    font-size: var(--vhi-footer-text-size);
    letter-spacing: var(--vhi-footer-text-letter-spacing);
}
.vhi-footer-links {
    color: var(--vhi-footer-link-color, #ffffff);
    display: flex;
    gap: 28px;
    font-size: var(--vhi-footer-link-size);
    letter-spacing: var(--vhi-footer-link-letter-spacing);
}
.vhi-footer-links a,
.vhi-footer-links a:visited,
.vhi-footer-links a:hover,
.vhi-footer-links a:focus {
    color: var(--vhi-footer-link-color, #ffffff) !important;
    text-decoration: none !important;
}
.vhi-footer-social {
    color: var(--vhi-footer-social-color, #ffffff);
    display: flex;
    gap: 18px;
    font-size: var(--vhi-footer-social-size);
    letter-spacing: var(--vhi-footer-social-letter-spacing);
    font-weight: 800;
}
.vhi-footer-social a,
.vhi-footer-social a:visited,
.vhi-footer-social a:hover,
.vhi-footer-social a:focus {
    color: var(--vhi-footer-social-color, #ffffff) !important;
    text-decoration: none !important;
}
@media (max-width: 900px) {
    .vhi-header-inner {
        min-height: var(--vhi-header-mobile-height, var(--vhi-header-height));
        padding: 0 24px;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
    }
    .vhi-brand {
        align-self: var(--vhi-header-logo-mobile-align, flex-start);
        text-align: var(--vhi-header-logo-mobile-text-align, left);
        font-size: var(--vhi-header-logo-mobile-size, var(--vhi-header-logo-size));
    }
    .vhi-brand img,
    .vhi-svg-logo,
    .vhi-logo-object,
    .vhi-svg-logo svg,
    .vhi-logo-object img {
        max-height: var(--vhi-header-logo-image-mobile-max-height, var(--vhi-header-logo-image-max-height));
    }
    .vhi-nav {
        flex-wrap: wrap;
        gap: 18px;
    }
    .vhi-main {
        grid-template-columns: 1fr;
        min-height: auto;
    }
    .vhi-left,
    .vhi-left-content {
        min-height: var(--vhi-hero-mobile-min-height);
    }
    .vhi-hero-rotator {
        top: var(--vhi-mobile-phrase-anchor-y);
        left: var(--vhi-mobile-phrase-anchor-x);
        transform: translate(var(--vhi-mobile-phrase-translate-x), var(--vhi-mobile-phrase-translate-y)) translate(var(--vhi-mobile-phrase-offset-x), var(--vhi-mobile-phrase-offset-y)) translateY(var(--vhi-mobile-phrase-header-gap, 0px));
        width: min(var(--vhi-hero-phrase-mobile-max-width), calc(100% - 24px));
        min-height: auto;
    }
    .vhi-hero-phrase {
        font-size: var(--vhi-current-phrase-mobile-size, var(--vhi-hero-phrase-mobile-size)) !important;
        line-height: var(--vhi-hero-phrase-mobile-line-height) !important;
    }
    .vhi-phrase-subtext {
        font-size: var(--vhi-subphrase-mobile-size, 20px);
    }
    .vhi-copy {
        left: 24px;
        top: calc(var(--vhi-copy-top) * .72);
        width: calc(100% - 48px);
    }
    .vhi-right {
        min-height: auto;
        padding: var(--vhi-mobile-right-padding-top) var(--vhi-mobile-right-padding-right) var(--vhi-mobile-right-padding-bottom) var(--vhi-mobile-right-padding-left);
    }
    .vhi-form-title {
        font-size: var(--vhi-mobile-form-title-size);
        line-height: var(--vhi-mobile-form-title-line-height);
    }
    .vhi-form-shortcode input[type="text"],
    .vhi-form-shortcode input[type="email"],
    .vhi-form-shortcode input[type="tel"],
    .vhi-form-shortcode input[type="url"],
    .vhi-form-shortcode input[type="number"],
    .vhi-form-shortcode select,
    .vhi-form-shortcode textarea,
    .vhi-form-shortcode input[type="checkbox"] {
        margin-bottom: var(--vhi-mobile-form-field-gap) !important;
    }
    .vhi-footer {
        min-height: var(--vhi-footer-mobile-min-height, 96px);
    }
    .vhi-footer-inner {
        grid-template-columns: 1fr;
        gap: 16px;
    }
}

.vhi-page-shell {
    min-height: auto;
    background: #ffffff;
}
.vhi-shell-content {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;
    padding: 70px 0;
    background: #ffffff;
    color: #111111;
    font-family: Arial, Helvetica, sans-serif;
}
.vhi-page-shell .vhi-shell-content a {
    text-decoration: underline;
}
.vhi-page-shell .vhi-shell-content img {
    max-width: 100%;
    height: auto;
}
.vhi-footer-links {
    flex-wrap: wrap;
    justify-content: center;
}
@media (max-width: 900px) {
    .vhi-shell-content {
        width: min(100%, calc(100% - 36px));
        padding: 44px 0;
    }
}

/* v1.0.15 — modo ecrã total: remove o rebordo branco criado por containers do tema */
.vhi-full-bleed {
    position: relative;
    left: 50%;
    right: 50%;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: -50vw !important;
    margin-right: -50vw !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
.vhi-full-bleed .vhi-header,
.vhi-full-bleed .vhi-main,
.vhi-full-bleed .vhi-footer {
    width: 100% !important;
    max-width: none !important;
}
body:has(.vhi-remove-theme-spacing) {
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
}
body:has(.vhi-remove-theme-spacing) #page,
body:has(.vhi-remove-theme-spacing) .site,
body:has(.vhi-remove-theme-spacing) .site-content,
body:has(.vhi-remove-theme-spacing) .content-area,
body:has(.vhi-remove-theme-spacing) .site-main,
body:has(.vhi-remove-theme-spacing) article,
body:has(.vhi-remove-theme-spacing) .page,
body:has(.vhi-remove-theme-spacing) .hentry,
body:has(.vhi-remove-theme-spacing) .entry-content,
body:has(.vhi-remove-theme-spacing) .page-content,
body:has(.vhi-remove-theme-spacing) .wp-site-blocks,
body:has(.vhi-remove-theme-spacing) .is-layout-constrained,
body:has(.vhi-remove-theme-spacing) .is-layout-flow,
body:has(.vhi-remove-theme-spacing) .elementor,
body:has(.vhi-remove-theme-spacing) .elementor-section,
body:has(.vhi-remove-theme-spacing) .elementor-container,
body:has(.vhi-remove-theme-spacing) .elementor-widget-container {
    max-width: none !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
body:has(.vhi-remove-theme-spacing) .entry-content,
body:has(.vhi-remove-theme-spacing) .page-content,
body:has(.vhi-remove-theme-spacing) .site-main,
body:has(.vhi-remove-theme-spacing) article {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
body:has(.vhi-remove-theme-spacing) .entry-header,
body:has(.vhi-remove-theme-spacing) .page-header,
body:has(.vhi-remove-theme-spacing) .entry-title {
    display: none !important;
}
body:has(.vhi-remove-theme-spacing) #main,
body:has(.vhi-remove-theme-spacing) #primary,
body:has(.vhi-remove-theme-spacing) #content,
body:has(.vhi-remove-theme-spacing) .main-content,
body:has(.vhi-remove-theme-spacing) .content,
body:has(.vhi-remove-theme-spacing) .container,
body:has(.vhi-remove-theme-spacing) .container-fluid,
body:has(.vhi-remove-theme-spacing) .wrapper,
body:has(.vhi-remove-theme-spacing) .wrap,
body:has(.vhi-remove-theme-spacing) .row,
body:has(.vhi-remove-theme-spacing) .vc_row,
body:has(.vhi-remove-theme-spacing) .vc_column_container,
body:has(.vhi-remove-theme-spacing) .vc_column-inner,
body:has(.vhi-remove-theme-spacing) .wpb_wrapper,
body:has(.vhi-remove-theme-spacing) .haru-page-content,
body:has(.vhi-remove-theme-spacing) .haru-content-main,
body:has(.vhi-remove-theme-spacing) .haru-main,
body:has(.vhi-remove-theme-spacing) .haru-container {
    max-width: none !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
body:has(.vhi-remove-theme-spacing) #main,
body:has(.vhi-remove-theme-spacing) #primary,
body:has(.vhi-remove-theme-spacing) #content,
body:has(.vhi-remove-theme-spacing) .main-content,
body:has(.vhi-remove-theme-spacing) .content,
body:has(.vhi-remove-theme-spacing) .haru-page-content,
body:has(.vhi-remove-theme-spacing) .haru-content-main,
body:has(.vhi-remove-theme-spacing) .haru-main {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}


/* v1.0.16 — remove também margens verticais acima do header e abaixo do footer */
html:has(.vhi-remove-theme-spacing),
body:has(.vhi-remove-theme-spacing),
html.vhi-force-full-screen,
body.vhi-force-full-screen {
    margin: 0 !important;
    padding: 0 !important;
    min-height: 100% !important;
    overflow-x: hidden !important;
}
html:has(.vhi-remove-theme-spacing) body {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
body.vhi-force-full-screen .vhi-page,
body:has(.vhi-remove-theme-spacing) .vhi-page {
    display: block !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
body.vhi-force-full-screen .vhi-page > .vhi-header:first-child,
body:has(.vhi-remove-theme-spacing) .vhi-page > .vhi-header:first-child {
    margin-top: 0 !important;
}
body.vhi-force-full-screen .vhi-page > .vhi-footer:last-child,
body:has(.vhi-remove-theme-spacing) .vhi-page > .vhi-footer:last-child {
    margin-bottom: 0 !important;
}
body.vhi-force-full-screen #page,
body.vhi-force-full-screen .site,
body.vhi-force-full-screen .site-content,
body.vhi-force-full-screen .content-area,
body.vhi-force-full-screen .site-main,
body.vhi-force-full-screen article,
body.vhi-force-full-screen .page,
body.vhi-force-full-screen .hentry,
body.vhi-force-full-screen .entry-content,
body.vhi-force-full-screen .page-content,
body.vhi-force-full-screen .wp-site-blocks,
body.vhi-force-full-screen .is-layout-constrained,
body.vhi-force-full-screen .is-layout-flow,
body.vhi-force-full-screen .elementor,
body.vhi-force-full-screen .elementor-section,
body.vhi-force-full-screen .elementor-container,
body.vhi-force-full-screen .elementor-widget-container,
body.vhi-force-full-screen #main,
body.vhi-force-full-screen #primary,
body.vhi-force-full-screen #content,
body.vhi-force-full-screen .main-content,
body.vhi-force-full-screen .content,
body.vhi-force-full-screen .container,
body.vhi-force-full-screen .container-fluid,
body.vhi-force-full-screen .wrapper,
body.vhi-force-full-screen .wrap,
body.vhi-force-full-screen .row,
body.vhi-force-full-screen .vc_row,
body.vhi-force-full-screen .vc_column_container,
body.vhi-force-full-screen .vc_column-inner,
body.vhi-force-full-screen .wpb_wrapper,
body.vhi-force-full-screen .haru-page-content,
body.vhi-force-full-screen .haru-content-main,
body.vhi-force-full-screen .haru-main,
body.vhi-force-full-screen .haru-container,
body:has(.vhi-remove-theme-spacing) .theme-page,
body:has(.vhi-remove-theme-spacing) .site-wrapper,
body:has(.vhi-remove-theme-spacing) .main-wrapper {
    max-width: none !important;
    width: 100% !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
body.vhi-force-full-screen .entry-header,
body.vhi-force-full-screen .page-header,
body.vhi-force-full-screen .entry-title {
    display: none !important;
}
body.vhi-force-full-screen p:empty,
body:has(.vhi-remove-theme-spacing) p:empty {
    display: none !important;
}
body.vhi-force-full-screen .vhi-full-bleed,
body:has(.vhi-remove-theme-spacing) .vhi-full-bleed {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* v1.0.17 — remove moldura branca mesmo quando o tema coloca margin/padding/border no body antes do shortcode */
html.vhi-force-full-screen,
body.vhi-force-full-screen,
body.vhi-kill-theme-frame {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 100% !important;
    overflow-x: hidden !important;
}
body.vhi-force-full-screen::before,
body.vhi-force-full-screen::after,
html.vhi-force-full-screen::before,
html.vhi-force-full-screen::after {
    display: none !important;
    content: none !important;
}
body.vhi-force-full-screen > *:first-child,
body.vhi-force-full-screen #page:first-child,
body.vhi-force-full-screen .site:first-child,
body.vhi-force-full-screen .wp-site-blocks:first-child {
    margin-top: 0 !important;
    padding-top: 0 !important;
    border-top: 0 !important;
}
body.vhi-force-full-screen > *:last-child,
body.vhi-force-full-screen #page:last-child,
body.vhi-force-full-screen .site:last-child,
body.vhi-force-full-screen .wp-site-blocks:last-child {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    border-bottom: 0 !important;
}
body.vhi-force-full-screen .vhi-page,
body.vhi-force-full-screen .vhi-full-bleed {
    top: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
}
body.vhi-force-full-screen #page,
body.vhi-force-full-screen .site,
body.vhi-force-full-screen .site-content,
body.vhi-force-full-screen .content-area,
body.vhi-force-full-screen .site-main,
body.vhi-force-full-screen article,
body.vhi-force-full-screen .page,
body.vhi-force-full-screen .hentry,
body.vhi-force-full-screen .entry-content,
body.vhi-force-full-screen .page-content,
body.vhi-force-full-screen .wp-site-blocks,
body.vhi-force-full-screen .elementor,
body.vhi-force-full-screen .elementor-section,
body.vhi-force-full-screen .elementor-container,
body.vhi-force-full-screen .elementor-widget-container,
body.vhi-force-full-screen .container,
body.vhi-force-full-screen .container-fluid,
body.vhi-force-full-screen .wrapper,
body.vhi-force-full-screen .wrap,
body.vhi-force-full-screen .theme-page,
body.vhi-force-full-screen .site-wrapper,
body.vhi-force-full-screen .main-wrapper,
body.vhi-kill-theme-frame #page,
body.vhi-kill-theme-frame .site,
body.vhi-kill-theme-frame .site-content {
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    max-width: none !important;
    width: 100% !important;
}


/* v1.0.18 — reforço contra molduras/top bars criadas pelo tema ou por parágrafos automáticos do WordPress */
html.vhi-force-full-screen,
body.vhi-force-full-screen,
body.vhi-kill-theme-frame {
    background: var(--vhi-black, #000000) !important;
}
body.vhi-force-full-screen > br,
body.vhi-force-full-screen > p:empty,
body.vhi-force-full-screen > div:empty,
body.vhi-force-full-screen .entry-content > br:first-child,
body.vhi-force-full-screen .entry-content > p:empty:first-child,
body.vhi-force-full-screen .entry-content > p:first-child:empty,
body.vhi-force-full-screen .page-content > br:first-child,
body.vhi-force-full-screen .page-content > p:empty:first-child,
body.vhi-force-full-screen .wpb_wrapper > p:empty:first-child,
body.vhi-force-full-screen .elementor-widget-container > p:empty:first-child {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}
body.vhi-force-full-screen .vhi-page,
body.vhi-kill-theme-frame .vhi-page {
    border-top: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}
body.vhi-force-full-screen .vhi-page.vhi-js-frame-corrected,
body.vhi-kill-theme-frame .vhi-page.vhi-js-frame-corrected {
    transition: none !important;
}


/* v1.0.19 — correção: páginas internas com header/footer não ficam com fundo preto global. */
.vhi-page-shell,
.vhi-page-shell.vhi-full-bleed {
    background: #ffffff !important;
    color: #111111 !important;
}
.vhi-page-shell .vhi-header {
    background: var(--vhi-header-bg, var(--vhi-black)) !important;
}
.vhi-page-shell .vhi-footer {
    background: var(--vhi-footer-bg, var(--vhi-black)) !important;
}
.vhi-page-shell .vhi-shell-content {
    background: #ffffff !important;
}


/* v1.0.34 — em monitores muito altos, a zona principal cresce e o footer deixa de ocupar o espaço livre */
.vhi-page {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
.vhi-page > .vhi-header,
.vhi-page > .vhi-footer {
    flex: 0 0 auto;
}
.vhi-page > .vhi-main {
    flex: 1 1 auto;
    align-items: stretch;
}
.vhi-page:not(.vhi-page-shell) > .vhi-main {
    min-height: var(--vhi-hero-min-height);
}
.vhi-page:not(.vhi-page-shell) .vhi-left,
.vhi-page:not(.vhi-page-shell) .vhi-right {
    min-height: 100%;
}
.vhi-page:not(.vhi-page-shell) .vhi-left-content {
    height: 100%;
    min-height: 100%;
}
body.vhi-force-full-screen .vhi-page:not(.vhi-page-shell) {
    background: var(--vhi-light, #f7f7f4) !important;
}
.vhi-page-shell .vhi-shell-content {
    flex: 1 0 auto;
}
@media (max-width: 900px) {
    .vhi-page > .vhi-main {
        flex: 0 0 auto;
    }
    .vhi-page:not(.vhi-page-shell) .vhi-left-content {
        min-height: var(--vhi-hero-mobile-min-height);
    }
}

/* v1.0.35 — força a página inicial a ocupar a altura visível em ecrãs grandes */
.vhi-page:not(.vhi-page-shell),
body.vhi-force-full-screen .vhi-page:not(.vhi-page-shell),
body.vhi-kill-theme-frame .vhi-page:not(.vhi-page-shell),
body:has(.vhi-remove-theme-spacing) .vhi-page:not(.vhi-page-shell) {
    min-height: 100vh !important;
    min-height: 100svh !important;
    display: flex !important;
    flex-direction: column !important;
    background: var(--vhi-light, #f7f7f4) !important;
}
.vhi-page:not(.vhi-page-shell) > .vhi-header,
.vhi-page:not(.vhi-page-shell) > .vhi-footer {
    flex: 0 0 auto !important;
}
.vhi-page:not(.vhi-page-shell) > .vhi-main,
body.vhi-force-full-screen .vhi-page:not(.vhi-page-shell) > .vhi-main,
body.vhi-kill-theme-frame .vhi-page:not(.vhi-page-shell) > .vhi-main,
body:has(.vhi-remove-theme-spacing) .vhi-page:not(.vhi-page-shell) > .vhi-main {
    flex: 1 1 auto !important;
    min-height: max(var(--vhi-hero-min-height), calc(100vh - var(--vhi-header-height) - var(--vhi-footer-min-height))) !important;
    min-height: max(var(--vhi-hero-min-height), calc(100svh - var(--vhi-header-height) - var(--vhi-footer-min-height))) !important;
    align-items: stretch !important;
}
body.admin-bar .vhi-page:not(.vhi-page-shell) > .vhi-main {
    min-height: max(var(--vhi-hero-min-height), calc(100vh - var(--wp-admin--admin-bar--height, 32px) - var(--vhi-header-height) - var(--vhi-footer-min-height))) !important;
    min-height: max(var(--vhi-hero-min-height), calc(100svh - var(--wp-admin--admin-bar--height, 32px) - var(--vhi-header-height) - var(--vhi-footer-min-height))) !important;
}
.vhi-page:not(.vhi-page-shell) > .vhi-main > .vhi-left,
.vhi-page:not(.vhi-page-shell) > .vhi-main > .vhi-right {
    min-height: 100% !important;
}
.vhi-page:not(.vhi-page-shell) .vhi-left-content {
    min-height: 100% !important;
    height: 100% !important;
}
@media (max-width: 900px) {
    .vhi-page:not(.vhi-page-shell),
    body.vhi-force-full-screen .vhi-page:not(.vhi-page-shell),
    body.vhi-kill-theme-frame .vhi-page:not(.vhi-page-shell),
    body:has(.vhi-remove-theme-spacing) .vhi-page:not(.vhi-page-shell) {
        min-height: auto !important;
        display: block !important;
    }
    .vhi-page:not(.vhi-page-shell) > .vhi-main,
    body.vhi-force-full-screen .vhi-page:not(.vhi-page-shell) > .vhi-main,
    body.vhi-kill-theme-frame .vhi-page:not(.vhi-page-shell) > .vhi-main,
    body:has(.vhi-remove-theme-spacing) .vhi-page:not(.vhi-page-shell) > .vhi-main {
        min-height: auto !important;
        display: grid !important;
    }
    .vhi-page:not(.vhi-page-shell) > .vhi-main > .vhi-left,
    .vhi-page:not(.vhi-page-shell) .vhi-left-content {
        min-height: var(--vhi-hero-mobile-min-height) !important;
        height: auto !important;
    }
    .vhi-page:not(.vhi-page-shell) > .vhi-main > .vhi-right {
        min-height: auto !important;
    }
}

/* v1.0.36 — escala automática das proporções em monitores grandes.
   Os valores das variáveis são recalculados por JavaScript; esta variável fica como fallback. */
.vhi-page {
    --vhi-fluid-scale: 1;
}
@media (max-width: 900px) {
    .vhi-page {
        --vhi-fluid-scale: 1 !important;
    }
}

/* v1.0.41 — altura ajustável do footer e header fixo opcional */

/* v1.0.53 — wrappers de injeção não podem ocupar 100vh.
   A versão anterior reutilizava .vhi-page no footer injetado; isso criava uma área branca grande por baixo do footer. */
.vhi-injected-shell,
.vhi-injected-shell * {
    box-sizing: border-box;
}
.vhi-injected-shell {
    --vhi-fluid-scale: 1;
    width: 100%;
    min-height: 0 !important;
    height: auto !important;
    display: block !important;
    flex: 0 0 auto !important;
    clear: both !important;
    overflow: visible !important;
    background: transparent !important;
    color: var(--vhi-black, #050505);
    font-family: Arial, Helvetica, sans-serif;
    line-height: normal;
}
.vhi-injected-shell.vhi-full-bleed {
    min-height: 0 !important;
    height: auto !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
.vhi-injected-shell > .vhi-header,
.vhi-injected-shell > .vhi-footer {
    width: 100% !important;
    max-width: none !important;
}
.vhi-url-injected-footer,
.vhi-shortcode-footer {
    min-height: 0 !important;
    height: auto !important;
}
.vhi-url-injected-footer > .vhi-footer,
.vhi-shortcode-footer > .vhi-footer {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* v1.0.55 — sticky separado desktop/mobile, alturas independentes e links do footer blindados contra CSS do tema. */
