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

:root {
    --cream: #f7f4ed;
    --cream-2: #ede9df;
    --green: #174d2d;
    --green-light: #2f7a4c;
    --ink: #171a18;
    --muted: #646963;
    --white: #ffffff;
    --serif: 'Cormorant Garamond', Georgia, serif;
    --sans: 'Montserrat', Arial, sans-serif;
    --shadow: 0 20px 60px rgba(20,30,24,.10);
}

html {
    scroll-behavior:smooth;
    scroll-padding-top:80px;
}

body {
    background:var(--cream);
    color:var(--ink);
    font-family:var(--sans);
    font-weight:300;
    line-height:1.65;
    overflow-x:hidden;
}

body.menu-open {
    overflow:hidden;
}

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

a {
    color:inherit;
}

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

.skip-link {
    position:fixed;
    top:-60px;
    left:20px;
    z-index:2000;
    background:var(--ink);
    color:#fff;
    padding:10px 16px;
    text-decoration:none;
}

.skip-link:focus {
    top:20px;
}

/* ================= HEADER ================= */
.site-header {
    position: fixed;
    inset: 0 0 auto;
    z-index: 1000;
    height: 82px;
    padding: 0 clamp(22px, 5vw, 72px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: rgba(247,244,237,.96);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(23,26,24,.08);
    transition: .3s ease;
}

.site-header.solid {
    height: 68px;
    background: rgba(247,244,237,.98);
    box-shadow: 0 8px 28px rgba(20,30,24,.06);
}

.brand img {
    width: 70px;
    height: auto;
    object-fit: contain;
    display: block;
    filter: none;
}

.solid .brand img {
    filter: none;
}

.desktop-nav {
    display:flex;
    align-items:center;
    gap:30px;
}

.desktop-nav a {
    text-decoration: none;
    color: var(--ink);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 2px;
    text-transform: uppercase;
    transition: color .25s ease;
}

.solid .desktop-nav a {
    color: var(--ink);
}

.desktop-nav a:hover,
.solid .desktop-nav a:hover {
    color: var(--green);
}

.nav-cta {
    border: 1px solid var(--ink);
    border-radius: 999px;
    padding: 10px 20px;
    color: var(--ink);
    transition: background .25s ease, color .25s ease;
}

.nav-cta:hover {
    background: var(--ink);
    color: #fff !important;
}

.menu-button {
    display:none;
    background:none;
    border:0;
    padding:8px;
    cursor:pointer;
}

.menu-button span {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--ink);
    margin: 5px;
}

.solid .menu-button span {
    background: var(--ink);
}

.mobile-menu {
    position:fixed;
    inset:0;
    z-index:1100;
    background:rgba(247,244,237,.98);
    display:flex;
    visibility:hidden;
    opacity:0;
    transform:translateY(-12px);
    transition:.25s;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:28px;
}

.mobile-menu.open {
    visibility:visible;
    opacity:1;
    transform:none;
}

.mobile-menu a {
    text-decoration:none;
    font-size:13px;
    font-weight:600;
    letter-spacing:2px;
    text-transform:uppercase;
}

.mobile-cta {
    color:var(--green)!important;
}

.menu-close {
    position:absolute;
    right:24px;
    top:18px;
    border:0;
    background:none;
    font-size:38px;
    cursor:pointer;
}

/* ================= HERO ================= */
.hero {
    min-height: 720px;
    height: 100svh;
    padding-top: 82px;
    display: grid;
    grid-template-columns: minmax(360px,48%) 1fr;
    gap: 0;
    background: var(--cream);
}

.hero-photo {
    position: relative;
    overflow: hidden;
    background: var(--cream);
}

.hero-photo::after {
    content: none;
}

.hero-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 22%;
    display: block;
    filter: saturate(.82) contrast(1.04);
}

.hero-content {
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:120px clamp(34px,6vw,90px) 70px;
}

.eyebrow {
    font-size:10px;
    font-weight:600;
    letter-spacing:3.5px;
    text-transform:uppercase;
    color:var(--green-light);
    margin-bottom:18px;
}

