@font-face {
  font-family:"FP Henna Cormorant";
  src:url("/faire-part/fonts/cormorant-garamond-regular-latin.woff2") format("woff2");
  font-display:swap;
  font-style:normal;
  font-weight:400;
}

@font-face {
  font-family:"FP Henna Corinthia";
  src:url("/faire-part/themes/theme-jardin-ivoire-premium/assets/fonts/corinthia-regular-latin.woff2?v=1") format("woff2");
  font-display:swap;
  font-style:normal;
  font-weight:400;
}

html[data-design="theme-henna"] {
  --fpi-bg:#fffdf7;
  --fpi-bg-soft:#f8f0dc;
  --fpi-ink:#123b2a;
  --fpi-muted:#4c6659;
  --fpi-accent:#c9a24b;
  --fpi-accent-soft:#8f7437;
  --fpi-line:#d9bd70;
  --fpi-panel:#fffefb;
  --fpi-shadow:rgba(8,47,29,.22);
  --fpi-font:"FP Henna Cormorant",Georgia,serif;
  min-width:320px;
  background:#052c1c;
  color-scheme:light;
}

body.theme-henna {
  min-width:320px;
  background:#052c1c;
  color:var(--fpi-ink);
  font-family:"FP Henna Cormorant",Georgia,serif;
}

.theme-henna .fpi-floating-bar { display:none; }

.theme-henna .fpi-invitation {
  width:min(100%,560px);
  min-height:100vh;
  padding:0;
  margin:0 auto;
  overflow:hidden;
  background:var(--fpi-bg);
  box-shadow:0 0 52px rgba(0,0,0,.36);
}

.theme-henna .fpi-gate,
.theme-henna .fpi-gate-video {
  background:#032f1d;
}

.theme-henna .fpi-gate-video {
  --fp-video-fade-duration:0ms !important;
  transition:none !important;
}

.theme-henna .fpi-gate-video::after { display:none; }

.theme-henna .fpi-gate-video .fpi-video-handoff,
.theme-henna .fpi-gate-video video {
  position:absolute;
  top:0;
  right:auto;
  bottom:auto;
  left:50%;
  display:block;
  width:min(100vw,560px);
  height:auto;
  aspect-ratio:1056 / 1490;
  object-fit:fill;
  object-position:center top;
  background:#002918;
  transform:translateX(-50%);
}

.theme-henna .fpi-gate-video .fpi-video-handoff {
  z-index:1;
  opacity:1;
  pointer-events:none;
}

.theme-henna .fpi-gate-video video { z-index:2; }

.theme-henna .fpi-henna-video-copy {
  position:absolute;
  z-index:3;
  top:0;
  left:50%;
  display:block;
  width:min(100vw,560px);
  height:auto;
  aspect-ratio:1056 / 1490;
  color:#07502f;
  opacity:var(--fpi-copy-opacity,0);
  pointer-events:none;
  transform:translateX(-50%) !important;
  transform-origin:50% 50%;
  will-change:opacity;
}

.theme-henna .fpi-henna-opening-composition,
.theme-henna .fpi-henna-opening-hero {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  background:transparent;
}

.theme-henna .fpi-henna-opening-tray {
  position:absolute;
  z-index:4;
  top:4.25rem;
  right:.75rem;
  width:clamp(82px,17vw,190px);
  max-height:32svh;
  object-fit:contain;
  filter:drop-shadow(0 10px 10px rgba(0,0,0,.22));
  animation:fpi-henna-tray-float 5.8s ease-in-out infinite;
}

.theme-henna .fpi-gate-video > .fpi-henna-video-start {
  top:auto;
  right:auto;
  bottom:max(42px,env(safe-area-inset-bottom));
  left:50%;
  width:min(82%,340px);
  min-height:48px;
  padding:12px 18px;
  border:1px solid rgba(239,207,118,.86);
  color:#fff9e8;
  background:rgba(3,47,29,.88);
  box-shadow:0 8px 28px rgba(0,0,0,.3);
  font-family:"FP Henna Cormorant",Georgia,serif;
  font-size:14px;
  font-weight:400;
  letter-spacing:.12em;
  transform:translateX(-50%);
}

.theme-henna .fpi-gate-video.is-started > .fpi-henna-video-start {
  transform:translateX(-50%) scale(.98);
}

