:root {
  --background: #070606; /* very dark background but not pure black for warmth */
  --foreground: #f6efe6; /* slightly brighter for contrast */
  --muted-foreground: #cfc7be; /* adjusted muted text */
  --card: rgba(255,255,255,0.025);
  --card-foreground: #f3ede6;
  --primary: #b8872b;
  --primary-foreground: #0b0604;
  --accent: #d4b65a;
  --accent-foreground: #0b0604;
  --secondary: #241d18;
  --secondary-foreground: var(--foreground);
  --border: rgba(255,255,255,0.07);
  --input: rgba(255,255,255,0.04);
  --radius: 10px;
  --shadow-strong: 0 20px 48px rgba(0,0,0,0.75);
}

* { box-sizing: border-box; }
html,body { height:100%; }
body {
  margin:0;
  background:var(--background);
  color:var(--foreground);
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  font-size:18px;
  line-height:1.75;
  overflow-x:hidden;
  /* reserve space for the fixed navbar to avoid overlap */
  padding-top:72px;
}

.container { max-width:1200px; margin:0 auto; padding:0 28px; }

/* Hero */
.hero { position:relative; width:100vw; height:100vh; min-height:82vh; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; padding-top:48px; }
.hero .hero-image { position:absolute; inset:0; width:100%; height:100%; background-image:url('./Imagem%20do%20WhatsApp%20de%202025-09-17%20%C3%A0%28s%29%2008.20.59_a99b2058.jpg'); background-size:cover; background-position:center; filter:brightness(0.44) saturate(0.8) contrast(1.02); transform:scale(1.01); will-change:transform; }
.hero .hero-overlay { position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,0.18) 0%, rgba(0,0,0,0.48) 75%); pointer-events:none; }
.hero .hero-content { position:relative; z-index:2; max-width:980px; padding:48px 28px; background:transparent; border-radius:0; }
/* subtle backdrop panel directly behind hero text for contrast */
.hero .hero-text-backdrop { position:absolute; inset:0; left:50%; transform:translateX(-50%); width:90%; max-width:980px; height:100%; border-radius:12px; background:linear-gradient(180deg, rgba(0,0,0,0.28), rgba(0,0,0,0.22)); backdrop-filter: blur(8px) saturate(1.02); z-index:1; pointer-events:none; }
.hero .hero-content > * { position:relative; z-index:2; }
.hero h1 { font-family: 'Allura', 'Playfair Display', Georgia, serif; font-size: clamp(2.6rem, 6.6vw, 5.4rem); margin:0 0 12px; font-weight:400; letter-spacing:0; }
.hero .gold { color:var(--accent); background:linear-gradient(90deg, var(--accent), #b08a32); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.hero-title { display:flex; flex-direction:column; align-items:center; gap:6px; }
.hero-name { font-family: 'Allura', 'Playfair Display', Georgia, serif; font-size: clamp(3.6rem, 9.5vw, 7rem); font-weight:400; letter-spacing:0; text-shadow: 0 8px 32px rgba(3,3,3,0.6); margin-bottom:4px; }
.hero-role { font-family: Arial, Helvetica, sans-serif; /* Arial for subtitle, uppercase and slightly smaller than title */ font-size: 36px; line-height:1.02; margin-top:0; font-weight:700; color:var(--accent-foreground); display:block; text-transform:uppercase; white-space:nowrap; }

@media (max-width:720px) {
  /* Prevent overlap on mobile: sensible sizes and spacing */
  .hero-title { gap:8px; }
  .hero-name { font-size: clamp(2.8rem, 9.5vw, 4.4rem); line-height:1.05; margin-bottom:0; }
  .hero-role { font-size:20px; margin-top:4px; }

  /* Add breathing room between hero content and the paragraph/buttons */
  .hero .hero-content { padding-top:36px; padding-bottom:28px; }
  .hero p { margin-top:8px; margin-bottom:18px; }
  .hero-ctas { margin-top:20px; }

  /* Specific: increase top margin for the hero description paragraph on mobile */
  .hero .hero-content > p { margin-top:100px; }
}

/* Center main content text within containers */
main .container, .hero-content, .card, .faq-container, .section-surface, .center-cta { text-align:center; }

/* let typographic elements inherit alignment from their containers */
h1,h2,h3,p, .text-muted { text-align:inherit; }

/* FAQ / Accordion styles */
.faq-section { padding:52px 0; }
.faq-container { max-width:980px; margin:0 auto; padding:0 20px; }
.faq-legend { display:block; margin-bottom:18px; font-weight:800; color:var(--foreground); font-size:1.25rem; }
.faq-list { display:flex; flex-direction:column; gap:12px; }
.accordion-item { background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01)); border:1px solid rgba(255,255,255,0.04); padding:0; border-radius:10px; overflow:hidden; }
.accordion-button { display:flex; align-items:center; justify-content:space-between; width:100%; padding:14px 18px; background:transparent; color:var(--foreground); font-weight:700; cursor:pointer; border:none; text-align:left; }
.accordion-button:focus { outline:2px solid rgba(212,182,90,0.16); outline-offset:2px; }
.accordion-icon { width:20px; height:20px; display:inline-flex; align-items:center; justify-content:center; transition:transform .22s ease; }
.accordion-panel { max-height:0; overflow:hidden; transition:max-height .28s ease, padding .22s ease; padding:0 18px; color:var(--muted-foreground); }
.accordion-panel p { margin:12px 0 18px; }
.accordion-item.is-open .accordion-icon { transform:rotate(45deg); }
.accordion-item.is-open .accordion-panel { padding:12px 18px 18px; max-height:420px; }

