:root {
  --bordo:#3D0F1E; --telha:#8C3B2F; --ouro:#C9A45C; --linho:#F2E8DC; --noite:#1E1013;
  --areia:#E9DCC8; --muted:#6b5557;
  --serif:'DM Serif Display',Georgia,serif; --sans:'Jost',system-ui,sans-serif;
}
* { box-sizing:border-box; margin:0; }
html { scroll-behavior:smooth; scroll-padding-top:84px; }
body { background:var(--linho); color:var(--noite); font-family:var(--sans); font-size:1.05rem; line-height:1.7; }
img { max-width:100%; display:block; }
a { color:inherit; }
.wrap { max-width:1080px; margin:0 auto; padding:0 16px; }
.skip { position:absolute; left:-999px; } .skip:focus { left:8px; top:8px; background:#fff; padding:8px 12px; z-index:100; }
:focus-visible { outline:2px solid var(--ouro); outline-offset:3px; }

h1,h2,h3 { font-family:var(--serif); font-weight:400; line-height:1.15; }
h1 { font-size:clamp(2.4rem,6vw,4.2rem); max-width:16ch; }
h2 { font-size:clamp(1.8rem,4vw,2.6rem); margin-bottom:20px; }
h3 { font-size:1.35rem; margin-bottom:8px; }
p + p { margin-top:14px; }
.eyebrow { font-size:.75rem; letter-spacing:.25em; text-transform:uppercase; color:var(--ouro); margin-bottom:14px; font-weight:500; }
.eyebrow--dark { color:var(--telha); }

.btn { display:inline-block; background:var(--ouro); color:var(--noite); padding:13px 28px; border:0; text-decoration:none;
  font:500 .8rem var(--sans); letter-spacing:.15em; text-transform:uppercase; cursor:pointer; transition:background .2s; }
.btn:hover { background:#d8b574; }
.btn--sm { padding:9px 18px; }
.btn--ghost { background:transparent; color:var(--linho); border:1px solid var(--ouro); }
.btn--ghost:hover { background:rgba(201,164,92,.15); }
.contact__whats { display:inline-flex; flex-direction:column; align-items:stretch; gap:12px; margin-top:24px; }
.contact__phone { display:flex; align-items:center; gap:14px; padding:0 29px; font:400 1.4rem var(--serif); letter-spacing:.04em; color:var(--linho); text-decoration:none; }
.contact__phone svg { color:var(--ouro); }
.contact__phone:hover { color:var(--ouro); }
.btn--whats { display:inline-flex; align-items:center; justify-content:flex-start; gap:14px; padding:15px 28px; }

/* header */
.header { position:sticky; top:0; z-index:50; background:var(--bordo); color:var(--linho); }
.header__in { display:flex; align-items:center; justify-content:space-between; min-height:76px; }
.header__logo img { height:52px; width:auto; }
.nav { display:flex; align-items:center; gap:28px; }
.nav a:not(.btn) { text-decoration:none; font-size:.85rem; letter-spacing:.12em; text-transform:uppercase; opacity:.9; }
.nav a:not(.btn):hover { color:var(--ouro); }
.nav-toggle { display:none; background:none; border:0; width:44px; height:44px; cursor:pointer; position:relative; }
.nav-toggle span { position:absolute; left:10px; right:10px; height:2px; background:var(--linho); transition:.2s; }
.nav-toggle span:first-child { top:17px; } .nav-toggle span:last-child { top:25px; }
.nav-toggle[aria-expanded="true"] span:first-child { top:21px; transform:rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:last-child { top:21px; transform:rotate(-45deg); }

/* hero */
.hero { position:relative; overflow:hidden; background:var(--bordo); color:var(--linho); padding:96px 0 112px; }
.hero__in { position:relative; z-index:1; }
.hero h1 em { color:var(--ouro); font-style:italic; }
.hero__text { max-width:48ch; margin:22px 0 32px; opacity:.88; font-size:1.15rem; }
.hero__cta { display:flex; flex-wrap:wrap; gap:14px; }
.hero__mark { position:absolute; right:-40px; bottom:-60px; width:min(520px,70vw); color:rgba(242,232,220,.07); }

/* sections */
.section { padding:88px 0; }
.section--dark { background:var(--noite); color:var(--linho); }
.section--sand { background:var(--areia); }

.about { display:grid; gap:48px; grid-template-columns:1fr; align-items:center; }
.about__photo { aspect-ratio:4/5; background:var(--areia); border-bottom:6px solid var(--ouro); overflow:hidden; }
.about__photo img { display:block; width:100%; height:100%; object-fit:cover; }
.facts { list-style:none; padding:0; display:flex; flex-wrap:wrap; gap:32px; margin-top:32px; }
.facts li { display:flex; flex-direction:column; }
.facts strong { font:400 2.2rem/1 var(--serif); color:var(--bordo); }
.facts span { font-size:.8rem; color:var(--muted); }

.cards { display:grid; gap:20px; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); margin-top:32px; }
.card { border:1px solid rgba(201,164,92,.35); padding:28px 24px; transition:border-color .2s, transform .2s; }
.card:hover { border-color:var(--ouro); transform:translateY(-3px); }
.card h3 { color:var(--ouro); }
.card p { opacity:.85; font-size:.98rem; }

.works { display:grid; gap:20px; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); margin-top:32px; }
.work { display:block; text-decoration:none; background:#fff; padding:28px 24px; border-top:4px solid var(--bordo); transition:box-shadow .2s, transform .2s; }
.work:hover { box-shadow:0 12px 30px rgba(61,15,30,.12); transform:translateY(-3px); }
.work__tag { font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--telha); }
.work h3 { margin:8px 0; color:var(--bordo); }
.work p { color:var(--muted); font-size:.98rem; }

.quotes { display:grid; gap:24px; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); margin-top:32px; }
blockquote { background:var(--linho); padding:32px 28px; border-left:4px solid var(--ouro); }
blockquote p { font:400 1.35rem/1.4 var(--serif); color:var(--bordo); }
blockquote footer { margin-top:16px; font-size:.85rem; color:var(--muted); }