.hero-logo {
    width:min(290px,75%);
    filter:brightness(.12);
    margin-bottom:28px;
}

.hero h1,.about h2,.section-heading h2,.difference-heading h2,.faq h2,.contact h2 {
    font-family:var(--serif);
    font-weight:500;
    line-height:1.02;
}

.hero h1 {
    font-size:clamp(44px,5vw,72px);
    max-width:650px;
    margin-bottom:24px;
}

.hero h1 em,h2 em {
    font-weight:400;
    color:var(--green-light);
}

.hero-text {
    max-width:580px;
    color:var(--muted);
    font-size:14px;
    line-height:1.85;
}

.hero-actions {
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin:34px 0 42px;
}

.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:0 28px;
    border-radius:999px;
    text-decoration:none;
    border:1px solid transparent;
    font-size:10px;
    font-weight:600;
    letter-spacing:2px;
    text-transform:uppercase;
    cursor:pointer;
    transition:.25s;
}

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

.button-primary {
    background:var(--ink);
    color:#fff;
}

.button-primary:hover {
    background:var(--green);
}

.button-secondary {
    border-color:rgba(23,26,24,.22);
}

.button-secondary:hover {
    border-color:var(--green);
    color:var(--green);
}

.button-white {
    background:#fff;
    color:var(--ink);
}

.button-outline-light {
    border-color:rgba(255,255,255,.25);
    color:#fff;
}

.hero-badges {
    display:flex;
    gap:clamp(20px,4vw,48px);
    padding-top:28px;
    border-top:1px solid rgba(23,26,24,.1);
}

.hero-badges div {
    display:flex;
    flex-direction:column;
}

.hero-badges span {
    font-size:9px;
    letter-spacing:2px;
    text-transform:uppercase;
    color:var(--green-light);
    font-weight:600;
}

.hero-badges strong {
    font-family:var(--serif);
    font-size:20px;
    font-weight:500;
}

/* ================= SOBRE ================= */
.section-dark {
    background:var(--ink);
    color:#fff;
}

.about {
    display:grid;
    grid-template-columns:1.15fr .85fr;
}

.about>div {
    padding:clamp(70px,9vw,120px) clamp(28px,7vw,110px);
}

.about-copy {
    border-right:1px solid rgba(255,255,255,.08);
}

.about h2,.section-heading h2,.difference-heading h2,.faq h2,.contact h2 {
    font-size:clamp(42px,4.5vw,64px);
    margin-bottom:18px;
}

.section-line {
    width:42px;
    height:2px;
    background:var(--green-light);
    margin-bottom:30px;
}

.about p:not(.eyebrow) {
    color:rgba(255,255,255,.54);
    font-size:13px;
    margin-bottom:14px;
}

.about .lead {
    font-family:var(--serif);
    font-size:22px!important;
    color:rgba(255,255,255,.85)!important;
}

.about blockquote {
    border-left:2px solid var(--green-light);
    padding:20px 24px;
    margin-top:28px;
    background:rgba(76,128,96,.08);
    font-family:var(--serif);
    font-size:17px;
    font-style:italic;
    color:rgba(255,255,255,.68);
}

.stats {
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:2px;
    margin-top:40px;
}

.stats div {
    padding:28px 22px;
    background:rgba(255,255,255,.045);
    border:1px solid rgba(255,255,255,.06);
    display:flex;
    flex-direction:column;
}

.stats strong {
    font-family:var(--serif);
    font-size:40px;
    color:var(--green-light);
    font-weight:400;
}

.stats span {
    font-size:9px;
    letter-spacing:1.6px;
    text-transform:uppercase;
    color:rgba(255,255,255,.36);
}

/* ================= ÁREAS ================= */
.section-light {
    background:var(--cream);
}

.section-heading {
    padding:clamp(70px,8vw,110px) clamp(24px,7.5vw,120px) 55px;
}

.section-heading>p:last-child {
    max-width:600px;
    color:var(--muted);
    font-size:14px;
}

.area-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    border-top:1px solid rgba(0,0,0,.08);
}

