/* ==========================================================================
   RENATO ALVES ADVOGADOS
   CSS GLOBAL + HOME
   ========================================================================== */


/* ==========================================================================
   RESET E VARIÁVEIS
   ========================================================================== */

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

:root {
    --dark: #111311;
    --dark-soft: #191c19;

    --gold: #b79a63;
    --gold-light: #d4bd8c;

    --cream: #f4f1ea;
    --white: #ffffff;

    --text: #252725;
    --muted: #6e716e;

    --border: #dedbd3;

    --container: 1180px;
}

html {
    scroll-behavior: smooth;
    overflow-x: hidden;
}

body {
    min-width: 0;
    overflow-x: hidden;

    font-family: 'Inter', sans-serif;
    line-height: 1.7;

    background: var(--white);
    color: var(--text);
}

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

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

button,
input,
textarea,
select {
    font: inherit;
}

.container {
    width: min(
        var(--container),
        calc(100% - 40px)
    );

    margin-inline: auto;
}


/* ==========================================================================
   ELEMENTOS GERAIS
   ========================================================================== */

.section {
    padding: 100px 0;
}

.section-light {
    background: var(--cream);
}

.hero-kicker,
.section-kicker {
    display: inline-block;

    margin-bottom: 18px;

    color: var(--gold);

    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2.5px;
}

.section-heading {
    max-width: 760px;
    margin-bottom: 50px;
}

.section-heading h2,
.paraguai-section h2 {
    font-family: 'Cormorant Garamond', serif;

    font-size: clamp(38px, 5vw, 56px);
    font-weight: 600;
    line-height: 1.05;
}

.section-heading p {
    margin-top: 18px;
    color: var(--muted);
}


/* ==========================================================================
   BOTÕES
   ========================================================================== */

.btn {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    min-height: 52px;

    padding: 0 28px;

    border: 1px solid transparent;

    font-size: 14px;
    font-weight: 600;

    transition:
        background .25s ease,
        color .25s ease,
        border-color .25s ease,
        transform .25s ease;
}

.btn:hover {
    transform: translateY(-2px);
}

.btn-primary {
    background:
        linear-gradient(
            135deg,
            #c6a562,
            #b08d4f
        );

    border-color: #d0b06e;

    color: var(--dark);
}

.btn-primary:hover {
    background:
        linear-gradient(
            135deg,
            #d6bb7b,
            #c6a562
        );
}

.btn-outline {
    border-color: rgba(255,255,255,.45);
    color: var(--white);
}

.btn-outline:hover {
    border-color: var(--gold);
    color: var(--gold-light);
}


/* ==========================================================================
   HEADER
   ========================================================================== */

.site-header {
    position: sticky;

    top: 0;
    z-index: 1000;

    background: rgba(17,19,17,.97);

    border-bottom:
        1px solid rgba(255,255,255,.08);
}

.header-inner {
    position: relative;

    display: flex;

    align-items: center;
    justify-content: space-between;

    min-height: 86px;

    gap: 30px;
}


/* ==========================================================================
   LOGO / MARCA
   ========================================================================== */

.brand {
    display: flex;

    flex-direction: column;

    flex-shrink: 0;

    color: var(--white);

    line-height: 1.1;
}

.brand strong {
    font-family: 'Cormorant Garamond', serif;

    font-size: 25px;

    letter-spacing: 2px;
}

.brand span {
    margin-top: 5px;

    color: var(--gold-light);

    font-size: 10px;

    letter-spacing: 3px;
}

.brand-with-logo {
    flex-direction: row;

    align-items: center;

    gap: 14px;
}

.brand-with-logo img {
    width: 58px;
    height: 58px;

    flex-shrink: 0;

    object-fit: contain;
}

.brand-with-logo div {
    display: flex;
    flex-direction: column;
}


/* ==========================================================================
   MENU
   ========================================================================== */

.main-nav {
    display: flex;

    align-items: center;

    gap: 24px;
}

.main-nav > a,
.nav-dropdown-trigger {
    color: #e5e5e5;

    font-size: 13px;

    white-space: nowrap;

    transition: color .2s ease;
}

.main-nav a:hover {
    color: var(--gold-light);
}

.nav-contact {
    padding: 9px 17px;

    border: 1px solid var(--gold);
}

.menu-toggle {
    display: none;

    border: 0;

    background: transparent;

    color: var(--white);

    cursor: pointer;

    font-size: 28px;
    line-height: 1;
}


