/* MaisLocal — estilos base e componentes do protótipo. */
/* 1. Base visual original; 2. Componentes, blocos e breakpoints do protótipo. */

/* ===== MaisLocal Vale de Santarém / Home ===== */

:root {
    --bg: #f5f0e8;
    --bg2: #ede8dc;
    --surface: #faf7f2;
    --ink: #1c1712;
    --ink-soft: #6b6458;
    --gold: #b8860b;
    --gold-lt: #d4a820;
    --gold-pale: #f0e4b8;
    --border: rgba(28,23,18,.1);
    --border2: rgba(28,23,18,.18);
    --radius: 6px;
    --nav-h: 64px;
}

*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: 'DM Sans', sans-serif;
    background: var(--bg);
    color: var(--ink);
    overflow-x: hidden;
}

a {
    text-decoration: none;
    color: inherit;
}

img {
    display: block;
    max-width: 100%;
}

::-webkit-scrollbar {
    width: 5px;
}

::-webkit-scrollbar-track {
    background: var(--bg2);
}

::-webkit-scrollbar-thumb {
    background: var(--border2);
    border-radius: 3px;
}

.site-header {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 310;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 40px 10px;
    gap: 16px;
    background: linear-gradient(to bottom, rgba(28,23,18,.74) 0%, rgba(28,23,18,.42) 64%, rgba(28,23,18,0) 100%);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.site-logo {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    flex-shrink: 0;
}

    .site-logo img {
        display: block;
        height: 60px;
        width: auto;
        max-height: none;
    }

.site-lang {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.lang-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 40px;
    padding: 8px 12px;
    border: 1px solid rgba(255,255,255,.55);
    background: rgba(255,255,255,.86);
    color: #111;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .04em;
    cursor: pointer;
    backdrop-filter: blur(8px);
    transition: .2s ease;
}

    .lang-pill:hover {
        background: #fff;
        border-color: #fff;
    }

    .lang-pill.active,
    .lang-pill.is-active,
    .lang-pill[aria-current="true"] {
        background: var(--gold);
        color: #fff;
        border-color: var(--gold);
    }

    .lang-pill.active:hover,
    .lang-pill.is-active:hover,
    .lang-pill[aria-current="true"]:hover {
        background: var(--gold-lt);
        border-color: var(--gold-lt);
    }

.lang-flag {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
    box-shadow: 0 0 0 1px rgba(0,0,0,.15);
}

nav {
    position: absolute;
    top: 84px;
    left: 0;
    right: 0;
    z-index: 300;
    display: flex;
    align-items: center;
    padding: 0 40px;
    height: var(--nav-h);
    background: var(--ink);
    box-shadow: 0 2px 24px rgba(0,0,0,.25);
}

.nav-links {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
}

.nav-link {
    font-size: 15px;
    font-weight: 500;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: rgba(255,255,255,.72);
    padding: 7px 13px;
    border-radius: var(--radius);
    transition: color .2s, background .2s;
    background: none;
    border: none;
    cursor: pointer;
}

    .nav-link:hover {
        color: #fff;
        background: rgba(255,255,255,.08);
    }

.nav-cta {
    margin-left: 10px;
    padding: 8px 20px;
    border-radius: 999px;
    background: var(--gold);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: .07em;
    text-transform: uppercase;
    border: none;
    cursor: pointer;
    transition: background .2s, transform .15s;
    white-space: nowrap;
}

    .nav-cta:hover {
        background: var(--gold-lt);
        transform: translateY(-1px);
    }

.nav-burger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 38px;
    height: 38px;
    margin-left: auto;
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px;
}

    .nav-burger span {
        display: block;
        height: 2px;
        background: #fff;
        border-radius: 2px;
        transition: transform .3s, opacity .3s;
        transform-origin: center;
    }

    .nav-burger.open span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    .nav-burger.open span:nth-child(2) {
        opacity: 0;
    }

    .nav-burger.open span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }

.nav-drawer {
    display: none;
    position: fixed;
    top: calc(84px + var(--nav-h));
    left: 0;
    right: 0;
    background: var(--ink);
    z-index: 299;
    padding: 16px 20px 24px;
    border-top: 1px solid rgba(255,255,255,.08);
    flex-direction: column;
    gap: 2px;
    box-shadow: 0 8px 32px rgba(0,0,0,.3);
}

    .nav-drawer.open {
        display: flex;
    }

    .nav-drawer .nav-link {
        display: block;
        padding: 12px 16px;
        font-size: 17px;
        border-radius: var(--radius);
        color: rgba(255,255,255,.8);
    }

    .nav-drawer .nav-cta {
        display: block;
        text-align: center;
        margin: 10px 0 0;
        padding: 14px 20px;
        font-size: 16px;
        border-radius: 999px;
    }

.hero {
    position: relative;
    height: 100svh;
    min-height: 560px;
    overflow: hidden;
    margin-top: 0;
}

.slides {
    position: absolute;
    inset: 0;
}

.slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 1.2s ease;
    pointer-events: none;
}

    .slide.active {
        opacity: 1;
        pointer-events: auto;
    }

.slide-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transform: scale(1.07);
    transition: transform 7s ease;
}

.slide.active .slide-bg {
    transform: scale(1);
}

.slide-overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background: linear-gradient(to right, rgba(28,23,18,.86) 0%, rgba(28,23,18,.52) 52%, rgba(28,23,18,.18) 100%), linear-gradient(to top, rgba(28,23,18,.62) 0%, transparent 46%);
}

.slide-content {
    position: absolute;
    left: 9%;
    top: 50%;
    transform: translateY(-50%);
    max-width: 700px;
    z-index: 3;
}

.slide-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--gold-lt);
    margin-bottom: 20px;
}

    .slide-eyebrow::before {
        content: '';
        display: block;
        width: 28px;
        height: 1.5px;
        background: var(--gold-lt);
        flex-shrink: 0;
    }

.slide-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: max(14px, calc(clamp(36px, 5.5vw, 68px) + 3px));
    font-weight: 600;
    line-height: 1.08;
    color: #fff;
    margin-bottom: 20px;
    letter-spacing: -.01em;
}

    .slide-title em {
        color: var(--gold-pale);
    }

.slide-desc {
    font-size:15px;
    color: rgba(255,255,255,.76);
    line-height: 1.8;
    margin-bottom: 36px;
    max-width: 440px;
}

.slide-actions {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}

.btn-primary,
.btn-ghost {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 14px 28px;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: .07em;
    text-transform: uppercase;
    border-radius: 999px;
    cursor: pointer;
    white-space: nowrap;
}

.btn-primary {
    background: var(--gold);
    color: #fff;
    border: 2px solid var(--gold);
    box-shadow: 0 4px 20px rgba(184,134,11,.35);
}

    .btn-primary:hover {
        background: var(--gold-lt);
        border-color: var(--gold-lt);
        transform: translateY(-2px);
    }

.btn-ghost {
    background: transparent;
    color: #fff;
    border: 2px solid rgba(255,255,255,.4);
}

    .btn-ghost:hover {
        background: rgba(255,255,255,.1);
        border-color: rgba(255,255,255,.75);
        transform: translateY(-2px);
    }

.slider-nav {
    position: absolute;
    bottom: 36px;
    right: 44px;
    display: flex;
    align-items: center;
    gap: 14px;
    z-index: 10;
}

.slider-dots {
    display: flex;
    gap: 7px;
}

.dot-btn {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(255,255,255,.38);
    border: none;
    cursor: pointer;
    transition: all .3s;
    padding: 0;
}

    .dot-btn.active {
        width: 22px;
        border-radius: 3px;
        background: var(--gold-lt);
    }

.slide-counter {
    font-family: 'Cormorant Garamond', serif;
    font-size: 16px;
    color: rgba(255,255,255,.45);
    letter-spacing: .08em;
}

    .slide-counter strong {
        color: rgba(255,255,255,.88);
    }

.slider-arrows {
    display: flex;
    gap: 8px;
}

.arrow-btn {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1.5px solid rgba(255,255,255,.28);
    background: rgba(255,255,255,.06);
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all .2s;
    backdrop-filter: blur(6px);
}

    .arrow-btn:hover {
        background: rgba(255,255,255,.18);
        border-color: rgba(255,255,255,.65);
    }

.hero-progress {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 2px;
    background: var(--gold);
    z-index: 10;
    transition: width .08s linear;
}

.scroll-hint {
    position: absolute;
    bottom: 36px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    z-index: 10;
    opacity: .55;
}

    .scroll-hint span {
        font-size: 14px;
        letter-spacing: .16em;
        text-transform: uppercase;
        color: #fff;
    }

.scroll-mouse {
    width: 20px;
    height: 32px;
    border: 1.5px solid rgba(255,255,255,.45);
    border-radius: 999px;
    position: relative;
}

    .scroll-mouse::after {
        content: '';
        position: absolute;
        top: 5px;
        left: 50%;
        transform: translateX(-50%);
        width: 3px;
        height: 6px;
        background: #fff;
        border-radius: 999px;
        animation: scrollDot 2s infinite;
    }

@keyframes scrollDot {
    0%, 100% {
        top: 5px;
        opacity: 1;
    }

    70% {
        top: 14px;
        opacity: 0;
    }
}

.section {
    padding: 88px 0;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
}

.section-header {
    margin-bottom: 52px;
}

.section-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 12px;
}

    .section-eyebrow::before {
        content: '';
        display: block;
        width: 22px;
        height: 1.5px;
        background: var(--gold);
    }

.section-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: max(14px, calc(clamp(30px, 3.5vw, 46px) + 3px));
    font-weight: 600;
    line-height: 1.15;
    color: var(--ink);
    letter-spacing: -.01em;
}

    .section-title em {
        color: var(--gold);
    }

.section-sub {
    margin-top: 14px;
    font-size:15px;
    color: var(--ink-soft);
    line-height: 1.72;
    max-width: 520px;
}

