/* v0.4: a visual, deliberately selected front page. */
body[data-kind=home]{background:#faf8f2}
.edition-line{display:flex;justify-content:space-between;gap:20px;padding:24px 0 18px;font:12px/1.5 var(--sans);color:var(--muted);border-bottom:1px solid var(--line);margin-bottom:28px}
.front-page{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(0,1fr);gap:34px;margin-bottom:54px}
.story-image{display:block;background:#f4eee3;overflow:hidden}
.story-image img{display:block;width:100%;height:auto;aspect-ratio:900/560;object-fit:contain;transition:filter .15s}
.story-image:hover img{filter:brightness(.96)}
.front-lead .eyebrow,.edition-card .eyebrow{margin:19px 0 10px;color:#28796d;font-size:10px;letter-spacing:.085em}
.front-lead h1{font-size:clamp(32px,3.1vw,43px);line-height:1.12;max-width:750px;letter-spacing:-.035em}
.front-dek{font:18px/1.5 var(--sans);color:#53616a;max-width:660px;margin:14px 0 0}
.front-side{display:grid;align-content:start;gap:25px;border-left:1px solid var(--line);padding-left:30px}
.edition-card h3{font:500 25px/1.18 var(--serif);letter-spacing:-.02em;margin:0}
.front-side .edition-card h3{font-size:23px}
.front-side .edition-card .eyebrow{margin-top:12px;margin-bottom:7px}
.home-section{margin:0 0 48px}
.home-section .section-title{border-top:2px solid var(--navy);padding-top:18px;margin-bottom:24px}
.home-section .section-title h2{font-size:28px;margin:0}
.home-section .section-title a{font-size:12px;white-space:nowrap}
.visual-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.business-feature{display:grid;grid-template-columns:1.2fr 1fr;gap:36px;align-items:center;background:#f0f0e7;padding:24px}
.business-feature h2{font-size:34px;line-height:1.12}
.business-feature p:not(.eyebrow){font-size:16px;color:#53616a;line-height:1.6;margin-bottom:0}
.business-feature .eyebrow{color:#28796d;font-size:11px}
.subject-index{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.subject-index a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);font-size:14px;font-weight:600}
.subject-index a:hover{background:#efeee5;text-decoration:none}
.subject-index span{color:#28796d}
.reference-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:0 0 60px}
.reference-pair>a{display:flex;gap:22px;align-items:center;background:var(--navy);color:#fff;padding:27px}
.reference-pair>a:hover{background:#20485f;text-decoration:none}
.reference-pair h2{font-size:23px;margin:0 0 8px}
.reference-pair p{font-size:12px;color:#d3dfdf;margin:0}
.reference-mark{font:45px/1 var(--serif);color:#cfac7a;min-width:56px}
.reference-pair>a>span:last-child{margin-left:auto}
.article-body .original-visual:has(.article-chart){padding:0;background:#f4eee3;border:0}
.original-visual:has(.article-chart)>h2{padding:22px 24px 0;margin-bottom:0}
.article-chart{width:100%;height:auto;display:block}
.original-visual:has(.article-chart)>figcaption{margin:0;padding:15px 24px;border-top:1px solid #d9d6cb}
.code-sample{padding:22px;background:#eaf0eb;font:15px/1.6 Consolas,monospace;overflow-x:auto;border-left:3px solid #28796d}
.article-body p{max-width:72ch}
@media(max-width:1000px){.front-page{grid-template-columns:1.7fr 1fr;gap:25px}.front-side{padding-left:23px}.front-side .edition-card h3{font-size:21px}.visual-grid{gap:20px}.edition-card h3{font-size:23px}.business-feature{gap:25px;padding:20px}.business-feature h2{font-size:29px}.subject-index{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.edition-line{font-size:11px;padding-top:18px;margin-bottom:20px}.edition-line>span:last-child{display:none}.front-page{display:block;margin-bottom:35px}.front-lead h1{font-size:32px;line-height:1.13}.front-dek{font-size:16px}.front-side{grid-template-columns:1fr 1fr;border:0;border-top:1px solid var(--line);padding:22px 0 0;margin-top:24px;gap:18px}.front-side .edition-card h3{font-size:21px}.visual-grid{grid-template-columns:1fr;gap:25px}.visual-grid .edition-card{display:grid;grid-template-columns:150px 1fr;gap:0 18px;align-content:start}.visual-grid .story-image{grid-row:1/3;align-self:start}.visual-grid .eyebrow{margin:0 0 8px;font-size:9px}.visual-grid .edition-card h3{font-size:23px}.home-section{margin-bottom:35px}.home-section .section-title{gap:15px;align-items:baseline;padding-top:14px;margin-bottom:20px}.home-section .section-title h2{font-size:25px}.business-feature{grid-template-columns:1fr;gap:20px;padding:17px}.business-feature h2{font-size:29px}.subject-index{grid-template-columns:1fr 1fr}.subject-index a{padding:17px 13px;font-size:13px}.reference-pair{grid-template-columns:1fr;gap:14px;margin-bottom:35px}.reference-pair>a{padding:24px}.original-visual:has(.article-chart)>h2{font-size:22px;padding:18px 18px 0}.original-visual:has(.article-chart)>figcaption{padding:13px 18px}.code-sample{font-size:13px;padding:16px}.article-body p{line-height:1.65}}
@media(max-width:420px){.front-side{grid-template-columns:1fr}.front-side .edition-card{display:grid;grid-template-columns:115px minmax(0,1fr);gap:0 15px}.front-side .story-image{grid-row:1/3;align-self:start}.front-side .edition-card .eyebrow{margin:0 0 7px}.front-side .edition-card h3{font-size:21px}.visual-grid .edition-card{grid-template-columns:115px minmax(0,1fr);gap:0 15px}.visual-grid .edition-card h3{font-size:21px}.front-lead h1{font-size:30px}.home-section .section-title{display:block}.home-section .section-title a{display:inline-block;margin-top:12px}}
@media(prefers-reduced-motion:reduce){.story-image img{transition:none}}

@media(max-width:720px){.front-lead .story-image img,.business-feature .story-image img{aspect-ratio:auto}.article-chart{height:auto}.front-side picture,.visual-grid picture{display:block}.front-side img,.visual-grid img{aspect-ratio:1;object-fit:contain}}

.article-critique{padding:18px 0;border-bottom:1px solid var(--line)}.article-critique summary{cursor:pointer;font:22px/1.3 var(--serif)}.article-critique p{font-size:14px;margin:15px 0}.article-critique a{font-size:14px;text-decoration:underline}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.editor-credit{flex-basis:100%;font-size:12px;color:var(--muted)}
.manual-tools,.share-actions{display:flex;flex-wrap:wrap;gap:16px;margin:20px 0}.manual-tools a,.share-actions a{text-decoration:underline}
.manual-toc{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px;margin:30px 0 40px;max-width:1000px}.manual-toc a{font-size:15px;line-height:1.4;text-decoration:underline;text-underline-offset:4px}
.manual-chapters{max-width:850px}.manual-chapters details,.article-packet{border-top:1px solid var(--line);padding:20px 0;scroll-margin-top:20px}.manual-chapters summary,.article-packet summary{font:25px/1.25 var(--serif);cursor:pointer}.manual-chapters li{margin:20px 0;line-height:1.65}.manual-chapters blockquote{margin:20px 0;padding:18px 22px;border-left:3px solid var(--accent);background:#edf2f4;line-height:1.6}
.article-packet{max-width:850px}.article-packet p{line-height:1.6}.article-packet .small{overflow-wrap:anywhere}
.share-panel{border-top:1px solid var(--line);margin-top:35px;padding:20px 0}.share-panel summary{cursor:pointer;font:22px var(--serif)}.share-panel label{display:block;margin-top:22px}.share-panel textarea{display:block;width:100%;max-width:100%;font:16px/1.5 var(--sans);padding:12px;border:1px solid var(--line);background:white;color:var(--ink);resize:vertical}.share-panel img{display:block;width:100%;height:auto;border:1px solid var(--line)}.share-panel #share-status{font-size:13px;line-height:1.5}
.manual-chapters pre,#templates pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}
@media(max-width:720px){.manual-toc{grid-template-columns:1fr}.manual-chapters summary,.article-packet summary{font-size:22px}.share-actions{align-items:flex-start}.byline{line-height:1.6}}

@media(max-width:420px){.article-body th,.article-body td{padding:10px 8px;overflow-wrap:normal}.article-body tbody th{min-width:90px}}

/* Stripe support lookup: keep the publisher explanation visible before technical identifiers. */
body[data-page="/articles/payment-retries-involuntary-churn/"] .article-body table{table-layout:fixed;min-width:600px}
body[data-page="/articles/payment-retries-involuntary-churn/"] .article-body tr>:first-child{width:58px;min-width:0}
body[data-page="/articles/payment-retries-involuntary-churn/"] .article-body tr>:nth-child(2){width:190px}
.answer-search{padding:22px 0 28px;max-width:760px}.answer-search label{display:block;font:600 19px/1.5 Arial,sans-serif;margin-bottom:8px}.answer-search>div{display:flex;gap:8px}.answer-search input{flex:1;min-width:0;padding:12px;border:1px solid #9aabb5;border-radius:3px;font-size:16px;background:white}.answer-search button{padding:12px 22px;background:#18374b;color:white;border:0;border-radius:3px;font-size:16px}.section-shortcuts,.definition-links{display:flex;gap:12px 24px;flex-wrap:wrap;margin:20px 0 30px}.section-feature{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center;padding-bottom:30px;border-bottom:1px solid #ccd2d3}.section-feature h2{font-size:clamp(25px,3vw,37px);line-height:1.2}.section-feature p{max-width:50ch}.section-feature img{width:100%;height:auto}.definition-layout{display:grid;grid-template-columns:minmax(0,740px) 230px;gap:55px}.definition-body{max-width:740px}.definition-body section{margin:0 0 30px}.definition-body p{font-size:19px;line-height:1.72}.definition-aside{font-size:15px;line-height:1.5;padding-top:12px}.definition-aside a{display:block;padding:8px 0}.definition-aside h2{font-size:19px;margin-top:30px}.definition-aside nav{border-bottom:1px solid #ccd2d3;padding-bottom:18px}.about-intro{display:grid;grid-template-columns:minmax(0,740px) 250px;gap:50px;align-items:start;margin:15px 0 35px}.about-intro p{font-size:19px;line-height:1.75}.about-intro figure{margin:0}.about-intro img{width:100%;height:auto;border-radius:4px}.about-intro figcaption{font-size:13px;margin-top:8px}.search-result-groups>section{margin:26px 0 40px}.next-reading .story-card p{font-size:16px}.ai-disclosure{font-size:13px}.section-feature .story-image{display:block}.pagehead .eyebrow:empty{display:none}
@media(max-width:760px){.section-feature,.definition-layout,.about-intro{grid-template-columns:1fr;gap:22px}.section-feature .story-image{max-width:520px}.definition-aside{border-top:1px solid #ccd2d3;padding-top:18px}.definition-aside nav{display:none}.about-intro figure{max-width:230px}.answer-search{padding-top:14px}.answer-search label{font-size:17px}.answer-search input{width:100px}.answer-search button{padding:10px 14px}.subjects{flex-wrap:wrap!important;overflow:visible!important;gap:6px 16px!important;padding-bottom:12px!important}.subjects a,.subjects span{font-size:13px!important;padding:4px 0!important}.definition-body p{font-size:18px}.section-shortcuts{gap:12px 18px}.about-intro{margin-top:0}}

.news-decision-table { width: 100%; margin: 1.5rem 0; border-collapse: collapse; font-size: .95rem; overflow-wrap: anywhere; }
.news-decision-table caption { text-align: left; font-weight: 700; padding-bottom: .6rem; }
.news-decision-table th, .news-decision-table td { border: 1px solid #c6d3db; text-align: left; vertical-align: top; padding: .55em; }
.news-decision-table thead { background: #e8eff5; color: #18374b; }

.article-related { margin: 3rem 0; padding: clamp(1rem, 3vw, 2.5rem); background: #eef3f7; border-top: 3px solid #244b6b; }
.article-related ul { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: .85rem; }
.article-related li { display: flex; }
.article-related a { display: grid; align-content: start; gap: .55rem; width: 100%; padding: 1.2rem; border: 1px solid #c9d6e1; background: white; }
.article-related a:hover { border-color: #244b6b; text-decoration: none; }
.article-related a:hover strong { text-decoration: underline; }
.article-related strong { font: 600 1.35rem/1.2 var(--serif); }
.article-related a > span:last-child { color: #354d60; }


.prose figure { margin: 1.5rem 0; }
.prose figure img { display: block; max-width: 100%; height: auto; }

.review-fingerprint code { overflow-wrap: anywhere; }

.front-desk { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 4rem); padding: 1.6rem 0; border-bottom: 1px solid var(--line); }
.front-latest { border-left: 1px solid var(--line); padding-left: clamp(1rem, 2.6vw, 2rem); }
.front-reference > p a { text-decoration: underline; text-underline-offset: .2em; }
.front-guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.front-guide-grid .edition-card { min-width: 0; }
.front-reference { background: #eef3f7; padding: 1.25rem; }
@media (max-width: 720px) {
  .front-desk, .front-guide-grid { grid-template-columns: minmax(0, 1fr); }
  .front-latest { border-left: 0; padding-left: 0; }
  .front-guide-grid .edition-card { display: block; }
}

.front-desk .front-lead .eyebrow { margin-top: 0; }
.front-guide-grid .story-image img { aspect-ratio: auto; }
@media (max-width: 720px) {
  .front-desk .front-lead h1 { font-size: clamp(2.15rem, 9vw, 2.75rem); }
}

.front-desk .front-lead h1 { font-size: clamp(2.25rem, 3.65vw, 3.65rem); margin-bottom: .35em; }
.front-desk .front-dek { margin-top: 0; }
.front-latest h2 { font-size: 1.5rem; margin-bottom: .5rem; }
.front-latest ul { list-style: none; padding: 0; margin: 0; }
.front-latest li { border-top: 1px solid var(--line); padding: .45rem 0; }
.front-latest li a { display: block; font: 500 1.2rem/1.22 var(--serif); }
.front-latest li time { font-size: .72rem; color: var(--muted); }
.front-guides .section-title { border-top: 0; }
@media (max-width: 720px) {
  .front-desk { gap: 1.3rem; padding: 1.2rem 0; }
  .front-latest { padding-top: .85rem; border-top: 1px solid var(--line); }
}

.pagehead { padding: 1.55rem 0 1rem; margin-bottom: 1.15rem; }
.pagehead .eyebrow { margin-bottom: .45rem; }
.pagehead h1 { margin-bottom: .28em; }
.pagehead .lede { font-size: clamp(1.06rem, 2vw, 1.3rem); }
main > .breadcrumb, main > .section-shortcuts { margin-top: 1rem; margin-bottom: 0; }
.breadcrumb + .pagehead, .section-shortcuts + .pagehead { padding-top: .85rem; }
.article-header { margin-top: .95rem; margin-bottom: 1.4rem; }
.section-news { display: flex; align-items: baseline; gap: .5rem 1rem; margin-bottom: 1rem; }
.section-news h2 { flex: none; font: 700 .85rem/1.4 var(--sans); margin: 0; }
.section-news ul { list-style: none; margin: 0; padding: 0; }
.section-news li + li { margin-top: .35rem; }
.section-news a { text-decoration: underline; text-underline-offset: .18em; }
[data-calculator] { padding: 1rem 0; border: 0; background: transparent; max-width: 46rem; }
[data-calculator] output { min-height: 0; padding: .7rem .9rem; margin: .8rem 0 0; }
[data-calculator] output:empty { padding: 0; margin: 0; }
@media (max-width: 720px) {
  .resources { flex-wrap: wrap; gap: 0 .6rem; }
  .resources a, .resources span { padding: .55rem 0; white-space: nowrap; }
  .pagehead { padding-top: 1.1rem; }
  .section-news { display: block; }
  .section-news h2 { margin-bottom: .25rem; }
}

.calculator-actions, .calculator-share { display: flex; flex-wrap: wrap; gap: .6rem; }
.calculator-share { margin-top: .85rem; align-items: center; }
.calculator-share p { flex-basis: 100%; margin: 0; }
.calculator-more, [data-tool-group] { margin: 2rem 0; }
#calculator-filter { max-width: 36rem; }
.calculator-more a { text-decoration: underline; text-underline-offset: .18em; }

.context-calculator { margin: 1.25rem 0; }
.context-calculator a { color: var(--blue); text-decoration: underline; text-underline-offset: .18em; }
[data-tool-group] h2 a:hover { text-decoration: underline; }

.calculator-task-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem 2.5rem; margin-bottom: 2rem; }
.calculator-task h2 { font-size: clamp(1.25rem, 2.5vw, 1.65rem); }
.calculator-task ul { list-style: none; margin: 0; padding: 0; }
.calculator-task li { border-top: 1px solid var(--line); }
.calculator-task li a { display: block; padding: .55rem 0; }
.calculator-reading { margin: .85rem 0 0; font-size: .9rem; }
.calculator-reading a { color: var(--blue); text-decoration: underline; text-underline-offset: .18em; }
.front-calculators .section-title { border-top: 0; margin-bottom: .8rem; }
.front-calculators .story-card { padding-bottom: .4rem; }
.front-calculators .story-card h3 { font-size: 1.2rem; margin-bottom: .35rem; }
.front-calculators .story-card p { margin-bottom: .45rem; }
@media (max-width: 720px) {
  .calculator-task-grid { grid-template-columns: minmax(0, 1fr); }
  .front-calculators .cards { gap: .6rem; }
}

body[data-kind=tools] .pagehead:has(.lede:empty) { margin-bottom: .6rem; padding-bottom: .65rem; }
[data-calculator] .pair { align-items: end; }
[data-calculator] .calculator-actions { gap: .45rem; }
.calculator-share { display: block; }
.calculator-share details { margin-top: .6rem; }
.calculator-share summary, .calculator-formula summary { cursor: pointer; }
.calculator-share-options { display: flex; flex-wrap: wrap; gap: .45rem; padding: .6rem 0; }
.calculator-formula { margin: .8rem 0 1.2rem; }
.calculator-formula p { margin: .55rem 0 0; }
@media (max-width: 720px) {
  body[data-kind=tools] .pagehead h1 { font-size: clamp(1.8rem, 7.5vw, 2.15rem); }
  [data-calculator] .calculator-actions button { flex: 1 1 auto; }
  [data-calculator] .calculator-share button, [data-calculator] summary { min-height: 44px; }
  [data-calculator] summary { padding: .55rem 0; }
}
.reading-jumps, .table-pan-hint { display: none; }
.reading-table caption { text-align: left; font-weight: 700; padding: .55rem 0; }
.reading-table th, .reading-table td { text-align: left; vertical-align: top; }
.table-scroll:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
@media (max-width: 760px) {
  .article-header h1, body[data-kind=news] .pagehead h1, body[data-kind=definition] .pagehead h1 {
    font-size: clamp(1.85rem, 7.8vw, 2.25rem);
    line-height: 1.12;
  }
  .article-header .lede { font-size: 1.07rem; margin-bottom: .7rem; }
  .article-header .byline { gap: .3rem .65rem; padding-top: .55rem; }
  .article-header { margin-bottom: .85rem; }
  .reading-jumps { display: block; margin: .3rem 0 1rem; border-bottom: 1px solid var(--line); }
  .reading-jumps summary { cursor: pointer; padding: .6rem 0; font: 600 .92rem/1.4 var(--sans); }
  .reading-jumps ul { padding-left: 1.25rem; margin: 0 0 .85rem; }
  .reading-jumps li a { display: inline-block; padding: .25rem 0; font: .9rem/1.4 var(--sans); }
  .article-body .reading-jumps + section h2 { margin-top: 0; }
  main .reading-table { width: 100%; font-size: .84rem; line-height: 1.35; }
  main .reading-table th, main .reading-table td { padding: .5rem .4rem; overflow-wrap: break-word; }
  main .table-wide .reading-table { min-width: 390px; }
  main .table-pan-hint { display: block; margin: .5rem 0; font: .82rem/1.4 var(--sans); color: var(--muted); }
  main .table-pan-hint + .table-scroll { margin-top: 0; }
  .article-related { background: transparent; padding: 1rem 0 0; margin: 1.5rem 0; }
  .article-related ul { display: block; }
  .article-related a { padding: .75rem 0; background: transparent; border: 0; border-top: 1px solid var(--line); gap: .25rem; }
  .article-related strong { font-size: 1.15rem; }
  .definition-aside h2 { margin-top: 0; }
  .definition-aside a { display: inline-block; margin-right: 1rem; }
  .definition-aside { padding-top: .85rem; }
}

@media (max-width: 760px) {
  .definition-layout { grid-template-columns: minmax(0, 1fr); }
}
