/* ===== Design tokens ===== */
:root{
  --background: oklch(0.972 0.012 75);
  --foreground: oklch(0.255 0.035 50);
  --card: oklch(0.985 0.008 80);
  --card-foreground: oklch(0.255 0.035 50);
  --primary: oklch(0.38 0.05 45);
  --primary-foreground: oklch(0.97 0.012 75);
  --secondary: oklch(0.92 0.022 75);
  --secondary-foreground: oklch(0.32 0.04 45);
  --muted-foreground: oklch(0.48 0.03 50);
  --accent: oklch(0.78 0.09 75);
  --gold: oklch(0.74 0.11 78);
  --border: oklch(0.88 0.02 70);

  --gradient-warm: linear-gradient(135deg, oklch(0.92 0.022 75), oklch(0.85 0.04 70));
  --gradient-gold: linear-gradient(135deg, oklch(0.82 0.1 80), oklch(0.68 0.12 70));
  --gradient-hero: linear-gradient(135deg, oklch(0.97 0.012 75) 0%, oklch(0.9 0.03 70) 100%);
  --shadow-soft: 0 10px 40px -10px oklch(0.4 0.05 45 / 0.18);
  --shadow-elegant: 0 20px 60px -20px oklch(0.3 0.04 40 / 0.25);

  --font-serif: "Cormorant Garamond", Georgia, serif;
  --font-sans: "Inter", system-ui, sans-serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;border-color:var(--border)}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--background);
  color:var(--foreground);
  font-family:var(--font-sans);
  font-weight:400;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{font-family:var(--font-serif);font-weight:500;letter-spacing:-0.01em;line-height:1.15}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
ul{list-style:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}

/* ===== Utilities ===== */
.container{max-width:80rem;margin:0 auto;padding:0 1.5rem}
.container-sm{max-width:48rem;margin:0 auto;padding:0 1.5rem}
.container-md{max-width:64rem;margin:0 auto;padding:0 1.5rem}
.text-gold{color:var(--gold)}
.italic{font-style:italic}
.font-serif{font-family:var(--font-serif)}

.organic-blob{border-radius:60% 40% 55% 45% / 50% 60% 40% 50%}
.shadow-soft{box-shadow:var(--shadow-soft)}
.shadow-elegant{box-shadow:var(--shadow-elegant)}

/* Reveal animation */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease-out, transform .9s ease-out}
.reveal.in-view{opacity:1;transform:translateY(0)}

/* Float anim */
@keyframes float-slow{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-18px) rotate(3deg)}}
.animate-float{animation:float-slow 8s ease-in-out infinite}

/* Btn shine */
.btn{
  position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:.5rem;
  border-radius:9999px;padding:.875rem 1.75rem;font-size:.95rem;
  transition:all .35s ease;cursor:pointer;line-height:1;white-space:nowrap;
}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,oklch(1 0 0 / .35) 50%,transparent 70%);transform:translateX(-100%);transition:transform .7s ease}
.btn:hover::after{transform:translateX(100%)}
.btn-primary{background:var(--primary);color:var(--primary-foreground);box-shadow:var(--shadow-soft)}
.btn-primary:hover{box-shadow:var(--shadow-elegant)}
.btn-outline{border:1px solid color-mix(in oklab,var(--primary) 30%, transparent);color:var(--primary);background:color-mix(in oklab,var(--background) 50%, transparent);backdrop-filter:blur(8px)}
.btn-outline:hover{background:var(--secondary)}
.btn-sm{padding:.625rem 1.25rem;font-size:.875rem}

.icon{width:1rem;height:1rem;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.icon-lg{width:1.5rem;height:1.5rem}
.icon-sm{width:.875rem;height:.875rem}

/* ===== Header / Nav ===== */
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;transition:all .5s ease;background:transparent}
.site-header.scrolled{background:color-mix(in oklab, var(--background) 85%, transparent);backdrop-filter:blur(12px);box-shadow:var(--shadow-soft)}
.nav{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;max-width:80rem;margin:0 auto}
.logo{font-family:var(--font-serif);font-size:1.5rem;letter-spacing:.04em;color:var(--primary)}
.logo .dot{color:var(--gold)}
.nav-links{display:none;gap:2rem;font-size:.875rem;color:color-mix(in oklab, var(--foreground) 80%, transparent)}
.nav-links a{transition:color .3s}
.nav-links a:hover{color:var(--gold)}
@media (min-width:768px){.nav-links{display:flex}}
.nav-cta{display:none}
@media (min-width:640px){.nav-cta{display:inline-flex}}