.cta-section {
    background: var(--ink);
    position: relative;
    overflow: hidden;
}

.cta-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 500px;
    position: relative;
}

.cta-divider {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 1px;
    background: rgba(255,255,255,.07);
    z-index: 5;
}

.cta-card {
    position: relative;
    padding: 68px 56px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    overflow: hidden;
    cursor: pointer;
    transition: flex .4s ease;
}

    .cta-card:hover {
        flex: 1.1;
    }

.cta-card-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: .22;
    transition: opacity .4s, transform .6s;
}

.cta-card:hover .cta-card-bg {
    opacity: .32;
    transform: scale(1.04);
}

.cta-card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(28,23,18,.92) 0%, rgba(28,23,18,.4) 60%, transparent 100%);
}

.cta-card-body {
    position: relative;
    z-index: 2;
}

.cta-icon {
    width: 50px;
    height: 50px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 25px;
    margin-bottom: 22px;
    border: 1px solid rgba(255,255,255,.1);
}

.cta-label {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
    margin-bottom: 11px;
}

.cta-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: max(14px, calc(clamp(26px, 2.8vw, 38px) + 3px));
    font-weight: 600;
    color: #fff;
    line-height: 1.15;
    margin-bottom: 15px;
}

.cta-desc {
    font-size: 17px;
    color: rgba(255,255,255,.62);
    line-height: 1.72;
    margin-bottom: 30px;
    max-width: 340px;
}

.cta-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 24px;
    border-radius: 999px;
    font-size: 15.5px;
    font-weight: 600;
    letter-spacing: .07em;
    text-transform: uppercase;
    border: 2px solid;
    cursor: pointer;
    transition: all .2s;
}

.cta-btn-gold {
    background: var(--gold);
    color: #fff;
    border-color: var(--gold);
}

    .cta-btn-gold:hover {
        background: var(--gold-lt);
        border-color: var(--gold-lt);
        transform: translateY(-2px);
    }

.cta-btn-white {
    background: transparent;
    color: #fff;
    border-color: rgba(255,255,255,.38);
}

    .cta-btn-white:hover {
        background: rgba(255,255,255,.1);
        border-color: #fff;
        transform: translateY(-2px);
    }

.news-section,
.section.news-section {
    background: var(--bg);
    position: relative;
}

.section.news-section {
    padding: 88px 0;
}

.news-section .section-header {
    margin-bottom: 52px;
}

.news-section .news-grid {
    margin-top: 0;
}

.news-grid {
    display: grid;
    grid-template-columns: 1.45fr 1fr 1fr;
    grid-template-rows: auto auto;
    gap: 1px;
    background: var(--border2);
    border: 1px solid var(--border2);
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 4px 32px rgba(28,23,18,.07);
}

.nc {
    background: var(--surface);
    display: flex;
    flex-direction: column;
    cursor: pointer;
    transition: background .2s;
}

    .nc:hover {
        background: var(--bg2);
    }

    .nc.featured {
        grid-row: 1 / 3;
    }

.nc-img {
    position: relative;
    overflow: hidden;
    flex-shrink: 0;
}

    .nc-img::before {
        content: '';
        display: block;
        padding-top: 56.25%;
    }

.nc.featured .nc-img::before {
    padding-top: 55%;
}

.nc-img img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}

.nc:hover .nc-img img {
    transform: scale(1.04);
}

.nc-body {
    padding: 22px 26px 26px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.nc-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 11px;
    flex-wrap: wrap;
}

.nc-date {
    font-size: 14px;
    font-weight: 500;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--ink-soft);
}

.nc-tag {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 2px 9px;
    border-radius: 999px;
}

.tag-alert {
    background: rgba(139,58,42,.12);
    color: #6b2010;
}

.tag-notice {
    background: rgba(58,88,131,.12);
    color: #1a3860;
}

.tag-event {
    background: rgba(58,92,58,.12);
    color: #2a4a2a;
}

.tag-local {
    background: rgba(184,134,11,.12);
    color: #7a5800;
}

.nc-title {
    font-family: 'Cormorant Garamond', serif;
    font-weight: 600;
    line-height: 1.3;
    color: var(--ink);
    transition: color .2s;
    flex: 1;
}

.nc.featured .nc-title {
    font-size: 25px;
    margin-bottom: 12px;
}

.nc:not(.featured) .nc-title {
    font-size: 20px;
    margin-bottom: 9px;
}

.nc:hover .nc-title {
    color: var(--gold);
}

.nc-excerpt {
    font-size: 16.5px;
    color: var(--ink-soft);
    line-height: 1.65;
    margin-bottom: 18px;
}

.nc:not(.featured) .nc-excerpt {
    font-size: 16px;
    margin-bottom: 14px;
}

.nc-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 40px;
    padding: 10px 18px;
    border-radius: 999px;
    border: 1px solid var(--gold);
    background: var(--gold);
    color: #fff;
    font-size: 14.5px;
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}

    .nc-link::after {
        content: "→";
        font-size: 17px;
        line-height: 1;
        transition: transform .2s ease;
    }

    .nc-link:hover {
        background: var(--gold-lt);
        border-color: var(--gold-lt);
        color: #fff;
        transform: translateY(-1px);
        box-shadow: 0 6px 18px rgba(184, 134, 11, .22);
    }

        .nc-link:hover::after {
            transform: translateX(3px);
        }

.nc-link-secondary {
    background: transparent;
    color: var(--gold);
    box-shadow: none;
}

    .nc-link-secondary:hover {
        background: rgba(184, 134, 11, .08);
        border-color: var(--gold);
        color: var(--gold);
        box-shadow: none;
    }

.fade-up {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity .6s ease, transform .6s ease;
}

    .fade-up.visible {
        opacity: 1;
        transform: translateY(0);
    }

footer {
    background: var(--ink);
    color: rgba(255,255,255,.6);
    padding: 60px 0 32px;
}

.footer-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 56px;
    margin-bottom: 44px;
    padding-bottom: 44px;
    border-bottom: 1px solid rgba(255,255,255,.08);
}

.footer-brand-name {
    font-family: 'Cormorant Garamond', serif;
    font-size: 29px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 12px;
}

    .footer-brand-name span {
        color: var(--gold-lt);
        font-style: italic;
    }

.footer-brand-desc {
    font-size: 16.5px;
    line-height: 1.72;
    margin-bottom: 22px;
}

.footer-social {
    display: flex;
    gap: 10px;
}

.social-btn {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.14);
    background: rgba(255,255,255,.05);
    color: rgba(255,255,255,.58);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 17px;
    transition: all .2s;
}

    .social-btn:hover {
        background: rgba(255,255,255,.12);
        color: #fff;
        border-color: rgba(255,255,255,.4);
    }

.footer-col-title {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255,255,255,.38);
    margin-bottom: 18px;
}

.footer-links {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.footer-link {
    font-size: 17px;
    color: rgba(255,255,255,.6);
    transition: color .2s;
    cursor: pointer;
}

    .footer-link:hover {
        color: var(--gold-lt);
    }

.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 15px;
    flex-wrap: wrap;
    gap: 12px;
}

.footer-bottom-logo {
    font-family: 'Cormorant Garamond', serif;
    font-size: 17px;
    font-weight: 600;
    color: rgba(255,255,255,.38);
}

    .footer-bottom-logo sup {
        font-size: max(14px, calc(65% + 1.05px));
        vertical-align: super;
    }

.prr-badge {
    width: 100%;
    max-width: 520px;
    display: block;
}

    .prr-badge a {
        width: 100%;
        display: block;
    }

    .prr-badge img {
        width: 100%;
        height: auto;
        display: block;
    }

@media (max-width: 1024px) {
    .container {
        padding: 0 28px;
    }

    .cta-card {
        padding: 56px 40px;
    }

    .nc-body {
        padding: 18px 20px 22px;
    }

    .nc.featured .nc-title {
        font-size: 23px;
    }
}

@media (max-width: 860px) {
    nav {
        padding: 0 20px;
    }

    .nav-links {
        display: none;
    }

    .nav-burger {
        display: flex;
    }

    .hero {
        min-height: 480px;
    }

    .slide-content {
        left: 6%;
        right: 6%;
        max-width: 100%;
    }

    .slide-desc {
        max-width: 100%;
        font-size: 17px;
        margin-bottom: 28px;
    }

    .btn-primary, .btn-ghost {
        padding: 12px 22px;
        font-size: 15px;
    }

    .slider-nav {
        bottom: 24px;
        right: 18px;
        gap: 10px;
    }

    .slide-counter, .scroll-hint {
        display: none;
    }

    .cta-grid {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .cta-divider {
        display: none;
    }

    .cta-card {
        padding: 52px 32px;
        min-height: 320px;
        flex: none !important;
    }

    .cta-card-bg {
        opacity: .28;
    }

    .news-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto auto;
    }

    .nc.featured {
        grid-column: 1 / 3;
        grid-row: 1;
        flex-direction: row;
        min-height: 260px;
    }

        .nc.featured .nc-img {
            width: 45%;
            flex-shrink: 0;
        }

            .nc.featured .nc-img::before {
                padding-top: 100%;
            }

        .nc.featured .nc-body {
            padding: 28px 28px;
        }

    .section {
        padding: 64px 0;
    }

    .container {
        padding: 0 20px;
    }

    .section-header {
        margin-bottom: 36px;
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 32px;
    }

        .footer-grid > div:first-child {
            grid-column: 1 / 3;
        }
}

@media (max-width: 767px) {
    .site-header {
        padding: 12px 20px 8px;
        background: linear-gradient(to bottom, rgba(28,23,18,.78) 0%, rgba(28,23,18,.45) 68%, rgba(28,23,18,0) 100%);
    }

    .site-logo img {
        height: 44px;
        width: auto;
    }

    .site-lang {
        gap: 8px;
    }

    .lang-pill {
        min-height: 34px;
        padding: 6px 10px;
        font-size: 14px;
    }

    .lang-flag {
        width: 16px;
        height: 16px;
    }

    nav {
        top: 64px;
    }

    .nav-drawer {
        top: calc(64px + var(--nav-h));
    }

    .prr-badge {
        max-width: 100%;
    }
}

