/*
Theme Name: Boarding Tokyo
Theme URI: https://boardingtokyo.com
Author: Boarding Tokyo
Author URI: https://boardingtokyo.com
Description: Thème officiel Boarding Tokyo — média francophone de résidents à Tokyo. Design magazine japonisant : typographies Shippori Mincho & DM Sans, palette hanko/indigo/washi, compatible Gutenberg.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.0
License: Proprietary
Text Domain: boarding-tokyo
Tags: magazine, japanese, blog, travel, gutenberg
*/

/* ============================================================
   TOKENS — couleurs & typographies
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Shippori+Mincho:wght@400;500;600;700&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,300&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --hanko: #C1272D;
  --rouge: #D84315;
  --indigo: #223A5E;
  --sumi: #1B1B1B;
  --washi: #FAF7F2;
  --sakura: #F4D7E3;
  --ink: #1B1B1B;
  --ink2: #3D3028;
  --ink3: #8A7A6A;
  --line: #E8E2D8;
  --bg: #FFFFFF;
  --f-jp: 'Shippori Mincho', serif;
  --f-body: 'DM Sans', sans-serif;
}

body {
  font-family: var(--f-body);
  background: var(--bg);
  color: var(--ink);
  min-height: 100vh;
}

a { text-decoration: none; color: inherit; }

/* Badges catégorie cliquables */
a.ac-badge, a.ah-tag, a.ah-tag-2, a.hz-cat, a.rc-badge {
  cursor: pointer;
  transition: opacity .15s;
}
a.ac-badge:hover, a.ah-tag:hover { opacity: .8; }
a.ah-tag-2:hover { opacity: .8; }
a.hz-cat:hover { text-decoration: underline; text-underline-offset: 2px; }
a.rc-badge:hover { opacity: .85; }
img { display: block; max-width: 100%; }
button { font-family: var(--f-body); cursor: pointer; border: none; background: none; }

/* ============================================================
   TOPBAR
   ============================================================ */
.bt-topbar {
  background: var(--sumi);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 0 2.5rem;
  height: 72px;
  position: sticky;
  top: 0;
  z-index: 100;
  overflow: hidden;
}
.bt-topbar::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='20'%3E%3Cellipse cx='20' cy='20' rx='20' ry='16' fill='none' stroke='rgba(255,255,255,0.04)' stroke-width='1'/%3E%3Cellipse cx='0' cy='20' rx='20' ry='16' fill='none' stroke='rgba(255,255,255,0.04)' stroke-width='1'/%3E%3Cellipse cx='40' cy='20' rx='20' ry='16' fill='none' stroke='rgba(255,255,255,0.04)' stroke-width='1'/%3E%3C/svg%3E");
  pointer-events: none;
}
.bt-topbar .tb-left {
  display: flex;
  align-items: center;
  gap: 1rem;
  position: relative;
  z-index: 1;
}
.bt-topbar .hamb {
  display: flex;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
}
.bt-topbar .hamb span {
  display: block;
  width: 20px;
  height: 1.5px;
  background: rgba(255,255,255,.5);
}
.bt-topbar .tb-tagline {
  font-size: 10.5px;
  color: rgba(255,255,255,.4);
  line-height: 1.4;
  letter-spacing: .04em;
}
.bt-topbar .tb-tagline strong { color: rgba(255,255,255,.75); font-weight: 500; }

/* Logo boarding-pass */
.bt-logo {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  position: relative;
  z-index: 1;
}
.bt-bpass {
  display: flex;
  align-items: stretch;
  background: transparent;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 6px;
  position: relative;
}
.bt-bpass .bp-notch {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--sumi);
  z-index: 2;
}
.bt-bpass .bp-notch.l { left: -5.5px; }
.bt-bpass .bp-notch.r { right: -5.5px; }
.bt-bpass .bp-left {
  padding: .4rem .8rem .4rem 1rem;
  background: var(--hanko);
  border-radius: 6px 0 0 6px;
  border-right: 1.5px dashed rgba(255,255,255,.35);
  display: flex;
  align-items: center;
}
.bt-bpass .bp-kanji {
  font-family: var(--f-jp);
  font-size: 22px;
  font-weight: 700;
  color: #fff;
  line-height: 1;
}
.bt-bpass .bp-right {
  padding: .4rem 1rem .4rem .8rem;
  display: flex;
  align-items: center;
}
.bt-bpass .bp-name {
  font-family: var(--f-jp);
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  letter-spacing: .3px;
  line-height: 1;
}
.bt-logo .logo-slogan {
  font-size: 8px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.32);
}

/* Topbar right */
.bt-topbar .tb-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .65rem;
  position: relative;
  z-index: 1;
}
.bt-social { display: flex; gap: .3rem; }
.bt-social a {
  width: 30px;
  height: 30px;
  border-radius: 7px;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.18);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.6);
  transition: all .15s;
}
.bt-social a:hover { background: rgba(255,255,255,.2); color: #fff; }
.bt-social a svg { width: 15px; height: 15px; }
.bt-search {
  display: flex;
  align-items: center;
  gap: 5px;
  color: rgba(255,255,255,.5);
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 7px;
  font-size: 11.5px;
  padding: 6px 11px;
  transition: .15s;
  cursor: pointer;
}
.bt-search:hover { border-color: rgba(255,255,255,.35); color: #fff; }
.bt-search svg { width: 14px; height: 14px; }
.nav-cta {
  background: var(--hanko);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  padding: 7px 15px;
  border-radius: 99px;
  transition: opacity .15s;
  cursor: pointer;
}
.nav-cta:hover { opacity: .88; }

/* ============================================================
   NAVBAR
   ============================================================ */
.bt-navbar {
  background: var(--bg);
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: stretch;
  padding: 0 2.5rem;
  position: sticky;
  top: 72px;
  z-index: 99;
}
.bt-navbar .nav-item { position: relative; }
.bt-navbar .nav-item > a {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: .8rem 1rem;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--ink2);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: color .15s, border-color .15s;
  white-space: nowrap;
}
.bt-navbar .nav-ico { width: 18px; height: 18px; flex-shrink: 0; opacity: .55; transition: opacity .15s; }
.bt-navbar .nav-item > a:hover .nav-ico { opacity: .85; }
.bt-navbar .nav-item > a:hover { color: var(--hanko); border-bottom-color: var(--hanko); }
.bt-navbar .nav-ch { width: 10px; opacity: .3; transition: transform .2s; }
.bt-navbar .nav-item.open .nav-ch { transform: rotate(180deg); }
.bt-navbar .nav-sep { width: 1px; background: var(--line); margin: .4rem 0; align-self: stretch; }
.bt-navbar .nav-ext > a { color: var(--ink3); font-size: 12px; }
.bt-navbar .nav-ext > a:hover { color: var(--hanko); border-bottom-color: transparent; }
.bt-navbar .nav-drop {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background: var(--bg);
  border: 1px solid var(--line);
  border-top: 2px solid var(--hanko);
  border-radius: 0 0 12px 12px;
  min-width: 215px;
  padding: .5rem 0;
  box-shadow: 0 10px 32px rgba(27,27,27,.09);
  z-index: 100;
}
.bt-navbar .nav-item:hover .nav-drop { display: block; }
.bt-navbar .nav-drop a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: .6rem 1.1rem;
  font-size: 12.5px;
  color: var(--ink2);
  cursor: pointer;
  transition: background .1s, color .1s;
}
.bt-navbar .nav-drop a:hover { background: var(--washi); color: var(--hanko); }
.bt-navbar .nav-drop-lbl {
  padding: .3rem 1.1rem;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--ink3);
  font-weight: 500;
}
.bt-navbar .nav-drop-sep { height: 1px; background: var(--line); margin: .2rem 0; }

/* ============================================================
   HERO
   ============================================================ */
.bt-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 520px;
  border-bottom: 1px solid var(--line);
  position: relative;
  overflow: hidden;
}
.bt-hero .hero-left {
  position: relative;
  z-index: 3;
  padding: 3.5rem 3rem 3rem 2.5rem;
  background: rgba(255,255,255,.98);
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.bt-hero .hanko-stamp {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 1.5rem;
}
.bt-hero .stamp {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 62px;
  height: 62px;
  border-radius: 50%;
  border: 2px solid var(--hanko);
  color: var(--hanko);
  font-size: 8.5px;
  font-weight: 700;
  letter-spacing: .02em;
  text-align: center;
  line-height: 1.3;
  text-transform: uppercase;
  transform: rotate(-6deg);
  box-shadow: inset 0 0 0 1px rgba(193,39,45,.15);
  position: relative;
  font-family: var(--f-jp);
}
.bt-hero .stamp::after {
  content: '';
  position: absolute;
  inset: 4px;
  border-radius: 50%;
  border: 1px solid rgba(193,39,45,.2);
}
.bt-hero .stamp-text { font-size: 11px; color: var(--ink3); font-style: italic; }
.bt-hero .hero-title {
  font-family: var(--f-jp);
  font-size: 36px;
  font-weight: 600;
  line-height: 1.2;
  color: var(--ink);
  margin-bottom: 1.25rem;
  letter-spacing: -.5px;
}
.bt-hero .hero-hl {
  background: var(--sakura);
  color: var(--hanko);
  border-radius: 4px;
  padding: 0 6px;
}
.bt-hero .hero-excerpt {
  font-size: 15px;
  line-height: 1.8;
  color: var(--ink2);
  font-weight: 300;
  flex: 1;
  margin-bottom: 2rem;
  max-width: 400px;
}
.bt-hero .hero-bottom {
  border-top: 1px solid var(--line);
  padding-top: 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.bt-hero .hero-author { display: flex; align-items: center; gap: .75rem; }
.bt-hero .hero-av {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--indigo), var(--hanko));
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 15px;
  flex-shrink: 0;
  font-family: var(--f-jp);
}
.bt-hero .hero-av-name { font-size: 13px; font-weight: 600; color: var(--ink); }
.bt-hero .hero-av-sub { font-size: 11px; color: var(--ink3); margin-top: 1px; }
.btn-main {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--sumi);
  color: #fff;
  font-size: 13px;
  font-weight: 500;
  padding: 12px 24px;
  border-radius: 3px;
  flex-shrink: 0;
  transition: background .15s;
  letter-spacing: .02em;
}
.btn-main:hover { background: var(--indigo); }
.bt-hero .hero-right { position: relative; z-index: 2; display: flex; flex-direction: column; }
.bt-hero .hero-photo { flex: 1; position: relative; overflow: hidden; }
.bt-hero .hero-photo img { width: 100%; height: 100%; object-fit: cover; }
.bt-hero .hero-cat {
  position: absolute;
  top: 1.25rem;
  left: 1.25rem;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(250,247,242,.94);
  color: var(--ink2);
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 4px 11px;
  border-radius: 2px;
  border-left: 3px solid var(--hanko);
  backdrop-filter: blur(4px);
}
.bt-hero .hero-thumbs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  flex-shrink: 0;
}
.bt-hero .hero-thumb {
  height: 90px;
  position: relative;
  overflow: hidden;
  cursor: pointer;
  border-right: 1px solid rgba(255,255,255,.08);
}
.bt-hero .hero-thumb:last-child { border-right: none; }
.bt-hero .hero-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.bt-hero .hero-thumb:hover img { transform: scale(1.06); }
.bt-hero .thumb-ov {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent 20%, rgba(27,27,27,.75));
}
.bt-hero .hero-thumb.on .thumb-ov {
  background: linear-gradient(to bottom, rgba(193,39,45,.3), rgba(193,39,45,.7));
}
.bt-hero .thumb-label {
  position: absolute;
  bottom: .5rem;
  left: .6rem;
  right: .6rem;
  font-family: var(--f-jp);
  font-size: 10.5px;
  font-weight: 600;
  color: #fff;
  line-height: 1.25;
  z-index: 1;
}
.bt-hero .thumb-bar {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: rgba(255,255,255,.12);
}
.bt-hero .hero-thumb.on .thumb-bar::after {
  content: '';
  display: block;
  height: 100%;
  background: var(--hanko);
}

