/* ============================================================
   DANTAS LEGACY GROUP · Live well. Leave legacy.
   Editorial old-money · granada + dourado + marfim
   ============================================================ */

:root{
  --garnet:     #8A2328;
  --garnet-2:   #992B2B;
  --wine:       #5E181D;
  --wine-deep:  #461114;
  --gold:       #D9A441;
  --gold-2:     #EFC56A;
  --gold-deep:  #A87722;
  --gold-ink:   #7A5518;
  --ivory:      #F8F3EA;
  --paper:      #F3ECDE;
  --white:      #FFFDF9;
  --ink:        #241511;
  --muted:      #6E5B50;
  --line:       #E4D8C4;
  --radius:     4px;
  --shadow:     0 30px 70px -30px rgba(36,21,17,.35);
  --shadow-sm:  0 12px 34px -18px rgba(36,21,17,.3);
  --serif:      "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans:       "Jost", "Segoe UI", Arial, sans-serif;
  --grad-gold:  linear-gradient(100deg, var(--gold-deep) 0%, var(--gold-2) 45%, var(--gold) 100%);
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:92px; }
body{
  font-family:var(--sans);
  font-weight:300;
  color:var(--ink);
  background:var(--ivory);
  line-height:1.7;
  font-size:16.5px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }

.container{ width:min(1140px, 92vw); margin-inline:auto; }

/* ---------- tipografia ---------- */
h1,h2,h3{ font-family:var(--serif); font-weight:500; line-height:1.12; color:var(--ink); }
h2{ font-size:clamp(2rem, 4vw, 3.1rem); letter-spacing:-.01em; }
h3{ font-size:1.35rem; }
h1 em, h2 em, h3 em{
  font-style:italic; font-weight:500;
  background:var(--grad-gold);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:var(--gold-deep);
}
.section--garnet h2 em, .cta h2 em, .hero em{ -webkit-text-fill-color:transparent; }
.eyebrow{
  display:inline-flex; align-items:center; gap:.7rem;
  font-size:.74rem; font-weight:600; letter-spacing:.34em; text-transform:uppercase;
  color:var(--gold-ink); margin-bottom:1.1rem;
}
.eyebrow::before{ content:""; width:38px; height:1px; background:var(--gold-deep); }
.eyebrow--gold{ color:var(--gold-2); }
.eyebrow--gold::before{ background:var(--gold-2); }
.lead{ font-size:1.13rem; font-weight:300; }
.lead--light{ color:#F3E3CB; max-width:640px; }

/* ---------- botões ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.9rem 1.9rem; border-radius:2px;
  font-family:var(--sans); font-weight:500; font-size:.85rem;
  letter-spacing:.18em; text-transform:uppercase; text-decoration:none;
  transition:transform .3s ease, box-shadow .3s ease, background .3s ease, color .3s ease;
  cursor:pointer; border:0;
}
.btn:hover{ transform:translateY(-2px); }
.btn--gold{
  background:var(--grad-gold); color:var(--wine-deep);
  box-shadow:0 14px 36px -14px rgba(217,164,65,.55);
}
.btn--gold:hover{ box-shadow:0 20px 44px -14px rgba(217,164,65,.75); }
.btn--ghost{
  background:transparent; color:#F8EFDF;
  border:1px solid rgba(239,197,106,.55);
}
.btn--ghost:hover{ background:rgba(239,197,106,.12); }
.btn--wine{
  background:var(--wine); color:#F8EFDF;
}
.btn--wine:hover{ background:var(--garnet); }
.btn--nav{
  background:transparent; border:1px solid rgba(248,239,223,.5); color:#F8EFDF;
  padding:.55rem 1.2rem; font-size:.74rem;
}
.nav__lang{
  display:inline-flex; align-items:center; justify-content:center;
  font-size:.72rem; font-weight:600; letter-spacing:.18em; text-decoration:none;
  padding:.42rem .7rem; border-radius:2px;
  border:1px solid rgba(217,164,65,.55);
  background:var(--grad-gold);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
  transition:border-color .3s ease;
}
.nav__lang:hover{ border-color:var(--gold-2); }
.nav.is-scrolled .nav__lang{ border-color:var(--gold-deep); }
.nav.is-scrolled .btn--nav{ border-color:var(--gold-deep); color:var(--gold-ink); }
.btn--nav:hover{ background:rgba(217,164,65,.14); }
.btn--lg{ padding:1.05rem 2.4rem; font-size:.95rem; }

/* ---------- nav ---------- */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:100;
  transition:border-color .35s ease;
  border-bottom:1px solid transparent;
}
/* fundo/blur num pseudo-elemento: backdrop-filter no próprio header viraria
   containing block e quebraria o .nav__links fixed do menu mobile */