/* ===== HERO ===== */
.hero{position:relative;padding:8rem 0 5rem;background:var(--gradient-hero)}
@media (min-width:768px){.hero{padding:10rem 0 7rem}}
.hero-grid{display:grid;gap:3rem;align-items:center;padding:0 1.25rem;max-width:80rem;margin:0 auto;position:relative}
@media (min-width:640px){.hero-grid{padding:0 1.5rem}}
@media (min-width:768px){.hero-grid{grid-template-columns:1fr 1fr;gap:3rem}}

.blob{position:absolute;pointer-events:none}
.blob-1{top:-5rem;left:-5rem;width:420px;height:420px;background:var(--gradient-warm);opacity:.6}
.blob-2{top:10rem;right:-100px;width:360px;height:360px;background:var(--gradient-gold);opacity:.3;animation-delay:2s}
.float-icon{position:absolute;color:color-mix(in oklab,var(--gold) 40%, transparent)}
.float-icon.f1{top:8rem;right:25%;width:2rem;height:2rem}
.float-icon.f2{bottom:5rem;left:33%;width:1.5rem;height:1.5rem;color:color-mix(in oklab,var(--gold) 50%,transparent);animation-delay:1s}

.eyebrow{display:inline-flex;align-items:center;gap:.5rem;border-radius:9999px;background:var(--secondary);color:var(--secondary-foreground);padding:.375rem 1rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.18em}
.hero h1{margin-top:1.5rem;color:var(--primary);font-size:2rem;line-height:1.08}
@media (min-width:640px){.hero h1{font-size:3rem}}
@media (min-width:768px){.hero h1{font-size:3.75rem}}
.hero-desc{margin-top:1.5rem;font-size:1.125rem;color:var(--muted-foreground);max-width:36rem;line-height:1.7}
.hero-ctas{margin-top:2rem;display:flex;flex-wrap:wrap;gap:1rem}
.hero-bullets{margin-top:2.5rem;display:grid;grid-template-columns:1fr 1fr;gap:.75rem;font-size:.875rem;color:color-mix(in oklab,var(--foreground) 80%, transparent)}
.hero-bullets li{display:flex;align-items:center;gap:.5rem}
.hero-bullets .icon{color:var(--gold)}

.hero-photo{position:relative}
.hero-photo .glow{position:absolute;inset:-1.5rem;background:var(--gradient-gold);opacity:.3;filter:blur(2rem)}
.hero-photo .frame{position:relative;overflow:hidden;box-shadow:var(--shadow-elegant);border:4px solid var(--background)}
.hero-photo .frame,.hero-photo .glow{border-radius:60% 40% 55% 45% / 50% 60% 40% 50%}
.hero-photo img{width:100%;height:380px;object-fit:cover}
@media (min-width:640px){.hero-photo img{height:460px}}
@media (min-width:768px){.hero-photo img{height:520px}}

.badge-card{position:absolute;bottom:-1.5rem;left:.5rem;background:var(--card);border:1px solid var(--border);border-radius:1rem;padding:.75rem 1rem;display:flex;align-items:center;gap:.75rem;box-shadow:var(--shadow-soft);max-width:calc(100% - 1rem)}
@media (min-width:640px){.badge-card{left:-1.5rem;padding:1rem 1.25rem}}
.badge-card .ico{width:2.5rem;height:2.5rem;border-radius:9999px;background:var(--gradient-gold);display:flex;align-items:center;justify-content:center;color:var(--primary-foreground)}
.badge-card .label{font-size:.75rem;color:var(--muted-foreground)}
.badge-card .value{font-size:.875rem;font-weight:500}

/* ===== Sections ===== */
section{position:relative}
.section-pad{padding:6rem 0}
@media (min-width:768px){.section-pad{padding:8rem 0}}
.section-pad-sm{padding:6rem 0}

.eyebrow-text{font-size:.75rem;text-transform:uppercase;letter-spacing:.25em;color:var(--gold)}
.h2{margin-top:.75rem;color:var(--primary);font-size:2.25rem}
@media (min-width:768px){.h2{font-size:3rem}}
.lead{margin-top:1rem;color:var(--muted-foreground)}
.center{text-align:center}
.max-2{max-width:42rem;margin-left:auto;margin-right:auto}
.max-3{max-width:48rem;margin-left:auto;margin-right:auto}