.theme-henna .fpi-gate-video > [data-fpi-video-skip] {
  right:16px;
  bottom:max(18px,env(safe-area-inset-bottom));
  border-color:rgba(239,207,118,.86);
  color:#fff9e8;
  background:rgba(3,47,29,.88);
  font-family:"FP Henna Cormorant",Georgia,serif;
  font-size:15px;
  font-weight:400;
  letter-spacing:.04em;
  text-transform:none;
}

.fpi-henna-hero {
  position:relative;
  width:100%;
  aspect-ratio:1056 / 1489;
  overflow:hidden;
  background:#fbfaf5;
}

.fpi-henna-hero-background {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
}

.fpi-henna-event-copy {
  position:absolute;
  top:26%;
  left:50%;
  width:74%;
  color:#07502f;
  text-align:center;
  text-shadow:0 1px 0 rgba(255,255,255,.88);
  transform:translateX(-50%);
}

.fpi-henna-event-copy p,
.fpi-henna-event-copy h1 { margin:0; font-weight:400; }

.fpi-henna-event-kicker {
  font-family:"FP Henna Cormorant",Georgia,serif;
  font-size:min(19px,3.393vw);
  line-height:1;
  letter-spacing:.035em;
}

.fpi-henna-event-copy h1 {
  display:block;
  margin-top:min(6px,1.071vw);
  font-family:"FP Henna Corinthia",cursive;
  font-size:min(60px,10.714vw);
  line-height:.77;
  letter-spacing:0;
  text-transform:none;
}

body[data-fpd-demo] .fpd-stage[data-design="theme-henna"] .fpi-henna-event-copy h1 {
  text-transform:none;
}

.fpi-henna-event-copy h1 > span {
  display:inline;
  max-width:none;
  overflow-wrap:normal;
}

.fpi-henna-event-kind {
  margin-top:min(18px,3.214vw) !important;
  font-family:"FP Henna Cormorant",Georgia,serif;
  font-size:min(18px,3.214vw);
  line-height:1;
  letter-spacing:.07em;
}

.fpi-henna-event-kind::after {
  display:block;
  width:min(96px,17.143vw);
  height:1px;
  margin:min(16px,2.857vw) auto 0;
  background:#c49335;
  content:"";
}

.fpi-henna-event-date {
  margin-top:min(16px,2.857vw) !important;
  font-family:"FP Henna Cormorant",Georgia,serif;
  font-size:min(14px,2.5vw);
  line-height:1.1;
  letter-spacing:.045em;
  white-space:nowrap;
}

.fpi-henna-countdown {
  position:relative;
  z-index:12;
  display:flex;
  width:100%;
  aspect-ratio:560 / 182.4;
  justify-content:center;
  flex-direction:column;
  padding:5.5% 7% 3.4%;
  margin-top:-16.2857%;
  color:#fff9e8;
  background-image:url("/faire-part/themes/theme-henna/assets/ruban-henna.png?v=1");
  background-repeat:no-repeat;
  background-position:center 56.5%;
  background-size:104% 140%;
  text-align:center;
  text-shadow:0 1px 2px rgba(0,0,0,.55);
}

.fpi-henna-countdown > p {
  margin:2.8% 0 0;
  color:#efd57f;
  font-size:clamp(10px,2.6vw,15px);
  line-height:1;
  letter-spacing:.16em;
}

.fpi-henna-countdown-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
}

.fpi-henna-countdown-grid > span {
  position:relative;
  display:grid;
  gap:2px;
  place-items:center;
}

.fpi-henna-countdown-grid > span + span::before {
  position:absolute;
  top:13%;
  bottom:13%;
  left:0;
  width:1px;
  background:rgba(238,210,128,.48);
  content:"";
}

.fpi-henna-countdown-grid strong {
  font-size:clamp(25px,7vw,43px);
  font-weight:400;
  font-variant-numeric:tabular-nums;
  line-height:.9;
}

.fpi-henna-countdown-grid small {
  color:#f5e7b7;
  font-size:clamp(9px,2.35vw,14px);
  letter-spacing:.025em;
}

