/*
 * Identité de la plateforme Faire-part.
 * Ce fichier habille uniquement les écrans produit (vitrine, studio, démos,
 * espace couple et futur back-office). Les designs d'invitation conservent
 * leurs palettes propres — notamment Nuit Saphir lorsqu'il est choisi.
 */
:root {
  --fpw-paper: #fbf7f1;
  --fpw-paper-deep: #f1e8dc;
  --fpw-card: #fffdf9;
  --fpw-ink: #302927;
  --fpw-muted: #756b66;
  --fpw-line: rgba(91, 70, 60, .16);
  --fpw-champagne: #bd9560;
  --fpw-champagne-soft: #ead7b9;
  --fpw-rose: #b97878;
  --fpw-rose-soft: #edd4d1;
  --fpw-sage: #788274;
  --fpw-sage-soft: #dfe4da;
  --fpw-shadow: 0 24px 70px rgba(73, 52, 43, .12);
  --fpw-shadow-soft: 0 12px 36px rgba(73, 52, 43, .08);
  --fpw-rose-deep: #945f62;
  --fpw-sage-deep: #596553;
  --fpw-font: "Avenir Next", Avenir, Inter, "Segoe UI", Helvetica, Arial, sans-serif;
}

html.fp-page,
html.fps-page,
html.fpd-page,
html.fpm-page {
  color-scheme: light;
  background: var(--fpw-paper);
}

body.fp-landing,
body.fps-body,
body[data-fpd-demo],
body[data-faire-part-management],
body[data-faire-part-admin] {
  color-scheme: light;
  color: var(--fpw-ink);
  background:
    radial-gradient(circle at 8% 5%, rgba(237, 212, 209, .72), transparent 26rem),
    radial-gradient(circle at 92% 18%, rgba(223, 228, 218, .78), transparent 30rem),
    var(--fpw-paper);
  font-family: var(--fpw-font);
}

/* Marque autonome : Faire-part d'abord, BR Booking seulement en signature. */
.fp-brand-mark::before,
.fp-brand-mark::after,
.fp-brand-mark i,
.fps-brand-mark::before,
.fps-brand-mark::after {
  border-color: var(--fpw-champagne);
}

.fp-brand small,
.fps-brand small,
.fpd-brand small,
.fpm-brand-copy small {
  color: var(--fpw-rose);
}

.fp-brand b,
.fps-brand b,
.fpd-brand b,
.fpm-brand-copy strong {
  color: var(--fpw-ink);
}

.fp-brand small,
.fps-brand small,
.fpd-brand small {
  font-weight: 720;
  letter-spacing: .16em;
}

.fp-brand-mark,
.fps-brand-mark,
.fpd-brand > span {
  filter: drop-shadow(0 5px 10px rgba(119, 78, 68, .1));
}

/* ---------- Vitrine ---------- */
body.fp-landing {
  --fp-gold: var(--fpw-champagne);
  --fp-gold-soft: #7f5b4d;
  --fp-white: var(--fpw-ink);
  --fp-muted: var(--fpw-muted);
  --fp-line: var(--fpw-line);
  background: var(--fpw-paper);
}

body.fp-landing .fp-nav {
  background: linear-gradient(180deg, rgba(251, 247, 241, .96), rgba(251, 247, 241, .72), transparent);
}

body.fp-landing .fp-nav.is-scrolled {
  border-color: var(--fpw-line);
  background: rgba(255, 253, 249, .9);
  box-shadow: 0 10px 36px rgba(74, 52, 44, .07);
}

