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

:root{
    --navy-deep:#001023;
    --navy:#002641;
    --navy-med:#004466;
    --teal:#5a8896;
    --gold:#cc9903;
    --gold-light:#e0b83d;
    --text:#f0f4f8;
    --text-muted:#8a9bb0;
    --font:'Inter',system-ui,sans-serif;
    --ease:cubic-bezier(.4,0,.2,1);
}

html{scroll-behavior:smooth}

body{
    font-family:var(--font);
    color:var(--text);
    background:var(--navy-deep);
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
}

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

/* ── Header ── */
#main-header{
    position:fixed;top:0;left:0;right:0;
    z-index:1000;
    padding:24px 0;
    background:transparent;
    transition:background .4s var(--ease),padding .4s var(--ease);
}
#main-header.scrolled{
    background:rgba(0,16,35,.88);
    padding:16px 0;
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
}
.header-inner{
    display:flex;
    justify-content:space-between;
    align-items:center;
}
.logo-link{display:inline-block}
#logo{height:36px;width:auto;opacity:.9;transition:opacity .3s}
#logo:hover{opacity:1}

#top-menu{
    list-style:none;display:flex;gap:36px;margin:0;
}
#top-menu a{
    text-decoration:none;
    color:var(--text-muted);
    font-size:13px;
    font-weight:400;
    letter-spacing:.12em;
    text-transform:uppercase;
    transition:color .3s var(--ease);
}
#top-menu a:hover{color:var(--text)}

.mobile-menu-toggle{
    display:none;
    flex-direction:column;gap:5px;
    cursor:pointer;padding:6px;
    background:none;border:none;
}
.mobile-menu-toggle span{
    width:22px;height:2px;background:var(--text);
    transition:transform .3s,opacity .3s;
}

/* ── Hero ── */
.hero{
    position:relative;
    min-height:100vh;
    display:flex;align-items:center;justify-content:center;
    overflow:hidden;
    text-align:center;
}
.hero-bg{
    position:absolute;inset:0;
    background:
        linear-gradient(160deg,rgba(0,68,102,.18) 0%,transparent 40%),
        linear-gradient(340deg,rgba(90,136,150,.07) 0%,transparent 35%),
        linear-gradient(200deg,rgba(0,38,65,.35) 10%,transparent 60%),
        linear-gradient(180deg,rgba(0,20,40,.5) 0%,var(--navy-deep) 100%);
    z-index:0;
}
.hero-content{
    position:relative;z-index:1;
    padding:0 24px;
    max-width:860px;
}
.hero-badge{
    display:inline-block;
    font-size:12px;
    font-weight:500;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:var(--gold);
    margin-bottom:40px;
    opacity:.85;
}
.hero-divider{
    width:56px;height:1.5px;
    background:var(--gold);
    margin:0 auto 48px;
    opacity:.5;
}
.hero-headline{
    font-size:clamp(30px,4.5vw,52px);
    font-weight:200;
    line-height:1.3;
    letter-spacing:-.03em;
    margin-bottom:28px;
}
.hero-sub{
    font-size:18px;
    font-weight:300;
    color:var(--text-muted);
    line-height:1.8;
    max-width:560px;
    margin:0 auto 52px;
}

.hero-cta{
    display:inline-block;
    padding:16px 48px;
    font-size:13px;
    font-weight:500;
    letter-spacing:.14em;
    text-transform:uppercase;
    text-decoration:none;
    color:var(--gold);
    border:1px solid rgba(204,153,3,.5);
    border-radius:100px;
    transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease);
}
.hero-cta:hover{
    background:var(--gold);
    color:var(--navy-deep);
    border-color:var(--gold);
}

/* ── Scroll hint ── */
.scroll-hint{
    position:absolute;
    bottom:40px;
    left:50%;
    transform:translateX(-50%);
    z-index:1;
    color:var(--text-muted);
    opacity:.45;
    animation:bounce 2.4s var(--ease) infinite;
}
@keyframes bounce{
    0%,100%{transform:translateX(-50%) translateY(0)}
    50%{transform:translateX(-50%) translateY(10px)}
}