.fpi-henna-floating-tray {
  position:fixed;
  z-index:30;
  top:4.25rem;
  right:max(.75rem,calc((100vw - 560px) / 2 + .75rem));
  width:clamp(82px,17vw,190px);
  max-height:32svh;
  object-fit:contain;
  pointer-events:none;
  filter:drop-shadow(0 10px 10px rgba(0,0,0,.22));
  animation:fpi-henna-tray-float 5.8s ease-in-out infinite;
}

.fpi-henna-ceremony {
  position:relative;
  z-index:4;
  min-height:730px;
  padding:clamp(52px,12vw,78px) clamp(24px,8.5vw,52px) 38px;
  margin-top:-1px;
  background:var(--fpi-bg);
  text-align:center;
}

.fpi-henna-ceremony::before,
.fpi-henna-ceremony::after {
  position:absolute;
  top:26px;
  width:30%;
  height:1px;
  background:#d7bb6a;
  content:"";
}

.fpi-henna-ceremony::before { left:8%; }
.fpi-henna-ceremony::after { right:8%; }

.fpi-henna-ornament {
  position:absolute;
  top:14px;
  left:50%;
  color:#bd943c;
  font-size:22px;
  transform:translateX(-50%);
}

.fpi-henna-section-kicker {
  margin:0;
  color:#8f7437;
  font-size:clamp(12px,3.1vw,17px);
  letter-spacing:.16em;
}

.fpi-henna-ceremony h2 {
  margin:7px 0 0;
  color:#084c2f;
  font-family:"FP Henna Corinthia",cursive;
  font-size:clamp(56px,15vw,88px);
  font-weight:400;
  line-height:.92;
}

.fpi-henna-invitation-text {
  max-width:420px;
  margin:18px auto 30px;
  color:#456354;
  font-size:clamp(17px,4.4vw,22px);
  line-height:1.38;
  white-space:pre-line;
}

.fpi-henna-details {
  padding:6px clamp(15px,5vw,28px);
  border:1px solid #d9bd70;
  border-radius:22px;
  background:#fffefb;
  box-shadow:0 13px 36px rgba(43,67,51,.09);
  text-align:left;
}

.fpi-henna-detail-row {
  display:grid;
  grid-template-columns:28px minmax(0,1fr);
  gap:13px;
  align-items:start;
  padding:17px 0;
}

