/* Ajustes responsivos do site público e do header. */
html,
body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
}

img,
iframe,
video {
    max-width: 100%;
}

.site-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    min-width: 40px;
    border: 1px solid rgba(255,255,255,.34);
    border-radius: 10px;
    color: #fff;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.site-social-link svg {
    display: block;
    width: 21px;
    height: 21px;
}

.site-social-link:hover,
.site-social-link:focus-visible {
    color: #ffab40;
    border-color: rgba(255,171,64,.75);
    background: rgba(255,255,255,.08);
}

.site-social-link-menu {
    color: #a10004;
    border-color: rgba(161,0,4,.22);
    background: #fff;
}

.site-social-link-menu:hover,
.site-social-link-menu:focus-visible {
    color: #a10004;
    border-color: rgba(161,0,4,.45);
    background: #fff5e8;
}

@media (min-width: 1024px) {
    .site-header-inner {
        display: grid !important;
        grid-template-columns: minmax(220px,1fr) auto minmax(260px,1fr);
        align-items: center;
        column-gap: 28px !important;
    }

    .site-header-logo-wrap {
        justify-self: start;
    }

    .site-header-logo {
        display: block;
        width: auto !important;
        height: 84px !important;
        max-width: 240px;
        object-fit: contain;
    }

    .site-header-desktop-nav {
        display: flex !important;
        align-items: center;
        justify-self: center;
        gap: 24px;
        white-space: nowrap;
    }

    .site-header-desktop-actions {
        display: flex !important;
        align-items: center;
        justify-self: end;
        gap: 10px;
    }
}

@media (max-width: 1023px) {
    .site-header-inner {
        display: flex !important;
        align-items: center;
        justify-content: space-between !important;
        gap: 12px !important;
        min-width: 0;
        padding: 10px 16px !important;
    }

    .site-header-logo-wrap {
        display: flex;
        align-items: center;
        flex: 1 1 auto;
        min-width: 0;
        max-width: calc(100% - 150px);
    }

    .site-header-logo {
        display: block;
        width: 210px !important;
        max-width: 100%;
        height: auto !important;
        max-height: 100px;
        object-fit: contain;
    }

    .site-header-mobile-actions {
        display: flex !important;
        align-items: center;
        justify-content: flex-end;
        gap: 7px;
        flex: 0 0 auto;
        margin-left: auto;
    }

    .site-menu-toggle {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        width: 46px !important;
        height: 46px !important;
        min-width: 46px !important;
        padding: 0 !important;
        border: 1px solid rgba(255,255,255,.42) !important;
        border-radius: 8px !important;
        color: #fff;
        background: transparent;
        cursor: pointer;
    }

    .site-menu-toggle:hover,
    .site-menu-toggle:focus-visible {
        background: rgba(255,255,255,.1);
        border-color: rgba(255,255,255,.7) !important;
    }

    .site-mobile-menu {
        width: 100%;
        max-width: 100vw;
        padding: 18px 16px !important;
        box-sizing: border-box;
    }

    .site-mobile-menu nav {
        display: grid;
        gap: 14px;
    }

    .site-mobile-menu-socials {
        display: flex !important;
        align-items: center;
        gap: 10px;
        margin-top: 18px;
        padding-top: 16px;
        border-top: 1px solid rgba(161,0,4,.1);
    }

    .site-mobile-menu a,
    .site-mobile-menu input {
        max-width: 100%;
    }

    .site-footer-content {
        min-width: 0;
    }

    .site-footer-logo {
        display: block;
        width: min(220px,55vw) !important;
        max-width: 100%;
        height: auto !important;
    }

    .site-footer-contact p,
    .site-footer-bottom p {
        overflow-wrap: anywhere;
    }
}

@media (max-width: 700px) {
    .site-header-logo-wrap {
        max-width: calc(100% - 144px);
    }

    .site-header-logo {
        width: 185px !important;
        max-height: 90px;
    }
}

