/* ==========================================================
   L'Atelier des Cartes Inspirées — feuille de style commune
   (Tu n'as normalement rien à modifier ici.)
   ========================================================== */

@font-face{font-family:"EB Garamond";src:url(fonts/eb-garamond-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"EB Garamond";src:url(fonts/eb-garamond-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"EB Garamond";src:url(fonts/eb-garamond-latin-500-normal.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"EB Garamond";src:url(fonts/eb-garamond-latin-600-normal.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Caveat";src:url(fonts/caveat-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Caveat";src:url(fonts/caveat-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}

:root{
  --ivoire:#FAF6EF; --lin:#EFE5D8; --blanc:#FFFFFF;
  --bordeaux:#782D3F; --bordeaux-fonce:#5D2030;
  --texte:#302B28; --sapin:#355547; --dore:#B49564;
  --doux:#5c524b;
  --titre:"EB Garamond",Garamond,"Times New Roman",serif;
  --corps:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --main:"Caveat","Segoe Script","Bradley Hand",cursive;
  --rayon:14px; --ombre:0 6px 24px rgba(48,43,40,.08);
  --largeur:1120px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--ivoire);color:var(--texte);font-family:var(--corps);font-size:17px;line-height:1.65}
img{max-width:100%;height:auto;display:block}
a{color:var(--bordeaux)}
a:hover{color:var(--bordeaux-fonce)}
:focus-visible{outline:3px solid var(--sapin);outline-offset:3px;border-radius:4px}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;background:var(--blanc);padding:10px 16px;z-index:100;border-radius:8px}
.skip:focus{left:8px}

h1,h2,h3{font-family:var(--titre);color:var(--bordeaux);font-weight:500;line-height:1.15;margin:0 0 .5em}
h1{font-size:clamp(2.3rem,6vw,3.9rem);letter-spacing:-.01em}
h2{font-size:clamp(1.9rem,4.4vw,2.8rem)}
h3{font-size:1.45rem}
p{margin:0 0 1em}
.main{font-family:var(--main);font-size:1.6rem;line-height:1.25;color:var(--sapin);font-weight:500}
.kicker{font-family:var(--corps);text-transform:uppercase;letter-spacing:.14em;font-size:.8rem;font-weight:600;color:var(--sapin);margin-bottom:.8em;display:block}
.lead{font-size:1.15rem}
.muted{color:var(--doux)}
.petit{font-size:.92rem}

.wrap{max-width:var(--largeur);margin:0 auto;padding:0 22px}
section{padding:84px 0;position:relative}
section.lin{background:var(--lin)}
.center{text-align:center}
.narrow{max-width:720px;margin-left:auto;margin-right:auto}
.ornement{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 auto 18px;color:var(--dore)}
.ornement::before,.ornement::after{content:"";height:1px;width:56px;background:var(--dore)}
.ornement svg{width:16px;height:16px}

/* Décors aquarelle */
.deco{position:absolute;pointer-events:none;user-select:none;z-index:0;width:120px}
.deco-sm{width:84px}.deco-lg{width:170px}
section>.wrap{position:relative;z-index:1}
@media (max-width:760px){.deco{width:72px}.deco-lg{width:100px}.deco.hide-m{display:none}}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:14px 28px;border-radius:999px;border:2px solid var(--bordeaux);background:var(--bordeaux);color:#fff;font:600 1.02rem/1.2 var(--corps);text-decoration:none;cursor:pointer;transition:background .2s,border-color .2s,transform .15s}
.btn:hover{background:var(--bordeaux-fonce);border-color:var(--bordeaux-fonce);color:#fff}
.btn:active{transform:translateY(1px)}
.btn-ghost{background:transparent;color:var(--bordeaux)}
.btn-ghost:hover{background:var(--bordeaux);color:#fff}
.btn-block{width:100%}
.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed}
.lien-fleche{font-weight:600;text-decoration:none;border-bottom:1px solid currentColor}

/* En-tête */
.top{position:sticky;top:0;z-index:40;background:rgba(250,246,239,.94);backdrop-filter:blur(8px);border-bottom:1px solid rgba(180,149,100,.35)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;min-height:62px;gap:12px}
.marque{font-family:var(--titre);font-size:1.18rem;color:var(--bordeaux);text-decoration:none;line-height:1.1}
.marque small{display:block;font-family:var(--corps);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sapin)}
.top .btn{min-height:42px;padding:9px 18px;font-size:.92rem}

/* Hero */
.hero{padding:44px 0 70px}
.hero .grid{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center}
.hero-photo{border-radius:20px;overflow:hidden;box-shadow:var(--ombre);background:var(--lin)}
.hero-photo img{width:100%;aspect-ratio:4/3;object-fit:cover}
.prix-hero{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;margin:22px 0 24px}
.prix-hero strong{font-family:var(--titre);font-size:2.1rem;color:var(--bordeaux);font-weight:600}
.prix-hero span{color:var(--doux)}
.cta-ligne{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.reperes{list-style:none;padding:0;margin:30px 0 0;display:flex;flex-wrap:wrap;gap:10px 22px}
.reperes li{display:flex;align-items:center;gap:8px;font-size:.95rem;color:var(--sapin);font-weight:600}
.reperes svg{width:20px;height:20px;flex:none}
@media (max-width:900px){
  .hero{padding:20px 0 56px}
  .hero .grid{grid-template-columns:1fr;gap:26px}
  .hero-photo{order:-1}
}

/* Citation lettre */
.citation{font-family:var(--titre);font-style:italic;font-size:clamp(1.35rem,3vw,1.75rem);line-height:1.45;color:var(--texte);max-width:760px;margin:0 auto}
.signature{font-family:var(--main);color:var(--bordeaux);font-size:1.7rem;margin-top:14px}

/* Contenu de la box */
.contenu{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:34px}
.item{display:flex;gap:16px;background:var(--blanc);border-radius:var(--rayon);padding:20px 22px;box-shadow:var(--ombre);align-items:flex-start}
.qte{flex:none;min-width:48px;height:48px;border-radius:50%;border:1.5px solid var(--dore);display:grid;place-items:center;font-family:var(--titre);font-size:1.15rem;color:var(--bordeaux);font-weight:600}
.item h3{font-size:1.2rem;margin:0 0 4px;color:var(--texte);font-weight:600}
.item p{margin:0;font-size:.97rem;color:var(--doux)}
.item.numerique{grid-column:1/-1;background:var(--sapin);color:#fff}
.item.numerique h3,.item.numerique p{color:#fff}
.item.numerique .qte{border-color:#fff;color:#fff}
.etiquette{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 10px;border-radius:99px;background:var(--lin);color:var(--sapin);margin-bottom:6px}
.item.numerique .etiquette{background:rgba(255,255,255,.18);color:#fff}
@media (max-width:760px){.contenu{grid-template-columns:1fr}}

/* Sections produit */
.produit{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.produit.inverse .media{order:2}
.media figure{margin:0}
.zoom{display:block;width:100%;padding:0;border:0;background:var(--lin);border-radius:18px;overflow:hidden;cursor:zoom-in;box-shadow:var(--ombre)}
.zoom img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s}
.zoom:hover img{transform:scale(1.02)}
figcaption{font-size:.88rem;color:var(--doux);margin-top:10px;text-align:center}
.media .duo{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.media .duo .zoom img{aspect-ratio:4/3}
.liste{list-style:none;padding:0;margin:18px 0}
.liste li{position:relative;padding-left:30px;margin-bottom:9px}
.liste li::before{content:"";position:absolute;left:4px;top:.55em;width:12px;height:12px;border-radius:50%;border:2px solid var(--sapin);background:var(--ivoire)}
.formats{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}
.format{background:var(--blanc);border-radius:var(--rayon);padding:18px;box-shadow:var(--ombre)}
.format h3{font-size:1.15rem;color:var(--texte);font-weight:600;margin-bottom:6px}
.format p{margin:0;font-size:.95rem;color:var(--doux)}
.format .plus{color:var(--bordeaux);font-weight:700}
.note{border-left:3px solid var(--dore);padding:4px 0 4px 16px;color:var(--doux);font-size:.95rem;margin:18px 0}
details.precisions{margin-top:16px;background:var(--blanc);border-radius:12px;padding:0 18px;box-shadow:var(--ombre)}
details.precisions summary{cursor:pointer;padding:15px 0;font-weight:600;color:var(--sapin);list-style:none;display:flex;justify-content:space-between;gap:12px}
details.precisions summary::-webkit-details-marker{display:none}
details.precisions summary::after{content:"+";font-size:1.3rem;line-height:1}
details.precisions[open] summary::after{content:"–"}
details.precisions>div{padding-bottom:14px}
@media (max-width:900px){.produit{grid-template-columns:1fr;gap:28px}.produit.inverse .media{order:0}}

/* Roman */
.accroche-roman{font-family:var(--titre);font-style:italic;color:var(--bordeaux);font-size:clamp(1.3rem,3vw,1.6rem);line-height:1.35;margin:0 0 20px}
.blocs3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px}
.bloc{background:var(--blanc);border-radius:var(--rayon);padding:26px;box-shadow:var(--ombre)}
.bloc h3{font-size:1.3rem}
.bloc .liste{margin:6px 0 0}
.bloc .liste li{font-size:.97rem}
.postit{background:#fbf1c9;color:#3a332c;padding:26px 24px 22px;border-radius:4px;box-shadow:0 10px 22px rgba(48,43,40,.15);transform:rotate(-1.4deg);font-family:var(--main);font-size:1.45rem;line-height:1.3}
.postit strong{display:block;font-size:1.65rem;color:var(--bordeaux);margin-bottom:6px;font-weight:600}
.postit small{display:block;font-family:var(--corps);font-size:.78rem;color:#6d6052;margin-top:12px;font-style:normal}
.avertissement{font-size:.92rem;color:var(--doux);margin-top:22px}
@media (max-width:900px){.blocs3{grid-template-columns:1fr}}

/* Programme */
.mois{list-style:none;padding:0;margin:26px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 34px}
.mois li{display:grid;grid-template-columns:96px 1fr;gap:12px;padding:13px 0;border-bottom:1px dashed rgba(180,149,100,.6)}
.mois .m{font-family:var(--main);font-size:1.5rem;color:var(--bordeaux);line-height:1.1;font-weight:600}
.mois .t{font-weight:600;line-height:1.35}
.mois .a{display:block;font-size:.9rem;color:var(--doux);font-weight:400;margin-top:2px}
.etapes{counter-reset:e;list-style:none;padding:0;margin:20px 0 0;display:grid;gap:12px}
.etapes li{counter-increment:e;position:relative;padding:16px 18px 16px 62px;background:var(--blanc);border-radius:12px;box-shadow:var(--ombre)}
.etapes li::before{content:counter(e);position:absolute;left:16px;top:14px;width:32px;height:32px;border-radius:50%;background:var(--sapin);color:#fff;display:grid;place-items:center;font-weight:700}
.mail{font-weight:700;word-break:break-all}
@media (max-width:760px){.mois{grid-template-columns:1fr}.mois li{grid-template-columns:84px 1fr}}

/* Fil conducteur */
.fil{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:36px}
.fil div{background:var(--blanc);border-radius:var(--rayon);padding:22px 16px;text-align:center;box-shadow:var(--ombre)}
.fil img{width:74px;height:74px;object-fit:contain;margin:0 auto 10px}
.fil h3{font-size:1.15rem;color:var(--texte);font-weight:600;margin-bottom:4px}
.fil p{margin:0;font-size:.93rem;color:var(--doux)}
@media (max-width:980px){.fil{grid-template-columns:repeat(2,1fr)}.fil div:last-child{grid-column:1/-1}}

/* Coulisses */
.etapes-atelier{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:34px}
.etapes-atelier div{border-top:2px solid var(--dore);padding-top:14px}
.etapes-atelier h3{font-size:1.3rem;margin-bottom:4px}
.etapes-atelier p{margin:0;font-size:.97rem;color:var(--doux)}
@media (max-width:760px){.etapes-atelier{grid-template-columns:1fr 1fr}}
@media (max-width:460px){.etapes-atelier{grid-template-columns:1fr}}

/* Offrir */
.deux{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:34px}
@media (max-width:760px){.deux{grid-template-columns:1fr}}

/* Commande */
.commande{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:start;margin-top:30px}
fieldset{border:0;padding:0;margin:0;min-width:0}
.commande>*,.produit>*,.hero .grid>*{min-width:0}
legend{font-family:var(--titre);font-size:1.45rem;color:var(--bordeaux);margin-bottom:14px;padding:0}
.choix{display:grid;gap:14px}
.option{position:relative;display:flex;align-items:center;gap:16px;background:var(--blanc);border:2px solid #e2d6c6;border-radius:16px;padding:18px 20px;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.option:hover{border-color:var(--dore)}
.option input{position:absolute;opacity:0;width:1px;height:1px}
.option .rond{flex:none;width:26px;height:26px;border-radius:50%;border:2px solid var(--doux);display:grid;place-items:center}
.option .rond::after{content:"";width:12px;height:12px;border-radius:50%;background:transparent}
.option input:checked~.rond{border-color:var(--bordeaux)}
.option input:checked~.rond::after{background:var(--bordeaux)}
.option:has(input:checked){border-color:var(--bordeaux);box-shadow:0 0 0 3px rgba(120,45,63,.12)}
.option input:focus-visible~.rond{outline:3px solid var(--sapin);outline-offset:3px}
.option .txt{flex:1}
.option .nom{display:block;font-weight:700;font-size:1.06rem}
.option .desc{display:block;font-size:.92rem;color:var(--doux)}
.option .prix{font-family:var(--titre);font-size:1.5rem;color:var(--bordeaux);font-weight:600;text-align:right;line-height:1.1}
.option .prix small{display:block;font-family:var(--corps);font-size:.8rem;color:var(--sapin);font-weight:700}
.option .coche{display:none;font-size:.78rem;font-weight:700;color:var(--bordeaux);letter-spacing:.06em;text-transform:uppercase}
.option input:checked~.txt .coche{display:inline-block;margin-left:6px}
.recap{background:var(--blanc);border-radius:18px;padding:26px;box-shadow:var(--ombre);border:1px solid rgba(180,149,100,.45)}
.recap h3{margin-bottom:14px}
.recap img{border-radius:12px;margin-bottom:16px;aspect-ratio:4/3;object-fit:cover;width:100%}
.recap dl{margin:0 0 18px}
.recap .l{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #eee4d6}
.recap dt{margin:0}.recap dd{margin:0;font-weight:600;white-space:nowrap}
.recap .total{border-bottom:0;padding-top:14px}
.recap .total dt{font-weight:700}
.recap .total dd{font-family:var(--titre);font-size:1.8rem;color:var(--bordeaux)}
.rassure{list-style:none;padding:0;margin:16px 0 0;font-size:.9rem;color:var(--doux)}
.rassure li{display:flex;gap:8px;margin-bottom:6px}
.rassure svg{flex:none;width:18px;height:18px;margin-top:3px;color:var(--sapin)}
.alerte{display:none;margin-top:14px;padding:12px 14px;border-radius:10px;background:#f6ece3;border:1px solid var(--dore);font-size:.95rem}
.alerte.on{display:block}
@media (max-width:900px){.commande{grid-template-columns:1fr}}

/* À l'unité */
details.unite{margin-top:44px;background:var(--blanc);border-radius:18px;box-shadow:var(--ombre);border:1px solid rgba(180,149,100,.35)}
details.unite>summary{cursor:pointer;list-style:none;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px}
details.unite>summary::-webkit-details-marker{display:none}
details.unite>summary .t{font-family:var(--titre);font-size:1.35rem;color:var(--bordeaux)}
details.unite>summary .s{display:block;font-size:.92rem;color:var(--doux)}
details.unite>summary::after{content:"+";font-size:1.6rem;color:var(--bordeaux)}
details.unite[open]>summary::after{content:"–"}
.unite-corps{padding:0 24px 24px}
.cartes-unite{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:10px}
.cu{border:1px solid #eadfce;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;background:var(--ivoire)}
.cu img{aspect-ratio:4/3;object-fit:cover;width:100%}
.cu .c{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.cu h3{font-size:1.12rem;color:var(--texte);font-weight:600;margin:0}
.cu .p{font-family:var(--titre);font-size:1.3rem;color:var(--bordeaux);font-weight:600}
.cu .btn{margin-top:auto;min-height:44px;padding:10px 18px;font-size:.95rem}

/* FAQ */
.faq{max-width:820px;margin:30px auto 0}
.faq details{border-bottom:1px solid rgba(180,149,100,.55)}
.faq summary{cursor:pointer;list-style:none;padding:20px 40px 20px 0;position:relative;font-weight:600;font-size:1.06rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:15px;font-size:1.6rem;color:var(--bordeaux)}
.faq details[open] summary::after{content:"–"}
.faq .r{padding:0 0 20px;color:var(--texte)}
.faq .r p:last-child{margin-bottom:0}

/* Dernier rappel */
.final{text-align:center}
.final .photo{max-width:760px;margin:0 auto 30px;border-radius:20px;overflow:hidden;box-shadow:var(--ombre)}
.final .btns{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:20px}

/* Pied de page */
footer{background:var(--texte);color:#efe6da;padding:54px 0 110px;font-size:.95rem}
footer a{color:#fff}
footer .marque{color:#fff}
footer .marque small{color:#cfc3b2}
footer .cols{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:28px}
footer ul{list-style:none;padding:0;margin:0}
footer li{margin-bottom:6px}
footer .bas{margin-top:34px;padding-top:18px;border-top:1px solid rgba(255,255,255,.15);font-size:.85rem;color:#cfc3b2}
@media (max-width:760px){footer .cols{grid-template-columns:1fr}}

/* Barre d'achat mobile */
.barre{position:fixed;left:0;right:0;bottom:0;z-index:50;background:rgba(255,255,255,.97);border-top:1px solid rgba(180,149,100,.5);box-shadow:0 -6px 20px rgba(48,43,40,.08);padding:10px 16px calc(10px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:12px;transform:translateY(110%);transition:transform .3s}
.barre.on{transform:none}
.barre .i{line-height:1.2}
.barre .i strong{font-family:var(--titre);font-size:1.35rem;color:var(--bordeaux)}
.barre .i span{display:block;font-size:.8rem;color:var(--doux)}
.barre .btn{min-height:46px;padding:10px 20px;font-size:.95rem}
@media (min-width:901px){.barre{display:none}}

/* Visionneuse */
dialog.lb{border:0;padding:0;background:transparent;max-width:96vw;max-height:94vh}
dialog.lb::backdrop{background:rgba(30,26,24,.88)}
dialog.lb img{max-width:96vw;max-height:86vh;width:auto;height:auto;object-fit:contain;border-radius:10px}
dialog.lb p{color:#fff;text-align:center;margin:10px 0 0;font-size:.95rem}
dialog.lb button{position:fixed;top:14px;right:14px;width:48px;height:48px;border-radius:50%;border:0;background:#fff;color:var(--texte);font-size:1.6rem;cursor:pointer}

/* Mode aperçu (visible seulement avec ?apercu=1) */
.admin{background:#fff6d6;border-bottom:2px solid #c9a227;padding:14px 0;font-size:.92rem;color:#3d3416}
.admin h2{font-family:var(--corps);font-size:1rem;color:#3d3416;margin:0 0 6px}
.admin ul{margin:0;padding-left:20px}
.cache{display:none!important}
a[data-email]{overflow-wrap:anywhere}
@media (max-width:460px){
  .marque{font-size:1.02rem}
  .marque small{display:none}
  .formats{grid-template-columns:1fr}
}
section[id]{scroll-margin-top:64px}