.fpi-henna-detail-row + .fpi-henna-detail-row { border-top:1px solid #ecdfb9; }

.fpi-henna-detail-row > svg {
  width:23px;
  height:23px;
  margin-top:2px;
  color:#a7802f;
  stroke-width:1.45;
}

.fpi-henna-detail-row > div { display:grid; gap:2px; }

.fpi-henna-detail-row span {
  color:#947b43;
  font-size:13px;
  letter-spacing:.09em;
  text-transform:uppercase;
}

.fpi-henna-detail-row strong,
.fpi-henna-detail-row time,
.fpi-henna-detail-row address {
  color:#123f2c;
  font-family:"FP Henna Cormorant",Georgia,serif;
  font-size:clamp(17px,4.2vw,21px);
  font-style:normal;
  font-weight:400;
  line-height:1.2;
}

.fpi-henna-detail-row address {
  margin-top:2px;
  color:#4c6659;
  font-size:clamp(16px,3.8vw,19px);
}

.fpi-henna-detail-row strong.fpi-henna-venue-name {
  font-size:clamp(11px,2.55vw,13px);
  letter-spacing:.075em;
}

.fpi-henna-map-links {
  display:grid;
  gap:10px;
  width:100%;
  margin-top:18px;
}

.fpi-henna-map-links a {
  display:flex;
  min-height:50px;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:10px 18px;
  border:1px solid #d9b85a;
  border-radius:999px;
  color:#fffdf5;
  background:#084c2f;
  box-shadow:0 7px 16px rgba(8,76,47,.15);
  font-size:18px;
  line-height:1;
  letter-spacing:.025em;
  text-decoration:none;
  transition:background-color 160ms ease,transform 160ms ease;
}

.fpi-henna-map-links a:hover { background:#0b5b38; transform:translateY(-1px); }
.fpi-henna-map-links a > span { color:#efd57f; font-size:19px; }

.fpi-henna-closing-copy {
  margin:31px 0 0;
  color:#084c2f;
  font-family:"FP Henna Corinthia",cursive;
  font-size:clamp(24px,8.6vw,52px);
  line-height:.92;
  white-space:nowrap;
}

.theme-henna .fpi-footer { background:var(--fpi-bg); }

/* Aperçu du catalogue : la dernière image de la vidéo et la carte située
   dessous emploient exactement la même composition, afin d’éviter tout saut. */
body[data-fpd-demo] .fpd-stage[data-design="theme-henna"] {
  --fpd-theme-bg:#032f1d;
  --fpd-theme-glow:#032f1d;
  --fpd-theme-ink:#084c2f;
  --fpd-theme-line:rgba(201,162,75,.48);
  border-color:#8f7437;
  background:#032f1d;
}

body[data-fpd-demo] .fpd-stage[data-design="theme-henna"] .fpd-invite {
  overflow:hidden;
  background:#032f1d;
}

body[data-fpd-demo] .fpd-stage[data-design="theme-henna"] .fpd-invite::before,
body[data-fpd-demo] .fpd-stage[data-design="theme-henna"] .fpd-invite > :not(.fpd-henna-static-hero) { display:none; }

.fpd-henna-static-hero { display:none; }

body[data-fpd-demo] .fpd-stage[data-design="theme-henna"] .fpd-henna-static-hero {
  position:absolute;
  top:0;
  left:50%;
  display:block;
  width:auto;
  height:100%;
  aspect-ratio:1056 / 1490;
  gap:0;
  margin:0;
  background:#fbfaf5 url("/faire-part/themes/theme-henna/assets/fond-henna.png?v=1") center/100% 100% no-repeat;
  transform:translateX(-50%);
}

body[data-fpd-demo] .fpd-video-scene-henna {
  --fp-video-fade-duration:0ms !important;
  isolation:isolate;
  background:#032f1d;
  transition:none !important;
}

body[data-fpd-demo] .fpd-video-scene-henna::after { display:none; }

body[data-fpd-demo] .fpd-video-scene-henna video {
  z-index:2;
  object-fit:contain;
  object-position:center top;
  background:#032f1d;
}

body[data-fpd-demo] .fpd-video-copy-henna {
  z-index:3;
  display:block;
  opacity:var(--fpd-copy-opacity,0);
  clip-path:none;
  transform:none !important;
  will-change:opacity;
}

body[data-fpd-demo] .fpd-video-copy-henna .fpd-henna-opening-composition {
  position:absolute;
  top:0;
  left:50%;
  width:auto;
  height:100%;
  aspect-ratio:1056 / 1490;
  transform:translateX(-50%);
}

body[data-fpd-demo] .fpd-video-copy-henna .fpi-henna-event-copy span {
  margin:0;
  font-size:inherit;
  letter-spacing:inherit;
}

body[data-fpd-demo] .fpd-henna-stage-tray {
  position:absolute;
  z-index:4;
  top:8%;
  right:2.5%;
  width:25%;
  max-height:30%;
  object-fit:contain;
  filter:drop-shadow(0 8px 8px rgba(0,0,0,.22));
  animation:fpi-henna-tray-float 5.8s ease-in-out infinite;
}

body[data-fpd-demo] .fpd-video-scene-henna > button[data-fpd-video-start] {
  top:auto;
  bottom:5%;
  border-color:rgba(239,207,118,.86);
  color:#fff9e8;
  background:rgba(3,47,29,.88);
  font-family:"FP Henna Cormorant",Georgia,serif;
  transform:translateX(-50%);
}

body[data-fpd-demo] .fpd-video-scene-henna.is-playing > button[data-fpd-video-start] {
  transform:translateX(-50%) scale(.98);
}

@keyframes fpi-henna-tray-float {
  0%,100% { transform:translateY(0) rotate(-1deg); }
  50% { transform:translateY(8px) rotate(1.5deg); }
}

@media (max-width:390px) {
  .fpi-henna-floating-tray,
  .theme-henna .fpi-henna-opening-tray { width:clamp(76px,24vw,112px); }
}

@media (min-width:500px) {
  .fpi-henna-map-links { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .fpi-henna-map-links a { padding-inline:8px; font-size:16px; }
}

@media (prefers-reduced-motion:reduce) {
  .fpi-henna-floating-tray,
  .theme-henna .fpi-henna-opening-tray,
  body[data-fpd-demo] .fpd-henna-stage-tray { animation:none !important; }
}
