:root {
    --bordeaux: #5B0E2D;
    --bordeaux-deep: #3D0A1E;
    --bordeaux-light: #7A1B3D;
    --gold: #C9A96E;
    --gold-light: #D4BC8B;
    --gold-dark: #A68B55;
    --cream: #FAF7F2;
    --white: #FFFFFF;
    --charcoal: #1A1A1A;
    --text-dark: #1C1017;
    --text-medium: #4A3A42;
    --text-light: #8A7A82;
    --border-subtle: rgba(91,14,45,0.08);
    --shadow-medium: 0 8px 40px rgba(91,14,45,0.10);
    --shadow-strong: 0 16px 60px rgba(91,14,45,0.14);
    --font-display: 'Cormorant Garamond', Georgia, serif;
    --font-body: 'Raleway', 'Helvetica Neue', sans-serif;
    --tr-smooth: cubic-bezier(0.25,0.46,0.45,0.94);
    --tr-elegant: cubic-bezier(0.4,0,0.2,1);
    --whatsapp: #25D366;
    --whatsapp-dark: #128C7E;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body { font-family:var(--font-body); color:var(--text-dark); background:var(--cream); line-height:1.7; font-weight:300; overflow-x:hidden; -webkit-font-smoothing:antialiased; }
a { text-decoration:none; color:inherit; }

.heading-section { font-family:var(--font-display); font-weight:400; font-size:clamp(2rem,4vw,3.2rem); color:var(--bordeaux); letter-spacing:0.02em; line-height:1.2; }
.label-upper { font-family:var(--font-body); font-weight:500; font-size:0.7rem; letter-spacing:0.25em; text-transform:uppercase; color:var(--gold); }
.divider-line { width:60px; height:1px; background:linear-gradient(90deg,transparent,var(--gold),transparent); margin:1.5rem 0; }

/* ── NAV ── */
.nav { position:fixed; top:0; left:0; right:0; z-index:1000; padding:1.5rem 4%; display:flex; align-items:center; justify-content:space-between; transition:all 0.5s var(--tr-elegant); }
.nav.scrolled { background:rgba(26,26,26,0.95); backdrop-filter:blur(20px); padding:1rem 4%; box-shadow:0 2px 40px rgba(0,0,0,0.2); }
.nav-logo { height:90px; width:auto; filter:brightness(0) invert(1); }
.nav-links { display:flex; align-items:center; gap:2.5rem; list-style:none; }
.nav-links a { font-family:var(--font-body); font-size:0.7rem; font-weight:400; letter-spacing:0.15em; text-transform:uppercase; color:rgba(255,255,255,0.75); transition:color 0.3s ease; position:relative; }
.nav-links a::after { content:''; position:absolute; bottom:-4px; left:0; width:0; height:1px; background:var(--gold); transition:width 0.4s var(--tr-elegant); }
.nav-links a:hover { color:var(--white); }
.nav-links a:hover::after { width:100%; }
.nav-links a.active { color:var(--gold); }
.nav-links a.active::after { width:100%; }
.nav-toggle { display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:4px; }
.nav-toggle span { width:24px; height:1.5px; background:var(--white); transition:all 0.3s ease; }

/* ── HERO ── */
.hero { position:relative; height:60vh; min-height:480px; display:flex; align-items:center; justify-content:center; overflow:hidden; background:var(--charcoal); }
.hero-bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0.35; filter:brightness(0.6); }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(180deg,rgba(26,16,23,0.5) 0%,rgba(91,14,45,0.2) 40%,rgba(26,16,23,0.85) 100%); }
.hero-content { position:relative; text-align:center; color:var(--white); max-width:700px; padding:0 2rem; }
.hero-label { font-weight:400; font-size:0.7rem; letter-spacing:0.4em; text-transform:uppercase; color:var(--gold); margin-bottom:1.5rem; opacity:0; animation:fadeSlideUp 1s var(--tr-smooth) 0.3s forwards; }
.hero-title { font-family:var(--font-display); font-size:clamp(2.5rem,6vw,4.5rem); font-weight:300; line-height:1.08; margin-bottom:1rem; opacity:0; animation:fadeSlideUp 1s var(--tr-smooth) 0.6s forwards; }
.hero-title em { font-style:italic; color:var(--gold-light); }
.hero-sub { font-family:var(--font-display); font-size:clamp(1rem,1.8vw,1.2rem); font-weight:300; font-style:italic; color:rgba(255,255,255,0.65); opacity:0; animation:fadeSlideUp 1s var(--tr-smooth) 0.9s forwards; }

/* ── CORPO PRINCIPAL ── */
.contacto-section { padding:6rem 4% 7rem; }
.contacto-wrapper { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr 1.6fr; gap:5rem; align-items:start; }