/* ============================================================
   SHORTCUTS + RUBRIQUES
   ============================================================ */
.bt-shortcuts {
  border-bottom: 1px solid var(--line);
  padding: .7rem 2.5rem;
  display: flex;
  align-items: center;
  gap: .4rem;
  overflow-x: auto;
  background: var(--bg);
}
.bt-shortcuts .sc-lbl {
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink3);
  white-space: nowrap;
  margin-right: .5rem;
  flex-shrink: 0;
}
.bt-shortcuts .sc {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .45rem .9rem;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 3px;
  white-space: nowrap;
  flex-shrink: 0;
  font-size: 11.5px;
  font-weight: 500;
  color: var(--ink2);
  transition: all .15s;
}
.bt-shortcuts .sc svg { width: 14px; height: 14px; flex-shrink: 0; opacity: .5; }
.bt-shortcuts .sc:hover { background: var(--washi); border-color: var(--hanko); color: var(--hanko); }
.bt-rubnav {
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  padding: .5rem 2.5rem;
  gap: .25rem;
  overflow-x: auto;
}
.bt-rubnav .rub {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: .5rem .9rem;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--ink3);
  cursor: pointer;
  border-radius: 3px;
  white-space: nowrap;
  transition: all .15s;
}
.bt-rubnav .rub svg { width: 15px; height: 15px; flex-shrink: 0; opacity: .45; }
.bt-rubnav .rub:hover { background: var(--washi); color: var(--ink); }
.bt-rubnav .rub.on { background: rgba(193,39,45,.07); color: var(--hanko); font-weight: 600; }

/* ============================================================
   PAGE & SECTIONS
   ============================================================ */
.bt-page {
  padding: 2.5rem;
  display: flex;
  flex-direction: column;
  gap: 3rem;
}
.sec-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.5rem;
}
.sec-head-left { display: flex; align-items: baseline; gap: .5rem; }
.sec-title {
  font-family: var(--f-jp);
  font-size: 20px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: -.2px;
}
.sec-count { font-size: 11.5px; color: var(--ink3); }
.sec-rule {
  height: 1px;
  background: var(--line);
  margin-bottom: 1.5rem;
  position: relative;
}
.sec-rule::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  height: 1px;
  width: 40px;
  background: var(--hanko);
}
.btn-all {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: transparent;
  color: var(--ink3);
  border: 1px solid var(--line);
  font-size: 12px;
  font-weight: 500;
  padding: 6px 14px;
  border-radius: 3px;
  transition: all .15s;
  cursor: pointer;
}
.btn-all:hover { border-color: var(--hanko); color: var(--hanko); }
.g3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.g2 { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; }

/* Article card */
.art-card { cursor: pointer; display: flex; flex-direction: column; transition: transform .2s; }
.art-card:hover { transform: translateY(-3px); }
.ac-img { height: 200px; position: relative; flex-shrink: 0; overflow: hidden; margin-bottom: 1rem; }
.ac-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.art-card:hover .ac-img img { transform: scale(1.03); }
.ac-badge {
  position: absolute;
  top: .75rem;
  left: .75rem;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #fff;
  background: var(--hanko);
  padding: 3px 9px;
  border-radius: 2px;
}
.ac-badge svg { width: 11px; height: 11px; flex-shrink: 0; }
.ac-title {
  font-family: var(--f-jp);
  font-size: 15.5px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--ink);
  margin-bottom: .4rem;
  flex: 1;
}
.ac-meta { font-size: 11px; color: var(--ink3); margin-bottom: .75rem; display: flex; align-items: center; gap: 5px; }
.btn-lire {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: transparent;
  color: var(--hanko);
  font-size: 12px;
  font-weight: 500;
  padding: 0;
  align-self: flex-start;
  transition: gap .15s;
  cursor: pointer;
}
.btn-lire:hover { gap: 9px; }

/* Horizontal list */
.art-hz {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .9rem 0;
  border-bottom: 1px solid var(--line);
  cursor: pointer;
}
.art-hz:last-child { border-bottom: none; }
.hz-num {
  font-family: var(--f-jp);
  font-size: 22px;
  font-weight: 700;
  color: var(--line);
  line-height: 1;
  flex-shrink: 0;
  width: 28px;
  text-align: center;
}
.hz-img { width: 64px; height: 64px; overflow: hidden; flex-shrink: 0; }
.hz-img img { width: 100%; height: 100%; object-fit: cover; }
.hz-body { flex: 1; min-width: 0; }
.hz-cat { font-size: 8.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--hanko); margin-bottom: .2rem; }
.hz-title { font-family: var(--f-jp); font-size: 13.5px; font-weight: 600; line-height: 1.35; color: var(--ink); }
.hz-meta { font-size: 10px; color: var(--ink3); margin-top: .2rem; }

/* Comparatifs */
.comp-card {
  background: var(--bg);
  border: 1px solid var(--line);
  padding: 1.5rem;
  border-radius: 3px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.comp-card.feat { background: var(--washi); border-color: var(--hanko); }
.comp-card-title { font-family: var(--f-jp); font-size: 14px; font-weight: 600; color: var(--ink); }
.comp-card-sub { font-size: 12.5px; color: var(--ink3); line-height: 1.55; flex: 1; }
.btn-comp {
  background: var(--sumi);
  color: #fff;
  font-size: 12.5px;
  font-weight: 500;
  padding: 10px 0;
  border-radius: 3px;
  text-align: center;
  cursor: pointer;
  transition: background .15s;
}
.btn-comp:hover { background: var(--indigo); }

/* Themes — colored universe cards */
.themes-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.tcard {
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  padding: 1.6rem 1.5rem;
  min-height: 228px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  color: #fff;
  transition: transform .2s, box-shadow .2s;
}
.tcard:hover { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(27,27,27,.16); }
.tcard-wm {
  position: absolute;
  right: -14px;
  bottom: -30px;
  font-family: var(--f-jp);
  font-size: 120px;
  font-weight: 700;
  color: rgba(255,255,255,.1);
  line-height: 1;
  pointer-events: none;
}
.tcard-icon {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  background: rgba(255,255,255,.16);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  position: relative;
  z-index: 1;
}
.tcard-icon svg { width: 24px; height: 24px; color: #fff; }
.tcard-title {
  font-family: var(--f-jp);
  font-size: 19px;
  font-weight: 600;
  color: #fff;
  line-height: 1.2;
  margin-bottom: .5rem;
  position: relative;
  z-index: 1;
}
.tcard-desc {
  font-size: 12.5px;
  line-height: 1.6;
  color: rgba(255,255,255,.8);
  font-weight: 300;
  margin-bottom: 1.1rem;
  flex: 1;
  position: relative;
  z-index: 1;
}
.tcard-btn {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.4);
  color: #fff;
  font-family: var(--f-body);
  font-size: 12px;
  font-weight: 600;
  padding: 7px 16px;
  border-radius: 99px;
  cursor: pointer;
  transition: background .15s;
  position: relative;
  z-index: 1;
}
.tcard-btn:hover { background: rgba(255,255,255,.26); }

/* Agenda */
.agenda-g { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.ag-item {
  background: var(--bg);
  border: 1px solid var(--line);
  padding: 1.25rem;
  cursor: pointer;
  transition: transform .2s;
  position: relative;
  overflow: hidden;
}
.ag-item:hover { transform: translateY(-2px); }
.ag-item .kanji-wm {
  font-family: var(--f-jp);
  font-size: 52px;
  font-weight: 700;
  color: rgba(193,39,45,.04);
  position: absolute;
  right: -4px;
  bottom: -8px;
  line-height: 1;
  pointer-events: none;
}
.ag-date {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  background: var(--hanko);
  color: #fff;
  padding: .28rem .65rem;
  margin-bottom: .75rem;
}
.ag-day { font-family: var(--f-jp); font-size: 22px; font-weight: 700; line-height: 1; }
.ag-month { font-size: 8.5px; text-transform: uppercase; letter-spacing: .1em; opacity: .85; }
.ag-title { font-family: var(--f-jp); font-size: 13px; font-weight: 600; color: var(--ink); line-height: 1.35; margin-bottom: .3rem; position: relative; z-index: 1; }
.ag-where { font-size: 10.5px; color: var(--ink3); position: relative; z-index: 1; display: flex; align-items: center; gap: 4px; }
.ag-where svg { width: 11px; height: 11px; }

/* ============================================================
   SEO BLOCK
   ============================================================ */
.bt-seo {
  padding: 4rem 2.5rem;
  background: var(--washi);
  border-bottom: 1px solid var(--line);
  position: relative;
  overflow: hidden;
}
.bt-seo::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Cg fill='none' stroke='rgba(193,39,45,0.04)' stroke-width='1'%3E%3Cpolygon points='30,5 55,20 55,50 30,55 5,50 5,20'/%3E%3Cline x1='30' y1='5' x2='30' y2='55'/%3E%3Cline x1='5' y1='20' x2='55' y2='50'/%3E%3Cline x1='55' y1='20' x2='5' y2='50'/%3E%3C/g%3E%3C/svg%3E");
}
.bt-seo .seo-inner { max-width: 780px; position: relative; z-index: 1; }
.bt-seo .seo-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--hanko);
  margin-bottom: 1.25rem;
}
.bt-seo .seo-kicker::before { content: ''; width: 24px; height: 1.5px; background: var(--hanko); }
.bt-seo .seo-title {
  font-family: var(--f-jp);
  font-size: 28px;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.3;
  margin-bottom: 1.5rem;
  letter-spacing: -.3px;
}
.bt-seo .seo-title em { font-style: normal; color: var(--hanko); }
.bt-seo .seo-body { font-size: 15.5px; line-height: 1.9; color: var(--ink2); font-weight: 300; max-width: 680px; }
.bt-seo .seo-body p { margin-bottom: 1.1rem; }
.bt-seo .seo-stats {
  display: flex;
  align-items: center;
  gap: 2rem;
  flex-wrap: wrap;
  margin-top: 2.25rem;
  padding-top: 1.75rem;
  border-top: 1px solid var(--line);
}
.bt-seo .seo-stat { display: flex; flex-direction: column; gap: 3px; }
.bt-seo .seo-stat-num { font-family: var(--f-jp); font-size: 30px; font-weight: 700; color: var(--hanko); line-height: 1; }
.bt-seo .seo-stat-label { font-size: 11.5px; color: var(--ink3); }
.bt-seo .seo-stat-sep { width: 1px; height: 38px; background: var(--line); }
.bt-seo .seo-cta { display: flex; align-items: center; gap: .75rem; margin-top: 2rem; }
.btn-seo {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: var(--sumi);
  color: #fff;
  font-size: 13.5px;
  font-weight: 500;
  padding: 12px 24px;
  border-radius: 3px;
  transition: background .15s;
  letter-spacing: .02em;
  cursor: pointer;
}
.btn-seo:hover { background: var(--indigo); }
.btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: transparent;
  color: var(--ink2);
  border: 1.5px solid var(--line);
  font-size: 13px;
  font-weight: 500;
  padding: 10px 20px;
  border-radius: 3px;
  transition: all .15s;
  cursor: pointer;
}
.btn-ghost:hover { border-color: var(--hanko); color: var(--hanko); }