/* SOBRE */
.about-grid{display:grid;gap:3.5rem;align-items:center;padding:0 1.5rem;max-width:80rem;margin:0 auto}
@media (min-width:768px){.about-grid{grid-template-columns:1fr 1fr}}
.about-photo{position:relative;order:2}
@media (min-width:768px){.about-photo{order:1}}
.about-photo .glow{position:absolute;inset:-1rem;background:var(--gradient-warm);filter:blur(1.25rem);opacity:.7;border-radius:60% 40% 55% 45% / 50% 60% 40% 50%}
.about-photo img{position:relative;width:100%;height:420px;object-fit:cover;border-radius:2rem;box-shadow:var(--shadow-elegant)}
@media (min-width:640px){.about-photo img{height:520px}}
@media (min-width:768px){.about-photo img{height:600px}}
.about-photo .years{position:absolute;top:1.5rem;right:.5rem;background:var(--card);border:1px solid var(--border);border-radius:1rem;padding:.75rem 1rem;box-shadow:var(--shadow-soft)}
@media (min-width:640px){.about-photo .years{right:-1rem}}
.about-photo .years p:first-child{font-family:var(--font-serif);font-size:1.875rem;color:var(--gold)}
.about-photo .years p:last-child{font-size:.75rem;color:var(--muted-foreground)}
.about-text{order:1}
@media (min-width:768px){.about-text{order:2}}
.about-text .sub{margin-top:.75rem;font-style:italic;color:var(--muted-foreground)}
.about-text .paras{margin-top:1.5rem;display:flex;flex-direction:column;gap:1rem;color:color-mix(in oklab,var(--foreground) 85%, transparent);line-height:1.7}

