@font-face {
  font-family: 'Allison';
  src: url('/wp-content/uploads/2021/10/Allison-Regular.ttf') format('truetype');
  font-display: swap;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Random Hero — gwcs.local/random/
   Vanilla CSS port of 21st.dev @uniquesonu/modern-hero (Tailwind → plain CSS)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ─── Page shell ──────────────────────────────────────────────────────────── */

/* Reset anything the WordPress/Hoteller theme injects */
.gr-page,
.gr-page body {
  margin: 0;
  padding: 0;
}

.gr-page {
  overflow-x: hidden;
}

.gr-wrap {
  background-color: #184445;
  font-family: 'Marcellus', Georgia, serif;
}



/* ─── Hero wrapper ────────────────────────────────────────────────────────── */

.gr-hero {
  position: relative;
  width: 100%;
  height: calc(1500px + 100vh); /* matches React SECTION_HEIGHT=1500 */
}

/* ─── Pongara placeholder : même hauteur que le hero ─────────────────────── */
#pongara-hero-placeholder {
  height: calc(1750px + 50vh);
  background: #184445;
}

/* ─── Pongara teleport : enfant direct de <body>, position:sticky fonctionne ─
   JS positionne le top à la hauteur absolue du placeholder dans la page.     */
#pongara-teleport-hero {
  position: absolute;
  left: 0;
  width: 100%;
  height: calc(1750px + 50vh);
  pointer-events: none;
  z-index: 10;
  visibility: hidden; /* JS reveals after positioning */
}

/* Le .gr-center-img à l'intérieur utilise sticky normalement */
#pongara-teleport-hero .gr-center-img {
  background-image: url('/wp-content/uploads/modern hero/center-bg.jpg');
}

/* ─── Loango placeholder : même hauteur que le hero ──────────────────────── */
#loango-hero-placeholder {
  height: calc(1750px + 50vh);
  background: #184445;
}

/* ─── Loango teleport : mêmes règles que Pongara ─────────────────────────── */
#loango-teleport-hero {
  position: absolute;
  left: 0;
  width: 100%;
  height: calc(1750px + 50vh);
  pointer-events: none;
  z-index: 10;
  visibility: hidden; /* JS reveals after positioning */
}

#loango-teleport-hero .gr-center-img {
  background-image: url('/wp-content/uploads/modern hero/loango/center-bg.webp');
}


/* ─── Center image — sticky, clip-path animated via JS ───────────────────── */

.gr-center-img {
  position: sticky;
  top: 0;
  height: 100vh;
  width: 100%;
  background-image: url('/wp-content/uploads/modern hero/center-bg.jpg');
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 170%;

  /* Initial clip — small center square, matches React initial state */
  clip-path: polygon(25% 25%, 75% 25%, 75% 75%, 25% 75%);

  will-change: clip-path, background-size, opacity;
}


/* ─── Gradient fade overlay at bottom of hero ────────────────────────────── */

.gr-fade-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 24rem;         /* h-96 */
  background: linear-gradient(to bottom, transparent, #184445);
  pointer-events: none;
}


/* ─── Parallax images ────────────────────────────────────────────────────── */

.gr-parallax-imgs {
  margin: 0 auto;
  max-width: 64rem;      /* max-w-5xl */
  padding: 200px 16px 0; /* pt-[200px] px-4 */
  position: relative;
  /* Must sit on top of the sticky center image */
  z-index: 1;
}

.gr-pimg {
  display: block;
  will-change: transform, opacity;
}

/* w-1/3 */
.gr-pimg-1 {
  width: 33.333%;
}

/* mx-auto w-2/3 */
.gr-pimg-2 {
  width: 66.666%;
  margin-left: auto;
  margin-right: auto;
}

/* ml-auto w-1/3 */
.gr-pimg-3 {
  width: 33.333%;
  margin-left: auto;
}

/* Force 3:2 on Loango pimg-3 (source image is ~2:1, causes extra gap vs Pongara) */
#loango-teleport-hero .gr-pimg-3 {
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