/* ==========================================================================
   SUBMENUS
   ========================================================================== */

.nav-dropdown {
    position: relative;
}

.nav-dropdown-trigger {
    display: flex;

    align-items: center;

    gap: 6px;
}

.nav-dropdown-trigger span {
    color: var(--gold);

    font-size: 12px;

    transition: transform .2s ease;
}

.nav-dropdown-menu {
    position: absolute;

    top: calc(100% + 24px);
    left: -20px;

    z-index: 100;

    width: 310px;

    max-height: calc(100vh - 120px);
    overflow-y: auto;

    padding: 10px;

    background: #151715;

    border:
        1px solid rgba(255,255,255,.1);

    box-shadow:
        0 20px 50px rgba(0,0,0,.3);

    opacity: 0;
    visibility: hidden;

    transform: translateY(8px);

    transition:
        opacity .2s ease,
        visibility .2s ease,
        transform .2s ease;
}

.nav-dropdown-menu::before {
    content: "";

    position: absolute;

    top: -25px;
    left: 0;
    right: 0;

    height: 25px;
}

.nav-dropdown-menu a {
    display: block;

    padding: 10px 12px;

    color: #dedfde;

    font-size: 13px;
}

.nav-dropdown-menu a:hover {
    background: rgba(183,154,99,.09);
}

.nav-dropdown-menu strong {
    display: block;

    color: var(--gold-light);

    font-family: 'Cormorant Garamond', serif;

    font-size: 18px;
    font-weight: 600;
}

.nav-dropdown-menu small {
    display: block;

    margin-top: 1px;

    color: #858985;

    font-size: 10px;
}

.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu {
    opacity: 1;
    visibility: visible;

    transform: translateY(0);
}

.nav-dropdown:hover .nav-dropdown-trigger span {
    transform: rotate(180deg);
}


/* ==========================================================================
   HERO DA HOME
   ========================================================================== */

.hero {
    position: relative;

    display: flex;

    align-items: center;

    min-height: 690px;

    overflow: hidden;

    background:
        linear-gradient(
            90deg,
            rgba(8,10,8,.98) 0%,
            rgba(8,10,8,.94) 30%,
            rgba(8,10,8,.76) 50%,
            rgba(8,10,8,.42) 72%,
            rgba(8,10,8,.18) 100%
        ),
        url('/images/familia-hero.webp');

    background-size: cover;
    background-position: center right;
    background-repeat: no-repeat;

    color: var(--white);

    border-bottom: 1px solid var(--gold);
}

.hero::after {
    content: "";

    position: absolute;

    inset: 0;

    pointer-events: none;

    background:
        linear-gradient(
            0deg,
            rgba(5,6,5,.4) 0%,
            transparent 38%
        );
}

.hero-content {
    position: relative;

    z-index: 2;

    max-width: 740px;

    padding: 100px 0;
}

.hero h1 {
    max-width: 740px;

    font-family: 'Cormorant Garamond', serif;

    font-size: clamp(48px, 5.3vw, 72px);
    font-weight: 600;
    line-height: 1.02;
}

.hero h1 span {
    color: var(--gold-light);
}

.hero-description {
    max-width: 680px;

    margin-top: 27px;

    color: #d1d2d1;

    font-size: 18px;
}

.hero-actions {
    display: flex;

    flex-wrap: wrap;

    gap: 15px;

    margin-top: 36px;
}


/* ==========================================================================
   ÁREAS DE ATUAÇÃO
   ========================================================================== */

.practice-grid {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 20px;
}

.practice-card {
    display: flex;

    flex-direction: column;

    min-width: 0;
    min-height: 300px;

    padding: 30px;

    background: var(--white);

    border: 1px solid var(--border);

    transition:
        transform .25s ease,
        border-color .25s ease,
        box-shadow .25s ease;
}

.practice-card:hover {
    transform: translateY(-5px);

    border-color: var(--gold);

    box-shadow:
        0 12px 35px rgba(0,0,0,.05);
}

.practice-card > span {
    color: var(--gold);

    font-size: 11px;
    font-weight: 700;
}

.practice-card h3 {
    margin-top: 24px;

    font-family: 'Cormorant Garamond', serif;

    font-size: 30px;
    line-height: 1.05;
}

.practice-card p {
    margin-top: 16px;

    color: var(--muted);

    font-size: 14px;
}

