/*
 * Chatsifieds site-wide blog/article theme
 * Applies only to <body class="csf-blog-post"> so hubs, search and business pages are unaffected.
 * 2026-09-02
 */

body.csf-blog-post{
  --blog-ink:#172033;
  --blog-muted:#5e6877;
  --blog-green:#0d7c66;
  --blog-green-dark:#075f4f;
  --blog-green-soft:#edf9f5;
  --blog-gold:#f3b61f;
  --blog-paper:#fffdf8;
  --blog-surface:#ffffff;
  --blog-soft:#f7f5ef;
  --blog-line:#e8e3d9;
  --blog-radius:24px;
  --blog-shadow:0 18px 48px rgba(34,45,52,.09);
  margin:0;
  background:var(--blog-paper);
  color:var(--blog-ink);
  font-family:"Sora",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  line-height:1.7;
}

/* Shared header: fixed logo geometry prevents intrinsic-image blowouts. */
body.csf-blog-post .csf-shell-header{background:#fff;border-bottom:1px solid var(--blog-line)}
body.csf-blog-post .csf-shell-inner{max-width:1180px;margin:0 auto;padding:0 24px}
body.csf-blog-post .csf-shell-row{min-height:82px;gap:24px}
body.csf-blog-post .csf-shell-brand{min-width:0;gap:11px}
body.csf-blog-post .csf-shell-brand img{
  display:block!important;
  width:48px!important;
  height:48px!important;
  min-width:48px!important;
  max-width:48px!important;
  min-height:48px!important;
  max-height:48px!important;
  object-fit:contain!important;
  flex:0 0 48px!important;
}
body.csf-blog-post .csf-shell-brand strong{font-size:1.3rem;line-height:1.05}
body.csf-blog-post .csf-shell-brand small{font-size:.72rem;line-height:1.25;color:#697386}
body.csf-blog-post .csf-shell-nav{gap:6px}
body.csf-blog-post .csf-shell-nav a{padding:9px 10px;border-radius:999px;font-size:.91rem}
body.csf-blog-post .csf-shell-actions{gap:8px}
body.csf-blog-post .csf-shell-btn{padding:10px 14px;white-space:nowrap}

/* Keep article images fluid without overriding explicit header/footer dimensions. */
body.csf-blog-post main img{max-width:100%;height:auto}

/* Breadcrumb / utility strip */
body.csf-blog-post .csf-breadcrumbs,
body.csf-blog-post .csf-breadcrumb{
  max-width:1180px;
  margin-inline:auto;
}

/* Modern editorial hero used by Coffee Company Stories. */
body.csf-blog-post .csf-story-hero{padding:38px 0 32px;background:linear-gradient(145deg,#f4fbf8 0%,#fffdf8 55%,#fff7df 100%)}
body.csf-blog-post .csf-story-hero__grid{max-width:1180px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);gap:32px;align-items:center}
body.csf-blog-post .csf-story-hero h1{font-family:"Playfair Display",Georgia,serif;font-size:clamp(2.45rem,4.35vw,4.25rem);line-height:.99;letter-spacing:-.035em;margin:.65rem 0 1.1rem;color:#13221f}
body.csf-blog-post .csf-story-hero__lead{font-size:clamp(1.05rem,1.4vw,1.2rem);line-height:1.75;color:var(--blog-muted);max-width:720px}
body.csf-blog-post .csf-story-hero__media{
  width:100%;
  min-width:0;
  margin:0;
  overflow:hidden;
  border:10px solid #fff;
  border-radius:28px;
  background:#fff;
  box-shadow:var(--blog-shadow);
}
body.csf-blog-post .csf-story-hero__media img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  aspect-ratio:16/9!important;
  max-height:360px!important;
  object-fit:cover!important;
  object-position:center!important;
}
body.csf-blog-post .csf-story-hero__media figcaption{padding:13px 15px 6px;font-size:.78rem;line-height:1.55;color:#6d7580;background:#fff}

/* Legacy article heroes: same visual system without changing their markup. */
body.csf-blog-post main > section:first-child:not(.hero-grad){
  background:linear-gradient(145deg,#f4fbf8 0%,#fffdf8 55%,#fff7df 100%)!important;
  border-bottom:1px solid #e4eee9!important;
}
body.csf-blog-post main > section:first-child > div[class*="max-w-6xl"]{
  max-width:1180px!important;
  gap:32px!important;
  padding:38px 24px 34px!important;
}
body.csf-blog-post main > section:first-child h1{
  font-family:"Playfair Display",Georgia,serif!important;
  font-size:clamp(2.45rem,4.35vw,4.25rem)!important;
  line-height:.99!important;
  letter-spacing:-.035em!important;
}
body.csf-blog-post main > section:first-child figure{
  overflow:hidden!important;
  border-radius:28px!important;
  border:0!important;
  padding:10px!important;
  background:#fff!important;
  box-shadow:var(--blog-shadow)!important;
}
body.csf-blog-post main > section:first-child figure img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  aspect-ratio:16/9!important;
  max-height:360px!important;
  object-fit:cover!important;
  object-position:center!important;
  border-radius:20px!important;
}
body.csf-blog-post main > section:first-child figure figcaption{font-size:.78rem!important;line-height:1.55!important;color:#6d7580!important;padding:12px 6px 4px!important}

/* Shared image-led learning hero standard.
 * Prevent large promotional artwork from taking over the first viewport.
 * This also covers the Real Australian Café Experience hero, which uses
 * a full-width image rather than the common two-column figure markup. */
body.csf-blog-post .csf-cafe-x-hero{
  max-width:1180px!important;
  margin:1.25rem auto 0!important;
  padding:0 24px!important;
}
body.csf-blog-post .csf-cafe-x-hero>img{
  display:block!important;
  width:100%!important;
  height:clamp(300px,31vw,430px)!important;
  max-height:430px!important;
  object-fit:cover!important;
  object-position:center 22%!important;
  border-radius:24px!important;
}
body.csf-blog-post .csf-cafe-x-hero__copy{
  max-width:860px!important;
  margin:-1.6rem auto 0!important;
  padding:1.25rem 1.5rem!important;
}
body.csf-blog-post .csf-cafe-x-hero__copy h1{
  font-size:clamp(2rem,4vw,3.35rem)!important;
}

/* Article rhythm and readable line lengths. */
body.csf-blog-post .csf-section{padding-top:48px;padding-bottom:48px}
body.csf-blog-post .csf-container{max-width:1080px}
body.csf-blog-post .csf-prose{font-size:1.02rem;line-height:1.82}
body.csf-blog-post .csf-prose p{margin:0 0 1.25em}
body.csf-blog-post .csf-prose h2,
body.csf-blog-post .csf-section-head h2,
body.csf-blog-post main section h2{letter-spacing:-.02em}
body.csf-blog-post .csf-prose h2,
body.csf-blog-post .csf-prose h3{font-family:"Playfair Display",Georgia,serif;color:#17241f}
body.csf-blog-post .csf-two-col{gap:36px}

/* Legacy Tailwind article sections get consistent width/rhythm. */
body.csf-blog-post main > section:not(:first-child)[class*="max-w-"]{padding-top:38px!important;padding-bottom:38px!important}
body.csf-blog-post main > section[class*="max-w-4xl"]{max-width:880px!important}
body.csf-blog-post main > section[class*="max-w-5xl"]{max-width:1040px!important}
body.csf-blog-post main > section:not(:first-child) h2{font-family:"Playfair Display",Georgia,serif!important;line-height:1.14!important}
body.csf-blog-post main > section:not(:first-child) p{line-height:1.78}

/* Cards and learning components */
body.csf-blog-post .csf-fact-card,
body.csf-blog-post .csf-source-card,
body.csf-blog-post .csf-vocab-card,
body.csf-blog-post .csf-dialogue,
body.csf-blog-post .csf-quiz,
body.csf-blog-post .csf-status-note,
body.csf-blog-post .csf-claim-banner__card,
body.csf-blog-post main > section:not(:first-child) [class*="rounded-"][class*="bg-white"]{
  border-color:var(--blog-line)!important;
  box-shadow:0 10px 28px rgba(34,45,52,.055);
}
body.csf-blog-post .csf-fact-card,
body.csf-blog-post .csf-source-card,
body.csf-blog-post .csf-vocab-card,
body.csf-blog-post .csf-dialogue,
body.csf-blog-post .csf-quiz,
body.csf-blog-post .csf-claim-banner__card{border-radius:var(--blog-radius)}
body.csf-blog-post .csf-meta-pill{border-radius:999px}
body.csf-blog-post .csf-eyebrow{color:var(--blog-green);letter-spacing:.14em}
body.csf-blog-post a{transition:color .16s ease,background .16s ease,border-color .16s ease,transform .16s ease}
body.csf-blog-post .csf-button:hover,body.csf-blog-post .csf-shell-btn:hover{transform:translateY(-1px)}

/* Sponsor and claim areas feel integrated with article, not like detached ads. */
body.csf-blog-post .csf-claim-banner{padding:16px 0 32px}
body.csf-blog-post .csf-claim-banner__card{max-width:1080px;margin-inline:auto}
body.csf-blog-post .csf-sponsor-slot{max-width:1080px;margin:8px auto 40px;padding-left:24px;padding-right:24px}

/* Footer logo is also constrained independently of generic img rules. */
body.csf-blog-post .csf-footer-brand img{
  display:block!important;
  width:52px!important;
  height:52px!important;
  min-width:52px!important;
  max-width:52px!important;
  min-height:52px!important;
  max-height:52px!important;
  object-fit:contain!important;
  flex:0 0 52px!important;
}

/* Accessibility */
body.csf-blog-post :focus-visible{outline:3px solid #f3b61f;outline-offset:3px}

@media (max-width:1050px){
  body.csf-blog-post .csf-shell-actions .csf-shell-btn--soft{display:none}
  body.csf-blog-post .csf-story-hero__grid{grid-template-columns:minmax(0,1fr) minmax(300px,.8fr);gap:32px}
}

@media (max-width:820px){
  body.csf-blog-post .csf-shell-inner{padding:0 16px}
  body.csf-blog-post .csf-shell-row{min-height:70px}
  body.csf-blog-post .csf-shell-brand img{width:42px!important;height:42px!important;min-width:42px!important;max-width:42px!important;min-height:42px!important;max-height:42px!important;flex-basis:42px!important}
  body.csf-blog-post .csf-shell-brand small{display:none}
  body.csf-blog-post .csf-shell-nav,body.csf-blog-post .csf-shell-actions{display:none}
  body.csf-blog-post .csf-mobile-nav{display:flex}
  body.csf-blog-post .csf-story-hero{padding:26px 0 24px}
  body.csf-blog-post .csf-story-hero__grid{grid-template-columns:1fr;gap:20px;padding:0 16px}
  body.csf-blog-post .csf-story-hero h1{font-size:clamp(2.15rem,9.5vw,3.15rem)}
  body.csf-blog-post main > section:first-child > div[class*="max-w-6xl"]{grid-template-columns:1fr!important;padding:26px 16px 24px!important;gap:20px!important}
  body.csf-blog-post main > section:first-child h1{font-size:clamp(2.15rem,9.5vw,3.15rem)!important}
  body.csf-blog-post .csf-story-hero__media img,body.csf-blog-post main > section:first-child figure img{max-height:300px!important}
  body.csf-blog-post .csf-cafe-x-hero{margin:.8rem auto 0!important;padding:0 16px!important}
  body.csf-blog-post .csf-cafe-x-hero>img{height:clamp(230px,58vw,320px)!important;max-height:320px!important;border-radius:18px!important;object-position:center 18%!important}
  body.csf-blog-post .csf-cafe-x-hero__copy{margin:-.75rem 8px 0!important;padding:1rem 1.1rem!important;border-radius:18px!important}
  body.csf-blog-post main > section:not(:first-child)[class*="max-w-"]{padding-left:16px!important;padding-right:16px!important;padding-top:30px!important;padding-bottom:30px!important}
  body.csf-blog-post .csf-section{padding:34px 0}
  body.csf-blog-post .csf-container{padding-left:16px;padding-right:16px}
  body.csf-blog-post .csf-two-col{grid-template-columns:1fr;gap:24px}
  body.csf-blog-post .csf-sponsor-slot{padding-left:16px;padding-right:16px}
}

@media (max-width:520px){
  body.csf-blog-post .csf-shell-brand strong{font-size:1.08rem}
  body.csf-blog-post .csf-story-hero__media,body.csf-blog-post main > section:first-child figure{border-radius:20px!important;padding:7px!important}
  body.csf-blog-post .csf-story-hero__media img,body.csf-blog-post main > section:first-child figure img{border-radius:14px!important}
  body.csf-blog-post .csf-story-hero__media img,body.csf-blog-post main > section:first-child figure img{aspect-ratio:16/9!important;max-height:240px!important}
}

/* A0019513 — Coffee English master article component normalization.
 * blog-theme.css is the authoritative presentation layer for Coffee learning posts.
 * Keep reusable article/card/list styling here rather than in page-level <style> blocks. */
body.csf-blog-post .csf-two-col > *{min-width:0}
body.csf-blog-post .csf-fact-card{
  width:100%;
  padding:1.65rem 1.7rem;
  border:1px solid var(--blog-line)!important;
  background:#fff;
  box-shadow:0 12px 32px rgba(34,45,52,.065);
}
body.csf-blog-post .csf-fact-card h3{
  margin:0;
  font-family:"Playfair Display",Georgia,serif;
  font-size:clamp(1.35rem,2vw,1.65rem);
  line-height:1.18;
  color:#17241f;
  letter-spacing:-.015em;
}
body.csf-blog-post .csf-fact-list{
  display:grid;
  gap:1rem;
  margin:1.2rem 0 0;
  padding:0;
  list-style:none;
}
body.csf-blog-post .csf-fact-list li{
  display:grid;
  grid-template-columns:1.8rem minmax(0,1fr);
  gap:.8rem;
  align-items:start;
  min-width:0;
  color:#43534e;
  font-size:.95rem;
  line-height:1.62;
}
body.csf-blog-post .csf-fact-list li::before{
  content:'✓';
  display:grid;
  place-items:center;
  width:1.65rem;
  height:1.65rem;
  margin-top:.08rem;
  border-radius:50%;
  background:var(--blog-green-soft);
  color:var(--blog-green-dark);
  font-size:.8rem;
  font-weight:900;
}
body.csf-blog-post .csf-fact-list li strong{color:#233c35;font-weight:800}
body.csf-blog-post .csf-section--soft .csf-fact-card{align-self:start}
body.csf-blog-post .csf-source-card,
body.csf-blog-post .csf-learning-card,
body.csf-blog-post .csf-vocab-card{min-width:0}

@media (max-width:820px){
  body.csf-blog-post .csf-fact-card{padding:1.35rem 1.25rem}
  body.csf-blog-post .csf-fact-list{gap:.85rem}
  body.csf-blog-post .csf-fact-list li{font-size:.93rem;grid-template-columns:1.7rem minmax(0,1fr);gap:.7rem}
}

/* Legacy utility classes still used by the glossary / cheat-sheet templates.
 * Centralised here so Coffee lesson HTML contains no page-level presentation CSS. */
body.csf-blog-post .font-playfair{font-family:"Playfair Display",Georgia,serif}
body.csf-blog-post .hero-grad{background:linear-gradient(135deg,#064e3b 0%,#0d7c66 58%,#0f766e 100%)}
body.csf-blog-post .card{border-radius:2rem;background:#fff;border:1px solid #e7e5e4;box-shadow:0 1px 2px rgba(15,23,42,.05)}
body.csf-blog-post .faq-body{display:none}
body.csf-blog-post .faq-btn[aria-expanded="true"]+.faq-body{display:block}
body.csf-blog-post .mobile-bottom{display:none}
body.csf-blog-post .csf-hero-glow{background-image:radial-gradient(circle at 14% 12%,rgba(82,201,181,.20),transparent 32%),radial-gradient(circle at 86% 8%,rgba(217,119,6,.13),transparent 24%)}
body.csf-blog-post .csf-hero-media{box-shadow:0 24px 64px rgba(13,124,102,.14)}
@media(max-width:760px){
  body.csf-blog-post .mobile-bottom{display:grid;position:fixed;left:0;right:0;bottom:0;z-index:50;grid-template-columns:repeat(3,1fr);background:#fff;border-top:1px solid #d6d3d1;box-shadow:0 -10px 25px rgba(15,23,42,.1)}
  body.csf-blog-post .mobile-bottom a{padding:.85rem .45rem;text-align:center;font-size:.78rem;font-weight:900;color:#0d7c66;text-decoration:none}
  body.csf-blog-post:has(.mobile-bottom){padding-bottom:4.5rem}
}

/* A0019515 — Shared learner-community CTA.
 * One reusable end-of-article invitation across every master-theme blog post.
 * Keep community presentation here; individual posts only carry semantic markup. */
body.csf-blog-post .csf-community-cta{
  padding:12px 24px 48px;
  background:linear-gradient(180deg,#fbfcf8 0%,#f3f8f3 100%);
}
body.csf-blog-post .csf-community-cta__inner{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(240px,.65fr);
  gap:28px;
  align-items:center;
  width:min(1080px,100%);
  margin:0 auto;
  padding:28px 30px;
  border:1px solid #dce8df;
  border-radius:24px;
  background:#fff;
  box-shadow:0 14px 38px rgba(31,79,65,.07);
}
body.csf-blog-post .csf-community-cta__eyebrow{
  display:block;
  margin:0 0 8px;
  color:var(--blog-green);
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
}
body.csf-blog-post .csf-community-cta h2{
  margin:0;
  color:#17241f;
  font-family:"Playfair Display",Georgia,serif;
  font-size:clamp(1.55rem,2.5vw,2.15rem);
  line-height:1.16;
  letter-spacing:-.02em;
}
body.csf-blog-post .csf-community-cta p{
  max-width:720px;
  margin:12px 0 0;
  color:#4b5e57;
  font-size:1rem;
  line-height:1.65;
}
body.csf-blog-post .csf-community-cta__action{
  display:grid;
  gap:10px;
  justify-items:start;
}
body.csf-blog-post .csf-community-cta__button{
  display:inline-flex;
  min-height:48px;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  padding:.8rem 1.15rem;
  border-radius:999px;
  background:var(--blog-green-dark,#176b57);
  color:#fff!important;
  font-weight:900;
  line-height:1.2;
  text-align:center;
  text-decoration:none!important;
  box-shadow:0 8px 22px rgba(23,107,87,.18);
}
body.csf-blog-post .csf-community-cta__button:hover{
  background:var(--blog-green,#23836d);
  transform:translateY(-1px);
}
body.csf-blog-post .csf-community-cta__action>span{
  color:#6b7c76;
  font-size:.82rem;
  line-height:1.45;
}
@media(max-width:820px){
  body.csf-blog-post .csf-community-cta{padding:8px 16px 34px}
  body.csf-blog-post .csf-community-cta__inner{grid-template-columns:1fr;gap:20px;padding:24px 20px;border-radius:20px}
  body.csf-blog-post .csf-community-cta__button{width:100%}
  body.csf-blog-post .csf-community-cta__action{justify-items:stretch}
  body.csf-blog-post .csf-community-cta__action>span{text-align:center}
}

/* A0019516 — Universal Practice Loop for current + future master-theme posts */
body.csf-blog-post .csf-practice-loop{padding:42px 24px;background:#eef8f4;border-top:1px solid #d6ebe3;border-bottom:1px solid #d6ebe3}
body.csf-blog-post .csf-practice-loop__inner{max-width:1080px;margin:0 auto}
body.csf-blog-post .csf-practice-loop__head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:end;margin-bottom:18px}
body.csf-blog-post .csf-practice-loop__eyebrow{display:block;color:#0d7c66;font-size:.76rem;font-weight:900;letter-spacing:.15em;text-transform:uppercase;margin-bottom:8px}
body.csf-blog-post .csf-practice-loop h2{font-family:"Playfair Display",Georgia,serif;font-size:clamp(1.9rem,3vw,2.7rem);line-height:1.08;margin:0 0 10px;color:#13221f}
body.csf-blog-post .csf-practice-loop__head p{max-width:760px;margin:0;color:#56635f;line-height:1.7}
body.csf-blog-post .csf-practice-loop__learning{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 15px;border:1px solid #b9d9cf;border-radius:999px;background:#fff;color:#0b6b59;font-weight:800;text-decoration:none;white-space:nowrap}
body.csf-blog-post .csf-loop-progress{margin:18px 0 22px}
body.csf-blog-post .csf-loop-progress__text{font-size:.83rem;font-weight:800;color:#465651;margin-bottom:7px}
body.csf-blog-post .csf-loop-progress__bar{height:8px;border-radius:999px;background:#d7e8e2;overflow:hidden}
body.csf-blog-post .csf-loop-progress__bar span{display:block;width:0;height:100%;background:#0d7c66;transition:width .2s ease}
body.csf-blog-post .csf-practice-loop__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
body.csf-blog-post .csf-loop-card{min-width:0;padding:20px;border:1px solid #d8e8e2;border-radius:20px;background:#fff;box-shadow:0 8px 24px rgba(24,55,47,.05)}
body.csf-blog-post .csf-loop-card>span{display:block;color:#0d7c66;font-size:.72rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;margin-bottom:7px}
body.csf-blog-post .csf-loop-card h3{font-family:Sora,system-ui,sans-serif;font-size:1.03rem;line-height:1.3;margin:0 0 9px;color:#17241f}
body.csf-blog-post .csf-loop-card p{font-size:.92rem;line-height:1.62;color:#5d6965;margin:0 0 14px}
body.csf-blog-post .csf-loop-card--review{grid-column:1/-1}
body.csf-blog-post .csf-loop-phrases{list-style:none;padding:0;margin:0 0 14px;display:grid;gap:9px}
body.csf-blog-post .csf-loop-phrases li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 12px;background:#f7fbf9;border:1px solid #e2eee9;border-radius:14px;font-size:.88rem;line-height:1.45}
body.csf-blog-post .csf-loop-phrases li>span{min-width:0;font-weight:700;color:#273a34}
body.csf-blog-post .csf-loop-phrases li>div{display:flex;gap:6px;flex:0 0 auto}
body.csf-blog-post .csf-loop-phrases button,body.csf-blog-post .csf-loop-ai button{min-height:36px;border:1px solid #bcd9d0;border-radius:999px;background:#fff;color:#0b6b59;font:700 .76rem/1 Sora,system-ui,sans-serif;padding:8px 10px;cursor:pointer}
body.csf-blog-post .csf-loop-ai{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 14px}
body.csf-blog-post .csf-loop-ai a{display:inline-flex;align-items:center;min-height:38px;padding:8px 11px;border-radius:999px;background:#0d7c66;color:#fff;text-decoration:none;font-size:.78rem;font-weight:800}
body.csf-blog-post .csf-loop-done{min-height:42px;border:1px solid #b7d4cb;border-radius:12px;background:#f7fbf9;color:#315b50;font:800 .82rem/1 Sora,system-ui,sans-serif;padding:10px 14px;cursor:pointer}
body.csf-blog-post .csf-loop-done.is-done{background:#0d7c66;color:#fff;border-color:#0d7c66}
body.csf-blog-post .csf-practice-loop__privacy{margin:16px 0 0;color:#6a7773;font-size:.78rem;line-height:1.55}
@media (max-width:720px){
 body.csf-blog-post .csf-practice-loop{padding:32px 16px}
 body.csf-blog-post .csf-practice-loop__head{grid-template-columns:1fr;gap:14px;align-items:start}
 body.csf-blog-post .csf-practice-loop__learning{width:100%;min-height:48px}
 body.csf-blog-post .csf-practice-loop__grid{grid-template-columns:1fr}
 body.csf-blog-post .csf-loop-card--review{grid-column:auto}
 body.csf-blog-post .csf-loop-card{padding:18px}
 body.csf-blog-post .csf-loop-phrases li{align-items:flex-start;flex-direction:column}
 body.csf-blog-post .csf-loop-phrases li>div{width:100%}
 body.csf-blog-post .csf-loop-phrases button{min-height:44px;flex:1}
 body.csf-blog-post .csf-loop-ai{display:grid;grid-template-columns:1fr}
 body.csf-blog-post .csf-loop-ai button,body.csf-blog-post .csf-loop-ai a,body.csf-blog-post .csf-loop-done{width:100%;min-height:48px;justify-content:center;text-align:center}
}


/* A0019520 — Master contrast + UX guardrails (2026-09-14)
 * Fixes the root cause of dark-on-dark headings: generic article typography must
 * never force a light-surface text colour over an intentionally dark component.
 * These rules protect current and future Coffee English posts while keeping
 * blog-theme.css as the single authoritative article presentation layer. */
body.csf-blog-post .hero-grad{
  background:linear-gradient(135deg,#064e3b 0%,#0d7c66 58%,#0f766e 100%)!important;
  color:#fff;
  border-bottom-color:rgba(255,255,255,.14)!important;
}
body.csf-blog-post main > section:first-child.hero-grad h1,
body.csf-blog-post .hero-grad h1,
body.csf-blog-post .hero-grad h2,
body.csf-blog-post .hero-grad h3,
body.csf-blog-post .bg-emerald-950 > h1,
body.csf-blog-post .bg-emerald-950 > h2,
body.csf-blog-post .bg-emerald-950 > h3{
  color:#fff!important;
}
body.csf-blog-post .bg-emerald-950{color:#fff}
body.csf-blog-post .hero-grad p{color:#e8fff8}
body.csf-blog-post .hero-grad a:not([class*="bg-white"]){color:#fff}
body.csf-blog-post .hero-grad a:not([class*="bg-white"]):hover{text-decoration:underline;text-underline-offset:3px}

/* Dialogue blocks: stronger hierarchy, calmer spacing and a safe readable measure. */
body.csf-blog-post .bg-emerald-950 > h2{max-width:22ch;text-wrap:balance}
body.csf-blog-post .bg-emerald-950 > div[class*="grid"]{line-height:1.6}
body.csf-blog-post .bg-emerald-950 > div[class*="grid"] > div{min-width:0}

/* Universal reading and interaction guardrails. */
body.csf-blog-post main :where(p,li){overflow-wrap:break-word}
body.csf-blog-post main :where(pre,table){max-width:100%}
body.csf-blog-post main pre{overflow:auto;-webkit-overflow-scrolling:touch}
body.csf-blog-post main table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
body.csf-blog-post main details > summary{min-height:44px;display:flex;align-items:center;gap:.5rem}
body.csf-blog-post main details > summary:focus-visible{outline:3px solid #f3b61f;outline-offset:3px;border-radius:10px}
body.csf-blog-post :where(h1,h2,h3,[id]){scroll-margin-top:96px}

@media (max-width:620px){
  body.csf-blog-post .bg-emerald-950{border-radius:22px!important;padding:1.25rem!important}
  body.csf-blog-post .bg-emerald-950 > h2{font-size:clamp(1.85rem,9vw,2.55rem)!important;line-height:1.08!important}
}

@media (prefers-reduced-motion:reduce){
  body.csf-blog-post *,
  body.csf-blog-post *::before,
  body.csf-blog-post *::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