@media (max-width: 600px) {
    .slide-title {
        font-size: max(14px, calc(clamp(30px, 9vw, 44px) + 3px));
        margin-bottom: 14px;
    }

    .slide-eyebrow {
        font-size: 14px;
        margin-bottom: 14px;
    }

    .slide-desc {
        font-size: 16.5px;
        margin-bottom: 24px;
    }

    .slide-actions {
        flex-direction: column;
        gap: 10px;
        align-items: flex-start;
    }

    .btn-primary, .btn-ghost {
        width: 100%;
        justify-content: center;
        padding: 14px 20px;
    }

    .cta-card {
        padding: 40px 24px;
        min-height: 280px;
    }

    .cta-title {
        font-size: 29px;
    }

    .cta-desc {
        font-size: 16.5px;
        margin-bottom: 24px;
    }

    .news-grid {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }

    .nc.featured {
        grid-column: 1;
        grid-row: auto;
        flex-direction: column;
    }

        .nc.featured .nc-img {
            width: 100%;
        }

            .nc.featured .nc-img::before {
                padding-top: 56.25%;
            }

        .nc.featured .nc-body {
            padding: 20px 20px 24px;
        }

        .nc.featured .nc-title {
            font-size: 22px;
        }

    .nc:not(.featured) .nc-title {
        font-size: 19px;
    }

    .nc-excerpt {
        font-size: 16px;
    }

    .nc-body {
        padding: 18px 18px 22px;
    }

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

        .footer-grid > div:first-child {
            grid-column: 1;
        }

    footer {
        padding: 44px 0 24px;
    }

    .footer-bottom {
        flex-direction: column;
        align-items: flex-start;
    }

    .section-title {
        font-size: 31px;
    }

    .section {
        padding: 52px 0;
    }
}

@media (max-width: 380px) {
    nav {
        padding: 0 14px;
    }

    .container {
        padding: 0 16px;
    }

    .cta-card {
        padding: 36px 20px;
    }
}

/* ===== Página PRR ===== */

.prr-info-card {
    background: var(--surface);
    border: 1px solid var(--border2);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 4px 32px rgba(28,23,18,.07);
}

.prr-info-main {
    padding: 46px;
}

.prr-text {
    margin-top: 20px;
    font-size: 17.5px;
    color: var(--ink-soft);
    line-height: 1.75;
    max-width: 780px;
}

.prr-actions {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 30px;
}

.prr-ghost-dark {
    color: var(--ink);
    border-color: var(--border2);
}

    .prr-ghost-dark:hover {
        color: var(--ink);
        background: var(--bg2);
        border-color: var(--gold);
    }

.prr-logo-full {
    width: 100%;
    background: #fff;
    border-top: 1px solid var(--border);
    padding: 28px 46px;
}

    .prr-logo-full a {
        display: block;
        width: 100%;
    }

    .prr-logo-full img {
        width: 100%;
        height: auto;
        display: block;
    }

.prr-project-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 28px;
}

    .prr-project-meta div {
        min-width: 190px;
        padding: 16px 18px;
        background: var(--bg);
        border: 1px solid var(--border);
        border-radius: 10px;
    }

    .prr-project-meta span {
        display: block;
        font-size: 14px;
        font-weight: 600;
        letter-spacing: .14em;
        text-transform: uppercase;
        color: var(--gold);
        margin-bottom: 6px;
    }

    .prr-project-meta strong {
        display: block;
        font-size: 20px;
        color: var(--ink);
    }

.events-section {
    background: radial-gradient(circle at top right, rgba(184,134,11,.10), transparent 32rem), #fffaf3;
}

.news-section .nc-img {
    background: #f7f1e6;
    display: flex;
    align-items: center;
    justify-content: center;
}

    .news-section .nc-img img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

.news-section .nc:hover .nc-img img {
    transform: none;
}

.section-more-actions {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 42px;
    width: 100%;
}

.section-more-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 46px;
    padding: 13px 24px;
    border-radius: 999px;
    border: 1px solid rgba(184, 134, 11, 0.35);
    background: rgba(184, 134, 11, 0.10);
    color: var(--gold, #b8860b);
    font-size: max(14px, calc(0.92rem + 3px));
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    box-shadow: 0 16px 35px rgba(30, 30, 30, 0.08);
    transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

    .section-more-btn span {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        transition: transform 0.2s ease;
    }

    .section-more-btn:hover {
        background: rgba(184, 134, 11, 0.18);
        border-color: rgba(184, 134, 11, 0.55);
        color: var(--gold, #b8860b);
        text-decoration: none;
        transform: translateY(-2px);
        box-shadow: 0 20px 44px rgba(30, 30, 30, 0.12);
    }

        .section-more-btn:hover span {
            transform: translateX(3px);
        }

@media (max-width: 767px) {
    .section-more-actions {
        margin-top: 30px;
    }

    .section-more-btn {
        width: 100%;
        max-width: 320px;
        min-height: 44px;
        padding: 12px 20px;
    }
}

.public-list-page {
    min-height: 100vh;
    background: #fffaf3;
    color: #182018;
    padding-top: 6rem;
}

.public-list-wrap {
    width: min(1180px, calc(100% - 2rem));
    margin: 0 auto;
    padding: 3rem 0 5rem;
}

.public-list-page .section-header {
    max-width: 820px;
    /*margin: 0 auto 2.5rem;
    text-align: center;*/
}

.public-list-page .section-title {
    color: #182018;
}

.public-list-page .section-sub {
    color: rgba(24, 32, 24, .68);
}

.public-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
}

.public-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    background: #fff;
    color: #182018;
    border: 1px solid rgba(24, 32, 24, .08);
    border-radius: 26px;
    overflow: hidden;
    box-shadow: 0 18px 45px rgba(24, 32, 24, .10);
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease;
}

    .public-card:hover {
        transform: translateY(-3px);
        box-shadow: 0 24px 60px rgba(24, 32, 24, .14);
        color: #182018;
        text-decoration: none;
    }

.public-card-img {
    width: 100%;
    aspect-ratio: 16 / 10;
    background: #f3eadc;
    overflow: hidden;
}

    .public-card-img img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

.public-card-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 1.25rem;
}

.public-card-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .6rem;
    margin-bottom: .85rem;
    color: #b8860b;
    font-size: max(14px, calc(.82rem + 3px));
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.public-card-tag {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: .35rem .65rem;
    border-radius: 999px;
    background: rgba(184, 134, 11, .11);
    color: #9a6d05;
}

.public-card-title {
    font-family: "Cormorant Garamond", serif;
    font-size: max(14px, calc(1.65rem + 3px));
    line-height: 1.05;
    font-weight: 700;
    margin-bottom: .75rem;
}

.public-card-desc {
    color: rgba(24, 32, 24, .70);
    line-height: 1.55;
    margin-bottom: 1.25rem;
}

.public-card-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: auto;
}

.public-card-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: .75rem 1rem;
    border-radius: 999px;
    background: #182018;
    color: #fff;
    font-weight: 800;
    border: 1px solid rgba(24, 32, 24, .12);
    text-decoration: none;
}

    .public-card-btn:hover {
        background: #2a352a;
        color: #fff;
        text-decoration: none;
    }

.public-card-btn-secondary {
    background: transparent;
    color: #182018;
    border-color: rgba(24, 32, 24, .18);
}

    .public-card-btn-secondary:hover {
        background: rgba(24, 32, 24, .06);
        color: #182018;
    }

.public-list-back-actions {
    display: flex;
    justify-content: center;
    margin-top: 3rem;
}

.public-list-back-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: .85rem 1.3rem;
    border-radius: 999px;
    background: #182018;
    color: #fff;
    font-weight: 800;
    text-decoration: none;
}

    .public-list-back-btn:hover {
        background: #2a352a;
        color: #fff;
        text-decoration: none;
    }

@media (max-width: 992px) {
    .public-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .public-list-page {
        padding-top: 5rem;
    }

    .public-list-wrap {
        padding: 2rem 0 4rem;
    }

    .public-card-grid {
        grid-template-columns: 1fr;
    }

    .public-card-title {
        font-size: max(14px, calc(1.45rem + 3px));
    }

    .public-card-btn,
    .public-card-btn-secondary,
    .public-list-back-btn {
        width: 100%;
    }
}

.section-more-actions {
    display: flex;
    justify-content: center;
    margin-top: 34px;
}

.section-more-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 48px;
    padding: 13px 24px;
    border: 1px solid rgba(28, 23, 18, .18);
    border-radius: 999px;
    background: transparent;
    color: var(--ink);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

    .section-more-btn span {
        font-size: 20px;
        line-height: 1;
        transition: transform .2s ease;
    }

    .section-more-btn:hover {
        background: var(--ink);
        border-color: var(--ink);
        color: #fff;
        transform: translateY(-2px);
        box-shadow: 0 8px 24px rgba(28, 23, 18, .14);
    }

        .section-more-btn:hover span {
            transform: translateX(4px);
        }

.event-detail-info {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin: 0 0 2.25rem;
}

.event-detail-info-item {
    display: flex;
    align-items: flex-start;
    gap: .9rem;
    min-width: 0;
    padding: 1rem 1.1rem;
    border-radius: 16px;
    border: 1px solid rgba(24, 32, 24, .09);
    background: #fffaf3;
}

.event-detail-info-item--address {
    grid-column: 1 / -1;
}

.event-detail-info-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: rgba(184, 134, 11, .11);
    color: #b8860b;
}

    .event-detail-info-icon svg {
        width: 20px;
        height: 20px;
        stroke: currentColor;
    }

.event-detail-info-content {
    min-width: 0;
    padding-top: .05rem;
}