/* ml-24 w-5/12 */
.gr-pimg-4 {
  width: 41.666%;
  margin-left: 96px;
}


/* ─── Schedule section ───────────────────────────────────────────────────── */


.gr-schedule {
  margin: 0 auto;
  max-width: 64rem;
  padding: 92px 16px;
  color: #ffffff;
}

/* Prevent location (Allison) from wrapping */
.gr-si-loc {
  white-space: nowrap;
}

.gr-schedule-title {
  margin-bottom: 80px;
  font-family: 'Allison', cursive;
  font-size: 4rem;
  font-weight: 400;
  color: #fafafa;
  line-height: 1.1;
}


/* ─── Schedule item row ──────────────────────────────────────────────────── */

.gr-schedule-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: none;
  background-image: repeating-linear-gradient(to right, #efc337 0px, #efc337 2px, transparent 2px, transparent 5px);
  background-position: bottom;
  background-size: 100% 1px;
  background-repeat: no-repeat;
  padding: 0 12px 36px;             /* px-3 pb-9 */
  margin-bottom: 36px;              /* mb-9 */
}

.gr-si-name {
  margin: 0 0 6px 0;
  font-size: 1.25rem;
  color: #ffffff;
}

.gr-si-date {
  margin: 0;
  font-size: 0.875rem;
  color: #ffffff;
  letter-spacing: 0.01em;
}

.gr-si-loc svg {
  stroke: #ffffff;
  flex-shrink: 0;
}

.gr-si-loc {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: 'Allison', cursive;
  font-size: 1.725rem;
  text-transform: none;
  color: #efc337;
  text-align: right;
  letter-spacing: 0;
}


/* ─── Schedule item hover inversion ─────────────────────────────────────── */

.gr-schedule-item {
  transition: background-color 0.3s ease, padding-left 0.3s ease;
  padding-left: 12px;
  padding-right: 12px;
  border-radius: 4px;
}

.gr-schedule-item:hover .gr-si-name {
  color: #efc337;
}

.gr-schedule-item:hover .gr-si-date {
  color: #efc337;
}

.gr-schedule-item:hover .gr-si-loc {
  color: #ffffff;
}

.gr-schedule-item:hover .gr-si-loc svg {
  stroke: #ffffff;
}

.gr-si-name,
.gr-si-date,
.gr-si-loc,
.gr-si-loc svg {
  transition: color 0.3s ease, stroke 0.3s ease;
}


/* ─── Floating cursor preview circle ────────────────────────────────────── */

#gr-preview {
  position: fixed;
  top: 0;
  left: 0;
  width: 220px;
  height: 220px;
  border-radius: 50%;
  overflow: hidden;
  pointer-events: none;
  z-index: 9999;
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.7);
  transition: opacity 0.3s ease, transform 0.3s ease;
  will-change: left, top, opacity, transform;
  box-shadow: 0 0 0 2px #efc337;
}

#gr-preview.is-visible {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

#gr-preview-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}


/* ─── Reduced motion ─────────────────────────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
  .gr-center-img {
    clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%) !important;
    background-size: 100% !important;
    opacity: 1 !important;
  }
  .gr-pimg {
    transform: none !important;
    opacity: 1 !important;
  }
  .gr-schedule-title,
  .gr-schedule-item {
    opacity: 1 !important;
    transform: none !important;
  }
}


/* ─── Responsive ─────────────────────────────────────────────────────────── */

@media (max-width: 768px) {
  .gr-pimg-4 {
    margin-left: 32px;
  }

  .gr-schedule-title {
    font-size: 1.75rem;
  }
}

/* ─── Hide modern hero on mobile & tablet (≤1024px) ─────────────────────── */
@media (max-width: 1024px) {
  #loango-teleport-hero,
  #loango-hero-placeholder,
  .elementor-element-loango-ph01 {
    display: none !important;
  }
}