/* ── Shared section ── */
.section{padding:120px 0}

.section-label{
    display:inline-block;
    font-size:12px;
    font-weight:500;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:var(--teal);
    margin-bottom:20px;
}
.section-label--light{color:var(--gold)}

.section-heading{
    font-size:clamp(30px,3.8vw,44px);
    font-weight:200;
    line-height:1.25;
    letter-spacing:-.025em;
    margin-bottom:20px;
    max-width:640px;
}

.section-intro{
    font-size:17px;
    font-weight:300;
    color:var(--text-muted);
    max-width:520px;
    margin-bottom:64px;
}

/* ── Proposta ── */
.proposta{
    border-top:none;
    position:relative;
    background:
        linear-gradient(170deg,rgba(0,38,65,.15) 0%,transparent 45%),
        linear-gradient(350deg,rgba(0,68,102,.06) 0%,transparent 40%),
        var(--navy-deep);
}
.proposta::before{
    content:'';display:block;
    width:120px;height:1px;
    background:linear-gradient(90deg,transparent,var(--gold),transparent);
    margin:0 auto 120px;
    opacity:.4;
}
.proposta-layout{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:80px;
    align-items:start;
}
.proposta-left .section-heading{
    max-width:100%;
}
.proposta-right p{
    font-size:17px;
    font-weight:300;
    color:var(--text-muted);
    margin-bottom:24px;
    line-height:1.85;
}
.proposta-right p:last-child{margin-bottom:0}

/* ── Atuação ── */
.atuacao{
    background:
        linear-gradient(155deg,rgba(0,68,102,.1) 0%,transparent 40%),
        linear-gradient(335deg,rgba(90,136,150,.05) 0%,transparent 35%),
        linear-gradient(180deg,var(--navy-deep) 0%,rgba(0,38,65,.22) 50%,var(--navy-deep) 100%);
}

.atuacao-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
}

.atuacao-card{
    background:rgba(0,38,65,.2);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    border:1px solid rgba(90,136,150,.08);
    border-radius:8px;
    padding:40px 36px;
    cursor:pointer;
    position:relative;
    transition:background .35s var(--ease),box-shadow .35s var(--ease),transform .35s var(--ease);
}
.atuacao-card:hover{
    background:rgba(0,38,65,.4);
    box-shadow:0 8px 32px rgba(0,0,0,.2),0 0 0 1px rgba(204,153,3,.15);
    transform:translateY(-3px);
}
.atuacao-card h3{
    font-size:19px;
    font-weight:500;
    margin-bottom:10px;
    letter-spacing:-.01em;
    transition:color .3s;
}
.atuacao-card:hover h3{color:var(--gold-light)}
.atuacao-card p{
    font-size:15px;
    font-weight:300;
    color:var(--text-muted);
    line-height:1.7;
    margin:0;
}
.card-arrow{
    position:absolute;
    top:40px;right:36px;
    font-size:18px;
    color:var(--text-muted);
    opacity:0;
    transform:translateX(-8px);
    transition:opacity .3s var(--ease),transform .3s var(--ease);
}
.atuacao-card:hover .card-arrow{
    opacity:1;
    transform:translateX(0);
}

/* Stagger animation for cards */
.stagger{
    opacity:0;
    transform:translateY(24px);
    transition:opacity .6s var(--ease),transform .6s var(--ease),background .35s var(--ease),box-shadow .35s var(--ease);
    transition-delay:calc(var(--i,0) * .08s);
}
.stagger.is-visible{
    opacity:1;
    transform:translateY(0);
}

/* ── Painel lateral ── */
.area-panel{
    position:fixed;top:0;right:0;
    width:100%;max-width:520px;height:100vh;
    z-index:2000;
    pointer-events:none;
    visibility:hidden;
    transition:visibility 0s linear .4s;
}
.area-panel.is-open{
    pointer-events:auto;visibility:visible;
    transition:visibility 0s;
}
.area-panel-backdrop{
    position:fixed;inset:0;z-index:1;
    background:rgba(0,16,35,.6);
    opacity:0;
    transition:opacity .4s var(--ease);
}
.area-panel.is-open .area-panel-backdrop{opacity:1}

