*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Segoe UI',Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.75;color:#333;background:#f0f2f5}
.astro-cP9SDPv5{max-width:860px;margin:0 auto;padding:0 20px}
.astro-h0xmjHZY{background:#fff;padding:28px 0;margin-bottom:32px;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.astro-h0xmjHZY h1{font-size:22px;font-weight:700;margin-bottom:2px}
.astro-h0xmjHZY p{font-size:14px;color:#666}
.astro-h0xmjHZY a{color:#333;text-decoration:none;font-size:18px;font-weight:700}
.astro-KispgSKD{display:flex;flex-direction:column;gap:20px}
.astro-oMp0QdUz{background:#fff;border-radius:12px;box-shadow:0 1px 6px rgba(0,0,0,.06);padding:24px 28px;transition:transform .15s,box-shadow .15s}
.astro-oMp0QdUz:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,0,0,.1)}
.astro-oMp0QdUz h2{font-size:19px;margin-bottom:6px}
.astro-oMp0QdUz h2 a{color:#1a1a1a;text-decoration:none}
.astro-oMp0QdUz .astro-a2MD0TAB{font-size:12px;color:#999;margin-bottom:8px}
.astro-oMp0QdUz p{font-size:14px;color:#555;margin-bottom:12px}
.astro-zSsYf4Ku{display:inline-block;background:#5865f2;color:#fff;padding:6px 16px;border-radius:20px;font-size:13px;font-weight:600;text-decoration:none}
.astro-zSsYf4Ku:hover{background:#4752c4}
.astro-WxHnbifH{padding-bottom:60px}
.astro-WxHnbifH h1{font-size:30px;font-weight:700;margin-bottom:8px}
.astro-WxHnbifH time{font-size:12px;color:#999;display:block;margin-bottom:24px}
.astro-WxHnbifH h2{font-size:22px;margin:32px 0 12px}
.astro-WxHnbifH h3{font-size:18px;margin:24px 0 8px}
.astro-WxHnbifH p{margin-bottom:16px}
.astro-WxHnbifH ul,.astro-WxHnbifH ol{margin:0 0 16px 24px}
.astro-WxHnbifH a{color:#5865f2}
.astro-WxHnbifH img{max-width:100%;height:auto;border-radius:12px;margin:16px 0}
.astro-G0YTox4R{padding:24px 0;margin-top:40px;text-align:center;font-size:12px;color:#999}
.astro-G0YTox4R a{color:#999;text-decoration:none}
.astro-SGf52F8t{background:#e8eaf0;border-radius:8px;padding:12px 16px;margin-bottom:20px;font-size:13px;color:#888;font-style:italic}
.astro-zOH83V1B{background:#fff8e1;border-radius:8px;padding:12px 16px;margin-top:24px;font-size:12px;color:#9e8600}
.astro-vAbf2Z7u{display:inline-block;background:#f0f2f7;border-radius:12px;padding:4px 12px;margin:-18px 0 24px;font-size:12px;color:#777}
.astro-702pCbvx{text-align:center;margin:0 0 24px}
.astro-1AsAdyo7{max-width:100%;height:auto;border-radius:12px}
.astro-nnd9UINh{margin-top:32px;padding-top:20px;border-top:1px solid #e0e0e0}
.astro-nnd9UINh h3{font-size:16px;font-weight:700;margin-bottom:12px}
.crd-related-list{display:flex;flex-direction:column;gap:8px}
.crd-related-link{display:block;background:#fff;border-radius:8px;padding:10px 14px;color:#333;text-decoration:none;box-shadow:0 1px 3px rgba(0,0,0,.06);font-size:14px}
.crd-related-link:hover{box-shadow:0 2px 8px rgba(0,0,0,.1)}
.astro-GTtJZeM3{display:flex;flex-direction:column;gap:8px;margin-top:20px}
.astro-QnjuH92D{display:block;background:#fff;border-radius:8px;padding:10px 16px;color:#1a1a1a;text-decoration:none;box-shadow:0 1px 3px rgba(0,0,0,.05);font-size:15px}
.astro-QnjuH92D:hover{box-shadow:0 2px 8px rgba(0,0,0,.1)}
/* === Theme === */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Lexend:wght@400;700&display=swap');
body{font-family:'Inter',sans-serif;color:#0F172A;background:#F8FAFC}
.astro-h0xmjHZY{background:#1E293B;color:#fff}
.astro-h0xmjHZY h1{font-family:'Lexend',serif;color:#fff}
.astro-h0xmjHZY p{color:rgba(255,255,255,.75)}
.astro-h0xmjHZY a{color:#fff;text-decoration:none}
.card h2{font-family:'Lexend',serif}
.card h2 a{color:#1E293B}
.card h2 a:hover{color:#F97316}
.read-more{color:#F97316}
.article-content h1{font-family:'Lexend',serif}
.article-content h2{font-family:'Lexend',serif}
.article-content a{color:#F97316}
.article-content img{border-radius:8px}
.affiliate-disclosure{border-radius:8px}
.ymyl-disclaimer{border-radius:8px}
/* === Custom === */
/* bz-business-fr — "Première Boîte" · Delphine Moreau
   Le carnet d'une ancienne salariée d'Angers qui a monté sa propre boîte.
   Palette: slate-blue #2D4A6B + amber #C4832A on cream #FAF8F4, rust #B34F2A moment ×2
   Voices: Fraunces (display serif-italic) · Source Serif 4 (body) · Nunito Sans (meta/tracked) */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,600;0,9..144,700;1,9..144,500;1,9..144,600&family=Nunito+Sans:ital,opsz,wght@0,6..12,400;0,6..12,600;0,6..12,700&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;1,8..60,400&display=swap');

/* === QA round-1 fixes (2026-07-30T10:40:03+0800) === */
/* Full re-style. Live DOM uses obfuscated astro-* wrappers, so the prior
   .card / .astro-h0xmjHZY / .card-grid rules never matched and the site rendered
   generic. Everything below targets ELEMENT + STRUCTURAL selectors that hit
   the real deployed HTML, :root-prefixed to win specificity over astro-scoped
   base rules. No class selectors, no !important, no nested :has(). */

/* ── Tokens ────────────────────────────────────────────────────────── */
:root {
  --color-bg:             #FAF8F4;
  --color-surface:        #F3EFE8;
  --color-surface-alt:    #FFFFFF;
  --color-primary:        #2D4A6B;
  --color-primary-dark:   #1E3550;
  --color-primary-light:  #4A7BA8;
  --color-accent:         #C4832A;
  --color-accent-light:   #E5A84D;
  --color-moment:         #B34F2A;   /* rust — used in exactly 2 places */
  --color-text:           #22303C;
  --color-text-secondary: #4A5568;
  --color-text-muted:     #7A8694;
  --color-border:         #D9D3C8;
  --color-border-light:   #E8E4DC;

  --font-display:         'Fraunces', Georgia, 'Times New Roman', serif;
  --font-body:            'Source Serif 4', Georgia, serif;
  --font-meta:            'Nunito Sans', system-ui, sans-serif;

  --size-base:            17px;
  --lh-body:              1.75;
  --radius:               8px;
  --sp-section:           2.75rem;
  --max-content:          70ch;
  --max-site:             940px;
}

/* ── Base ──────────────────────────────────────────────────────────── */
:root *, :root *::before, :root *::after { box-sizing: border-box; }

:root body {
  margin: 0;
  background-color: var(--color-bg);
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: var(--size-base);
  line-height: var(--lh-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

:root main {
  max-width: var(--max-site);
  margin-inline: auto;
  padding-inline: 1.25rem;
}

/* ── Headings — display serif everywhere ───────────────────────────── */
:root h1, :root h2, :root h3, :root h4 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.15;
  color: var(--color-primary);
  margin-top: 0;
  margin-bottom: 0.55em;
  letter-spacing: -0.01em;
}

:root h3 { font-size: 1.3rem; font-weight: 600; color: var(--color-primary-dark); }
:root h4 { font-size: 1.1rem; }

/* ── Body copy ─────────────────────────────────────────────────────── */
:root p {
  font-family: var(--font-body);
  margin-top: 0;
  margin-bottom: 1.3em;
}
:root p:last-child { margin-bottom: 0; }

:root strong { font-weight: 600; color: var(--color-primary-dark); }
:root em { font-style: italic; }

:root hr {
  border: none;
  height: 1.4rem;
  margin: 2.4rem auto;
  text-align: center;
}
:root hr::before {
  content: "✳ ✳ ✳";
  color: var(--color-accent);
  font-size: 0.85rem;
  letter-spacing: 0.55em;
  text-indent: 0.55em;
}

/* ── Links (body / meta) ───────────────────────────────────────────── */
:root a {
  color: var(--color-primary);
  text-decoration: underline;
  text-decoration-color: var(--color-border);
  text-underline-offset: 3px;
  transition: color .15s ease, text-decoration-color .15s ease;
}
:root a:hover {
  color: var(--color-accent);
  text-decoration-color: var(--color-accent-light);
}

/* ── Lists ─────────────────────────────────────────────────────────── */
:root ul, :root ol {
  margin: 0 0 1.3em;
  padding-left: 1.5rem;
}
:root li { margin-bottom: 0.5em; }
:root ul li::marker { color: var(--color-accent); }
:root ol li::marker { color: var(--color-primary); font-family: var(--font-meta); font-weight: 700; }

/* ── Blockquote — hanging quote ────────────────────────────────────── */
:root blockquote {
  position: relative;
  margin: 2rem 0;
  padding: 0.5rem 1.25rem 0.5rem 3rem;
  border-left: 3px solid var(--color-accent);
  color: var(--color-text-secondary);
  font-style: italic;
  font-size: 1.08em;
}
:root blockquote::before {
  content: "\201C";
  position: absolute;
  left: 0.55rem;
  top: 0.35rem;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 3rem;
  line-height: 1;
  color: var(--color-accent);
}
:root blockquote p { margin-bottom: 0; }
:root blockquote cite {
  display: block;
  margin-top: 0.7rem;
  font-family: var(--font-meta);
  font-size: 0.8rem;
  font-style: normal;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

/* ── Masthead — photo + gradient + monogram + serif-italic wordmark ── */
:root body > header {
  position: relative;
  padding: 3.25rem 1.25rem 2.75rem;
  text-align: center;
  color: #fff;
  background-image:
    linear-gradient(180deg, rgba(30,53,80,0.74), rgba(30,53,80,0.90)),
    url("/theme-assets/hero-masthead.jpg");
  background-size: cover;
  background-position: center;
  border-bottom: 3px solid var(--color-accent);
}
/* signature monogram: a little open box — "Première Boîte" */
:root body > header::before {
  content: "";
  display: block;
  width: 46px;
  height: 42px;
  margin: 0 auto 1rem;
  background-repeat: no-repeat;
  background-position: center;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 44' fill='none' stroke='%23E5A84D' stroke-width='2' stroke-linejoin='round' stroke-linecap='round'%3E%3Cpath d='M24 3 44 13 24 23 4 13Z'/%3E%3Cpath d='M4 13v18l20 10V23'/%3E%3Cpath d='M44 13v18L24 41'/%3E%3C/svg%3E");
}
:root body > header > div {
  max-width: var(--max-site);
  margin-inline: auto;
}
:root body > header h1 {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 600;
  color: #fff;
  font-size: clamp(2rem, 5vw, 3.1rem);
  line-height: 1.05;
  margin: 0 0 0.5rem;
  letter-spacing: -0.015em;
}
/* article/interior pages: site name is header > div > span > a */
:root body > header span a {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 600;
  color: #fff;
  font-size: clamp(1.35rem, 3vw, 1.7rem);
  text-decoration: none;
  letter-spacing: -0.01em;
}
:root body > header span a:hover { color: var(--color-accent-light); }
/* manifesto line (homepage description) */
:root body > header > div > p {
  max-width: 54ch;
  margin: 0 auto;
  font-family: var(--font-body);
  font-style: italic;
  font-size: 1.02rem;
  line-height: 1.6;
  color: rgba(255,255,255,0.86);
}

/* ── Homepage: section kicker before the feed ──────────────────────── */
:root main:has(> div):not(:has(> article))::before {
  content: "Le carnet — par où commencer";
  display: block;
  padding-top: var(--sp-section);
  margin-bottom: 1.4rem;
  font-family: var(--font-meta);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--color-accent);
}

/* ── Homepage feed grid ────────────────────────────────────────────── */
:root main > div {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  padding-bottom: var(--sp-section);
}

/* every card baseline */
:root main > div > div {
  background-color: var(--color-surface-alt);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  padding: 1.4rem 1.5rem 1.6rem;
  display: flex;
  flex-direction: column;
  transition: box-shadow .2s ease, transform .2s ease;
}
:root main > div > div:hover {
  box-shadow: 0 6px 22px rgba(45,74,107,0.13);
  transform: translateY(-2px);
}

/* date / meta line inside cards */
:root main > div > div > p:first-child {
  font-family: var(--font-meta);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin-bottom: 0.5rem;
}

:root main > div > div > h2 {
  font-family: var(--font-display);
  font-size: 1.25rem;
  line-height: 1.2;
  margin-bottom: 0.5rem;
}
:root main > div > div > h2 a {
  color: var(--color-primary);
  text-decoration: none;
}
:root main > div > div > h2 a:hover { color: var(--color-accent); }

:root main > div > div > h2 + p {
  font-size: 0.96rem;
  line-height: 1.6;
  color: var(--color-text-secondary);
  flex: 1;
  margin-bottom: 1rem;
}

/* card CTA (the direct-child link, "Read Article") */
:root main > div > div > a {
  align-self: flex-start;
  font-family: var(--font-meta);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-accent);
  text-decoration: none;
}
:root main > div > div > a:hover { color: var(--color-primary); }

/* ── THE hero — first card is the loud voice ───────────────────────── */
:root main > div > div:first-child {
  grid-column: 1 / -1;
  position: relative;
  padding: 2.4rem 2.5rem 2.6rem;
  border-top: 3px solid var(--color-moment);   /* rust moment 1/2 */
  background-color: var(--color-surface);
}
:root main > div > div:first-child::before {
  content: "Dernier carnet";
  position: absolute;
  top: 1.3rem;
  right: 1.6rem;
  font-family: var(--font-meta);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-accent);
}
/* hero byline: date line + author */
:root main > div > div:first-child > p:first-child::after {
  content: " · par Delphine Moreau";
  color: var(--color-text-secondary);
}
:root main > div > div:first-child > h2 {
  font-style: italic;
  font-size: clamp(1.9rem, 3.6vw, 2.7rem);
  line-height: 1.08;
  max-width: 18ch;
  margin-bottom: 0.7rem;
}
:root main > div > div:first-child > h2 + p {
  font-size: 1.12rem;
  line-height: 1.7;
  max-width: 60ch;
  color: var(--color-text);
}
/* drop cap on the hero standfirst — rust moment 2/2 */
:root main > div > div:first-child > h2 + p::first-letter {
  float: left;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 3.4rem;
  line-height: 0.72;
  padding: 0.1em 0.12em 0 0;
  color: var(--color-moment);
}
/* hero CTA becomes an outlined pill */
:root main > div > div:first-child > a {
  margin-top: 1.4rem;
  padding: 0.6rem 1.3rem;
  border: 1.5px solid var(--color-primary);
  border-radius: 999px;
  color: var(--color-primary);
  transition: background-color .15s ease, color .15s ease;
}
:root main > div > div:first-child > a:hover {
  background-color: var(--color-primary);
  color: #fff;
}

/* ── Link-only lists (homepage archive + "Articles connexes") ──────── */
/* These render as bare dotted-border text links by default; upgrade them
   into an intentional stacked-row list. Content bullet lists are untouched
   because their <li> have no anchor-only child. */
:root ul:has(> li > a:only-child) {
  list-style: none;
  padding-left: 0;
  margin-top: 0.5rem;
  border-top: 1px solid var(--color-border);
}
:root li:has(> a:only-child) {
  margin: 0;
  border-bottom: 1px solid var(--color-border);
}
:root li:has(> a:only-child) > a {
  display: block;
  padding: 0.85rem 0.25rem 0.85rem 1.4rem;
  position: relative;
  font-family: var(--font-display);
  font-size: 1.05rem;
  color: var(--color-primary);
  text-decoration: none;
}
:root li:has(> a:only-child) > a::before {
  content: "›";
  position: absolute;
  left: 0.2rem;
  color: var(--color-accent);
  font-family: var(--font-meta);
  font-weight: 700;
}
:root li:has(> a:only-child) > a:hover {
  color: var(--color-accent);
  background-color: var(--color-surface);
}

/* ── Article page ──────────────────────────────────────────────────── */
:root main > article {
  max-width: var(--max-content);
  margin-inline: auto;
  padding-block: var(--sp-section);
}
:root main > article > h1 {
  font-size: clamp(2rem, 4.6vw, 3rem);
  line-height: 1.08;
  margin-bottom: 0.9rem;
}
:root main > article > p {
  margin-bottom: 1.4em;
}
/* section headings get a dinkus separator above */
:root main > article > h2 {
  font-size: clamp(1.5rem, 2.6vw, 1.9rem);
  margin-top: 2.6rem;
  margin-bottom: 0.6rem;
}
:root main > article > h2::before {
  content: "✳ ✳ ✳";
  display: block;
  text-align: center;
  margin: 0 0 1.3rem;
  color: var(--color-accent);
  font-size: 0.8rem;
  letter-spacing: 0.55em;
  text-indent: 0.55em;
  opacity: 0.85;
}
:root main > article > h3 { margin-top: 1.8rem; }

/* intro standfirst drop cap (paragraph right after the hero image) */
:root main > article > div:first-of-type + p::first-letter {
  float: left;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 3.6rem;
  line-height: 0.72;
  padding: 0.08em 0.14em 0 0;
  color: var(--color-moment);
}

:root main > article a {
  color: var(--color-accent);
  font-weight: 600;
}
:root main > article a:hover { color: var(--color-primary); }

:root main > article img {
  max-width: 100%;
  height: auto;
  display: block;
  border-radius: var(--radius);
  margin-block: 1.8rem;
}

/* ── "Pour info" YMYL disclaimer callout ───────────────────────────── */
:root aside {
  margin-top: 2.5rem;
  padding: 1.1rem 1.35rem;
  border: 1px solid var(--color-accent);
  border-left-width: 4px;
  border-radius: 0 var(--radius) var(--radius) 0;
  background-color: #FDF6EC;
  font-size: 0.9rem;
  line-height: 1.6;
  color: var(--color-text-secondary);
}
:root aside b { color: var(--color-moment); font-weight: 700; }

/* date metadata (if rendered as <time>) */
:root time {
  display: block;
  font-family: var(--font-meta);
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  color: var(--color-text-muted);
  margin-bottom: 1.4rem;
}

/* ── Footer ────────────────────────────────────────────────────────── */
:root body > footer {
  background-color: var(--color-primary-dark);
  color: rgba(255,255,255,0.75);
  text-align: center;
  padding: 2rem 1.25rem;
  margin-top: var(--sp-section);
}
:root body > footer small {
  font-family: var(--font-meta);
  font-size: 0.82rem;
  line-height: 1.8;
}
:root body > footer a {
  color: var(--color-accent-light);
  text-decoration: none;
}
:root body > footer a:hover { color: #fff; }

/* ── Responsive ────────────────────────────────────────────────────── */
/* Fill the canvas on very wide screens (was a lonely 900px Post-it at 1920) */
@media (min-width: 1600px) {
  :root { --max-site: 1120px; --max-content: 78ch; }
}

@media (max-width: 720px) {
  :root main > div { grid-template-columns: 1fr; }
  :root main > div > div:first-child { padding: 1.8rem 1.5rem; }
  :root main > div > div:first-child::before { position: static; display: block; margin-bottom: 0.6rem; }
}

/* Mobile: bigger footer tap targets + kill inherited min-height whitespace */
@media (max-width: 480px) {
  :root body > footer small { line-height: 2.4; }
  :root body > footer a { display: inline-block; padding: 5px 2px; }
  :root body { min-height: unset; }
  :root main { min-height: unset; }
}


/* === QA tail polish (2026-07-31T15:08:07.741718+00:00) — style Lambda [SB-20] compact tail across templates === */
/* The tail wrapper is always the LAST block child of <main> on the homepage,
   containing title-only rows of older articles. Various templates use different
   inner structures (ul>li / p / direct <a>) — this handles all three. */

:root main > *:last-child:not(:has(h2)):not(:has(h1)):not(:has(article)) {
  grid-column: 1 / -1;
  max-width: min(720px, 92vw);
  margin: 88px auto 0;
  padding: 40px 0 32px;
  border-top: 2px double rgba(0, 0, 0, .16);
  background: transparent;
  box-shadow: none;
}

:root main > *:last-child:not(:has(h2)):not(:has(h1)):not(:has(article))::before {
  content: "\2014  MORE FROM THE ARCHIVE  \2014";
  display: block;
  text-align: center;
  font-family: system-ui, -apple-system, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .28em;
  text-transform: uppercase;
  opacity: .5;
  margin-bottom: 36px;
}

/* Any list / paragraph rows: 2-col on desktop, single on mobile */
:root main > *:last-child ul {
  list-style: none;
  padding: 0;
  margin: 0;
  columns: 2;
  column-gap: 48px;
}
@media (max-width: 899px) {
  :root main > *:last-child ul { columns: 1; }
}

:root main > *:last-child li,
:root main > *:last-child > p,
:root main > *:last-child > a {
  padding: 10px 0;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 15px;
  line-height: 1.4;
  border-bottom: 1px dotted rgba(0, 0, 0, .12);
  break-inside: avoid;
  display: block;
}

:root main > *:last-child li a,
:root main > *:last-child p a,
:root main > *:last-child > a {
  text-decoration: none;
  font-weight: 600;
}

:root main > *:last-child li a:hover,
:root main > *:last-child p a:hover,
:root main > *:last-child > a:hover {
  text-decoration: underline;
}

/* dates (first inline child of li/p) — subtle mono */
:root main > *:last-child p > :first-child,
:root main > *:last-child li > :first-child:not(a) {
  font-family: system-ui, -apple-system, sans-serif;
  font-size: 11px;
  letter-spacing: .1em;
  opacity: .5;
  margin-right: 10px;
}
