@media screen and (max-width: 1100px) {
    .hero-shell,
    .split-layout,
    .contact-shell {
        grid-template-columns: 1fr;
    }

    .team-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .practice-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media screen and (max-width: 820px) {
    .shell {
        width: min(100% - 32px, 1180px);
    }

    .header-shell {
        min-height: 82px;
    }

    .desktop-nav {
        display: none;
    }

    .mobile-toggle {
        display: block;
    }

    .mobile-menu {
        display: block;
        position: absolute;
        top: calc(100% + 8px);
        left: 16px;
        right: 16px;
        padding: 14px;
        background: rgba(31, 42, 53, 0.98);
        border-radius: 24px;
        box-shadow: 0 20px 50px rgba(15, 23, 33, 0.26);
        opacity: 0;
        pointer-events: none;
        transform: translateY(-10px);
        transition: opacity 180ms ease, transform 180ms ease;
    }

    .mobile-menu.is-open {
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
    }

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

    .mobile-link {
        color: #f7efe6;
    }

    .hero {
        min-height: auto;
    }

    .hero-backdrop {
        background:
            linear-gradient(180deg, rgba(12, 17, 24, 0.88), rgba(12, 17, 24, 0.72)),
            url(../imagens/banner.jpg) 62% center/cover no-repeat;
    }

    .hero-shell {
        padding: 72px 0 42px;
        gap: 24px;
    }

    .hero h1 {
        font-size: clamp(2.4rem, 12vw, 3.8rem);
        max-width: 100%;
    }

    .lead {
        font-size: 15px;
        line-height: 1.75;
    }

    .hero-card,
    .about-content,
    .contact-card {
        padding: 24px;
    }

    .hero-card-text {
        font-size: 14px;
        line-height: 1.75;
    }

    .section {
        padding: 84px 0;
    }

    .team-grid,
    .practice-grid {
        grid-template-columns: 1fr;
    }

    .team-card,
    .practice-card {
        min-height: auto;
    }

    .practice-card {
        min-height: 220px;
    }

    .practice-card-copy {
        padding: 24px;
    }

    .modal-panel {
        width: 100%;
        max-height: 86vh;
    }

    .modal-layout,
    .modal-utility-grid {
        grid-template-columns: 1fr;
    }

    .modal-panel-lawyer {
        padding: 24px;
    }

    .modal-panel-utility {
        padding: 24px;
    }

    .utility-card-body {
        min-height: 0;
    }

    .modal-hero {
        grid-template-columns: 1fr;
    }

    .modal-mark {
        width: 92px;
        height: 92px;
        font-size: 28px;
    }

    .modal-visual {
        min-height: 220px;
        padding: 24px;
    }

    .modal-panel-practice .modal-copy {
        padding: 24px;
    }

    .modal-panel-practice .modal-layout {
        padding: 0 24px 24px;
    }

    .modal-aside {
        padding-top: 0;
    }

    .map-card iframe {
        min-height: 320px;
    }

    .fancybox-slide {
        padding: 16px 8px !important;
    }
}

@media screen and (max-width: 560px) {
    .shell {
        width: calc(100% - 24px);
    }

    .logo {
        width: 168px;
        height: 66px;
    }

    .hero-shell {
        width: calc(100% - 24px);
        padding-top: 56px;
    }

    .hero-actions {
        flex-direction: column;
    }

    .button-primary,
    .button-secondary {
        width: 100%;
    }

    .section-heading h2,
    .practice-card span,
    .team-name,
    .conteudo h2,
    .modal-hero h2,
    .modal-visual-copy h2 {
        word-break: break-word;
    }

    .contact-copy p,
    .about-content p,
    .conteudo span,
    .conteudo p,
    .modal-copy p {
        font-size: 15px;
        line-height: 1.8;
    }

    .practice-card span {
        font-size: 28px;
    }

    .practice-card small {
        font-size: 13px;
    }

    .modal-panel-lawyer {
        padding: 20px;
    }

    .modal-panel-utility {
        padding: 20px;
    }

    .utility-card {
        padding: 22px 18px;
    }

    .utility-icon {
        width: 52px;
        height: 52px;
        border-radius: 16px;
    }

    .utility-card-top {
        margin-bottom: 18px;
    }

    .utility-card-foot {
        margin-top: 18px;
        padding-top: 16px;
    }

    .modal-copy {
        padding-top: 22px;
    }

    .fancybox-slide--iframe .fancybox-content,
    .fancybox-slide--html .fancybox-content {
        width: calc(100vw - 16px) !important;
        max-width: calc(100vw - 16px) !important;
        border-radius: 22px;
    }
}
