/* ============================================================
   LUMINA CLINIC · base.css
   Variáveis, reset, tipografia e atmosfera de fundo
   ============================================================ */

:root {
  /* Paleta — creme + dourado (cor oficial da clínica) */
  --cream:   #FAF7F2;
  --warm:    #F0EAE0;
  --sand:    #D6C9B5;
  --gold:    #B89A72;
  --gold-lt: #D4B896;
  --dark:    #2A2420;
  --mid:     #6B5C4E;
  --white:   #FFFFFF;

  /* Tipografia */
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans:  'Jost', system-ui, sans-serif;

  /* Layout */
  --pad-x: 80px;
  --maxw:  1320px;
}

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--sans);
  background: var(--cream);
  color: var(--dark);
  font-weight: 300;
  line-height: 1.6;
  overflow-x: hidden;
}

/* Grão sutil sobre tudo para dar textura premium */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
  pointer-events: none;
  z-index: 9999;
}

img {
  max-width: 100%;
  display: block;
}

a { color: inherit; }

/* Títulos de seção reutilizáveis */
.section-tag {
  font-size: 10px;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.section-tag::before {
  content: '';
  width: 24px;
  height: 1px;
  background: var(--gold);
}

.section-title {
  font-family: var(--serif);
  font-size: clamp(40px, 4vw, 60px);
  font-weight: 300;
  line-height: 1.1;
  color: var(--dark);
}

.section-title em {
  font-style: italic;
  color: var(--gold);
}

.section-header {
  max-width: 620px;
  margin-bottom: 72px;
}

/* Animação de entrada por scroll */
.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity .7s ease, transform .7s ease;
}

.reveal.visible {
  opacity: 1;
  transform: none;
}

/* Acessibilidade: respeitar quem prefere menos movimento */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  .reveal { opacity: 1; transform: none; }
}
