/* Nuit — the night ceremony: near-black, firelight orange, full-screen cinematic photo
   with the title over it, centred engraved capitals. */
:root {
  --forest: #0d0b09; --forest-2: #f0c88a; --clay: #e0782f; --ochre: #e9a94f;
  --ivory: #efe6d6; --paper: #0d0b09; --ink: #e6dccb; --muted: #a39581; --line: #2b241c;
  --serif: "Cinzel", Georgia, serif; --sans: "EB Garamond", Georgia, serif;
}
body { font-size: 19px; line-height: 1.75; }
h1, h2, h3 { font-weight: 500; letter-spacing: .06em; }

.topbar { background: linear-gradient(#0d0b09, rgba(13, 11, 9, .82)); }
.brand { font-size: 1.1rem; letter-spacing: .2em; text-transform: uppercase; }
nav { font-size: .95rem; }
nav .lang { border-color: var(--ochre); color: var(--ochre); }

.hero { position: relative; display: grid; grid-template-columns: 1fr; min-height: min(calc(100svh - 56px), 980px); }
.hero-img { position: absolute; inset: 0; height: auto; }
.hero-img img { filter: saturate(.8); object-position: 50% max(100%, -770px); }  /* crop starts 770px below the photo top, never past the bottom edge */
.hero-img::after { content: ""; position: absolute; inset: 0;
                   background: radial-gradient(ellipse at 50% 40%, transparent 20%, rgba(13, 11, 9, .55) 70%), linear-gradient(transparent 35%, #0d0b09 96%); }
.hero-text { position: relative; z-index: 1; align-self: end; justify-self: center; text-align: center; max-width: 860px; padding-bottom: 72px; }
.eyebrow { color: var(--ochre); letter-spacing: .4em; text-shadow: 0 1px 8px #000; }
.hero h1 { font-size: clamp(2.6rem, 8vw, 6rem); text-transform: uppercase; text-shadow: 0 2px 30px rgba(0,0,0,.6); }
.tagline { color: #f3d9a8; font-family: var(--sans); font-style: italic; }
.intro { color: #e3d8c5; text-shadow: 0 1px 12px #000; }
.cta { background: transparent; border: 1px solid var(--clay); color: #f6c79a; letter-spacing: .12em; }
.cta:hover { background: var(--clay); color: #fff; }
@media (max-width: 860px) {  /* phone: photo first, fading into the night, text below */
  .hero { min-height: 0; }
  .hero-img { position: relative; inset: auto; order: -1; height: min(62vh, 560px); }
  /* phone crop starts 75px below the photo's top, never past its bottom */
  .hero-img img { object-position: 50% max(100%, -75px); }
  .hero-text { margin-top: -90px; padding: 0 var(--gutter) 48px; }
}

.block { border-bottom: 0; }
.block.text-only .block-text { text-align: center; max-width: 760px; }
.block.text-only .prose ul { text-align: left; display: inline-block; }
.num { font-family: var(--serif); color: var(--clay); letter-spacing: .5em; display: flex; align-items: center; gap: 14px; }
.text-only .num { justify-content: center; }
.num::before, .num::after { content: ""; height: 1px; width: 40px; background: var(--clay); opacity: .6; }
.block h2 { font-size: clamp(2rem, 4.4vw, 3.2rem); color: #f4e9d4; }
.prose h3 { color: var(--ochre); font-size: 1.35rem; }
.prose strong { color: #f6d6a6; }
.block-img img { border-radius: 4px; box-shadow: 0 0 0 1px #2b241c, 0 30px 80px -20px rgba(224, 120, 47, .25); filter: saturate(.85); }
.block-img figcaption { font-style: italic; }

.gallery h2 { text-transform: uppercase; color: #f4e9d4; }
.grid { column-gap: 8px; }
.grid li { margin-bottom: 8px; }
.tile { background: #1a1612; }
.tile img { opacity: .82; }
.tile:hover img { opacity: 1; }
.play { background: rgba(224, 120, 47, .85); }

.contact { background: #15110d; border-top: 1px solid var(--line); text-align: center; }
.contact-list div { grid-template-columns: 1fr; gap: .2rem; text-align: center; }
.contact-list dt { color: var(--clay); }
.foot { background: #070605; }

/* refinements: firelight glow behind the text-only sections, ember-framed details */
body { background: radial-gradient(ellipse 80% 40% at 50% 0, rgba(224, 120, 47, .08), transparent 70%) fixed, var(--paper); }
.block.text-only .block-text { position: relative; padding: 48px clamp(16px, 4vw, 48px); border-top: 1px solid rgba(224, 120, 47, .35); border-bottom: 1px solid rgba(224, 120, 47, .35);
                               background: radial-gradient(ellipse at 50% 0, rgba(224, 120, 47, .12), transparent 70%); }
.block.text-only .block-text::before { content: "✦"; position: absolute; top: -.75em; left: 50%; transform: translateX(-50%); background: var(--paper); color: var(--clay); padding: 0 12px; }
.block.text-only .prose h3 { font-size: 1.6rem; }
.block-img figcaption { text-align: center; }
.gallery h2::after { content: ""; display: block; width: 1px; height: 40px; background: linear-gradient(var(--clay), transparent); margin: 18px auto 0; }
.more { background: none; border: 1px solid var(--clay); color: #f6c79a; letter-spacing: .1em; font-family: var(--sans); font-size: 1.1rem; }
.more:hover { background: var(--clay); color: #fff; opacity: 1; }

/* testimonials: Cinzel is all capitals, so quotes use the reading face */
.tmg-quote, .tmg-full .prose { font-family: var(--sans); font-size: 1.2rem; }
/* letter-spacing leaves a gap after the last digit: mirror it on the left so the number sits centred between its lines */
.num::before { margin-right: .5em; }

/* hero text, +3px across the board (client request) */
.hero .eyebrow { font-size: calc(.75rem + 3px); }
.hero h1 { font-size: calc(clamp(2.6rem, 8vw, 6rem) + 3px); }
.hero .tagline { font-size: calc(clamp(1.3rem, 2.6vw, 1.8rem) + 3px); }
/* intro text styled like the "Gabon · Libreville · Bwiti" line above it */
.hero .intro { font-size: calc(.75rem + 3px); text-transform: uppercase; letter-spacing: .4em; color: var(--ochre); text-shadow: 0 1px 8px #000; line-height: 2; }
/* hero title in a warm red (client request) */
.hero h1 { color: #e2583c; }
