* { box-sizing: border-box; }
:root { --ink: #171717; --charcoal: #242424; --gold: #d3a900; --gold-dark: #a68100; --paper: #f7f7f6; --mist: #e8e8e7; --line: #d7d6d1; --serif: "Playfair Display", Georgia, serif; --sans: "DM Sans", Arial, sans-serif; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 15px; line-height: 1.55; }
button, input { font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
.container { width: min(1120px, calc(100% - 48px)); margin: 0 auto; }
.section { padding: 92px 0; }
.section--light { background: var(--paper); }
.section--mist { background: var(--mist); }
.section--white { background: #fff; }
.hero { min-height: 560px; background: linear-gradient(110deg, rgba(13,13,13,.84), rgba(34,34,34,.46)), url("hero-cidade.jpg") center/cover; color: #fff; position: relative; overflow: hidden; }
.hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.36) 0%, transparent 70%); }
.hero__content { min-height: 560px; display: flex; align-items: center; position: relative; }
.hero__copy { max-width: 600px; padding: 72px 0 90px; }
.eyebrow, .section-kicker { text-transform: uppercase; color: var(--gold); letter-spacing: .18em; font-weight: 700; font-size: 12px; margin: 0 0 14px; }
.hero h1 { font-size: 28px; line-height: 1.15; max-width: 700px; margin: 0 0 24px; font-weight: 700; letter-spacing: 0; }
.hero h1 span { display: block; }
.hero__intro { font-size: 18px; line-height: 1.45; max-width: 500px; margin: 0 0 34px; color: #eeeeec; }
.hero__social { position: absolute; right: 0; top: 50%; transform: translateY(-50%); display: grid; gap: 12px; }
.hero__social a, .hero__social button { border: 1px solid rgba(211,169,0,.7); width: 42px; height: 42px; display: grid; place-items: center; color: var(--gold); font-size: 19px; transition: .2s; background: transparent; }
.hero__social a:hover, .hero__social button:hover { color: #fff; background: var(--gold); }
.hero__curve { position: absolute; bottom: -2px; left: -3%; width: 106%; height: 80px; background: var(--paper); clip-path: ellipse(56% 52% at 51% 100%); }
.button { border: 0; display: inline-flex; justify-content: center; align-items: center; gap: 13px; min-height: 52px; padding: 0 26px; font-weight: 700; font-size: 12px; letter-spacing: .07em; text-transform: uppercase; transition: transform .2s, background .2s, color .2s; }
.button:hover { transform: translateY(-2px); }
.button--gold { background: var(--gold); color: #181818; }
.button--gold:hover { background: #e3bc17; }
.button--small { min-height: 46px; padding: 0 20px; font-size: 10px; }
.button--outline { border: 1px solid var(--gold); background: transparent; color: var(--gold-dark); }
.section-heading { margin-bottom: 42px; }
.section-heading--center { text-align: center; }
.section-heading h2, .cta-band h2 { margin: 0; font: italic 700 clamp(1.8rem, 3vw, 2.65rem)/1.16 var(--serif); }
.section-heading p:not(.section-kicker) { margin: 10px 0 0; font-size: 12px; }
.about { padding-top: 58px; }
.about__grid { display: grid; grid-template-columns: 380px 1fr; gap: 72px; align-items: start; }
.portrait-wrap { aspect-ratio: 4/5; overflow: hidden; background: #dededb; }
.portrait-wrap img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.about__copy { font-size: 13px; }
.about__copy p { margin-top: 0; margin-bottom: 17px; }
.check-list, .benefit-list { padding-left: 19px; margin: 10px 0 22px; }
.check-list li::marker { content: ""; }
.benefit-list { list-style: none; padding-left: 0; }
.benefit-list li { padding-left: 23px; margin-bottom: 10px; position: relative; }
.benefit-list li::before { content: "✓"; color: var(--gold-dark); font-weight: 700; position: absolute; left: 0; }
.services { padding-top: 76px; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); max-width: 960px; margin: auto; background: var(--charcoal); color: #fff; }
.service-card { text-align: center; padding: 34px 28px 30px; border-right: 1px solid #454545; }
.service-card:last-child { border-right: 0; }
.service-icon { color: var(--gold); font-size: 39px; line-height: 1; margin-bottom: 18px; }
.service-card h3 { font: italic 700 21px var(--serif); margin: 0 0 10px; }
.service-card p { min-height: 112px; color: #d2d2d0; font-size: 12px; line-height: 1.55; margin: 0 0 21px; }
.differentials { padding-top: 68px; padding-bottom: 75px; }
.differentials .section-heading { margin-bottom: 27px; }
.differential-grid { display: grid; grid-template-columns: repeat(4, 1fr); max-width: 920px; margin: auto; gap: 5px; }
.differential { min-height: 155px; background: var(--gold); display: grid; place-items: center; align-content: center; text-align: center; padding: 18px; }
.differential span { font-size: 29px; line-height: 1; margin-bottom: 12px; color: #111; }
.differential strong { font: italic 700 17px/1.25 var(--serif); }
.cta-band { background: linear-gradient(rgba(14,14,14,.89), rgba(14,14,14,.94)), url("https://images.unsplash.com/photo-1589829545856-d10d557cf95f?auto=format&fit=crop&w=1900&q=85") center/cover; color: #fff; text-align: center; padding: 82px 0; }
.cta-band__inner { max-width: 650px; }
.cta-band__icon { border: 1px solid var(--gold); border-radius: 50%; width: 52px; height: 52px; display: grid; place-items: center; color: var(--gold); font: 700 25px var(--serif); margin: 0 auto 22px; }
.cta-band h2 { margin-bottom: 12px; }
.cta-band p:not(.section-kicker) { color: #ddd; font-size: 14px; max-width: 580px; margin: 0 auto 26px; }
.process { padding-bottom: 72px; }
.process-grid { display: grid; grid-template-columns: repeat(4, 1fr); max-width: 940px; margin: 65px auto 30px; position: relative; }
.process-grid::before { content: ""; position: absolute; top: 31px; left: 11%; right: 11%; border-top: 1px dashed #dbbe48; z-index: 0; }
.process-step { text-align: center; padding: 0 16px; position: relative; z-index: 1; }
.process-icon { width: 62px; height: 62px; margin: 0 auto 18px; border: 2px solid var(--gold); display: grid; place-items: center; background: var(--paper); color: var(--gold-dark); font-size: 26px; }
.process-step h3 { font: italic 700 17px/1.16 var(--serif); margin: 0 0 12px; }
.process-step p, .process-step span { font-size: 11px; line-height: 1.45; display: block; }
.process-step span { color: #555; margin-top: 12px; }
.process-cta { text-align: center; }
.review-placeholder { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); max-width: 680px; margin: 48px auto 20px; text-align: center; padding: 26px; }
.quote-mark { color: var(--gold); font: 700 52px var(--serif); line-height: .7; }
.review-placeholder p { font: italic 18px var(--serif); margin: 14px 0; }
.review-placeholder span { color: #777; font-size: 12px; }
.footer { padding: 40px 0 30px; }
.footer__grid { display: grid; grid-template-columns: repeat(3, 1fr); text-align: center; gap: 25px; }
.footer-contact { border: 0; display: grid; gap: 10px; justify-items: center; font-size: 13px; background: transparent; color: inherit; }
.footer-contact span { color: var(--gold-dark); font-size: 23px; }
.footer-contact small { font-size: 11px; }
.footer__legal { text-align: center; font: italic 13px var(--serif); padding-top: 35px; }
.footer__legal span { font: 11px var(--sans); color: #777; }
.floating-whatsapp { position: fixed; right: 24px; bottom: 24px; width: 56px; height: 56px; border: 0; padding: 0; background: #1dce70; color: white; border-radius: 50%; display: grid; place-items: center; font-size: 25px; box-shadow: 0 7px 22px rgba(0,0,0,.22); z-index: 5; transition: transform .2s; }
.floating-whatsapp:hover { transform: scale(1.08); }
.modal[hidden] { display: none; }
.modal { position: fixed; inset: 0; z-index: 20; display: grid; place-items: center; padding: 20px; }
.modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.7); backdrop-filter: blur(4px); }
.modal__card { position: relative; width: min(100%, 470px); background: #fff; padding: 38px; box-shadow: 0 22px 60px rgba(0,0,0,.32); animation: modalIn .22s ease-out; }
.modal__close { position: absolute; right: 14px; top: 9px; border: 0; background: none; color: #555; font-size: 28px; line-height: 1; }
.modal__card h2 { font: italic 700 29px var(--serif); margin: 0 0 8px; }
.modal__intro { font-size: 13px; color: #666; margin: 0 0 25px; }
#contact-form { display: grid; gap: 8px; }
#contact-form label { color: #444; font-weight: 700; font-size: 12px; margin-top: 7px; }
#contact-form input { width: 100%; border: 1px solid #c8c7c2; padding: 14px; outline: none; background: #fafafa; }
#contact-form input:focus { border-color: var(--gold-dark); box-shadow: 0 0 0 2px rgba(211,169,0,.15); }
.modal__submit { width: 100%; margin-top: 16px; }
.modal__privacy { color: #777; display: block; font-size: 10px; margin-top: 16px; text-align: center; }
body.modal-open { overflow: hidden; }
@keyframes modalIn { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
.reveal { animation: rise .65s ease both; }
@keyframes rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 800px) { .container { width: min(100% - 34px, 600px); } .section { padding: 68px 0; } .hero, .hero__content { min-height: 650px; } .hero__copy { padding-top: 45px; } .hero h1 { font-size: 28px; } .hero h1 span { display: inline; } .hero__intro { font-size: 16px; } .hero__social { top: auto; bottom: 118px; right: 17px; } .about__grid { grid-template-columns: 1fr; gap: 32px; } .portrait-wrap { width: min(100%, 360px); margin: 0 auto; } .service-grid, .differential-grid { grid-template-columns: 1fr; } .service-card { border-right: 0; border-bottom: 1px solid #454545; } .service-card:last-child { border-bottom: 0; } .service-card p { min-height: 0; } .differential { min-height: 135px; } .process-grid { grid-template-columns: 1fr 1fr; row-gap: 48px; margin-top: 40px; } .process-grid::before { display: none; } .footer__grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
