/* Hereiti — styles custom au-dessus de Tailwind CDN */

:root {
  --sable: #F6F0E9;
  --creme: #FBF7F2;
  --blush: #E7C9C2;
  --blush600: #D9A8A0;
  --leaf: #8FA98C;
  --leaf700: #5E7A5B;
  --gold: #C9A26B;
  --ink: #3B332E;
  --muted: #7A6F66;
  --line: #E5DACE;
}

html { -webkit-font-smoothing: antialiased; }
body { font-feature-settings: "liga" 1; }

/* Filet doré décoratif */
.gold-rule {
  width: 56px;
  height: 2px;
  background: linear-gradient(90deg, var(--gold), transparent);
}
.gold-rule--center { background: linear-gradient(90deg, transparent, var(--gold), transparent); }

/* Titres : léger letter-spacing */
.font-display { letter-spacing: 0.02em; }

/* Reveal initial (avant GSAP) */
.gsap-ready .reveal { opacity: 0; transform: translateY(28px); }
@media (prefers-reduced-motion: reduce) {
  .gsap-ready .reveal { opacity: 1; transform: none; }
}

/* Cartes soin */
.soin-card { transition: transform .5s cubic-bezier(.22,.61,.36,1), box-shadow .5s; }
.soin-card:hover { transform: translateY(-6px); }

/* Badge */
.badge {
  display: inline-flex; align-items: center; gap: .35rem;
  font-size: .72rem; letter-spacing: .04em;
  padding: .28rem .7rem; border-radius: 999px;
}

/* Statuts admin */
.st-confirmee { background: #e9f1e8; color: #4a6347; }
.st-honoree   { background: #eee7dc; color: #7a6233; }
.st-annulee   { background: #f3e3e1; color: #9a5c54; }

/* Liens de focus accessibles */
a:focus-visible, button:focus-visible, select:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
}

/* Champs de formulaire */
.field {
  width: 100%;
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 0.9rem;
  padding: 0.7rem 0.9rem;
  font-size: 0.95rem;
  color: var(--ink);
  transition: border-color .2s, box-shadow .2s;
}
.field:focus { border-color: var(--blush600); box-shadow: 0 0 0 3px rgba(231,201,194,.4); outline: none; }
.field-label { display:block; font-size:.78rem; letter-spacing:.06em; text-transform:uppercase; color: var(--muted); margin-bottom:.35rem; }

/* Leaflet */
.leaflet-container { font-family: 'Jost', sans-serif; border-radius: 1.25rem; }

/* Pétale flottant hero */
.petal-drift { will-change: transform; }

/* Filigrane monogramme */
.watermark-mono {
  position: absolute; pointer-events: none; opacity: .06; z-index: 0;
}

/* Tunnel : créneaux */
.slot-btn {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 0.75rem;
  padding: 0.55rem 0.4rem;
  font-size: 0.9rem;
  transition: all .15s;
  color: var(--ink);
}
.slot-btn:hover:not(:disabled) { border-color: var(--blush600); background: var(--creme); }
.slot-btn.is-active { background: var(--blush); border-color: var(--blush600); font-weight: 500; }
.slot-btn:disabled { opacity: .35; cursor: not-allowed; text-decoration: line-through; }

/* Step bar */
.step-dot { transition: all .3s; }

/* Agenda admin */
.agenda-grid { display: grid; }
.agenda-event {
  position: absolute; left: 2px; right: 2px;
  border-radius: 0.6rem; padding: 4px 6px; overflow: hidden;
  font-size: 0.72rem; line-height: 1.15; cursor: pointer;
  border: 1px solid rgba(0,0,0,.06);
}
.agenda-block { background: repeating-linear-gradient(45deg, #efe6da, #efe6da 6px, #e7dccd 6px, #e7dccd 12px); color: #7a6f66; }

/* ---- Finition design Hereiti ---- */

/* Grain subtil sur le hero (SVG inline, très discret) */
.hero-grain {
  pointer-events: none;
  opacity: .35;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
}

/* Indicateur de scroll animé */
.scroll-cue { transform-origin: top; animation: cuePulse 2.2s ease-in-out infinite; }
@keyframes cuePulse {
  0%, 100% { transform: scaleY(.4); opacity: .35; }
  50%      { transform: scaleY(1);  opacity: .9; }
}

/* Titres : optical sizing + ligatures soignées */
.font-display { letter-spacing: 0.015em; text-wrap: balance; }
h1.font-display { letter-spacing: -0.005em; }

/* Cartes : finition hover plus douce et cohérente */
.soin-card:hover { box-shadow: 0 22px 48px -18px rgba(59,51,46,.28); }

/* Filet doré : épaisseur et lueur affinées */
.gold-rule { box-shadow: 0 0 12px -2px rgba(201,162,107,.35); }

/* Boutons primaires : transition d'ombre plus riche (hors hero, déjà géré) */
a.shadow-glow { transition: box-shadow .35s, transform .3s, background-color .3s; }

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: .001ms !important; transition-duration: .001ms !important; }
  html { scroll-behavior: auto; }
  .scroll-cue { animation: none; }
}
