/* Faire-part de mariage — thème du site, invitations et cartons assortis. */
.page-fairepart main { background:radial-gradient(ellipse at 10% 30%,rgba(210,71,125,.13),transparent 45%),#07132f; }
.page-fairepart .citations-hero h1 em { color:#ff8ab5; }
.page-fairepart .fp-intro,.page-fairepart .fp-models,.page-fairepart .fp-collection,.page-fairepart .fp-tips { width:min(1180px,calc(100% - 40px)); margin-inline:auto; }
.page-fairepart .fp-intro { padding:64px 0 28px; text-align:center; }
.page-fairepart .fp-intro h2,.page-fairepart .fp-heading h2,.page-fairepart .fp-tips h2,.page-fairepart .fp-companion h2 { font-family:var(--police-titres); color:#fff7ed; }
.page-fairepart .fp-intro>p:last-child { max-width:780px; margin:20px auto 0; color:#cfd7e9; line-height:1.8; }
.page-fairepart .fp-models { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; padding-bottom:56px; }
.page-fairepart .fp-model { display:flex; flex-direction:column; gap:10px; padding:24px; border:1px solid #455379; border-radius:22px; background:linear-gradient(145deg,#19274d,#111c3a); color:#fff; text-decoration:none; transition:border-color .2s,transform .2s; }
.page-fairepart .fp-model:hover { transform:translateY(-3px); border-color:#f18bb2; }
.page-fairepart .fp-model.is-active { border-color:#edbd75; background:linear-gradient(145deg,#342440,#152448); box-shadow:0 10px 32px #02081955; }
.page-fairepart .fp-model-number { color:#edbd75; font-size:.8rem; font-weight:700; letter-spacing:.15em; }
.page-fairepart .fp-model strong { font-family:var(--police-titres); font-size:1.25rem; }
.page-fairepart .fp-model>span:last-child { color:#ced6e8; font-size:.94rem; }
.page-fairepart .fp-heading { padding-bottom:26px; }
.page-fairepart .fp-heading h2 { margin:0 0 14px; }
.page-fairepart .fp-heading>p:last-child { color:#cfd7e9; }
.page-fairepart .fp-grid { display:grid; grid-template-columns:1.35fr 1fr; align-items:start; gap:28px; }
.page-fairepart .fp-card { position:relative; padding:clamp(26px,4vw,50px); border:1px solid #d9b57b; border-radius:28px; background:radial-gradient(ellipse at top left,#fbe4e7,transparent 55%),linear-gradient(150deg,#fffaf0,#fff4e5); color:#382630; box-shadow:0 22px 60px #02061566; }
.page-fairepart .fp-card::before { position:absolute; inset:12px; border:1px solid #d3b38780; border-radius:18px; content:""; pointer-events:none; }
.page-fairepart .fp-card>* { position:relative; }
.page-fairepart .fp-seal { display:grid; place-items:center; width:52px; height:52px; margin:0 auto 16px; border:1px solid #c69364; border-radius:50%; color:#a65368; font-size:28px; }
.page-fairepart .fp-card-kicker { margin:0 0 10px; color:#915777; text-align:center; font-size:.77rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
html body.page-fairepart main .fp-card h3 { margin:0 0 28px; color:#3a2430!important; font-family:var(--police-titres); font-size:1.7rem; text-align:center; text-shadow:none!important; }
.page-fairepart .fp-text { white-space:pre-line; overflow-wrap:anywhere; font-family:var(--police-poemes); font-size:1.08rem; line-height:1.9; color:#432e35; text-align:center; }
.page-fairepart .fp-editor { width:100%; box-sizing:border-box; padding:18px; border:1px solid #ad637d; border-radius:14px; background:#fffaf5; color:#3a2630; font-family:var(--police-poemes); font-size:1.05rem; line-height:1.7; resize:vertical; }
.page-fairepart [hidden] { display:none!important; }
.page-fairepart .fp-actions { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:28px; }
.page-fairepart .fp-button { min-height:46px; padding:11px 17px; border:1px solid #b78669; border-radius:999px; background:transparent; color:#6d364e; font-family:var(--police-texte); font-weight:700; cursor:pointer; }
.page-fairepart .fp-button.primary { border-color:#9b345e; background:linear-gradient(110deg,#aa3462,#793867); color:#fff; }
.page-fairepart .fp-button:hover { box-shadow:0 5px 15px #7f31472a; }
.page-fairepart :is(.fp-button,.fp-model,.fp-editor,.fp-companion a):focus-visible { outline:3px solid #e79ebc; outline-offset:4px; }
.page-fairepart .fp-status { min-height:1.5em; margin:14px 0 0; color:#733a54; font-size:.9rem; text-align:center; }
.page-fairepart .fp-tips { padding:68px 0 44px; }
.page-fairepart .fp-tips h2 { text-align:center; }
.page-fairepart .fp-tips-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:30px; }
.page-fairepart .fp-tips-grid>div { padding:25px; border:1px solid #4c5278; border-radius:20px; background:#14213f; }
html body.page-fairepart main .fp-tips h3 { margin:0 0 14px; color:#f2c985; font-family:var(--police-titres); font-size:1.25rem; }
.page-fairepart .fp-tips p { margin:0; color:#d6dcec; line-height:1.7; }
.page-fairepart .fp-share { width:min(1112px,calc(100% - 72px)); margin:28px auto 64px; }
.page-fairepart .fp-companion { padding:48px 20px 68px; border-top:1px solid #79654a; background:linear-gradient(120deg,#14213f,#31213b); text-align:center; }
.page-fairepart .fp-companion>div { display:flex; flex-wrap:wrap; justify-content:center; gap:14px; margin-top:26px; }
.page-fairepart .fp-companion a { padding:12px 20px; border:1px solid #d4a76c; border-radius:999px; color:#fff; font-weight:700; text-decoration:none; }
@media(max-width:850px) { .page-fairepart .fp-grid { grid-template-columns:1fr; } .page-fairepart .fp-tips-grid { grid-template-columns:1fr; } }
@media(max-width:680px) { .page-fairepart .fp-intro,.page-fairepart .fp-models,.page-fairepart .fp-collection,.page-fairepart .fp-tips { width:calc(100% - 32px); } .page-fairepart .fp-intro { padding-top:42px; } .page-fairepart .fp-models { grid-template-columns:1fr; gap:12px; padding-bottom:38px; } .page-fairepart .fp-model { padding:20px; } .page-fairepart .fp-card { padding:30px 24px; } .page-fairepart .fp-text { font-size:1rem; line-height:1.85; } .page-fairepart .fp-actions { gap:8px; } .page-fairepart .fp-button { flex:1 1 auto; font-size:.9rem; padding:11px 14px; } .page-fairepart .fp-share { width:calc(100% - 64px); } }
@media print {
  @page { margin:18mm; }
  body.fp-print { background:white!important; }
  body.fp-print * { visibility:hidden; }
  body.fp-print > :not(main),body.fp-print main > :not(.fp-collection),body.fp-print .fp-heading,body.fp-print .fp-grid > :not(.fp-print-card) { display:none!important; }
  body.fp-print .fp-grid { display:block; }
  body.fp-print .fp-collection { width:100%; margin:0; }
  body.fp-print .fp-print-card,body.fp-print .fp-print-card * { visibility:visible; }
  body.fp-print .fp-print-card { position:absolute; top:0; left:0; width:100%; box-sizing:border-box; padding:20px; background:white; border:1px solid #b9915b; border-radius:0; box-shadow:none; }
  body.fp-print .fp-print-card .fp-actions,body.fp-print .fp-print-card .fp-status,body.fp-print .fp-print-card .fp-editor { display:none!important; }
  body.fp-print .fp-print-card .fp-text { display:block!important; }
}

/* Partage de la rubrique : composants isolés, assortis aux pages du site. */
.page-fairepart .fp-share { box-sizing:border-box; padding:34px; border:1px solid #b88b65; border-radius:26px; background:linear-gradient(145deg,#19284f,#111c3c); text-align:center; }
.page-fairepart .fp-share .share-heart { display:grid; place-items:center; width:54px; height:54px; margin:0 auto 16px; border:1px solid #b88b65; border-radius:50%; color:#ff83b6; font-size:30px; }
.page-fairepart .fp-share h2 { margin:0 0 14px; }
.page-fairepart .fp-share p { color:#d4dbed; }
.page-fairepart .fp-share .share-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:24px; }
.page-fairepart .fp-share .share-button { display:flex; min-height:48px; align-items:center; justify-content:center; gap:10px; padding:12px 18px; border:1px solid #b88b65; border-radius:999px; background:#23366a; color:white; font-family:var(--police-texte); font-weight:700; text-decoration:none; cursor:pointer; }
.page-fairepart .fp-share .share-button.primary { border-color:transparent; background:linear-gradient(120deg,#ec3e97,#aa42db); }
.page-fairepart .fp-share .share-button.facebook { border-color:transparent; background:#1877f2; }
@media(max-width:620px) { .page-fairepart .fp-share { width:calc(100% - 32px); padding:26px 18px; } .page-fairepart .fp-share .share-actions { grid-template-columns:1fr; } }
