:root{--paper:#faf6f0;--ink:#231a1a;--muted:#6b5d5a;--line:#e6d9ca;--rose:#5f7355;--ac-d:#47593f;
  --serif:Georgia,"Times New Roman",serif;--sans:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:1.0625rem/1.7 var(--serif)}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
a:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:#fff;padding:8px;z-index:9}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px}
/* en-tête */
.top{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:baseline;justify-content:space-between;padding:22px 0;font-family:var(--sans);font-size:.95rem}
.brand{font:700 1.25rem var(--serif);text-decoration:none;letter-spacing:.01em}
.brand small{display:block;font:400 .8rem var(--sans);color:var(--muted)}
.top nav{display:flex;flex-wrap:wrap;gap:6px 22px}
.top nav a{text-decoration:none;padding:4px 0;border-bottom:2px solid transparent}
.top nav a:hover,.top nav a[aria-current]{border-color:var(--rose)}
/* hero */
.hero{padding:clamp(40px,8vw,96px) 0 clamp(28px,5vw,56px)}
.hero h1{font-size:clamp(2.2rem,6vw,4rem);line-height:1.08;margin:0 0 1rem;max-width:16ch;font-weight:700}
.hero p{font-size:1.2rem;max-width:56ch;margin:0;color:var(--muted)}
/* cartes univers */
.univ{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));padding-bottom:clamp(40px,7vw,80px)}
.card{display:flex;flex-direction:column;border-radius:10px;overflow:hidden;text-decoration:none;color:var(--c-ink);background:var(--c-bg);min-height:480px;transition:transform .25s,box-shadow .25s}
.card:hover,.card:focus-visible{transform:translateY(-4px);box-shadow:0 14px 30px rgba(35,26,26,.18)}
.card .ph{aspect-ratio:4/3;background:var(--c-ph);overflow:hidden}
.card .ph img{width:100%;height:100%;object-fit:cover}
.card .tx{padding:22px 22px 26px;display:flex;flex-direction:column;gap:8px;flex:1}
.card h2{font-size:1.7rem;line-height:1.15;margin:0;font-variant:small-caps;letter-spacing:.02em}
.card p{margin:0;font-size:1rem}
.card .go{margin-top:auto;font:600 .95rem var(--sans);padding-top:12px}
.u-pink{--c-bg:#fff1e0;--c-ink:#4a2330;--c-ph:linear-gradient(160deg,#f2c48d,#b95c71)}
.u-wed{--c-bg:#eef0e8;--c-ink:#2f3a2f;--c-ph:linear-gradient(160deg,#e9e4d6,#b9c3ae)}
.u-corp{--c-bg:#1d2b3a;--c-ink:#eef2f6;--c-ph:linear-gradient(160deg,#3a5068,#16212d)}
/* à propos */
.about{border-top:1px solid var(--line);padding:clamp(36px,6vw,64px) 0;display:grid;gap:18px 48px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.about h2{font-size:1.8rem;margin:0;line-height:1.2}
.btn{display:inline-block;font:600 1rem var(--sans);padding:.85rem 1.5rem;border-radius:999px;background:var(--rose);color:#fff;text-decoration:none;border:2px solid var(--rose)}
.btn:hover,.btn:focus-visible{background:var(--ac-d,#8a3349);border-color:var(--ac-d,#8a3349)}
/* pied de page */
.foot{border-top:1px solid var(--line);padding:26px 0 40px;font:.9rem var(--sans);color:var(--muted);display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:space-between}
.foot a{text-decoration:none;border-bottom:1px solid var(--line)}
@media (prefers-reduced-motion:reduce){.card{transition:none}html{scroll-behavior:auto}}
/* thèmes de pages */
body.th-wed{--paper:#f4f2ea;--ink:#2a312a;--rose:#5f7355;--ac-d:#47593f;--line:#d9dccb;--muted:#5d675a}
body.th-corp{--paper:#f2f5f8;--ink:#17222e;--rose:#27506f;--ac-d:#1a3a52;--line:#d5dde5;--muted:#53616f}
/* pages intérieures */
.lede{padding:clamp(40px,8vw,88px) 0 clamp(24px,4vw,40px)}
.lede h1{font-size:clamp(2rem,5.2vw,3.4rem);line-height:1.1;margin:0 0 1rem;max-width:22ch}
.lede p{font-size:1.2rem;max-width:60ch;color:var(--muted);margin:0 0 1.4rem}
.feats{display:grid;gap:26px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));padding:clamp(24px,5vw,48px) 0;border-top:1px solid var(--line)}
.feats h2{font-size:1.3rem;margin:0 0 .4rem;color:var(--rose)}
.feats p{margin:0}
.mosaic{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding-bottom:clamp(32px,5vw,56px)}
.mosaic figure{margin:0;aspect-ratio:4/5;border-radius:6px;overflow:hidden;background:linear-gradient(160deg,var(--line),var(--muted))}
.mosaic img{width:100%;height:100%;object-fit:cover}
.band{background:var(--ink);color:var(--paper);text-align:center;padding:clamp(36px,6vw,64px) 22px;border-radius:10px;margin-bottom:clamp(36px,6vw,64px)}
.band h2{margin:0 0 .6rem;font-size:1.8rem}
.band p{margin:0 0 1.2rem}
.band .btn{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.band .btn:hover,.band .btn:focus-visible{background:#fff;border-color:#fff}
/* centrage, formules, langue, formulaire */
.c{text-align:center}.c h1,.c p{margin-left:auto;margin-right:auto}
.lede.c h1{max-width:20ch}
.feats.c>div{background:rgba(255,255,255,.6);border-radius:10px;padding:22px}
.h2c{text-align:center;font-size:clamp(1.6rem,3.5vw,2.2rem);margin:0 0 .4rem;line-height:1.2}
.sub{text-align:center;color:var(--muted);margin:0 auto 1.8rem;max-width:56ch}
.plans{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));padding:0 0 28px}
.plan{background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px 22px;text-align:center;display:flex;flex-direction:column;gap:10px}
.plan h3{font-size:1.5rem;margin:0;font-variant:small-caps;color:var(--rose)}
.plan .pr{font:700 2.3rem var(--serif);line-height:1}
.plan .pr small{display:block;font:400 .9rem var(--sans);color:var(--muted);margin-top:4px}
.plan ul{list-style:none;padding:0;margin:8px 0 0;text-align:left;font-size:1rem}
.plan li{padding:6px 0 6px 24px;position:relative;border-bottom:1px solid var(--line)}
.plan li::before{content:"\2713";position:absolute;left:0;color:var(--rose)}
.lang{display:inline-flex;border:2px solid var(--ink);border-radius:999px;overflow:hidden;font:600 .85rem var(--sans)}
.lang a,.lang span{padding:6px 14px;text-decoration:none}
.lang [aria-current]{background:var(--ink);color:var(--paper)}
.lang .off{opacity:.4;cursor:not-allowed}
.chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:1.2rem 0;padding:0;list-style:none}
.chips li{background:#fff;border:1px solid var(--line);border-radius:999px;padding:.4rem 1rem;font:.95rem var(--sans)}
.story{display:grid;gap:28px 48px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:center;padding:clamp(24px,5vw,48px) 0}
.story .ph{aspect-ratio:4/5;border-radius:10px;background:linear-gradient(160deg,#e9e4d6,#b9c3ae)}
.fm{display:grid;gap:12px;max-width:560px;margin:0 auto;text-align:left}
.fm label{display:grid;gap:4px;font:.95rem var(--sans)}
.fm input,.fm select,.fm textarea{padding:.7rem;border:1px solid var(--line);border-radius:6px;font:inherit;background:#fff;color:var(--ink)}
.fm .btn{justify-self:center;cursor:pointer}
.sec{padding:clamp(28px,5vw,56px) 0;border-top:1px solid var(--line)}
/* v3 : bouton contour, défilement, centrage, mise en avant */
.btn.o{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.o:hover,.btn.o:focus-visible{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.mosaic{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;padding-bottom:20px;scrollbar-width:thin}
.mosaic figure{flex:0 0 min(260px,72%);scroll-snap-align:start}
.feats.c{display:flex;flex-wrap:wrap;justify-content:center}
.feats.c>div{flex:1 1 280px;max-width:350px}
.marq{overflow:hidden;padding:6px 0 clamp(28px,5vw,48px)}
.marq .track{display:flex;gap:10px;width:max-content;animation:mq 45s linear infinite}
.marq:hover .track,.marq:focus-within .track{animation-play-state:paused}
.marq img{height:300px;width:240px;object-fit:cover;border-radius:6px}
@keyframes mq{to{transform:translateX(calc(-50% - 5px))}}
@media (prefers-reduced-motion:reduce){.marq{overflow-x:auto}.marq .track{animation:none}}
.plan{position:relative}
.plan.top{border:2px solid var(--rose);box-shadow:0 10px 26px rgba(35,26,26,.12)}
.badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--rose);color:#fff;font:700 .78rem var(--sans);padding:4px 14px;border-radius:999px;white-space:nowrap}
.nudge{font:600 .9rem var(--sans);color:var(--rose);margin:8px 0 0}
.stat{font:700 clamp(3rem,8vw,5rem) var(--serif);color:var(--rose);line-height:1;margin-top:.4rem}
.stat small{display:block;font:400 1rem var(--sans);color:var(--muted);margin-top:6px}
.top{align-items:center}
/* v4 : logo, tuiles de carrousel, Instagram */
.brand{display:flex;align-items:center;gap:12px}
.logo{flex:none;width:46px;height:46px;background:currentColor;-webkit-mask:url(/assets/logo.svg) center/contain no-repeat;mask:url(/assets/logo.svg) center/contain no-repeat}
.marq .tile{flex:0 0 240px;height:300px;border-radius:6px;background:linear-gradient(160deg,var(--line),var(--muted));opacity:.55}
.igs{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));max-width:760px;margin:0 auto}
.ig{display:flex;flex-direction:column;gap:6px;padding:26px 22px;border-radius:12px;text-decoration:none;background:#fff;border:1px solid var(--line);transition:transform .25s,box-shadow .25s}
.ig strong{font:700 1.3rem var(--serif)}
.ig span{font:.95rem var(--sans);color:var(--muted)}
.ig.tph{background:linear-gradient(160deg,#f2c48d,#b95c71);border:0;color:#3d1b27}
.ig.tph span{color:#3d1b27}
.ig:hover,.ig:focus-visible{transform:translateY(-3px);box-shadow:0 12px 26px rgba(35,26,26,.16)}
@media (prefers-reduced-motion:reduce){.ig{transition:none}}
/* v5 : avis, options, boudoir */
.revs{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.rev{margin:0;background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px}
.rev blockquote{margin:0 0 12px;font-style:italic;font-size:1rem}
.rev blockquote p{margin:0}
.rev figcaption{font:700 .95rem var(--sans);color:var(--rose)}
.opts{list-style:none;max-width:760px;margin:0 auto;padding:0}
.opts li{display:flex;justify-content:space-between;gap:18px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line)}
.opts strong{display:block;font-size:1.1rem}
.opts em{display:block;font:italic .95rem var(--sans);color:var(--muted)}
.opts b{font:700 1rem var(--sans);color:var(--rose);white-space:nowrap}
.bimg{max-width:340px;width:100%;margin:0 auto 1.4rem;border-radius:12px;aspect-ratio:4/5;object-fit:cover}