.area-panel-inner{
    position:absolute;top:0;right:0;bottom:0;
    width:100%;max-width:520px;z-index:2;
    background:var(--navy);
    padding:56px 48px;
    box-shadow:-12px 0 48px rgba(0,0,0,.35);
    transform:translateX(100%);
    transition:transform .4s var(--ease);
    overflow-y:auto;
}
.area-panel.is-open .area-panel-inner{transform:translateX(0)}

.area-panel-close{
    position:absolute;top:28px;right:28px;
    width:40px;height:40px;
    border:none;background:transparent;
    color:var(--text-muted);font-size:28px;line-height:1;
    cursor:pointer;transition:color .3s;
}
.area-panel-close:hover{color:var(--text)}

.area-panel-content .section-label{margin-bottom:12px}
.area-panel-titulo{
    font-size:30px;font-weight:200;
    line-height:1.3;letter-spacing:-.02em;
    margin-bottom:28px;padding-right:48px;
}
.area-panel-texto{
    font-size:16px;
    font-weight:300;
    color:var(--text-muted);
    line-height:1.9;
}

/* ── Filosofia ── */
.filosofia{
    background:
        linear-gradient(165deg,rgba(0,68,102,.1) 0%,transparent 35%),
        linear-gradient(345deg,rgba(0,38,65,.15) 0%,transparent 40%),
        linear-gradient(180deg,rgba(0,30,55,1) 0%,var(--navy) 30%,var(--navy) 70%,rgba(0,30,55,1) 100%);
}
.filosofia-heading{
    margin-bottom:64px;
}
.filosofia-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:56px;
}
.filosofia-pilar{
    padding:0;
    transition:transform .35s var(--ease);
}
.filosofia-pilar:hover{
    transform:translateY(-4px);
}
.pilar-num{
    display:block;
    font-size:64px;
    font-weight:200;
    color:var(--gold);
    letter-spacing:-.03em;
    margin-bottom:12px;
    line-height:1;
    opacity:.7;
}
.pilar-line{
    width:32px;
    height:1px;
    background:var(--gold);
    margin-bottom:20px;
    opacity:.5;
}
.pilar-titulo{
    font-size:18px;
    font-weight:500;
    margin-bottom:14px;
    letter-spacing:-.01em;
}
.pilar-texto{
    font-size:15px;
    font-weight:300;
    color:var(--text-muted);
    line-height:1.8;
}

/* ── Diferencial ── */
.diferencial{
    background:
        linear-gradient(180deg,rgba(0,38,65,.12) 0%,transparent 30%),
        linear-gradient(0deg,rgba(0,38,65,.12) 0%,transparent 30%),
        linear-gradient(150deg,rgba(0,68,102,.06) 0%,transparent 50%),
        var(--navy-deep);
    position:relative;
    overflow:hidden;
    padding:140px 0;
}
.diferencial-logo{
    position:absolute;
    left:8%;
    top:50%;
    transform:translateY(-50%);
    width:420px;
    height:auto;
    opacity:.04;
    pointer-events:none;
    user-select:none;
}
.diferencial-content{
    text-align:right;
    margin-left:auto;
}
.diferencial-heading{
    max-width:100%;
    margin-bottom:36px;
    margin-left:auto;
}
.diferencial-line{
    width:48px;
    height:1px;
    background:var(--gold);
    margin:0 0 48px auto;
    opacity:.5;
}
.diferencial-quote{
    font-size:clamp(26px,3.5vw,42px);
    font-weight:200;
    line-height:1.4;
    letter-spacing:-.025em;
    max-width:640px;
    margin:0 0 56px auto;
}
.diferencial-accent{
    color:var(--gold);
    font-weight:300;
}