.area-card {
    position:relative;
    padding:44px 30px 50px;
    border-right:1px solid rgba(0,0,0,.08);
    min-height:430px;
    overflow:hidden;
    transition:.3s;
}

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

.area-card::after {
    content:"";
    position:absolute;
    inset:auto 0 0;
    height:4px;
    background:var(--green);
    transform:scaleX(0);
    transform-origin:left;
    transition:.3s;
}

.area-card:hover {
    background:var(--cream-2);
}

.area-card:hover::after {
    transform:scaleX(1);
}

.card-number {
    display:block;
    font-family:var(--serif);
    font-size:64px;
    line-height:1;
    color:rgba(45, 148, 88, 0.12);
    margin-bottom:22px;
}

.card-icon {
    width:46px;
    height:46px;
    border-radius:12px;
    background:var(--ink);
    display:grid;
    place-items:center;
    margin-bottom:20px;
}

.area-card h3 {
    font-family: var(--serif);
    font-size: 25px;
    line-height: 1.15;
    margin-bottom: 12px;
    color: var(--ink);
}

/* Títulos dos diferenciais */
.difference-grid h3 {
    font-family: var(--serif);
    font-size: 25px;
    line-height: 1.15;
    margin-bottom: 12px;
    color: var(--ink);
}

.card-question {
    font-size: 14px;
    line-height: 1.6;
    color: var(--muted);
    font-style: italic;
    margin-bottom: 22px;
}

.area-card ul {
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    list-style:none;
}

.area-card li {
    font-size: 13px;
    font-weight: 500;
    color: #fff;
    background: var(--green);
    border: 1px solid var(--green);
    border-radius: 999px;
    padding: 8px 14px;
    line-height: 1.2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.areas-footer {
    padding:38px clamp(24px,7.5vw,120px);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    border-top:1px solid rgba(0,0,0,.08);
}

.areas-footer p {
    max-width:600px;
    color:var(--muted);
    font-size:13px;
}

/* ================= DIFERENCIAIS ================= */
.differences {
    padding: clamp(70px, 8vw, 110px) clamp(24px, 7.5vw, 120px);
    background: var(--cream-2);
}

.difference-heading {
    display: block;
    margin-bottom: 50px;
}

.difference-heading h2 {
    width: 100%;
    max-width: none;
}

.difference-heading h2 em {
    white-space: nowrap;
}

.difference-heading>p {
    font-family:var(--serif);
    font-size:24px;
    color:var(--muted);
}

.difference-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
}

.difference-grid article {
    background:#fff;
    padding:42px 34px;
    min-height:280px;
    box-shadow:0 0 0 rgba(0,0,0,0);
    transition:.3s;
}

.difference-grid article:hover {
    transform:translateY(-6px);
    box-shadow:var(--shadow);
}

.difference-grid span {
    font-family:var(--serif);
    font-size:48px;
    color:rgba(36,77,53,.16);
}

.difference-grid p {
    font-size:13px;
    color:var(--muted);
}

/* ================= FAQ ================= */
.faq {
    padding:clamp(70px,8vw,110px) clamp(24px,7.5vw,120px);
    display:grid;
    grid-template-columns:300px 1fr;
    gap:clamp(50px,9vw,120px);
}

.faq-intro {
    align-self:start;
    position:sticky;
    top:100px;
}

.faq-intro>p:not(.eyebrow) {
    color:rgba(255,255,255,.45);
    font-size:13px;
    margin-bottom:28px;
}

.faq-item {
    border-bottom:1px solid rgba(255,255,255,.09);
}

.faq-item:first-child {
    border-top:1px solid rgba(255,255,255,.09);
}

.faq-item button {
    width:100%;
    padding:24px 0;
    border:0;
    background:none;
    color:rgba(255,255,255,.8);
    display:flex;
    justify-content:space-between;
    gap:20px;
    text-align:left;
    cursor:pointer;
}

.faq-item button span {
    font-size:14px;
}

.faq-item button b {
    width:30px;
    height:30px;
    border:1px solid rgba(255,255,255,.2);
    border-radius:50%;
    display:grid;
    place-items:center;
    font-weight:300;
    transition:.3s;
}