/* Force Allura for all h1s (override other serif rules) */
h1 { font-family: 'Allura', cursive !important; font-weight:400 !important; }
.hero h1, .hero-name { font-family: 'Allura', cursive !important; }

/* gold animated effect */
.gold-animate { background:linear-gradient(90deg,#f0d88f,#d4b65a,#b8872b); background-size:200% 100%; -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; animation: goldShift 3.6s linear infinite; display:inline-block; font-weight:700; }
@keyframes goldShift {
  0% { background-position:0% 50%; filter:blur(0); }
  50% { background-position:100% 50%; filter:drop-shadow(0 6px 14px rgba(184,135,43,0.18)); }
  100% { background-position:0% 50%; filter:blur(0); }
}
.hero p { color:var(--muted-foreground); margin:0 auto 28px; max-width:760px; font-size:1.05rem; }
.hero .hero-content .badge-default { margin-bottom:8px; }
.hero-ctas { margin-top:22px; }

.hero-ctas { display:flex; gap:14px; justify-content:center; margin-top:18px; }

.hero .btn--primary { padding:18px 32px; box-shadow:0 20px 40px rgba(0,0,0,0.6); }
.hero .btn--outline { padding:16px 26px; border:1px solid rgba(255,255,255,0.06); }

/* Sections */
.section-surface { background:linear-gradient(180deg, rgba(0,0,0,0.6), rgba(0,0,0,0.45)); border-top:1px solid rgba(255,255,255,0.02); border-bottom:1px solid rgba(0,0,0,0.25); color:var(--foreground); padding:72px 0; }
.section-surface .vintage-border { background:transparent; border:1px solid rgba(255,255,255,0.03); }

/* Specific tweaks for services section to avoid content hugging the edges and improve contrast */
#servicos { padding-top:84px; padding-bottom:84px; }
#servicos .container { padding-left:28px; padding-right:28px; }
#servicos .text-muted { color: rgba(243,237,230,0.9); }
#servicos h2, #servicos h3 { color: var(--foreground); }

/* Service cards grid */
.services-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:18px; }
.service-card { background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01)); padding:22px; border-radius:12px; border:1px solid rgba(255,255,255,0.04); box-shadow:0 20px 40px rgba(0,0,0,0.45); }
.service-card h3 { margin:0 0 8px 0; }
.service-card p { margin:0; color:var(--muted-foreground); }