.contact { display:grid; gap:48px; grid-template-columns:1fr; }
.contact__list { list-style:none; padding:0; margin-top:24px; }
.contact__list li { margin:6px 0; } .contact__list a { color:var(--ouro); text-underline-offset:4px; }
.form { display:grid; gap:16px; }
.form label { display:grid; gap:6px; font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; }
.form input, .form textarea { font:inherit; font-size:1rem; letter-spacing:0; text-transform:none; padding:12px 14px; background:rgba(242,232,220,.06); color:var(--linho); border:1px solid rgba(201,164,92,.4); border-radius:0; }
.form input:focus, .form textarea:focus { border-color:var(--ouro); outline:none; }
.form .btn { justify-self:start; }
.form__msg { min-height:1.5em; font-size:.9rem; color:var(--ouro); }

.footer { background:var(--bordo); color:var(--linho); padding:32px 0; font-size:.85rem; }
.footer__in { display:flex; align-items:center; gap:14px; }
.footer__social { display:flex; gap:16px; margin-left:auto; }
.footer__social a { color:var(--linho); opacity:.85; display:inline-flex; transition:color .2s, opacity .2s; }
.footer__social a:hover { color:var(--ouro); opacity:1; }

@media (min-width:820px) {
  .about { grid-template-columns:.8fr 1.2fr; }
  .contact { grid-template-columns:1fr 1fr; }
}
@media (max-width:819px) {
  .nav-toggle { display:block; }
  .nav { display:none; position:absolute; top:76px; left:0; right:0; background:var(--bordo); flex-direction:column; align-items:flex-start; padding:16px; gap:18px; border-top:1px solid rgba(201,164,92,.3); }
  .nav.is-open { display:flex; }
  .hero { padding:64px 0 80px; } .section { padding:64px 0; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none !important; } }