.faq-item.open button b {
    transform:rotate(45deg);
    background:var(--green-light);
}

.faq-answer {
    display:grid;
    grid-template-rows:0fr;
    transition:grid-template-rows .35s;
}

.faq-answer p {
    overflow:hidden;
    color:rgba(255,255,255,.46);
    font-size:13px;
    line-height:1.85;
}

.faq-item.open .faq-answer {
    grid-template-rows:1fr;
}

.faq-item.open .faq-answer p {
    padding-bottom:24px;
}

/* ================= CTA ================= */
.cta-section {
    background:var(--green);
    color:#fff;
    padding:70px clamp(24px,7.5vw,120px);
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:40px;
}

.cta-section h2 {
    font-family:var(--serif);
    font-size:clamp(36px,4vw,56px);
    max-width:760px;
    line-height:1.08;
}

.cta-section p {
    color:rgba(255,255,255,.7);
    margin-top:10px;
}

/* ================= CONTATO ================= */
.contact {
    padding:clamp(70px,8vw,110px) clamp(24px,7.5vw,120px);
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:clamp(50px,8vw,110px);
}

.contact-info>p:not(.eyebrow) {
    color:var(--muted);
    font-size:13px;
    max-width:570px;
}

.contact-links {
    display:grid;
    gap:10px;
    margin-top:32px;
}

.contact-links>a,.contact-links>div {
    display:flex;
    align-items:center;
    gap:16px;
    background:var(--cream-2);
    padding:17px 20px;
    text-decoration:none;
    border:1px solid transparent;
    transition:.25s;
}

.contact-links>a:hover {
    border-color:var(--green);
    transform:translateX(5px);
}

.contact-links>*>span {
    width:42px;
    height:42px;
    background:#dedbd2;
    border-radius:10px;
    display:grid;
    place-items:center;
}

.contact-links strong,.contact-links small {
    display:block;
}

.contact-links strong {
    font-size:12px;
}

.contact-links small {
    font-size:11px;
    color:var(--muted);
}

.contact-form {
    display:grid;
    gap:16px;
}

.form-row {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
}

.contact-form label {
    display:grid;
    gap:7px;
    font-size:9px;
    font-weight:600;
    letter-spacing:1.7px;
    text-transform:uppercase;
    color:var(--muted);
}

.contact-form input,.contact-form select,.contact-form textarea {
    width:100%;
    border:1px solid rgba(0,0,0,.12);
    background:var(--cream-2);
    padding:14px 15px;
    outline:none;
    color:var(--ink);
    font-size:13px;
    text-transform:none;
    letter-spacing:0;
}

.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus {
    border-color:var(--green);
    box-shadow:0 0 0 3px rgba(36,77,53,.08);
}

.contact-form textarea {
    min-height:130px;
    resize:vertical;
}

.consent {
    grid-template-columns:auto 1fr!important;
    align-items:start;
    letter-spacing:0!important;
    text-transform:none!important;
    font-weight:400!important;
    font-size:11px!important;
}

.consent input {
    width:auto;
    margin-top:4px;
}

.contact-form .button {
    justify-self:start;
}

/* ================= FOOTER ================= */
footer {
    background:#101310;
    color:#fff;
    padding:60px clamp(24px,7.5vw,120px) 0;
}

.footer-grid {
    display:grid;
    grid-template-columns:1.6fr repeat(3,1fr);
    gap:50px;
    padding-bottom:50px;
    border-bottom:1px solid rgba(255,255,255,.08);
}

.footer-brand img {
    width:190px;
    filter:brightness(0) invert(1);
    opacity:.72;
    margin-bottom:18px;
}

.footer-brand p {
    max-width:280px;
    color:rgba(255,255,255,.35);
    font-size:12px;
}

.footer-grid h3 {
    font-size:9px;
    letter-spacing:2px;
    text-transform:uppercase;
    color:var(--green-light);
    margin-bottom:16px;
}

.footer-grid>div:not(.footer-brand) {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
}

.footer-grid a {
    text-decoration:none;
    color:rgba(255,255,255,.38);
    font-size:12px;
    margin-bottom:9px;
}