.event-detail-info-label {
    display: block;
    margin-bottom: .2rem;
    color: rgba(24, 32, 24, .52);
    font-size: max(14px, calc(.72rem + 3px));
    font-weight: 800;
    letter-spacing: .08em;
    line-height: 1.2;
    text-transform: uppercase;
}

.event-detail-info-value {
    display: block;
    color: #182018;
    font-size: max(14px, calc(1rem + 3px));
    font-weight: 700;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.event-detail-info-item--address .event-detail-info-value {
    font-weight: 600;
}

@media (max-width: 650px) {
    .event-detail-info {
        grid-template-columns: 1fr;
    }

    .event-detail-info-item--address {
        grid-column: auto;
    }
}

.news-detail-page {
    min-height: 100vh;
    background: #fffaf3;
    color: #182018;
    padding-top: 6rem;
}

.news-detail-wrap {
    width: min(960px, calc(100% - 2rem));
    margin: 0 auto;
    padding: 3rem 0 5rem;
}

.news-detail-back {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-bottom: 1.5rem;
    color: #b8860b;
    font-weight: 700;
    text-decoration: none;
}

    .news-detail-back:hover {
        color: #8d6408;
        text-decoration: none;
    }

.news-detail-card {
    background: #fff;
    border-radius: 28px;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(24,32,24,.12);
    border: 1px solid rgba(24,32,24,.08);
}

.news-detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .9rem;
    margin-top: 2.5rem;
}

.news-detail-secondary-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: .85rem 1.2rem;
    border-radius: 999px;
    background: #182018;
    color: #fff;
    font-weight: 800;
    text-decoration: none;
    border: 1px solid rgba(24,32,24,.12);
    box-shadow: 0 14px 32px rgba(24,32,24,.14);
}

    .news-detail-secondary-btn:hover {
        color: #fff;
        background: #243024;
        text-decoration: none;
        transform: translateY(-1px);
    }

@media (max-width: 768px) {
    .news-detail-actions {
        flex-direction: column;
    }

        .news-detail-actions a {
            width: 100%;
        }
}

.news-detail-img {
    width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
    display: block;
    background: #f7f1e6;
}

.news-detail-body {
    padding: clamp(1.5rem, 4vw, 3rem);
}

.news-detail-date {
    color: #b8860b;
    font-weight: 700;
    font-size: max(14px, calc(.9rem + 3px));
    margin-bottom: 1rem;
}

.news-detail-title {
    font-family: "Cormorant Garamond", serif;
    font-size: max(14px, calc(clamp(2.2rem, 5vw, 4rem) + 3px));
    line-height: .95;
    margin-bottom: 1.25rem;
}

.news-detail-short {
    color: rgba(24,32,24,.72);
    font-size: max(14px, calc(1.1rem + 3px));
    line-height: 1.55;
    margin-bottom: 2rem;
}

.news-detail-content {
    color: rgba(24,32,24,.82);
    font-size: max(14px, calc(1rem + 3px));
    line-height: 1.75;
}

.news-detail-img-button {
    position: relative;
    display: block;
    width: 100%;
    border: 0;
    padding: 0;
    margin: 0;
    background: transparent;
    cursor: zoom-in;
    overflow: hidden;
}

    .news-detail-img-button .news-detail-img {
        transition: transform .25s ease, filter .25s ease;
    }

    .news-detail-img-button:hover .news-detail-img {
        transform: scale(1.02);
        filter: brightness(.9);
    }

.news-detail-img-hint {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: .55rem .85rem;
    background: rgba(24,32,24,.82);
    color: #fff;
    font-size: max(14px, calc(.85rem + 3px));
    font-weight: 700;
    opacity: 0;
    transform: translateY(6px);
    transition: opacity .2s ease, transform .2s ease;
}

.news-detail-img-button:hover .news-detail-img-hint {
    opacity: 1;
    transform: translateY(0);
}

.news-image-popup {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 2rem;
}

    .news-image-popup.active {
        display: flex;
    }

.news-image-popup-backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    padding: 0;
    background: rgba(0,0,0,.82);
    cursor: zoom-out;
}

.news-image-popup-content {
    position: relative;
    z-index: 2;
    width: min(100%, 1200px);
    height: min(100%, 88vh);
    display: flex;
    align-items: center;
    justify-content: center;
}

    .news-image-popup-content img {
        max-width: 100%;
        max-height: 100%;
        object-fit: contain;
        border-radius: 18px;
        box-shadow: 0 30px 90px rgba(0,0,0,.45);
        background: #fff;
    }

.news-image-popup-close {
    position: fixed;
    top: 1rem;
    right: 1rem;
    z-index: 3;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 999px;
    background: #fff;
    color: #182018;
    font-size: max(14px, calc(2rem + 3px));
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 12px 35px rgba(0,0,0,.25);
}

body.news-image-popup-open {
    overflow: hidden;
}

@media (max-width: 768px) {
    .news-image-popup {
        padding: 1rem;
    }

    .news-image-popup-content {
        height: 86vh;
    }

    .news-image-popup-close {
        top: .75rem;
        right: .75rem;
    }
}

/* ===== Home configurable blocks ===== */

.home-block-section {
    padding: 36px 0;
    background: var(--bg);
}

.home-sponsorship-block {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}

.home-sponsorship-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
}

.home-sponsorship-image {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: 220px;
    object-fit: contain;
}

@media (max-width: 768px) {
    .home-block-section {
        padding: 24px 0;
    }

    .home-sponsorship-image {
        max-height: 160px;
    }
}