body.fp-landing .fp-nav > nav a { color: #635953; }
body.fp-landing .fp-nav > nav a:hover { color: var(--fpw-rose); }
body.fp-landing .fp-nav-cta {
  border-color: rgba(185, 120, 120, .4);
  color: #704948;
  background: rgba(255, 253, 249, .58);
}
body.fp-landing .fp-nav-cta:hover {
  border-color: var(--fpw-rose);
  color: #fff;
  background: var(--fpw-rose);
}

body.fp-landing .fp-hero {
  color: var(--fpw-ink);
  background:
    radial-gradient(ellipse at 84% 20%, rgba(223, 228, 218, .94), transparent 31%),
    radial-gradient(ellipse at 65% 92%, rgba(237, 212, 209, .8), transparent 34%),
    linear-gradient(132deg, #fffdf9 0 45%, #f3eadf 100%);
}

body.fp-landing .fp-hero::before {
  opacity: .42;
  background-image:
    radial-gradient(circle, rgba(123, 95, 82, .12) 1px, transparent 1.2px);
  background-size: 32px 32px;
  mask-image: linear-gradient(90deg, transparent 24%, #000);
}

body.fp-landing .fp-hero-glow {
  background: rgba(185, 120, 120, .22);
}

body.fp-landing .fp-kicker { color: #8a6356; }
body.fp-landing .fp-kicker span { background: var(--fpw-rose); }
body.fp-landing .fp-hero h1,
body.fp-landing .fp-section h2,
body.fp-landing .fp-final-cta h2 {
  letter-spacing: -.065em;
  text-transform: none;
}

body.fp-landing .fp-hero h1 em,
body.fp-landing .fp-section h2 em,
body.fp-landing .fp-final-cta h2 em {
  color: var(--fpw-rose);
  font-weight: 650;
}

body.fp-landing .fp-hero-lead { color: #6e625d; }
body.fp-landing .fp-btn-gold {
  color: #fff;
  background: var(--fpw-rose);
  box-shadow: 0 12px 28px rgba(150, 85, 85, .2);
}
body.fp-landing .fp-btn-gold:hover { background: #9e6262; }
body.fp-landing .fp-btn-ghost {
  border-color: rgba(91, 70, 60, .25);
  color: #564b46;
  background: rgba(255, 253, 249, .6);
}
body.fp-landing .fp-proof strong { color: #9d6a5a; }
body.fp-landing .fp-proof span { color: #776d68; }
body.fp-landing .fp-floating-note {
  border-color: rgba(91, 70, 60, .15);
  color: #5d514c;
  background: rgba(255, 253, 249, .86);
  box-shadow: var(--fpw-shadow);
}
body.fp-landing .fp-floating-note span { color: var(--fpw-rose); }
body.fp-landing .fp-orbit { border-color: rgba(185, 120, 120, .22); }

body.fp-landing .fp-marquee {
  border-color: rgba(91, 70, 60, .1);
  color: #4d403b;
  background: var(--fpw-rose-soft);
}

body.fp-landing .fp-designs {
  color: var(--fpw-ink);
  background: #f8f3ec;
}
body.fp-landing .fp-experience {
  color: var(--fpw-ink);
  background:
    radial-gradient(circle at 82% 45%, rgba(255, 253, 249, .92), transparent 38%),
    linear-gradient(135deg, #dfe4da, #f4eee5);
}
body.fp-landing .fp-experience-copy > p:not(.fp-kicker) { color: #665f59; }
body.fp-landing .fp-experience .fp-text-link { color: #76524a; }
body.fp-landing .fp-door-stage {
  border-color: #d0bca7;
  background: #efe5da;
  box-shadow: var(--fpw-shadow);
}
body.fp-landing .fp-door-back {
  color: #7e584f;
  background: radial-gradient(circle at 50% 40%, #fffaf3, transparent 52%), #eaded2;
}
body.fp-landing .fp-door {
  border-color: #a98467;
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.12) 0 2px, transparent 2px 25%),
    linear-gradient(145deg, #c9a98e, #8f6b55 76%);
}
body.fp-landing .fp-door-stage button {
  color: #fff;
  background: var(--fpw-rose);
  border-color: var(--fpw-rose);
}

body.fp-landing .fp-modes {
  color: var(--fpw-ink);
  background: #f4ebe5;
}
body.fp-landing .fp-mode-card {
  border-color: var(--fpw-line);
  color: var(--fpw-ink);
  background: rgba(255, 253, 249, .84);
  box-shadow: 0 18px 55px rgba(84, 61, 51, .07);
}
body.fp-landing .fp-mode-card.is-featured {
  border-color: rgba(185, 120, 120, .52);
  background: #fffaf6;
}
body.fp-landing .fp-mode-card > p:first-of-type,
body.fp-landing .fp-mode-description,
body.fp-landing .fp-mode-card li { color: #6e635e; }
body.fp-landing .fp-mode-number,
body.fp-landing .fp-mode-card li span,
body.fp-landing .fp-mode-card > a,
body.fp-landing .fp-manager-note { color: #8b5a53 !important; }
body.fp-landing .fp-mode-card > a { border-color: var(--fpw-line); }
body.fp-landing .fp-mode-rule { background: var(--fpw-rose); }
body.fp-landing .fp-mode-badge { color: #fff; background: var(--fpw-rose); }

body.fp-landing .fp-process {
  color: var(--fpw-ink);
  background: #fffdf9;
}
body.fp-landing .fp-process .fp-kicker,
body.fp-landing .fp-process h2 em,
body.fp-landing .fp-process li > span { color: var(--fpw-rose); }
body.fp-landing .fp-process .fp-section-head > p,
body.fp-landing .fp-process li p { color: var(--fpw-muted); }
body.fp-landing .fp-process ol,
body.fp-landing .fp-process li { border-color: var(--fpw-line); }
body.fp-landing .fp-final-cta {
  color: var(--fpw-ink);
  background:
    radial-gradient(circle at 50% 45%, rgba(255,253,249,.92), transparent 40%),
    linear-gradient(135deg, #ead5d0, #e2e7dc);
}
body.fp-landing .fp-final-cta > p:not(.fp-kicker) { color: #655b56; }
body.fp-landing .fp-footer {
  border-color: var(--fpw-line);
  color: #665b56;
  background: #f6eee6;
}
body.fp-landing .fp-footer > p,
body.fp-landing .fp-footer nav a { color: var(--fpw-muted); }
body.fp-landing .fp-footer nav a:hover { color: var(--fpw-rose-deep); }

/* ---------- Studio de création ---------- */
body.fps-body {
  --fps-gold: var(--fpw-rose);
  --fps-gold-soft: #8c5f56;
  --fps-white: var(--fpw-ink);
  --fps-muted: var(--fpw-muted);
  --fps-line: var(--fpw-line);
  background: var(--fpw-paper);
}
body.fps-body .fps-header {
  border-color: var(--fpw-line);
  background: rgba(255, 253, 249, .93);
  box-shadow: 0 8px 28px rgba(79, 56, 47, .06);
}
body.fps-body .fps-save-state { color: #746a65; }
body.fps-body .fps-icon-button,
body.fps-body .fps-close {
  border-color: var(--fpw-line);
  color: #5d514c;
  background: #fffdf9;
}
body.fps-body .fps-controls {
  color: var(--fpw-ink);
  background:
    radial-gradient(circle at 0 0, rgba(237, 212, 209, .68), transparent 30rem),
    var(--fpw-paper);
}
body.fps-body .fps-progress-wrap {
  background: linear-gradient(rgba(251,247,241,.98) 78%, transparent);
}
body.fps-body .fps-progress { background: rgba(91,70,60,.13); }
body.fps-body .fps-progress-copy b,
body.fps-body .fps-choice-copy small,
body.fps-body .fps-tip,
body.fps-body .fps-preview-sound small,
body.fps-body .fps-recap small { color: #857a74; }
body.fps-body .fps-step-head h1,
body.fps-body .fps-step-head h2 {
  letter-spacing: -.055em;
  text-transform: none;
}
body.fps-body .fps-choice-card,
body.fps-body .fps-music-card label,
body.fps-body .fps-checkout-card {
  border-color: var(--fpw-line);
  color: var(--fpw-ink);
  background: rgba(255, 253, 249, .86);
  box-shadow: 0 14px 42px rgba(76, 54, 45, .06);
}
body.fps-body .fps-choice-card:hover,
body.fps-body .fps-choice-card:has(input:checked),
body.fps-body .fps-music-card label:has(input:checked) {
  border-color: rgba(185, 120, 120, .58);
  background: #fffaf6;
}
body.fps-body .fps-choice-check,
body.fps-body .fps-silent { border-color: var(--fpw-line); }
body.fps-body .fps-choice-card:has(input:checked) > .fps-choice-check,
body.fps-body .fps-choice-card:has(input:checked) > i.fps-choice-check {
  color: #fff;
}
body.fps-body .fps-choice-copy > span,
body.fps-body .fps-mode-features > span,
body.fps-body .fps-field > span,
body.fps-body .fps-music-card b,
body.fps-body .fps-checkout-card > span,
body.fps-body .fps-protection-note { color: #776d67; }
body.fps-body .fps-field input {
  border-color: var(--fpw-line);
  color: var(--fpw-ink);
  background: #fffdf9;
}
body.fps-body .fps-field input:focus { background: #fff8f5; }
body.fps-body .fps-preview-sound,
body.fps-body .fps-recap,
body.fps-body .fps-recap > div,
body.fps-body .fps-protection-note { border-color: var(--fpw-line); }
body.fps-body .fps-preview-sound { color: var(--fpw-ink); }
body.fps-body .fps-preview-sound > span { color: #fff; }
body.fps-body .fps-protection-note { background: rgba(237, 212, 209, .25); }
body.fps-body .fps-checkout-card { background: linear-gradient(145deg, #fffaf6, #eee4d9); }
body.fps-body .fps-checkout-button:not(.fps-checkout-test) { color: #887d77; background: #e3dbd2; }
body.fps-body .fps-checkout-test,
body.fps-body .fps-next { color: #fff; background: var(--fpw-rose); }
body.fps-body .fps-navigation {
  border-color: var(--fpw-line);
  background: rgba(251, 247, 241, .94);
}
body.fps-body .fps-back { color: #6e625d; }
body.fps-body .fps-preview-panel {
  border-color: var(--fpw-line);
  background:
    radial-gradient(circle at 50% 42%, rgba(255,253,249,.9), transparent 44%),
    linear-gradient(145deg, #eaded4, #dce2d8);
}
body.fps-body .fps-preview-toolbar { border-color: var(--fpw-line); }
body.fps-body .fps-preview-toolbar small { color: #746a65; }
body.fps-body .fps-preview-toolbar > div > span { background: rgba(89,70,61,.28); }
body.fps-body .fps-preview-toolbar .fps-preview-close { color: var(--fpw-ink); }
body.fps-body .fps-device-shadow { background: rgba(87, 62, 51, .2); }
body.fps-body .fps-animation-icon { border-color: rgba(185,120,120,.36); background: #efe2d7; }
body.fps-body .fps-animation-icon-porte i:first-child,
body.fps-body .fps-animation-icon-porte i:nth-child(2) { border-color: #9a7760; background: #bb957c; }
body.fps-body .fps-animation-icon-rideau i:first-child,
body.fps-body .fps-animation-icon-rideau i:nth-child(2) {
  background: repeating-linear-gradient(90deg, #b77e7e 0 7px, #986565 7px 14px);
}
body.fps-body .fps-animation-icon-papercraft i:first-child { background: #c2cdbb; }
body.fps-body .fps-animation-icon-papercraft i:nth-child(2) { background: #dbc8bb; }
body.fps-body .fps-animation-icon-papercraft i:nth-child(3) { background: #b97878; }
body.fps-body .fps-animation-icon-grattage {
  background: linear-gradient(135deg, #c8ab7f, #f1dfc2 46%, #a98259);
}
body.fps-body .fps-animation-icon-grattage::after { color: var(--fpw-ink); }
body.fps-body .fps-animation-layer button,
body.fps-body .fps-animation-scratch button { color: #fff; }
body.fps-body .fps-animation-scratch p { color: var(--fpw-ink); }
body.fps-body .fps-preview-door {
  border-color: #9c7866;
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.08) 0 2px, transparent 2px 25%),
    linear-gradient(145deg, #c2a28c, #8d6a58 74%);
}
body.fps-body .fps-animation-curtain { background: #ead9d5; }
body.fps-body .fps-curtain {
  background: repeating-linear-gradient(90deg, #b97878 0 13px, #986363 13px 26px, #c68d8d 26px 32px);
}
body.fps-body .fps-animation-paper { background: #f3eadf; }
body.fps-body .fps-paper-one { background: #dbe2d6; }
body.fps-body .fps-paper-two { background: #c8d0c1; }
body.fps-body .fps-paper-three { background: #d8b8b1; }
body.fps-body .fps-toast {
  color: var(--fpw-ink);
  background: rgba(255,253,249,.96);
  box-shadow: var(--fpw-shadow-soft);
}
body.fps-body .fps-test-result { background: rgba(63,48,43,.48); }
body.fps-body .fps-test-result > div {
  color: var(--fpw-ink);
  background:
    radial-gradient(circle at 50% 0, rgba(237,212,209,.76), transparent 48%),
    #fffdf9;
  box-shadow: var(--fpw-shadow);
}
body.fps-body .fps-test-result > div > span,
body.fps-body .fps-test-result button { color: #fff; }
body.fps-body .fps-test-result > div > p:last-of-type { color: var(--fpw-muted); }

/* Champs éditoriaux du studio : mariage, tactiles et lisibles sur mobile. */
body.fps-body .fps-field textarea,
body.fps-body .fps-field select {
  width: 100%;
  border: 1px solid var(--fpw-line);
  border-radius: 14px;
  outline: 0;
  color: var(--fpw-ink);
  background: #fffdf9;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
body.fps-body .fps-field textarea {
  min-height: 118px;
  padding: 1rem;
  line-height: 1.65;
  resize: vertical;
}
body.fps-body .fps-field select {
  min-height: 60px;
  padding: 0 2.5rem 0 1rem;
}
body.fps-body .fps-field textarea:focus,
body.fps-body .fps-field select:focus {
  border-color: rgba(185,120,120,.72);
  background: #fff8f5;
  box-shadow: 0 0 0 4px rgba(185,120,120,.09);
}
body.fps-body .fps-story-field textarea { min-height: 260px; }
body.fps-body .fps-field-counter {
  justify-self: end;
  color: var(--fpw-muted);
  font-size: .64rem;
  font-weight: 750;
}
body.fps-body .fps-schedule-list { display: grid; gap: 1rem; }
body.fps-body .fps-schedule-item {
  overflow: hidden;
  border: 1px solid var(--fpw-line);
  border-radius: 20px;
  background: rgba(255,253,249,.88);
  box-shadow: var(--fpw-shadow-soft);
}
body.fps-body .fps-schedule-item-head {
  display: flex;
  min-height: 48px;
  align-items: center;
  justify-content: space-between;
  padding: .65rem .85rem .65rem 1rem;
  border-bottom: 1px solid var(--fpw-line);
  background: linear-gradient(90deg, rgba(237,212,209,.48), rgba(223,228,218,.38));
}
body.fps-body .fps-schedule-item-head > span {
  color: var(--fpw-rose-deep);
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}
body.fps-body .fps-schedule-item-head button {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid var(--fpw-line);
  border-radius: 50%;
  color: var(--fpw-muted);
  background: rgba(255,253,249,.8);
  cursor: pointer;
  font-size: 1.2rem;
}
body.fps-body .fps-schedule-fields {
  display: grid;
  grid-template-columns: minmax(120px,.35fr) minmax(180px,1fr);
  gap: 1rem;
  padding: 1rem;
}
body.fps-body .fps-add-schedule {
  display: flex;
  width: 100%;
  min-height: 58px;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  margin-top: 1rem;
  border: 1px dashed rgba(185,120,120,.55);
  border-radius: 16px;
  color: var(--fpw-rose-deep);
  background: rgba(237,212,209,.2);
  cursor: pointer;
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
body.fps-body .fps-add-schedule:disabled { cursor: default; opacity: .45; }
body.fps-body .fps-add-schedule > span { font-size: 1.2rem; }
body.fps-body .fps-schedule-limit {
  margin: .65rem 0 0;
  color: var(--fpw-muted);
  font-size: .65rem;
  text-align: right;
}
body.fps-body .fps-contact-card {
  display: grid;
  grid-template-columns: 100px minmax(0,1fr);
  gap: 1.4rem;
  padding: clamp(1rem,3vw,1.7rem);
  border: 1px solid var(--fpw-line);
  border-radius: 24px;
  background:
    radial-gradient(circle at 0 0, rgba(237,212,209,.68), transparent 15rem),
    rgba(255,253,249,.9);
  box-shadow: var(--fpw-shadow-soft);
}
body.fps-body .fps-contact-symbol {
  display: grid;
  width: 84px;
  height: 84px;
  place-items: center;
  border: 1px solid rgba(185,120,120,.3);
  border-radius: 50%;
  color: var(--fpw-rose);
  background: rgba(237,212,209,.32);
  font-size: 2rem;
}
body.fps-body .fps-contact-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
body.fps-body .fps-contact-note { grid-column: 1/-1; }
body.fps-body .fps-save-state button {
  padding: .35rem .55rem;
  border: 1px solid rgba(185,120,120,.42);
  border-radius: 999px;
  color: var(--fpw-rose-deep);
  background: #fff8f5;
  cursor: pointer;
  font-size: .58rem;
  font-weight: 850;
}

@media (max-width: 760px) {
  body.fps-body .fps-schedule-fields,
  body.fps-body .fps-contact-fields { grid-template-columns: 1fr; }
  body.fps-body .fps-contact-card { grid-template-columns: 1fr; }
  body.fps-body .fps-contact-symbol { width: 58px; height: 58px; font-size: 1.45rem; }
  body.fps-body .fps-contact-note { grid-column: auto; }
  body.fps-body .fps-story-field textarea { min-height: 220px; }
}

/* ---------- Démonstrateur d'animations ---------- */
body[data-fpd-demo] {
  --d-night: var(--fpw-paper);
  --d-blue: var(--fpw-sage);
  --d-gold: var(--fpw-rose);
  --d-gold-soft: #8a5d55;
  --d-white: var(--fpw-ink);
  --d-muted: var(--fpw-muted);
  background:
    radial-gradient(circle at 78% 35%, rgba(223,228,218,.92), transparent 38%),
    var(--fpw-paper);
}
body[data-fpd-demo] .fpd-header {
  border-color: var(--fpw-line);
  background: rgba(255,253,249,.92);
}
body[data-fpd-demo] .fpd-header button {
  border-color: var(--fpw-line);
  color: #5e534e;
  background: #fffdf9;
}
body[data-fpd-demo] .fpd-header > p { color: var(--fpw-muted); }
body[data-fpd-demo] .fpd-header > div > a {
  border-color: var(--fpw-line);
  color: var(--fpw-ink);
}
body[data-fpd-demo] .fpd-tabs button {
  border-color: var(--fpw-line);
  color: #776d67;
  background: rgba(255,253,249,.76);
}
body[data-fpd-demo] .fpd-tabs button[aria-selected="true"] {
  border-color: rgba(185,120,120,.62);
  color: var(--fpw-ink);
  background: #fff8f5;
}
body[data-fpd-demo] .fpd-cta { color: #fff; background: var(--fpw-rose); }
body[data-fpd-demo] .fpd-stage {
  border-color: #cdb8a7;
  background: #eee3d8;
  box-shadow: var(--fpw-shadow);
}
body[data-fpd-demo] .fpd-copy h1 {
  letter-spacing: -.06em;
  text-transform: none;
}
body[data-fpd-demo] .fpd-copy h1 em { color: var(--fpw-rose); font-weight: 650; }
body[data-fpd-demo] .fpd-copy > p:not(.fpd-kicker),
body[data-fpd-demo] .fpd-tabs button small,
body[data-fpd-demo] .fpd-hint { color: var(--fpw-muted); }
body[data-fpd-demo] .fpd-kicker,
body[data-fpd-demo] .fpd-tabs button > span,
body[data-fpd-demo] .fpd-hint span { color: var(--fpw-rose-deep); }
body[data-fpd-demo] .fpd-invite {
  color: #75554c;
  background:
    radial-gradient(circle at 50% 32%, rgba(237,212,209,.72), transparent 43%),
    #fffaf2;
}
body[data-fpd-demo] .fpd-invite h2 i { color: var(--fpw-rose); }
body[data-fpd-demo] .fpd-door {
  border-color: #98735f;
  background:
    repeating-linear-gradient(90deg, rgba(255,255,255,.08) 0 2px, transparent 2px 24%),
    linear-gradient(145deg, #c3a28c, #886653 72%);
}
body[data-fpd-demo] .fpd-door span { color: #fff4e8; }
body[data-fpd-demo] .fpd-curtain {
  background: repeating-linear-gradient(90deg, #b97878 0 20px, #925d60 20px 40px, #c88f8e 40px 48px);
}
body[data-fpd-demo] .fpd-paper-sky { background: #e3e9df; }
body[data-fpd-demo] .fpd-paper-arch { background: #cbd5c5; }
body[data-fpd-demo] .fpd-paper-garden { background: #a9b69f; }
body[data-fpd-demo] .fpd-paper-front { background: #e2c3bc; }
body[data-fpd-demo] .fpd-scene > button[data-fpd-open],
body[data-fpd-demo] .fpd-scratch-scene > button[data-fpd-reveal] {
  color: #fff;
  background: var(--fpw-rose);
}
body[data-fpd-demo] .fpd-scratch-scene > p { color: var(--fpw-ink); }
body[data-fpd-demo] .fpd-sound-bubble,
body[data-fpd-demo] .fpd-replay {
  border-color: rgba(255,255,255,.44);
  color: #fff;
  background: rgba(88,64,59,.66);
}
body[data-fpd-demo] .fpd-sound-bubble span { color: #f3d7d1; }

/* ---------- Espace couple / futur back-office ---------- */
body[data-faire-part-management],
body[data-faire-part-admin] {
  --fpm-ink: var(--fpw-ink);
  --fpm-soft: #8c817b;
  --fpm-night: var(--fpw-paper);
  --fpm-navy: var(--fpw-paper-deep);
  --fpm-panel: var(--fpw-card);
  --fpm-panel-light: #f6eee7;
  --fpm-blue: var(--fpw-rose);
  --fpm-blue-light: #94635c;
  --fpm-gold: var(--fpw-champagne);
  --fpm-gold-light: #d9bc92;
  --fpm-white: var(--fpw-ink);
  --fpm-text: var(--fpw-ink);
  --fpm-muted: var(--fpw-muted);
  --fpm-line: var(--fpw-line);
  --fpm-line-strong: rgba(91,70,60,.27);
  --fpm-green: var(--fpw-sage);
  --fpm-pink: var(--fpw-rose);
  --fpm-danger: #a85d64;
  --fpm-shadow: var(--fpw-shadow);
  color: var(--fpw-ink);
  background: var(--fpw-paper);
}
body[data-faire-part-management] .fpm-ambient,
body[data-faire-part-admin] .fpm-ambient {
  opacity: .55;
  filter: sepia(.35) hue-rotate(330deg) saturate(.55);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-ambient span {
  border-color: rgba(185,120,120,.1);
  box-shadow: none;
}
body[data-faire-part-management] .fpm-header,
body[data-faire-part-admin] .fpm-header {
  border-color: var(--fpw-line);
  background: rgba(255,253,249,.92);
  box-shadow: 0 8px 28px rgba(79,56,47,.06);
}
body[data-faire-part-management] .fpm-brand-mark,
body[data-faire-part-admin] .fpm-brand-mark {
  border-color: rgba(185,120,120,.55);
  color: var(--fpw-rose-deep);
  background: #fffaf6;
  box-shadow: none;
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-brand-mark::before,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-brand-mark::after {
  background: var(--fpw-champagne);
  box-shadow: none;
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-brand-mark i { font-size: 1.05rem; }
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-brand-copy strong {
  letter-spacing: .015em;
  text-transform: none;
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-brand-copy small {
  color: var(--fpw-muted);
  font-weight: 650;
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-profile-button {
  border-color: rgba(185,120,120,.35);
  color: #fff;
  background: linear-gradient(145deg, #bf8585, #9c6568);
}
body[data-faire-part-management] .fpm-auth-view,
body[data-faire-part-admin] .fpm-auth-view {
  background:
    radial-gradient(circle at 12% 18%, rgba(237,212,209,.78), transparent 28rem),
    radial-gradient(circle at 84% 70%, rgba(223,228,218,.86), transparent 31rem),
    var(--fpw-paper);
}
body[data-faire-part-management] .fpm-auth-story,
body[data-faire-part-admin] .fpm-auth-story {
  color: var(--fpw-ink);
  background:
    radial-gradient(circle at 85% 15%, rgba(237,212,209,.9), transparent 17rem),
    radial-gradient(circle at 5% 110%, rgba(223,228,218,.92), transparent 23rem),
    linear-gradient(145deg, #fffaf5, #eee3d9 72%);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-auth-story h1 span,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-dashboard-hero h1 strong {
  color: var(--fpw-rose);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-auth-lead,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-trust-list li {
  color: #655a55;
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-auth-story::after,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-orbit::before,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-orbit::after {
  border-color: rgba(185,120,120,.2);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-orbit-center {
  border-color: rgba(189,149,96,.5);
  color: var(--fpw-ink);
  background: rgba(255,253,249,.92);
  box-shadow: 0 18px 55px rgba(119,78,68,.14);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-orbit-center b {
  color: var(--fpw-rose-deep);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-orbit-card {
  border-color: var(--fpw-line);
  color: var(--fpw-ink);
  background: rgba(255,253,249,.94);
  box-shadow: var(--fpw-shadow-soft);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-orbit-card b,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-trust-list span {
  color: var(--fpw-sage-deep);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-trust-list span {
  background: rgba(120,130,116,.13);
}
body[data-faire-part-management] .fpm-auth-panel,
body[data-faire-part-admin] .fpm-auth-panel,
body[data-faire-part-management] .fpm-card,
body[data-faire-part-admin] .fpm-card,
body[data-faire-part-management] .fpm-project-card,
body[data-faire-part-admin] .fpm-project-card {
  border-color: var(--fpw-line);
  color: var(--fpw-ink);
  background: rgba(255,253,249,.9);
  box-shadow: var(--fpw-shadow);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-auth-tabs,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-inline-email-form {
  border-color: var(--fpw-line);
  background: #f5ede5;
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-auth-tabs a.is-active {
  color: var(--fpw-ink);
  background: #fffdf9;
  box-shadow: inset 0 0 0 1px var(--fpw-line);
}
body[data-faire-part-management] .fpm-field input,
body[data-faire-part-management] .fpm-field textarea,
body[data-faire-part-management] .fpm-field select,
body[data-faire-part-admin] .fpm-field input,
body[data-faire-part-admin] .fpm-field textarea,
body[data-faire-part-admin] .fpm-field select {
  border-color: var(--fpw-line);
  color: var(--fpw-ink);
  background: #fffdf9;
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-field > span:first-child,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-mode-choices legend,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-search-field input {
  color: var(--fpw-ink);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-field input::placeholder,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-search-field input::placeholder {
  color: #a49a94;
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-search-field,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-filter-field select {
  border-color: var(--fpw-line);
  color: var(--fpw-ink);
  background: #fffdf9;
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-field input:focus,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-field select:focus,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-search-field:focus-within,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-filter-field select:focus {
  border-color: rgba(185,120,120,.68);
  background: #fffaf6;
  box-shadow: 0 0 0 4px rgba(185,120,120,.1);
}
body[data-faire-part-management] .fpm-button-primary,
body[data-faire-part-admin] .fpm-button-primary {
  color: #fff;
  background: var(--fpw-rose);
  box-shadow: 0 12px 28px rgba(150,85,85,.2);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-button-primary:hover {
  background: var(--fpw-rose-deep);
  box-shadow: 0 16px 34px rgba(150,85,85,.24);
}
body[data-faire-part-management] .fpm-button-ghost,
body[data-faire-part-admin] .fpm-button-ghost {
  border-color: var(--fpw-line);
  color: #655953;
  background: #fffdf9;
}

body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-button-icon,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-dashboard-strip > div,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-empty-projects,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-guest-empty,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-no-results,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-stat-grid article,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-approval-section,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-guest-list-section,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-approval-card,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-guest-card,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-mode-choices label > span {
  border-color: var(--fpw-line);
  color: var(--fpw-ink);
  background: rgba(255,253,249,.86);
}

body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-guest-card:hover,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-mode-choices input:checked + span {
  border-color: rgba(185,120,120,.42);
  background: #fff9f6;
  box-shadow: 0 0 0 3px rgba(185,120,120,.07);
}

body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-strip-icon,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-empty-spark,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-guest-empty > span,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-mode-choices label > span > i,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-stat-mark-blue {
  color: var(--fpw-rose-deep);
  background: rgba(185,120,120,.13);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-soft-status,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-registration-unavailable strong,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-project-validation {
  color: #765b38 !important;
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-form-message,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-button-danger {
  color: #8f4d57;
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-button-positive,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-project-validation.is-complete,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-response-badge.is-attending {
  color: var(--fpw-sage-deep);
}

body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-project-card {
  border-color: var(--fpw-line);
  color: var(--fpw-ink);
  background: #fffdf9;
  box-shadow: var(--fpw-shadow-soft);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-project-card:hover {
  border-color: rgba(185,120,120,.38);
  box-shadow: var(--fpw-shadow);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-project-preview {
  background:
    radial-gradient(circle at 74% 14%, rgba(218,185,159,.42), transparent 11rem),
    linear-gradient(145deg, #7b594c, #3f2c27);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-project-preview.is-nuit-saphir {
  background:
    radial-gradient(circle at 75% 15%, rgba(70,89,255,.5), transparent 11rem),
    linear-gradient(145deg, #182c68, #11162d);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-project-preview.is-jardin-ivoire {
  background:
    radial-gradient(circle at 75% 15%, rgba(189,207,181,.45), transparent 11rem),
    linear-gradient(145deg, #74816e, #455041);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-project-preview.is-edition-privee {
  background:
    radial-gradient(circle at 75% 15%, rgba(224,169,136,.32), transparent 11rem),
    linear-gradient(145deg, #55353c, #2d2023);
}

body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-project-card-topline span:first-child,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-breadcrumb a,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-text-button,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-link-button,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-recovery-link a,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-guest-notes summary {
  color: var(--fpw-rose-deep);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-switch-copy a,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-auth-help a {
  color: var(--fpw-rose-deep);
  text-decoration-color: rgba(185,120,120,.42);
}

body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-help-card,
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-simple-guard {
  border-color: var(--fpw-line);
  color: var(--fpw-ink);
  background:
    radial-gradient(circle at 100% 0, rgba(223,228,218,.72), transparent 18rem),
    #f8f0e8;
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-simple-illustration {
  border-color: var(--fpw-line);
  background: linear-gradient(145deg, #d8c4b5, #a98875);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-simple-illustration i { color: #fff; }
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-person-avatar {
  border-color: rgba(185,120,120,.28);
  color: #fff;
  background: linear-gradient(145deg, #b77d7d, #8e6262);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-guest-meta span {
  color: #665a55;
  background: #f3ebe4;
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-response-badge.is-pending-approval {
  color: #785d54;
  background: rgba(189,149,96,.14);
}

body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-dialog {
  border-color: var(--fpw-line);
  color: var(--fpw-ink);
  background: #fffdf9;
  box-shadow: 0 -24px 80px rgba(73,52,43,.2);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-dialog::backdrop {
  background: rgba(63,48,43,.48);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-dialog-close-form button {
  border-color: var(--fpw-line);
  color: var(--fpw-ink);
  background: #f7efe8;
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-token-value {
  border-color: rgba(185,120,120,.34);
  background: #f7efe8;
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-token-value code { color: var(--fpw-ink); }
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-token-value button {
  color: var(--fpw-rose-deep);
  background: rgba(185,120,120,.14);
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-toast {
  border-color: rgba(120,130,116,.3);
  color: var(--fpw-ink);
  background: rgba(255,253,249,.97);
  box-shadow: var(--fpw-shadow);
}

body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-footer { color: var(--fpw-muted); }
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-footer p { color: var(--fpw-ink); }
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-footer p small {
  color: var(--fpw-muted);
  font-size: .56rem;
  font-weight: 650;
  letter-spacing: .04em;
  text-transform: none;
}
body:is([data-faire-part-management],[data-faire-part-admin]) .fpm-footer a:hover { color: var(--fpw-rose-deep); }

:where(.fp-landing,.fps-body,[data-fpd-demo],[data-faire-part-management],[data-faire-part-admin]) :focus-visible {
  outline-color: rgba(185,120,120,.78);
}

@media (max-width: 760px) {
  body.fp-landing .fp-nav { background: rgba(255,253,249,.94); }
  body.fp-landing .fp-hero { background: linear-gradient(155deg,#fffdf9,#efe4d9); }
  body.fps-body .fps-header { background: rgba(255,253,249,.96); }
  body.fps-body .fps-controls { background: var(--fpw-paper); }
  body.fps-body .fps-preview-panel { background: linear-gradient(145deg,#eaded4,#dce2d8); }
  .fp-brand small,
  .fps-brand small,
  .fpd-brand small { letter-spacing: .1em; }
  body[data-faire-part-management] .fpm-auth-story,
  body[data-faire-part-admin] .fpm-auth-story { min-height: 420px; }
}

@media (prefers-reduced-motion: reduce) {
  body.fp-landing::before,
  body.fps-body::before,
  body[data-fpd-demo]::before,
  body[data-faire-part-management]::before,
  body[data-faire-part-admin]::before { animation: none !important; }
}
