
:root {
  --vinho-rouge: #58111A;       
  --vinho-rouge-dark: #3E0B12;
  --vinho-rouge-light: #7A2430;
  --vinho: #7A1D2A;
  --vinho-dark: #4A0F18;
  --vinho-light: #9A3A47;
  --dourado: #C5A059;           
  --dourado-dark: #9C7A3C;
  --dourado-light: #DCC08A;
  --verde-sage-bg: #F7F3EC;     
  --font-body: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  --font-heading: "Cormorant Garamond", Georgia, serif;
  --font-subheading: "Montserrat", "Helvetica Neue", Arial, sans-serif;
}
body { font-weight: 300; }
h1, h2, h3, h4, h5, h6, .font-\[var\(--font-heading\)\] { font-weight: 600; letter-spacing: .01em; }
h2.text-3xl, h2.text-4xl { line-height: 1.1; }
.hover\:text-\[\#B4924A\]:hover, .text-\[\#B4924A\] { color: var(--dourado) !important; }
.hover\:text-\[\#721B2D\]:hover { color: var(--vinho-rouge) !important; }
.aspect-\[16\/9\] { aspect-ratio: 16 / 9; }
[data-reveal] { transition: opacity 1.1s cubic-bezier(.16,1,.3,1), transform 1.1s cubic-bezier(.16,1,.3,1), translate 1.1s cubic-bezier(.16,1,.3,1); }
header.vlv-scrolled { background: #fff; box-shadow: 0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a; }
.vlv-mobile { border-top: 1px solid #e5e7eb; background: #fff; max-height: calc(100vh - 64px); overflow-y: auto; }
.vlv-mobile a { display: block; padding: .6rem .75rem; border-radius: .375rem; font-size: .9rem; color: #374151; }
.vlv-mobile a:hover { background: #f9fafb; }
.vlv-lb { position: fixed; inset: 0; z-index: 100; background: rgba(12,10,9,.94); display: flex; align-items: center; justify-content: center; padding: 56px 16px; opacity: 0; transition: opacity .25s; }
.vlv-lb.on { opacity: 1; }
.vlv-lb figure { margin: 0; max-width: min(1200px, 100%); max-height: 100%; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.vlv-lb img { max-width: 100%; max-height: calc(100vh - 150px); object-fit: contain; border-radius: 12px; box-shadow: 0 25px 50px -12px #00000080; }
.vlv-lb figcaption { color: #fff; font-family: var(--font-heading); font-size: 1.3rem; text-align: center; }
.vlv-lb figcaption small { display: block; color: #ffffff99; font-family: var(--font-body); font-size: .8rem; margin-top: 4px; }
.vlv-lb button { position: absolute; width: 48px; height: 48px; border-radius: 999px; border: 1px solid #ffffff4d; background: #ffffff1a; color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.vlv-lb button:hover { background: #ffffff33; }
.vlv-lb .x { top: 16px; right: 16px; }
.vlv-lb .p { left: 16px; top: 50%; transform: translateY(-50%); }
.vlv-lb .n { right: 16px; top: 50%; transform: translateY(-50%); }
@media (max-width: 640px) { .vlv-lb .p, .vlv-lb .n { top: auto; bottom: 16px; transform: none; } }
.selo-pre { font-family: var(--font-heading); line-height: 1; }
.tabela-areas { width: 100%; border-collapse: collapse; font-size: .95rem; }
.tabela-areas td { padding: .7rem 0; border-bottom: 1px solid var(--neutral-200); vertical-align: top; }
.tabela-areas td:last-child { text-align: right; white-space: nowrap; font-weight: 600; color: var(--vinho-rouge); padding-left: 1rem; }
.tabela-areas tr.total td { border-bottom: 0; border-top: 2px solid var(--dourado); font-weight: 600; color: var(--vinho-rouge); padding-top: .9rem; }
.tabela-areas small { display: block; color: var(--neutral-500); font-size: .8rem; margin-top: 2px; }
.form-lead .field { margin-bottom: 18px; border: 0; min-width: 0; padding: 0; }
.form-lead label, .form-lead legend { display: block; font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--vinho-rouge); margin-bottom: 8px; }
.form-lead input[type=text], .form-lead input[type=email], .form-lead input[type=tel], .form-lead textarea {
  width: 100%; padding: 13px 15px; border-radius: 8px; border: 1px solid var(--neutral-300); background: #fff; color: var(--neutral-900); font: 400 16px/1.4 var(--font-body);
}
.form-lead textarea { min-height: 100px; resize: vertical; }
.form-lead input:focus, .form-lead textarea:focus { outline: 2px solid var(--dourado); outline-offset: 1px; border-color: transparent; }
.form-lead .grade { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.form-lead .full { grid-column: 1 / -1; }
.form-lead .opcoes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.form-lead .opcao { position: relative; margin: 0; font: inherit; letter-spacing: normal; text-transform: none; color: var(--neutral-700); }
.form-lead .opcao input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.form-lead .opcao span { display: flex; align-items: center; justify-content: center; text-align: center; height: 100%; padding: 11px 10px; border-radius: 8px; border: 1px solid var(--neutral-300); background: #fff; font-size: .88rem; font-weight: 400; line-height: 1.35; cursor: pointer; transition: border-color .2s, background-color .2s, color .2s; }
.form-lead .opcao input:checked + span { border-color: var(--vinho-rouge); background: var(--vinho-rouge); color: #fff; }
.form-lead .opcao input:focus-visible + span { outline: 2px solid var(--dourado); outline-offset: 1px; }
.form-lead [aria-invalid="true"], .form-lead .field[aria-invalid="true"] .opcao span { border-color: #C42B2B; }
.form-lead .field-erro { display: block; margin-top: 6px; font-size: .8rem; color: #C42B2B; }
.form-lead .opcional { color: var(--neutral-500); font-weight: 400; text-transform: none; letter-spacing: 0; }
.form-lead .hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.form-lead button[type=submit] { width: 100%; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 54px; margin-top: 4px; border: 0; border-radius: 8px; background: var(--vinho-rouge); color: #fff; font: 600 .95rem var(--font-body); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; transition: background-color .3s, transform .3s; }
.form-lead button[type=submit]:hover { background: var(--vinho-rouge-dark); transform: translateY(-2px); }
.form-lead button[disabled] { opacity: .7; cursor: progress; transform: none; }
.form-lead .form-status { margin-top: 12px; font-size: .9rem; min-height: 1.5em; text-align: center; }
.form-lead .form-status.ok { color: #1B7A45; font-weight: 500; }
.form-lead .form-status.erro { color: #C42B2B; }
.form-lead .form-legal { font-size: .75rem; text-align: center; color: var(--neutral-500); margin-top: 4px; }
.form-lead .form-legal a { text-decoration: underline; }
@media (max-width: 640px) { .form-lead .grade, .form-lead .opcoes { grid-template-columns: 1fr; } }
.w-36 { width: 9rem; }
.mb-5 { margin-bottom: 1.25rem; }
.space-y-5 > :not([hidden]) ~ :not([hidden]) { margin-top: 1.25rem; }
.opacity-30 { opacity: .3; }
.min-h-\[52px\] { min-height: 52px; }
.text-gray-500 { color: rgb(107 114 128); }
.shadow-\[0_8px_30px_rgba\(88\,17\,26\,0\.10\)\] { box-shadow: 0 8px 30px rgba(88,17,26,.10); }
.bg-\[var\(--dourado\)\]\/10 { background-color: color-mix(in srgb, var(--dourado) 10%, transparent); }
.from-\[var\(--vinho-rouge\)\]\/5 { --tw-gradient-from: color-mix(in srgb, var(--vinho-rouge) 5%, transparent) var(--tw-gradient-from-position); --tw-gradient-to: transparent var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.to-\[var\(--vinho-rouge\)\]\/10 { --tw-gradient-to: color-mix(in srgb, var(--vinho-rouge) 10%, transparent) var(--tw-gradient-to-position); }
.to-\[var\(--neutral-900\)\] { --tw-gradient-to: var(--neutral-900) var(--tw-gradient-to-position); }
.via-black\/10 { --tw-gradient-to: #0000 var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), #0000001a var(--tw-gradient-via-position), var(--tw-gradient-to); }
@media (min-width: 768px) {
  .md\:bottom-10 { bottom: 2.5rem; }
  .md\:text-6xl { font-size: 3.75rem; line-height: 1; }
  .hero-tag { bottom: auto !important; top: 38%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  [data-reveal], .vlv-lb { transition: none !important; }
  .animate-bounce { animation: none !important; }
}
@keyframes capa-pan { 0%, 8% { transform: translate3d(calc(-22% + 50vw), 0, 0); } 92%, 100% { transform: translate3d(calc(-78.5% + 50vw), 0, 0); } }
@media (max-aspect-ratio: 4/5) {
  .capa-img { width: auto !important; height: 100% !important; max-width: none !important; left: 0 !important; right: auto !important; scale: none; animation: capa-pan 24s ease-in-out infinite alternate; will-change: transform; }
  .hero-tag { bottom: auto !important; top: 26%; }
}
@media (max-aspect-ratio: 4/5) and (prefers-reduced-motion: reduce) {
  .capa-img { animation: none; transform: translate3d(calc(-22% + 50vw), 0, 0); }
}
html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
h1, h2, h3 { font-kerning: normal; font-feature-settings: "liga" 1, "kern" 1; text-wrap: balance; }
main h2 { font-weight: 500 !important; letter-spacing: -.005em; line-height: 1.04 !important; font-size: clamp(2.35rem, 1.6rem + 2.6vw, 3.9rem) !important; }
main h2 + .h-px + p { font-family: var(--font-heading); font-style: italic; font-weight: 500; font-size: clamp(1.2rem, 1rem + .7vw, 1.55rem) !important; line-height: 1.45; letter-spacing: .005em; }
main h3 { letter-spacing: .005em; }
main p { line-height: 1.75; }
main p.text-sm, main .text-sm { font-weight: 400; }
.text-\[var\(--neutral-600\)\] { color: var(--neutral-700) !important; }   
.hero-tag p { font-size: clamp(1.7rem, 1.1rem + 2.2vw, 3rem) !important; font-weight: 500; letter-spacing: .005em; text-shadow: 0 2px 30px rgba(0,0,0,.45), 0 1px 3px rgba(0,0,0,.35); }
section.h-screen h1 { font-weight: 500; letter-spacing: -.01em; text-shadow: 0 2px 30px rgba(0,0,0,.4); }
section.h-screen h1 + p { text-shadow: 0 1px 14px rgba(0,0,0,.45); }
header nav a { letter-spacing: .06em; }
.btn-luxo { position: relative; overflow: hidden; isolation: isolate; text-transform: uppercase; letter-spacing: .16em; font-size: .78rem !important; font-weight: 500 !important; }
.btn-luxo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 35%, rgba(255,255,255,.28) 50%, transparent 65%); transform: translateX(-120%); transition: transform 1.1s cubic-bezier(.16,1,.3,1); pointer-events: none; }
.btn-luxo:hover::after { transform: translateX(120%); }
header.vlv-scrolled { background: rgba(255,255,255,.88) !important; -webkit-backdrop-filter: saturate(1.5) blur(14px); backdrop-filter: saturate(1.5) blur(14px); box-shadow: 0 1px 0 rgba(88,17,26,.08), 0 10px 30px -18px rgba(0,0,0,.25); }
.barra-leitura { position: fixed; top: 0; left: 0; right: 0; height: 2px; z-index: 60; pointer-events: none; transform-origin: 0 50%; transform: scaleX(0); background: linear-gradient(90deg, var(--dourado-dark), var(--dourado), var(--dourado-light)); }
.titulo-anim .palavra { display: inline-block; overflow: hidden; vertical-align: top; padding: 0 .06em .12em 0; margin: 0 -.06em -.12em 0; }
.titulo-anim .palavra > span { display: inline-block; transform: translate3d(0, 110%, 0); transition: transform 1.15s cubic-bezier(.16,1,.3,1); transition-delay: calc(var(--i, 0) * 70ms + var(--base, 0ms)); }
.titulo-anim.titulo-in .palavra > span { transform: none; }
.linha-anim { transform: scaleX(0); transform-origin: 0 50%; transition: transform 1.3s cubic-bezier(.16,1,.3,1) .35s; }
.linha-anim.mx-auto { transform-origin: 50% 50%; }
.linha-anim.linha-in { transform: none; }
.img-assenta { opacity: 0; scale: 1.12; transition: opacity 1.2s cubic-bezier(.16,1,.3,1), scale 2s cubic-bezier(.16,1,.3,1); }
.img-assenta.img-in { opacity: 1; scale: var(--escala-final, 1); }
main .rounded-xl.shadow-md[data-reveal] { transition: opacity 1.1s cubic-bezier(.16,1,.3,1), translate 1.1s cubic-bezier(.16,1,.3,1), transform .6s cubic-bezier(.16,1,.3,1), box-shadow .6s ease; }
@media (hover: hover) { main .rounded-xl.shadow-md:hover { transform: translateY(-6px); } }
main .group p.drop-shadow-lg { text-shadow: 0 1px 14px rgba(0,0,0,.65), 0 1px 3px rgba(0,0,0,.5); font-weight: 400; }
@media (prefers-reduced-motion: reduce) {
  .titulo-anim .palavra > span, .linha-anim, .img-assenta { transform: none !important; translate: none !important; scale: var(--escala-final, 1) !important; opacity: 1 !important; transition: none !important; }
  .btn-luxo::after { display: none; }
}