/* Componentes do protótipo MaisLocal */
:root {
  --ml-bg:#f5f0e8;
  --ml-bg2:#ede8dc;
  --ml-surface:#faf7f2;
  --ml-ink:#1c1712;
  --ml-soft:#6b6458;
  --ml-gold:#b8860b;
  --ml-gold2:#d4a820;
  --ml-pale:#f0e4b8;
  --ml-border:rgba(28,23,18,.12);
  --ml-r:8px;
  --shadow:0 18px 48px rgba(28,23,18,.12)
}
html {
  scroll-padding-top:90px
}
body {
  font-family:'DM Sans',sans-serif;
  background:var(--ml-bg);
  color:var(--ml-ink);
  font-size:16px;
  line-height:1.55;
  margin:0
}
button,input,select,textarea {
  font:inherit
}
button {
  color:inherit
}
.svg-sprite {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden
}
svg {
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round
}
.demo-ribbon {
  height:30px;
  background:var(--ml-gold);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  font-size:15px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase
}
.demo-ribbon span+span {
  opacity:.76;
  font-weight:500
}
.ml-header {
  height:76px;
  position:absolute;
  top:30px;
  left:0;
  right:0;
  z-index:50;
  display:flex;
  align-items:center;
  padding:0 4.5vw;
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.22);
  background:linear-gradient(to bottom,rgba(28,23,18,.55),transparent)
}
.ml-logo {
  display:flex;
  align-items:center;
  gap:10px;
  font-family:'Cormorant Garamond',serif;
  font-size:33px;
  line-height:.7;
  letter-spacing:-.04em
}
.ml-logo strong {
  font-weight:600;
  color:var(--ml-gold2)
}
.ml-logo small {
  font-family:'DM Sans',sans-serif;
  display:block;
  font-size:14px;
  letter-spacing:.32em;
  margin-top:8px;
  margin-left:2px;
  color:currentColor
}
.logo-mark {
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border:1px solid currentColor;
  border-radius:50%
}
.logo-mark svg {
  width:21px
}
.ml-nav {
  position:static!important;
  height:auto!important;
  background:none!important;
  box-shadow:none!important;
  margin:auto!important;
  padding:0!important;
  display:flex!important;
  gap:30px!important
}
.ml-nav a {
  font-size:16px;
  font-weight:600;
  opacity:.9;
  transition:.2s
}
.ml-nav a:hover {
  color:var(--ml-gold2)
}
.header-actions {
  display:flex;
  align-items:center;
  gap:10px
}
.icon-button,.mobile-menu {
  width:42px;
  height:42px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.4);
  background:rgba(28,23,18,.22);
  color:#fff;
  display:grid;
  place-items:center;
  position:relative;
  cursor:pointer
}
.favorite-count {
  position:absolute;
  right:-3px;
  top:-4px;
  width:18px;
  height:18px;
  border-radius:50%;
  background:var(--ml-gold2);
  font-size:14px;
  display:grid;
  place-items:center
}
.account-button {
  height:42px;
  border:1px solid rgba(255,255,255,.4);
  border-radius:999px;
  background:#fff;
  color:var(--ml-ink);
  padding:0 16px;
  display:flex;
  align-items:center;
  gap:8px;
  font-size:16px;
  font-weight:700;
  cursor:pointer
}
.mobile-menu {
  display:none
}
.hero {
  position:relative;
  height:770px;
  min-height:680px;
  color:#fff;
  overflow:hidden
}
.hero-photo,.hero-shade {
  position:absolute;
  inset:0;
  width:100%;
  height:100%
}
.hero-photo {
  object-fit:cover;
  object-position:center 46%
}
.hero-shade {
  background:linear-gradient(90deg,rgba(20,15,11,.86) 0%,rgba(20,15,11,.62) 45%,rgba(20,15,11,.12) 78%),linear-gradient(0deg,rgba(20,15,11,.45),transparent 40%)
}
.hero-inner {
  position:relative;
  z-index:2;
  max-width:1240px;
  margin:auto;
  padding:205px 5vw 60px
}
.eyebrow {
  text-transform:uppercase;
  letter-spacing:.18em;
  color:var(--ml-gold);
  font-size:15px;
  font-weight:700;
  margin-bottom:16px
}
.eyebrow.light {
  color:var(--ml-gold2)
}
.hero h1,.section h2,.feature-band h2,.business-cta h2,.ml-modal h2 {
  font-family:'Cormorant Garamond',serif;
  font-size:max(14px, calc(clamp(48px,5.4vw,76px) + 3px));
  line-height:.92;
  font-weight:600;
  letter-spacing:-.045em;
  margin:0
}
.hero h1 em,.section h2 em,.feature-band h2 em,.business-cta h2 em {
  font-weight:500;
  color:var(--ml-gold2)
}
.hero-copy {
  font-size:17px;
  max-width:570px;
  margin:24px 0 28px;
  opacity:.9
}
.hero-search {
  position:relative;
  display:grid;
  grid-template-columns:minmax(260px,1.25fr) minmax(210px,.8fr) 150px;
  max-width:920px;
  padding:8px;
  background:#fff;
  border-radius:10px;
  box-shadow:0 20px 70px rgba(0,0,0,.3);
  color:var(--ml-ink)
}
.search-field {
  padding:7px 18px;
  border-right:1px solid var(--ml-border);
  display:flex;
  flex-direction:column
}
.search-field > span:not(.select2-container) {
  font-size:14px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ml-soft);
  font-weight:700;
  display:flex;
  gap:6px;
  align-items:center
}
.search-field > span:not(.select2-container) svg {
  width:13px
}
.search-field input,.search-field select {
  height:30px;
  border:0;
  background:transparent;
  outline:0;
  font-size:16px;
  color:var(--ml-ink);
  padding:2px 0
}
.search-submit {
  border:0;
  border-radius:7px;
  background:var(--ml-gold);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-weight:700;
  cursor:pointer
}
.search-submit:hover {
  background:#9f7305
}
.search-suggestions {
  position:absolute;
  top:78px;
  left:8px;
  width:calc(58% - 12px);
  padding:8px;
  background:#fff;
  border-radius:8px;
  box-shadow:var(--shadow);
  z-index:5
}
.search-suggestions button {
  width:100%;
  border:0;
  background:none;
  text-align:left;
  padding:9px 10px;
  border-radius:5px;
  cursor:pointer
}
.search-suggestions button:hover {
  background:var(--ml-bg2)
}
.quick-search {
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:18px;
  font-size:16px
}
.quick-search span {
  opacity:.65;
  margin-right:4px
}
.quick-search button {
  border:1px solid rgba(255,255,255,.4);
  color:#fff;
  background:rgba(255,255,255,.08);
  border-radius:999px;
  padding:6px 12px;
  cursor:pointer
}
.quick-search button:hover {
  background:#fff;
  color:var(--ml-ink)
}
.photo-credit {
  position:absolute;
  right:18px;
  bottom:18px;
  color:#fff;
  font-size:14px;
  opacity:.7;
  z-index:2
}
.local-pulse {
  position:relative;
  z-index:3;
  max-width:1180px;
  margin:-48px auto 0;
  background:var(--ml-surface);
  box-shadow:var(--shadow);
  border-radius:var(--ml-r);
  display:grid;
  grid-template-columns:repeat(3,1fr) 1.45fr;
  min-height:108px
}
.local-pulse>div {
  display:flex;
  align-items:center;
  gap:13px;
  padding:22px 24px;
  border-right:1px solid var(--ml-border)
}
.local-pulse>div:last-child {
  border:0;
  background:var(--ml-pale)
}
.pulse-icon {
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--ml-bg2);
  color:var(--ml-gold)
}
.local-pulse p {
  display:flex;
  flex-direction:column
}
.local-pulse strong {
  font-size:18px
}
.local-pulse small {
  color:var(--ml-soft);
  font-size:15px
}
.pulse-action {
  flex-wrap:wrap
}
.pulse-action p {
  flex:1;
  min-width:160px
}
.text-link {
  border:0;
  background:transparent;
  color:var(--ml-gold);
  padding:0;
  border-bottom:1px solid currentColor;
  font-weight:700;
  font-size:17px;
  cursor:pointer
}
.section {
  max-width:1240px;
  margin:auto;
  padding:104px 5vw
}
.section-head {
  display:flex;
  justify-content:space-between;
  gap:40px;
  align-items:flex-start;
  margin-bottom:45px
}
.section-head h2 {
  font-size:max(14px, calc(clamp(38px,4vw,58px) + 3px))
}
.section-head>p {
  max-width:430px;
  color:var(--ml-soft);
  margin-top:32px
}
.section-head.align-end {
  align-items:flex-end
}
.category-row {
  display:flex;
  gap:10px;
  overflow:auto;
  padding-bottom:10px;
  margin-bottom:27px
}
.category-chip {
  border:1px solid var(--ml-border);
  background:var(--ml-surface);
  border-radius:999px;
  white-space:nowrap;
  padding:9px 16px;
  font-size:17px;
  font-weight:600;
  cursor:pointer
}
.category-chip span {
  color:var(--ml-gold);
  margin-right:5px
}
.category-chip.active,.category-chip:hover {
  background:var(--ml-ink);
  color:#fff;
  border-color:var(--ml-ink)
}
.directory-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-top:1px solid var(--ml-border);
  padding:18px 0
}
.directory-toolbar p span {
  color:var(--ml-soft);
  font-size:17px
}
.view-switch {
  display:flex;
  border:1px solid var(--ml-border);
  border-radius:6px;
  padding:3px;
  background:var(--ml-bg2)
}
.view-switch button {
  border:0;
  background:transparent;
  padding:7px 11px;
  display:flex;
  align-items:center;
  gap:5px;
  border-radius:4px;
  font-size:16px;
  cursor:pointer
}
.view-switch button svg {
  width:16px
}
.view-switch button.active {
  background:var(--ml-surface);
  box-shadow:0 2px 8px rgba(0,0,0,.08)
}
.business-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px
}
.business-card {
  background:var(--ml-surface);
  border:1px solid var(--ml-border);
  border-radius:var(--ml-r);
  overflow:hidden;
  transition:.25s;
  position:relative
}
.business-card:hover {
  transform:translateY(-4px);
  box-shadow:var(--shadow)
}
.business-image {
  height:205px;
  background:var(--ml-bg2);
  position:relative;
  overflow:hidden
}
.business-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:.5s
}
.business-card:hover img {
  transform:scale(1.035)
}
.business-image.no-image {
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,#2b251d,#6c5b3d)
}
.business-image.no-image span {
  font-family:'Cormorant Garamond',serif;
  color:var(--ml-gold2);
  font-size:67px
}
.verified {
  position:absolute;
  left:14px;
  top:14px;
  padding:5px 9px;
  border-radius:999px;
  background:#fff;
  color:#265b42;
  font-size:14px;
  font-weight:700;
  display:flex;
  align-items:center;
  gap:4px
}
.verified svg {
  width:13px
}
.favorite {
  position:absolute;
  right:12px;
  top:12px;
  width:38px;
  height:38px;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.92);
  display:grid;
  place-items:center;
  cursor:pointer
}
.favorite svg {
  width:18px
}
.favorite.active svg {
  fill:#b34b3e;
  color:#b34b3e
}
.business-body {
  padding:19px
}
.business-meta {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:9px
}
.business-meta .tag,.tag {
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-weight:700;
  color:var(--ml-gold)
}
.open-now {
  color:#32704c;
  font-size:15px
}
.business-body h3 {
  font-family:'Cormorant Garamond',serif;
  font-size:29px;
  line-height:1.05;
  margin:0 0 8px
}
.business-body>p {
  color:var(--ml-soft);
  font-size:17px;
  min-height:45px
}
.location-line {
  display:flex;
  align-items:center;
  gap:5px;
  margin:13px 0!important;
  min-height:0!important;
  font-size:15px!important
}
.location-line svg {
  width:14px
}
.service-tags {
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin:14px 0
}
.service-tags span {
  font-size:14px;
  padding:4px 7px;
  border-radius:3px;
  background:var(--ml-bg2)
}
.card-actions {
  border-top:1px solid var(--ml-border);
  padding-top:14px;
  display:flex;
  justify-content:space-between;
  align-items:center
}
.rating {
  font-size:16px
}
.rating b {
  color:var(--ml-gold)
}
.card-actions button {
  border:0;
  background:none;
  font-weight:700;
  font-size:16px;
  cursor:pointer
}
.map-view {
  height:520px;
  border-radius:var(--ml-r);
  overflow:hidden;
  position:relative;
  border:1px solid var(--ml-border)
}
.map-canvas {
  position:absolute;
  inset:0;
  background-color:#e4e1d4;
  background-image:linear-gradient(38deg,transparent 44%,rgba(255,255,255,.7) 45%,rgba(255,255,255,.7) 48%,transparent 49%),linear-gradient(112deg,transparent 55%,rgba(190,207,187,.8) 56%,rgba(190,207,187,.8) 69%,transparent 70%),repeating-linear-gradient(0deg,transparent 0 52px,rgba(28,23,18,.05) 53px 54px),repeating-linear-gradient(90deg,transparent 0 66px,rgba(28,23,18,.05) 67px 68px)
}
.map-label {
  position:absolute;
  top:18px;
  left:18px;
  z-index:2;
  padding:14px 16px;
  background:#fff;
  border-radius:6px;
  box-shadow:0 8px 25px rgba(0,0,0,.15);
  display:flex;
  flex-direction:column
}
.map-label span {
  font-size:15px;
  color:var(--ml-soft)
}
.map-pin {
  position:absolute;
  z-index:3;
  transform:translate(-50%,-100%);
  cursor:pointer;
  border:0;
  background:none
}
.map-pin span {
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  background:var(--ml-ink);
  color:#fff;
  border:3px solid #fff;
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
  box-shadow:0 4px 12px rgba(0,0,0,.28)
}
.map-pin b {
  transform:rotate(45deg);
  font-size:14px
}
.map-pin:hover span {
  background:var(--ml-gold)
}
.empty-state {
  text-align:center;
  padding:70px;
  background:var(--ml-surface);
  border:1px dashed var(--ml-border)
}
.empty-state>span {
  font-size:53px;
  color:var(--ml-gold)
}
.empty-state h3 {
  font:600 32px 'Cormorant Garamond',serif
}
.feature-band {
  background:var(--ml-ink);
  color:#fff;
  padding:90px max(5vw,calc((100vw - 1200px)/2));
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:90px;
  align-items:center
}
.feature-band h2,.business-cta h2 {
  font-size:max(14px, calc(clamp(45px,4.6vw,66px) + 3px))
}
.feature-copy>p:not(.eyebrow) {
  max-width:500px;
  color:rgba(255,255,255,.7);
  margin:22px 0 28px
}
.button {
  min-height:45px;
  padding:0 18px;
  border-radius:5px;
  border:1px solid transparent;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-weight:700;
  font-size:16px;
  cursor:pointer
}
.button.gold {
  background:var(--ml-gold);
  color:#fff
}
.button.dark {
  background:var(--ml-ink);
  color:#fff
}
.button.light {
  background:#fff;
  color:var(--ml-ink)
}
.button.secondary {
  background:var(--ml-bg2);
  border-color:var(--ml-border)
}
.button.outline-light {
  background:transparent;
  color:#fff;
  border-color:rgba(255,255,255,.4)
}
.button.small {
  min-height:38px
}
.button.full {
  width:100%
}
.request-demo {
  background:var(--ml-surface);
  color:var(--ml-ink);
  border-radius:8px;
  padding:28px;
  transform:rotate(1deg);
  box-shadow:0 30px 70px rgba(0,0,0,.24)
}
.request-head {
  display:flex;
  justify-content:space-between;
  font-size:15px;
  color:var(--ml-soft)
}
.status {
  border-radius:999px;
  padding:4px 8px;
  background:var(--ml-pale);
  color:#7d5d0d
}
.request-demo h3 {
  font:600 32px/1.05 'Cormorant Garamond',serif;
  margin:20px 0 5px
}
.muted {
  color:var(--ml-soft)
}
.request-progress {
  display:flex;
  gap:7px;
  margin:24px 0
}
.request-progress i {
  height:4px;
  flex:1;
  background:var(--ml-bg2);
  border-radius:4px
}
.request-progress i.active {
  background:var(--ml-gold)
}
.provider-reply {
  display:flex;
  align-items:center;
  gap:11px;
  padding:13px 0;
  border-top:1px solid var(--ml-border)
}
.provider-reply .avatar {
  width:38px;
  height:38px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--ml-ink);
  color:#fff;
  font-size:14px
}
.provider-reply div {
  flex:1;
  display:flex;
  flex-direction:column
}
.provider-reply small {
  color:var(--ml-soft)
}
.provider-reply b {
  font-size:15px;
  color:var(--ml-gold)
}
.provider-reply.pending {
  opacity:.55
}
.event-grid {
  display:grid;
  grid-template-columns:1fr 1fr 1.2fr;
  gap:20px
}
.event-card {
  background:var(--ml-surface);
  border:1px solid var(--ml-border);
  min-height:280px;
  padding:24px;
  display:flex;
  gap:22px;
  position:relative;
  border-radius:var(--ml-r)
}
.event-date {
  width:58px;
  flex:none;
  text-align:center;
  border-right:1px solid var(--ml-border);
  padding-right:20px
}
.event-date strong {
  font:600 43px 'Cormorant Garamond',serif;
  display:block
}
.event-date span {
  font-size:14px;
  letter-spacing:.18em;
  color:var(--ml-gold);
  font-weight:700
}
.event-body {
  display:flex;
  flex-direction:column;
  align-items:flex-start
}
.event-body h3 {
  font:600 30px/1.05 'Cormorant Garamond',serif;
  margin:16px 0
}
.event-body p {
  font-size:16px;
  color:var(--ml-soft);
  display:flex;
  align-items:center;
  gap:6px;
  margin:3px 0
}
.event-body p svg {
  width:14px
}
.event-save {
  margin-top:auto;
  border:0;
  background:none;
  color:var(--ml-gold);
  font-weight:700;
  padding:0;
  cursor:pointer;
  border-bottom:1px solid currentColor
}
.featured-event {
  background:var(--ml-ink);
  color:#fff;
  overflow:hidden
}
.featured-event:before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(28,23,18,.9),rgba(28,23,18,.38)),url('images/restaurante.jpg') center/cover;
  opacity:.9
}
.featured-event .event-body {
  position:relative;
  max-width:80%
}
.featured-event .event-body p {
  color:rgba(255,255,255,.8);
  font-size:17px
}
.light-tag {
  color:var(--ml-gold2)!important
}
.community-section {
  background:var(--ml-bg2);
  padding:100px max(5vw,calc((100vw - 1240px)/2))
}
.community-section .section-head h2 {
  font-size:max(14px, calc(clamp(40px,4vw,58px) + 3px))
}
.community-layout {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:25px
}
.campaign-card {
  background:var(--ml-gold);
  color:#fff;
  padding:34px;
  border-radius:var(--ml-r)
}
.campaign-top {
  display:flex;
  justify-content:space-between
}
.campaign-card .tag {
  color:#fff;
  opacity:.75
}
.favorite.plain {
  position:static;
  background:rgba(255,255,255,.16);
  color:#fff
}
.campaign-card h3 {
  font:600 41px/1 'Cormorant Garamond',serif;
  max-width:500px;
  margin:42px 0 15px
}
.campaign-card>p {
  max-width:520px;
  opacity:.83
}
.progress {
  height:7px;
  background:rgba(255,255,255,.25);
  border-radius:5px;
  overflow:hidden;
  margin:33px 0 13px
}
.progress i {
  display:block;
  height:100%;
  background:#fff
}
.funding {
  display:flex;
  gap:36px;
  margin-bottom:25px
}
.funding p {
  display:flex;
  flex-direction:column
}
.funding strong {
  font-size:20px
}
.funding small {
  font-size:14px;
  opacity:.7
}
.association-list {
  display:flex;
  flex-direction:column;
  background:var(--ml-surface);
  border-radius:var(--ml-r)
}
.association-list article {
  display:flex;
  align-items:center;
  gap:15px;
  padding:18px 20px;
  border-bottom:1px solid var(--ml-border)
}
.association-mark {
  width:48px;
  height:48px;
  border-radius:50%;
  display:grid;
  place-items:center;
  color:#fff;
  font:600 21px 'Cormorant Garamond',serif
}
.association-mark.green {
  background:#617765
}
.association-mark.ochre {
  background:#a88430
}
.association-mark.rust {
  background:#9a5f4b
}
.association-list article div {
  flex:1
}
.association-list small {
  font-size:14px;
  color:var(--ml-gold);
  font-weight:700;
  text-transform:uppercase
}
.association-list h3 {
  font:600 25px 'Cormorant Garamond',serif;
  margin:1px 0
}
.association-list p {
  font-size:15px;
  color:var(--ml-soft)
}
.association-list article button,.all-associations {
  border:0;
  background:none;
  font-size:15px;
  font-weight:700;
  color:var(--ml-gold);
  cursor:pointer
}
.all-associations {
  margin:auto 20px 18px;
  padding:11px;
  border:1px solid var(--ml-border)
}
.utility-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px
}
.utility-card {
  background:var(--ml-surface);
  border:1px solid var(--ml-border);
  padding:22px;
  display:flex;
  gap:16px;
  align-items:flex-start;
  min-height:150px;
  border-radius:var(--ml-r)
}
.utility-card>span {
  font-size:31px;
  color:var(--ml-gold)
}
.utility-card>div {
  flex:1
}
.utility-card small {
  font-size:14px;
  color:var(--ml-gold);
  font-weight:700;
  letter-spacing:.12em
}
.utility-card h3 {
  font:600 26px 'Cormorant Garamond',serif;
  margin:5px 0
}
.utility-card p {
  font-size:16px;
  color:var(--ml-soft)
}
.utility-card b,.utility-card button {
  align-self:flex-end;
  border:0;
  background:none;
  color:var(--ml-gold);
  font-size:15px;
  font-weight:700;
  cursor:pointer
}
.weather {
  background:var(--ml-ink);
  color:#fff
}
.weather p {
  color:rgba(255,255,255,.65)
}
.guide-grid {
  display:grid;
  grid-template-columns:1.45fr 1fr;
  gap:18px;
  margin-top:18px
}
.guide-card {
  min-height:215px;
  background:var(--ml-surface);
  border:1px solid var(--ml-border);
  padding:27px;
  display:flex;
  gap:22px;
  border-radius:var(--ml-r)
}
.guide-main {
  grid-row:span 2;
  min-height:448px;
  position:relative;
  color:#fff;
  overflow:hidden;
  align-items:flex-end
}
.guide-main:before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,rgba(28,23,18,.92),rgba(28,23,18,.08) 70%),url('images/hero-santarem.jpg') center/cover
}
.guide-main>div:last-child {
  position:relative;
  max-width:570px
}
.guide-main h3 {
  font:600 43px/1 'Cormorant Garamond',serif;
  margin:14px 0
}
.guide-main p {
  opacity:.8;
  margin-bottom:20px
}
.guide-number {
  font:italic 600 47px 'Cormorant Garamond',serif;
  color:var(--ml-gold);
  opacity:.6
}
.guide-card small {
  color:var(--ml-gold);
  font-size:14px;
  font-weight:700;
  letter-spacing:.13em
}
.guide-card h3 {
  font:600 28px/1.05 'Cormorant Garamond',serif;
  margin:8px 0
}
.guide-card p {
  font-size:16px;
  color:var(--ml-soft);
  margin-bottom:13px
}
.business-cta {
  padding:80px max(5vw,calc((100vw - 1200px)/2));
  background:#5c3c2d;
  color:#fff;
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:80px;
  align-items:center
}
.business-cta>div:last-child>p {
  opacity:.78;
  margin-bottom:24px
}
.business-cta .button+.button {
  margin-left:9px
}
footer {
  background:#14110e;
  color:#fff
}
.footer-main {
  padding:65px max(5vw,calc((100vw - 1200px)/2));
  display:grid;
  grid-template-columns:1fr 1.5fr;
  gap:30px
}
.footer-logo {
  align-self:start
}
.footer-main>p {
  grid-column:1;
  max-width:300px;
  color:rgba(255,255,255,.55);
  font-size:17px
}
.footer-links {
  grid-column:2;
  grid-row:1/3;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px
}
.footer-links div {
  display:flex;
  flex-direction:column;
  gap:8px
}
.footer-links strong {
  font-size:15px;
  color:var(--ml-gold2);
  text-transform:uppercase;
  letter-spacing:.12em;
  margin-bottom:7px
}
.footer-links a,.footer-links button {
  color:rgba(255,255,255,.67);
  font-size:16px;
  border:0;
  background:none;
  text-align:left;
  padding:0;
  cursor:pointer
}
.footer-bottom {
  border-top:1px solid rgba(255,255,255,.1);
  padding:17px 5vw;
  display:flex;
  justify-content:space-between;
  font-size:14px;
  color:rgba(255,255,255,.45)
}
.ml-modal {
  border:0;
  padding:0;
  background:transparent;
  max-width:none;
  max-height:none
}
.ml-modal::backdrop {
  background:rgba(18,14,11,.72);
  backdrop-filter:blur(5px)
}
.modal-shell {
  width:min(92vw,590px);
  max-height:90vh;
  overflow:auto;
  background:var(--ml-surface);
  border-radius:9px;
  padding:38px;
  position:relative;
  box-shadow:0 30px 80px rgba(0,0,0,.3)
}
.modal-close {
  position:absolute;
  right:16px;
  top:16px;
  width:38px;
  height:38px;
  border:1px solid var(--ml-border);
  border-radius:50%;
  background:var(--ml-surface);
  display:grid;
  place-items:center;
  cursor:pointer;
  z-index:3
}
.ml-modal h2 {
  font-size:47px;
  margin-bottom:8px
}
.form-modal form {
  display:grid;
  gap:14px;
  margin-top:25px
}
.form-modal label {
  display:grid;
  gap:6px;
  font-size:16px;
  font-weight:700
}
.form-modal input,.form-modal select,.form-modal textarea {
  width:100%;
  border:1px solid var(--ml-border);
  background:#fff;
  border-radius:5px;
  padding:11px 12px;
  outline:none
}
.form-modal input:focus,.form-modal select:focus,.form-modal textarea:focus {
  border-color:var(--ml-gold);
  box-shadow:0 0 0 3px rgba(184,134,11,.12)
}
.check-row {
  grid-template-columns:18px 1fr!important;
  align-items:start;
  font-weight:400!important
}
.check-row input {
  width:auto!important;
  margin-top:4px
}
.demo-note {
  display:block;
  text-align:center;
  color:var(--ml-soft);
  font-size:14px
}
.step-list {
  display:grid;
  gap:8px;
  margin:23px 0
}
.step-list p {
  display:grid;
  grid-template-columns:34px 1fr;
  column-gap:10px;
  padding:11px;
  background:var(--ml-bg2);
  border-radius:5px
}
.step-list p span {
  grid-row:1/3;
  width:30px;
  height:30px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--ml-gold);
  color:#fff;
  font-weight:700
}
.step-list small {
  color:var(--ml-soft)
}
.donation-options {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
  margin:24px 0
}
.donation-options button {
  height:50px;
  border:1px solid var(--ml-border);
  background:#fff;
  border-radius:5px;
  font-weight:700;
  cursor:pointer
}
.donation-options button.active {
  background:var(--ml-ink);
  color:#fff
}
.transparent-note {
  display:flex;
  gap:12px;
  background:var(--ml-bg2);
  padding:15px;
  margin:0 0 20px
}
.transparent-note svg {
  color:var(--ml-gold)
}
.transparent-note span {
  display:flex;
  flex-direction:column
}
.transparent-note small {
  color:var(--ml-soft)
}
.business-detail {
  width:min(94vw,930px);
  padding:0
}
.detail-hero {
  height:285px;
  position:relative;
  background:var(--ml-bg2)
}
.detail-hero img {
  width:100%;
  height:100%;
  object-fit:cover
}
.detail-hero-shade {
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,rgba(20,15,11,.75),transparent 65%)
}
.detail-title {
  position:absolute;
  left:34px;
  bottom:26px;
  color:#fff
}
.detail-title h2 {
  font-size:53px;
  margin:0
}
.detail-title p {
  font-size:16px;
  opacity:.85
}
.detail-content {
  padding:30px 34px;
  display:grid;
  grid-template-columns:1.5fr .85fr;
  gap:35px
}
.detail-content h3 {
  font:600 30px 'Cormorant Garamond',serif;
  margin-bottom:8px
}
.detail-content p {
  color:var(--ml-soft);
  font-size:17px
}
.detail-sidebar {
  background:var(--ml-bg2);
  padding:20px;
  border-radius:6px;
  height:max-content
}
.detail-sidebar p {
  display:flex;
  gap:8px;
  align-items:center;
  margin:8px 0
}
.detail-sidebar .button {
  margin-top:12px
}
.account-shell {
  width:min(94vw,1000px)
}
.account-top {
  display:flex;
  justify-content:space-between;
  align-items:start
}
.demo-badge {
  font-size:14px;
  color:var(--ml-gold);
  border:1px solid var(--ml-gold);
  padding:4px 7px
}
.account-tabs {
  display:flex;
  gap:4px;
  border-bottom:1px solid var(--ml-border);
  margin:22px 0
}
.account-tabs button {
  border:0;
  background:none;
  padding:10px 14px;
  font-weight:700;
  cursor:pointer;
  border-bottom:2px solid transparent
}
.account-tabs button.active {
  color:var(--ml-gold);
  border-color:var(--ml-gold)
}
.account-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px
}
.account-stat {
  padding:17px;
  background:var(--ml-bg2);
  display:flex;
  flex-direction:column
}
.account-stat strong {
  font:600 33px 'Cormorant Garamond',serif
}
.account-panel {
  margin-top:18px;
  border:1px solid var(--ml-border)
}
.account-row {
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px;
  border-bottom:1px solid var(--ml-border)
}
.account-row:last-child {
  border:0
}
.account-row>span {
  width:38px;
  height:38px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--ml-pale);
  font-size:15px
}
.account-row>div {
  flex:1;
  display:flex;
  flex-direction:column
}
.account-row small {
  color:var(--ml-soft)
}
.account-row b {
  font-size:15px;
  color:var(--ml-gold)
}
.toast {
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:100;
  background:var(--ml-ink);
  color:#fff;
  padding:13px 17px;
  border-radius:6px;
  box-shadow:var(--shadow);
  transform:translateY(30px);
  opacity:0;
  pointer-events:none;
  transition:.25s;
  max-width:390px;
  font-size:16px
}
.toast.show {
  transform:none;
  opacity:1
}
@media(max-width:1000px) {
  .ml-nav {
    display:none!important;
    position:absolute!important;
    top:76px!important;
    left:4vw!important;
    right:4vw!important;
    background:var(--ml-ink)!important;
    padding:20px!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    border-radius:6px
  }
  .ml-nav.open {
    display:flex!important
  }
  .mobile-menu {
    display:grid
  }
  .account-button span {
    display:none
  }
  .hero {
    height:740px
  }
  .local-pulse {
    margin:-35px 3vw 0;
    grid-template-columns:1fr 1fr
  }
  .local-pulse>div:nth-child(2) {
    border-right:0
  }
  .business-grid {
    grid-template-columns:1fr 1fr
  }
  .event-grid {
    grid-template-columns:1fr 1fr
  }
  .featured-event {
    grid-column:1/-1
  }
  .community-layout,.feature-band,.business-cta {
    grid-template-columns:1fr;
    gap:45px
  }
  .utility-grid {
    grid-template-columns:1fr 1fr
  }
  .utility-card:last-child {
    grid-column:1/-1
  }
  .guide-grid {
    grid-template-columns:1fr
  }
  .guide-main {
    grid-row:auto
  }
  .footer-main {
    grid-template-columns:1fr
  }
  .footer-links {
    grid-column:1;
    grid-row:auto
  }
}
@media(max-width:680px) {
  .demo-ribbon span+span {
    display:none
  }
  .ml-header {
    height:66px;
    padding:0 18px
  }
  .ml-logo {
    font-size:29px
  }
  .logo-mark {
    width:34px;
    height:34px
  }
  .hero {
    height:auto;
    min-height:760px
  }
  .hero-inner {
    padding:160px 20px 60px
  }
  .hero h1 {
    font-size:51px
  }
  .hero-search {
    grid-template-columns:1fr;
    padding:8px
  }
  .search-field {
    border-right:0;
    border-bottom:1px solid var(--ml-border);
    padding:8px 12px
  }
  .search-submit {
    height:50px;
    margin-top:5px
  }
  .search-suggestions {
    top:67px;
    width:calc(100% - 16px)
  }
  .quick-search {
    flex-wrap:wrap
  }
  .quick-search span {
    width:100%
  }
  .photo-credit {
    font-size:14px
  }
  .local-pulse {
    grid-template-columns:1fr;
    margin-top:-25px
  }
  .local-pulse>div {
    border-right:0;
    border-bottom:1px solid var(--ml-border)
  }
  .section,.community-section {
    padding:75px 20px
  }
  .section-head {
    display:block;
    margin-bottom:32px
  }
  .section-head>p {
    margin-top:15px
  }
  .section h2 {
    font-size:43px
  }
  .business-grid,.event-grid,.utility-grid {
    grid-template-columns:1fr
  }
  .featured-event,.utility-card:last-child {
    grid-column:auto
  }
  .directory-toolbar {
    align-items:flex-end
  }
  .business-image {
    height:230px
  }
  .feature-band,.business-cta {
    padding:70px 20px
  }
  .feature-band h2,.business-cta h2 {
    font-size:47px
  }
  .community-layout {
    grid-template-columns:1fr
  }
  .funding {
    gap:15px;
    justify-content:space-between
  }
  .association-list article {
    padding:14px
  }
  .association-list article p {
    display:none
  }
  .guide-main {
    min-height:410px
  }
  .business-cta .button {
    width:100%;
    margin:7px 0!important
  }
  .footer-main {
    padding:50px 20px
  }
  .footer-links {
    grid-template-columns:1fr 1fr
  }
  .footer-bottom {
    display:block;
    padding:16px 20px
  }
  .footer-bottom span {
    display:block;
    margin:4px 0
  }
  .modal-shell {
    padding:28px 20px
  }
  .detail-hero {
    height:250px
  }
  .detail-title {
    left:20px;
    bottom:20px
  }
  .detail-title h2 {
    font-size:42px
  }
  .detail-content {
    padding:24px 20px;
    grid-template-columns:1fr
  }
  .account-grid {
    grid-template-columns:1fr
  }
  .account-top {
    display:block
  }
  .demo-badge {
    display:inline-block;
    margin-top:10px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    transition:none!important;
    animation:none!important
  }
}
footer {
  padding:0
}
.install-app {
  border:0;
  background:transparent;
  color:var(--ml-gold2);
  font-size:14px;
  font-weight:700;
  cursor:pointer
}
.ml-modal {
  margin:auto
}
:where(a,button,input,select,textarea):focus-visible {
  outline:3px solid var(--ml-gold2);
  outline-offset:3px
}
/* Blocos e imagens da homepage MaisLocal, reinterpretados no protótipo */
.ml-logo-image {
  display:block;
  width:142px;
  height:auto;
  object-fit:contain
}
.footer-logo .ml-logo-image {
  width:164px
}
.hero-slides,.hero-slide,.hero-slide img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%
}
.hero-slide {
  opacity:0;
  transform:scale(1.045);
  transition:opacity 1s ease,transform 7s ease;
  will-change:opacity,transform
}
.hero-slide.active {
  opacity:1;
  transform:scale(1);
  z-index:1
}
.hero-slide img {
  object-fit:cover
}
.hero-slide:nth-child(1) img {
  object-position:center 45%
}
.hero-slide:nth-child(2) img {
  object-position:center center
}
.hero-slide:nth-child(3) img {
  object-position:center 45%
}
.hero-slide:nth-child(4) img {
  object-position:center 48%
}
.hero-shade {
  z-index:1
}
.hero-controls {
  position:absolute;
  right:5vw;
  bottom:78px;
  z-index:4;
  display:flex;
  align-items:center;
  gap:12px;
  color:#fff
}
.hero-arrow {
  width:42px;
  height:42px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.52);
  background:rgba(20,15,11,.28);
  color:#fff;
  display:grid;
  place-items:center;
  cursor:pointer;
  font-size:21px;
  backdrop-filter:blur(5px);
  transition:.2s
}
.hero-arrow:hover {
  background:#fff;
  color:var(--ml-ink)
}
.hero-count {
  display:flex;
  align-items:baseline;
  gap:4px;
  min-width:54px;
  font-size:14px;
  color:rgba(255,255,255,.7)
}
.hero-count strong {
  font:600 27px 'Cormorant Garamond',serif;
  color:#fff
}
.hero-dots {
  display:flex;
  align-items:center;
  gap:7px
}
.hero-dot {
  width:24px;
  height:3px;
  border:0;
  border-radius:2px;
  padding:0;
  background:rgba(255,255,255,.35);
  cursor:pointer;
  transition:.25s
}
.hero-dot.active {
  width:38px;
  background:var(--ml-gold2)
}
.maislocal-portals {
  max-width:1240px;
  margin:82px auto 0;
  padding:0 5vw;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px
}
.portal-panel {
  position:relative;
  min-height:360px;
  overflow:hidden;
  border-radius:var(--ml-r);
  color:#fff;
  display:flex;
  align-items:flex-end;
  padding:42px;
  text-decoration:none
}
.portal-panel:before {
  content:"";
  position:absolute;
  inset:0
}
.portal-panel>div {
  position:relative;
  z-index:1;
  max-width:480px
}
.portal-discover {
  background:#24201b
}
.portal-discover:before {
  background:radial-gradient(circle at 78% 25%,rgba(214,173,47,.23),transparent 28%),linear-gradient(135deg,transparent 0 46%,rgba(255,255,255,.035) 46% 47%,transparent 47% 100%)
}
.portal-business {
  background:#4f3d2f
}
.portal-business:before {
  background:linear-gradient(90deg,rgba(25,19,15,.88),rgba(25,19,15,.28)),url('images/maislocal-cta-negocio.jpg') center/cover;
  transition:transform .6s ease
}
.portal-business:hover:before {
  transform:scale(1.035)
}
.portal-panel h2 {
  font:600 max(14px, calc(clamp(43px,4.1vw,60px) + 3px))/.92 'Cormorant Garamond',serif;
  letter-spacing:-.04em;
  margin:0
}
.portal-panel h2 em {
  font-weight:500;
  color:var(--ml-gold2)
}
.portal-panel p:not(.eyebrow) {
  max-width:420px;
  margin:19px 0;
  color:rgba(255,255,255,.76)
}
.portal-link {
  display:inline-flex;
  align-items:center;
  gap:12px;
  margin-top:7px;
  border-bottom:1px solid rgba(255,255,255,.56);
  padding-bottom:3px;
  font-size:17px;
  font-weight:700
}
.portal-link b {
  color:var(--ml-gold2)
}
.news-section {
  padding-top:96px
}
.news-section .section-head>a {
  margin-bottom:8px;
  text-decoration:none
}
.news-grid {
  display:grid;
  grid-template-columns:1.38fr 1fr;
  gap:20px
}
.news-card {
  position:relative;
  overflow:hidden;
  border-radius:var(--ml-r);
  background:var(--ml-surface);
  border:1px solid var(--ml-border);
  text-decoration:none;
  color:inherit
}
.news-card img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .55s ease
}
.news-card:hover img {
  transform:scale(1.035)
}
.news-featured {
  min-height:550px
}
.news-featured>img {
  position:absolute;
  inset:0
}
.news-featured:after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,rgba(20,16,12,.93),rgba(20,16,12,.06) 70%)
}
.news-overlay {
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:1;
  padding:38px;
  color:#fff
}
.news-label {
  display:inline-block;
  color:var(--ml-gold2);
  text-transform:uppercase;
  letter-spacing:.13em;
  font-size:14px;
  font-weight:700
}
.news-card time {
  display:block;
  margin:8px 0;
  color:var(--ml-soft);
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.08em
}
.news-overlay time {
  color:rgba(255,255,255,.66)
}
.news-card h3 {
  font:600 30px/1.06 'Cormorant Garamond',serif;
  margin:5px 0 11px
}
.news-featured h3 {
  max-width:650px;
  font-size:max(14px, calc(clamp(34px,3.1vw,48px) + 3px))
}
.news-overlay p {
  max-width:570px;
  color:rgba(255,255,255,.72);
  margin-bottom:22px
}
.news-card b {
  font-size:15px;
  color:var(--ml-gold);
  display:flex;
  gap:8px;
  align-items:center
}
.news-overlay b {
  color:#fff
}
.news-stack {
  display:grid;
  grid-template-rows:1fr 1fr;
  gap:20px
}
.news-compact {
  min-height:265px;
  display:grid;
  grid-template-columns:42% 1fr
}
.news-compact img {
  min-height:100%;
  object-position:center
}
.news-compact>div {
  padding:26px;
  display:flex;
  flex-direction:column;
  align-items:flex-start
}
.news-compact h3 {
  flex:1
}
.news-compact b {
  margin-top:12px
}
@media(max-width:1000px) {
  .ml-logo-image {
    width:128px
  }
  .hero-controls {
    right:4vw
  }
  .maislocal-portals {
    margin-top:75px;
    padding:0 3vw
  }
  .portal-panel {
    padding:32px
  }
  .news-grid {
    grid-template-columns:1fr
  }
  .news-featured {
    min-height:500px
  }
  .news-stack {
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto
  }
  .news-compact {
    grid-template-columns:1fr;
    grid-template-rows:220px 1fr
  }
  .news-compact img {
    height:220px
  }
  .news-compact>div {
    min-height:250px
  }
}
@media(max-width:680px) {
  .ml-logo-image {
    width:112px
  }
  .footer-logo .ml-logo-image {
    width:146px
  }
  .hero-inner {
    padding-bottom:132px
  }
  .hero-controls {
    left:20px;
    right:auto;
    bottom:30px
  }
  .hero-arrow {
    width:38px;
    height:38px
  }
  .hero-dots {
    display:none
  }
  .maislocal-portals {
    grid-template-columns:1fr;
    margin-top:62px;
    padding:0 20px
  }
  .portal-panel {
    min-height:330px;
    padding:30px 25px
  }
  .portal-panel h2 {
    font-size:48px
  }
  .news-section {
    padding-top:74px
  }
  .news-featured {
    min-height:500px
  }
  .news-overlay {
    padding:27px 23px
  }
  .news-featured h3 {
    font-size:39px
  }
  .news-overlay p {
    display:none
  }
  .news-stack {
    grid-template-columns:1fr
  }
  .news-compact {
    grid-template-columns:38% 1fr;
    grid-template-rows:auto;
    min-height:245px
  }
  .news-compact img {
    height:100%
  }
  .news-compact>div {
    min-height:0;
    padding:20px 18px
  }
  .news-compact h3 {
    font-size:26px
  }
  .news-compact b {
    margin-top:18px
  }
}
@media(prefers-reduced-motion:reduce) {
  .hero-slide {
    transform:none
  }
  .portal-business:before,.news-card img {
    transition:none
  }
}