/* ── LADO ESQUERDO — info ── */
.info-side { position:sticky; top:120px; }
.info-eyebrow { display:block; margin-bottom:1rem; }
.info-title { font-family:var(--font-display); font-size:clamp(1.8rem,3vw,2.6rem); font-weight:400; color:var(--bordeaux); line-height:1.2; margin-bottom:0.5rem; }
.info-title em { font-style:italic; color:var(--gold-dark); }
.info-divider { width:50px; height:1px; background:linear-gradient(90deg,var(--gold),transparent); margin:1.4rem 0; }
.info-desc { font-size:0.9rem; color:var(--text-light); line-height:1.8; margin-bottom:2.5rem; max-width:340px; }

.info-cards { display:flex; flex-direction:column; gap:1rem; }
.info-card { display:flex; align-items:flex-start; gap:1rem; padding:1.2rem 1.4rem; border:1px solid var(--border-subtle); border-radius:4px; background:var(--white); transition:all 0.35s var(--tr-elegant); }
.info-card:hover { border-color:rgba(91,14,45,0.2); box-shadow:var(--shadow-medium); transform:translateX(4px); }
.info-card-icon { width:36px; height:36px; border-radius:50%; background:linear-gradient(135deg,var(--bordeaux),var(--bordeaux-light)); display:flex; align-items:center; justify-content:center; flex-shrink:0; margin-top:2px; }
.info-card-icon svg { width:16px; height:16px; fill:none; stroke:var(--gold-light); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.info-card-label { font-size:0.55rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--gold-dark); margin-bottom:0.25rem; }
.info-card-value { font-family:var(--font-display); font-size:1rem; color:var(--text-dark); line-height:1.4; }
.info-card-sub { font-size:0.75rem; color:var(--text-light); margin-top:0.15rem; }

.info-horario { margin-top:1.5rem; padding:1.4rem 1.6rem; background:var(--bordeaux-deep); border-radius:4px; }
.info-horario-label { font-size:0.55rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--gold); margin-bottom:0.8rem; }
.info-horario-row { display:flex; justify-content:space-between; font-size:0.82rem; color:rgba(255,255,255,0.7); padding:0.35rem 0; border-bottom:1px solid rgba(255,255,255,0.06); }
.info-horario-row:last-child { border-bottom:none; }
.info-horario-row strong { color:var(--white); font-weight:400; }

/* ── FORMULÁRIO ── */
.form-header { margin-bottom:2.5rem; }
.form-header-label { display:block; margin-bottom:0.8rem; }
.form-header-title { font-family:var(--font-display); font-size:1.8rem; font-weight:400; color:var(--bordeaux); margin-bottom:0.5rem; }
.form-header-desc { font-size:0.85rem; color:var(--text-light); line-height:1.7; }

.form-box { background:var(--white); border:1px solid var(--border-subtle); border-radius:6px; padding:2.5rem; box-shadow:var(--shadow-medium); }

.form-section-label { font-size:0.58rem; letter-spacing:0.25em; text-transform:uppercase; color:var(--gold-dark); margin-bottom:1.2rem; margin-top:2rem; padding-bottom:0.5rem; border-bottom:1px solid var(--border-subtle); display:block; }
.form-section-label:first-of-type { margin-top:0; }

.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.form-group { display:flex; flex-direction:column; gap:0.4rem; }
.form-group.full { grid-column:1/-1; }
.form-label { font-size:0.6rem; letter-spacing:0.15em; text-transform:uppercase; color:var(--text-medium); font-weight:500; }
.form-label span { color:var(--bordeaux); }

.form-input, .form-select, .form-textarea { width:100%; padding:0.9rem 1rem; border:1px solid var(--border-subtle); border-radius:3px; font-family:var(--font-body); font-size:0.88rem; color:var(--text-dark); background:var(--cream); transition:all 0.3s ease; outline:none; -webkit-appearance:none; appearance:none; }
.form-input:focus, .form-select:focus, .form-textarea:focus { border-color:var(--bordeaux); background:var(--white); box-shadow:0 0 0 3px rgba(91,14,45,0.06); }
.form-input::placeholder, .form-textarea::placeholder { color:var(--text-light); font-weight:300; font-size:0.85rem; }

.select-wrap { position:relative; }
.select-wrap::after { content:''; position:absolute; right:1rem; top:50%; transform:translateY(-50%); width:0; height:0; border-left:5px solid transparent; border-right:5px solid transparent; border-top:5px solid var(--gold-dark); pointer-events:none; }
.select-wrap .form-select { padding-right:2.5rem; cursor:pointer; }

.form-textarea { resize:vertical; min-height:120px; line-height:1.65; }

.form-check { display:flex; align-items:flex-start; gap:0.75rem; margin-top:0.5rem; }
.form-check-input { width:16px; height:16px; min-width:16px; border:1px solid var(--border-subtle); border-radius:2px; background:var(--cream); accent-color:var(--bordeaux); cursor:pointer; margin-top:3px; }
.form-check-label { font-size:0.78rem; color:var(--text-light); line-height:1.55; }
.form-check-label a { color:var(--bordeaux); text-decoration:underline; text-underline-offset:2px; }

/* ── BOTÕES DE ENVIO ── */
.btn-actions { display:grid; grid-template-columns:1fr 1fr; gap:0.8rem; margin-top:1.5rem; }

