/* groundschool.4vfr.com — shared stylesheet for all article pages.
   Matches the chrome of the main www.4vfr.com site so the two subdomains
   feel like one product. Mobile-first; tap-target sized for phones. */

:root{
  --brand:#0f4d3a;
  --brand-2:#2e8e6b;
  --brand-tint:#e8f1ed;
  --ink:#1a1f1d;
  --ink-2:#4a5550;
  --rule:#e3e6e4;
  --bg:#fafafa;
  --card:#ffffff;
  --accent:#c9322a;
  --radius:10px;
  --max:1120px;
}
*{box-sizing:border-box}
html,body{overflow-x:hidden}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:17px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;height:auto}
h1,h2,h3{line-height:1.25;margin:0 0 .5em}

/* Site header — same as main 4vfr.com */
.site-header{background:var(--brand);color:#fff;border-bottom:3px solid var(--brand-2)}
.site-header__inner{max-width:var(--max);margin:0 auto;padding:14px 20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.brand{display:flex;align-items:baseline;gap:10px;color:#fff;text-decoration:none;flex:0 0 auto}
.brand__mark{font-size:26px;font-weight:800;letter-spacing:.02em}
.brand__tag{font-size:13px;opacity:.85;display:none}
@media (min-width:720px){.brand__tag{display:inline}}
.nav-toggle{margin-left:auto;background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;padding:8px 14px;border-radius:6px;font-size:14px;cursor:pointer;min-height:40px}
@media (min-width:860px){.nav-toggle{display:none}}
.nav{width:100%;display:none}
.nav.open{display:block}
@media (min-width:860px){.nav{display:block!important;width:auto;margin-left:auto}}
.nav ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:0}
@media (min-width:860px){.nav ul{flex-direction:row;gap:4px;margin:0}}
.nav a{display:block;padding:12px 14px;color:#fff;border-radius:6px;font-weight:500;font-size:15px;min-height:44px}
.nav a:hover,.nav a.is-active{background:rgba(255,255,255,.12);text-decoration:none}

/* Layout */
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.layout{display:grid;grid-template-columns:1fr;gap:28px;margin:16px 0 40px}
@media (min-width:980px){.layout{grid-template-columns:minmax(0,1fr) 320px;gap:36px}}

/* Ad slots */
.ad-slot{text-align:center;margin:16px 0;min-height:90px;display:flex;align-items:center;justify-content:center}
.ad-slot ins{margin:0 auto}

/* Article body */
article{background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);padding:24px 28px}
@media (max-width:720px){article{padding:18px 16px}}
article h1{color:var(--brand);font-size:clamp(24px,3.5vw,32px);margin-bottom:.25em}
article .article-date{color:var(--ink-2);font-style:italic;font-size:14px;margin:0 0 24px;padding-bottom:18px;border-bottom:1px solid var(--rule)}
article .article-body{font-size:17px;line-height:1.7}
article .article-body p{margin:0 0 1.1em}
article .article-body img{margin:8px 12px 8px 0;border-radius:6px}
article .article-body img[align="right"]{float:right;margin:0 0 12px 16px}
article .article-body img[align="left"]{float:left;margin:0 16px 12px 0}
@media (max-width:520px){
  article .article-body img[align="left"],article .article-body img[align="right"]{float:none;display:block;margin:8px auto 16px}
}
article .article-body ul,article .article-body ol{padding-left:24px;margin:0 0 1em}
article .article-body li{margin:.3em 0}
article .article-body font{font-family:inherit!important;font-size:inherit!important;color:inherit!important}
article .article-body b{font-weight:600}
article .byline{margin-top:24px;padding-top:16px;border-top:1px solid var(--rule);color:var(--ink-2);font-size:14px;font-style:italic}

/* Comment form */
.comment-form{margin-top:32px;padding-top:24px;border-top:1px solid var(--rule)}
.comment-form label{display:block;font-weight:500;font-size:14px;color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}
.comment-form textarea{width:100%;padding:10px 12px;font-family:inherit;font-size:15px;line-height:1.5;border:1px solid var(--rule);border-radius:6px;background:#fff;color:var(--ink);box-sizing:border-box}
.comment-form textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}
.comment-form button{margin-top:10px;background:var(--brand);color:#fff;font-size:15px;font-weight:600;padding:10px 22px;border:0;border-radius:6px;cursor:pointer;min-height:44px}
.comment-form button:hover{background:var(--brand-2)}

/* Sidebar */
.side-card{background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);overflow:hidden;margin-bottom:16px}
.side-card__title{background:var(--ink);color:#fff;padding:10px 14px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.side-card__body{padding:14px}
.side-card__body p{margin:0 0 .8em;font-size:14px;line-height:1.5}
.side-card__body a{font-weight:500}
.recent-list{margin:0;padding:0;list-style:none}
.recent-list li{margin:0 0 14px;padding-bottom:14px;border-bottom:1px solid var(--rule)}
.recent-list li:last-child{margin:0;padding:0;border:0}
.recent-list a{display:block;font-weight:600;font-size:14px;line-height:1.35;color:var(--brand);margin-bottom:4px}
.recent-list .preview{display:block;font-size:13px;color:var(--ink-2);line-height:1.45}

/* Footer */
.site-footer{background:#0a2a20;color:#cdd6d2;padding:28px 20px;margin-top:40px;font-size:14px}
.site-footer__inner{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1fr;gap:18px}
@media (min-width:760px){.site-footer__inner{grid-template-columns:2fr 1fr 1fr}}
.site-footer h3{color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}
.site-footer a{color:#9ad4be}
.site-footer__bottom{border-top:1px solid #1b3d31;margin-top:18px;padding-top:14px;text-align:center;font-size:12px;color:#7a8b85}

/* ====================================================================
   Article library (articles.html)
   ==================================================================== */
.library-hero{background:linear-gradient(180deg,#fff,var(--brand-tint));border:1px solid var(--rule);border-radius:var(--radius);padding:24px;margin:14px 0 22px}
.library-hero h1{color:var(--brand);font-size:clamp(24px,3.5vw,30px);margin:0 0 8px}
.library-hero p{margin:0 0 14px;color:var(--ink-2);font-size:15px}
.library-hero input[type=search]{width:100%;padding:12px 14px;font:inherit;font-size:15px;border:2px solid var(--rule);border-radius:8px;background:#fff;box-sizing:border-box;-webkit-appearance:none;appearance:none}
.library-hero input[type=search]:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}
.library-section{margin:28px 0 20px;scroll-margin-top:24px}
.library-section h2{color:var(--brand);font-size:22px;margin:0 0 14px;display:flex;align-items:baseline;gap:10px}
.library-section h2 .count{font-size:13px;font-weight:500;color:var(--ink-2)}

.category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;list-style:none;padding:0;margin:0}
.category-grid li{margin:0}
.category-grid a{display:block;background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--brand);border-radius:6px;padding:12px 14px;color:var(--ink);text-decoration:none;transition:all .12s ease}
.category-grid a:hover{background:var(--brand-tint);border-left-color:var(--brand-2);text-decoration:none}
.category-grid strong{display:block;font-weight:600;font-size:15px;color:var(--brand);line-height:1.3}
.category-grid span{display:block;font-size:12px;color:var(--ink-2);margin-top:2px}

.article-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr;gap:0}
@media (min-width:760px){.article-list{grid-template-columns:1fr 1fr}}
.article-list li{margin:0;border-bottom:1px solid var(--rule)}
.article-list li:last-child{border-bottom:0}
.article-list a{display:block;padding:11px 14px;color:var(--ink);text-decoration:none}
.article-list a:hover{background:var(--brand-tint);text-decoration:none}
.article-list strong{display:block;font-size:15px;color:var(--brand);line-height:1.35;font-weight:600}
.article-list .preview{display:block;font-size:13px;color:var(--ink-2);line-height:1.45;margin-top:3px}

.az-nav{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 18px;padding:12px;background:var(--card);border:1px solid var(--rule);border-radius:6px;position:sticky;top:0;z-index:5}
.az-nav a{display:inline-block;min-width:30px;text-align:center;padding:6px 8px;font-size:13px;font-weight:600;color:var(--brand);border-radius:4px}
.az-nav a:hover{background:var(--brand-tint);text-decoration:none}
.az-nav a.empty{color:var(--ink-2);opacity:0.4;pointer-events:none}
.az-block{margin:0 0 20px}
.az-block h3{color:var(--brand);font-size:20px;font-weight:700;margin:0 0 8px;padding:6px 12px;background:var(--brand-tint);border-radius:6px;display:inline-block;scroll-margin-top:80px}

.library-back-to-top{display:inline-block;margin:24px 0 0;color:var(--brand);font-weight:500;font-size:14px}
.no-results{padding:20px;text-align:center;color:var(--ink-2);font-style:italic}

/* ====================================================================
   Subject index (word_index.html)
   ==================================================================== */
.wi-section{margin:24px 0 18px;scroll-margin-top:24px}
.wi-letter{display:inline-block;font-size:28px;font-weight:800;color:var(--brand);padding:4px 16px;background:var(--brand-tint);border-radius:6px;margin:0 0 12px;font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace}
.wi-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr;gap:4px}
@media (min-width:760px){.wi-list{grid-template-columns:1fr 1fr}}
.wi-list li{padding:8px 12px;border-radius:6px;font-size:14px;line-height:1.5}
.wi-list li:nth-child(odd){background:var(--card);border:1px solid var(--rule)}
.wi-list li:nth-child(even){background:var(--brand-tint)}
.wi-word{font-weight:600;color:var(--ink);margin-right:6px}
.wi-refs{color:var(--ink-2);font-size:13px}
.wi-refs a{font-weight:500;margin-right:2px;padding:1px 6px;border-radius:4px;background:rgba(15,77,58,.08);text-decoration:none}
.wi-refs a:hover{background:var(--brand);color:#fff;text-decoration:none}
.wi-empty-letter{color:var(--ink-2);font-style:italic;font-size:14px;padding:4px 0 12px}