/* AJUDAR */
.bg-soft{background:color-mix(in oklab, var(--secondary) 40%, transparent)}
.cards{margin-top:3.5rem;display:grid;gap:1.25rem;grid-template-columns:1fr}
@media (min-width:640px){.cards{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.cards{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1280px){.cards{grid-template-columns:repeat(5,1fr)}}
.card{border-radius:1rem;background:var(--card);border:1px solid var(--border);padding:1.5rem;box-shadow:var(--shadow-soft);transition:all .5s ease}
.card:hover{box-shadow:var(--shadow-elegant);transform:translateY(-4px)}
.card .ico-wrap{width:3rem;height:3rem;border-radius:.75rem;background:var(--gradient-warm);display:flex;align-items:center;justify-content:center;margin-bottom:1rem;color:var(--primary);transition:background .35s}
.card:hover .ico-wrap{background:var(--gradient-gold)}
.card h3{font-family:var(--font-serif);font-size:1.25rem;color:var(--primary)}
.card p{margin-top:.25rem;font-size:.875rem;color:var(--muted-foreground)}

/* PARA QUEM */
.para-blob{position:absolute;right:-10rem;top:25%;width:500px;height:500px;background:var(--gradient-warm);opacity:.5}
.para-list{margin-top:3rem;display:grid;gap:1.25rem 2.5rem;grid-template-columns:1fr}
@media (min-width:640px){.para-list{grid-template-columns:1fr 1fr}}
.para-item{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;border-radius:.75rem;border:1px solid var(--border);background:color-mix(in oklab, var(--card) 60%, transparent);backdrop-filter:blur(6px);transition:all .3s}
.para-item:hover{border-color:var(--gold);background:var(--card)}
.para-item .check{width:1.5rem;height:1.5rem;border-radius:9999px;background:var(--gradient-gold);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:.125rem;color:var(--primary-foreground)}
.para-item p{color:color-mix(in oklab,var(--foreground) 85%, transparent)}

/* BENEFICIOS */
.benefits{background:var(--primary);color:var(--primary-foreground);overflow:hidden}
.benefits .h2,.benefits .eyebrow-text{color:var(--gold)}
.benefits .h2{color:var(--primary-foreground)}
.benefits-blob-1{position:absolute;left:-5rem;top:-5rem;width:300px;height:300px;background:color-mix(in oklab,var(--gold) 20%, transparent);filter:blur(2rem)}
.benefits-blob-2{position:absolute;right:-5rem;bottom:0;width:400px;height:400px;background:color-mix(in oklab,var(--gold) 10%, transparent);filter:blur(3rem)}
.benefit-grid{margin-top:3.5rem;display:grid;gap:1.25rem;grid-template-columns:1fr}
@media (min-width:640px){.benefit-grid{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.benefit-grid{grid-template-columns:repeat(4,1fr)}}
.benefit{border-radius:1rem;padding:1.5rem;border:1px solid color-mix(in oklab,var(--primary-foreground) 15%, transparent);background:color-mix(in oklab,var(--primary-foreground) 5%, transparent);backdrop-filter:blur(6px);transition:background .3s}
.benefit:hover{background:color-mix(in oklab,var(--primary-foreground) 10%, transparent)}
.benefit .icon{color:var(--gold);margin-bottom:.75rem}
.benefit p{font-family:var(--font-serif);font-size:1.25rem;line-height:1.3}

/* DEPOIMENTOS */
.testi{margin-top:3.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr}
@media (min-width:768px){.testi{grid-template-columns:repeat(3,1fr)}}
.testi-card{border-radius:1.5rem;background:var(--card);border:1px solid var(--border);padding:2rem;box-shadow:var(--shadow-soft);transition:box-shadow .3s}
.testi-card:hover{box-shadow:var(--shadow-elegant)}
.stars{display:flex;gap:.25rem;color:var(--gold);margin-bottom:1rem}
.stars .icon{width:1rem;height:1rem;fill:currentColor;stroke:currentColor}
.testi-card .q{font-family:var(--font-serif);font-size:1.25rem;color:var(--primary);line-height:1.6}
.testi-card .n{margin-top:1.5rem;font-size:.875rem;font-weight:500;color:var(--muted-foreground)}

/* COMO FUNCIONA */
.steps{margin-top:3.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr}
@media (min-width:768px){.steps{grid-template-columns:repeat(4,1fr)}}
.step{position:relative}
.step .box{border-radius:1rem;background:var(--card);border:1px solid var(--border);padding:1.75rem;box-shadow:var(--shadow-soft);height:100%;transition:transform .3s}
.step .box:hover{transform:translateY(-4px)}
.step .num{font-family:var(--font-serif);font-size:3rem;color:color-mix(in oklab,var(--gold) 80%, transparent)}
.step h3{margin-top:.75rem;font-family:var(--font-serif);font-size:1.5rem;color:var(--primary)}
.step p{margin-top:.5rem;font-size:.875rem;color:var(--muted-foreground)}
.step .arrow{display:none;position:absolute;top:50%;right:-.75rem;color:var(--gold);width:1.25rem;height:1.25rem}
@media (min-width:768px){.step .arrow{display:block}}

/* CONTATO */
.contact{position:relative;overflow:hidden}
.contact .bg{position:absolute;inset:0;background:var(--gradient-hero)}
.contact-inner{position:relative;max-width:48rem;margin:0 auto;padding:0 1.5rem;text-align:center}
.contact .h2{line-height:1.2}
.contact-meta{margin-top:1.5rem;display:inline-flex;flex-direction:column;align-items:center;gap:.5rem;font-size:.875rem;color:color-mix(in oklab,var(--foreground) 80%, transparent)}
@media (min-width:640px){.contact-meta{flex-direction:row;gap:1rem}}
.contact-meta .sep{display:none;color:var(--gold)}
@media (min-width:640px){.contact-meta .sep{display:inline}}
.contact-photo{position:relative;margin:2.5rem auto 0;width:100%;max-width:28rem}
.contact-photo .glow{position:absolute;inset:-1rem;background:var(--gradient-gold);opacity:.2;filter:blur(2rem);border-radius:60% 40% 55% 45% / 50% 60% 40% 50%}
.contact-photo img{position:relative;width:100%;height:360px;object-fit:cover;border-radius:2rem;box-shadow:var(--shadow-elegant)}
@media (min-width:640px){.contact-photo img{height:420px}}
.contact-ctas{margin-top:2rem;display:flex;flex-wrap:wrap;justify-content:center;gap:1rem}

/* FOOTER */
.footer{background:var(--primary);color:color-mix(in oklab,var(--primary-foreground) 90%, transparent);padding:3.5rem 0}
.footer-grid{display:grid;gap:2.5rem;grid-template-columns:1fr;max-width:80rem;margin:0 auto;padding:0 1.5rem}
@media (min-width:768px){.footer-grid{grid-template-columns:repeat(3,1fr)}}
.footer .logo{color:var(--primary-foreground)}
.footer .logo .dot{color:var(--gold)}
.footer p.tag{margin-top:.75rem;font-size:.875rem;color:color-mix(in oklab,var(--primary-foreground) 70%, transparent);max-width:18rem}
.footer h4{font-family:var(--font-serif);font-size:1.125rem;color:var(--gold);margin-bottom:.5rem}
.footer-col{display:flex;flex-direction:column;gap:.75rem;font-size:.875rem}
.footer-col a{display:inline-flex;align-items:center;gap:.5rem;transition:color .3s}
.footer-col a:hover{color:var(--gold)}
.footer-col p{display:flex;align-items:flex-start;gap:.5rem}
.footer-col .muted{color:color-mix(in oklab,var(--primary-foreground) 70%, transparent)}
.footer-bottom{margin-top:3rem;border-top:1px solid color-mix(in oklab,var(--primary-foreground) 10%, transparent);padding:1.5rem 1.5rem 0;max-width:80rem;margin-left:auto;margin-right:auto;font-size:.75rem;color:color-mix(in oklab,var(--primary-foreground) 60%, transparent);display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem}