.footer-grid a:hover {
    color:#fff;
}

.footer-bottom {
    padding:20px 0;
    display:flex;
    justify-content:space-between;
    gap:20px;
    flex-wrap:wrap;
    color:rgba(255,255,255,.22);
    font-size:10px;
}


/* ================= CRÉDITO LPSTUDIO ================= */
.footer-credit {
    width: 100%;
    padding: 18px 0 22px;
    border-top: 1px solid rgba(255,255,255,.07);
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
}

.footer-credit span {
    font-size: 9px;
    font-weight: 500;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    color: rgba(255,255,255,.28);
}

.footer-credit a {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .8px;
    color: rgba(255,255,255,.62);
    text-decoration: none;
    border: 0;
    outline: 0;
    transition: color .25s ease;
}

.footer-credit a:hover {
    color: #fff;
}

.whatsapp-float {
    position:fixed;
    right:22px;
    bottom:22px;
    z-index:900;
    width:56px;
    height:56px;
    border-radius:50%;
    background:#25d366;
    color:#fff;
    text-decoration:none;
    display:grid;
    place-items:center;
    font-size:24px;
    box-shadow:0 12px 30px rgba(0,0,0,.22);
    transition:.25s;
}

.whatsapp-float:hover {
    transform:translateY(-4px) scale(1.04);
}

.reveal {
    opacity:0;
    transform:translateY(22px);
    transition:opacity .7s,transform .7s;
}

.reveal.visible {
    opacity:1;
    transform:none;
}

@media(prefers-reduced-motion:reduce) {
html {
    scroll-behavior:auto;
}

*,*::before,*::after {
    animation:none!important;
    transition:none!important;
}

.reveal {
    opacity:1;
    transform:none;
}

}

/* ================= RESPONSIVO ================= */
@media(max-width:1050px) {
.desktop-nav {
    display:none;
}

.menu-button {
    display:block;
}

/* ================= HERO ================= */
.hero {
    grid-template-columns:45% 55%;
}

.hero-content {
    padding-inline:44px;
}

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

.area-card:nth-child(2) {
    border-right:0;
}

.area-card:nth-child(-n+2) {
    border-bottom:1px solid rgba(0,0,0,.08);
}

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

}

@media(max-width:760px) {
/* ================= HEADER ================= */
.site-header {
    height:68px;
    padding-inline:20px;
}

.brand img {
    width:150px;
}

/* ================= HERO ================= */
.hero {
    height:auto;
    min-height:0;
    padding-top:68px;
    display:flex;
    flex-direction:column;
}

.hero-photo {
    height:min(108vw,620px);
    order:1;
}

.hero-photo::after {
    content:none;
}

.hero-content {
    order:2;
    padding:50px 24px 58px;
}

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

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

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

.about-copy {
    border-right:0;
    border-bottom:1px solid rgba(255,255,255,.08);
}

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

.area-card,.area-card:nth-child(2) {
    border-right:0;
    border-bottom:1px solid rgba(0,0,0,.08);
}

.areas-footer,
.cta-section {
    align-items:flex-start;
    flex-direction:column;
}

.difference-heading,
.faq,
.contact {
    grid-template-columns:1fr;
}

.difference-heading {
    gap:14px;
}

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

.faq-intro {
    position:static;
}

.form-row {
    grid-template-columns:1fr;
}

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

.whatsapp-float {
    width:52px;
    height:52px;
    right:16px;
    bottom:16px;
}

}

@media(max-width:480px) {
.hero-actions {
    display:grid;
}

.hero-actions .button {
    width:100%;
}

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

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

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


.footer-bottom span {
    display:block;
    margin-bottom:8px;
}


@media (max-width: 700px) {
    .footer-signature {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
}

/* Assinatura LPstudio */


/* Remove qualquer sublinhado herdado */


/* MOBILE */
@media (max-width: 700px) {
    .footer-credit {
        justify-content: center;
        padding: 20px;
    }
}


}

@media (max-width:700px) {
    .footer-credit {
        justify-content:center;
        text-align:center;
    }
}