.nav::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:rgba(248,243,234,.9);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  opacity:0; transition:opacity .35s ease;
}
.nav.is-scrolled{ border-bottom-color:var(--line); }
.nav.is-scrolled::before{ opacity:1; }
.nav__inner{
  width:min(1240px, 94vw); margin-inline:auto;
  display:flex; align-items:center; justify-content:space-between;
  padding:1rem 0;
}
.nav__logo{ display:flex; align-items:center; gap:.9rem; text-decoration:none; }
.nav__mono{
  font-family:var(--sans); font-weight:400; font-size:1.05rem; letter-spacing:.32em;
  background:var(--grad-gold);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
  padding-right:.9rem; border-right:1px solid rgba(217,164,65,.5);
}
.nav__name{
  font-family:var(--sans); font-weight:400; font-size:.82rem;
  letter-spacing:.26em; text-transform:uppercase; color:#F8EFDF;
  transition:color .35s ease;
}
.nav__name em{ font-style:normal; font-weight:600; }
.nav.is-scrolled .nav__name{ color:var(--ink); }
.nav__links{ display:flex; align-items:center; gap:1.7rem; }
.nav__links a:not(.btn){
  font-size:.8rem; font-weight:400; letter-spacing:.14em; text-transform:uppercase;
  text-decoration:none; color:rgba(248,239,223,.92);
  transition:color .25s ease;
}
.nav.is-scrolled .nav__links a:not(.btn){ color:var(--ink); }
.nav__links a:not(.btn):hover{ color:var(--gold); }
.nav__burger{
  display:none; flex-direction:column; gap:5px;
  background:none; border:0; padding:.5rem; cursor:pointer;
}
.nav__burger span{
  width:26px; height:2px; border-radius:2px; background:#F8EFDF;
  transition:transform .3s ease, opacity .3s ease, background .3s ease;
}
.nav.is-scrolled .nav__burger span{ background:var(--ink); }
.nav__burger[aria-expanded="true"] span{ background:#F8EFDF !important; }
.nav__burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav__burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav__burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ---------- hero ---------- */
.hero{
  position:relative; min-height:100svh;
  display:flex; flex-direction:column; justify-content:center;
  text-align:center; color:#F8EFDF; overflow:hidden;
  background:
    radial-gradient(120% 90% at 50% -10%, rgba(153,43,43,.9), transparent 60%),
    linear-gradient(170deg, var(--garnet) 0%, var(--wine) 62%, var(--wine-deep) 100%);
}
.hero__ghost{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family:var(--serif); font-weight:500; font-style:italic;
  font-size:clamp(6rem, 24vw, 21rem); letter-spacing:.04em;
  color:rgba(217,164,65,.07); pointer-events:none; user-select:none;
}
.hero__ghost--cta{ font-size:clamp(8rem, 30vw, 24rem); color:rgba(217,164,65,.08); font-style:normal; }
.hero__content{ position:relative; z-index:2; padding-top:5.5rem; }
.hero__mono{
  display:flex; flex-direction:column; align-items:center; gap:.1rem;
  margin-bottom:1.6rem;
}
.hero__mono span{
  font-family:var(--sans); font-weight:300; font-size:2rem; line-height:1.06;
  letter-spacing:.1em; margin-right:-.1em;
  background:var(--grad-gold);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
}
.hero__mono span:nth-child(2){ font-weight:600; }
.hero__name{
  font-size:.85rem; font-weight:500; letter-spacing:.5em; text-transform:uppercase;
  color:#F3E3CB; margin-bottom:2rem; margin-right:-.5em;
}
.hero__title{
  font-family:var(--serif); font-weight:500;
  font-size:clamp(2.2rem, 5.2vw, 4rem);
  color:#FCF6EA; max-width:840px; margin-inline:auto;
  text-wrap:balance; margin-bottom:2rem;
}
.hero__tagline{
  font-family:var(--sans); font-weight:400; font-size:.95rem;
  letter-spacing:.42em; text-transform:uppercase; color:#E8CFA6;
  margin-bottom:2.6rem; margin-right:-.42em;
}
.hero__tagline span{ color:var(--gold-2); font-weight:600; }
.hero__ctas{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
.hero__facts{
  position:relative; z-index:2; margin-top:4.5rem;
  border-top:1px solid rgba(239,197,106,.25);
  background:rgba(70,17,20,.5);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.hero__facts-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:1rem;
  padding:1.5rem 0;
}
.fact{ display:flex; flex-direction:column; gap:.15rem; }
.fact__num{
  font-family:var(--serif); font-style:italic; font-weight:500;
  font-size:1.7rem; color:var(--gold-2); line-height:1.1;
}
.fact__label{ font-size:.82rem; color:rgba(248,239,223,.8); font-weight:300; }

/* ---------- seções ---------- */
.section{ padding:clamp(4.5rem, 9vw, 7.5rem) 0; }
.section--paper{ background:var(--paper); }
.section--garnet{
  background:
    radial-gradient(100% 80% at 85% 0%, rgba(153,43,43,.85), transparent 55%),
    linear-gradient(165deg, var(--garnet) 0%, var(--wine) 70%, var(--wine-deep) 100%);
  color:#F3E3CB;
}
.section--garnet h2, .section--garnet h3{ color:#FCF6EA; }
.section__title{ margin-bottom:1rem; max-width:24ch; }

/* ---------- split (o grupo) ---------- */
.split{
  display:grid; grid-template-columns:.62fr 1.38fr;
  gap:clamp(2rem, 6vw, 5rem); align-items:start;
}
.split__text h2{ margin-bottom:1.4rem; max-width:20ch; }
.split__text p{ margin-bottom:1.1rem; }
.mono-card{
  margin-top:1rem;
  background:linear-gradient(170deg, var(--garnet), var(--wine-deep));
  border-radius:var(--radius); box-shadow:var(--shadow);
  padding:3.4rem 2rem 2rem;
  display:flex; flex-direction:column; align-items:center; gap:2.2rem;
}
.mono-card__letters{ display:flex; flex-direction:column; align-items:center; }
.mono-card__letters span{
  font-family:var(--sans); font-weight:300; font-size:3.2rem; line-height:1.06;
  letter-spacing:.08em; margin-right:-.08em;
  background:var(--grad-gold);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
}
.mono-card__letters span:nth-child(2){ font-weight:600; }
.mono-card__base{
  font-size:.72rem; font-weight:500; letter-spacing:.4em; text-transform:uppercase;
  color:rgba(248,239,223,.75); margin-right:-.4em;
}
.quote{
  margin-top:1.8rem; padding-left:1.6rem;
  border-left:2px solid var(--gold);
  font-family:var(--serif); font-style:italic; font-weight:500;
  font-size:1.45rem; line-height:1.45; color:var(--wine);
}

/* ---------- timeline ---------- */
.timeline{
  list-style:none; margin-top:3rem; position:relative;
  display:grid; grid-template-columns:repeat(4, 1fr);
  gap:clamp(1.2rem, 3vw, 2.4rem);
}
.timeline::before{
  content:""; position:absolute; top:.55rem; left:2%; right:2%;
  height:1px; background:linear-gradient(90deg, transparent, var(--gold-deep) 12%, var(--gold-deep) 88%, transparent);
  opacity:.55;
}
.timeline__item{ position:relative; padding-top:2.2rem; }
.timeline__item::before{
  content:""; position:absolute; top:0; left:0;
  width:11px; height:11px; border-radius:50%;
  background:var(--grad-gold);
  box-shadow:0 0 0 4px var(--paper), 0 0 0 5px rgba(168,119,34,.5);
}
.timeline__mark{
  display:block; font-family:var(--serif); font-style:italic; font-weight:500;
  font-size:1.3rem; color:var(--gold-ink); margin-bottom:.4rem;
}
.timeline__item h3{ font-family:var(--sans); font-weight:600; font-size:.92rem; letter-spacing:.16em; text-transform:uppercase; margin-bottom:.5rem; }
.timeline__item p{ font-size:.94rem; color:var(--muted); }

/* ---------- atuação ---------- */
.fronts{
  display:grid; grid-template-columns:repeat(3, 1fr);
  gap:clamp(1.2rem, 2.6vw, 2rem); margin-top:3rem;
}
.front{
  border:1px solid rgba(239,197,106,.3);
  background:rgba(70,17,20,.35);
  border-radius:var(--radius); padding:2.2rem 1.8rem;
  transition:transform .35s ease, background .35s ease, border-color .35s ease;
}
.front:hover{ transform:translateY(-6px); background:rgba(70,17,20,.6); border-color:rgba(239,197,106,.6); }
.front__num{
  display:block; font-family:var(--serif); font-style:italic; font-weight:500;
  font-size:2.1rem; line-height:1;
  background:var(--grad-gold);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
  margin-bottom:1.1rem;
}
.front h3{ font-family:var(--sans); font-weight:600; font-size:1.02rem; letter-spacing:.12em; text-transform:uppercase; margin-bottom:.7rem; color:#FCF6EA; }
.front p{ font-size:.95rem; color:#EED9BC; }

/* ---------- cultura ---------- */
.values{
  display:grid; grid-template-columns:repeat(4, 1fr);
  gap:clamp(1rem, 2.4vw, 1.8rem); margin-top:2.8rem;
}
.value{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.9rem 1.5rem; box-shadow:var(--shadow-sm);
  transition:transform .35s ease, box-shadow .35s ease;
}
.value:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.value__num{
  display:block; font-family:var(--serif); font-style:italic;
  font-size:1.5rem; color:var(--gold-deep); margin-bottom:.8rem;
}
.value h3{ font-family:var(--sans); font-weight:500; font-size:1rem; letter-spacing:.08em; text-transform:uppercase; }

/* ---------- liderança ---------- */
.leader{
  display:grid; grid-template-columns:.78fr 1.22fr;
  gap:clamp(2.4rem, 6vw, 5rem); align-items:center;
}
.leader__media{
  border-radius:var(--radius); overflow:hidden;
  box-shadow:var(--shadow);
  border:1px solid rgba(168,119,34,.35);
  outline:8px solid var(--white); outline-offset:-9px;
  max-width:420px; justify-self:center;
}
.leader__text h2{ margin-bottom:1.2rem; }
.leader__text p{ margin-bottom:1rem; }
.leader__chips{
  display:flex; gap:.6rem; flex-wrap:wrap; margin:1.4rem 0 1.8rem;
  list-style:none; padding:0;
}
.chip{
  font-size:.74rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold-ink); border:1px solid var(--gold-deep);
  border-radius:2px; padding:.45rem 1rem;
}

/* ---------- CTA ---------- */
.cta{
  position:relative; overflow:hidden; text-align:center;
  padding:clamp(5rem, 10vw, 8.5rem) 0;
  background:
    radial-gradient(110% 90% at 50% 110%, rgba(153,43,43,.8), transparent 60%),
    linear-gradient(180deg, var(--wine-deep), var(--wine) 55%, var(--garnet));
  color:#F3E3CB;
}
.cta__inner{ position:relative; z-index:2; }
.cta__kicker{
  font-size:.8rem; font-weight:500; letter-spacing:.42em; text-transform:uppercase;
  color:#E8CFA6; margin-bottom:1.4rem; margin-right:-.42em;
}
.cta h2{
  font-size:clamp(2.6rem, 6.5vw, 4.6rem); color:#FCF6EA;
  margin-bottom:1.2rem;
}
.cta__sub{ margin-bottom:2.4rem; color:rgba(248,239,223,.85); }
.cta__actions{ display:flex; gap:1.1rem; justify-content:center; flex-wrap:wrap; }

/* ---------- footer ---------- */
.footer{ background:var(--wine-deep); color:#D9BFA4; }
.footer__inner{
  display:flex; align-items:center; justify-content:space-between; gap:2rem;
  padding:2.4rem 0 1.4rem; flex-wrap:wrap;
}
.footer__brand{ display:flex; align-items:center; gap:.9rem; text-decoration:none; }
.footer__name{
  font-size:.78rem; font-weight:400; letter-spacing:.26em; text-transform:uppercase; color:#F3E3CB;
}
.footer__nav{ display:flex; gap:1.4rem; flex-wrap:wrap; }
.footer__nav a{
  font-size:.76rem; font-weight:400; letter-spacing:.14em; text-transform:uppercase;
  text-decoration:none; color:#D9BFA4; transition:color .25s ease;
}
.footer__nav a:hover{ color:var(--gold-2); }
.footer__social a{
  width:42px; height:42px; display:grid; place-items:center;
  border-radius:50%; border:1px solid rgba(217,164,65,.4); color:#E8CFA6;
  transition:all .3s ease;
}
.footer__social a:hover{ background:var(--gold); border-color:var(--gold); color:var(--wine-deep); }
.footer__social svg{ width:20px; height:20px; }
.footer__legal{
  border-top:1px solid rgba(217,164,65,.18);
  padding:1.2rem 0 1.6rem; font-size:.8rem; color:#B08E6E;
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
}

/* ---------- reveal (só com JS ativo) ---------- */
.js .reveal{
  opacity:0; transform:translateY(24px);
  transition:opacity .85s cubic-bezier(.22,.7,.3,1), transform .85s cubic-bezier(.22,.7,.3,1);
  transition-delay:var(--d, 0s);
}
.js .reveal.is-visible{ opacity:1; transform:none; }

/* ---------- responsivo ---------- */
@media (max-width: 1020px){
  .values{ grid-template-columns:repeat(2, 1fr); }
  .timeline{ grid-template-columns:repeat(2, 1fr); row-gap:2.4rem; }
  .timeline::before{ display:none; }
  .fronts{ grid-template-columns:1fr; }
}
@media (max-width: 860px){
  .nav__name{ display:none; }
  .nav__links{
    position:fixed; inset:0; z-index:99;
    flex-direction:column; justify-content:center; gap:2rem;
    background:linear-gradient(170deg, var(--wine-deep), var(--garnet));
    transform:translateX(100%); visibility:hidden;
    transition:transform .4s cubic-bezier(.7,0,.3,1), visibility 0s .4s;
  }
  .nav__links.is-open{ transform:translateX(0); visibility:visible; transition:transform .4s cubic-bezier(.7,0,.3,1), visibility 0s 0s; }
  .nav__links a:not(.btn){ color:#F8EFDF !important; font-size:1.05rem; }
  .nav__links .btn--nav{
    background:var(--grad-gold) !important; color:var(--wine-deep) !important;
    border:0; font-size:.9rem; padding:.9rem 2rem;
  }
  .nav__burger{ display:flex; position:relative; z-index:100; }
  .split{ grid-template-columns:1fr; }
  .split__aside{ order:2; }
  .mono-card{ max-width:340px; margin-inline:auto; }
  .leader{ grid-template-columns:1fr; }
  .hero__facts-grid{ grid-template-columns:1fr; gap:1.1rem; text-align:left; }
}
@media (max-width: 520px){
  body{ font-size:15.5px; }
  .values{ grid-template-columns:1fr; }
  .timeline{ grid-template-columns:1fr; }
  .hero__title{ font-size:1.9rem; }
}

/* ---------- acessibilidade ---------- */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .js .reveal{ opacity:1; transform:none; transition:none; }
  *{ transition-duration:.01ms !important; animation-duration:.01ms !important; }
}
:focus-visible{
  outline:2px solid #fff; outline-offset:1px;
  box-shadow:0 0 0 5px var(--gold-ink);
  border-radius:4px;
}
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.skip-link{
  position:fixed; top:-100px; left:1rem; z-index:200;
  background:var(--wine-deep); color:#F8EFDF; font-weight:500;
  letter-spacing:.08em; padding:.8rem 1.4rem; border-radius:0 0 8px 8px;
  text-decoration:none; transition:top .25s ease;
}
.skip-link:focus{ top:0; }