.practice-card strong {
    margin-top: auto;

    padding-top: 25px;

    color: var(--gold);

    font-size: 13px;
}

.practice-card-dark {
    background: var(--dark);

    border-color: var(--dark);

    color: var(--white);
}

.practice-card-dark p {
    color: #c1c5c1;
}


/* ==========================================================================
   DIREITO DE FAMÍLIA / SERVIÇOS
   ========================================================================== */

.services-grid {
    display: grid;

    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    border-top: 1px solid var(--border);
}

.service-card {
    min-width: 0;

    padding: 30px;

    border-right: 1px solid var(--border);
}

.service-card:first-child {
    padding-left: 0;
}

.service-card:last-child {
    border-right: 0;
}

.service-card h3 {
    margin-bottom: 14px;

    font-family: 'Cormorant Garamond', serif;

    font-size: 29px;
    line-height: 1.1;
}

.service-card p {
    color: var(--muted);

    font-size: 14px;
}


/* ==========================================================================
   ESCRITÓRIO - HOME
   ========================================================================== */

.office-section {
    overflow: hidden;
}

.office-grid {
    display: grid;

    grid-template-columns:
        minmax(0, .9fr)
        minmax(0, 1.1fr);

    gap: 80px;

    align-items: center;
}

.office-image {
    position: relative;

    min-width: 0;
}

.office-image::before {
    content: "";

    position: absolute;

    top: -18px;
    left: -18px;

    width: 78%;
    height: 78%;

    border: 1px solid var(--gold);

    pointer-events: none;
}

.office-image img {
    position: relative;

    z-index: 1;

    width: 100%;

    aspect-ratio: 4 / 5;

    object-fit: cover;
    object-position: center top;
}

.office-content {
    min-width: 0;
}

.office-content h2 {
    margin-bottom: 27px;

    font-family: 'Cormorant Garamond', serif;

    font-size: clamp(38px, 5vw, 56px);
    font-weight: 600;
    line-height: 1.05;
}

.office-content > p {
    margin-bottom: 17px;

    color: var(--muted);
}

.lawyer-highlight {
    display: flex;

    flex-direction: column;

    margin: 30px 0;

    padding-left: 20px;

    border-left: 2px solid var(--gold);
}

.lawyer-highlight strong {
    font-family: 'Cormorant Garamond', serif;

    font-size: 26px;
}

.lawyer-highlight span {
    color: var(--muted);

    font-size: 14px;
}

.text-link {
    color: var(--gold);

    font-weight: 600;
}


/* ==========================================================================
   EQUIPE - HOME
   ========================================================================== */

.team-grid {
    display: grid;

    grid-template-columns:
        repeat(5, minmax(0, 1fr));

    gap: 20px;

    width: 100%;
}

.team-card {
    min-width: 0;

    overflow: hidden;

    background: var(--white);
}

.team-card img {
    width: 100%;

    aspect-ratio: 4 / 5;

    object-fit: cover;
    object-position: center top;

    filter: grayscale(10%);
}

.team-card > div {
    padding: 20px;
}

.team-card h3 {
    font-family: 'Cormorant Garamond', serif;

    font-size: 23px;
    line-height: 1.08;

    overflow-wrap: anywhere;
}

.team-card p {
    margin-top: 6px;

    color: var(--muted);

    font-size: 13px;
}


/* ==========================================================================
   PARAGUAI - HOME
   ========================================================================== */

.paraguai-section {
    background: var(--dark-soft);

    color: var(--white);
}

.paraguai-grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1.2fr)
        minmax(0, 1fr);

    gap: 90px;

    align-items: center;
}

.paraguai-grid > div {
    min-width: 0;
}

.paraguai-grid p {
    margin-top: 24px;

    color: #c4c7c4;
}

.paraguai-services > div {
    padding: 22px 0;

    border-bottom:
        1px solid rgba(255,255,255,.15);
}

.paraguai-services span {
    color: var(--gold);

    font-size: 12px;
}

.paraguai-services h3 {
    margin-top: 4px;

    font-family: 'Cormorant Garamond', serif;

    font-size: 27px;
    line-height: 1.1;
}


/* ==========================================================================
   FOOTER
   ========================================================================== */

.site-footer {
    padding-top: 75px;

    background: #090a09;

    color: #c2c4c2;
}

.footer-grid {
    display: grid;

    grid-template-columns:
        minmax(0, 2fr)
        minmax(0, 1fr)
        minmax(0, 1fr);

    gap: 70px;

    padding-bottom: 60px;
}

