/* ==========================================================
   Ciels de Lit — Custom CSS (variables, base, animations)
   ========================================================== */

:root {
  --color-cream:      #F7F1E6;
  --color-sand:       #EDE3D0;
  --color-ink:        #2A2620;
  --color-sage:       #7A8B73;
  --color-terracotta: #C68B6B;
  --color-mist:       #BFC7B8;
}

html { scroll-behavior: smooth; }
body {
  background: var(--color-cream);
  color: var(--color-ink);
  font-family: 'DM Sans', system-ui, sans-serif;
  font-feature-settings: "kern" 1, "liga" 1;
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, .font-serif { font-family: 'Fraunces', Georgia, serif; }

/* Selection */
::selection { background: var(--color-sage); color: var(--color-cream); }

/* Active link */
.nav-link[aria-current="page"] { color: var(--color-sage); }
.nav-link[aria-current="page"]::after {
  content: ""; display: block; width: 18px; height: 1px;
  background: var(--color-sage); margin-top: 2px;
}

/* Reveal-on-scroll */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 900ms cubic-bezier(.2,.7,.2,1), transform 900ms cubic-bezier(.2,.7,.2,1);
}
.reveal.is-visible { opacity: 1; transform: none; }

/* Hero entrance — staggered */
.hero-anim > * { opacity: 0; transform: translateY(18px); animation: hero-in 1s cubic-bezier(.2,.7,.2,1) forwards; }
.hero-anim > *:nth-child(1) { animation-delay: .15s; }
.hero-anim > *:nth-child(2) { animation-delay: .35s; }
.hero-anim > *:nth-child(3) { animation-delay: .55s; }
.hero-anim > *:nth-child(4) { animation-delay: .75s; }
.hero-anim > *:nth-child(5) { animation-delay: .95s; }
@keyframes hero-in { to { opacity: 1; transform: none; } }

/* Card image hover zoom */
.card-zoom { overflow: hidden; }
.card-zoom img { transition: transform 700ms cubic-bezier(.2,.7,.2,1); }
.card-zoom:hover img { transform: scale(1.04); }

/* Accordeon */
.accordion-item summary { list-style: none; cursor: pointer; }
.accordion-item summary::-webkit-details-marker { display: none; }
.accordion-item summary .chev { transition: transform 300ms ease; }
.accordion-item[open] summary .chev { transform: rotate(45deg); }

/* Subtle dotted divider */
.dotted-divider {
  height: 1px;
  background-image: linear-gradient(to right, var(--color-ink) 35%, transparent 0);
  background-size: 8px 1px;
  background-repeat: repeat-x;
  opacity: .25;
}

/* Hero overlay (image + tint) */
.hero-shade {
  background: linear-gradient(180deg, rgba(42,38,32,0.05) 0%, rgba(42,38,32,0.45) 100%);
}

/* Grainy texture overlay (optional decor) */
.grain::after {
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image: radial-gradient(rgba(42,38,32,.05) 1px, transparent 1px);
  background-size: 3px 3px; mix-blend-mode: multiply;
}

/* Marquee */
.marquee-track { animation: marquee 38s linear infinite; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