@media (max-width:992px) {
  .services-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:720px) {
  #servicos { padding-top:54px; padding-bottom:54px; }
  .services-grid { grid-template-columns:1fr; }
  #servicos .container { padding-left:20px; padding-right:20px; }
}

/* Cards */
.card { background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01)); color:var(--card-foreground); border-radius:calc(var(--radius)); padding:26px; border:1px solid rgba(255,255,255,0.035); box-shadow:var(--shadow-strong); }

/* Micro interactions */
.card { transition: transform .28s cubic-bezier(.2,.9,.2,1), box-shadow .28s ease; }
.card:hover { transform: translateY(-8px); box-shadow:0 36px 60px rgba(0,0,0,0.6); }
.btn { will-change: transform; }

/* Buttons */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:12px 22px; border-radius:999px; font-weight:700; cursor:pointer; border:none; transition:transform .18s ease, box-shadow .18s ease, transform .18s ease; font-size:1rem; text-decoration:none; }
.btn--primary { background:linear-gradient(180deg,#d4b65a,#b8872b); color:var(--foreground); box-shadow:0 16px 42px rgba(0,0,0,0.72), inset 0 6px 18px rgba(255,255,255,0.04); border:1px solid rgba(0,0,0,0.12); padding:14px 28px; }
.btn--outline { background:transparent; color:var(--foreground); border:1px solid rgba(255,255,255,0.08); padding:12px 22px; }
.btn:hover { transform:translateY(-6px) scale(1.01); box-shadow:0 32px 60px rgba(0,0,0,0.6); }
.btn, .btn * { text-decoration: none !important; }

.btn:focus-visible { outline:2px solid rgba(212,182,90,0.18); outline-offset:4px; }
.btn--primary:hover { background:linear-gradient(180deg,#e6cf7c,#c79a42); }
.btn--outline:hover { background:rgba(255,255,255,0.02); }
.btn--lg { padding:16px 26px; font-size:1.1rem; }

/* Circular blurred gradient backdrop behind primary CTA */
.btn--primary { position:relative; z-index:2; overflow:visible; }
/* subtle circular halo only for hero primary button */
.hero .btn--primary::before { content:''; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:180px; height:180px; border-radius:50%; background: radial-gradient(circle at 35% 35%, rgba(212,182,90,0.28) 0%, rgba(184,135,43,0.12) 40%, rgba(184,135,43,0.04) 60%, transparent 70%); filter:blur(16px); opacity:0.92; z-index:0; transition:opacity .28s ease, transform .28s ease; pointer-events:none; }
.hero .btn--primary:hover::before { transform:translate(-50%,-50%) scale(1.02); opacity:0.95; }
@media (max-width:720px) {
  .hero .btn--primary::before { width:150px; height:150px; filter:blur(14px); }
}

/* Badge */
.badge-default { display:inline-flex; align-items:center; gap:6px; padding:10px 18px; border-radius:999px; background:linear-gradient(90deg,#d4b65a,#b8872b); color:var(--foreground); border:1px solid rgba(0,0,0,0.14); font-weight:800; box-shadow:0 6px 20px rgba(0,0,0,0.45); text-shadow:0 1px 0 rgba(0,0,0,0.55); }

/* Universal smooth appear animation for elements on scroll */
.fade-in { opacity:0; transform:translateY(12px); transition:opacity .9s cubic-bezier(.2,.08,.2,1), transform .9s cubic-bezier(.2,.08,.2,1); transition-delay:0.12s; will-change:transform,opacity; }
.fade-in.in-view { opacity:1; transform:none; }

/* Utility: reveal children with elegant stagger */
.reveal-stagger > * { opacity:0; transform:translateY(12px); transition:opacity .9s cubic-bezier(.2,.08,.2,1), transform .9s cubic-bezier(.2,.08,.2,1); }
.reveal-stagger.in-view > * { opacity:1; transform:none; }
.reveal-stagger.in-view > *:nth-child(1){ transition-delay:0.18s; }
.reveal-stagger.in-view > *:nth-child(2){ transition-delay:0.36s; }
.reveal-stagger.in-view > *:nth-child(3){ transition-delay:0.54s; }
.reveal-stagger.in-view > *:nth-child(4){ transition-delay:0.72s; }
.reveal-stagger.in-view > *:nth-child(5){ transition-delay:0.90s; }

/* Ensure badge over hero image is readable */
.hero .badge-default { background:linear-gradient(90deg, rgba(212,182,90,0.98), rgba(184,135,43,0.94)); color:var(--foreground); }

/* profile photo and footer tweaks */
.profile-photo { width:100%; border-radius:12px; object-fit:cover; box-shadow:0 12px 36px rgba(0,0,0,0.6); border:1px solid rgba(255,255,255,0.02); }
footer img { height:28px; }

/* Logo animation */
.logo-svg { display:inline-block; vertical-align:middle; }
.logo-monogram { transform-origin: 24px 24px; animation: monogram 2.6s ease-in-out infinite; }
@keyframes monogram {
  0% { transform: translateY(0) scale(1); opacity:1; }
  50% { transform: translateY(-2px) scale(1.02); opacity:0.95; }
  100% { transform: translateY(0) scale(1); opacity:1; }
}

/* Nav */
.site-nav { position:fixed; top:0; left:0; right:0; height:72px; background:linear-gradient(180deg, rgba(0,0,0,0.6), rgba(0,0,0,0.22)); border-bottom:1px solid rgba(255,255,255,0.03); backdrop-filter:blur(6px); z-index:60; }
.site-nav .container { display:flex; align-items:center; justify-content:space-between; padding:12px 28px; height:100%; }
.site-nav .menu { display:flex; align-items:center; gap:20px; margin-left:18px; }
.site-nav a { color:var(--foreground); text-decoration:none; margin:0 6px; padding:10px 12px; border-radius:8px; display:inline-block; }
.site-nav a:hover { background:rgba(255,255,255,0.03); transform:translateY(-2px); }

/* logo sizing and subtle hover */
.site-logo { height:48px; width:auto; display:block; transition:transform .28s ease; }
.site-logo:hover { transform:scale(1.03); }

/* Mobile hamburger button and mobile menu behaviors */
.nav-toggle { display:none; align-items:center; justify-content:center; background:transparent; border:1px solid rgba(255,255,255,0.04); color:var(--foreground); padding:8px; border-radius:8px; cursor:pointer; }
.nav-toggle svg { display:block; }
@media (max-width:720px) {
  .nav-toggle { display:inline-flex; margin-left:auto; }
  .site-nav .menu { display:none; position:absolute; top:56px; left:0; right:0; background:linear-gradient(180deg, rgba(0,0,0,0.88), rgba(0,0,0,0.72)); padding:12px 18px; flex-direction:column; gap:8px; z-index:70; }
  .site-nav.nav-open .menu { display:flex; }
  .site-nav .menu a { padding:10px 12px; }
  /* Hide menu titles in navbar on mobile (only hamburger visible) */
  .site-nav .container .menu { display:none; }
  .site-nav.nav-open .container .menu { display:flex; }
}

@media (max-width:720px) {
  .site-logo { height:40px; }
  .site-nav { height:64px; }
  body { padding-top:64px; }
  .site-nav .menu { gap:12px; }
}

/* Utilities */
.text-muted { color:var(--muted-foreground); }

/* Improve image rendering and preserve aspect ratio */
img { image-rendering: auto; max-width:100%; height:auto; display:block; }

/* stronger headings contrast */
h1,h2,h3 { color:var(--foreground); }
h1 { font-size: clamp(2.6rem, 6vw, 5.2rem); }
h2 { font-size: clamp(1.6rem, 3.2vw, 2.25rem); }
h3 { font-size:1.15rem; }

/* subtle elevate effect for hero background on scroll */
.hero .hero-image::after { content:''; position:absolute; inset:0; transition:opacity .6s ease; }
.hero.in-view .hero-image { transform:scale(1.03); }
.grid { display:grid; gap:24px; }
.grid-2 { grid-template-columns:1fr 1fr; }
.rounded-xl { border-radius:12px; }
.w-16 { width:64px; height:64px; display:inline-flex; align-items:center; justify-content:center; border-radius:12px; }

/* Testimonials */
.carousel { position:relative; }
.carousel .dots { display:flex; gap:8px; justify-content:center; margin-top:16px; }
.dot { width:12px; height:12px; border-radius:50%; background:rgba(255,255,255,0.06); }
.dot.active { background:var(--primary); box-shadow:0 6px 18px rgba(184,135,43,0.16); }

/* Swiper overrides */
.swiper { padding:8px 0; }
.swiper { padding:18px 0; }
.swiper .swiper-slide { display:flex; justify-content:center; }
.swiper .card { max-width:820px; padding:32px; border-radius:14px; }
.swiper-pagination { margin-top:18px; }
.swiper-pagination-bullet { width:12px; height:12px; border-radius:50%; background:rgba(255,255,255,0.08); opacity:1; margin:0 6px; }
.swiper-pagination-bullet-active { background:var(--primary); box-shadow:0 8px 24px rgba(184,135,43,0.18); transform:scale(1.06); }
.swiper-button-prev, .swiper-button-next { color:var(--foreground); width:44px; height:44px; border-radius:10px; background:rgba(0,0,0,0.28); display:flex; align-items:center; justify-content:center; box-shadow:0 8px 20px rgba(0,0,0,0.45); }
.swiper-button-prev:hover, .swiper-button-next:hover { background:rgba(0,0,0,0.36); transform:translateY(-2px); }
.swiper-button-prev::after, .swiper-button-next::after { font-size:18px; }

@media (max-width:720px) {
  .swiper .card { padding:20px; max-width:96%; }
  .swiper-button-prev, .swiper-button-next { width:40px; height:40px; }
}

/* Footer */
footer { padding:48px 0; border-top:1px solid rgba(255,255,255,0.03); }
/* New footer styles */
.site-footer { background: linear-gradient(180deg, rgba(0,0,0,0.42), rgba(0,0,0,0.28)); padding:48px 0; border-top:1px solid rgba(255,255,255,0.03); }
.footer-grid { display:grid; grid-template-columns: 1.6fr 1fr 0.9fr 0.9fr; gap:28px; align-items:start; }
.footer-logo { height:48px; display:block; margin-bottom:12px; }
.footer-col h4 { margin:0 0 10px 0; color:var(--foreground); }
.contact-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px; color:var(--muted-foreground); }
.contact-list li { display:flex; align-items:center; gap:8px; }
.contact-list a { color:var(--foreground); text-decoration:none; }
.social-icons { display:flex; gap:12px; }
.social-icons .si { display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:12px; background:rgba(255,255,255,0.06); color:var(--foreground); text-decoration:none; overflow:hidden; box-shadow:0 8px 24px rgba(0,0,0,0.35); }
.social-icons .si img { width:100%; height:100%; object-fit:cover; display:block; }
.footer-bottom { border-top:1px solid rgba(255,255,255,0.03); margin-top:20px; padding-top:16px; display:flex; justify-content:space-between; align-items:center; gap:12px; }
.footer-bottom .small { font-size:0.9rem; color:var(--muted-foreground); }

@media (max-width:920px) {
  .footer-grid { grid-template-columns:1fr; }
  .footer-bottom { flex-direction:column; align-items:flex-start; }
}

/* Footer links - improved UX */
.footer-links ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.footer-links li { list-style:none; }
.footer-links a { color:var(--muted-foreground); text-decoration:none; padding:8px 10px; border-radius:8px; display:inline-block; transition:all .16s ease; }
.footer-links a:hover { color:var(--primary); background:linear-gradient(90deg, rgba(212,182,90,0.06), rgba(184,135,43,0.03)); transform:translateY(-3px); box-shadow:0 8px 20px rgba(0,0,0,0.28); }

/* Make contact links lighter and remove default underline */
.contact-list a { color:var(--muted-foreground); text-decoration:none; }
.contact-list svg { opacity:0.9; }
.icon-inline { width:18px; height:18px; display:inline-block; object-fit:cover; vertical-align:middle; margin-right:6px; }

/* Social icon hover */
.social-icons .si:hover { transform:translateY(-4px) scale(1.03); box-shadow:0 18px 40px rgba(0,0,0,0.6); }

/* Slightly increase footer padding for breathing room */
.site-footer { padding-top:56px; padding-bottom:36px; }

@media (max-width:992px) {
  .grid-2 { grid-template-columns:1fr; }
  .container { padding:0 20px; }
  .hero h1 { font-size: clamp(2rem, 7vw, 3.2rem); }
}

@media (max-width:520px) {
  .container { padding:0 14px; }
  /* Increase vertical spacing in hero for mobile to create air around content */
  .hero { padding-top:36px; padding-bottom:48px; min-height:70vh; }
  .hero .hero-content { padding:48px 0; }
}

/* Compact navbar styles for mobile */
@media (max-width:720px) {
  .site-nav { height:56px; }
  .site-nav .container { padding:8px 16px; }
  .site-logo { height:36px; }
  .site-nav .menu { gap:10px; font-size:0.95rem; }
  .site-nav a { padding:6px 8px; }
  body { padding-top:56px; }
}

/* Responsive CTA adjustments and utility classes */
.center-cta { text-align:center; margin-top:18px; }
.btn--wide { min-width:260px; width:100%; max-width:520px; display:inline-flex; justify-content:center; }

/* Ensure hero CTAs stack on small screens */
@media (max-width:720px) {
  .hero-ctas { flex-direction:column; gap:12px; align-items:center; }
  .hero .btn--primary, .hero .btn--outline { width:100%; max-width:420px; }
}

/* Make map responsive on small screens */
#map { border-radius:12px; box-shadow:0 6px 20px rgba(0,0,0,0.15); }
@media (max-width:520px) {
  #map { height:320px; }
}

/* Footer tweaks */
.footer-inner { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.footer-inner img { height:44px; }
@media (max-width:520px) {
  .footer-inner { flex-direction:column; gap:8px; text-align:center; }
}

/* Center contact call-to-action text and button */
.section-surface.contact-centered { text-align:center; }
.section-surface.contact-centered .card { margin-left:auto; margin-right:auto; max-width:620px; }
.section-surface.contact-centered .card a.btn { display:inline-block; margin:18px auto 0; }

@media (max-width:720px) {
  .section-surface.contact-centered .card { padding:22px; }
}

/* mobile/desktop control for profile image in 'Conheça Amanda' */
.profile-mobile { display:none; }
.profile-desktop { display:block; }
@media (max-width:720px) {
  .profile-mobile { display:block; margin:18px auto 12px; max-width:220px; }
  .profile-mobile img { border-radius:12px; box-shadow:0 12px 36px rgba(0,0,0,0.6); }
  .profile-desktop { display:none; }
  .profile-desktop-wrap { display:none; }
}

/* Center all buttons across the site */
.center-cta, .hero-ctas, .card, .section-surface .container { --btn-align: center; }
.btn { display:block; margin-left:auto; margin-right:auto; text-align:center; }
.btn--wide { display:block; margin-left:auto; margin-right:auto; }

/* Provide consistent max-width for large CTAs */
.btn { max-width:540px; }

/* Slight visual tweak: increase vertical rhythm around CTAs on mobile */
@media (max-width:720px) {
  .btn { padding:14px 22px; font-size:1rem; }
  .hero-ctas { margin-top:20px; }
}


