/* Cartes Postales du Lutin Farceur : styles du module.
   Autonome (ne depend d'aucun CSS de theme). Couleurs en dur pour eviter
   toute variable non resolue. La carte est en millimetres : ce qui est a
   l'ecran sort a l'identique sur le papier. */

@import url('https://fonts.googleapis.com/css2?family=Caveat:wght@400;600&display=swap');

.lcp-app,.lcp-reglages,.lcp-reglages *,.lcp-feuille,.lcp-feuille *{box-sizing:border-box}
.lcp-carte{box-sizing:content-box}

/* ---- disposition generale ---- */
.lcp-app{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:2rem;align-items:start;margin:1.6rem 0 2.6rem;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.lcp-app>*{min-width:0}
@media (max-width:900px){.lcp-app{grid-template-columns:minmax(0,1fr);gap:1.4rem}}

/* ---- colonne des reglages ---- */
.lcp-reglages{background:#fff;border-radius:16px;padding:1.4rem 1.5rem;box-shadow:0 6px 24px rgba(0,0,0,.09);border-left:5px solid #C41E3A}
.lcp-champ{margin:0 0 1.1rem}
.lcp-champ label{display:block;font-size:.86rem;font-weight:600;color:#165B33;margin-bottom:.35rem}
.lcp-champ input,.lcp-champ select,.lcp-champ textarea{width:100%;font-family:inherit;font-size:.95rem;color:#2B2B2B;background:#FBF7EF;border:1px solid #e6dcc5;border-radius:10px;padding:.6rem .8rem;transition:.18s}
.lcp-champ input:focus,.lcp-champ select:focus,.lcp-champ textarea:focus{outline:none;border-color:#C41E3A;background:#fff;box-shadow:0 0 0 3px rgba(196,30,58,.12)}
.lcp-champ textarea{resize:vertical;min-height:120px;line-height:1.5}
.lcp-compteur{display:block;text-align:right;font-size:.76rem;color:#5A5A5A;margin-top:.25rem}
.lcp-compteur[data-plein="oui"]{color:#C41E3A;font-weight:600}
.lcp-actions{margin:1.4rem 0 .6rem}
.lcp-btn{display:block;width:100%;text-align:center;border:0;cursor:pointer;font-family:inherit;font-size:1rem;font-weight:600;padding:.85rem 1.6rem;border-radius:999px;background:#C41E3A;color:#fff;box-shadow:0 8px 22px rgba(196,30,58,.30);transition:transform .18s,background .25s}
.lcp-btn:hover{background:#A11828;transform:translateY(-2px)}
.lcp-note{font-size:.82rem;line-height:1.5;color:#5A5A5A;margin:0}
.lcp-note strong{color:#165B33}

/* Ecriture a la main : encart visible qui explique qu'un champ vide ne met
   rien sur la carte, et bouton qui vide les trois champs d'un coup. */
.lcp-manuscrit{background:#FDF6E6;border:1px dashed #C9A24B;border-radius:12px;padding:1rem 1.1rem;margin:1.2rem 0 .4rem;font-size:.92rem;line-height:1.55;color:#3A3A3A}
.lcp-manuscrit b{display:block;color:#165B33;font-size:1rem;margin-bottom:.35rem}
.lcp-vider{width:100%;margin-top:.8rem;background:#fff;color:#165B33;border:2px solid #165B33;box-shadow:none}
.lcp-vider:hover{background:#165B33;color:#fff;box-shadow:0 8px 22px rgba(22,91,51,.28)}

/* ---- scene : aspect-ratio 210/297 = la hauteur exacte de la feuille A4 a
   l'echelle, reservee des le CSS pour ne pas decaler la page apres coup. ---- */
.lcp-scene{position:relative;width:100%;aspect-ratio:210/297;overflow:hidden}
.lcp-feuille{width:210mm;height:297mm;background:#fff;transform-origin:top left;box-shadow:0 10px 40px rgba(0,0,0,.16);display:flex;flex-direction:column;align-items:center;padding:5mm 0 5mm;font-family:"Trebuchet MS","Segoe UI",sans-serif;color:#2b2b33;-webkit-print-color-adjust:exact;print-color-adjust:exact}

.lcp-mention{height:6mm;text-align:center;font-size:2.9mm;letter-spacing:.04em;color:#a8a29a}

/* ---- la carte : 148 x 210, pliee en deux au milieu ---- */
.lcp-carte{width:148mm;height:210mm;border:.4mm dashed #9aa0a6;position:relative;background:#fdf8ef}
.lcp-carte::after{content:"";position:absolute;left:0;right:0;top:105mm;z-index:3;border-top:.35mm dashed #c0392b;opacity:.7}
.lcp-face{width:148mm;height:105mm;overflow:hidden;position:relative;z-index:1}

/* face photo : imprimee a 180 degres, elle se redresse une fois la carte pliee */
.lcp-face-photo{transform:rotate(180deg)}
.lcp-face-photo img{position:absolute;top:0;left:0;width:100%;height:var(--lcp-bande,100%);object-fit:cover;object-position:var(--lcp-cadrage,center) top;display:block}

/* face message */
.lcp-face-mot{display:flex;padding:5mm 5mm 4mm;gap:4mm}
.lcp-face-mot::before{content:"";position:absolute;top:7mm;bottom:6mm;left:50%;border-left:.3mm solid #d7cdbb}
.lcp-mot{width:50%;display:flex;flex-direction:column;justify-content:flex-start}
.lcp-salut{font-family:"Caveat",cursive;font-size:6mm;font-weight:600;color:#C41E3A;margin-bottom:1mm;display:block}
.lcp-corps{font-family:"Caveat",cursive;font-size:6mm;line-height:1.35;margin:0;flex:0 1 auto;max-height:76mm;color:#2b2b33;white-space:pre-wrap;overflow:hidden}
.lcp-signature{font-family:"Caveat",cursive;font-size:6mm;font-style:normal;color:#165B33;text-align:right;margin:2.5mm 1mm 0 0;display:block}

.lcp-cote-adresse{width:50%;display:flex;flex-direction:column;padding-left:3mm}
.lcp-timbrage{height:23mm;position:relative}

/* timbre du Pole Nord, dessine en CSS (dentelure par 4 gradients croises) */
.lcp-timbre{--d:.85mm;--p:2.1mm;position:absolute;right:-3mm;top:0;width:19mm;height:23mm;background:#fff;
  -webkit-mask:radial-gradient(var(--d) at 50% 0,#0000 98%,#000) 0 calc(-1*var(--d))/var(--p) 100%,radial-gradient(var(--d) at 50% 100%,#0000 98%,#000) 0 var(--d)/var(--p) 100%,radial-gradient(var(--d) at 0 50%,#0000 98%,#000) calc(-1*var(--d)) 0/100% var(--p),radial-gradient(var(--d) at 100% 50%,#0000 98%,#000) var(--d) 0/100% var(--p);
  -webkit-mask-composite:source-in;
  mask:radial-gradient(var(--d) at 50% 0,#0000 98%,#000) 0 calc(-1*var(--d))/var(--p) 100%,radial-gradient(var(--d) at 50% 100%,#0000 98%,#000) 0 var(--d)/var(--p) 100%,radial-gradient(var(--d) at 0 50%,#0000 98%,#000) calc(-1*var(--d)) 0/100% var(--p),radial-gradient(var(--d) at 100% 50%,#0000 98%,#000) var(--d) 0/100% var(--p);
  mask-composite:intersect}
.lcp-timbre span{position:absolute;inset:1.6mm;background:linear-gradient(160deg,#eaf3fb,#cfe3f5);border:.25mm solid #b9d2e8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8mm;font-size:2mm;letter-spacing:.06em;color:#165B33;font-weight:700;text-align:center;line-height:1.3}
.lcp-timbre span::before{content:"\2744";font-size:7mm;line-height:1;color:#C41E3A}
.lcp-cachet{position:absolute;right:13mm;top:2.5mm;z-index:3;width:17mm;height:17mm;border-radius:50%;border:.45mm solid rgba(22,91,51,.65);color:rgba(22,91,51,.8);display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-14deg);font-size:2mm;letter-spacing:.04em;text-align:center;line-height:1.2}
.lcp-cachet b{font-size:2.2mm;letter-spacing:.08em;white-space:nowrap}
.lcp-cachet i{display:block;width:10mm;border-top:.3mm solid currentColor;margin:.7mm 0}

.lcp-pour{margin-top:2mm}
.lcp-pour>span{display:block;font-size:2.6mm;letter-spacing:.16em;color:#9a9285;text-transform:uppercase;margin-bottom:1mm}
.lcp-nom{display:block;font-family:"Caveat",cursive;font-size:5.6mm;font-weight:600;color:#2b2b33}
.lcp-pour i{display:flex;align-items:flex-end;border-bottom:.25mm dotted #b9ae9c;height:6.6mm;margin-top:1.4mm;padding:0 1mm .6mm;overflow:hidden}
.lcp-pour i span{font-family:"Caveat",cursive;font-size:4.6mm;font-style:normal;color:#2b2b33;white-space:nowrap;line-height:1}

/* mini mappemonde sur la carte */
.lcp-atlas{flex:1;min-height:0;margin-top:2mm}
.lcp-atlas svg{width:100%;height:100%;display:block}

/* encart parents, en bas de la feuille : INVISIBLE a l'ecran, present
   uniquement sur le PDF imprime (voir @media print). Cadre festif double. */
.lcp-parents{display:none;width:148mm;margin-top:6mm;padding:3.5mm 5mm 4mm;position:relative;
  background:linear-gradient(#fffdfa,#fdf3ec);border:.6mm solid #C41E3A;border-radius:3mm}
.lcp-parents::before{content:"";position:absolute;inset:1.1mm;border:.2mm solid rgba(196,30,58,.4);border-radius:2mm;pointer-events:none}
.lcp-parents h3{margin:0 0 2.4mm;font-family:"Caveat",cursive;font-size:6.5mm;font-weight:600;color:#C41E3A;text-align:center;line-height:1}
.lcp-parents ul{margin:0;padding:0;list-style:none;display:flex;gap:4mm}
.lcp-parents li{flex:1;text-align:center;font-size:2.6mm;line-height:1.25;color:#2b2b33}
.lcp-parents li strong{display:block;color:#165B33;font-size:3mm;margin-bottom:1mm}
.lcp-parents .lcp-url{display:block;color:#C41E3A;font-size:2.5mm;margin-top:.6mm}

.lcp-aide{width:148mm;margin-top:3mm;display:flex;gap:4mm;font-size:2.5mm;line-height:1.4;color:#a8a29a}
.lcp-aide ol{margin:0;padding-left:4mm;flex:1}
.lcp-aide li{margin-bottom:.5mm}
.lcp-aide p{margin:0;width:52mm}

/* ---- galerie des cartes (recto seul), lazy-load NATIF du navigateur ---- */
.lcp-galerie-titre{text-align:center;font-size:clamp(1.4rem,3vw,2rem);color:#C41E3A;margin:2.6rem 0 1.4rem}
.lcp-galerie{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.4rem;margin:1.4rem 0 2.4rem;padding:0;list-style:none}
.lcp-galerie li{margin:0}
.lcp-galerie figure{margin:0;text-align:center}
.lcp-galerie img{width:100%;aspect-ratio:1.41;object-fit:cover;background:#eef1f4;border:6px solid #fff;border-bottom-width:8px;border-radius:10px;box-shadow:0 8px 22px rgba(0,0,0,.14);transition:transform .2s,box-shadow .2s}
.lcp-galerie img:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(196,30,58,.20)}
.lcp-galerie figcaption{margin-top:.5rem;font-weight:600;color:#5A5A5A;font-size:.92rem;line-height:1.3}

/* ---- impression ---- */
@media print{
  @page{size:A4 portrait;margin:0}
  html.lcp-impression,html.lcp-impression body{margin:0!important;padding:0!important;background:#fff!important;width:auto!important;max-width:none!important;height:auto!important;overflow:visible!important;float:none!important}
  html.lcp-impression body>*{display:none!important}
  html.lcp-impression .fc-consent-root,html.lcp-impression [class^="fc-"],html.lcp-impression [class*=" fc-"],html.lcp-impression iframe,html.lcp-impression [class*="consent"],html.lcp-impression [class*="cmp"],html.lcp-impression [id*="cmp"],html.lcp-impression [aria-modal="true"],html.lcp-impression [role="dialog"]{display:none!important}
  html.lcp-impression body>.lcp-feuille{display:flex!important;position:absolute!important;left:0;top:0;margin:0!important;padding:5mm 0 5mm!important;transform:none!important;box-shadow:none!important;box-sizing:border-box;width:210mm;height:297mm;overflow:hidden;break-inside:avoid;page-break-after:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  /* l'encart parents n'apparait QU'A l'impression */
  html.lcp-impression .lcp-parents{display:block!important}
}