/* ============================================================
   NEWSLETTER
   ============================================================ */
.bt-newsletter {
  background: var(--indigo);
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr auto;
}
.bt-newsletter::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='20'%3E%3Cellipse cx='20' cy='20' rx='20' ry='16' fill='none' stroke='rgba(255,255,255,0.05)' stroke-width='1'/%3E%3Cellipse cx='0' cy='20' rx='20' ry='16' fill='none' stroke='rgba(255,255,255,0.05)' stroke-width='1'/%3E%3Cellipse cx='40' cy='20' rx='20' ry='16' fill='none' stroke='rgba(255,255,255,0.05)' stroke-width='1'/%3E%3C/svg%3E");
}
.bt-newsletter .nl-content { padding: 2.75rem 3rem; position: relative; z-index: 1; }
.bt-newsletter .nl-ey {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255,255,255,.5);
  margin-bottom: .55rem;
}
.bt-newsletter .nl-title {
  font-family: var(--f-jp);
  font-size: 26px;
  font-weight: 600;
  color: #fff;
  line-height: 1.25;
  margin-bottom: .5rem;
  letter-spacing: -.2px;
}
.bt-newsletter .nl-sub {
  font-size: 13.5px;
  color: rgba(255,255,255,.62);
  margin-bottom: 1.5rem;
  font-weight: 300;
  line-height: 1.7;
}
.bt-newsletter .nl-form { display: flex; gap: 8px; max-width: 420px; }
.bt-newsletter .nl-input {
  flex: 1;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.2);
  color: #fff;
  font-family: var(--f-body);
  font-size: 13px;
  padding: 11px 18px;
  outline: none;
  transition: background .15s;
}
.bt-newsletter .nl-input::placeholder { color: rgba(255,255,255,.38); }
.bt-newsletter .nl-input:focus { background: rgba(255,255,255,.16); }
.btn-nl {
  background: var(--hanko);
  color: #fff;
  font-family: var(--f-body);
  font-size: 13.5px;
  font-weight: 600;
  padding: 11px 24px;
  transition: opacity .15s;
  letter-spacing: .02em;
  cursor: pointer;
  border: none;
}
.btn-nl:hover { opacity: .88; }
.bt-newsletter .nl-trust { font-size: 11px; color: rgba(255,255,255,.35); margin-top: .75rem; }
.bt-newsletter .nl-art {
  width: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.bt-newsletter .nl-kanji {
  font-family: var(--f-jp);
  font-size: 120px;
  font-weight: 700;
  color: rgba(255,255,255,.07);
  writing-mode: vertical-rl;
  letter-spacing: 10px;
}

/* ============================================================
   INSTAGRAM
   ============================================================ */
.bt-insta {
  background: var(--washi);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 2.5rem;
  position: relative;
  overflow: hidden;
}
.bt-insta .insta-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; }
.bt-insta .insta-hl { display: flex; align-items: center; gap: .85rem; }
.bt-insta .insta-ico {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: linear-gradient(135deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 22px;
}
.bt-insta .insta-ico svg { width: 22px; height: 22px; }
.bt-insta .insta-name { font-family: var(--f-jp); font-size: 18px; font-weight: 600; color: var(--ink); }
.bt-insta .insta-sub { font-size: 12px; color: var(--ink3); margin-top: 1px; }
.btn-follow {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: linear-gradient(135deg, #f09433, #dc2743, #bc1888);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  padding: 10px 20px;
  border-radius: 3px;
}
.btn-follow svg { width: 15px; height: 15px; }
.bt-insta .insta-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: .75rem; }
.bt-insta .insta-post { aspect-ratio: 1; overflow: hidden; cursor: pointer; position: relative; }
.bt-insta .insta-post img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.bt-insta .insta-post:hover img { transform: scale(1.04); }

/* ============================================================
   FOOTER
   ============================================================ */
.bt-footer { background: var(--sumi); }
.bt-footer .footer-top {
  padding: 2.25rem 2.5rem;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 3rem;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.bt-footer .footer-bp {
  display: flex;
  align-items: stretch;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 5px;
  position: relative;
}
.bt-footer .footer-bp::before,
.bt-footer .footer-bp::after {
  content: '';
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--sumi);
}
.bt-footer .footer-bp::before { left: -4px; }
.bt-footer .footer-bp::after { right: -4px; }
.bt-footer .fbp-k {
  padding: .22rem .5rem .22rem .7rem;
  border-right: 1px dashed rgba(255,255,255,.2);
  font-family: var(--f-jp);
  font-size: 14px;
  color: #fff;
  font-weight: 700;
}
.bt-footer .fbp-n {
  padding: .22rem .7rem .22rem .5rem;
  font-family: var(--f-jp);
  font-size: 13px;
  font-weight: 700;
  color: #fff;
}
.bt-footer .footer-links { display: flex; justify-content: center; gap: 2rem; }
.bt-footer .footer-links a { font-size: 12px; color: rgba(255,255,255,.38); cursor: pointer; transition: color .15s; }
.bt-footer .footer-links a:hover { color: rgba(255,255,255,.8); }
.bt-footer .footer-social { display: flex; align-items: center; gap: .4rem; justify-content: flex-end; }
.bt-footer .footer-social a {
  width: 34px;
  height: 34px;
  border-radius: 6px;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.45);
  cursor: pointer;
  transition: all .15s;
}
.bt-footer .footer-social a svg { width: 16px; height: 16px; }
.bt-footer .footer-social a:hover { background: rgba(255,255,255,.15); color: #fff; }
.bt-footer .footer-bottom {
  padding: 1rem 2.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 11.5px;
  color: rgba(255,255,255,.25);
}

/* ============================================================
   GUTENBERG — styles par défaut pour le contenu
   ============================================================ */
.entry-content {
  font-family: var(--f-body);
  font-size: 16px;
  line-height: 1.8;
  color: var(--ink2);
  max-width: 720px;
  margin: 0 auto;
  padding: 2.5rem;
}
.entry-content h1, .entry-content h2, .entry-content h3,
.entry-content h4, .entry-content h5, .entry-content h6 {
  font-family: var(--f-jp);
  color: var(--ink);
  line-height: 1.3;
  margin: 1.5rem 0 .75rem;
}
.entry-content h1 { font-size: 32px; }
.entry-content h2 { font-size: 24px; }
.entry-content h3 { font-size: 20px; }
.entry-content p { margin-bottom: 1.25rem; }
.entry-content a { color: var(--hanko); text-decoration: underline; text-underline-offset: 2px; }
.entry-content a:hover { color: var(--rouge); }
.entry-content blockquote {
  border-left: 3px solid var(--hanko);
  padding: .75rem 1.5rem;
  background: var(--washi);
  color: var(--ink2);
  font-style: italic;
  margin: 1.5rem 0;
}
.entry-content ul, .entry-content ol { padding-left: 1.5rem; margin-bottom: 1.25rem; }
.entry-content li { margin-bottom: .4rem; }
.entry-content img { border-radius: 3px; }
.entry-content figure { margin: 1.5rem 0; }
.entry-content figcaption { font-size: 12px; color: var(--ink3); margin-top: .4rem; text-align: center; }
.entry-content .wp-block-separator { border: none; border-top: 1px solid var(--line); margin: 2rem 0; }

/* Gutenberg alignment */
.alignwide { max-width: 1100px; margin-left: auto; margin-right: auto; }
.alignfull { max-width: 100%; }
.alignleft { float: left; margin-right: 1.5rem; }
.alignright { float: right; margin-left: 1.5rem; }
.aligncenter { text-align: center; margin-left: auto; margin-right: auto; }

/* ============================================================
   ARTICLE SINGLE — classes natives (copiables en bloc HTML)
   i = icône inline SVG helper
   ============================================================ */
.i { display:inline-block; vertical-align:-2px; }
.i * { fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }

/* Fil d'Ariane */
.crumb { background:var(--washi); border-bottom:1px solid var(--line); padding:.6rem 2.5rem; display:flex; align-items:center; gap:.5rem; font-size:12px; color:var(--ink3); }
.crumb a { color:var(--ink3); text-decoration:none; }
.crumb a:hover { color:var(--hanko); }
.crumb .sep { opacity:.4; }
.crumb .cur { color:var(--ink2); font-weight:500; }

/* Hero article */
.a-hero { display:grid; grid-template-columns:1fr 1fr; min-height:500px; border-bottom:1px solid var(--line); }
.ah-left { background:var(--hanko); position:relative; overflow:hidden; padding:3.25rem 3rem 2.5rem 2.5rem; display:flex; flex-direction:column; justify-content:space-between; }
.ah-left::before { content:''; position:absolute; inset:0; pointer-events:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='20'%3E%3Cellipse cx='20' cy='20' rx='20' ry='16' fill='none' stroke='rgba(255,255,255,0.08)' stroke-width='1'/%3E%3Cellipse cx='0' cy='20' rx='20' ry='16' fill='none' stroke='rgba(255,255,255,0.08)' stroke-width='1'/%3E%3Cellipse cx='40' cy='20' rx='20' ry='16' fill='none' stroke='rgba(255,255,255,0.08)' stroke-width='1'/%3E%3C/svg%3E"); }
.ah-left .kanji-wm { position:absolute; right:-12px; bottom:-24px; font-family:var(--f-jp); font-size:150px; font-weight:700; color:rgba(255,255,255,.07); line-height:1; pointer-events:none; }
.ah-content { position:relative; z-index:1; display:flex; flex-direction:column; height:100%; justify-content:space-between; gap:2rem; }
.ah-kicker { display:flex; align-items:center; gap:8px; margin-bottom:1.5rem; flex-wrap:wrap; }
.ah-tag { font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--hanko); background:#fff; padding:4px 11px; border-radius:2px; }
.ah-tag-2 { font-size:9px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:#fff; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.25); padding:4px 11px; border-radius:2px; }
.ah-date { font-size:11px; color:rgba(255,255,255,.6); }
.ah-title { font-family:var(--f-jp); font-size:40px; font-weight:700; color:#fff; line-height:1.18; margin-bottom:1.25rem; letter-spacing:-.5px; }
.ah-title em { font-style:normal; color:rgba(255,255,255,.62); }
.ah-excerpt { font-size:15px; line-height:1.85; color:rgba(255,255,255,.82); font-weight:300; max-width:440px; }
.ah-foot { border-top:1px solid rgba(255,255,255,.18); padding-top:1.25rem; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; }
.ah-author { display:flex; align-items:center; gap:.7rem; }
.ah-av { width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.3); display:flex; align-items:center; justify-content:center; color:#fff; font-family:var(--f-jp); font-size:16px; }
.ah-au-name { font-size:13px; font-weight:600; color:#fff; }
.ah-au-sub { font-size:11px; color:rgba(255,255,255,.6); margin-top:1px; }
.btn-white { display:inline-flex; align-items:center; gap:8px; background:#fff; color:var(--hanko); border:none; font-family:var(--f-body); font-size:13px; font-weight:600; padding:11px 22px; border-radius:3px; cursor:pointer; transition:opacity .15s; }
.btn-white:hover { opacity:.9; }
.ah-right { position:relative; overflow:hidden; }
.ah-right img { width:100%; height:100%; object-fit:cover; }
.ah-badge { position:absolute; top:1.25rem; left:1.25rem; background:rgba(250,247,242,.94); color:var(--ink2); font-size:9.5px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; padding:4px 11px; border-radius:2px; border-left:3px solid var(--hanko); backdrop-filter:blur(4px); }

/* Meta bar */
.meta-bar { background:var(--washi); border-bottom:1px solid var(--line); padding:.85rem 2.5rem; display:flex; align-items:center; gap:1.75rem; flex-wrap:wrap; }
.mb-item { display:flex; align-items:center; gap:7px; font-size:12px; color:var(--ink3); }
.mb-item .i { color:var(--hanko); }
.mb-item strong { color:var(--ink2); font-weight:500; }

/* Layout main + aside */
.outer { display:grid; grid-template-columns:1fr 310px; max-width:1200px; margin:0 auto; }
.main { padding:2.75rem 3rem 4rem 2.5rem; border-right:1px solid var(--line); min-width:0; }
.aside { padding:2.25rem 1.5rem; background:var(--washi); }
.aside-inner { position:sticky; top:160px; display:flex; flex-direction:column; gap:1.25rem; }

/* Lede / intro (drop cap sur le premier paragraphe) */
.lede { overflow:hidden; } /* contient le float du drop cap */
.lede p { font-size:16.5px; line-height:1.85; color:var(--ink2); font-weight:300; margin-bottom:1rem; }
.lede p:first-child::first-letter { font-family:var(--f-jp); font-size:58px; font-weight:700; color:var(--hanko); float:left; line-height:.82; padding:6px 12px 0 0; }
.lede em { font-style:italic; color:var(--ink3); }

/* Sections numérotées */
.section { margin-top:3rem; scroll-margin-top:160px; }
.section .sec-head { display:flex; align-items:flex-start; justify-content:flex-start; gap:1rem; margin-bottom:1.5rem; padding-bottom:.9rem; border-bottom:1px solid var(--line); position:relative; }
.section .sec-head::after { content:''; position:absolute; left:0; bottom:-1px; width:48px; height:2px; background:var(--hanko); }
.sec-num { font-family:var(--f-jp); font-size:40px; font-weight:700; color:rgba(193,39,45,.14); line-height:.9; min-width:36px; flex-shrink:0; }
.sec-tag { font-size:9px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--ink3); margin-bottom:.35rem; display:block; }
.section .sec-head h2 { font-family:var(--f-jp); font-size:25px; font-weight:600; color:var(--ink); line-height:1.25; letter-spacing:-.3px; margin:0; }

/* Prose */
.prose p { font-size:15.5px; line-height:1.85; color:var(--ink2); margin-bottom:1rem; font-weight:300; }
.prose p:last-child { margin-bottom:0; }
.prose strong { font-weight:500; color:var(--ink); }
.prose em { color:var(--ink3); font-style:italic; }

/* Photos */
.frame { margin:1.75rem 0; border:1px solid var(--line); border-radius:4px; overflow:hidden; background:var(--washi); }
.frame img { width:100%; height:auto; max-height:460px; object-fit:cover; display:block; }
.cap { padding:9px 14px; font-size:12px; color:var(--ink3); font-style:italic; border-top:1px solid var(--line); line-height:1.5; }
.pgrid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:1.75rem 0; }
.pgrid .frame { margin:0; }
.pgrid .frame img { max-height:230px; }

/* Pullquote */
.pq { margin:1.75rem 0; padding:1.4rem 1.6rem 1.4rem 1.75rem; background:var(--washi); border-left:3px solid var(--hanko); position:relative; }
.pq p { font-family:var(--f-jp); font-size:17px; font-weight:600; color:var(--ink); line-height:1.55; margin:0; }
.pq::before { content:'\201C'; font-family:var(--f-jp); font-size:56px; color:var(--hanko); opacity:.18; position:absolute; top:2px; left:12px; line-height:1; }

/* Tip */
.tip { display:flex; gap:12px; background:var(--washi); border:1px solid var(--line); border-radius:4px; padding:1rem 1.2rem; margin:1.25rem 0; align-items:flex-start; }
.tip .ico { width:30px; height:30px; border-radius:7px; background:#fff; border:1px solid rgba(193,39,45,.25); display:flex; align-items:center; justify-content:center; flex-shrink:0; color:var(--hanko); position:relative; }
.tip .ico:empty::after,.bt-tip .ico:empty::after { content:''; display:block; width:16px; height:16px; background-color:var(--hanko); -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2.5C5.8 2.5 4 4.2 4 6.2c0 1.6 1 3 2.2 3.9v1.7h3.6v-1.7C11 9.2 12 7.8 12 6.2 12 4.2 10.2 2.5 8 2.5z'/%3E%3Cpath d='M6.4 11.8h3.2M6.8 13.2h2.4'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2.5C5.8 2.5 4 4.2 4 6.2c0 1.6 1 3 2.2 3.9v1.7h3.6v-1.7C11 9.2 12 7.8 12 6.2 12 4.2 10.2 2.5 8 2.5z'/%3E%3Cpath d='M6.4 11.8h3.2M6.8 13.2h2.4'/%3E%3C/svg%3E"); -webkit-mask-size:contain; mask-size:contain; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-position:center; mask-position:center; }
.tip p { font-size:13.5px; color:var(--ink2); margin:0; line-height:1.65; font-weight:300; }
.tip strong { color:var(--ink); font-weight:500; }

/* Info box */
.ibox { border:1px solid var(--line); border-radius:4px; overflow:hidden; margin:1.5rem 0; }
.ibox-t { background:var(--washi); padding:.65rem 1.1rem; font-size:10px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--hanko); border-bottom:1px solid var(--line); display:flex; align-items:center; gap:8px; }
.ibox-b { padding:0 1.1rem; }
.irow { display:flex; gap:12px; padding:.65rem 0; border-bottom:1px solid var(--line); font-size:12.5px; align-items:flex-start; }
.irow:last-child { border-bottom:none; }
.ilab { color:var(--ink3); min-width:90px; font-size:11px; flex-shrink:0; padding-top:1px; }
.ival { color:var(--ink2); flex:1; line-height:1.5; }

/* Flavors / chips */
.flav-lbl { font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--ink3); margin:1.5rem 0 .75rem; }
.flav { display:grid; grid-template-columns:repeat(auto-fit,minmax(112px,1fr)); gap:8px; margin-bottom:1.5rem; }
.chip { padding:8px 10px; border-radius:3px; border:1px solid var(--line); background:#fff; display:flex; align-items:center; gap:8px; font-size:12px; color:var(--ink2); transition:border-color .15s; }
.chip:hover { border-color:var(--hanko); }
.dot { width:10px; height:10px; border-radius:50%; flex-shrink:0; border:1px solid rgba(0,0,0,.08); }

/* Récap indigo */
.recap { background:var(--indigo); border-radius:6px; padding:2.25rem; margin-top:2.75rem; position:relative; overflow:hidden; }
.recap::before { content:''; position:absolute; inset:0; pointer-events:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='20'%3E%3Cellipse cx='20' cy='20' rx='20' ry='16' fill='none' stroke='rgba(255,255,255,0.05)' stroke-width='1'/%3E%3Cellipse cx='0' cy='20' rx='20' ry='16' fill='none' stroke='rgba(255,255,255,0.05)' stroke-width='1'/%3E%3Cellipse cx='40' cy='20' rx='20' ry='16' fill='none' stroke='rgba(255,255,255,0.05)' stroke-width='1'/%3E%3C/svg%3E"); }
.recap-h { font-family:var(--f-jp); font-size:22px; font-weight:600; color:#fff; margin-bottom:.3rem; position:relative; }
.recap-s { color:rgba(255,255,255,.6); font-size:13px; margin-bottom:1.5rem; position:relative; }
.recap-g { display:grid; grid-template-columns:1fr 1fr; gap:12px; position:relative; }
.rc { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); border-radius:5px; padding:1.1rem; }
.rc-lbl { font-size:9px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.6); margin-bottom:.5rem; display:flex; align-items:center; gap:6px; }
.rc h3 { font-family:var(--f-jp); font-size:16px; font-weight:600; color:#fff; margin-bottom:.5rem; }
.rc p { font-size:12.5px; color:rgba(255,255,255,.65); line-height:1.6; margin-bottom:.85rem; }
.btn-aff { display:inline-flex; align-items:center; gap:5px; padding:7px 14px; background:#fff; color:var(--hanko); border:none; border-radius:99px; font-size:11.5px; font-weight:600; cursor:pointer; transition:opacity .15s; }
.btn-aff:hover { opacity:.9; }

/* FAQ */
.faq { margin-top:2.75rem; }
.faq > h2 { font-family:var(--f-jp); font-size:22px; font-weight:600; color:var(--ink); margin-bottom:.9rem; padding-bottom:.7rem; border-bottom:1px solid var(--line); position:relative; }
.faq > h2::after { content:''; position:absolute; left:0; bottom:-1px; width:48px; height:2px; background:var(--hanko); }
.faq details { border-bottom:1px solid var(--line); }
.faq summary { font-family:var(--f-jp); font-weight:600; font-size:15px; color:var(--ink); list-style:none; display:flex; justify-content:space-between; align-items:center; padding:1rem 0; cursor:pointer; gap:1rem; }
.faq summary::-webkit-details-marker { display:none; }
.fq-ic { flex-shrink:0; width:22px; height:22px; border-radius:50%; border:1.5px solid var(--hanko); color:var(--hanko); display:flex; align-items:center; justify-content:center; font-size:15px; font-weight:600; line-height:1; }
.fq-ic::after { content:'+'; }
.faq details[open] .fq-ic::after { content:'−'; }
.faq details p { padding:.1rem 0 1.25rem; color:var(--ink3); font-size:13.5px; line-height:1.75; font-weight:300; }

/* Articles liés */
.related { margin-top:2.75rem; }
.rel-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.1rem; padding-bottom:.7rem; border-bottom:1px solid var(--line); position:relative; }
.rel-head::after { content:''; position:absolute; left:0; bottom:-1px; width:48px; height:2px; background:var(--hanko); }
.rel-title { font-family:var(--f-jp); font-size:19px; font-weight:600; color:var(--ink); }
.rel-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
.rel-card { cursor:pointer; display:flex; flex-direction:column; transition:transform .2s; text-decoration:none; }
.rel-card:hover { transform:translateY(-3px); }
.rc-img { height:150px; overflow:hidden; position:relative; margin-bottom:.85rem; }
.rc-img img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.rel-card:hover .rc-img img { transform:scale(1.04); }
.rc-badge { position:absolute; top:.6rem; left:.6rem; display:inline-flex; align-items:center; gap:5px; font-size:8.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#fff; background:var(--hanko); padding:3px 8px; border-radius:2px; }
.rc-tt { font-family:var(--f-jp); font-size:14.5px; font-weight:600; line-height:1.4; color:var(--ink); margin-bottom:.35rem; }
.rc-mt { font-size:11px; color:var(--ink3); display:flex; align-items:center; gap:5px; }

/* Sidebar */
.toc { background:#fff; border:1px solid var(--line); border-top:3px solid var(--hanko); border-radius:0 0 4px 4px; padding:1.2rem 1.4rem; }
.toc-t { font-size:10px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--hanko); margin-bottom:.85rem; display:flex; align-items:center; gap:7px; }
.toc ol { list-style:none; counter-reset:t; display:flex; flex-direction:column; gap:.15rem; padding:0; }
.toc li { counter-increment:t; }
.toc a { text-decoration:none; color:var(--ink3); font-size:12.5px; display:flex; align-items:baseline; gap:8px; transition:color .15s; padding:.25rem 0; line-height:1.4; }
.toc a::before { content:counter(t,decimal-leading-zero); font-size:10px; color:var(--hanko); font-weight:700; min-width:18px; }
.toc a:hover { color:var(--hanko); }
.widget { background:#fff; border:1px solid var(--line); border-radius:4px; overflow:hidden; }
.w-head { background:var(--hanko); padding:.6rem 1rem; font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:#fff; display:flex; align-items:center; gap:8px; }
.w-body { padding:.9rem 1rem; }
.addr { display:flex; flex-direction:column; gap:.6rem; }
.ad { padding:.7rem; background:var(--washi); border:1px solid var(--line); border-radius:4px; transition:border-color .15s; cursor:pointer; text-decoration:none; display:block; }
.ad:hover { border-color:var(--hanko); }
.ad-lbl { font-size:9px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--hanko); margin-bottom:.25rem; display:flex; align-items:center; gap:5px; }
.ad-name { font-family:var(--f-jp); font-size:13.5px; font-weight:600; color:var(--ink); margin-bottom:.2rem; }
.ad-desc { font-size:11px; color:var(--ink3); line-height:1.5; }
.ad-btn { display:flex; align-items:center; justify-content:center; gap:5px; background:var(--sumi); color:#fff; border:none; font-size:11px; font-weight:500; padding:7px; border-radius:3px; width:100%; margin-top:.6rem; transition:background .15s; cursor:pointer; }
.ad-btn:hover { background:var(--indigo); }

/* Sidebar newsletter */
.snl { background:var(--indigo); border-radius:4px; padding:1.4rem 1.3rem; position:relative; overflow:hidden; }
.snl .kanji-wm { position:absolute; right:-8px; bottom:-18px; font-family:var(--f-jp); font-size:70px; font-weight:700; color:rgba(255,255,255,.08); writing-mode:vertical-rl; letter-spacing:6px; }
.snl-ey { font-size:9px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.55); margin-bottom:.4rem; display:flex; align-items:center; gap:6px; position:relative; }
.snl-t { font-family:var(--f-jp); font-size:17px; font-weight:600; color:#fff; line-height:1.25; margin-bottom:.4rem; position:relative; }
.snl-s { font-size:12px; color:rgba(255,255,255,.6); margin-bottom:.9rem; font-weight:300; position:relative; }
.snl-f { display:flex; gap:6px; position:relative; }
.snl-in { flex:1; min-width:0; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22); color:#fff; font-family:var(--f-body); font-size:12px; padding:8px 12px; border-radius:3px; outline:none; }
.snl-in::placeholder { color:rgba(255,255,255,.4); }
.snl-b { background:var(--hanko); color:#fff; border:none; font-size:12px; font-weight:600; padding:8px 14px; border-radius:3px; cursor:pointer; }
.snl-tr { font-size:10px; color:rgba(255,255,255,.35); margin-top:.55rem; position:relative; }

/* Disclaimer */
.disc { text-align:center; padding:1.25rem 2.5rem; border-top:1px solid var(--line); background:var(--washi); }
.disc p { font-size:12px; color:var(--ink3); max-width:680px; margin:0 auto; line-height:1.6; }

/* ============================================================
   COMPARATIFS — composants réutilisables
   ============================================================ */

/* Étoiles */
.bt-stars { display:inline-flex; align-items:center; gap:2px; }
.bt-star { font-size:15px; color:var(--line); line-height:1; }
.bt-star.on { color:#C8A65B; }
.bt-star.half { position:relative; color:var(--line); }
.bt-star.half::after { content:'★'; position:absolute; left:0; top:0; width:50%; overflow:hidden; color:#C8A65B; }
.bt-stars-score { font-size:11px; color:var(--ink3); margin-left:5px; }

/* Badges podium */
.bt-podium { display:inline-flex; align-items:center; gap:4px; font-size:9.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:4px 11px; border-radius:99px; white-space:nowrap; }
.bt-podium-1 { background:linear-gradient(135deg,#C8A65B,#e8d080); color:#fff; box-shadow:0 2px 8px rgba(200,166,91,.35); }
.bt-podium-2 { background:linear-gradient(135deg,#8E99A4,#A8B3BC); color:#fff; }
.bt-podium-3 { background:linear-gradient(135deg,#B87333,#D4935A); color:#fff; }
.bt-podium-4, .bt-podium-5 { background:var(--washi); color:var(--ink3); border:1px solid var(--line); }

/* Badge "Notre sélection" */
.bt-selection-badge { display:inline-flex; align-items:center; gap:5px; background:var(--hanko); color:#fff; font-size:9px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:3px 10px 3px 8px; border-radius:2px; }
.bt-selection-badge::before { content:'★'; font-size:11px; }

/* Prix */
.bt-price-block { display:flex; flex-direction:column; gap:1px; }
.bt-price-from { font-size:9.5px; text-transform:uppercase; letter-spacing:.08em; color:var(--ink3); }
.bt-price-amount { font-family:var(--f-jp); font-size:26px; font-weight:700; color:var(--hanko); line-height:1; }
.bt-price-unit { font-size:11px; color:var(--ink3); margin-left:2px; }

/* Tableau comparatif */
.compare-wrap { margin:2rem 0; overflow-x:auto; border:1px solid var(--line); border-radius:6px; overflow:hidden; }
.compare-table { width:100%; border-collapse:collapse; font-size:13px; min-width:620px; }
.compare-table thead th { background:var(--sumi); color:rgba(255,255,255,.7); font-family:var(--f-body); font-size:9.5px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; padding:11px 14px; text-align:left; white-space:nowrap; }
.compare-table tbody td { padding:13px 14px; border-bottom:1px solid var(--line); vertical-align:middle; }
.compare-table tbody tr:last-child td { border-bottom:none; }
.compare-table tbody tr { transition:background .12s; }
.compare-table tbody tr:hover { background:var(--washi); }
/* Ligne gagnante */
.compare-table tbody tr.ct-winner { background:rgba(193,39,45,.04); }
.compare-table tbody tr.ct-winner td { border-bottom-color:rgba(193,39,45,.1); }
.compare-table tbody tr.ct-winner:hover { background:rgba(193,39,45,.07); }
/* Colonnes */
.ct-rank { width:140px; }
.ct-name-col { font-family:var(--f-jp); font-size:14px; font-weight:600; color:var(--ink); }
.ct-name-col small { font-family:var(--f-body); font-size:11px; color:var(--ink3); font-weight:400; display:block; margin-top:1px; }
.ct-price-col { font-family:var(--f-jp); font-size:15px; font-weight:700; color:var(--hanko); white-space:nowrap; }
.ct-price-col small { font-family:var(--f-body); font-size:10px; color:var(--ink3); font-weight:400; display:block; }
.ct-cta { display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:600; padding:7px 15px; border-radius:99px; white-space:nowrap; transition:all .15s; }
.ct-cta-default { background:var(--sumi); color:#fff; }
.ct-cta-default:hover { background:var(--indigo); color:#fff; }
.ct-cta-winner { background:var(--hanko); color:#fff; }
.ct-cta-winner:hover { background:var(--rouge); color:#fff; }

/* En-tête offre (section détail) */
.offer-head { display:flex; align-items:flex-start; justify-content:space-between; gap:1.5rem; padding:1.5rem 1.75rem; background:var(--washi); border:1px solid var(--line); border-radius:4px; margin-bottom:1.5rem; flex-wrap:wrap; }
.offer-head.is-winner { background:rgba(193,39,45,.03); border-color:rgba(193,39,45,.25); border-left:3px solid var(--hanko); }
.offer-head-left { display:flex; flex-direction:column; gap:.5rem; }
.offer-head-right { display:flex; flex-direction:column; align-items:flex-end; gap:.75rem; flex-shrink:0; }
.offer-title { font-family:var(--f-jp); font-size:22px; font-weight:700; color:var(--ink); line-height:1.2; margin-bottom:.25rem; }
.offer-network { font-size:12px; color:var(--ink3); }
.btn-offer { display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:600; padding:10px 22px; border-radius:99px; transition:all .15s; }
.btn-offer-winner { background:var(--hanko); color:#fff; }
.btn-offer-winner:hover { background:var(--rouge); color:#fff; }
.btn-offer-default { background:var(--sumi); color:#fff; }
.btn-offer-default:hover { background:var(--indigo); color:#fff; }

/* Pros / Cons */
.pros-cons { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin:1.25rem 0; }
.pros-cons-block { padding:1rem 1.2rem; border-radius:4px; }
.pros-block { background:rgba(74,103,65,.06); border:1px solid rgba(74,103,65,.2); }
.cons-block { background:rgba(193,39,45,.04); border:1px solid rgba(193,39,45,.14); }
.pros-cons-title { font-size:9.5px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; margin-bottom:.65rem; }
.pros-block .pros-cons-title { color:#4a6741; }
.cons-block .pros-cons-title { color:var(--hanko); }
.pros-cons-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.35rem; }
.pros-cons-list li { font-size:13px; color:var(--ink2); display:flex; gap:7px; align-items:flex-start; line-height:1.5; font-weight:300; }
.pros-block li::before { content:'✓'; color:#4a6741; font-weight:700; flex-shrink:0; font-size:12px; }
.cons-block li::before { content:'✗'; color:var(--hanko); font-weight:700; flex-shrink:0; font-size:12px; }

/* Verdict final */
.verdict-box { background:var(--indigo); border-radius:6px; padding:2rem 2.25rem; position:relative; overflow:hidden; margin-top:1rem; }
.verdict-box::before { content:''; position:absolute; inset:0; pointer-events:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='20'%3E%3Cellipse cx='20' cy='20' rx='20' ry='16' fill='none' stroke='rgba(255,255,255,0.05)' stroke-width='1'/%3E%3C/svg%3E"); }
.verdict-box-title { font-family:var(--f-jp); font-size:20px; font-weight:600; color:#fff; margin-bottom:.4rem; position:relative; }
.verdict-box-sub { font-size:13px; color:rgba(255,255,255,.6); margin-bottom:1.25rem; position:relative; }
.verdict-box-body { font-size:14px; line-height:1.8; color:rgba(255,255,255,.82); font-weight:300; position:relative; }
.verdict-box-body strong { color:#fff; font-weight:500; }

/* Responsive comparatif */
@media (max-width:768px) {
  .pros-cons { grid-template-columns:1fr; }
  .offer-head { flex-direction:column; }
  .offer-head-right { align-items:flex-start; }
  .bt-price-amount { font-size:22px; }
}

/* ── Blocs natifs Gutenberg dans .main ─────────────────────── */

/* Paragraphe standard → style prose */
.main .wp-block-paragraph,
.main > p {
  font-size:15.5px; line-height:1.85; color:var(--ink2);
  margin-bottom:1rem; font-weight:300;
}
.main .wp-block-paragraph strong, .main > p strong { font-weight:500; color:var(--ink); }
.main .wp-block-paragraph em, .main > p em { color:var(--ink3); font-style:italic; }
.main .wp-block-paragraph a, .main > p a { color:var(--hanko); text-decoration:underline; text-underline-offset:2px; }

/* H2 natif → style section avec ligne hanko, SANS numéro auto */
.main .wp-block-heading h2,
.main > h2 {
  font-family:var(--f-jp); font-size:25px; font-weight:600; color:var(--ink);
  line-height:1.25; letter-spacing:-.3px;
  margin:2.75rem 0 1.25rem; padding-bottom:.85rem;
  border-bottom:1px solid var(--line); position:relative;
}
.main .wp-block-heading h2::after,
.main > h2::after {
  content:''; position:absolute; left:0; bottom:-1px; width:48px; height:2px; background:var(--hanko);
}
/* Annule le style générique pour les h2 DANS un .section custom */
.main .section .sec-head h2 { border-bottom:none; padding-bottom:0; margin:0; font-size:25px; }
.main .section .sec-head h2::after { display:none; }

/* H3 natif */
.main .wp-block-heading h3,
.main > h3 {
  font-family:var(--f-jp); font-size:19px; font-weight:600; color:var(--ink);
  line-height:1.3; margin:2rem 0 .75rem;
}

/* Liste natives */
.main .wp-block-list,
.main > ul, .main > ol {
  font-size:15px; line-height:1.8; color:var(--ink2); font-weight:300;
  padding-left:1.5rem; margin-bottom:1rem;
}
.main .wp-block-list li, .main > ul li, .main > ol li { margin-bottom:.35rem; }

/* Image native WordPress (wp-block-image) */
.main .wp-block-image {
  margin:1.75rem auto; width:fit-content; max-width:100%;
  border:1px solid var(--line); border-radius:4px; overflow:hidden; background:var(--washi);
}
.main .wp-block-image img { display:block; max-width:100%; height:auto; }
.main .wp-block-image figcaption {
  padding:9px 14px; font-size:12px; color:var(--ink3); font-style:italic;
  line-height:1.5; background:var(--washi); margin:0; text-align:center;
}
.main .wp-block-image figcaption:not(:empty) {
  border-top:1px solid var(--line);
}
/* Galerie WordPress 2 colonnes */
.main .wp-block-gallery.columns-2 {
  display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:1.75rem 0;
}
.main .wp-block-gallery.columns-2 .wp-block-image { margin:0; }

/* Séparateur natif */
.main .wp-block-separator {
  border:none; border-top:1px solid var(--line); margin:2rem 0;
}
.main .wp-block-separator.is-style-wide { border-top-color:var(--hanko); }

/* Citation native Gutenberg */
.main .wp-block-quote {
  margin:1.75rem 0; padding:1.4rem 1.6rem 1.4rem 1.75rem;
  background:var(--washi); border-left:3px solid var(--hanko); position:relative;
}
.main .wp-block-quote p {
  font-family:var(--f-jp); font-size:17px; font-weight:600; color:var(--ink); line-height:1.55; margin:0;
}
.main .wp-block-quote::before {
  content:'\201C'; font-family:var(--f-jp); font-size:56px; color:var(--hanko);
  opacity:.18; position:absolute; top:2px; left:12px; line-height:1;
}
.main .wp-block-quote cite { font-size:12px; color:var(--ink3); font-style:normal; display:block; margin-top:.5rem; }

/* Bouton natif */
.main .wp-block-button__link {
  background:var(--sumi); color:#fff; font-family:var(--f-body);
  font-size:13px; font-weight:500; padding:11px 24px; border-radius:3px;
  transition:background .15s;
}
.main .wp-block-button__link:hover { background:var(--indigo); }
.main .wp-block-button.is-style-outline .wp-block-button__link {
  background:transparent; color:var(--hanko);
  border:1.5px solid var(--hanko);
}

/* ── Espacement entre blocs custom HTML ───────────────────── */
.main .wp-block-html + .wp-block-html { margin-top:0; }
.main .wp-block-html > .section { margin-top:3rem; }
.main .wp-block-html > .tip,
.main .wp-block-html > .pq,
.main .wp-block-html > .ibox,
.main .wp-block-html > .frame,
.main .wp-block-html > .pgrid,
.main .wp-block-html > .flav,
.main .wp-block-html > .flav-lbl,
.main .wp-block-html > .recap,
.main .wp-block-html > .faq { display:block; }

/* Responsive article */
@media (max-width:920px) {
  .a-hero { grid-template-columns:1fr; }
  .ah-right { min-height:260px; }
  .outer { grid-template-columns:1fr; }
  .main { border-right:none; padding:2rem 1.25rem; }
  .aside { border-top:1px solid var(--line); }
  .aside-inner { position:static; }
  .recap-g { grid-template-columns:1fr; }
  .pgrid { grid-template-columns:1fr; }
  .rel-grid { grid-template-columns:1fr; }
  .ah-title { font-size:26px; }
}

/* ============================================================
   ARTICLE SINGLE — gabarit complet (anciens alias bt-*)
   ============================================================ */

/* Fil d'Ariane */
.bt-crumb {
  background: var(--washi);
  border-bottom: 1px solid var(--line);
  padding: .6rem 2.5rem;
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: 12px;
  color: var(--ink3);
}
.bt-crumb a { color: var(--ink3); text-decoration: none; }
.bt-crumb a:hover { color: var(--hanko); }
.bt-crumb .sep { opacity: .4; }
.bt-crumb .cur { color: var(--ink2); font-weight: 500; }

/* Hero article */
.bt-a-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 500px;
  border-bottom: 1px solid var(--line);
}
.bt-a-hero .ah-left {
  background: var(--hanko);
  position: relative;
  overflow: hidden;
  padding: 3.25rem 3rem 2.5rem 2.5rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.bt-a-hero .ah-left::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='20'%3E%3Cellipse cx='20' cy='20' rx='20' ry='16' fill='none' stroke='rgba(255,255,255,0.08)' stroke-width='1'/%3E%3Cellipse cx='0' cy='20' rx='20' ry='16' fill='none' stroke='rgba(255,255,255,0.08)' stroke-width='1'/%3E%3Cellipse cx='40' cy='20' rx='20' ry='16' fill='none' stroke='rgba(255,255,255,0.08)' stroke-width='1'/%3E%3C/svg%3E");
}
.bt-a-hero .ah-kanji-wm {
  position: absolute;
  right: -12px;
  bottom: -24px;
  font-family: var(--f-jp);
  font-size: 150px;
  font-weight: 700;
  color: rgba(255,255,255,.07);
  line-height: 1;
  pointer-events: none;
}
.bt-a-hero .ah-content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: space-between;
  gap: 2rem;
}
.bt-a-hero .ah-kicker {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}
.bt-a-hero .ah-tag {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--hanko);
  background: #fff;
  padding: 4px 11px;
  border-radius: 2px;
}
.bt-a-hero .ah-tag-2 {
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #fff;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.25);
  padding: 4px 11px;
  border-radius: 2px;
}
.bt-a-hero .ah-date { font-size: 11px; color: rgba(255,255,255,.6); }
.bt-a-hero .ah-title {
  font-family: var(--f-jp);
  font-size: 40px;
  font-weight: 700;
  color: #fff;
  line-height: 1.18;
  margin-bottom: 1.25rem;
  letter-spacing: -.5px;
}
.bt-a-hero .ah-title em { font-style: normal; color: rgba(255,255,255,.62); }
.bt-a-hero .ah-excerpt {
  font-size: 15px;
  line-height: 1.85;
  color: rgba(255,255,255,.82);
  font-weight: 300;
  max-width: 440px;
}
.bt-a-hero .ah-foot {
  border-top: 1px solid rgba(255,255,255,.18);
  padding-top: 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
}
.bt-a-hero .ah-author { display: flex; align-items: center; gap: .7rem; }
.bt-a-hero .ah-av {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255,255,255,.15);
  border: 1px solid rgba(255,255,255,.3);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-family: var(--f-jp);
  font-size: 16px;
}
.bt-a-hero .ah-au-name { font-size: 13px; font-weight: 600; color: #fff; }
.bt-a-hero .ah-au-sub { font-size: 11px; color: rgba(255,255,255,.6); margin-top: 1px; }
.btn-white {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  color: var(--hanko);
  font-family: var(--f-body);
  font-size: 13px;
  font-weight: 600;
  padding: 11px 22px;
  border-radius: 3px;
  cursor: pointer;
  transition: opacity .15s;
  border: none;
}
.btn-white:hover { opacity: .9; }
.bt-a-hero .ah-right { position: relative; overflow: hidden; }
.bt-a-hero .ah-right img { width: 100%; height: 100%; object-fit: cover; }
.bt-a-hero .ah-badge {
  position: absolute;
  top: 1.25rem;
  left: 1.25rem;
  background: rgba(250,247,242,.94);
  color: var(--ink2);
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 4px 11px;
  border-radius: 2px;
  border-left: 3px solid var(--hanko);
  backdrop-filter: blur(4px);
}

/* Meta bar */
.bt-meta-bar {
  background: var(--washi);
  border-bottom: 1px solid var(--line);
  padding: .85rem 2.5rem;
  display: flex;
  align-items: center;
  gap: 1.75rem;
  flex-wrap: wrap;
}
.bt-meta-bar .mb-item {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  color: var(--ink3);
}
.bt-meta-bar .mb-item svg { color: var(--hanko); width: 14px; height: 14px; flex-shrink: 0; }
.bt-meta-bar .mb-item strong { color: var(--ink2); font-weight: 500; }
.bt-meta-bar .mb-share { margin-left: auto; }

/* Layout article */
.bt-article-outer {
  display: grid;
  grid-template-columns: 1fr 310px;
  max-width: 1200px;
  margin: 0 auto;
}
.bt-article-main {
  padding: 2.75rem 3rem 4rem 2.5rem;
  border-right: 1px solid var(--line);
  min-width: 0;
}
.bt-article-aside {
  padding: 2.25rem 1.5rem;
  background: var(--washi);
}
.bt-article-aside .aside-inner {
  position: sticky;
  top: 96px;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

/* Intro / Lede */
.bt-lede p {
  font-size: 16.5px;
  line-height: 1.85;
  color: var(--ink2);
  font-weight: 300;
  margin-bottom: 1rem;
}
.bt-lede p:first-child::first-letter {
  font-family: var(--f-jp);
  font-size: 58px;
  font-weight: 700;
  color: var(--hanko);
  float: left;
  line-height: .82;
  padding: 6px 12px 0 0;
}
.bt-lede em { font-style: italic; color: var(--ink3); }

/* Sections numérotées */
.bt-section {
  margin-top: 3rem;
  scroll-margin-top: 160px;
}
.bt-section .sec-head {
  display: flex;
  align-items: flex-start;
  gap: 1.1rem;
  margin-bottom: 1.5rem;
  padding-bottom: .9rem;
  border-bottom: 1px solid var(--line);
  position: relative;
}
.bt-section .sec-head::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 48px;
  height: 2px;
  background: var(--hanko);
}
.bt-section .sec-num {
  font-family: var(--f-jp);
  font-size: 40px;
  font-weight: 700;
  color: rgba(193,39,45,.14);
  line-height: .9;
  min-width: 46px;
  flex-shrink: 0;
}
.bt-section .sec-tag {
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ink3);
  margin-bottom: .35rem;
  display: block;
}
.bt-section .sec-head h2 {
  font-family: var(--f-jp);
  font-size: 25px;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.25;
  letter-spacing: -.3px;
  margin: 0;
}

/* Prose */
.bt-prose p {
  font-size: 15.5px;
  line-height: 1.85;
  color: var(--ink2);
  margin-bottom: 1rem;
  font-weight: 300;
}
.bt-prose p:last-child { margin-bottom: 0; }
.bt-prose strong { font-weight: 500; color: var(--ink); }
.bt-prose em { color: var(--ink3); font-style: italic; }
.bt-prose a { color: var(--hanko); text-decoration: underline; text-underline-offset: 2px; }

/* Photos */
.bt-frame {
  margin: 1.75rem 0;
  border: 1px solid var(--line);
  border-radius: 4px;
  overflow: hidden;
  background: var(--washi);
}
.bt-frame img {
  width: 100%;
  height: auto;
  max-height: 460px;
  object-fit: cover;
  display: block;
}
.bt-frame .cap {
  padding: 9px 14px;
  font-size: 12px;
  color: var(--ink3);
  font-style: italic;
  border-top: 1px solid var(--line);
  line-height: 1.5;
}
.bt-pgrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 1.75rem 0;
}
.bt-pgrid .bt-frame { margin: 0; }
.bt-pgrid .bt-frame img { max-height: 230px; }

/* Pullquote */
.bt-pq {
  margin: 1.75rem 0;
  padding: 1.4rem 1.6rem 1.4rem 1.75rem;
  background: var(--washi);
  border-left: 3px solid var(--hanko);
  position: relative;
}
.bt-pq p {
  font-family: var(--f-jp);
  font-size: 17px;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.55;
  margin: 0;
}
.bt-pq::before {
  content: '\201C';
  font-family: var(--f-jp);
  font-size: 56px;
  color: var(--hanko);
  opacity: .18;
  position: absolute;
  top: 2px;
  left: 12px;
  line-height: 1;
}

/* Tip */
.bt-tip {
  display: flex;
  gap: 12px;
  background: var(--washi);
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 1rem 1.2rem;
  margin: 1.25rem 0;
  align-items: flex-start;
}
.bt-tip .ico {
  width: 30px;
  height: 30px;
  border-radius: 7px;
  background: #fff;
  border: 1px solid rgba(193,39,45,.25);
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--hanko);
}
.bt-tip .ico svg { width: 16px; height: 16px; }
.bt-tip p { font-size: 13.5px; color: var(--ink2); margin: 0; line-height: 1.65; font-weight: 300; }
.bt-tip strong { color: var(--ink); font-weight: 500; }

/* Info box */
.bt-ibox {
  border: 1px solid var(--line);
  border-radius: 4px;
  overflow: hidden;
  margin: 1.5rem 0;
}
.bt-ibox .ibox-t {
  background: var(--washi);
  padding: .65rem 1.1rem;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--hanko);
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  gap: 8px;
}
.bt-ibox .ibox-t svg { width: 13px; height: 13px; }
.bt-ibox .ibox-b { padding: 0 1.1rem; }
.bt-irow {
  display: flex;
  gap: 12px;
  padding: .65rem 0;
  border-bottom: 1px solid var(--line);
  font-size: 12.5px;
  align-items: flex-start;
}
.bt-irow:last-child { border-bottom: none; }
.bt-irow .ilab { color: var(--ink3); min-width: 90px; font-size: 11px; flex-shrink: 0; padding-top: 1px; }
.bt-irow .ival { color: var(--ink2); flex: 1; line-height: 1.5; }

/* Flavors / chips */
.bt-flav-lbl {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink3);
  margin: 1.5rem 0 .75rem;
}
.bt-flav {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
  gap: 8px;
  margin-bottom: 1.5rem;
}
.bt-chip {
  padding: 8px 10px;
  border-radius: 3px;
  border: 1px solid var(--line);
  background: #fff;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--ink2);
  transition: border-color .15s;
}
.bt-chip:hover { border-color: var(--hanko); }
.bt-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
  border: 1px solid rgba(0,0,0,.08);
}

/* Récap indigo */
.bt-recap {
  background: var(--indigo);
  border-radius: 6px;
  padding: 2.25rem;
  margin-top: 2.75rem;
  position: relative;
  overflow: hidden;
}
.bt-recap::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='20'%3E%3Cellipse cx='20' cy='20' rx='20' ry='16' fill='none' stroke='rgba(255,255,255,0.05)' stroke-width='1'/%3E%3Cellipse cx='0' cy='20' rx='20' ry='16' fill='none' stroke='rgba(255,255,255,0.05)' stroke-width='1'/%3E%3Cellipse cx='40' cy='20' rx='20' ry='16' fill='none' stroke='rgba(255,255,255,0.05)' stroke-width='1'/%3E%3C/svg%3E");
}
.bt-recap .recap-h {
  font-family: var(--f-jp);
  font-size: 22px;
  font-weight: 600;
  color: #fff;
  margin-bottom: .3rem;
  position: relative;
}
.bt-recap .recap-s {
  color: rgba(255,255,255,.6);
  font-size: 13px;
  margin-bottom: 1.5rem;
  position: relative;
}
.bt-recap .recap-g {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  position: relative;
}
.bt-recap .rc {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 5px;
  padding: 1.1rem;
}
.bt-recap .rc-lbl {
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.6);
  margin-bottom: .5rem;
  display: flex;
  align-items: center;
  gap: 6px;
}
.bt-recap .rc-lbl svg { width: 12px; height: 12px; color: rgba(255,255,255,.7); }
.bt-recap .rc h3 {
  font-family: var(--f-jp);
  font-size: 16px;
  font-weight: 600;
  color: #fff;
  margin-bottom: .5rem;
}
.bt-recap .rc p {
  font-size: 12.5px;
  color: rgba(255,255,255,.65);
  line-height: 1.6;
  margin-bottom: .85rem;
}
.btn-aff {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 14px;
  background: #fff;
  color: var(--hanko);
  border: none;
  border-radius: 99px;
  font-size: 11.5px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity .15s;
}
.btn-aff:hover { opacity: .9; }

/* FAQ */
.bt-faq { margin-top: 2.75rem; }
.bt-faq > h2 {
  font-family: var(--f-jp);
  font-size: 22px;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: .9rem;
  padding-bottom: .7rem;
  border-bottom: 1px solid var(--line);
  position: relative;
}
.bt-faq > h2::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 48px;
  height: 2px;
  background: var(--hanko);
}
.bt-faq details { border-bottom: 1px solid var(--line); }
.bt-faq summary {
  font-family: var(--f-jp);
  font-weight: 600;
  font-size: 15px;
  color: var(--ink);
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 0;
  cursor: pointer;
  gap: 1rem;
}
.bt-faq summary::-webkit-details-marker { display: none; }
.bt-faq .fq-ic {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 1.5px solid var(--hanko);
  color: var(--hanko);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 600;
  line-height: 1;
}
.bt-faq .fq-ic::after { content: '+'; }
.bt-faq details[open] .fq-ic::after { content: '−'; }
.bt-faq details p {
  padding: .1rem 0 1.25rem;
  color: var(--ink3);
  font-size: 13.5px;
  line-height: 1.75;
  font-weight: 300;
}

/* Articles liés */
.bt-related { margin-top: 2.75rem; }
.bt-related .rel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1.1rem;
  padding-bottom: .7rem;
  border-bottom: 1px solid var(--line);
  position: relative;
}
.bt-related .rel-head::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 48px;
  height: 2px;
  background: var(--hanko);
}
.bt-related .rel-title {
  font-family: var(--f-jp);
  font-size: 19px;
  font-weight: 600;
  color: var(--ink);
}
.bt-related .rel-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }
.rel-card { cursor: pointer; display: flex; flex-direction: column; transition: transform .2s; }
.rel-card:hover { transform: translateY(-3px); }
.rel-card .rc-img { height: 150px; overflow: hidden; position: relative; margin-bottom: .85rem; }
.rel-card .rc-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.rel-card:hover .rc-img img { transform: scale(1.04); }
.rel-card .rc-badge {
  position: absolute;
  top: .6rem;
  left: .6rem;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 8.5px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #fff;
  background: var(--hanko);
  padding: 3px 8px;
  border-radius: 2px;
}
.rel-card .rc-tt {
  font-family: var(--f-jp);
  font-size: 14.5px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--ink);
  margin-bottom: .35rem;
}
.rel-card .rc-mt { font-size: 11px; color: var(--ink3); display: flex; align-items: center; gap: 5px; }
.rel-card .rc-mt svg { width: 12px; height: 12px; }

/* Sidebar article */
.bt-toc {
  background: #fff;
  border: 1px solid var(--line);
  border-top: 3px solid var(--hanko);
  border-radius: 0 0 4px 4px;
  padding: 1.2rem 1.4rem;
}
.bt-toc .toc-t {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--hanko);
  margin-bottom: .85rem;
  display: flex;
  align-items: center;
  gap: 7px;
}
.bt-toc .toc-t svg { width: 12px; height: 12px; }
.bt-toc ol {
  list-style: none;
  counter-reset: t;
  display: flex;
  flex-direction: column;
  gap: .15rem;
}
.bt-toc li { counter-increment: t; }
.bt-toc a {
  text-decoration: none;
  color: var(--ink3);
  font-size: 12.5px;
  display: flex;
  align-items: baseline;
  gap: 8px;
  transition: color .15s;
  padding: .25rem 0;
  line-height: 1.4;
}
.bt-toc a::before {
  content: counter(t, decimal-leading-zero);
  font-size: 10px;
  color: var(--hanko);
  font-weight: 700;
  min-width: 18px;
}
.bt-toc a:hover { color: var(--hanko); }

.bt-widget {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 4px;
  overflow: hidden;
}
.bt-widget .w-head {
  background: var(--hanko);
  padding: .6rem 1rem;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 8px;
}
.bt-widget .w-head svg { width: 13px; height: 13px; color: #fff; }
.bt-widget .w-body { padding: .9rem 1rem; }

.bt-addr { display: flex; flex-direction: column; gap: .6rem; }
.bt-ad {
  padding: .7rem;
  background: var(--washi);
  border: 1px solid var(--line);
  border-radius: 4px;
  transition: border-color .15s;
  cursor: pointer;
}
.bt-ad:hover { border-color: var(--hanko); }
.bt-ad .ad-lbl {
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--hanko);
  margin-bottom: .25rem;
  display: flex;
  align-items: center;
  gap: 5px;
}
.bt-ad .ad-lbl svg { width: 11px; height: 11px; }
.bt-ad .ad-name { font-family: var(--f-jp); font-size: 13.5px; font-weight: 600; color: var(--ink); margin-bottom: .2rem; }
.bt-ad .ad-desc { font-size: 11px; color: var(--ink3); line-height: 1.5; }
.bt-ad .ad-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  background: var(--sumi);
  color: #fff;
  border: none;
  font-size: 11px;
  font-weight: 500;
  padding: 7px;
  border-radius: 3px;
  width: 100%;
  margin-top: .6rem;
  transition: background .15s;
  cursor: pointer;
}
.bt-ad .ad-btn:hover { background: var(--indigo); }
.bt-ad .ad-btn svg { width: 11px; height: 11px; }

/* Sidebar newsletter */
.bt-snl {
  background: var(--indigo);
  border-radius: 4px;
  padding: 1.4rem 1.3rem;
  position: relative;
  overflow: hidden;
}
.bt-snl .kanji-wm {
  position: absolute;
  right: -8px;
  bottom: -18px;
  font-family: var(--f-jp);
  font-size: 70px;
  font-weight: 700;
  color: rgba(255,255,255,.08);
  writing-mode: vertical-rl;
  letter-spacing: 6px;
}
.bt-snl .snl-ey {
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255,255,255,.55);
  margin-bottom: .4rem;
  display: flex;
  align-items: center;
  gap: 6px;
  position: relative;
}
.bt-snl .snl-ey svg { width: 11px; height: 11px; }
.bt-snl .snl-t { font-family: var(--f-jp); font-size: 17px; font-weight: 600; color: #fff; line-height: 1.25; margin-bottom: .4rem; position: relative; }
.bt-snl .snl-s { font-size: 12px; color: rgba(255,255,255,.6); margin-bottom: .9rem; font-weight: 300; position: relative; }
.bt-snl .snl-f { display: flex; gap: 6px; position: relative; }
.bt-snl .snl-in {
  flex: 1;
  min-width: 0;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.22);
  color: #fff;
  font-family: var(--f-body);
  font-size: 12px;
  padding: 8px 12px;
  border-radius: 3px;
  outline: none;
}
.bt-snl .snl-in::placeholder { color: rgba(255,255,255,.4); }
.bt-snl .snl-b {
  background: var(--hanko);
  color: #fff;
  border: none;
  font-size: 12px;
  font-weight: 600;
  padding: 8px 14px;
  border-radius: 3px;
  cursor: pointer;
}
.bt-snl .snl-tr { font-size: 10px; color: rgba(255,255,255,.35); margin-top: .55rem; position: relative; }

/* Disclaimer */
.bt-disc {
  text-align: center;
  padding: 1.25rem 2.5rem;
  border-top: 1px solid var(--line);
  background: var(--washi);
}
.bt-disc p { font-size: 12px; color: var(--ink3); max-width: 680px; margin: 0 auto; line-height: 1.6; }

/* ============================================================
   RESPONSIVE — breakpoints principaux
   ============================================================ */
@media (max-width: 1024px) {
  .bt-article-outer { grid-template-columns: 1fr; }
  .bt-article-main { border-right: none; padding: 2rem 1.5rem; }
  .bt-article-aside { border-top: 1px solid var(--line); }
  .bt-article-aside .aside-inner { position: static; }
  .bt-a-hero { grid-template-columns: 1fr; }
  .bt-a-hero .ah-right { min-height: 280px; }
  .bt-recap .recap-g { grid-template-columns: 1fr; }
}

@media (max-width: 1024px) {
  .themes-grid { grid-template-columns: repeat(2, 1fr); }
  .agenda-g { grid-template-columns: repeat(2, 1fr); }
  .bt-insta .insta-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 768px) {
  .bt-a-hero .ah-title { font-size: 26px; }
  .bt-section .sec-head h2 { font-size: 19px; }
  .bt-pgrid { grid-template-columns: 1fr; }
  .bt-related .rel-grid { grid-template-columns: 1fr; }
  .bt-meta-bar { gap: 1rem; padding: .75rem 1.25rem; }
  .bt-crumb { padding: .5rem 1.25rem; }
}

@media (max-width: 768px) {
  .bt-topbar { grid-template-columns: 1fr auto; height: 60px; padding: 0 1.25rem; }
  .bt-topbar .tb-left .tb-tagline { display: none; }
  .bt-topbar .tb-right { gap: .4rem; }
  .bt-topbar .tb-right .bt-social { display: none; }
  .bt-navbar { top: 60px; padding: 0 1rem; overflow-x: auto; }
  .bt-hero { grid-template-columns: 1fr; }
  .bt-hero .hero-right { display: none; }
  .bt-hero .hero-left { padding: 2rem 1.5rem; }
  .g3 { grid-template-columns: 1fr; }
  .g2 { grid-template-columns: 1fr; }
  .themes-grid { grid-template-columns: 1fr; }
  .agenda-g { grid-template-columns: 1fr 1fr; }
  .bt-page { padding: 1.5rem; }
  .bt-newsletter { grid-template-columns: 1fr; }
  .bt-newsletter .nl-art { display: none; }
  .bt-footer .footer-top { grid-template-columns: 1fr; gap: 1.5rem; text-align: center; }
  .bt-footer .footer-links { flex-wrap: wrap; gap: 1rem; }
  .bt-footer .footer-social { justify-content: center; }
  .bt-footer .footer-bottom { flex-direction: column; gap: .5rem; text-align: center; }
  .bt-insta .insta-grid { grid-template-columns: repeat(3, 1fr); }
}