.btn-email, .btn-whatsapp { width:100%; padding:1rem; border:none; border-radius:3px; font-family:var(--font-body); font-size:0.7rem; font-weight:600; letter-spacing:0.15em; text-transform:uppercase; cursor:pointer; transition:all 0.4s var(--tr-elegant); position:relative; overflow:hidden; }

.btn-email { background:linear-gradient(135deg,var(--bordeaux),var(--bordeaux-light)); color:var(--white); }
.btn-email:hover:not(:disabled) { transform:translateY(-2px); box-shadow:0 10px 35px rgba(91,14,45,0.35); }
.btn-email:active { transform:translateY(0); }

.btn-whatsapp { background:linear-gradient(135deg,#128C7E,var(--whatsapp)); color:var(--white); }
.btn-whatsapp:hover:not(:disabled) { transform:translateY(-2px); box-shadow:0 10px 35px rgba(37,211,102,0.35); }
.btn-whatsapp:active { transform:translateY(0); }

.btn-email:disabled, .btn-whatsapp:disabled { opacity:0.6; cursor:not-allowed; transform:none; }

/* ── ERRO INLINE ── */
.form-error { display:none; margin-top:1rem; padding:0.9rem 1.1rem; background:rgba(91,14,45,0.06); border-left:3px solid var(--bordeaux); border-radius:3px; font-size:0.82rem; color:var(--bordeaux); line-height:1.5; }
.form-error.show { display:block; animation:fadeSlideUp 0.4s var(--tr-smooth) forwards; }

/* ── SUCESSO ── */
.form-success { display:none; text-align:center; padding:3rem 2rem; }
.form-success.show { display:block; animation:fadeSlideUp 0.6s var(--tr-smooth) forwards; }
.success-icon { width:64px; height:64px; border-radius:50%; background:linear-gradient(135deg,var(--bordeaux),var(--bordeaux-light)); display:flex; align-items:center; justify-content:center; margin:0 auto 1.5rem; }
.success-icon svg { width:28px; height:28px; stroke:var(--gold-light); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.success-title { font-family:var(--font-display); font-size:1.8rem; color:var(--bordeaux); margin-bottom:0.5rem; }
.success-sub { font-size:0.88rem; color:var(--text-light); line-height:1.7; max-width:380px; margin:0 auto 1.5rem; }
.btn-novamsg { background:transparent; border:1px solid var(--bordeaux); color:var(--bordeaux); padding:0.7rem 1.8rem; font-family:var(--font-body); font-size:0.65rem; font-weight:600; letter-spacing:0.18em; text-transform:uppercase; cursor:pointer; border-radius:2px; transition:all 0.3s ease; }
.btn-novamsg:hover { background:var(--bordeaux); color:var(--white); }

/* ── FOOTER ── */
.footer { background:var(--charcoal); color:rgba(255,255,255,0.5); padding:5rem 4% 2.5rem; }
.footer-grid { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:3rem; padding-bottom:3rem; border-bottom:1px solid rgba(255,255,255,0.06); }
.footer-col h4 { font-size:0.65rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold); margin-bottom:1.2rem; }
.footer-col ul { list-style:none; }
.footer-col ul li { margin-bottom:0.6rem; }
.footer-col ul a { font-size:0.85rem; color:rgba(255,255,255,0.45); transition:color 0.3s ease; }
.footer-col ul a:hover { color:var(--white); }
.footer-desc { font-size:0.88rem; line-height:1.7; max-width:320px; }
.footer-bottom { max-width:1200px; margin:0 auto; padding-top:2rem; display:flex; align-items:center; justify-content:space-between; font-size:0.78rem; }
.footer-bottom-legal { display:flex; gap:2rem; }
.footer-bottom-legal a { color:rgba(255,255,255,0.35); transition:color 0.3s ease; }
.footer-bottom-legal a:hover { color:var(--white); }

/* ── ANIMAÇÕES ── */
@keyframes fadeSlideUp { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:translateY(0)} }
.reveal { opacity:0; transform:translateY(40px); transition:opacity 0.8s var(--tr-smooth),transform 0.8s var(--tr-smooth); }
.reveal.visible { opacity:1; transform:translateY(0); }
.reveal-delay-1 { transition-delay:0.15s; }

/* ── RESPONSIVE ── */
@media (max-width:900px) {
    .contacto-wrapper { grid-template-columns:1fr; gap:3rem; }
    .info-side { position:static; }
    .footer-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:600px) {
    .form-grid { grid-template-columns:1fr; }
    .form-box { padding:1.8rem 1.4rem; }
    .btn-actions { grid-template-columns:1fr; }
    .footer-grid { grid-template-columns:1fr; }
    .footer-bottom { flex-direction:column; gap:1rem; text-align:center; }
}
@media (max-width:768px) {
    .nav-links { display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; background:rgba(26,26,26,0.97); backdrop-filter:blur(20px); padding:2rem; gap:1.5rem; }
    .nav-links.open { display:flex; }
    .nav-toggle { display:flex; }
}