.cta-btn{
    display:inline-block;
    padding:17px 56px;
    font-size:14px;
    font-weight:500;
    letter-spacing:.1em;
    text-transform:uppercase;
    text-decoration:none;
    color:var(--navy-deep);
    background:var(--gold);
    border:none;
    border-radius:100px;
    transition:background .35s var(--ease),transform .15s var(--ease),box-shadow .35s var(--ease);
}
.cta-btn:hover{
    background:var(--gold-light);
    transform:translateY(-2px);
    box-shadow:0 8px 28px rgba(204,153,3,.2);
}

/* ── Contato ── */
.contato{
    background:
        linear-gradient(160deg,rgba(0,68,102,.08) 0%,transparent 40%),
        linear-gradient(340deg,rgba(0,38,65,.1) 0%,transparent 35%),
        var(--navy);
    border-top:none;
    position:relative;
}
.contato::before{
    content:'';display:block;
    width:120px;height:1px;
    background:linear-gradient(90deg,transparent,rgba(204,153,3,.5),transparent);
    margin:0 auto;
    position:absolute;top:0;left:50%;transform:translateX(-50%);
}
.contato-layout{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:80px;
}
.contato-gold-line{
    width:32px;
    height:1px;
    background:var(--gold);
    margin-bottom:24px;
    opacity:.5;
}
.contato .section-heading{
    margin-bottom:28px;
}
.contato-text{
    font-size:16px;
    font-weight:300;
    color:var(--text-muted);
    line-height:1.85;
    margin-bottom:8px;
}

.social-links{
    display:flex;align-items:center;gap:28px;
    margin-top:28px;
}
.social-link{
    display:inline-flex;align-items:center;gap:10px;
    color:var(--text-muted);
    text-decoration:none;font-size:14px;font-weight:400;
    transition:color .3s var(--ease);
}
.social-link:hover{color:var(--gold)}

/* ── Footer ── */
#main-footer{
    padding:36px 0;
    background:rgba(0,10,20,.5);
    border-top:1px solid rgba(90,136,150,.06);
}
.footer-inner{text-align:center}
.footer-copy{
    font-size:13px;
    font-weight:300;
    color:var(--text-muted);
    letter-spacing:.04em;
}

/* ── Fade-in animation ── */
.fade-in{
    opacity:0;
    transform:translateY(28px);
    transition:opacity .8s var(--ease),transform .8s var(--ease);
}
.fade-in.is-visible{
    opacity:1;
    transform:translateY(0);
}

/* ── Responsive ── */
@media(max-width:768px){
    .container{padding:0 24px}

    .mobile-menu-toggle{display:flex}

    #top-menu{
        display:none;
        position:absolute;top:100%;left:0;right:0;
        background:rgba(0,16,35,.96);
        backdrop-filter:blur(16px);
        -webkit-backdrop-filter:blur(16px);
        flex-direction:column;
        padding:24px;gap:0;
    }
    #top-menu.active{display:flex}
    #top-menu li{
        padding:14px 0;
        border-bottom:1px solid rgba(90,136,150,.08);
    }

    .hero-badge{font-size:11px;margin-bottom:28px}
    .hero-divider{margin-bottom:32px}
    .hero-headline{font-size:26px}
    .hero-sub{font-size:15px;margin-bottom:40px}
    .hero-cta{padding:12px 36px}
    .scroll-hint{bottom:28px}

    .section{padding:80px 0}

    .proposta::before{margin-bottom:80px}
    .proposta-layout{
        grid-template-columns:1fr;
        gap:40px;
    }

    .atuacao-grid{grid-template-columns:1fr;gap:14px}
    .atuacao-card{padding:32px 24px}
    .card-arrow{top:32px;right:24px}

    .filosofia-grid{grid-template-columns:1fr;gap:40px}

    .diferencial{padding:80px 0}
    .diferencial-logo{
        left:50%;top:50%;
        transform:translate(-50%,-50%);
        width:240px;
    }
    .diferencial-content{text-align:center}
    .diferencial-line{margin:0 auto 36px}
    .diferencial-quote{margin:0 auto 40px}

    .contato-layout{
        grid-template-columns:1fr;
        gap:48px;
    }

    .area-panel-inner{
        max-width:100%;
        padding:48px 24px;
    }
}