.footer-grid > div {
    min-width: 0;
}

.footer-brand {
    display: block;

    color: var(--white);

    font-family: 'Cormorant Garamond', serif;

    font-size: 28px;
}

.footer-subtitle {
    color: var(--gold);

    font-size: 10px;

    letter-spacing: 3px;
}

.footer-grid p {
    max-width: 430px;

    margin-top: 18px;
}

.footer-grid h3 {
    margin-bottom: 15px;

    color: var(--white);
}

.footer-grid a {
    display: block;

    margin: 7px 0;
}

.footer-bottom {
    padding: 22px 0;

    border-top:
        1px solid rgba(255,255,255,.1);

    font-size: 13px;
}


/* ==========================================================================
   WHATSAPP FLUTUANTE
   ========================================================================== */

.whatsapp-floating {
    position: fixed;

    right: 24px;
    bottom: 24px;

    z-index: 9999;

    display: flex;

    align-items: center;
    justify-content: center;

    gap: 9px;

    padding: 13px 19px;

    border-radius: 50px;

    background: #25d366;

    color: #fff;

    font-size: 14px;
    font-weight: 700;

    box-shadow:
        0 8px 28px rgba(0,0,0,.25);

    transition:
        transform .2s ease,
        box-shadow .2s ease;
}

.whatsapp-floating svg {
    width: 26px;
    height: 26px;

    flex-shrink: 0;
}

.whatsapp-floating:hover {
    color: #fff;

    transform: translateY(-3px);

    box-shadow:
        0 12px 34px rgba(0,0,0,.3);
}


/* ==========================================================================
   NOTEBOOK / TABLET GRANDE
   ========================================================================== */

@media (max-width: 1100px) {

    .main-nav {
        gap: 15px;
    }

    .main-nav > a,
    .nav-dropdown-trigger {
        font-size: 12px;
    }

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

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

}


/* ==========================================================================
   TABLET / MENU MOBILE
   ========================================================================== */

@media (max-width: 900px) {

    .menu-toggle {
        display: block;
    }


    .main-nav {
        display: none;

        position: absolute;

        top: 86px;
        left: 0;
        right: 0;

        z-index: 999;

        max-height:
            calc(100vh - 86px);

        overflow-y: auto;

        padding:
            20px 22px 30px;

        background:
            var(--dark);

        flex-direction:
            column;

        align-items:
            stretch;

        gap: 3px;

        border-top:
            1px solid
            rgba(255,255,255,.08);

        box-shadow:
            0 20px 35px
            rgba(0,0,0,.28);
    }


    .main-nav.active {
        display: flex;
    }


    .main-nav > a,
    .nav-dropdown-trigger {
        width: 100%;

        padding:
            12px 4px;

        font-size:
            14px;
    }


    .nav-contact {
        margin-top: 10px;

        padding:
            12px 14px !important;

        text-align: center;
    }


    /*
    |--------------------------------------------------------------------------
    | DROPDOWN MOBILE
    |--------------------------------------------------------------------------
    */

    .nav-dropdown {
        width: 100%;
    }


    .nav-dropdown-trigger {
        justify-content:
            space-between;
    }


    .nav-dropdown-menu {
        position: static;

        width: 100%;

        max-height: none;

        overflow: visible;

        margin:
            0 0 8px;

        padding:
            3px 0 8px 13px;

        background:
            transparent;

        border: 0;

        border-left:
            1px solid
            rgba(183,154,99,.32);

        box-shadow: none;

        opacity: 1;
        visibility: visible;

        transform: none;
    }


    .nav-dropdown-menu::before {
        display: none;
    }


    .nav-dropdown-menu a {
        display: block;

        width: 100%;

        padding:
            8px 12px;

        font-size:
            13px;
    }


    .nav-dropdown-menu strong {
        font-size:
            17px;
    }


    .nav-dropdown-menu small {
        display: none;
    }


    /*
    |--------------------------------------------------------------------------
    | HOME
    |--------------------------------------------------------------------------
    */

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


    .office-grid {
        grid-template-columns:
            1fr;

        gap:
            55px;
    }


    .office-image {
        width:
            min(100%, 560px);

        margin-inline:
            auto;
    }


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

        gap:
            24px;
    }


    .paraguai-grid {
        grid-template-columns:
            1fr;

        gap:
            50px;
    }


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

        gap:
            40px;
    }

}

