/* One spacing system for page introductions and editorial content. */
html body main {--lp-article-padding:clamp(32px,4vw,60px);--lp-section-space:clamp(32px,4vw,60px)}
body main :is(.page-heading,.page-intro,.page-title,.section-heading,.cc-head)[data-lp-intro]{
 box-sizing:border-box;min-width:0;padding:var(--lp-section-space);margin-bottom:28px;border-radius:18px;
}
body main :is(.page-heading,.page-intro,.page-title,.section-heading,.cc-head)[data-lp-intro]>:first-child{margin-top:0}
body main :is(.page-heading,.page-intro,.page-title,.section-heading,.cc-head)[data-lp-intro]>:last-child{margin-bottom:0}
body main [data-lp-intro]>h1{margin-top:12px;margin-bottom:20px;line-height:1.15;text-wrap:pretty}
body main :is(.page-heading,.page-intro,.page-title,.section-heading,.cc-head)[data-lp-intro]>p{max-width:80ch;line-height:1.75}
body main .article-body>.article-heading[data-lp-intro]{padding:0;background:none;border-radius:0}
body main .article-header>.lp-intro-block,body main .article-head[data-lp-intro]{background:none;border-radius:0}
/* Nested archive markup is content, not another page shell. */
body main .legacy-content main{background:none!important;padding:0!important;margin:0!important;width:100%!important;max-width:none!important;box-sizing:border-box;min-width:0}
body main .legacy-content :is(.page-heading,.page-intro,.article-heading){background:none!important;border-radius:0}
body main .legacy-content .chess-bg{display:none}
body main .legacy-content main>div:has(>.breadcrumbs-link){display:none}
body main .legacy-content .glass-card{padding:0;margin-block:24px;background:none;border:0;border-radius:0}
body main .legacy-content .glass-card:first-child{margin-top:0}
body main .legacy-content .glass-card:has(>.img-zoom){display:grid;grid-template-columns:minmax(150px,30%) minmax(0,1fr);gap:24px;padding:24px;border:1px solid #b3997738;border-radius:16px;background:#fffaf8}
body main .legacy-content .glass-card>.img-zoom img{width:100%;height:auto;max-height:230px;object-fit:contain;border-radius:10px;margin:0}
body main .legacy-content .glass-card>:last-child{margin-bottom:0}
body main .legacy-content img{max-width:100%}
body main :is(.article-layout,.editorial-layout,.page-layout,.content-layout){min-width:0;gap:clamp(24px,3vw,40px)}
body main :is(.prose,.article-body,.article-content)>p{line-height:1.8;margin-bottom:1.3em}
/* A small book card replaces the additional Chess.com banner when a partner ad already exists. */
body .lp-book-slot{display:block;box-sizing:border-box;width:100%;min-width:0;margin:28px auto 36px;padding:0;border:0;background:none;box-shadow:none;grid-column:1/-1}
body main:not(.reading):not(.article-page):not(.inner-page):not(.container):not(.cpg-courses)>.lp-book-slot{width:min(1320px,calc(100% - 48px))}
body .lp-book-offer{display:grid;grid-template-columns:76px minmax(0,1fr) auto;align-items:center;gap:24px;box-sizing:border-box;width:100%;min-width:0;padding:24px 28px;margin:0;border:1px solid #d4bba0;border-radius:16px;background:linear-gradient(115deg,#fffdf8,#f1e7d7);color:#392a20;box-shadow:0 5px 18px #35200b08;font-family:system-ui,-apple-system,Segoe UI,sans-serif;text-align:left}
body .lp-book-offer-cover{display:block;width:76px;line-height:0;border-radius:3px;box-shadow:3px 5px 12px #3020152b;overflow:hidden}
body .lp-book-offer-cover img{display:block!important;width:76px!important;height:auto!important;max-height:none!important;aspect-ratio:310/466;object-fit:contain!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important}
body .lp-book-offer-copy{min-width:0}
body .lp-book-offer-kicker{display:block;margin:0 0 9px;color:#785136;font:750 10px/1.5 system-ui;letter-spacing:.1em;text-transform:uppercase}
body .lp-book-offer-copy h2{margin:0 0 10px!important;color:#392a20!important;font:600 clamp(19px,2vw,25px)/1.25 Georgia,serif!important;letter-spacing:normal!important}
body .lp-book-offer-copy p{margin:0!important;color:#66513e!important;font:14px/1.7 system-ui!important}
body .lp-book-offer-button{display:flex;flex-direction:column;justify-content:center;gap:4px;min-height:48px;padding:12px 18px;border:1px solid #6f4527;border-radius:10px;background:#6f4527;color:#fff9ef!important;text-align:center;text-decoration:none!important;font:650 13px/1.4 system-ui;white-space:nowrap}
body .lp-book-offer-button strong{font-size:16px;line-height:1.4;color:inherit}
body .lp-book-offer-button:hover{background:#50301b}
body .lp-book-offer a:focus-visible{outline:3px solid #af843e;outline-offset:4px}
@media(max-width:900px){body .lp-book-offer{grid-template-columns:68px minmax(0,1fr);gap:18px;padding:22px}body .lp-book-offer-cover,body .lp-book-offer-cover img{width:68px!important}body .lp-book-offer-button{grid-column:1/-1;flex-direction:row;align-items:center;gap:12px}}
@media(max-width:640px){
 html body main{--lp-article-padding:24px;--lp-section-space:28px}
 body main :is(.page-heading,.page-intro,.page-title,.section-heading,.cc-head)[data-lp-intro]{padding:28px 24px;border-radius:14px;margin-bottom:24px}
 body main .article-body>.article-heading[data-lp-intro]{padding:0}
 body main:not(.reading):not(.article-page):not(.inner-page):not(.container):not(.cpg-courses)>.lp-book-slot{width:calc(100% - 32px)}
 body .lp-book-slot{margin-block:24px 28px}
 body .lp-book-offer{padding:18px;gap:16px}
 body .lp-book-offer-kicker{font-size:9px;margin-bottom:7px}
 body .lp-book-offer-copy p{font-size:13px!important}
 body main .legacy-content .glass-card:has(>.img-zoom){grid-template-columns:minmax(0,1fr);padding:20px;gap:18px}
}
@media print{.lp-book-slot{display:none!important}}

/* Consistent outer and inner gutters, also on headings without an article. */
html body main.wrap.inner-page{box-sizing:border-box;width:min(1440px,calc(100% - 48px));padding:var(--lp-article-padding)}
html body main.reading{padding:var(--lp-article-padding)!important}
html body main>:is(.page-heading.wrap,.page-title.wrap){width:min(1440px,calc(100% - 48px));padding:var(--lp-section-space)}
html body main :is(.article-layout,.editorial-layout,.page-layout,.content-layout)>:is(article,.prose,.article-body){min-width:0}
html body main :is(.article-body,.article-content,.prose,main.reading>article)>:first-child{margin-top:0}
@media(max-width:640px){
 html body main.wrap.inner-page{width:calc(100% - 24px)}
 html body main>:is(.page-heading.wrap,.page-title.wrap){width:calc(100% - 24px);padding:28px 24px}
}
