/* MGWilow Apps — refonte commerciale 2026-11-02
   Une vitrine synthétique et une identité propre à chaque produit. */

:root {
  --studio-ink: #09152f;
  --studio-muted: #667085;
  --studio-line: rgba(13, 31, 67, .10);
  --studio-radius: 30px;
}

html { scroll-behavior: smooth; }
body { text-rendering: optimizeLegibility; }

/* ---------- Accueil : catalogue synthétique ---------- */
.showcasePage {
  color: var(--studio-ink);
  background:
    radial-gradient(circle at 80% -10%, rgba(67, 104, 238, .18), transparent 34rem),
    linear-gradient(180deg, #f8faff 0, #eef3ff 48%, #f9fbff 100%);
}

.showcasePage .header {
  top: 14px;
  border: 1px solid rgba(255,255,255,.78);
  background: rgba(255,255,255,.82);
  box-shadow: 0 18px 50px rgba(32, 52, 98, .13);
  backdrop-filter: blur(22px) saturate(145%);
}

.showcasePage .brand__logo {
  border-radius: 16px;
  background: linear-gradient(145deg,#142c67,#376cf0);
  box-shadow: 0 10px 24px rgba(45, 89, 213, .28);
}

.showcasePage .hero {
  min-height: 590px;
  align-items: center;
  border: 0;
  border-radius: 42px;
  background:
    radial-gradient(circle at 82% 42%, rgba(95, 136, 255, .28), transparent 24rem),
    linear-gradient(125deg, #07152e 0%, #102e69 52%, #2158d6 100%);
  box-shadow: 0 38px 90px rgba(22, 49, 112, .28);
  overflow: hidden;
}

.showcasePage .hero::after {
  content: "";
  position: absolute;
  inset: auto -7rem -12rem auto;
  width: 31rem;
  aspect-ratio: 1;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 50%;
  box-shadow: 0 0 0 70px rgba(255,255,255,.035), 0 0 0 140px rgba(255,255,255,.025);
  pointer-events: none;
}

.showcasePage .hero__title,
.showcasePage .hero__desc,
.showcasePage .hero .note { color: #fff; }
.showcasePage .hero__title { max-width: 770px; letter-spacing: -.055em; }
.showcasePage .hero__desc { color: rgba(255,255,255,.76); }
.showcasePage .hero .grad { color: #8eb5ff; }
.showcasePage .hero .pill,
.showcasePage .hero .badge { color: #fff; border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.08); }
.showcasePage .hero .btn--primary { color:#12316e; background:#fff; border-color:#fff; }
.showcasePage .hero .btn--ghost { color:#fff; border-color:rgba(255,255,255,.28); background:rgba(255,255,255,.06); }

.showcasePage #projets { padding-top: 110px; }
.showcasePage #projets .section__head { max-width: 780px; margin-bottom: 34px; }
.showcasePage #projets .section__title { font-size: clamp(2.7rem, 6vw, 5.3rem); line-height: .95; letter-spacing: -.06em; }
.showcasePage #projets .section__subtitle { font-size: 1.12rem; }

.showcasePage .catalogFilters {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  padding:8px;
  width:max-content;
  max-width:100%;
  border:1px solid var(--studio-line);
  border-radius:999px;
  background:rgba(255,255,255,.76);
  box-shadow:0 14px 32px rgba(31,55,111,.09);
}
.showcasePage .catalogFilter { border:0; background:transparent; }
.showcasePage .catalogFilter.is-active { color:#fff; background:#173e9b; box-shadow:0 8px 18px rgba(23,62,155,.24); }

.showcasePage #projets .cards {
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  margin-top:34px;
}

.showcasePage .appCard {
  min-width:0;
  display:grid !important;
  grid-template-rows:270px 1fr;
  overflow:hidden;
  padding:0 !important;
  border:1px solid rgba(255,255,255,.78) !important;
  border-radius:32px !important;
  background:#fff !important;
  box-shadow:0 22px 55px rgba(28,49,98,.13) !important;
  transition:transform .28s ease, box-shadow .28s ease;
}
.showcasePage .appCard:hover { transform:translateY(-7px); box-shadow:0 32px 72px rgba(28,49,98,.20) !important; }
.showcasePage .appCard__visual { min-height:0; border:0; border-radius:0; }
.showcasePage .appCard__copy { position:relative; padding:28px 30px 30px; }
.showcasePage .appCard__eyebrow { margin-bottom:9px; font-size:.72rem; letter-spacing:.12em; }
.showcasePage .appCard .card__title { font-size:clamp(1.7rem,3vw,2.55rem); letter-spacing:-.045em; }
.showcasePage .appCard__promise { margin:9px 0 14px; font-size:1.02rem; line-height:1.5; color:#23304c; }
.showcasePage .appCard .card__desc { display:-webkit-box; margin:0 0 20px; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:3; color:#667085; }
.showcasePage .appCard .list,
.showcasePage .appCard .note,
.showcasePage .appCard .storeRow { display:none !important; }
.showcasePage .appCard .priceLine { display:inline-flex; margin:0 0 18px; padding:7px 11px; border-radius:999px; background:#eef3ff; font-size:.78rem; }
.showcasePage .appCard .hero__cta { margin:0; }
.showcasePage .appCard__cta,
.showcasePage .appCard .hero__cta .btn { display:inline-flex; align-items:center; min-height:46px; border-radius:14px; }

.showcasePage .appCard--maurage .appCard__visual { background:#061d45; }
.showcasePage .appCard--pets .appCard__visual { background:linear-gradient(135deg,#35245f,#8067dc); }
.showcasePage .appCard--baby .appCard__visual { background:linear-gradient(135deg,#ffe9f3,#fff7fb); }
.showcasePage .appCard--famiora .appCard__visual { background:linear-gradient(135deg,#074a4d,#14a58d); }
.showcasePage .appCard--koptime .appCard__visual { background:linear-gradient(135deg,#071d17,#177548); }
.showcasePage .appCard--evidocket .appCard__visual { background:linear-gradient(135deg,#09243a,#1485a5); }
.showcasePage .appCard--docswitch .appCard__visual { background:linear-gradient(135deg,#191944,#6454dd); }
.showcasePage .appCard--party .appCard__visual { background:linear-gradient(135deg,#190934,#7b2fc2); }
.showcasePage .appCard--isles .appCard__visual { background:#151b1e; }
.showcasePage .appCard--squad .appCard__visual { background:linear-gradient(135deg,#082a1b,#168550); }

.showcasePage #competences,
.showcasePage #assistance,
.showcasePage #contact { margin-top:100px; }

/* ---------- Fiches produits : structure premium commune ---------- */
body.appTheme {
  --app-text: color-mix(in srgb, var(--app-deep) 92%, #07101f);
  color: var(--app-text);
  background:
    radial-gradient(circle at 90% 0%, color-mix(in srgb,var(--app-accent) 15%,transparent), transparent 30rem),
    linear-gradient(180deg,#fff 0%,var(--app-surface) 42%,#fff 100%);
}

body.appTheme .header {
  top:14px;
  border:1px solid color-mix(in srgb,var(--app-accent) 15%,#fff);
  background:rgba(255,255,255,.86);
  box-shadow:0 18px 48px color-mix(in srgb,var(--app-deep) 13%,transparent);
  backdrop-filter:blur(22px) saturate(140%);
}

body.appTheme .brand__logo,
body.appTheme .brand > img { border-radius:16px !important; box-shadow:0 9px 22px color-mix(in srgb,var(--app-deep) 25%,transparent); }

body.appTheme main > .hero {
  position:relative;
  min-height:610px;
  align-items:center;
  margin-top:34px;
  padding:clamp(34px,5vw,72px);
  border:0;
  border-radius:42px;
  overflow:hidden;
  box-shadow:0 38px 88px color-mix(in srgb,var(--app-deep) 28%,transparent);
}
body.appTheme main > .hero::after {
  content:"";
  position:absolute;
  width:28rem;
  aspect-ratio:1;
  right:-14rem;
  top:-14rem;
  border:1px solid rgba(255,255,255,.16);
  border-radius:50%;
  box-shadow:0 0 0 70px rgba(255,255,255,.04),0 0 0 140px rgba(255,255,255,.025);
}
body.appTheme main > .hero .hero__left,
body.appTheme main > .hero .hero__right { position:relative; z-index:1; }
body.appTheme main > .hero .hero__title { font-size:clamp(3rem,6vw,6.2rem); line-height:.92; letter-spacing:-.065em; }
body.appTheme main > .hero .hero__desc { max-width:680px; color:rgba(255,255,255,.78); font-size:1.1rem; }
body.appTheme main > .hero .pill,
body.appTheme main > .hero .badge { color:#fff; border-color:rgba(255,255,255,.23); background:rgba(255,255,255,.09); }
body.appTheme main > .hero .btn--primary { color:var(--app-deep); background:#fff; border-color:#fff; }
body.appTheme main > .hero .btn--ghost { color:#fff; border-color:rgba(255,255,255,.28); background:rgba(255,255,255,.06); }

body.appTheme .appIdentityVisual {
  min-height:460px;
  border-radius:36px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 28px 60px rgba(0,0,0,.28);
}
body.appTheme .section { padding-top:105px; }
body.appTheme .section__head { max-width:820px; }
body.appTheme .section__title { font-size:clamp(2.35rem,5vw,4.5rem); line-height:1; letter-spacing:-.055em; }
body.appTheme .section__subtitle { font-size:1.08rem; line-height:1.7; }
body.appTheme .cards,
body.appTheme .grid3 { gap:20px; }
body.appTheme .card,
body.appTheme .infoBox {
  border:1px solid color-mix(in srgb,var(--app-accent) 15%,#e5eaf3);
  border-radius:24px;
  background:rgba(255,255,255,.88);
  box-shadow:0 15px 38px color-mix(in srgb,var(--app-deep) 9%,transparent);
}
body.appTheme .card:hover,
body.appTheme .infoBox:hover { transform:translateY(-4px); box-shadow:0 24px 48px color-mix(in srgb,var(--app-deep) 14%,transparent); }
body.appTheme .footer { margin-top:100px; border-top:1px solid color-mix(in srgb,var(--app-accent) 20%,#e5eaf3); }

/* Parcours éditorial injecté dans chaque fiche produit. */
.productStory { padding-top:130px !important; }
.productStory__intro { display:grid; grid-template-columns:minmax(180px,.34fr) minmax(0,1fr); gap:24px 70px; align-items:start; }
.productStory__kicker { margin:10px 0 0; color:var(--app-accent); font-size:.76rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.productStory__title { margin:0; max-width:920px; color:var(--app-text); font-size:clamp(2.8rem,6vw,6.4rem); line-height:.94; letter-spacing:-.065em; }
.productStory__lead { grid-column:2; margin:0; max-width:780px; color:#596579; font-size:clamp(1.05rem,1.6vw,1.35rem); line-height:1.75; }
.productStory__moments { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; margin-top:75px; overflow:hidden; border:1px solid color-mix(in srgb,var(--app-accent) 16%,#e3e8f0); border-radius:28px; background:color-mix(in srgb,var(--app-accent) 16%,#e3e8f0); }
.productStory__moment { min-height:270px; padding:30px; background:rgba(255,255,255,.96); }
.productStory__moment > span { display:inline-grid; place-items:center; width:43px; height:43px; margin-bottom:54px; border-radius:50%; color:var(--app-deep); background:color-mix(in srgb,var(--app-accent) 18%,#fff); font-size:.76rem; font-weight:900; }
.productStory__moment h3 { margin:0 0 12px; color:var(--app-text); font-size:1.28rem; line-height:1.2; letter-spacing:-.025em; }
.productStory__moment p { margin:0; color:#687386; line-height:1.65; }
.productStory__feature { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr); align-items:stretch; margin-top:26px; overflow:hidden; border-radius:34px; color:#fff; background:var(--app-deep); box-shadow:0 28px 70px color-mix(in srgb,var(--app-deep) 18%,transparent); }
.productStory__feature figure { min-height:480px; margin:0; overflow:hidden; background:#000; }
.productStory__feature img { width:100%; height:100%; min-height:480px; display:block; object-fit:cover; }
.productStory__feature > div { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:clamp(32px,5vw,72px); background:linear-gradient(145deg,var(--app-deep),color-mix(in srgb,var(--app-deep) 70%,var(--app-accent))); }
.productStory__quote { margin:0 0 30px; font-size:clamp(1.8rem,3.3vw,3.5rem); font-weight:850; line-height:1.05; letter-spacing:-.05em; }
.productStory__feature .btn { color:var(--app-deep); background:#fff; border-color:#fff; }
.productStory__stores { display:flex; flex-wrap:wrap; gap:12px; }

/* Store buttons: real platform marks, shared by the commercial section and
   the download links already present elsewhere on each product page. */
a.storeButton {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:48px;
  padding:12px 18px;
  border-radius:14px;
  text-decoration:none;
  line-height:1.1;
}
.storeButton__icon {
  display:inline-grid;
  flex:0 0 24px;
  width:24px;
  height:24px;
  place-items:center;
}
.storeButton__icon svg { display:block; width:100%; height:100%; }
.storeButton__label { font-weight:850; white-space:nowrap; }
.storeButton--apple .storeButton__icon,
.storeButton--windows .storeButton__icon { color:currentColor; }
.storeButton--google .storeButton__icon { border-radius:5px; overflow:hidden; }
.productStory__stores .storeButton { min-width:158px; }

body.appTheme--babytodo .productStory__feature img,
body.appTheme--petstodo .productStory__feature img { object-position:center; }
body.appTheme--famiora .productStory__feature figure { background:#d6fff1; }
body.appTheme--famiora .productStory__feature img { object-fit:contain; padding:24px; }
body.appTheme--koptime .productStory__feature img,
body.appTheme--docswitch .productStory__feature img { object-fit:contain; padding:25px; background:#fff; }
body.appTheme--squadflow .productStory__feature img { object-fit:contain; padding:80px; background:repeating-linear-gradient(90deg,#157c46 0 13%,#1e9254 13% 26%); }

.customAppCta {
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:28px;
  margin:68px 0;
  padding:clamp(30px,5vw,58px) !important;
  border:1px solid color-mix(in srgb,var(--app-accent-2) 34%,transparent);
  border-radius:34px;
  color:#fff;
  background:radial-gradient(circle at 92% 10%,color-mix(in srgb,var(--app-accent-2) 28%,transparent),transparent 18rem),linear-gradient(135deg,var(--app-deep),color-mix(in srgb,var(--app-deep) 68%,var(--app-accent)));
  box-shadow:0 28px 75px color-mix(in srgb,var(--app-deep) 22%,transparent);
}
.customAppCta__mark { display:grid; place-items:center; width:76px; height:76px; border-radius:22px; color:var(--app-deep); background:var(--app-accent-2); font-size:1.3rem; font-weight:950; box-shadow:0 16px 35px rgba(0,0,0,.2); }
.customAppCta__eyebrow { margin:0 0 8px; color:var(--app-accent-2); font-size:.74rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.customAppCta h2 { margin:0; max-width:780px; color:#fff; font-size:clamp(1.9rem,3.6vw,3.8rem); line-height:1; letter-spacing:-.05em; }
.customAppCta p:not(.customAppCta__eyebrow) { max-width:760px; margin:17px 0 0; color:rgba(255,255,255,.78); font-size:1.02rem; line-height:1.65; }
.customAppCta__button { flex:0 0 auto; color:var(--app-deep) !important; background:#fff !important; border-color:#fff !important; white-space:nowrap; }

@media (max-width:900px) {
  .productStory__intro { grid-template-columns:1fr; gap:18px; }
  .productStory__lead { grid-column:1; }
  .productStory__moments { grid-template-columns:1fr; }
  .productStory__moment { min-height:0; }
  .productStory__moment > span { margin-bottom:28px; }
  .productStory__feature { grid-template-columns:1fr; }
  .productStory__feature figure,
  .productStory__feature img { min-height:360px; max-height:560px; }
  .productStory__stores { width:100%; }
  .productStory__stores .storeButton { flex:1 1 150px; }
  .customAppCta { grid-template-columns:auto 1fr; }
  .customAppCta__button { grid-column:1 / -1; width:fit-content; }
}

@media (max-width:620px) {
  .customAppCta { grid-template-columns:1fr; gap:20px; border-radius:26px; }
  .customAppCta__mark { width:60px; height:60px; border-radius:18px; }
  .customAppCta__button { width:100%; justify-content:center; text-align:center; white-space:normal; }
}

/* ---------- Une ambiance par application ---------- */
body.appTheme--maurage { font-family:Inter,system-ui,sans-serif; }
body.appTheme--maurage main > .hero { background:linear-gradient(125deg,#04152f 0%,#08336f 62%,#e2a90d 140%); }
body.appTheme--maurage .hero__title { text-transform:uppercase; font-weight:900; }
body.appTheme--maurage .grad { color:#ffd13b; }
body.appTheme--maurage .appIdentityVisual { background:#061d45; padding:0; }
body.appTheme--maurage .appVisualShot img { height:100%; object-fit:cover; }

body.appTheme--petstodo { --app-surface:#f7f4ff; }
body.appTheme--petstodo main > .hero { background:linear-gradient(125deg,#20143f,#5c42a2 62%,#42b889); }
body.appTheme--petstodo .hero__title { font-family:ui-rounded,"SF Pro Rounded",Inter,sans-serif; }
body.appTheme--petstodo .appIdentityVisual { background:linear-gradient(145deg,rgba(255,255,255,.10),rgba(107,233,189,.16)); }
body.appTheme--petstodo .appVisualShot { border-radius:34px; }

body.appTheme--babytodo { --app-surface:#fff6fa; }
body.appTheme--babytodo main > .hero { background:linear-gradient(125deg,#4c203f,#9a4b76 62%,#ef9cbd); }
body.appTheme--babytodo .hero__title { font-family:ui-rounded,"SF Pro Rounded",Inter,sans-serif; font-weight:800; }
body.appTheme--babytodo .appIdentityVisual { background:linear-gradient(145deg,#fff1f7,rgba(255,255,255,.12)); }
body.appTheme--babytodo .appVisualShot { box-shadow:0 18px 44px rgba(96,35,74,.24); }

body.appTheme--famiora main > .hero { background:linear-gradient(125deg,#082f37,#08786c 60%,#3bc9a5); }
body.appTheme--famiora .appIdentityVisual { background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(145,255,219,.20)); }

body.appTheme--koptime main > .hero { background:linear-gradient(125deg,#061f15,#0d6038 60%,#37b86d); }
body.appTheme--koptime .appIdentityVisual { background:repeating-linear-gradient(90deg,rgba(15,117,61,.95) 0 12%,rgba(20,137,72,.95) 12% 24%); }

body.appTheme--evidocket main > .hero { background:linear-gradient(125deg,#0a2030,#14556d 58%,#22a7c1); }
body.appTheme--evidocket .appIdentityVisual { background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(89,222,246,.16)); }
body.appTheme--evidocket .appVisualShot { border-radius:28px; border-color:#fff; }

body.appTheme--docswitch main > .hero { background:linear-gradient(125deg,#15143c,#3d3599 58%,#7668ee); }
body.appTheme--docswitch .appIdentityVisual { background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(116,244,215,.13)); }

body.appTheme--pocketparty main > .hero { background:radial-gradient(circle at 80% 20%,#d14ed0 0,transparent 26%),linear-gradient(125deg,#170727,#4d1688 58%,#8b36e6); }
body.appTheme--pocketparty .header { background:rgba(24,8,47,.86); color:#fff; border-color:rgba(255,255,255,.15); }
body.appTheme--pocketparty .header a,
body.appTheme--pocketparty .header .brand__title,
body.appTheme--pocketparty .header .brand__subtitle { color:#fff; }
body.appTheme--pocketparty .appIdentityVisual { background:linear-gradient(145deg,rgba(255,255,255,.09),rgba(252,91,223,.17)); }

body.appTheme--isles-of-memory { --app-surface:#f4efe5; }
body.appTheme--isles-of-memory main > .hero { background:linear-gradient(125deg,#10191f,#28414a 55%,#b06e29); }
body.appTheme--isles-of-memory .hero__title { font-family:Georgia,serif; letter-spacing:-.045em; }
body.appTheme--isles-of-memory .header { background:rgba(20,28,31,.88); color:#fff; border-color:rgba(240,197,108,.25); }
body.appTheme--isles-of-memory .header a,
body.appTheme--isles-of-memory .header .brand__title,
body.appTheme--isles-of-memory .header .brand__subtitle { color:#fff; }

body.appTheme--squadflow main > .hero { background:linear-gradient(125deg,#061d13,#0c5833 58%,#25a45d); }
body.appTheme--squadflow .appIdentityVisual { background:repeating-linear-gradient(90deg,#167e46 0 13%,#1d9052 13% 26%); }

@media (max-width: 980px) {
  .showcasePage #projets .cards { grid-template-columns:1fr; }
  .showcasePage .appCard { grid-template-rows:250px auto; }
  body.appTheme main > .hero { min-height:auto; border-radius:32px; }
}

@media (max-width: 720px) {
  .showcasePage .hero { min-height:auto; border-radius:28px; }
  .showcasePage #projets { padding-top:72px; }
  .showcasePage .catalogFilters { width:100%; border-radius:22px; }
  .showcasePage .appCard { grid-template-rows:220px auto; border-radius:24px !important; }
  .showcasePage .appCard__copy { padding:23px; }
  body.appTheme main > .hero { padding:28px 22px; border-radius:28px; }
  body.appTheme main > .hero .hero__title { font-size:clamp(2.65rem,14vw,4rem); }
  body.appTheme .appIdentityVisual { min-height:320px; border-radius:24px; }
  body.appTheme .section { padding-top:72px; }
}

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto !important; transition:none !important; }
}

/* ---------- Accueil éditorial : rupture complète avec l'ancien design ---------- */
body.showcasePage {
  --acid:#d8ff42;
  --paper:#f4f1e8;
  --night:#0b0b0d;
  color:var(--paper);
  background:
    linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px),
    var(--night);
  background-size:64px 64px;
}
.showcasePage .bg-blur { display:none; }
.showcasePage .container { width:min(1380px,calc(100% - 34px)); }
.showcasePage .header {
  color:var(--paper);
  border:1px solid rgba(255,255,255,.10);
  background:rgba(11,11,13,.88);
  box-shadow:none;
}
.showcasePage .brand__logo {
  color:#111;
  background:var(--acid);
  box-shadow:none;
}
.showcasePage .brand__title,
.showcasePage .brand__subtitle,
.showcasePage .nav__link { color:var(--paper); }
.showcasePage .brand__subtitle { opacity:.55; }
.showcasePage .langDropdown__btn { color:var(--paper); border-color:rgba(255,255,255,.14); background:rgba(255,255,255,.06); }

.showcasePage .hero {
  position:relative;
  min-height:680px;
  grid-template-columns:minmax(0,1.18fr) minmax(350px,.82fr);
  padding:clamp(34px,5vw,78px);
  color:#0b0b0d;
  border-radius:0;
  background:var(--acid);
  box-shadow:none;
}
.showcasePage .hero::before {
  content:"10\A APPS";
  white-space:pre;
  position:absolute;
  right:3.5%;
  top:3%;
  font-size:clamp(6rem,14vw,14rem);
  line-height:.72;
  font-weight:900;
  letter-spacing:-.09em;
  color:rgba(11,11,13,.07);
  pointer-events:none;
}
.showcasePage .hero::after { display:none; }
.showcasePage .hero__left { z-index:2; }
.showcasePage .hero__title {
  max-width:830px;
  color:#0b0b0d;
  font-size:clamp(3.8rem,6.2vw,7.2rem);
  line-height:.86;
  letter-spacing:-.075em;
  text-transform:none;
}
.showcasePage .hero__title .grad { display:block; color:#0b0b0d; }
.showcasePage .hero__desc { max-width:640px; color:rgba(11,11,13,.70); font-size:1.16rem; }
.showcasePage .hero .pill,
.showcasePage .hero .badge { color:#0b0b0d; border-color:rgba(11,11,13,.22); background:transparent; }
.showcasePage .hero .btn--primary { color:var(--paper); background:#0b0b0d; border-color:#0b0b0d; }
.showcasePage .hero .btn--ghost { color:#0b0b0d; border-color:rgba(11,11,13,.30); background:transparent; }
.showcasePage .studioStats { border-color:rgba(11,11,13,.16); }
.showcasePage .studioStats strong,
.showcasePage .studioStats span { color:#0b0b0d; }
.showcasePage .hero__right { z-index:2; align-self:stretch; display:flex; align-items:center; }
.showcasePage .previewCard {
  width:100%;
  transform:rotate(2.5deg);
  color:var(--paper);
  border:1px solid rgba(255,255,255,.14);
  border-radius:28px;
  background:#111114;
  box-shadow:18px 22px 0 rgba(11,11,13,.14);
}
.showcasePage .mini { border-color:rgba(255,255,255,.09); background:#1a1a1e; }
.showcasePage .mini__title,
.showcasePage .mini__title a { color:#fff; }
.showcasePage .mini__sub,
.showcasePage .previewCard .note { color:rgba(255,255,255,.56); }

.showcasePage #projets { padding-top:140px; }
.showcasePage #projets .section__title {
  max-width:920px;
  color:var(--paper);
  font-size:clamp(3.8rem,8vw,8.5rem);
  line-height:.82;
  letter-spacing:-.075em;
}
.showcasePage #projets .section__subtitle { color:rgba(244,241,232,.58); }
.showcasePage .catalogFilters { border-color:rgba(255,255,255,.10); background:#151518; box-shadow:none; }
.showcasePage .catalogFilter { color:rgba(255,255,255,.62); }
.showcasePage .catalogFilter.is-active { color:#111; background:var(--acid); box-shadow:none; }
.showcasePage #projets .cards { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.showcasePage .appCard {
  grid-template-rows:220px 1fr;
  color:var(--paper);
  border:1px solid rgba(255,255,255,.09) !important;
  border-radius:18px !important;
  background:#151518 !important;
  box-shadow:none !important;
}
.showcasePage .appCard:hover { transform:translateY(-5px); border-color:rgba(216,255,66,.45) !important; box-shadow:none !important; }
.showcasePage .appCard__copy { padding:23px 24px 26px; }
.showcasePage .appCard__eyebrow { color:var(--acid); }
.showcasePage .appCard .card__title { color:#fff; font-size:2rem; }
.showcasePage .appCard__promise { color:rgba(255,255,255,.80); }
.showcasePage .appCard .card__desc { display:none; }
.showcasePage .appCard .priceLine { color:#111; background:var(--acid); }
.showcasePage .appCard__cta,
.showcasePage .appCard .hero__cta .btn { color:#111; border:0; background:var(--paper); }

.showcasePage #competences,
.showcasePage #assistance,
.showcasePage #contact { color:var(--paper); }
.showcasePage #competences .section__title,
.showcasePage #assistance .section__title,
.showcasePage #contact .section__title { color:var(--paper); }
.showcasePage .infoBox,
.showcasePage #assistance .card,
.showcasePage .contactCard { color:var(--paper); border-color:rgba(255,255,255,.09); background:#151518; }
.showcasePage .infoBox__title,
.showcasePage .contactCard__label { color:var(--acid); }
.showcasePage .infoBox__text,
.showcasePage .section__subtitle { color:rgba(244,241,232,.60); }
.showcasePage .footer { color:rgba(244,241,232,.48); border-color:rgba(255,255,255,.09); }

@media (max-width:1120px) {
  .showcasePage #projets .cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .showcasePage .hero { grid-template-columns:1fr; }
  .showcasePage .hero__right { display:none; }
}
@media (max-width:700px) {
  .showcasePage .hero { min-height:auto; padding:48px 24px; }
  .showcasePage .hero__title { font-size:clamp(3.2rem,17vw,5.5rem); }
  .showcasePage #projets .cards { grid-template-columns:1fr; }
  .showcasePage #projets .section__title { font-size:clamp(3.3rem,16vw,5.4rem); }
}

/* ========================================================================== */
/* Fiches produit : dix directions éditoriales réellement différentes.        */
/* Les contenus restent accessibles et traduisibles, la composition change.   */
/* ========================================================================== */

.productStory[class*="productStory--"] {
  position:relative;
  margin-top:105px;
  padding:clamp(44px,6vw,86px) !important;
  overflow:hidden;
}

/* RFCE Maurage — affiche de match, nette et institutionnelle. */
.productStory--maurage {
  color:#fff;
  border-radius:0;
  background:
    linear-gradient(90deg,rgba(255,205,34,.08) 1px,transparent 1px),
    linear-gradient(rgba(255,205,34,.06) 1px,transparent 1px),
    #061a3c;
  background-size:72px 72px;
  box-shadow:0 34px 80px rgba(4,21,47,.28);
}
.productStory--maurage::before {
  content:"RFCE";
  position:absolute;
  right:-.03em;
  top:-.16em;
  color:rgba(255,209,59,.055);
  font-size:clamp(10rem,27vw,30rem);
  font-weight:950;
  line-height:1;
  pointer-events:none;
}
.productStory--maurage .productStory__intro { position:relative; grid-template-columns:220px minmax(0,1fr); }
.productStory--maurage .productStory__kicker { color:#ffd13b; }
.productStory--maurage .productStory__title { color:#fff; text-transform:uppercase; }
.productStory--maurage .productStory__lead { color:rgba(255,255,255,.72); }
.productStory--maurage .productStory__moments { position:relative; border:1px solid rgba(255,209,59,.23); border-radius:0; background:transparent; }
.productStory--maurage .productStory__moment { background:rgba(4,21,47,.72); }
.productStory--maurage .productStory__moment + .productStory__moment { border-left:1px solid rgba(255,209,59,.18); }
.productStory--maurage .productStory__moment > span { color:#061a3c; border-radius:0; background:#ffd13b; }
.productStory--maurage .productStory__moment h3 { color:#fff; }
.productStory--maurage .productStory__moment p { color:rgba(255,255,255,.67); }
.productStory--maurage .productStory__feature { position:relative; grid-template-columns:1.45fr .55fr; border-radius:0; border-top:8px solid #ffd13b; box-shadow:none; }
.productStory--maurage .productStory__feature > div { background:#0c3471; }

/* PetsToDo — carnet chaleureux, cartes souples et composition organique. */
.productStory--petstodo {
  border-radius:58px;
  background:
    radial-gradient(circle at 8% 12%,rgba(117,95,191,.18),transparent 22rem),
    radial-gradient(circle at 92% 72%,rgba(81,196,153,.18),transparent 25rem),
    #fbf9ff;
  box-shadow:0 30px 80px rgba(69,45,118,.12);
}
.productStory--petstodo::before,
.productStory--petstodo::after { content:""; position:absolute; border-radius:50%; border:32px solid rgba(95,68,164,.06); pointer-events:none; }
.productStory--petstodo::before { width:210px; height:210px; right:-105px; top:120px; }
.productStory--petstodo::after { width:130px; height:130px; left:-75px; bottom:110px; }
.productStory--petstodo .productStory__intro { grid-template-columns:minmax(180px,.4fr) minmax(0,1fr); }
.productStory--petstodo .productStory__title { font-family:ui-rounded,"SF Pro Rounded",Inter,sans-serif; }
.productStory--petstodo .productStory__moments { gap:18px; border:0; overflow:visible; background:transparent; }
.productStory--petstodo .productStory__moment { border:1px solid rgba(93,66,162,.12); border-radius:32px; box-shadow:0 18px 42px rgba(72,46,123,.09); }
.productStory--petstodo .productStory__moment:nth-child(2) { transform:translateY(34px); }
.productStory--petstodo .productStory__moment > span { color:#fff; background:#5c42a2; }
.productStory--petstodo .productStory__feature { grid-template-columns:.8fr 1.2fr; margin-top:70px; border-radius:46px; background:#291b4b; }
.productStory--petstodo .productStory__feature figure { order:2; }
.productStory--petstodo .productStory__feature > div { order:1; background:linear-gradient(150deg,#281a49,#543994); }

/* BabyToDo — journal doux, parcours vertical comme une ligne de croissance. */
.productStory--babytodo {
  border-radius:64px 64px 24px 64px;
  background:linear-gradient(145deg,#fff7fb 0%,#fff 48%,#fde7f1 100%);
  box-shadow:0 30px 80px rgba(116,53,88,.12);
}
.productStory--babytodo .productStory__intro { grid-template-columns:1fr; max-width:930px; margin-inline:auto; text-align:center; }
.productStory--babytodo .productStory__lead { grid-column:1; margin-inline:auto; }
.productStory--babytodo .productStory__kicker { color:#a64f7b; }
.productStory--babytodo .productStory__moments { grid-template-columns:1fr; gap:22px; max-width:920px; margin:65px auto 0; border:0; overflow:visible; background:transparent; }
.productStory--babytodo .productStory__moment { position:relative; min-height:0; display:grid; grid-template-columns:70px .72fr 1.28fr; align-items:center; gap:22px; padding:26px 30px; border:1px solid #f1c9dc; border-radius:28px; background:rgba(255,255,255,.92); box-shadow:0 15px 35px rgba(142,73,108,.08); }
.productStory--babytodo .productStory__moment:nth-child(2) { margin-left:90px; }
.productStory--babytodo .productStory__moment > span { margin:0; color:#fff; background:#bd608c; }
.productStory--babytodo .productStory__moment h3,
.productStory--babytodo .productStory__moment p { margin:0; }
.productStory--babytodo .productStory__feature { grid-template-columns:1fr 1fr; border-radius:42px; background:#54243f; }
.productStory--babytodo .productStory__feature figure { padding:26px; background:#fff2f8; }
.productStory--babytodo .productStory__feature img { border-radius:24px; box-shadow:0 18px 42px rgba(91,38,67,.2); }

/* Famiora — tableau familial en bento, clair et collaboratif. */
.productStory--famiora {
  border-radius:34px;
  background:#eafff8;
  box-shadow:0 28px 80px rgba(8,94,80,.12);
}
.productStory--famiora .productStory__intro { grid-template-columns:minmax(170px,.32fr) minmax(0,1fr); }
.productStory--famiora .productStory__moments { grid-template-columns:1.15fr .85fr; grid-template-rows:repeat(2,minmax(180px,auto)); gap:18px; border:0; overflow:visible; background:transparent; }
.productStory--famiora .productStory__moment { min-height:0; border-radius:26px; border:1px solid rgba(8,120,108,.15); background:#fff; box-shadow:0 14px 32px rgba(8,94,80,.07); }
.productStory--famiora .productStory__moment:first-child { grid-row:1 / 3; display:flex; flex-direction:column; justify-content:flex-end; background:linear-gradient(150deg,#0a766b,#2ebd9e); }
.productStory--famiora .productStory__moment:first-child h3,
.productStory--famiora .productStory__moment:first-child p { color:#fff; }
.productStory--famiora .productStory__moment:first-child > span { color:#08786c; background:#c9ffec; }
.productStory--famiora .productStory__moment > span { margin-bottom:24px; }
.productStory--famiora .productStory__feature { grid-template-columns:.7fr 1.3fr; border-radius:28px; background:#073a37; }
.productStory--famiora .productStory__feature figure { order:2; }
.productStory--famiora .productStory__feature > div { order:1; }

/* KopTime — panneau de match et chronométrage de terrain. */
.productStory--koptime {
  color:#fff;
  border:1px solid rgba(98,255,153,.18);
  border-radius:22px;
  background:
    repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 12%,rgba(58,197,111,.035) 12% 24%),
    #071d13;
  box-shadow:0 34px 85px rgba(4,28,17,.30);
}
.productStory--koptime .productStory__intro { grid-template-columns:210px minmax(0,1fr); }
.productStory--koptime .productStory__kicker { color:#66ec98; }
.productStory--koptime .productStory__title { color:#fff; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }
.productStory--koptime .productStory__lead { color:rgba(255,255,255,.68); }
.productStory--koptime .productStory__moments { grid-template-columns:1fr; gap:10px; border:0; overflow:visible; background:transparent; }
.productStory--koptime .productStory__moment { min-height:0; display:grid; grid-template-columns:110px minmax(220px,.75fr) 1.25fr; align-items:center; gap:22px; padding:22px 28px; border:1px solid rgba(100,239,153,.18); border-radius:12px; background:rgba(4,20,13,.78); }
.productStory--koptime .productStory__moment > span { width:auto; height:auto; margin:0; color:#68f49d; border-radius:0; background:transparent; font:900 2.2rem ui-monospace,SFMono-Regular,monospace; }
.productStory--koptime .productStory__moment h3 { margin:0; color:#fff; }
.productStory--koptime .productStory__moment p { margin:0; color:rgba(255,255,255,.62); }
.productStory--koptime .productStory__feature { grid-template-columns:.9fr 1.1fr; border-radius:14px; border:1px solid rgba(100,239,153,.18); }
.productStory--koptime .productStory__feature figure { order:2; }
.productStory--koptime .productStory__feature > div { order:1; background:#0b3f26; }

/* Evidocket — dossier de preuve, chronologie et papier sécurisé. */
.productStory--evidocket {
  overflow:visible !important;
  border:1px solid #c8dbe1;
  border-radius:18px;
  background:#f7fbfc;
  box-shadow:12px 16px 0 #dbe9ed,0 35px 70px rgba(11,62,78,.12);
}
.productStory--evidocket::before { content:"DOSSIER PRIVÉ"; position:absolute; left:34px; top:-34px; padding:10px 22px; border-radius:12px 12px 0 0; color:#fff; background:#14627a; font-size:.74rem; font-weight:900; letter-spacing:.13em; }
.productStory--evidocket .productStory__intro { padding-left:28px; border-left:5px solid #20a7c1; }
.productStory--evidocket .productStory__moments { grid-template-columns:1fr; gap:0; border:1px solid #cfdee3; border-radius:16px; background:#fff; }
.productStory--evidocket .productStory__moment { min-height:0; display:grid; grid-template-columns:70px .7fr 1.3fr; align-items:center; gap:24px; padding:24px 28px; background:#fff; }
.productStory--evidocket .productStory__moment + .productStory__moment { border-top:1px solid #dce8eb; }
.productStory--evidocket .productStory__moment > span { margin:0; color:#fff; background:#16748d; }
.productStory--evidocket .productStory__moment h3,
.productStory--evidocket .productStory__moment p { margin:0; }
.productStory--evidocket .productStory__feature { border-radius:16px; border:1px solid #bfd5db; background:#0c4051; }
.productStory--evidocket .productStory__feature figure { padding:30px; background:#eaf3f5; }
.productStory--evidocket .productStory__feature img { border-radius:20px; object-fit:contain; box-shadow:0 20px 50px rgba(9,54,68,.18); }

/* DocSwitch — véritable espace de travail desktop. */
.productStory--docswitch {
  padding-top:105px !important;
  border:1px solid #d8d9ea;
  border-radius:26px;
  background:linear-gradient(#f6f6fb,#ececf6);
  box-shadow:0 30px 80px rgba(39,32,103,.12);
}
.productStory--docswitch::before { content:"●  ●  ●"; position:absolute; left:28px; top:19px; color:#8078d8; font-size:.82rem; letter-spacing:.38rem; }
.productStory--docswitch .productStory__intro { grid-template-columns:180px minmax(0,1fr); padding:35px; border-radius:20px; background:#fff; box-shadow:0 12px 30px rgba(50,45,117,.08); }
.productStory--docswitch .productStory__moments { gap:14px; border:0; overflow:visible; background:transparent; }
.productStory--docswitch .productStory__moment { min-height:250px; border:1px solid #dcdced; border-radius:18px; background:#fff; box-shadow:0 10px 24px rgba(45,39,108,.06); }
.productStory--docswitch .productStory__moment > span { border-radius:10px; color:#fff; background:#5c52c7; }
.productStory--docswitch .productStory__feature { grid-template-columns:.8fr 1.2fr; border:1px solid #d8d8ec; border-radius:20px; color:#171535; background:#fff; }
.productStory--docswitch .productStory__feature figure { order:2; background:#f7f7fb; }
.productStory--docswitch .productStory__feature > div { order:1; color:#fff; background:linear-gradient(150deg,#26205e,#5b50c5); }

/* Pocket Party — écran arcade local, néons et duel à deux. */
.productStory--pocketparty {
  color:#fff;
  border:1px solid rgba(255,83,222,.28);
  border-radius:34px;
  background:
    linear-gradient(rgba(93,55,255,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(93,55,255,.08) 1px,transparent 1px),
    #0e061a;
  background-size:44px 44px;
  box-shadow:0 0 90px rgba(188,48,231,.20);
}
.productStory--pocketparty .productStory__intro { grid-template-columns:200px minmax(0,1fr); }
.productStory--pocketparty .productStory__kicker { color:#ff63df; text-shadow:0 0 18px rgba(255,99,223,.6); }
.productStory--pocketparty .productStory__title { color:#fff; text-shadow:0 0 32px rgba(126,72,255,.30); }
.productStory--pocketparty .productStory__lead { color:rgba(255,255,255,.68); }
.productStory--pocketparty .productStory__moments { gap:18px; border:0; overflow:visible; background:transparent; }
.productStory--pocketparty .productStory__moment { border:1px solid rgba(255,101,223,.22); border-radius:18px; background:linear-gradient(150deg,rgba(91,36,147,.50),rgba(24,10,43,.9)); box-shadow:0 0 34px rgba(134,56,219,.13); }
.productStory--pocketparty .productStory__moment > span { color:#0e061a; background:#ff64df; box-shadow:0 0 24px rgba(255,100,223,.55); }
.productStory--pocketparty .productStory__moment h3 { color:#fff; }
.productStory--pocketparty .productStory__moment p { color:rgba(255,255,255,.62); }
.productStory--pocketparty .productStory__feature { grid-template-columns:.7fr 1.3fr; border:1px solid rgba(102,241,255,.25); border-radius:24px; box-shadow:0 0 55px rgba(72,209,255,.15); }
.productStory--pocketparty .productStory__feature figure { order:2; }
.productStory--pocketparty .productStory__feature > div { order:1; background:linear-gradient(150deg,#4e147c,#1a0930); }

/* Isles of Memory — couverture cinématographique et chapitres d’aventure. */
.productStory--isles-of-memory {
  min-height:980px;
  color:#fff;
  border-radius:0;
  background:
    linear-gradient(180deg,rgba(8,14,17,.25),#10191f 78%),
    url("assets/isles-of-memory/cover.jpg") center top / cover no-repeat;
  box-shadow:0 38px 90px rgba(17,25,31,.30);
}
.productStory--isles-of-memory .productStory__intro { grid-template-columns:1fr; max-width:880px; padding-top:45px; }
.productStory--isles-of-memory .productStory__kicker { color:#f0c56c; }
.productStory--isles-of-memory .productStory__title { color:#fff; font-family:Georgia,serif; text-shadow:0 5px 26px rgba(0,0,0,.55); }
.productStory--isles-of-memory .productStory__lead { grid-column:1; color:rgba(255,255,255,.76); text-shadow:0 2px 18px rgba(0,0,0,.75); }
.productStory--isles-of-memory .productStory__moments { margin-top:330px; gap:12px; border:0; overflow:visible; background:transparent; }
.productStory--isles-of-memory .productStory__moment { min-height:240px; border:1px solid rgba(240,197,108,.22); border-radius:4px; background:rgba(15,24,29,.82); backdrop-filter:blur(12px); }
.productStory--isles-of-memory .productStory__moment > span { color:#2a1d10; border-radius:2px; background:#f0c56c; }
.productStory--isles-of-memory .productStory__moment h3 { color:#fff; font-family:Georgia,serif; }
.productStory--isles-of-memory .productStory__moment p { color:rgba(255,255,255,.64); }
.productStory--isles-of-memory .productStory__feature { border-radius:0; border:1px solid rgba(240,197,108,.25); background:#18262c; }
.productStory--isles-of-memory .productStory__feature > div { background:linear-gradient(145deg,#17252b,#5f3e20); }

/* SquadFlow — tableau tactique dessiné sur un terrain. */
.productStory--squadflow {
  color:#fff;
  border:8px solid #f4f7f5;
  border-radius:20px;
  background:
    linear-gradient(90deg,transparent 49.75%,rgba(255,255,255,.24) 49.75% 50.25%,transparent 50.25%),
    radial-gradient(circle at 50% 50%,transparent 0 95px,rgba(255,255,255,.24) 96px 99px,transparent 100px),
    repeating-linear-gradient(90deg,#147642 0 12.5%,#1a884c 12.5% 25%);
  box-shadow:0 34px 80px rgba(8,64,35,.28);
}
.productStory--squadflow .productStory__intro { position:relative; z-index:1; grid-template-columns:210px minmax(0,1fr); padding:36px; border-radius:16px; background:rgba(4,43,24,.76); backdrop-filter:blur(8px); }
.productStory--squadflow .productStory__kicker { color:#cfff63; }
.productStory--squadflow .productStory__title { color:#fff; }
.productStory--squadflow .productStory__lead { color:rgba(255,255,255,.72); }
.productStory--squadflow .productStory__moments { position:relative; z-index:1; gap:18px; border:0; overflow:visible; background:transparent; }
.productStory--squadflow .productStory__moment { min-height:250px; border:2px solid rgba(255,255,255,.26); border-radius:16px; background:rgba(4,43,24,.78); backdrop-filter:blur(8px); }
.productStory--squadflow .productStory__moment > span { color:#173b24; border:3px solid #fff; background:#d7ff66; box-shadow:0 10px 24px rgba(0,0,0,.22); }
.productStory--squadflow .productStory__moment h3 { color:#fff; }
.productStory--squadflow .productStory__moment p { color:rgba(255,255,255,.68); }
.productStory--squadflow .productStory__feature { position:relative; z-index:1; border:2px solid rgba(255,255,255,.26); border-radius:16px; background:#07351d; }
.productStory--squadflow .productStory__feature figure { background:#147642; }
.productStory--squadflow .productStory__feature > div { background:#07351d; }

@media (max-width:900px) {
  .productStory[class*="productStory--"] { margin-top:72px; padding:38px 24px !important; border-radius:28px; }
  .productStory[class*="productStory--"] .productStory__intro { grid-template-columns:1fr; padding-left:0; }
  .productStory[class*="productStory--"] .productStory__lead { grid-column:1; }
  .productStory[class*="productStory--"] .productStory__moments { grid-template-columns:1fr; grid-template-rows:auto; margin-top:48px; }
  .productStory[class*="productStory--"] .productStory__moment,
  .productStory--babytodo .productStory__moment,
  .productStory--koptime .productStory__moment,
  .productStory--evidocket .productStory__moment { grid-template-columns:54px 1fr; gap:15px; margin-left:0; }
  .productStory[class*="productStory--"] .productStory__moment p { grid-column:1 / -1; }
  .productStory--famiora .productStory__moment:first-child { grid-row:auto; }
  .productStory--petstodo .productStory__moment:nth-child(2) { transform:none; }
  .productStory[class*="productStory--"] .productStory__feature { grid-template-columns:1fr; }
  .productStory[class*="productStory--"] .productStory__feature figure,
  .productStory[class*="productStory--"] .productStory__feature > div { order:initial; }
  .productStory--isles-of-memory { min-height:0; background-position:55% top; }
  .productStory--isles-of-memory .productStory__moments { margin-top:240px; }
}

/* ========================================================================== */
/* V2 — une composition commerciale réellement propre à chaque application.   */
/* ========================================================================== */
.storyDeck { position:relative; z-index:2; }
.storyDeck h2 { margin:0; font-size:clamp(2.7rem,5.8vw,6.4rem); line-height:.92; letter-spacing:-.065em; }
.storyDeck p { line-height:1.7; }
.storyDeck figure { margin:0; }
.storyDeck img { display:block; width:100%; height:100%; object-fit:cover; }
.storyMoment { min-width:0; }
.storyMoment__number { font-weight:950; letter-spacing:.06em; }
.storyMoment h3 { margin:0 0 9px; font-size:1.22rem; line-height:1.18; letter-spacing:-.025em; }
.storyMoment p { margin:0; font-size:.95rem; }

/* Maurage : affiche de match et chronologie club. */
.storyDeck--matchday { display:grid; grid-template-columns:1.05fr .95fr; gap:28px; }
.matchday__headline { padding:26px 0 10px; }
.matchday__headline > span { color:#ffd43b; font-size:.75rem; font-weight:900; letter-spacing:.15em; text-transform:uppercase; }
.matchday__headline h2 { margin-top:18px; color:#fff; text-transform:uppercase; }
.matchday__headline p { max-width:650px; color:rgba(255,255,255,.72); font-size:1.08rem; }
.matchday__poster { grid-row:1 / 3; grid-column:2; position:relative; min-height:720px; overflow:hidden; border:1px solid rgba(255,212,59,.35); }
.matchday__poster img { min-height:720px; }
.matchday__poster figcaption { position:absolute; inset:auto 0 0; padding:28px; color:#061a3c; background:#ffd43b; font-size:1.25rem; font-weight:900; }
.matchday__timeline { display:grid; gap:1px; background:rgba(255,212,59,.28); }
.matchday__timeline .storyMoment { display:grid; grid-template-columns:54px 1fr; gap:18px; padding:24px; color:#fff; background:#081f48; }
.matchday__timeline .storyMoment__number { color:#ffd43b; }
.matchday__timeline .storyMoment p { color:rgba(255,255,255,.64); }
.matchday__actions { grid-column:1 / -1; display:flex; justify-content:flex-start; }

/* PetsToDo : carnet de soins avec profil et plan vertical. */
.storyDeck--carebook { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr); gap:58px; align-items:start; }
.carebook__profile { position:sticky; top:110px; padding:28px; border-radius:42px; color:#fff; background:linear-gradient(160deg,#34235d,#6547ae); box-shadow:0 28px 65px rgba(55,35,100,.24); }
.carebook__profile > p { margin:0 0 18px; color:#b9ffd9; font-size:.78rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.carebook__profile figure { height:320px; overflow:hidden; border-radius:30px; background:#fff; }
.carebook__profile strong { display:block; margin:25px 0; font-size:1.5rem; line-height:1.25; }
.carebook__content h2 { color:#2b2048; font-family:ui-rounded,"SF Pro Rounded",Inter,sans-serif; }
.carebook__lead { color:#655b77; font-size:1.12rem; }
.carebook__plan { position:relative; display:grid; gap:22px; margin-top:50px; }
.carebook__plan::before { content:""; position:absolute; left:29px; top:26px; bottom:26px; width:3px; background:#d8cdf2; }
.carebook__plan .storyMoment { position:relative; display:grid; grid-template-columns:60px 1fr; gap:22px; padding:22px 25px; border:1px solid #e1d9f3; border-radius:28px; background:#fff; box-shadow:0 15px 36px rgba(71,48,119,.08); }
.carebook__plan .storyMoment__number { z-index:1; display:grid; place-items:center; height:60px; color:#fff; border:8px solid #f8f5ff; border-radius:50%; background:#5c42a2; }
.carebook__plan .storyMoment p { color:#70677f; }

/* BabyToDo : carnet doux avec journal quotidien. */
.storyDeck--babyjournal { display:grid; grid-template-columns:1.08fr .92fr; gap:30px; }
.babyjournal__cover { grid-column:1 / -1; max-width:900px; margin:auto; text-align:center; }
.babyjournal__cover > p:first-child { color:#a64f7b; font-size:.78rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.babyjournal__cover h2 { color:#51223e; font-family:ui-rounded,"SF Pro Rounded",Inter,sans-serif; }
.babyjournal__cover > p:not(:first-child) { max-width:730px; margin:22px auto; color:#72576a; font-size:1.08rem; }
.babyjournal__cover .productStory__stores { justify-content:center; }
.babyjournal__features { grid-column:1 / -1; display:flex; flex-wrap:wrap; justify-content:center; gap:10px; padding:16px 22px; border:1px solid #f0d7df; border-radius:26px; background:rgba(255,255,255,.68); }
.babyjournal__features span { padding:8px 13px; color:#7d4659; border:1px solid #f0ccd6; border-radius:999px; background:#fff; font-size:.82rem; font-weight:850; }
.babyjournal__day { position:relative; display:grid; gap:18px; padding:38px; border-radius:38px; background:#fff; box-shadow:0 24px 60px rgba(116,62,92,.12); }
.babyjournal__label { color:#b45685; font-size:.74rem; font-weight:950; letter-spacing:.14em; }
.babyjournal__day .storyMoment { display:grid; grid-template-columns:52px 1fr; gap:18px; padding-bottom:20px; border-bottom:1px solid #f1dbe6; }
.babyjournal__day .storyMoment:last-child { border-bottom:0; }
.babyjournal__day .storyMoment__number { display:grid; place-items:center; height:52px; color:#fff; border-radius:18px; background:#bd608c; }
.babyjournal__day .storyMoment p { color:#785f6e; }
.babyjournal__photo { min-height:560px; overflow:hidden; border-radius:38px; background:#54243f; }
.babyjournal__photo img { height:450px; object-position:center; }
.babyjournal__photo figcaption { padding:28px; color:#fff; font-size:1.25rem; font-weight:800; }

/* Famiora : tableau familial en bento. */
.storyDeck--familyboard { display:grid; grid-template-columns:.9fr 1.1fr; gap:20px; }
.familyboard__intro { grid-row:1 / 3; padding:44px; border-radius:32px; color:#fff; background:linear-gradient(155deg,#07524d,#16a68f); }
.familyboard__intro > p:first-child { color:#caffed; font-size:.76rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.familyboard__intro h2 { font-size:clamp(2.8rem,5vw,5.2rem); }
.familyboard__intro > p:not(:first-child) { color:rgba(255,255,255,.74); }
.familyboard__intro .btn { margin-top:18px; }
.familyboard__screen { min-height:360px; padding:20px; overflow:hidden; border-radius:32px; background:#d9fff1; }
.familyboard__screen img { object-fit:contain; }
.familyboard__tiles { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.familyboard__tiles .storyMoment { padding:22px; border-radius:22px; background:#fff; box-shadow:0 12px 30px rgba(9,111,94,.09); }
.familyboard__tiles .storyMoment__number { color:#0a8a75; }
.familyboard__tiles .storyMoment p { color:#58706a; }
.familyboard__promise { grid-column:1 / -1; margin:0; padding:22px 28px; border-left:6px solid #19aa91; color:#0a4d46; background:#e7fbf5; font-size:1.18rem; font-weight:850; }

/* KopTime : tableau de score et lignes de joueurs. */
.storyDeck--scoreboard { color:#d9ffe8; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }
.scoreboard__top { display:grid; grid-template-columns:150px 1fr 150px; align-items:center; gap:24px; padding:26px; border:1px solid rgba(103,244,157,.3); background:#04180e; text-align:center; }
.scoreboard__top > span { padding:18px 10px; color:#061b10; background:#68f49d; font-size:1.8rem; font-weight:950; }
.scoreboard__top p { margin:0 0 10px; color:#68f49d; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; }
.scoreboard__top h2 { color:#fff; font-size:clamp(2.5rem,4.8vw,5.4rem); }
.scoreboard__lead { max-width:850px; margin:28px auto; color:rgba(255,255,255,.66); text-align:center; }
.scoreboard__players { display:grid; gap:8px; }
.scoreboard__players .storyMoment { display:grid; grid-template-columns:90px 1fr 160px; gap:20px; align-items:center; padding:20px 24px; border:1px solid rgba(103,244,157,.18); background:rgba(3,24,14,.78); }
.scoreboard__players .storyMoment__number { color:#68f49d; font-size:1.7rem; }
.scoreboard__players .storyMoment p { color:rgba(255,255,255,.58); }
.scoreboard__report { display:grid; grid-template-columns:1fr 1fr; margin-top:25px; border:1px solid rgba(103,244,157,.25); background:#07351e; }
.scoreboard__report figure { min-height:390px; padding:25px; background:#fff; }
.scoreboard__report img { object-fit:contain; }
.scoreboard__report > div { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:26px; padding:44px; }
.scoreboard__report strong { color:#fff; font-size:2rem; line-height:1.1; }

/* Evidocket : dossier papier avec pièces numérotées. */
.storyDeck--casefile { position:relative; padding:54px 44px 44px; border:1px solid #c9dce1; border-radius:0 22px 22px; background:#fdfefe; box-shadow:0 30px 75px rgba(12,64,81,.16); }
.casefile__tab { position:absolute; left:-1px; top:-42px; padding:13px 30px; color:#fff; border-radius:14px 14px 0 0; background:#14627a; font-size:.74rem; font-weight:900; letter-spacing:.12em; }
.casefile__header { display:grid; grid-template-columns:1.15fr .85fr; gap:50px; padding-bottom:34px; border-bottom:3px solid #173d4a; }
.casefile__header > * { min-width:0; }
.casefile__header > div > p { margin:0 0 10px; color:#1685a3; font-weight:900; text-transform:uppercase; }
.casefile__header h2 { color:#103946; }
.casefile__header > p { color:#5a7078; }
.casefile__evidence { display:grid; }
.casefile__evidence .storyMoment { display:grid; grid-template-columns:80px .7fr 1.3fr; gap:25px; align-items:center; padding:25px 0; border-bottom:1px solid #dce8eb; }
.casefile__evidence .storyMoment__number { color:#16748d; font-size:1.8rem; }
.casefile__evidence .storyMoment p { color:#647980; }
.casefile__proof { display:grid; grid-template-columns:.9fr 1.1fr; margin-top:35px; background:#0c4051; }
.casefile__proof figure { min-height:420px; padding:25px; background:#edf5f7; }
.casefile__proof img { object-fit:contain; }
.casefile__proof > div { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:45px; color:#fff; }
.casefile__proof > div p { font-size:1.8rem; font-weight:850; line-height:1.15; }

/* DocSwitch : fenêtre de travail avec barre latérale et aperçu. */
.storyDeck--workspace { display:grid; grid-template-columns:190px 1fr .72fr; overflow:hidden; border:1px solid #d7d6eb; border-radius:24px; background:#f7f7fc; box-shadow:0 32px 75px rgba(48,42,112,.16); }
.workspace__bar { grid-column:1 / -1; display:flex; align-items:center; gap:8px; height:52px; padding:0 18px; color:#625d76; border-bottom:1px solid #deddec; background:#fff; }
.workspace__bar i { width:12px; height:12px; border-radius:50%; background:#ff6868; }
.workspace__bar i:nth-child(2) { background:#ffc956; }
.workspace__bar i:nth-child(3) { background:#5ad27b; }
.workspace__bar span { margin-left:12px; font-size:.82rem; font-weight:800; }
.workspace__sidebar { padding:25px 18px; color:#fff; background:#25205c; }
.workspace__sidebar p { color:#9fefdc; font-size:.72rem; font-weight:900; text-transform:uppercase; }
.workspace__sidebar strong { display:block; margin:8px 0; padding:11px; border-radius:10px; background:rgba(255,255,255,.08); }
.workspace__canvas { padding:45px; background:#fff; }
.workspace__canvas h2 { color:#241f5b; font-size:clamp(2.6rem,4.4vw,5rem); }
.workspace__canvas > p { color:#68647c; }
.workspace__flow { display:grid; gap:12px; margin-top:30px; }
.workspace__flow .storyMoment { display:grid; grid-template-columns:42px 1fr; gap:15px; padding:15px; border:1px solid #e1e0ef; border-radius:14px; }
.workspace__flow .storyMoment__number { color:#5c52c7; }
.workspace__flow .storyMoment p { color:#716d82; }
.workspace__preview { display:flex; flex-direction:column; padding:30px; color:#fff; background:linear-gradient(155deg,#3c3397,#6d61dd); }
.workspace__preview img { flex:1; min-height:300px; object-fit:contain; padding:15px; border-radius:16px; background:#fff; }
.workspace__preview figcaption { margin:22px 0; font-size:1.25rem; font-weight:850; }

/* Pocket Party : borne d’arcade néon. */
.storyDeck--arcade { color:#fff; }
.arcade__marquee { display:grid; grid-template-columns:130px 1fr 130px; align-items:center; gap:25px; padding:25px; border:2px solid #ff64df; background:#160625; box-shadow:0 0 38px rgba(255,100,223,.25); text-align:center; }
.arcade__marquee > span { color:#6ff1ff; font-family:ui-monospace,monospace; font-weight:950; }
.arcade__marquee p { margin:0; color:#ff64df; font-size:.75rem; font-weight:900; letter-spacing:.15em; text-transform:uppercase; }
.arcade__marquee h2 { text-shadow:0 0 28px rgba(255,100,223,.42); }
.arcade__screen { display:grid; grid-template-columns:1.1fr .9fr; align-items:center; gap:40px; padding:30px; border-inline:2px solid #6ff1ff; background:#0f071b; }
.arcade__screen figure { min-height:420px; overflow:hidden; border-radius:16px; box-shadow:0 0 28px rgba(111,241,255,.20); }
.arcade__screen p { font-size:1.25rem; color:rgba(255,255,255,.7); }
.arcade__games { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; padding:24px; border:2px solid #ff64df; background:#170826; }
.arcade__games .storyMoment { padding:22px; border:1px solid rgba(111,241,255,.32); background:rgba(91,36,147,.28); }
.arcade__games .storyMoment__number { color:#ff64df; }
.arcade__games .storyMoment p { color:rgba(255,255,255,.60); }
.arcade__footer { display:flex; align-items:center; justify-content:space-between; gap:25px; padding:28px; background:#6f25a8; }
.arcade__footer strong { max-width:720px; font-size:1.4rem; }

/* Isles of Memory : couverture d’aventure et chapitres. */
.storyDeck--quest { min-height:960px; display:grid; grid-template-columns:1fr .8fr; align-items:start; gap:35px; }
.quest__title { padding:32px; background:rgba(11,20,24,.76); backdrop-filter:blur(8px); }
.quest__title > p:first-child { color:#f0c56c; font-size:.76rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.quest__title h2 { color:#fff; font-family:Georgia,serif; text-shadow:0 4px 24px #000; }
.quest__title > p:not(:first-child) { color:rgba(255,255,255,.75); }
.quest__world { position:relative; min-height:620px; overflow:hidden; border:1px solid rgba(240,197,108,.35); }
.quest__world img { min-height:620px; }
.quest__world figcaption { position:absolute; inset:auto 0 0; padding:25px; color:#f8e7c3; background:linear-gradient(transparent,rgba(8,13,15,.95)); font-family:Georgia,serif; font-size:1.25rem; }
.quest__chapters { grid-column:1 / -1; display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.quest__chapters .storyMoment { min-height:230px; padding:25px; border:1px solid rgba(240,197,108,.25); background:rgba(13,23,27,.86); }
.quest__chapters .storyMoment__number { color:#f0c56c; }
.quest__chapters .storyMoment h3 { color:#fff; font-family:Georgia,serif; }
.quest__chapters .storyMoment p { color:rgba(255,255,255,.62); }

/* SquadFlow : véritable tableau tactique. */
.storyDeck--tactics { display:grid; grid-template-columns:.8fr 1.2fr; gap:24px; color:#fff; }
.tactics__brief { padding:34px; border:2px solid rgba(255,255,255,.28); background:rgba(3,43,23,.82); backdrop-filter:blur(8px); }
.tactics__brief > p:first-child { color:#d7ff66; font-size:.75rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.tactics__brief h2 { font-size:clamp(2.6rem,4.6vw,5.2rem); }
.tactics__brief > p:not(:first-child) { color:rgba(255,255,255,.72); }
.tactics__pitch { position:relative; min-height:640px; border:4px solid rgba(255,255,255,.72); background:repeating-linear-gradient(90deg,#147642 0 12.5%,#1a884c 12.5% 25%); }
.tactics__pitch::before { content:""; position:absolute; left:50%; top:0; bottom:0; width:3px; background:rgba(255,255,255,.7); }
.pitch__circle { position:absolute; left:50%; top:50%; width:150px; height:150px; border:3px solid rgba(255,255,255,.7); border-radius:50%; transform:translate(-50%,-50%); }
.tactics__pitch .player { position:absolute; z-index:2; display:grid; place-items:center; width:54px; height:54px; border:4px solid #fff; border-radius:50%; color:#153b24; background:#d7ff66; font-style:normal; font-weight:950; box-shadow:0 8px 18px rgba(0,0,0,.25); }
.tactics__pitch .p1 { left:12%; top:20%; }.tactics__pitch .p2 { left:36%; top:58%; }.tactics__pitch .p3 { right:32%; top:30%; }.tactics__pitch .p4 { right:12%; bottom:17%; }
.tactics__pitch figure { position:absolute; right:20px; bottom:20px; width:120px; height:120px; padding:15px; border-radius:18px; background:rgba(3,43,23,.86); }
.tactics__pitch img { object-fit:contain; }
.tactics__rotation { grid-column:1 / -1; display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.tactics__rotation .storyMoment { padding:24px; border:2px solid rgba(255,255,255,.24); background:rgba(3,43,23,.84); }
.tactics__rotation .storyMoment__number { color:#d7ff66; }
.tactics__rotation .storyMoment p { color:rgba(255,255,255,.62); }
.tactics__promise { grid-column:1 / -1; margin:0; padding:22px; color:#153b24; background:#d7ff66; font-size:1.3rem; font-weight:900; }

/* Assistance et confidentialité : vraies sections, toujours visibles en bas. */
.productLegal {
  position:relative;
  display:grid;
  grid-template-columns:1fr;
  gap:22px;
  margin:88px 0 0;
  padding-top:82px;
}
.productLegal::before {
  content:attr(data-heading);
  position:absolute;
  left:0;
  top:0;
  color:var(--app-deep,#101d39);
  font-size:clamp(2.15rem,4.5vw,4.4rem);
  font-weight:900;
  line-height:1;
  letter-spacing:-.055em;
}
.productLegal__panel,
body.appTheme .productLegal__panel {
  width:100%;
  margin:0 !important;
  padding:clamp(28px,4vw,46px) !important;
  color:#152039 !important;
  border:1px solid #dfe5ef !important;
  border-radius:26px !important;
  background:#fff !important;
  box-shadow:0 18px 45px rgba(21,32,57,.09) !important;
}
.productLegal__panel .section__head { max-width:none !important; }
.productLegal__panel .section__title,
.productLegal__panel > h2 {
  margin:0 0 14px !important;
  color:#152039 !important;
  font-size:clamp(1.75rem,3.2vw,3rem) !important;
  line-height:1.05 !important;
  letter-spacing:-.04em !important;
}
.productLegal__panel .section__subtitle,
.productLegal__panel p,
.productLegal__panel li,
.productLegal__panel .card__desc,
.productLegal__panel .contactCard__value { color:#5f6b7d !important; }
.productLegal__panel .contactCard,
.productLegal__panel .card,
.productLegal__panel .privacyPolicy,
.productLegal__panel .infoBox {
  color:#152039 !important;
  border-color:#e2e8f1 !important;
  background:#f8fafc !important;
  box-shadow:none !important;
}
.productLegal__panel a:not(.btn) { color:#1c5fd4 !important; text-decoration:underline; text-underline-offset:3px; }
.productLegal__panel .btn { color:#fff !important; border-color:var(--app-deep,#173e9b) !important; background:var(--app-deep,#173e9b) !important; }
.productLegal__fallback { display:block; }

@media (max-width:980px) {
  .storyDeck--matchday,
  .storyDeck--carebook,
  .storyDeck--babyjournal,
  .storyDeck--familyboard,
  .storyDeck--tactics { grid-template-columns:1fr; }
  .matchday__poster { grid-row:auto; grid-column:auto; min-height:480px; }
  .matchday__poster img { min-height:480px; }
  .carebook__profile { position:relative; top:auto; }
  .familyboard__intro { grid-row:auto; }
  .familyboard__tiles { grid-template-columns:1fr; }
  .scoreboard__top { grid-template-columns:90px 1fr 90px; }
  .scoreboard__report,
  .casefile__header,
  .casefile__proof,
  .arcade__screen,
  .storyDeck--quest { grid-template-columns:1fr; }
  .storyDeck--workspace { grid-template-columns:150px 1fr; }
  .workspace__preview { grid-column:1 / -1; }
  .quest__chapters,
  .tactics__rotation { grid-template-columns:1fr; }
  .quest__world { min-height:480px; }
  .quest__world img { min-height:480px; }
  .tactics__pitch { min-height:520px; }
}

@media (max-width:680px) {
  .storyDeck h2 { font-size:clamp(2.35rem,13vw,4.3rem); }
  .productStory[class*="productStory--"] { padding:26px 18px !important; }
  .babyjournal__day,
  .familyboard__intro,
  .workspace__canvas,
  .casefile__proof > div { padding:26px; }
  .scoreboard__top,
  .arcade__marquee { grid-template-columns:1fr; }
  .scoreboard__top > span,
  .arcade__marquee > span { display:none; }
  .scoreboard__players .storyMoment,
  .casefile__evidence .storyMoment { grid-template-columns:54px 1fr; }
  .scoreboard__players .storyMoment p,
  .casefile__evidence .storyMoment p { grid-column:1 / -1; }
  .storyDeck--workspace { grid-template-columns:1fr; }
  .workspace__sidebar { display:flex; flex-wrap:wrap; gap:7px; }
  .workspace__sidebar p { width:100%; }
  .workspace__sidebar strong { margin:0; }
  .arcade__games { grid-template-columns:1fr; }
  .arcade__footer { align-items:flex-start; flex-direction:column; }
  .productLegal { padding-top:68px; }
}

/* Vitrines reconstruites : aucun ancien bloc de présentation n’est affiché. */
.freshHero { display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,76px); align-items:center; }
.freshHero__copy { position:relative; z-index:2; }
.freshHero__eyebrow { display:block; margin-bottom:22px; font-size:.74rem; font-weight:950; letter-spacing:.17em; text-transform:uppercase; }
.freshHero h1 { margin:0 0 28px; font-size:clamp(3.2rem,6.5vw,7.2rem); line-height:.88; letter-spacing:-.07em; }
.freshHero h1 em { color:var(--page-accent); font-style:normal; }
.freshHero p { max-width:680px; margin-bottom:28px; font-size:clamp(1.02rem,1.6vw,1.24rem); line-height:1.72; }
.freshHero figure { margin:0; }
.freshHero figure img { width:100%; height:100%; object-fit:cover; }
.freshHero figcaption { font-weight:800; }
.freshHero .productStory__stores { display:flex; flex-wrap:wrap; gap:10px; }
.storyActions { display:grid; gap:15px; justify-items:start; }
.storyTrust { display:flex; flex-wrap:wrap; gap:8px; }
.storyTrust span { padding:7px 11px; color:inherit; border:1px solid currentColor; border-radius:999px; font-size:.74rem; font-weight:850; opacity:.78; }
.humanMoment { display:grid; grid-template-columns:34px 1fr; gap:14px; align-items:start; padding:22px; border-radius:22px; }
.humanMoment > span { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; font-weight:900; }
.humanMoment h3 { margin:0 0 8px; font-size:clamp(1.05rem,1.8vw,1.35rem); line-height:1.2; }
.humanMoment p { margin:0; font-size:.95rem; line-height:1.55; }
.matchday__timeline .humanMoment { grid-column:1/-1; color:#fff; background:#0b2d65; }
.matchday__timeline .humanMoment > span { color:#0b2d65; background:#ffd21f; }
.carebook__content > .humanMoment { margin:28px 0 6px; color:#473665; border:1px solid #ddcff4; background:#f8f4ff; }
.carebook__content > .humanMoment > span { color:#fff; background:#7650bd; }
.babyjournal__day .humanMoment { color:#6b354e; background:#fff1f5; }
.babyjournal__day .humanMoment > span { color:#fff; background:#bf5f89; }
.familyboard__promise .humanMoment { color:#073c38; background:#d9fff0; }
.familyboard__promise .humanMoment > span { color:#fff; background:#087c70; }
.scoreboard__players .humanMoment { margin:20px 0; color:#fff; border:1px solid #424b51; border-radius:4px; background:#111619; }
.scoreboard__players .humanMoment > span { color:#111619; background:#ff8a32; }
.casefile__evidence .humanMoment { margin-top:24px; color:#123f4a; border-left:5px solid #17809b; border-radius:0; background:#edf6f8; }
.casefile__evidence .humanMoment > span { color:#fff; background:#17809b; }
.workspace__canvas > .humanMoment { margin:24px 0; color:#26334a; border-radius:8px; background:#edf2fb; }
.workspace__canvas > .humanMoment > span { color:#fff; background:#2865dc; }
.arcade__games .humanMoment { grid-column:1/-1; color:#fff; border:1px solid #57e7ff; border-radius:4px; background:#160d2c; box-shadow:6px 6px 0 #ff5ed0; }
.arcade__games .humanMoment > span { color:#160d2c; background:#57e7ff; }
.quest__chapters .humanMoment { grid-column:1/-1; color:#2c210e; background:#ffe1a2; }
.quest__chapters .humanMoment > span { color:#ffe1a2; background:#33230d; }
.tactics__rotation .humanMoment { grid-column:1/-1; color:#093d2b; border-radius:8px; background:#bdf6d2; }
.tactics__rotation .humanMoment > span { color:#bdf6d2; background:#0a5439; }
body.productPage--maurage > .header .brand__title,
body.productPage--famiora > .header .brand__title,
body.productPage--koptime > .header .brand__title,
body.productPage--pocketparty > .header .brand__title,
body.productPage--isles-of-memory > .header .brand__title,
body.productPage--squadflow > .header .brand__title { color:#fff !important; }
body.productPage--maurage > .header .brand__subtitle,
body.productPage--famiora > .header .brand__subtitle,
body.productPage--koptime > .header .brand__subtitle,
body.productPage--pocketparty > .header .brand__subtitle,
body.productPage--isles-of-memory > .header .brand__subtitle,
body.productPage--squadflow > .header .brand__subtitle { color:rgba(255,255,255,.66) !important; }

.freshHero--maurage { grid-template-columns:.85fr 1.15fr; }
.clubHero__visual { height:560px; overflow:hidden; border:1px solid rgba(255,255,255,.28); border-radius:28px; transform:rotate(1.7deg); box-shadow:0 30px 75px rgba(0,0,0,.34); }
.clubHero__visual figcaption { position:absolute; left:20px; right:20px; bottom:20px; padding:16px 18px; color:#fff; border:1px solid rgba(255,255,255,.25); border-radius:14px; background:rgba(5,20,48,.76); backdrop-filter:blur(14px); }
.clubHero__visual { position:relative; }

.freshHero--petstodo { grid-template-columns:.78fr 1.22fr; }
.petHero__portrait { position:relative; height:590px; overflow:hidden; border:12px solid #fff; border-radius:46% 46% 30px 30px; transform:rotate(-2deg); box-shadow:0 28px 70px rgba(66,45,103,.2); }
.petHero__portrait figcaption { position:absolute; left:18px; right:18px; bottom:18px; padding:15px; color:#49336e; border-radius:18px; background:rgba(255,255,255,.88); text-align:center; }
.petHero__check { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px; }
.petHero__check span { padding:8px 12px; border:1px solid #d8caef; border-radius:999px; color:#5d438d; background:#fff; font-weight:800; }

.freshHero--babytodo { grid-template-columns:1.05fr .95fr; }
.babyHero__chips { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 24px; }
.babyHero__chips span { padding:9px 13px; color:#8c4865; border:1px solid #edcbd5; border-radius:999px; background:#fff; font-weight:850; }
.babyHero__photo { position:relative; height:580px; overflow:hidden; border:12px solid #fff; border-radius:180px 180px 42px 42px; box-shadow:0 34px 80px rgba(111,59,82,.19); }
.babyHero__photo figcaption { position:absolute; left:22px; right:22px; bottom:22px; padding:18px; color:#6b354d; border-radius:24px; background:rgba(255,250,249,.91); }

.freshHero--famiora { grid-template-columns:.86fr 1.14fr; }
.freshHero--famiora h1,.freshHero--famiora p,.freshHero--famiora .freshHero__eyebrow { color:#fff; }
.familyHero__board { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.familyHero__board figure { grid-column:1/-1; height:370px; overflow:hidden; border-radius:30px; background:#fff; box-shadow:0 24px 55px rgba(1,52,47,.28); }
.familyHero__board > div { padding:18px; color:#093f3b; border-radius:20px; background:#dcfff1; }
.familyHero__board strong,.familyHero__board span { display:block; }
.familyHero__board strong { font-size:1.08rem; }
.familyHero__board span { margin-top:5px; opacity:.72; }
.familyHero__board > div:last-child { grid-column:1/-1; }

.freshHero--koptime { grid-template-columns:.62fr 1.05fr .88fr; }
.scoreHero__clock { align-self:start; padding:24px; border:1px solid #3c464d; border-radius:18px; background:#0b0f12; font-family:ui-monospace,SFMono-Regular,monospace; text-align:center; }
.scoreHero__clock span,.scoreHero__clock b { display:block; color:#ff8a32; font-size:2.5rem; }
.scoreHero__clock small { display:block; margin:9px 0; color:#9ba5ac; letter-spacing:.13em; }
.scoreHero__report { overflow:hidden; border:1px solid #465159; border-radius:18px; background:#0c1013; }
.scoreHero__report img { height:420px; object-fit:contain; }
.scoreHero__report figcaption { padding:18px; color:#ccd2d6; }

.freshHero--evidocket { grid-template-columns:.48fr 1.1fr .92fr; }
.caseHero__stamp { align-self:start; padding:24px 12px; color:#145e72; border:4px double #145e72; transform:rotate(-6deg); font-weight:900; letter-spacing:.12em; text-align:center; }
.caseHero__stamp strong { font-size:2.3rem; }
.caseHero__scan { overflow:hidden; border:1px solid #bad0d5; border-radius:4px; background:#edf5f6; box-shadow:14px 16px 0 #d4e3e6; }
.caseHero__scan img { height:460px; object-fit:contain; }
.caseHero__scan figcaption { padding:16px; color:#155c70; text-align:center; }

.freshHero--docswitch { grid-template-columns:.25fr 1.05fr .8fr; }
.docHero__rail { display:flex; flex-direction:column; gap:8px; align-self:stretch; padding:22px 12px; border-right:1px solid #d4d9e2; }
.docHero__rail span { padding:12px 9px; color:#526073; border-radius:9px; background:#edf1f6; font:800 .78rem ui-monospace,SFMono-Regular,monospace; }
.docHero__preview { overflow:hidden; border:1px solid #d4dae3; border-radius:16px; background:#f6f8fb; }
.docHero__preview img { height:430px; object-fit:contain; }
.docHero__preview figcaption { padding:16px; color:#47556a; font-family:ui-monospace,SFMono-Regular,monospace; }

.freshHero--pocketparty { grid-template-columns:.32fr 1.05fr .95fr .32fr; }
.arcadeHero__player { align-self:start; padding:15px 8px; color:#66eaff; border:1px solid #66eaff; text-align:center; box-shadow:0 0 20px rgba(102,234,255,.28); }
.arcadeHero__player span,.arcadeHero__player b { display:block; }
.arcadeHero__player b { margin-top:8px; color:#ff6bd4; }
.arcadeHero__player--two { align-self:end; }
.arcadeHero__screen { overflow:hidden; border:2px solid #66eaff; border-radius:22px; background:#080513; box-shadow:10px 10px 0 #ff5ed0; }
.arcadeHero__screen img { height:430px; }
.arcadeHero__screen figcaption { padding:15px; color:#66eaff; text-align:center; letter-spacing:.14em; }

.freshHero--isles-of-memory { display:flex; align-items:flex-end; min-height:760px; }
.questHero__background { position:absolute; inset:0; z-index:-2; }
.questHero__background::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,9,17,.97),rgba(5,9,17,.68) 50%,rgba(5,9,17,.12)),linear-gradient(0deg,rgba(5,9,17,.82),transparent 58%); }
.questHero__copy { max-width:820px; }
.questHero__seal { position:absolute; right:5%; bottom:7%; display:grid; place-items:center; width:150px; height:150px; color:#5a3e0e; border:3px double #e3b657; border-radius:50%; background:#ffd781; font:900 4.4rem/1 Georgia,serif; transform:rotate(7deg); }
.questHero__seal small { display:block; font:900 .7rem/1.2 Inter,sans-serif; letter-spacing:.12em; }

.freshHero--squadflow { grid-template-columns:.86fr 1.14fr; }
.tacticHero__board { position:relative; grid-row:1; min-height:520px; border:3px solid rgba(255,255,255,.35); border-radius:180px; background:repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 12%,transparent 12% 24%); }
.tacticHero__board::before,.tacticHero__board::after { content:""; position:absolute; left:50%; transform:translateX(-50%); }
.tacticHero__board::before { top:0; bottom:0; width:2px; background:rgba(255,255,255,.28); }
.tacticHero__board::after { top:50%; width:120px; height:120px; border:2px solid rgba(255,255,255,.28); border-radius:50%; transform:translate(-50%,-50%); }
.tacticHero__board i { position:absolute; z-index:1; display:grid; place-items:center; width:54px; height:54px; color:#063723; border-radius:50%; background:#9ef3bd; font-style:normal; font-weight:950; }
.tacticHero__board i:nth-child(1){left:12%;top:45%}.tacticHero__board i:nth-child(2){left:38%;top:16%}.tacticHero__board i:nth-child(3){right:24%;bottom:19%}.tacticHero__board i:nth-child(4){right:8%;top:38%}
.tacticHero__note { grid-column:2; padding:17px 20px; color:#083b29; border-radius:15px; background:#adf2c7; }
.tacticHero__note strong,.tacticHero__note span { display:block; }

/* Ruptures graphiques volontaires : aucune page ne reprend la même silhouette. */
body.productPage--petstodo > .header { margin-top:32px; border:0; border-bottom:1px solid #d8cdbf; border-radius:0; box-shadow:none; background:transparent; }
body.productPage--petstodo main > .freshHero { min-height:780px; border:0; border-radius:0; box-shadow:none; background:linear-gradient(90deg,#fbf8f1 0 48%,#e9ddff 48%); }
.freshHero--petstodo h1 { color:#2d2340; font:700 clamp(3.4rem,6.1vw,6.3rem)/.98 Georgia,"Times New Roman",serif; letter-spacing:-.045em; }
.freshHero--petstodo h1 em { color:#2d2340; text-decoration:underline; text-decoration-color:#a583e1; text-decoration-thickness:.12em; text-underline-offset:.1em; }

body.productPage--babytodo > .header { width:min(760px,calc(100% - 32px)); justify-content:center; border-color:#efd9df; border-radius:999px; }
body.productPage--babytodo > .header .nav { position:absolute; left:50%; top:calc(100% + 12px); transform:translateX(-50%); padding:8px 16px; border:1px solid #efd9df; border-radius:999px; background:rgba(255,255,255,.92); }
body.productPage--babytodo main > .freshHero { margin-top:92px; border-radius:220px 220px 54px 54px; }
.freshHero--babytodo h1 { color:#5a2941; font:850 clamp(3.3rem,5.8vw,5.8rem)/.95 ui-rounded,"SF Pro Rounded",Inter,sans-serif; letter-spacing:-.055em; }
.freshHero--babytodo h1 em { color:#b95c84; }

@media (min-width:981px) {
  body.productPage--famiora { padding-left:260px; }
  body.productPage--famiora > .header { position:fixed; left:22px; top:22px; bottom:22px; z-index:30; width:215px; margin:0; padding:30px 22px; align-items:flex-start; flex-direction:column; border-radius:30px; }
  body.productPage--famiora > .header .brand { align-items:flex-start; flex-direction:column; }
  body.productPage--famiora > .header .nav { display:flex; width:100%; margin-top:35px; align-items:flex-start; flex-direction:column; gap:6px; }
  body.productPage--famiora > .header .nav a { width:100%; padding:12px 10px; border-radius:12px; background:rgba(255,255,255,.06); }
  body.productPage--famiora > .header .language-switcher { margin-top:auto; }
  body.productPage--famiora main.container { width:calc(100% - 36px); max-width:none; }
}
body.productPage--famiora main > .freshHero { min-height:850px; border-radius:0; box-shadow:none; }
.freshHero--famiora h1 { font-size:clamp(3rem,5.2vw,5.5rem); line-height:.95; }
.freshHero--famiora h1 em { display:inline-block; color:#c8ffeb; font-size:.82em; }

body.productPage--koptime > .header { border-radius:5px; box-shadow:none; }
body.productPage--koptime main > .freshHero { border:1px solid #485158; border-radius:5px; box-shadow:18px 18px 0 #ff7c28; }
.freshHero--koptime h1 { font:900 clamp(3.2rem,5.7vw,5.9rem)/.9 ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:-.075em; text-transform:uppercase; }
.freshHero--koptime h1 em { color:#ff8a32; }

body.productPage--evidocket > .header { margin-bottom:74px; border-radius:4px; box-shadow:9px 11px 0 #cfdee2; }
body.productPage--evidocket main > .freshHero { min-height:760px; margin-top:0; border-radius:0 4px 4px; box-shadow:16px 18px 0 #cfdee2; }
.freshHero--evidocket h1 { color:#123946; font:700 clamp(3.5rem,5.8vw,6.1rem)/.95 Georgia,"Times New Roman",serif; letter-spacing:-.045em; }
.freshHero--evidocket h1 em { color:#12758e; font-style:italic; }

body.productPage--docswitch > .header { margin-bottom:0; border-radius:18px 18px 0 0; box-shadow:none; }
body.productPage--docswitch main > .freshHero { margin-top:0; border-top:0; border-radius:0 0 18px 18px; box-shadow:0 35px 75px rgba(35,48,68,.18); }
.freshHero--docswitch h1 { color:#151d38; font:750 clamp(3rem,5.2vw,5.5rem)/1 ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:-.075em; }
.freshHero--docswitch h1 em { display:inline-block; color:#fff; padding:0 .13em; background:#2865dc; }

body.productPage--pocketparty > .header { max-width:860px; border-radius:999px; box-shadow:0 0 35px rgba(115,71,220,.28); }
body.productPage--pocketparty main > .freshHero { border-radius:28px; clip-path:polygon(3% 0,97% 0,100% 6%,100% 94%,97% 100%,3% 100%,0 94%,0 6%); }
.freshHero--pocketparty h1 { color:#fff; font:950 clamp(3.2rem,5.8vw,6.3rem)/.88 ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:-.08em; text-transform:uppercase; text-shadow:0 0 26px rgba(255,255,255,.12); }
.freshHero--pocketparty h1 em { color:#5cecff; text-shadow:0 0 24px rgba(92,236,255,.6); }

body.productPage--isles-of-memory > .header { position:absolute; left:50%; top:18px; z-index:40; width:min(1200px,calc(100% - 40px)); transform:translateX(-50%); border-color:rgba(255,255,255,.2); background:rgba(5,9,17,.3); backdrop-filter:blur(18px); box-shadow:none; }
body.productPage--isles-of-memory main.container { width:100%; max-width:none; padding:0; }
body.productPage--isles-of-memory main > .freshHero { min-height:100vh; margin:0; border-radius:0; }
.freshHero--isles-of-memory h1 { color:#fff; font:500 clamp(4rem,7vw,8.3rem)/.9 Georgia,"Times New Roman",serif; letter-spacing:-.055em; }
.freshHero--isles-of-memory h1 em { color:#ffd37b; font-style:italic; }
body.productPage--isles-of-memory .productStory,body.productPage--isles-of-memory .customAppCta,body.productPage--isles-of-memory .productLegal { width:min(1200px,calc(100% - 40px)); margin-left:auto; margin-right:auto; }

body.productPage--squadflow > .header { width:min(1080px,calc(100% - 40px)); border-radius:0; clip-path:polygon(0 0,97% 0,100% 50%,97% 100%,0 100%); }
body.productPage--squadflow main > .freshHero { border-radius:0; clip-path:polygon(0 0,96% 0,100% 6%,100% 100%,4% 100%,0 94%); }
.freshHero--squadflow h1 { color:#fff; font:900 clamp(3.4rem,5.8vw,6.4rem)/.9 Inter,sans-serif; letter-spacing:-.07em; text-transform:uppercase; }
.freshHero--squadflow h1 em { color:#a1f4c0; font-size:.82em; }

@media (max-width:980px) {
  .freshHero,.freshHero--maurage,.freshHero--petstodo,.freshHero--babytodo,.freshHero--famiora,.freshHero--koptime,.freshHero--evidocket,.freshHero--docswitch,.freshHero--pocketparty,.freshHero--squadflow { grid-template-columns:1fr; }
  .freshHero--koptime .scoreHero__clock,.freshHero--pocketparty .arcadeHero__player,.freshHero--evidocket .caseHero__stamp,.freshHero--docswitch .docHero__rail { display:none; }
  .tacticHero__note { grid-column:auto; }
  .clubHero__visual,.petHero__portrait,.babyHero__photo,.familyHero__board figure,.tacticHero__board { min-height:420px; height:420px; }
}

@media (max-width:680px) {
  .freshHero h1 { font-size:clamp(3rem,15vw,4.8rem); }
  .freshHero--isles-of-memory { min-height:650px; }
  .questHero__seal { display:none; }
  .clubHero__visual,.petHero__portrait,.babyHero__photo,.familyHero__board figure,.tacticHero__board { min-height:340px; height:340px; }
  .caseHero__scan img,.docHero__preview img,.arcadeHero__screen img,.scoreHero__report img { height:320px; }
}

html, body { overflow-x:hidden; }

/* --------------------------------------------------------------------------
   Identités complètes : le premier écran change réellement selon le produit.
   -------------------------------------------------------------------------- */
body.productPage { --page-accent:#3267e3; --page-ink:#121826; }
body.productPage > .header { margin-top:18px; border:1px solid rgba(18,24,38,.09); box-shadow:0 18px 45px rgba(23,33,58,.08); }
body.productPage main > .hero { position:relative; isolation:isolate; min-height:660px; margin-top:34px; padding:clamp(34px,5vw,76px); overflow:hidden; border:0; border-radius:46px; box-shadow:0 36px 95px rgba(28,38,64,.15); }
body.productPage main > .hero .hero__title { max-width:780px; font-size:clamp(3rem,6vw,6.8rem); line-height:.91; letter-spacing:-.065em; }
body.productPage main > .hero .hero__desc { max-width:720px; font-size:clamp(1rem,1.5vw,1.22rem); line-height:1.75; }
body.productPage main > .hero .hero__cta { gap:11px; }
body.productPage main > .hero .badge { backdrop-filter:blur(12px); }

/* Maurage : affiche de match, bleu nuit et jaune club. */
body.productPage--maurage { --page-accent:#ffd21f; background:#eef3fb; }
body.productPage--maurage > .header { color:#fff; background:#071d43; border-color:#173c75; }
body.productPage--maurage > .header a { color:#fff; }
body.productPage--maurage main > .hero { color:#fff; background:radial-gradient(circle at 85% 20%,rgba(30,113,221,.55),transparent 36%),linear-gradient(125deg,#06172f 0%,#0a2b62 58%,#1159b5 100%); }
body.productPage--maurage main > .hero::before { content:""; position:absolute; inset:0; z-index:-1; opacity:.15; background:repeating-linear-gradient(115deg,transparent 0 55px,#ffd31a 56px 58px,transparent 59px 110px); }
body.productPage--maurage main > .hero .hero__left { align-self:center; }
body.productPage--maurage main > .hero .hero__title,body.productPage--maurage main > .hero .hero__desc { color:#fff; }
body.productPage--maurage main > .hero .grad { color:#79c9ff; -webkit-text-fill-color:currentColor; background:none; }
body.productPage--maurage main > .hero .pill { color:#ffe25b; border-color:rgba(255,226,91,.35); background:rgba(255,211,26,.1); }
body.productPage--maurage main > .hero .hero__right { align-self:stretch; overflow:hidden; border:1px solid rgba(255,255,255,.25); border-radius:30px; transform:rotate(1.5deg); box-shadow:0 28px 70px rgba(0,0,0,.35); }
body.productPage--maurage main > .hero .hero__right img { width:100%; height:100%; min-height:520px; object-fit:cover; }

/* PetsToDo : carnet de soins chaleureux, violet et crème. */
body.productPage--petstodo { --page-accent:#7650bd; background:#fbf8f1; }
body.productPage--petstodo > .header { background:#fffdf8; border-color:#e3d9cf; }
body.productPage--petstodo main > .hero { grid-template-columns:.86fr 1.14fr; background:linear-gradient(135deg,#fffdfa 0 57%,#e9ddff 57% 100%); border:1px solid #e7ded4; }
body.productPage--petstodo main > .hero::after { content:"✦"; position:absolute; right:7%; top:8%; z-index:-1; color:rgba(101,67,163,.13); font-size:18rem; line-height:1; }
body.productPage--petstodo main > .hero .hero__title { color:#312344; font-family:Georgia,"Times New Roman",serif; letter-spacing:-.055em; }
body.productPage--petstodo main > .hero .grad { color:#7650bd; -webkit-text-fill-color:currentColor; background:none; }
body.productPage--petstodo main > .hero .pill { color:#664398; background:#efe7ff; }
body.productPage--petstodo main > .hero .previewCard { border:10px solid #fff; border-radius:42px; transform:rotate(2.5deg); box-shadow:0 34px 75px rgba(67,44,105,.24); }

/* BabyToDo : journal tendre, rose poudré, courbes souples. */
body.productPage--babytodo { --page-accent:#bf5f89; background:#fff9f6; }
body.productPage--babytodo > .header { background:rgba(255,255,255,.92); border-color:#f0d9df; }
body.productPage--babytodo main > .hero { grid-template-columns:1.04fr .96fr; background:radial-gradient(circle at 10% 15%,#fff 0 7%,transparent 7.2%),radial-gradient(circle at 92% 88%,#f3d6df 0 16%,transparent 16.2%),linear-gradient(145deg,#fff6f3,#f7e4ea); }
body.productPage--babytodo main > .hero::before { content:""; position:absolute; left:42%; top:-80px; z-index:-1; width:280px; height:280px; border:55px solid rgba(255,255,255,.45); border-radius:50%; }
body.productPage--babytodo main > .hero .hero__title { color:#58263e; font-family:ui-rounded,"SF Pro Rounded",Inter,sans-serif; }
body.productPage--babytodo main > .hero .grad { color:#bf5f89; -webkit-text-fill-color:currentColor; background:none; }
body.productPage--babytodo main > .hero .pill { color:#99506f; background:#fff; box-shadow:0 8px 25px rgba(130,72,97,.1); }
body.productPage--babytodo main > .hero .previewCard { border:10px solid #fff; border-radius:52px; transform:translateY(18px) rotate(-2deg); box-shadow:0 35px 80px rgba(111,59,82,.2); }

/* Famiora : tableau familial en tuiles vertes. */
body.productPage--famiora { --page-accent:#bff4df; background:#edf8f5; }
body.productPage--famiora > .header { background:#063f3d; border-color:#0c6861; }
body.productPage--famiora > .header,body.productPage--famiora > .header a { color:#fff; }
body.productPage--famiora main > .hero { background:linear-gradient(135deg,#064d49 0 60%,#bff4df 60%); }
body.productPage--famiora main > .hero::before,body.productPage--famiora main > .hero::after { content:""; position:absolute; z-index:-1; border-radius:32px; background:rgba(255,255,255,.09); }
body.productPage--famiora main > .hero::before { right:7%; top:9%; width:220px; height:150px; transform:rotate(7deg); }
body.productPage--famiora main > .hero::after { right:18%; bottom:4%; width:150px; height:110px; transform:rotate(-9deg); }
body.productPage--famiora main > .hero .hero__title,body.productPage--famiora main > .hero .hero__desc { color:#fff; }
body.productPage--famiora main > .hero .grad { color:#bff4df; -webkit-text-fill-color:currentColor; background:none; }
body.productPage--famiora main > .hero .pill { color:#bff4df; background:rgba(255,255,255,.11); }
body.productPage--famiora main > .hero .previewCard { border-radius:26px; box-shadow:0 28px 70px rgba(0,67,59,.3); }

/* KopTime : vrai tableau de bord terrain. */
body.productPage--koptime { --page-accent:#ff8a32; color:#f8f9fb; background:#111417; }
body.productPage--koptime > .header { color:#fff; background:#181d21; border-color:#323b42; }
body.productPage--koptime > .header a { color:#fff; }
body.productPage--koptime main > .hero { color:#fff; border:1px solid #30383e; background:linear-gradient(135deg,rgba(255,124,40,.13),transparent 38%),#161b1f; box-shadow:0 0 0 1px rgba(255,140,57,.1),0 36px 95px rgba(0,0,0,.45); }
body.productPage--koptime main > .hero::after { content:"90:00"; position:absolute; right:4%; bottom:-.18em; z-index:-1; color:rgba(255,135,42,.07); font:900 18rem/1 ui-monospace,SFMono-Regular,monospace; }
body.productPage--koptime main > .hero .hero__title,body.productPage--koptime main > .hero .hero__desc { color:#fff; }
body.productPage--koptime main > .hero .grad { color:#ff8a32; -webkit-text-fill-color:currentColor; background:none; }
body.productPage--koptime main > .hero .pill { color:#ffac6c; border-color:#694023; background:#2a211b; }
body.productPage--koptime main > .hero .salesMock { color:#fff; border:1px solid #465159; border-radius:14px; background:#0d1114; box-shadow:18px 18px 0 #ff7c28; }

/* Evidocket : dossier physique, typographie documentaire. */
body.productPage--evidocket { --page-accent:#17809b; background:#e8f0f2; }
body.productPage--evidocket > .header { background:#fdfefe; border-color:#b8d1d7; }
body.productPage--evidocket main > .hero { margin-top:76px; overflow:visible; border:1px solid #bfd3d8; border-radius:0 26px 26px; background:#fff; box-shadow:0 28px 70px rgba(18,69,82,.15); }
body.productPage--evidocket main > .hero::before { content:"DOSSIER CONFIDENTIEL"; position:absolute; left:-1px; top:-46px; padding:14px 25px; color:#fff; border-radius:14px 14px 0 0; background:#145e72; font-size:.73rem; font-weight:900; letter-spacing:.13em; }
body.productPage--evidocket main > .hero::after { content:""; position:absolute; inset:22px; z-index:-1; border:1px dashed #c9dadd; pointer-events:none; }
body.productPage--evidocket main > .hero .hero__title { color:#123b46; font-family:Georgia,"Times New Roman",serif; }
body.productPage--evidocket main > .hero .grad { color:#17809b; -webkit-text-fill-color:currentColor; background:none; }
body.productPage--evidocket main > .hero .previewCard { border-radius:4px; box-shadow:12px 15px 0 #dbe9ec; }

/* DocSwitch : fenêtre d’atelier documentaire. */
body.productPage--docswitch { --page-accent:#2865dc; background:#e9edf3; }
body.productPage--docswitch > .header { background:#f7f8fa; border-color:#cfd6df; }
body.productPage--docswitch main > .hero { padding-top:110px; border:1px solid #bcc5d1; border-radius:20px; background:linear-gradient(#f4f6f9 0 62px,#fff 62px); box-shadow:0 30px 70px rgba(35,48,68,.18); }
body.productPage--docswitch main > .hero::before { content:"●  ●  ●     DOCSWITCH / WORKSPACE"; position:absolute; left:28px; top:22px; color:#7b8594; font:800 .72rem/1.5 ui-monospace,SFMono-Regular,monospace; letter-spacing:.12em; }
body.productPage--docswitch main > .hero .hero__title { color:#172033; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:-.075em; }
body.productPage--docswitch main > .hero .grad { color:#2865dc; -webkit-text-fill-color:currentColor; background:none; }
body.productPage--docswitch main > .hero .previewCard { border:1px solid #d5dbe5; border-radius:16px; box-shadow:none; background:#f6f8fb; }

/* Pocket Party : borne d’arcade néon. */
body.productPage--pocketparty { --page-accent:#57e7ff; color:#fff; background:#110d22; }
body.productPage--pocketparty > .header { color:#fff; background:#1c1238; border-color:#53378a; }
body.productPage--pocketparty > .header a { color:#fff; }
body.productPage--pocketparty main > .hero { color:#fff; border:2px solid #774be2; background:radial-gradient(circle at 75% 25%,rgba(255,80,201,.26),transparent 28%),radial-gradient(circle at 20% 80%,rgba(56,215,255,.17),transparent 30%),#160c2c; box-shadow:0 0 45px rgba(122,76,226,.38); }
body.productPage--pocketparty main > .hero::before { content:""; position:absolute; inset:12px; z-index:-1; border:1px dashed rgba(137,224,255,.36); border-radius:36px; }
body.productPage--pocketparty main > .hero .hero__title,body.productPage--pocketparty main > .hero .hero__desc { color:#fff; }
body.productPage--pocketparty main > .hero .grad { color:#57e7ff; -webkit-text-fill-color:currentColor; background:none; text-shadow:0 0 28px rgba(87,231,255,.45); }
body.productPage--pocketparty main > .hero .pill { color:#ff8adf; background:rgba(255,111,217,.09); }
body.productPage--pocketparty main > .hero .pp-heroCard { border:2px solid #57e7ff; border-radius:24px; background:rgba(19,9,40,.82); box-shadow:16px 16px 0 #ff56ca; }

/* Isles of Memory : couverture d’aventure cinématographique. */
body.productPage--isles-of-memory { --page-accent:#ffc75f; color:#fff; background:#080d19; }
body.productPage--isles-of-memory > .header { color:#fff; background:#11192a; border-color:#344159; }
body.productPage--isles-of-memory > .header a { color:#fff; }
body.productPage--isles-of-memory main > .hero { min-height:760px; display:flex; align-items:flex-end; color:#fff; background:#0b1220; }
body.productPage--isles-of-memory main > .hero .hero__right { position:absolute; inset:0; z-index:-2; }
body.productPage--isles-of-memory main > .hero .hero__right::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,9,17,.96) 0%,rgba(5,9,17,.76) 42%,rgba(5,9,17,.1) 85%),linear-gradient(0deg,rgba(5,9,17,.8),transparent 55%); }
body.productPage--isles-of-memory main > .hero .memory-cover { width:100%; height:100%; object-fit:cover; }
body.productPage--isles-of-memory main > .hero .hero__left { max-width:760px; z-index:1; }
body.productPage--isles-of-memory main > .hero .hero__title,body.productPage--isles-of-memory main > .hero .hero__desc { color:#fff; }
body.productPage--isles-of-memory main > .hero .hero__title { font-family:Georgia,"Times New Roman",serif; letter-spacing:-.045em; }
body.productPage--isles-of-memory main > .hero .grad { color:#ffc75f; -webkit-text-fill-color:currentColor; background:none; }
body.productPage--isles-of-memory main > .hero .pill { color:#ffe2a4; background:rgba(13,20,34,.6); }

/* SquadFlow : tableau tactique de vestiaire. */
body.productPage--squadflow { --page-accent:#8df2b4; background:#e9f1ec; }
body.productPage--squadflow > .header { color:#fff; background:#0a3827; border-color:#1b644b; }
body.productPage--squadflow > .header a { color:#fff; }
body.productPage--squadflow main > .hero { color:#fff; background:linear-gradient(90deg,rgba(5,55,37,.96),rgba(9,83,58,.9)),repeating-linear-gradient(90deg,transparent 0 12.3%,rgba(255,255,255,.035) 12.5% 25%); }
body.productPage--squadflow main > .hero::before { content:""; position:absolute; right:7%; top:10%; z-index:-1; width:36%; height:80%; border:3px solid rgba(255,255,255,.18); border-radius:180px; }
body.productPage--squadflow main > .hero .hero__title,body.productPage--squadflow main > .hero .hero__desc { color:#fff; }
body.productPage--squadflow main > .hero .grad { color:#8df2b4; -webkit-text-fill-color:currentColor; background:none; }
body.productPage--squadflow main > .hero .pill { color:#b5ffcf; background:rgba(255,255,255,.09); }
body.productPage--squadflow main > .hero .salesMock { border:1px solid rgba(255,255,255,.25); border-radius:22px; background:rgba(2,34,22,.72); box-shadow:18px 18px 0 rgba(141,242,180,.34); }

@media (max-width:900px) {
  body.productPage main > .hero { min-height:auto; border-radius:30px; }
  body.productPage--petstodo main > .hero,
  body.productPage--babytodo main > .hero { grid-template-columns:1fr; }
  body.productPage--maurage main > .hero .hero__right img { min-height:360px; }
  body.productPage--isles-of-memory main > .hero { min-height:680px; }
}

@media (max-width:680px) {
  body.productPage > .header { margin:10px 10px 0; border-radius:22px; }
  body.productPage main > .hero { margin-top:20px; padding:32px 22px; border-radius:28px; }
  body.productPage main > .hero .hero__title { font-size:clamp(2.8rem,14vw,4.3rem); }
  body.productPage--evidocket main > .hero { margin-top:62px; overflow:visible; border-radius:0 24px 24px; }
  body.productPage--docswitch main > .hero { padding-top:86px; }
  body.productPage--isles-of-memory main > .hero { min-height:640px; }
  body.productPage--pocketparty main > .hero .pp-heroCard,
  body.productPage--koptime main > .hero .salesMock,
  body.productPage--squadflow main > .hero .salesMock { box-shadow:none; }
}
