:root {
  --navy: #08245b;
  --navy-2: #0f3577;
  --blue: #168bf5;
  --sky: #eaf7ff;
  --purple: #7d35df;
  --violet: #5c2bd8;
  --pink: #f5298d;
  --coral: #ff5b5d;
  --orange: #ff8a1f;
  --yellow: #ffc62f;
  --turquoise: #17c7c5;
  --mint: #baf3e6;
  --cream: #fff7df;
  --ink: #13223f;
  --muted: #64718a;
  --line: #dfe6f1;
  --white: #fff;
  --shadow: 0 18px 45px rgba(16, 37, 78, .10);
  --radius-xl: 34px;
  --radius-lg: 24px;
  --radius-md: 18px;
  --shell: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: #fff;
  line-height: 1.55;
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input { font: inherit; }
button { cursor: pointer; }
.shell { width: min(calc(100% - 40px), var(--shell)); margin: 0 auto; }
.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}
.skip-link {
  position: fixed; left: 16px; top: 10px; z-index: 9999;
  transform: translateY(-150%);
  padding: 10px 14px; border-radius: 10px;
  background: #fff; color: var(--navy);
  box-shadow: var(--shadow);
}
.skip-link:focus { transform: translateY(0); }

/* Header */
.site-header {
  position: relative;
  z-index: 30;
  background: #fff;
  box-shadow: 0 6px 24px rgba(17, 36, 77, .06);
}
.topbar {
  min-height: 86px;
  display: grid;
  grid-template-columns: auto minmax(280px, 520px) auto;
  align-items: center;
  gap: 28px;
}
.brand { display: inline-flex; align-items: center; gap: 12px; }
.brand img { width: 58px; height: 58px; object-fit: contain; }
.brand-copy { display: grid; line-height: 1.1; }
.brand-copy strong { font-size: 24px; color: var(--navy); letter-spacing: -.02em; }
.brand-copy small { margin-top: 7px; color: #66738c; font-size: 11px; font-weight: 700; letter-spacing: .02em; }
.site-search {
  display: flex;
  border: 1px solid #d8e2f0;
  border-radius: 999px;
  padding: 5px 7px 5px 18px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(25, 51, 91, .06);
}
.site-search input {
  width: 100%; border: 0; outline: 0; background: transparent;
  color: var(--ink); min-width: 0;
}
.site-search button {
  width: 42px; height: 42px; border: 0; border-radius: 50%;
  background: #f2f5fb; color: var(--navy); font-size: 25px;
}
.header-actions { display: flex; align-items: center; gap: 10px; justify-content: flex-end; }
.social {
  width: 38px; height: 38px; border-radius: 11px;
  display: grid; place-items: center;
  color: #fff; font-weight: 900; font-size: 18px;
  box-shadow: 0 8px 18px rgba(14, 39, 88, .12);
}
.instagram { background: linear-gradient(135deg, #ff3aa4, #7d35df); }
.facebook { background: #2874de; }
.youtube { background: #f13838; font-size: 14px; }
.main-nav { background: linear-gradient(90deg, #071f50, #0b2c68); color: #fff; }
.nav-inner { display: flex; align-items: stretch; justify-content: space-between; }
.nav-inner a {
  position: relative; min-height: 56px;
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  padding: 0 24px; font-weight: 750; font-size: 14px;
  opacity: .94;
}
.nav-inner a::after {
  content: ""; position: absolute; left: 22px; right: 22px; bottom: 0;
  height: 4px; border-radius: 999px 999px 0 0;
  background: transparent;
}
.nav-inner a:hover, .nav-inner a.active { opacity: 1; }
.nav-inner a.active::after { background: var(--yellow); }

/* Boutique menu signature: fixed composition on every screen size */
.nav-inner a.shop-nav-link {
  flex: 0 0 176px;
  width: 176px;
  min-width: 176px;
  min-height: 78px;
  padding: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  gap: 0;
}
.shop-nav-mark {
  position: relative !important;
  display: block !important;
  flex: 0 0 164px !important;
  width: 164px !important;
  height: 68px !important;
  min-width: 164px;
  line-height: 1 !important;
  white-space: nowrap;
}
.shop-nav-top {
  position: absolute !important;
  left: 31px !important;
  top: 2px !important;
  display: block !important;
  color: var(--orange) !important;
  font-size: 19px !important;
  line-height: 1 !important;
  font-weight: 950 !important;
  letter-spacing: -.045em !important;
}
.shop-nav-bottom {
  position: absolute !important;
  left: 22px !important;
  top: 28px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  color: #fff !important;
  font-size: 18px !important;
  line-height: 1 !important;
  font-weight: 950 !important;
  letter-spacing: -.035em !important;
}
.shop-nav-heart {
  display: inline-block !important;
  color: #fff !important;
  font-size: 22px !important;
  line-height: .8 !important;
  font-weight: 900 !important;
  transform: translateY(-1px);
}
.shop-nav-sympa {
  position: absolute !important;
  left: 101px !important;
  top: 44px !important;
  display: block !important;
  color: var(--pink) !important;
  font-family: "Segoe Print", "Bradley Hand", cursive !important;
  font-size: 21px !important;
  line-height: 1 !important;
  font-style: italic !important;
  font-weight: 900 !important;
  letter-spacing: -.075em !important;
  transform: rotate(7deg) !important;
  transform-origin: center !important;
  text-shadow: 0 1px 0 rgba(7,31,80,.12);
}
.nav-inner a.shop-nav-link::after {
  left: 50%;
  right: auto;
  width: 120px;
  transform: translateX(-50%);
}

.nav-toggle { display: none; }

/* Hero */
.hero {
  position: relative;
  overflow: hidden;
  padding: 64px 0 56px;
  background:
    radial-gradient(circle at 86% 18%, rgba(247, 54, 144, .10), transparent 22%),
    radial-gradient(circle at 18% 3%, rgba(0, 183, 255, .10), transparent 27%),
    linear-gradient(180deg, #fff 0%, #fffdfd 67%, #f9fbff 100%);
}
.hero::before {
  content: "";
  position: absolute; inset: auto auto -130px -160px;
  width: 480px; height: 320px; border-radius: 50%;
  background: rgba(125, 53, 223, .05); transform: rotate(-12deg);
}
.hero > .shell {
  width: min(calc(100% - 40px), clamp(1240px, 86vw, 1760px));
}
.hero-grid {
  display: grid;
  grid-template-columns: 1.02fr .98fr;
  gap: clamp(40px, 3.4vw, 72px);
  align-items: center;
}
.eyebrow, .section-kicker {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  border-radius: 999px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .09em;
  font-weight: 900;
}
.eyebrow { background: #fff0a9; color: #6c5300; padding: 9px 14px; }
.hero h1 {
  margin: 20px 0 26px;
  font-size: clamp(48px, 5.8vw, 78px);
  line-height: .99;
  letter-spacing: -.055em;
  color: #0c2863;
}
.hero h1 em {
  position: relative;
  color: var(--pink);
  font-family: "Segoe Print", "Bradley Hand", cursive;
  font-style: italic;
  font-weight: 800;
  letter-spacing: -.06em;
  white-space: nowrap;
  display: inline-block;
  padding-bottom: .08em;
  z-index: 0;
}
.hero h1 em::after {
  content: "";
  position: absolute; left: 2%; right: 0; bottom: .04em;
  height: .15em; border-radius: 60% 40% 70% 30%;
  background: var(--yellow); transform: rotate(-2deg);
  z-index: -1;
}
.hero-intro {
  max-width: 690px; margin: 0 0 26px;
  font-size: 17px; color: #46536e;
}
.hero-pillars {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 14px; margin: 30px 0;
}
.hero-pillars > div { display: flex; gap: 10px; align-items: flex-start; }
.hero-pillars p { margin: 0; display: grid; gap: 2px; }
.hero-pillars strong { font-size: 13px; color: var(--navy); }
.hero-pillars small { font-size: 10px; line-height: 1.35; color: #6e7890; }
.pillar-icon {
  width: 35px; height: 35px; flex: 0 0 35px;
  display: grid; place-items: center; border-radius: 12px;
  font-size: 18px; font-weight: 900;
}
.pillar-icon.purple { color: #7136d7; background: #efe4ff; }
.pillar-icon.blue { color: #168bf5; background: #e3f3ff; }
.pillar-icon.yellow { color: #d98a00; background: #fff1ba; }
.pillar-icon.pink { color: #f5298d; background: #ffe0ef; }
.hero-actions { display: flex; gap: 14px; flex-wrap: wrap; }
.btn {
  min-height: 52px;
  display: inline-flex; align-items: center; justify-content: center; gap: 16px;
  padding: 0 26px; border-radius: 999px; font-weight: 850;
  transition: transform .2s ease, box-shadow .2s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn-primary {
  color: #fff;
  background: linear-gradient(90deg, #6e38dd, #ef2f94);
  box-shadow: 0 14px 28px rgba(157, 47, 199, .25);
}
.btn-secondary { color: #5e31c8; border: 2px solid #9f72e8; background: #fff; }
.btn-orange { color: #fff; background: linear-gradient(90deg, #ff8b1f, #ff4d4d); box-shadow: 0 12px 26px rgba(255, 103, 38, .24); }
.image-placeholder {
  position: relative;
  overflow: hidden;
  display: grid; place-items: center;
  text-align: center;
  color: #273658;
}
.image-placeholder-hero {
  min-height: 440px;
  border-radius: 42px;
  background:
    radial-gradient(circle at 20% 16%, rgba(255,255,255,.95) 0 6%, transparent 7%),
    radial-gradient(circle at 83% 20%, #ffb934 0 2.5%, transparent 2.7%),
    radial-gradient(circle at 70% 76%, rgba(14,210,199,.34), transparent 26%),
    radial-gradient(circle at 31% 76%, rgba(255,46,140,.33), transparent 31%),
    linear-gradient(135deg, #8c62ef 0%, #796ff1 34%, #ff77a7 67%, #50c7ee 100%);
  box-shadow: 0 30px 55px rgba(80, 60, 160, .20);
  isolation: isolate;
}
.image-placeholder-hero::before {
  content: "";
  width: 215px; height: 250px;
  position: absolute; z-index: -1; left: 50%; bottom: -46px; transform: translateX(-50%);
  border-radius: 50% 50% 38% 38%;
  background: linear-gradient(180deg, #ffd132, #ff941e);
  box-shadow: inset 0 0 0 13px rgba(255,255,255,.14);
}
.image-placeholder-hero::after {
  content: "";
  position: absolute; z-index: -1; top: 78px; left: 50%; transform: translateX(-50%);
  width: 138px; height: 138px; border-radius: 50%;
  background: linear-gradient(145deg, #44317e 0 55%, #ffd4a7 56%);
  box-shadow: 0 0 0 10px rgba(255,255,255,.15);
}
.image-placeholder-hero strong {
  margin-top: 230px; padding: 8px 13px;
  border-radius: 999px; color: #2c1754; background: rgba(255,255,255,.75);
  backdrop-filter: blur(7px);
}
.image-placeholder-hero small { position: absolute; bottom: 23px; color: rgba(255,255,255,.92); font-weight: 800; }

.hero-photo {
  min-height: 440px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}
.hero-photo img {
  display: block;
  width: clamp(112%, 46vw, 122%);
  max-width: none;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 24px 34px rgba(45, 39, 105, .15));
}
.float-shape { position: absolute; font-size: 36px; color: #fff; text-shadow: 0 6px 18px rgba(50,30,120,.18); }
.float-shape.s1 { top: 48px; left: 50px; color: #ffd32f; transform: rotate(12deg); }
.float-shape.s2 { top: 90px; right: 48px; color: #ff536e; }
.float-shape.s3 { bottom: 92px; right: 66px; color: #ffe950; }
.float-shape.s4 { bottom: 85px; left: 62px; color: #ffecf7; }
.placeholder-orbit { position: absolute; border: 3px dashed rgba(255,255,255,.38); border-radius: 50%; }
.orbit-one { width: 82px; height: 82px; top: 140px; left: 40px; }
.orbit-two { width: 110px; height: 110px; bottom: 42px; right: 28px; }
.hero-doodle { position: absolute; font-weight: 900; z-index: 2; }
.hero-doodle-a { left: 3%; top: 70px; color: #1faeec; font-size: 30px; }
.hero-doodle-b { right: 4%; top: 40px; color: #ff5c9c; font-size: 32px; transform: rotate(12deg); }
.hero-doodle-c { left: 2.5%; bottom: 54px; color: #ff9d1d; font-size: 42px; transform: rotate(-20deg); }

/* Sections */
.section { padding: 64px 0; }
.section-heading {
  display: flex; align-items: end; justify-content: space-between; gap: 20px;
  margin-bottom: 28px;
}
.section-heading h2, .community-copy h2, .newsletter-copy h2, .partners-section h2 {
  margin: 4px 0 0;
  color: var(--navy);
  font-size: clamp(30px, 3vw, 42px);
  line-height: 1.1;
  letter-spacing: -.035em;
}
.section-heading a { color: var(--purple); font-weight: 850; font-size: 14px; }
.section-kicker { color: #f0568f; padding: 0; }
.article-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.article-card {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 15px 34px rgba(25, 45, 90, .08);
  transition: transform .2s ease, box-shadow .2s ease;
}
.article-card:hover { transform: translateY(-5px); box-shadow: 0 22px 42px rgba(25, 45, 90, .14); }
.article-image { height: 194px; border-bottom: 1px solid rgba(0,0,0,.05); font-weight: 900; }
.article-image span { z-index: 2; padding: 7px 11px; border-radius: 999px; background: rgba(255,255,255,.76); }
.article-image i, .article-image b { position: absolute; font-style: normal; font-size: 54px; opacity: .26; }
.article-image i { left: 24px; top: 20px; }
.article-image b { right: 24px; bottom: 18px; }
.card-yellow .article-image { background: linear-gradient(135deg, #fff2b9, #ffbe63); }
.card-blue .article-image { background: linear-gradient(135deg, #cceeff, #8ebcf8 48%, #db9cff); }
.card-purple .article-image { background: linear-gradient(135deg, #f8c2df, #be9cf6 58%, #8ba8f7); }
.card-turquoise .article-image { background: linear-gradient(135deg, #c8fff2, #7dd9dd 58%, #83bdf5); }
.article-body { padding: 20px 20px 22px; }
.meta { display: flex; align-items: center; gap: 9px; margin-bottom: 12px; font-size: 10px; color: #7b8395; font-weight: 750; }
.tag { padding: 5px 8px; border-radius: 7px; color: #fff; font-weight: 900; letter-spacing: .02em; }
.tag-yellow { background: #f1a900; }
.tag-blue { background: #258eea; }
.tag-purple { background: #8b48d8; }
.tag-turquoise { background: #16b6a8; }
.article-body h3 { margin: 0; font-size: 18px; line-height: 1.22; color: var(--navy); min-height: 88px; }
.article-body p { color: #667089; font-size: 13px; min-height: 62px; }
.article-body a { color: var(--purple); font-weight: 850; font-size: 13px; }

.resources-section {
  background:
    radial-gradient(circle at 6% 50%, rgba(27,142,244,.12), transparent 17%),
    radial-gradient(circle at 94% 24%, rgba(255,177,43,.12), transparent 18%),
    linear-gradient(180deg, #f3f8ff, #eef7ff);
  border-radius: 42px 42px 0 0;
}
.resource-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.resource-card {
  min-height: 180px;
  padding: 24px;
  border: 1px solid rgba(129,145,182,.18);
  border-radius: 24px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 14px 32px rgba(30, 61, 112, .08);
  display: flex; gap: 18px; align-items: flex-start;
  position: relative; overflow: hidden;
  transition: transform .2s ease;
}
.resource-card:hover { transform: translateY(-4px); }
.resource-card::after { content: "✦"; position: absolute; right: 18px; bottom: 10px; font-size: 25px; opacity: .22; }
.resource-icon { width: 72px; height: 72px; flex: 0 0 72px; border-radius: 22px; display: grid; place-items: center; color: #fff; font-size: 35px; font-weight: 900; box-shadow: 0 14px 25px rgba(40, 60, 120, .15); }
.resource-blue .resource-icon { background: linear-gradient(135deg, #168bf5, #285fd8); }
.resource-purple .resource-icon { background: linear-gradient(135deg, #8f42e8, #5f38d5); }
.resource-orange .resource-icon { background: linear-gradient(135deg, #ffbf2d, #ff8519); }
.resource-content { display: grid; align-content: start; gap: 6px; }
.resource-content small { color: #728099; font-size: 10px; }
.resource-content strong { color: var(--navy); font-size: 18px; }
.resource-content em { font-style: normal; color: #69738a; font-size: 13px; }
.resource-content b { margin-top: 3px; color: var(--purple); font-size: 12px; }
.resource-orange .resource-content b { color: #ef7e00; }

.library-section { padding-top: 58px; background: #fff; }
.book-scroller {
  display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 18px;
}
.book-card {
  min-width: 0;
  padding: 12px 12px 18px;
  border: 1px solid #e6eaf1;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(26, 43, 88, .07);
  display: flex;
  flex-direction: column;
}
.book-cover { height: 210px; border-radius: 17px; display: grid; place-items: center; text-align: center; padding: 18px; font-size: 12px; font-weight: 800; color: #45516c; }
.cover-pink { background: linear-gradient(145deg, #ffdce6, #ffbacd); }
.cover-yellow { background: linear-gradient(145deg, #fff1c4, #ffd77e); }
.cover-mint { background: linear-gradient(145deg, #d7fff2, #9fe7d8); }
.cover-purple { background: linear-gradient(145deg, #ede0ff, #c8a7f5); }
.cover-orange { background: linear-gradient(145deg, #ffedbc, #ffb960); }
.book-card h3 { margin: 16px 2px 6px; color: var(--navy); font-size: 15px; line-height: 1.25; min-height: 58px; }
.book-card p { margin: 0 2px 12px; color: #7a8498; font-size: 12px; }
.book-card a { color: var(--pink); font-size: 12px; font-weight: 900; }
.book-card .book-public-price{display:grid;grid-template-columns:1fr;gap:3px;margin:12px 2px 14px;padding:10px 11px;border-radius:14px;background:#fff8fb;border:1px solid #ffd9e9}
.book-card .book-price-before{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.book-card .book-reference-price{font-size:13px;color:#8a94a7;text-decoration:line-through;text-decoration-thickness:2px}
.book-card .book-discount-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 7px;border-radius:999px;background:#ffe0ed;color:#d62473;font-size:10px;font-weight:900}
.book-card .book-site-price-label{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.055em;color:#8a3bd3}
.book-card .book-public-price .book-price{display:block;margin:0;color:#e9277e;font-size:21px;line-height:1.05;font-weight:950}
.book-card .book-public-price{margin-top:auto;min-height:82px;align-content:end}

.home-shop-section {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 8% 22%, rgba(132,63,224,.10), transparent 22%),
    radial-gradient(circle at 92% 76%, rgba(242,39,143,.10), transparent 24%),
    linear-gradient(180deg, #fff 0%, #fff7fb 100%);
}
.home-shop-section::before { content: "♡"; position: absolute; left: 4%; bottom: 24px; color: #f13591; font-size: 32px; opacity: .72; transform: rotate(-12deg); }
.home-shop-section::after { content: "✦"; position: absolute; right: 5%; top: 28px; color: #7b38d0; font-size: 28px; opacity: .7; }
.home-shop-heading { position: relative; z-index: 1; }
.home-shop-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.home-shop-card {
  min-width: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  color: inherit;
  border: 1px solid #eadff4;
  border-radius: 24px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 14px 32px rgba(55,31,105,.08);
  transition: transform .2s ease, box-shadow .2s ease;
}
.home-shop-card:hover { transform: translateY(-4px); box-shadow: 0 20px 38px rgba(55,31,105,.12); }
.home-shop-media { height: 220px; display: grid; place-items: center; overflow: hidden; background: linear-gradient(145deg,#f9f5ff,#fff2f8); }
.home-shop-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s ease; }
.home-shop-card:hover .home-shop-media img { transform: scale(1.025); }
.home-shop-media.is-placeholder b { color: #f12d8f; font-size: 52px; }
.home-shop-body { flex: 1; display: flex; flex-direction: column; align-items: flex-start; padding: 18px 19px 20px; }
.home-shop-body small { margin-bottom: 7px; color: #e82d85; font-size: 10px; font-weight: 950; text-transform: uppercase; letter-spacing: .075em; }
.home-shop-body > strong { color: var(--navy); font-size: 18px; line-height: 1.25; }
.home-shop-price { margin-top: 16px; display: grid; gap: 2px; }
.home-shop-price em { color: #78859a; font-size: 10px; font-style: normal; font-weight: 850; text-transform: uppercase; letter-spacing: .05em; }
.home-shop-price b { color: #e9277e; font-size: 22px; line-height: 1.05; }
.home-shop-action { margin-top: auto; padding-top: 18px; color: #7135ca; font-size: 12px; font-weight: 950; }
.home-shop-action b { margin-left: 3px; }
.home-shop-empty { position: relative; z-index: 1; min-height: 150px; padding: 28px; border: 1px dashed #d8c7ed; border-radius: 24px; background: #fff; display: flex; align-items: center; gap: 14px; color: var(--navy); }
.home-shop-empty > span { width: 56px; height: 56px; border-radius: 18px; display: grid; place-items: center; background: #fff0f7; color: #ec2a88; font-size: 28px; }
.home-shop-empty strong { font-size: 18px; }
.home-shop-empty em { margin-left: auto; color: #7135ca; font-style: normal; font-size: 12px; font-weight: 900; }

.community-section { padding: 20px 0 56px; }
.community-card {
  min-height: 230px;
  display: grid;
  grid-template-columns: 1.05fr 1.5fr auto;
  align-items: stretch;
  border: 2px solid #ffb85f;
  border-radius: 34px;
  overflow: hidden;
  background: linear-gradient(90deg, #fff9e8, #fff 57%, #fff1db);
  box-shadow: 0 18px 36px rgba(170, 99, 20, .08);
}
.community-visual {
  background:
    radial-gradient(circle at 25% 24%, rgba(23,199,197,.22), transparent 18%),
    radial-gradient(circle at 72% 72%, rgba(245,41,141,.21), transparent 25%),
    linear-gradient(145deg, #fff2c6, #ffd8e7);
  font-weight: 900;
}
.community-photo { position: relative; min-height: 230px; overflow: hidden; background: linear-gradient(145deg,#fff0c8,#ffd9e9); }
.community-photo img { width: 100%; height: 100%; min-height: 230px; display: block; object-fit: cover; object-position: center; transform: scale(1.04); }
.community-copy { padding: 32px 34px; align-self: center; }
.community-copy h2 { font-size: 34px; }
.community-copy p { max-width: 650px; margin: 10px 0 20px; color: #616d86; }
.community-pen { display: grid; place-items: center; padding: 0 36px; color: #ff7c23; font-size: 70px; transform: rotate(-12deg); }

.newsletter-section {
  position: relative; overflow: hidden;
  padding: 34px 0;
  color: #fff;
  background: linear-gradient(100deg, #6934dd 0%, #8835e0 37%, #ca2ccd 68%, #ef2b92 100%);
}
.newsletter-section::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 12% 30%, rgba(255,221,57,.18), transparent 18%), radial-gradient(circle at 87% 72%, rgba(255,255,255,.13), transparent 18%); }
.newsletter-grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr 1.15fr; gap: 38px; align-items: center; }
.newsletter-copy { display: flex; gap: 20px; align-items: center; }
.newsletter-copy h2 { color: #fff; font-size: 34px; }
.newsletter-copy p { margin: 6px 0 0; max-width: 510px; font-size: 13px; color: rgba(255,255,255,.87); }
.paper-plane { font-size: 58px; color: var(--yellow); transform: rotate(-22deg); filter: drop-shadow(0 8px 10px rgba(52,26,123,.25)); }
.newsletter-form {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  padding: 7px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 14px 30px rgba(38,20,94,.2);
}
.newsletter-form input { border: 0; outline: 0; min-width: 0; padding: 0 18px; color: var(--ink); }
.newsletter-form button { border: 0; border-radius: 999px; padding: 14px 25px; background: #f2258f; color: #fff; font-weight: 900; }
.newsletter-form small { grid-column: 1 / -1; color: rgba(255,255,255,.88); position: absolute; transform: translateY(58px); font-size: 10px; }
.newsletter-doodle { position: absolute; z-index: 2; font-size: 30px; }
.newsletter-doodle.n1 { left: 3%; top: 10px; color: #ffe23e; }
.newsletter-doodle.n2 { right: 3%; bottom: 4px; color: #ffe4f3; }

.partners-section { padding: 34px 0 40px; }
.partners-section h2 { text-align: center; font-size: 25px; margin-bottom: 18px; }
.partner-row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.partner-row div { min-height: 76px; border: 1px solid #e4e9f1; border-radius: 16px; display: grid; place-items: center; color: #8b94a6; font-size: 11px; background: #fff; box-shadow: 0 8px 18px rgba(22,46,90,.04); }


/* Homepage banner */
.homepage-banner{padding:22px 0 0;background:#fff}
.homepage-banner-card{min-height:190px;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(240px,.55fr);overflow:hidden;border:1px solid #e5ddf7;border-radius:30px;background:linear-gradient(115deg,#f6f1ff 0%,#fff7fb 54%,#fff4d6 100%);box-shadow:0 18px 42px rgba(77,50,135,.10)}
.homepage-banner-copy{padding:30px 34px;align-self:center}
.homepage-banner-kicker{display:inline-flex;padding:6px 10px;border-radius:999px;background:#fff;color:var(--purple);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;box-shadow:0 6px 16px rgba(90,50,160,.08)}
.homepage-banner-copy h2{margin:10px 0 6px;color:var(--navy);font-size:clamp(26px,3vw,40px);line-height:1.06;letter-spacing:-.035em}
.homepage-banner-copy p{max-width:720px;margin:0;color:#59657c;font-size:14px;line-height:1.55}
.homepage-banner-copy a{display:inline-flex;align-items:center;gap:10px;margin-top:16px;padding:10px 16px;border-radius:999px;background:linear-gradient(90deg,var(--purple),var(--pink));color:#fff;font-size:12px;font-weight:900;box-shadow:0 10px 22px rgba(145,52,197,.20)}
.homepage-banner-media{min-height:190px;overflow:hidden;position:relative;background:#e8e0fb}
.homepage-banner-media img{width:100%;height:100%;object-fit:cover;display:block}
.homepage-banner-media.is-placeholder{display:grid;place-items:center;background:radial-gradient(circle at 25% 25%,#ffe55c 0 7%,transparent 7.5%),radial-gradient(circle at 75% 72%,rgba(37,199,194,.48),transparent 24%),linear-gradient(135deg,#7f4ce3,#ec4b9d)}
.homepage-banner-media.is-placeholder strong{width:88px;height:88px;border-radius:28px;display:grid;place-items:center;background:rgba(255,255,255,.90);color:var(--purple);font-size:31px;box-shadow:0 14px 30px rgba(54,25,118,.20);transform:rotate(-5deg)}
.banner-shape{position:absolute;color:#fff;font-size:28px;font-weight:900}.banner-shape.bs1{left:18%;top:19%;color:#ffe13f}.banner-shape.bs2{right:17%;top:23%;font-size:34px}.banner-shape.bs3{right:22%;bottom:17%;color:#56e1d4;font-size:21px}

/* Featured resources: real image or branded fallback */
.resource-card{display:grid;grid-template-columns:104px minmax(0,1fr);gap:17px;align-items:stretch;padding:16px}
.resource-featured-image{position:relative;min-height:148px;border-radius:19px;overflow:hidden;display:grid;place-items:center;background:#edf2f8;box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)}
.resource-featured-image img{width:100%;height:100%;object-fit:cover;display:block}
.resource-featured-image.is-placeholder{isolation:isolate;background:linear-gradient(145deg,#dff5ff,#e9ddff 58%,#ffd9e9)}
.resource-featured-image.is-placeholder::before{content:"";position:absolute;width:95px;height:95px;border-radius:50%;right:-40px;top:-35px;background:rgba(255,255,255,.48);z-index:-1}
.resource-featured-image.is-placeholder::after{content:"";position:absolute;width:75px;height:75px;border-radius:23px;left:-25px;bottom:-28px;background:rgba(255,224,66,.45);transform:rotate(20deg);z-index:-1}
.resource-featured-image.is-placeholder i{position:absolute;left:13px;top:10px;color:#fff;font-style:normal;font-size:19px;text-shadow:0 3px 8px rgba(50,40,100,.18)}
.resource-featured-image.is-placeholder b{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:rgba(255,255,255,.88);color:var(--purple);font-size:22px;box-shadow:0 10px 22px rgba(64,45,120,.15)}
.resource-featured-image.is-placeholder em{position:absolute;right:11px;bottom:9px;font-style:normal;font-size:9px;font-weight:900;color:rgba(28,48,92,.48);letter-spacing:.08em}
.resource-blue .resource-featured-image.is-placeholder{background:linear-gradient(145deg,#c9edff,#d9e1ff 60%,#e9d8ff)}
.resource-purple .resource-featured-image.is-placeholder{background:linear-gradient(145deg,#f2dcff,#dcd3ff 58%,#ffdce9)}
.resource-orange .resource-featured-image.is-placeholder{background:linear-gradient(145deg,#fff0bb,#ffd7a8 58%,#ffe1e8)}
.resource-content{align-self:center}

/* Newsletter: clear field and visible feedback */
.newsletter-form{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:8px;border-radius:22px;background:#fff;box-shadow:0 14px 30px rgba(38,20,94,.22)}
.newsletter-form input{min-height:48px;border:1px solid #e3e6ee!important;border-radius:14px!important;outline:0;min-width:0;padding:0 15px!important;color:var(--ink);background:#fbfcff}
.newsletter-form input:focus{border-color:#b58ce8!important;box-shadow:0 0 0 3px #f1eaff}
.newsletter-form button{min-height:48px;border:0;border-radius:14px;padding:0 23px;background:linear-gradient(90deg,#f2258f,#d62fc1);color:#fff;font-weight:900;cursor:pointer}
.newsletter-form small{grid-column:1/-1;position:static!important;transform:none!important;display:block;padding:2px 8px 4px;color:#6e7890!important;font-size:10px;line-height:1.4}
.newsletter-form .newsletter-notice{margin-top:2px;padding:10px 12px;border-radius:12px;background:#e8fbf2;color:#087a52!important;font-size:12px;font-weight:900;border:1px solid #bdebd6}
.newsletter-form.state-exists .newsletter-notice{background:#fff7da;color:#836000!important;border-color:#f1d986}
.newsletter-form.state-error .newsletter-notice{background:#fff0f3;color:#a5264c!important;border-color:#f1bdcc}

.partners-section .partner-row .partner-db-item{min-height:76px;border:1px solid #e4e9f1;border-radius:16px;background:#fff;box-shadow:0 8px 18px rgba(22,46,90,.04);padding:10px 14px}
.partners-section .partner-row .partner-db-item img{max-width:100%;max-height:56px;object-fit:contain}
.partner-row-empty>div{background:linear-gradient(135deg,#fafbfe,#f5f2fb)}

/* Footer */
.site-footer { position: relative; overflow: hidden; background: linear-gradient(100deg, #061c4d, #0a2864 55%, #071f55); color: #fff; padding-top: 48px; }
.footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1.2fr 1.25fr; gap: 45px; padding-bottom: 42px; }
.footer-brand p { max-width: 350px; color: rgba(255,255,255,.72); font-size: 13px; }
.footer-logo .brand-copy strong { color: #fff; font-size: 20px; }
.footer-logo .brand-copy small { color: rgba(255,255,255,.66); }
.footer-grid h3 { font-size: 14px; margin: 4px 0 14px; }
.footer-grid > div:not(.footer-brand) { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; }
.footer-grid a, .footer-grid p { font-size: 12px; color: rgba(255,255,255,.72); margin: 0; }
.footer-grid a:hover { color: #fff; }
.footer-cta { margin-top: 12px !important; padding: 10px 15px; border-radius: 999px; background: linear-gradient(90deg, #7837df, #f2278c); color: #fff !important; font-weight: 900; }
.footer-bottom { min-height: 55px; border-top: 1px solid rgba(255,255,255,.12); display: flex; align-items: center; justify-content: space-between; gap: 20px; font-size: 11px; color: rgba(255,255,255,.66); }
.footer-stars { position: absolute; right: 5%; top: 20px; color: #ff5aa4; opacity: .8; font-size: 22px; }

@media (max-width: 1050px) {
  .topbar { grid-template-columns: auto 1fr auto; }
  .brand-copy { display: none; }
  .nav-inner a { padding: 0 12px; }
  .hero-grid { gap: 30px; }
  .hero-pillars { grid-template-columns: repeat(2, 1fr); }
  .article-grid { grid-template-columns: repeat(2, 1fr); }
  .book-scroller { grid-template-columns: repeat(3, 1fr); }
  .book-card:nth-child(n+4) { display: none; }
  .home-shop-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .home-shop-media { height: 185px; }
  .resource-grid { grid-template-columns: 1fr; }
  .community-card { grid-template-columns: .9fr 1.3fr; }
  .community-pen { display: none; }
  .footer-grid { grid-template-columns: 1.5fr 1fr 1fr; }
  .footer-grid > div:last-child { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .shell { width: min(calc(100% - 28px), var(--shell)); }
  .topbar { min-height: 72px; grid-template-columns: auto 1fr auto; gap: 12px; }
  .brand img { width: 48px; height: 48px; }
  .site-search { display: none; }
  .header-actions { justify-self: end; }
  .header-actions .facebook, .header-actions .youtube { display: none; }
  .nav-toggle { width: 42px; height: 42px; padding: 8px; border: 0; border-radius: 12px; display: grid; align-content: center; gap: 5px; background: #eef3fb; }
  .nav-toggle span:not(.sr-only) { height: 2px; background: var(--navy); border-radius: 3px; }
  .main-nav { display: none; }
  .main-nav.is-open { display: block; }
  .nav-inner { flex-direction: column; align-items: stretch; padding: 8px 14px 14px; }
  .nav-inner a { justify-content: flex-start; min-height: 46px; padding: 0 12px; border-radius: 12px; }
  .nav-inner a.active { background: rgba(255,255,255,.08); }
  .nav-inner a::after { display: none; }
  .nav-inner a.shop-nav-link {
    flex: 0 0 176px;
    width: 176px;
    min-width: 176px;
    min-height: 78px;
    margin: 0 auto;
    padding: 0 !important;
    justify-content: center;
    border-radius: 12px;
  }
  .nav-inner a.shop-nav-link.active { background: transparent; }
  .nav-inner a.shop-nav-link::after {
    display: block;
    left: 50%;
    right: auto;
    width: 120px;
    transform: translateX(-50%);
  }

  .hero { padding: 40px 0 34px; }
  .hero-grid { grid-template-columns: 1fr; }
  .hero h1 { font-size: clamp(43px, 13vw, 62px); }
  .hero-intro { font-size: 15px; }
  .hero-pillars { grid-template-columns: 1fr 1fr; }
  .image-placeholder-hero { min-height: 350px; border-radius: 28px; }
  .hero-photo { min-height: 0; margin-top: 10px; }
  .hero-photo img { width: 100%; max-width: 680px; }
  .hero-actions .btn { flex: 1 1 100%; }
  .hero-doodle { display: none; }

  .section { padding: 46px 0; }
  .section-heading { align-items: flex-start; }
  .section-heading h2 { font-size: 30px; }
  .section-heading a { margin-top: 8px; font-size: 12px; text-align: right; }
  .article-grid { grid-template-columns: 1fr; }
  .article-body h3, .article-body p { min-height: 0; }
  .resources-section { border-radius: 28px 28px 0 0; }
  .resource-card { min-height: 0; }
  .book-scroller { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; }
  .book-card, .book-card:nth-child(n+4) { display: flex; min-width: 76%; scroll-snap-align: start; }
  .home-shop-grid { grid-template-columns: 1fr; gap: 14px; }
  .home-shop-card { display: grid; grid-template-columns: 150px minmax(0,1fr); }
  .home-shop-media { height: 100%; min-height: 180px; }
  .community-card { grid-template-columns: 1fr; }
  .community-visual { min-height: 200px; }
  .community-photo img { min-height: 200px; }
  .community-copy { padding: 28px 24px 30px; }
  .newsletter-grid { grid-template-columns: 1fr; gap: 24px; }
  .newsletter-copy { align-items: flex-start; }
  .newsletter-form { grid-template-columns: 1fr; border-radius: 22px; padding: 8px; }
  .newsletter-form input { min-height: 48px; }
  .newsletter-form small { position: static; transform: none; color: rgba(255,255,255,.84); padding: 5px 8px 0; }
  .partner-row { display: flex; overflow-x: auto; }
  .partner-row div { min-width: 180px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 30px 20px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-grid > div:last-child { grid-column: 1 / -1; }
  .footer-bottom { flex-direction: column; justify-content: center; text-align: center; padding: 14px 0; }
}

@media (max-width: 430px) {
  .header-actions .social { display: none; }
  .hero-pillars { grid-template-columns: 1fr; }
  .section-heading { display: grid; }
  .section-heading a { text-align: left; }
  .resource-card { flex-direction: column; }
  .home-shop-card { grid-template-columns: 1fr; }
  .home-shop-media { height: 210px; min-height: 210px; }
  .resource-icon { width: 58px; height: 58px; flex-basis: 58px; border-radius: 18px; }
  .footer-grid { grid-template-columns: 1fr; }
}

@media (max-width:760px){
  .homepage-banner{padding-top:14px}.homepage-banner-card{grid-template-columns:1fr;border-radius:24px}.homepage-banner-copy{padding:24px}.homepage-banner-media{min-height:170px;order:-1}.homepage-banner-copy h2{font-size:30px}
  .newsletter-form{grid-template-columns:1fr;border-radius:18px}.newsletter-form button{width:100%}
  .resource-card{grid-template-columns:90px minmax(0,1fr)}.resource-featured-image{min-height:126px}
  .partners-section .partner-row .partner-db-item{min-width:180px}
}
@media (max-width:430px){
  .resource-card{grid-template-columns:1fr}.resource-featured-image{min-height:170px;aspect-ratio:16/9}
}

/* v4.30 - Partenaires cliquables */
.partners-section .partner-row .partner-db-link{width:100%;height:100%;min-height:54px;display:flex;align-items:center;justify-content:center;text-decoration:none;border-radius:12px;transition:transform .18s ease,opacity .18s ease}
.partners-section .partner-row .partner-db-link:hover,.partners-section .partner-row .partner-db-link:focus-visible{transform:translateY(-2px);opacity:.88}
.partners-section .partner-row .partner-db-link:focus-visible{outline:2px solid var(--purple);outline-offset:3px}

/* v4.31 - Accueil : partenaires centres + tags sur les cartes articles */
.partners-section .partner-row{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:stretch;
  gap:16px;
}
.partners-section .partner-row > .partner-db-item,
.partners-section .partner-row > div{
  flex:0 1 230px;
  width:230px;
}
.section-articles .article-body .meta{
  align-items:flex-start;
  flex-wrap:wrap;
}
.section-articles .article-body .meta .card-tag-list{
  display:inline-flex;
  align-items:center;
  gap:5px;
  flex-wrap:wrap;
}
.section-articles .article-body .meta time{
  padding-top:5px;
  white-space:nowrap;
}
@media (max-width:760px){
  .partners-section .partner-row{overflow:visible;justify-content:center;}
  .partners-section .partner-row > .partner-db-item,
  .partners-section .partner-row > div{min-width:0;flex-basis:min(230px,100%);width:min(230px,100%);}
}

/* v4.63 - Modales de confirmation Atypique World */
html.aw-confirm-open,body.aw-confirm-open{overflow:hidden}
.aw-confirm-modal[hidden]{display:none!important}
.aw-confirm-modal{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:24px;opacity:0;transition:opacity .18s ease}
.aw-confirm-modal.is-open{opacity:1}
.aw-confirm-modal__backdrop{position:absolute;inset:0;background:rgba(5,23,57,.58);backdrop-filter:blur(5px)}
.aw-confirm-modal__card{position:relative;width:min(100%,520px);border:1px solid rgba(125,53,223,.16);border-radius:28px;background:#fff;box-shadow:0 28px 80px rgba(7,31,80,.28);padding:30px;transform:translateY(12px) scale(.985);transition:transform .2s ease;overflow:hidden}
.aw-confirm-modal.is-open .aw-confirm-modal__card{transform:translateY(0) scale(1)}
.aw-confirm-modal__card::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,var(--blue),var(--purple),var(--pink))}
.aw-confirm-modal__close{position:absolute;right:18px;top:17px;width:36px;height:36px;border:0;border-radius:12px;background:#f3f5fa;color:#60708d;font-size:24px;line-height:1;display:grid;place-items:center}
.aw-confirm-modal__close:hover{background:#ece6ff;color:var(--purple)}
.aw-confirm-modal__icon{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;margin-bottom:18px;background:linear-gradient(135deg,#efe8ff,#ffe8f3);color:var(--purple);font-size:26px;font-weight:950}
.aw-confirm-modal__kicker{display:block;margin-bottom:6px;color:var(--pink);font-size:12px;font-weight:950;letter-spacing:.13em;text-transform:uppercase}
.aw-confirm-modal__copy h2{margin:0;color:var(--navy);font-size:26px;line-height:1.15;letter-spacing:-.025em}
.aw-confirm-modal__copy p{margin:12px 0 0;color:#66738c;font-size:15px;line-height:1.6}
.aw-confirm-modal__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:26px}
.aw-confirm-modal__actions button{min-height:45px;padding:0 18px;border-radius:13px;font-weight:900}
.aw-confirm-modal__cancel{border:1px solid #dfe5ef;background:#fff;color:#5d6d88}
.aw-confirm-modal__cancel:hover{background:#f6f8fb;border-color:#cad4e4}
.aw-confirm-modal__confirm{border:0;background:linear-gradient(90deg,var(--purple),var(--pink));color:#fff;box-shadow:0 10px 24px rgba(182,43,164,.22)}
.aw-confirm-modal__confirm:hover{filter:brightness(1.04)}
.aw-confirm-modal.is-danger .aw-confirm-modal__icon{background:#fff0f4;color:#c52e60}
.aw-confirm-modal.is-danger .aw-confirm-modal__card::before{background:linear-gradient(90deg,#ff7c69,var(--pink),#c92f65)}
.aw-confirm-modal.is-danger .aw-confirm-modal__confirm{background:linear-gradient(90deg,#c72d5e,var(--pink))}
@media(max-width:600px){.aw-confirm-modal{padding:16px}.aw-confirm-modal__card{padding:25px 20px 20px;border-radius:22px}.aw-confirm-modal__copy h2{font-size:23px}.aw-confirm-modal__actions{flex-direction:column-reverse}.aw-confirm-modal__actions button{width:100%}}

@media (max-width: 1050px) {
  .hero > .shell { width: min(calc(100% - 40px), var(--shell)); }
}

/* v4.66 - Titres hero fluides : les retours a la ligne restent ceux de la maquette */
.hero h1{
  font-size:clamp(42px,4.5vw,78px);
}
.hero h1 em{
  white-space:nowrap;
}
@media(max-width:760px){
  .hero h1{font-size:clamp(38px,10vw,56px);}
}

/* v5.0 - raccourcis Espace client + Panier dans le header */
.header-actions{display:flex;align-items:center;gap:12px}.header-socials,.header-customer-tools{display:flex;align-items:center;gap:8px}.header-account-link,.header-cart-link{position:relative;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 12px;border:1px solid #e2e7f0;border-radius:14px;background:#fff;color:var(--navy);box-shadow:0 7px 18px rgba(24,43,80,.05);font-size:11px;font-weight:900;white-space:nowrap}.header-account-link>span,.header-cart-link>span{font-size:16px}.header-account-link:hover,.header-cart-link:hover,.header-account-link.is-active{border-color:#cdb7ef;background:#faf7ff;color:#7134d8}.header-cart-link em{min-width:20px;height:20px;display:grid;place-items:center;border-radius:999px;background:#f02b8d;color:#fff;font-size:9px;font-style:normal;font-weight:950}.header-cart-link.is-active{border-color:#f6b9d4;background:#fff8fb}.header-cart-link em:empty{display:none}
@media(max-width:1100px){.header-account-link b,.header-cart-link b{display:none}.header-account-link,.header-cart-link{width:42px;padding:0}.header-cart-link em{position:absolute;right:-5px;top:-6px;border:2px solid #fff}}
@media(max-width:760px){.header-socials{display:none}.header-customer-tools{gap:6px}.header-account-link,.header-cart-link{display:inline-flex!important;width:40px;min-height:40px;border-radius:13px}.header-actions{margin-left:auto}.nav-toggle{margin-left:0}}