@media (max-width: 450px) {
    .site-header-inner {
        gap: 6px !important;
        padding: 8px 10px !important;
    }

    .site-header-logo-wrap {
        max-width: calc(100% - 126px);
    }

    .site-header-logo {
        width: 165px !important;
        max-width: 44vw;
        max-height: 80px;
    }

    .site-social-link {
        width: 34px;
        height: 34px;
        min-width: 34px;
        border-radius: 8px;
    }

    .site-social-link svg {
        width: 18px;
        height: 18px;
    }

    .site-header-mobile-actions {
        gap: 5px;
    }

    .site-menu-toggle {
        width: 42px !important;
        height: 42px !important;
        min-width: 42px !important;
        border-radius: 7px !important;
    }

    .site-mobile-menu {
        padding: 16px 12px !important;
    }

    .site-footer-content {
        padding: 40px 16px !important;
    }

    .site-footer-logo {
        width: min(160px,48vw) !important;
        margin-left: auto;
        margin-right: auto;
        align-self: center !important;
    }

    .site-footer-nav {
        display: grid !important;
        grid-template-columns: repeat(2,minmax(0,1fr));
        width: 100%;
        gap: 10px 16px !important;
        text-align: center;
    }

    .site-footer-contact {
        grid-template-columns: 1fr !important;
        text-align: center;
    }

    .site-footer-bottom {
        align-items: center;
        text-align: center;
    }
}

@media (max-width: 375px) {
    .site-header-logo-wrap {
        max-width: calc(100% - 116px);
    }

    .site-header-logo {
        width: 150px !important;
        max-width: 43vw;
    }

    .site-header-inner {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }

    .site-footer-nav {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 340px) {
    .site-header-logo-wrap {
        max-width: calc(100% - 108px);
    }

    .site-header-logo {
        width: 138px !important;
        max-width: 43vw;
        max-height: 70px;
    }

    .site-social-link {
        width: 30px;
        height: 30px;
        min-width: 30px;
    }

    .site-social-link svg {
        width: 16px;
        height: 16px;
    }

    .site-menu-toggle {
        width: 38px !important;
        height: 38px !important;
        min-width: 38px !important;
    }
}

/* Busca visível no header e acabamento do rodapé desktop. */
#site-search,
#mobile-site-search {
    background: #ffffff !important;
    color: #3d241c !important;
    border: 2px solid #d5a33b !important;
    box-shadow: 0 0 0 1px rgba(213, 163, 59, .10);
}

#site-search::placeholder,
#mobile-site-search::placeholder {
    color: #745b50 !important;
    opacity: 1 !important;
}

#site-search:focus,
#mobile-site-search:focus {
    border-color: #f0b94b !important;
    box-shadow: 0 0 0 3px rgba(240, 185, 75, .22) !important;
}

.site-footer-bottom {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important;
    align-items: center !important;
    column-gap: 28px !important;
}

.site-footer-bottom > p:first-child {
    justify-self: start;
    text-align: left;
}

.site-footer-bottom > p:nth-child(2) {
    justify-self: center;
    text-align: center;
    white-space: nowrap;
}

.site-footer-bottom > div {
    justify-self: end;
    display: flex !important;
    align-items: center;
    justify-content: flex-end;
    gap: 10px !important;
}

.site-footer-bottom > div > a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 10px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 9px;
    color: rgba(255,255,255,.82);
    text-decoration: none;
    transition: color .2s ease, border-color .2s ease, background-color .2s ease;
}

/* Ícone do Instagram desenhado em CSS, mantendo o texto do link. */
.site-footer-bottom > div > a:first-child::before {
    content: "";
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    border: 2px solid currentColor;
    border-radius: 5px;
    box-sizing: border-box;
    background:
        radial-gradient(circle at 50% 50%, transparent 0 3px, currentColor 3px 4px, transparent 4px),
        radial-gradient(circle at 72% 28%, currentColor 0 1.2px, transparent 1.3px);
}

/* Ícone do Facebook ao lado do texto. */
.site-footer-bottom > div > a:last-child::before {
    content: "f";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    font-size: 19px;
    line-height: 18px;
    font-weight: 800;
    font-family: Arial, sans-serif;
    color: currentColor;
}

.site-footer-bottom > div > a:hover,
.site-footer-bottom > div > a:focus-visible {
    color: #ffffff;
    border-color: rgba(255,255,255,.42);
    background: rgba(255,255,255,.07);
}

@media (max-width: 767px) {
    .site-footer-bottom {
        display: flex !important;
        flex-direction: column;
        align-items: center !important;
        gap: 12px;
        text-align: center;
    }

    .site-footer-bottom > p:first-child,
    .site-footer-bottom > p:nth-child(2),
    .site-footer-bottom > div {
        justify-self: auto;
        text-align: center;
    }

    .site-footer-bottom > div {
        justify-content: center;
        flex-wrap: wrap;
    }
}