/* ==========================================================================
   CELULAR
   ========================================================================== */

@media (max-width: 600px) {

    .container {
        width:
            calc(100% - 28px);
    }

    .header-inner {
        min-height: 76px;
    }

.main-nav {
    top: 76px;

    max-height:
        calc(100vh - 76px);

    width: 100%;
    max-width: 100%;

    overflow-x: hidden;
}

    .brand-with-logo {
        gap: 10px;
    }

    .brand-with-logo img {
        width: 48px;
        height: 48px;
    }

    .brand strong {
        font-size: 19px;

        letter-spacing: 1px;
    }

    .brand span {
        font-size: 8px;

        letter-spacing: 2px;
    }


    /* HERO */

    .hero {
        min-height: auto;

        background:
            linear-gradient(
                180deg,
                rgba(8,10,8,.75) 0%,
                rgba(8,10,8,.88) 38%,
                rgba(8,10,8,.98) 78%,
                rgba(8,10,8,1) 100%
            ),
            url('/images/familia-hero.webp');

        background-size: cover;
        background-position: 65% center;
    }

    .hero-content {
        padding: 82px 0 72px;
    }

    .hero-kicker,
    .section-kicker {
        letter-spacing: 2px;
    }

    .hero h1 {
        font-size:
            clamp(40px, 12vw, 48px);
    }

    .hero-description {
        margin-top: 22px;

        font-size: 16px;
    }

    .hero-actions {
        flex-direction: column;

        margin-top: 30px;
    }

    .btn {
        width: 100%;
    }


    /* SEÇÕES */

    .section {
        padding: 72px 0;
    }

    .section-heading {
        margin-bottom: 38px;
    }

    .section-heading h2,
    .paraguai-section h2 {
        font-size: 39px;
    }


    /* ÁREAS */

    .practice-grid {
        grid-template-columns: 1fr;

        gap: 15px;
    }

    .practice-card {
        min-height: 245px;

        padding: 27px;
    }

    .practice-card h3 {
        font-size: 29px;
    }


    /* SERVIÇOS */

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

    .service-card,
    .service-card:first-child {
        padding: 24px 0;

        border-right: 0;
        border-bottom:
            1px solid var(--border);
    }

    .service-card:last-child {
        border-bottom: 0;
    }


    /* ESCRITÓRIO */

    .office-grid {
        gap: 45px;
    }

    .office-image {
        /*
         * Importante:
         * a imagem passa a ocupar TODO o espaço
         * disponível no celular.
         */
        width: 100%;
        max-width: none;

        margin: 0;
    }

    .office-image::before {
        top: -9px;
        left: -9px;

        width: 82%;
        height: 82%;
    }

    .office-image img {
        width: 100%;

        /*
         * Em vez de max-height: 610px,
         * usamos proporção. Assim ela não encolhe.
         */
        aspect-ratio: 4 / 5;

        object-fit: cover;
        object-position: center top;
    }

    .office-content h2 {
        font-size: 40px;
    }


    /* EQUIPE */

    .team-grid {
        /*
         * Um profissional por linha.
         * Isso elimina totalmente o estouro lateral.
         */
        grid-template-columns: 1fr;

        gap: 26px;
    }

    .team-card {
        width: 100%;
    }

    .team-card img {
        width: 100%;

        aspect-ratio: 4 / 5;

        object-fit: cover;
        object-position: center top;
    }

    .team-card > div {
        padding: 20px 4px 5px;
    }

    .team-card h3 {
        font-size: 29px;
    }

    .team-card p {
        font-size: 14px;
    }


    /* PARAGUAI */

    .paraguai-grid {
        gap: 35px;
    }

    .paraguai-services h3 {
        font-size: 25px;
    }


    /* WHATSAPP */

    .whatsapp-floating {
        right: 15px;
        bottom: 15px;

        width: 58px;
        height: 58px;

        padding: 0;

        border-radius: 50%;
    }

    .whatsapp-floating svg {
        width: 30px;
        height: 30px;
    }

    .whatsapp-floating span {
        display: none;
    }

}


/* ==========================================================================
   CELULAR PEQUENO
   ========================================================================== */

@media (max-width: 380px) {

    .container {
        width:
            calc(100% - 22px);
    }

    .hero h1 {
        font-size: 38px;
    }

    .brand strong {
        font-size: 17px;
    }

    .brand span {
        display: none;
    }

}