/* BALLISTICS101 | universal interior design system. No page-specific selectors. */
:root { --paper:#f3f2f0; --white:#fff; --ink:#252525; --red:#e54043; --dark:#111; --line:#d9d9d9; --max:1180px; }
*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body.b101-modern { margin:0; min-height:100vh; min-height:100dvh; display:flex; flex-direction:column; background:var(--paper); color:var(--ink); font:15px/1.65 Arial,Helvetica,sans-serif; }
body.b101-modern a { color:inherit; text-decoration:none; }
body.b101-modern a:hover { color:var(--red); }
body.b101-modern img,body.b101-modern iframe { max-width:100%; height:auto; }
body.b101-modern .wrap,body.b101-modern .b101-header-inner,body.b101-modern .b101-footer-inner,body.b101-modern .b101-footer-bottom { width:min(var(--max),calc(100% - 48px)); max-width:var(--max); margin-inline:auto; }
body.b101-modern .b101-header { background:#0a0a0a; color:#fff; border-bottom:1px solid transparent; border-image:linear-gradient(to right,#350609,#a51f25,#e54043) 1; }
body.b101-modern .b101-header-inner { min-height:112px; display:flex; justify-content:space-between; align-items:center; gap:30px; }
body.b101-modern .b101-brand { flex-shrink:0; display:flex; flex-direction:column; color:#fff; line-height:1; }
body.b101-modern .b101-brand-word { font-size:29px; font-weight:900; letter-spacing:-1.6px; }
body.b101-modern .b101-brand-word span,body.b101-modern .b101-footer-brand span { color:var(--red); }
body.b101-modern .b101-brand-word small,body.b101-modern .b101-footer-brand small { font-size:11px; letter-spacing:0; }
body.b101-modern .b101-brand-caption { color:#aeb0b3; font-size:9px; letter-spacing:2px; font-weight:700; margin-top:9px; }
body.b101-modern .b101-nav { display:flex; align-items:center; gap:22px; }
body.b101-modern .b101-nav a,body.b101-modern .b101-nav summary { color:#eee; font-size:12px; font-weight:800; letter-spacing:.5px; cursor:pointer; list-style:none; white-space:nowrap; }
body.b101-modern .b101-nav a:hover,body.b101-modern .b101-nav summary:hover { color:var(--red); }
body.b101-modern .b101-dropdown { position:relative; }
body.b101-modern .b101-dropdown summary::-webkit-details-marker { display:none; }
body.b101-modern .b101-dropdown-menu { position:absolute; z-index:30; top:100%; right:0; min-width:210px; max-height:70vh; overflow:auto; padding:10px; background:#181818; box-shadow:0 8px 22px #0006; display:flex; flex-direction:column; gap:0; }
body.b101-modern .b101-dropdown:not([open]) .b101-dropdown-menu { display:none; }
body.b101-modern .b101-dropdown-menu a { padding:7px 10px; }
body.b101-modern .b101-menu-toggle { display:none; background:transparent; color:#fff; border:1px solid #777; padding:10px 14px; font-weight:800; }
body.b101-modern .hero { background:linear-gradient(to bottom,#202020 0%,#101010 100%); color:#fff; }
body.b101-modern .hero > .wrap { padding:30px 0 33px; }
body.b101-modern .hero .eyebrow { color:#b8b8b8; font-size:11px; font-weight:800; letter-spacing:2px; text-transform:uppercase; }
body.b101-modern .hero h1 { display:table; margin:9px 0 12px; padding-bottom:0; border-bottom:none; font-size:clamp(27px,3vw,39px); line-height:1.15; letter-spacing:-.6px; font-weight:900; text-transform:uppercase; }
body.b101-modern .hero h1 span { color:var(--red); }
body.b101-modern .hero p { max-width:750px; margin:0; color:#c3c3c3; font-size:14px; }
body.b101-modern .section { padding:32px 0 54px; }
body.b101-modern .section .wrap { min-width:0; }
body.b101-modern .info-card,body.b101-modern .info-alert,body.b101-modern .info-section,body.b101-modern .tacticool-card,body.b101-modern .review-card,body.b101-modern .education-card,body.b101-modern .article-body,body.b101-modern .energy-card { background:#fff; border:1px solid #e1e1e1; border-radius:7px; padding:22px; }
body.b101-modern .info-alert {
    margin-bottom: 22px;
    border-left: 1px solid #c92b2e;
    border-right: 1px solid #c92b2e;
}
body.b101-modern .info-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
body.b101-modern .info-section { margin-top:22px; }
body.b101-modern .info-card h2,body.b101-modern .info-card h3,body.b101-modern .info-alert h2,body.b101-modern .article-body h2 { margin-top:0; font-size:19px; line-height:1.3; }
body.b101-modern .article-body { overflow:hidden; }
body.b101-modern .article-body img { max-width:100%; object-fit:contain; }
body.b101-modern :is(.article-body, .b101-info-page) img[align="left"] { float:left; margin:4px 24px 18px 0; max-width:46%; height:auto; }
body.b101-modern :is(.article-body, .b101-info-page) img[align="right"] { float:right; margin:4px 0 18px 24px; max-width:46%; height:auto; }
/* Shared review/article image spacing: float the link wrapper so text clears its edge. */
body.b101-modern :is(.article-body, .b101-review-content, .b101-info-page) a:has(> img[align="left"]) {
    float: left;
    margin: 4px 24px 18px 0;
    max-width: 46%;
}
body.b101-modern :is(.article-body, .b101-review-content, .b101-info-page) a:has(> img[align="right"]) {
    float: right;
    margin: 4px 0 18px 24px;
    max-width: 46%;
}
body.b101-modern :is(.article-body, .b101-review-content, .b101-info-page) a:has(> img[align]) > img[align] {
    float: none;
    display: block;
    margin: 0;
    max-width: 100%;
    height: auto;
}

body.b101-modern .article-layout { width:100%; }
body.b101-modern .article-layout-row,body.b101-modern .article-layout-cell { width:100%; }
body.b101-modern .article-body table:not(#ballistics-chart):not(#ballistics-chartb) { width:100%; max-width:100%; border-collapse:collapse; }
body.b101-modern .article-body td,body.b101-modern .article-body th { padding:10px; }
body.b101-modern input,body.b101-modern select,body.b101-modern textarea { max-width:100%; font:inherit; }
body.b101-modern input[type="text"],body.b101-modern input[type="email"],body.b101-modern input[type="search"],body.b101-modern textarea { border:1px solid #c9c9c9; background:#fff; padding:11px 12px; border-radius:3px; }
body.b101-modern button,body.b101-modern input[type="submit"],body.b101-modern .btn { cursor:pointer; }
body.b101-modern .b101-chart-search { display:flex; align-items:center; flex-wrap:wrap; gap:12px; background:#35383b; padding:18px; margin:0 0 18px; color:#fff; }
body.b101-modern .b101-chart-search-label { font-size:12px; font-weight:800; letter-spacing:1px; }
body.b101-modern .b101-chart-search input { flex:1 1 260px; min-width:0; }
body.b101-modern .b101-universal-clear { background:#fff; color:#111; border:1px solid #fff; padding:11px 18px; font-size:12px; font-weight:800; }
body.b101-modern .b101-universal-clear:hover { background:var(--red); color:#fff; border-color:var(--red); }
body.b101-modern .b101-chart-search-status { font-size:12px; }
body.b101-modern .b101-chart-no-results { display:none; padding:15px; }
body.b101-modern .b101-chart-scroll { overflow-x:auto; max-width:100%; background:#fff; }
body.b101-modern .b101-footer { margin-top:auto; background:#111; color:#d4d4d4; padding:45px 0 0; }
body.b101-modern .b101-footer-inner { display:grid; grid-template-columns:2fr repeat(3,1fr); gap:35px; }
body.b101-modern .b101-footer-brand { font-size:27px; font-weight:900; color:#fff; letter-spacing:-1px; }
body.b101-modern .b101-footer-column { display:flex; flex-direction:column; gap:7px; }
body.b101-modern .b101-footer-column h2 { color:#fff; font-size:14px; margin:0 0 8px; }
body.b101-modern .b101-footer-column a { font-size:13px; color:#bcbcbc; }
body.b101-modern .b101-footer-bottom { display:flex; justify-content:space-between; border-top:1px solid #333; margin-top:36px; padding:18px 0; font-size:11px; color:#999; }
@media(max-width:900px) { body.b101-modern .b101-header-inner { min-height:90px; } body.b101-modern .b101-menu-toggle { display:block; } body.b101-modern .b101-nav { display:none; position:absolute; z-index:25; left:0; right:0; top:90px; background:#111; padding:16px 24px; flex-direction:column; align-items:stretch; gap:12px; } body.b101-modern .b101-nav.b101-is-open { display:flex; } body.b101-modern .b101-dropdown-menu { position:static; box-shadow:none; max-height:300px; } body.b101-modern .b101-footer-inner { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { body.b101-modern .wrap,body.b101-modern .b101-header-inner,body.b101-modern .b101-footer-inner,body.b101-modern .b101-footer-bottom { width:calc(100% - 36px); } body.b101-modern .b101-brand-word { font-size:20px; } body.b101-modern .b101-brand-word small { font-size:9px; } body.b101-modern .b101-brand-caption { font-size:6px; letter-spacing:1px; } body.b101-modern .hero > .wrap { padding:24px 0 27px; } body.b101-modern .hero h1 { font-size:28px; } body.b101-modern .section { padding:20px 0 35px; } body.b101-modern .info-grid,body.b101-modern .b101-footer-inner { grid-template-columns:1fr; } body.b101-modern .article-body img[align] { max-width:46%; } body.b101-modern .b101-footer-bottom { flex-wrap:wrap; gap:8px; } }

/* Universal article elements: used by every review, never scoped by page name. */
body.b101-modern .b101-review-signoff { margin:1em 0 0; }
body.b101-modern .b101-review-team { margin:0 0 2em; }
body.b101-modern .b101-review-signature { margin:0; }
body.b101-modern .b101-signature-wrap { padding:40px 0 30px; }
body.b101-modern .truglo-feature-card { overflow:hidden; background:#fff; border:1px solid #d9dbdd; border-radius:10px; padding:20px 24px; margin:24px 0 30px; }
body.b101-modern .truglo-feature-title { font-size:16px; font-weight:400; margin:0 0 14px; }
body.b101-modern .truglo-feature-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 22px; }
body.b101-modern .truglo-feature-list li { position:relative; padding-left:23px; }
body.b101-modern .truglo-feature-list li::before { content:'✓'; position:absolute; left:0; color:#c92b2e; font-weight:800; }
body.b101-modern img.truglo-float-image { float:left; width:220px; max-width:42%; margin:4px 24px 18px 0; border:0; border-radius:8px; }
body.b101-modern .underwood-data-table { width:100%; border-collapse:collapse; margin:18px 0 28px; background:#fff; }
body.b101-modern .underwood-data-table td { padding:12px 14px; border:1px solid #d8dadd; }
body.b101-modern .underwood-data-table tr:first-child td { background:#202328; color:#fff; font-weight:700; }
body.b101-modern .underwood-data-table tr:first-child td * { color:#fff; }
body.b101-modern .underwood-data-table tr:not(:first-child) td { background:#fff; }
/* Shared calculator component, including the compact calculator window. */
body.b101-modern .mini { box-sizing:border-box; width:100%; max-width:520px; margin:0 auto; padding:22px; }
body.b101-modern .mini .brand { display:block; font-size:22px; font-weight:900; }
body.b101-modern .mini .brand span,body.b101-modern .mini h1 .accent { color:#e54043; }
body.b101-modern .mini .eyebrow { font-size:10px; font-weight:800; letter-spacing:1.5px; color:#9d2529; margin-top:16px; }
body.b101-modern .mini h1 { font-size:clamp(25px,6vw,36px); line-height:1.1; margin:9px 0 19px; }
body.b101-modern .b101-shared-calc { background:#202328; border-radius:10px; color:#fff; padding:20px; }
body.b101-modern .energy-inputs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
body.b101-modern .energy-inputs label { font-size:12px; font-weight:800; color:#242629; }
body.b101-modern .energy-inputs label span { display:block; margin:4px 0 7px; font-size:9px; letter-spacing:.7px; color:#666a6f; }
body.b101-modern .energy-inputs input { width:100%; min-width:0; padding:10px; border:1px solid #d5d5d5; border-radius:5px; font-size:19px; background:#fff; color:#171717; }
body.b101-modern .energy-result { display:flex; justify-content:space-between; align-items:end; gap:10px; border-top:1px solid #505358; padding-top:16px; margin-top:18px; }
@media(max-width:650px) { body.b101-modern .truglo-feature-list {grid-template-columns:1fr;} body.b101-modern .truglo-feature-card {padding:16px;} body.b101-modern img.truglo-float-image {width:160px;max-width:45%;margin-right:15px;} }


/* UNIVERSAL COMPONENTS: reviews, education, articles, buttons and calculator. */
body.b101-modern .section-title { margin:0 0 10px; font-size:22px; line-height:1.2; font-weight:900; letter-spacing:-.3px; }
body.b101-modern .section-intro { margin:0 0 24px; color:#5b5d60; }
body.b101-modern .article-grid,body.b101-modern .education-grid,body.b101-modern .review-grid,body.b101-modern .card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
body.b101-modern .article-card,body.b101-modern .story-card,body.b101-modern .review-card,body.b101-modern .education-card,body.b101-modern .card { display:flex; flex-direction:column; min-width:0; gap:12px; background:#fff; color:#242424; border:1px solid #dedede; border-radius:7px; padding:24px; text-decoration:none; }
body.b101-modern .article-card:hover,body.b101-modern .story-card:hover,body.b101-modern .review-card:hover { border-color:#c92b2e; }
body.b101-modern .article-card h3,body.b101-modern .story-card h3,body.b101-modern .review-card h3 { margin:0; font-size:17px; line-height:1.3; }
body.b101-modern .article-card p,body.b101-modern .story-card p,body.b101-modern .review-card p { margin:0; color:#565656; }
body.b101-modern .article-number,body.b101-modern .article-card small { font-size:10px; font-weight:800; letter-spacing:1.4px; color:#b1282d; }
body.b101-modern .article-action { display:block; margin-top:auto; padding-top:14px; font-size:11px; font-weight:900; letter-spacing:.7px; text-transform:uppercase; }
body.b101-modern .article-action::after { content:' ↗'; color:#c92b2e; }
body.b101-modern .b101-review-toolbar,body.b101-modern .library-search { margin:18px 0 24px; }
body.b101-modern .b101-review-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
body.b101-modern .b101-review-filter { border:1px solid #c6c6c6; background:#fff; color:#222; padding:9px 14px; font-size:12px; font-weight:800; border-radius:4px; }
body.b101-modern .b101-review-filter.is-active,body.b101-modern .b101-review-filter:hover { background:#171717; color:#fff; border-color:#171717; }
body.b101-modern .b101-review-filter small { opacity:.7; }
body.b101-modern .b101-search-field { display:flex; gap:10px; background:#161616; padding:16px; }
body.b101-modern .b101-search-field input { flex:1; min-width:0; }
body.b101-modern .btn,body.b101-modern .button,body.b101-modern .article-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:12px 20px; background:#111; color:#fff; border:1px solid #111; border-radius:4px; font-size:12px; font-weight:800; text-transform:uppercase; }
body.b101-modern .btn.primary { background:#c92b2e; border-color:#c92b2e; }
body.b101-modern .btn:hover,body.b101-modern .button:hover { background:#c92b2e; border-color:#c92b2e; color:#fff; }
body.b101-modern .search-empty { display:none; }
body.b101-modern .b101-energy-instructions { margin-bottom:24px; }
body.b101-modern .b101-energy-instructions h2 { margin:0 0 10px; font-size:21px; }
body.b101-modern .b101-energy-panel { width:100%; }
body.b101-modern .energy-calculator { width:100%; max-width:none; padding:48px 32px 52px; background:#fff; color:#242629; border:1px solid #d9dcdf; border-top:15px solid #000; border-radius:16px; }
body.b101-modern .energy-calculator .energy-inputs { gap:20px; }
body.b101-modern .energy-calculator .energy-inputs input { padding:14px; background:#fff; border:1px solid #cbd0d4; color:#242629; }
body.b101-modern .energy-calculator .energy-result { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:22px; padding:28px 30px; min-height:225px; border:1px solid #d9dcdf; border-radius:6px; background:#f3f3f3; }
body.b101-modern .energy-calculator .energy-result > div { flex:1; min-width:0; text-align:left; }
body.b101-modern .energy-calculator .energy-result > button { flex:0 0 auto; }
body.b101-modern .energy-calculator .energy-result small { display:block; font-size:12px; font-weight:800; letter-spacing:1.5px; color:#666a6f; }
body.b101-modern .energy-calculator output { display:block; font-size:clamp(48px,8vw,90px); font-weight:900; line-height:1.05; color:#222426; }
body.b101-modern .energy-calculator output span { color:#e54043; font-size:13px; }
body.b101-modern .energy-calculator #energy-reset { padding:12px 20px; min-height:44px; border:1px solid #9da2a7; border-radius:4px; background:#fff; color:#222426; font-weight:800; }
body.b101-modern .energy-calculator #energy-reset:hover { border-color:#c92b2e; background:#c92b2e; }
body.b101-modern .energy-calculator .energy-disclaimer { color:#50545a; font-size:15px; line-height:1.7; margin:22px 0 0; padding-top:0; border-top:0; }
body.b101-modern .energy-note,body.b101-modern .energy-popup { font-size:12px; color:#555; }
@media(max-width:800px) { body.b101-modern .article-grid,body.b101-modern .education-grid,body.b101-modern .review-grid,body.b101-modern .card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { body.b101-modern .article-grid,body.b101-modern .education-grid,body.b101-modern .review-grid,body.b101-modern .card-grid,body.b101-modern .energy-calculator .energy-inputs { grid-template-columns:1fr; } body.b101-modern .energy-calculator { padding:30px 20px 34px; } }


/* Shared dropdown indicators. One rule for all navigation menus. */
body.b101-modern .b101-nav .b101-dropdown > summary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
body.b101-modern .b101-nav .b101-dropdown > summary::after {
    content: "";
    display: inline-block;
    width: 5px;
    height: 5px;
    border-right: 1.5px solid #e54043;
    border-bottom: 1.5px solid #e54043;
    transform: rotate(45deg) translateY(-2px);
    flex: 0 0 auto;
}
body.b101-modern .b101-nav .b101-dropdown[open] > summary::after {
    transform: rotate(225deg) translateY(-1px);
}

/* Shared review sections: consistent content track and card spacing. */
body.b101-modern .review-section {
    padding: 30px 0 20px;
}
body.b101-modern .review-section > .wrap {
    width: min(var(--max), calc(100% - 48px));
    max-width: var(--max);
    margin-inline: auto;
    min-width: 0;
}
body.b101-modern .review-section .section-title {
    margin: 0 0 10px;
}
body.b101-modern .review-section .section-intro {
    margin: 0 0 24px;
}
body.b101-modern .review-section .article-grid {
    width: 100%;
    min-width: 0;
    margin: 0;
    align-items: stretch;
}
@media (max-width: 600px) {
    body.b101-modern .review-section { padding: 24px 0 12px; }
    body.b101-modern .review-section > .wrap { width: calc(100% - 36px); }
}

/* Reusable content components: identical definitions across all interior pages. */
.b101-card { box-sizing:border-box; background:#fff; border:1px solid #dedede; border-radius:9px; padding:24px; min-width:0; }
.b101-card-dark { background:#141618; border-color:#292b2e; color:#fff; }
.b101-card-dark :is(h2,h3,h4,p,span,strong,.ad-price) { color:#fff; }
.b101-card-dark a.ad-button { display:inline-flex; align-items:center; justify-content:center; background:#e23d42; color:#fff; border-radius:5px; padding:12px 16px; text-decoration:none; }
.b101-card-dark a.ad-button:hover { background:#b9262c; }
/* Advertising pricing cards: light technical-specification palette. */
.ad-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
    gap: 24px;
    align-items: stretch;
}
.ad-card {
    position: relative;
    isolation: isolate;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 42px 40px;
    background: #fff;
    color: #242629;
    border: 0;
    border-top: 6px solid #000;
    border-bottom: 0px solid #000;
    border-radius: 14px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, .06);
    overflow: hidden;
}
.ad-card::before {
    content: "";
    position: absolute;
    inset: 20px;
    background: #f3f3f3;
    border: 1px solid #d9dcdf;
    border-radius: 7px;
    z-index: -1;
    pointer-events: none;
}
.b101-card-dark.ad-card h3 {
    margin: 0 0 18px;
    color: #222426;
    font-size: 21px;
    line-height: 1.25;
}
.b101-card-dark.ad-card p { color: #50545a; line-height: 1.55; }
.b101-card-dark.ad-card .ad-subhead { color: #222426; font-weight: 700; }
.b101-card-dark.ad-card .ad-price { margin-top: 18px; color: #222426; font-size: 36px; font-weight: 800; line-height: 1.1; }
.b101-card-dark.ad-card .ad-period { color: #666a6f; font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.b101-card-dark.ad-card .ad-note { color: #5c6065; font-size: 13px; }
.b101-card-dark.ad-card :is(span, strong) { color: inherit; }
.ad-card .ad-divider { width: 100%; border: 0; border-top: 1px solid #d1d4d7; margin: 20px 0; }
.ad-card .ad-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: auto;
    padding: 12px 16px;
    background: #c92b2e;
    border: 1px solid #c92b2e;
    border-radius: 5px;
    color: #fff;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
}
.ad-card .ad-button:hover,
.ad-card .ad-button:focus-visible { background: #a51f25; border-color: #a51f25; color: #fff; }
@media (max-width: 650px) {
    .ad-card { padding: 40px 32px; }
    .ad-card::before { inset: 14px; }
}

.b101-about-layout { display:grid; gap:20px; }
.b101-about-intro::after { content:""; display:block; clear:both; }
.b101-about-figure { float:left; max-width:34%; margin:0 24px 16px 0; }
.b101-about-figure img { max-width:100%; height:auto; border:0; }
.b101-about-layout p { line-height:1.75; margin:0 0 16px; }
.b101-friends-redesign { width:100%; max-width:100%; }
.b101-friends-section { margin:0 0 22px; }
.b101-friends-section h2 { margin:0 0 20px; }
.b101-friends-entries { display:block; }
.b101-friend-entry { min-width:0; margin-bottom:20px; }
.b101-friend-entry:last-child { margin-bottom:0; }
.b101-friend-entry p { margin:0 0 12px; line-height:1.65; }
.wallpaper-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); gap:22px; }
.wallpaper-card { overflow:hidden; }
.wallpaper-card h2 { margin:0 0 12px; }
.wallpaper-card img { display:block; width:100%; height:auto; border:0; border-radius:4px; }
.wallpaper-card-body { padding-top:16px; }
.wallpaper-sizes { display:flex; flex-wrap:wrap; gap:10px; }
.wallpaper-sizes a {
    display:inline-block;
    padding:9px 13px;
    background:#fff;
    border:1px solid #d7dadd;
    border-radius:5px;
    color:#24272b;
    font-size:12px;
    font-weight:700;
    line-height:1.2;
    text-decoration:none;
}
body.b101-modern .wallpaper-sizes a:hover,
body.b101-modern .wallpaper-sizes a:focus-visible {
    background:#c92b2e;
    border-color:#c92b2e;
    color:#fff;
}
.b101-b4b-list { display:grid; gap:40px; }
.b101-b4b-card { display:grid; grid-template-columns:minmax(180px,32%) minmax(0,1fr); gap:24px; align-items:start; border-top:4px solid #c92b2e; padding:25px 75px; }
.b101-b4b-card.b101-b4b-stacked { grid-template-columns:minmax(0,1fr); gap:18px; }
.b101-b4b-image { display:flex; align-items:flex-start; justify-content:flex-start; background:#fff; }
.b101-b4b-image img { display:block; width:auto; max-width:100%; height:auto; border:0 !important; box-shadow:none !important; outline:0 !important; }
.b101-b4b-copy { min-width:0; }
.b101-b4b-copy p { margin:0 0 14px; line-height:1.65; }
.b101-b4b-copy p.clicks,.b101-b4b-copy p.signatures { width:100%; text-align:right; margin-top:auto; padding-top:18px; }
.b101-b4b-intro { display:block; margin:0 0 32px; }
.b101-b4b-intro h2 { margin:0 0 10px; font-size:clamp(20px,2.1vw,27px); line-height:1.25; font-weight:800; text-transform:uppercase; }
.b101-b4b-intro p { margin:0; font-size:inherit; line-height:1.65; }
.b101-b4b-list { margin-top:0; }
@media (max-width:700px) { .b101-b4b-card { grid-template-columns:1fr; padding:25px; } .b101-about-figure { float:none; max-width:100%; margin:0 0 16px; } }

/* Shared card action button, reusable across every interior page. */
.b101-card-action { display:inline-flex; align-items:center; justify-content:center; min-height:38px; padding:9px 17px; border:1px solid #c92b2e; border-radius:4px; background:#c92b2e; color:#fff !important; font-size:12px; font-weight:800; letter-spacing:.04em; text-decoration:none !important; text-transform:uppercase; transition:background .15s,color .15s; }
.b101-card-action:hover,.b101-card-action:focus-visible { background:#161616; border-color:#161616; color:#fff !important; }
.b101-b4b-copy { display:flex; flex-direction:column; align-items:stretch; min-width:0; height:100%; }
.b101-b4b-copy a.b101-card-action { width:max-content; max-width:100%; align-self:flex-end; margin-left:auto; }

/* Reusable calculator formula display, matching the homepage dark palette. */
.energy-formula-display { text-align:left; margin:0 0 30px; padding:0 0 24px; border-bottom:1px solid #d1d4d7; }
.energy-formula-equation { font-family:Georgia, "Times New Roman", serif; font-size:clamp(38px,5vw,58px); line-height:1.1; color:#222426; font-weight:400; }
.energy-formula-equation sup { font-size:.58em; vertical-align:super; }
.energy-formula-caption { margin-top:12px; font-size:12px; font-weight:800; letter-spacing:2px; color:#666a6f; }

/* Shared calculator formula illustration: one reusable component rule. */
.energy-formula-display {
    position: relative;
    min-height: 255px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    overflow: hidden;
    isolation: isolate;
    background-color: #191b1e;
    padding: 38px 55px;
    border-radius: 4px;
}
.energy-formula-display .energy-formula-equation,
.energy-formula-display .energy-formula-caption {
    position: relative;
    z-index: 2;
    text-align: left;
    color: #fff;
}
.energy-formula-bullet {
    position: absolute;
    right: 55px;
    top: 50%;
    width: min(45%, 560px);
    height: auto;
    transform: translateY(-50%);
    object-fit: contain;
    pointer-events: none;
    z-index: 1;
}
@media (max-width: 700px) {
    .energy-formula-display { min-height: 185px; padding: 24px; }
    .energy-formula-bullet { right: 24px; width: 42%; opacity: .55; }
}

/* Shared bottom-of-review specification charts. */
.b101-review-specs { display: block; clear: both; width: 100%; margin: 34px 0 42px; padding: 24px; border-radius: 12px; background: #fff; box-sizing: border-box; border-top: 15px solid #000; }
.b101-review-specs-header { margin: 0 0 18px; }
.b101-review-specs-header h2 { margin: 5px 0; font-size: clamp(19px, 2vw, 25px); line-height: 1.25; color: #202225; }
.b101-review-kicker { color: #ad2429; font-size: 11px; font-weight: 800; letter-spacing: .1em; }
.b101-review-subtitle { margin: 4px 0 0; color: #565a5d; }
.b101-review-specs table { display: table; width: 100%; max-width: 100%; border-collapse: collapse; background: #fff; table-layout: auto; }
.b101-review-specs tr { display: table-row; }
.b101-review-specs th, .b101-review-specs td { display: table-cell; padding: 11px 15px; border: 1px solid #d9dbdd; text-align: left; vertical-align: middle; font-size: 14px; line-height: 1.4; color: #222; }
.b101-review-specs th { width: 34%; background: #bfc3c6; font-weight: 700; }
.b101-review-specs td { background: #f5f5f5; }
.b101-review-specs tr:hover td { background: #eceeef; }
@media (max-width: 650px) { .b101-review-specs { padding: 15px; } .b101-review-specs th, .b101-review-specs td { padding: 9px; font-size: 12px; overflow-wrap: anywhere; } }

/* Reusable donation card, shared across pages */
body.b101-modern .donation-card {
    background: #35383b;
    border: 1px solid #666b70;
    color: #f4f4f4;
}
body.b101-modern .donation-card h3 { color: #fff; }
body.b101-modern .donation-card .info-muted { color: #c7c9cb; }
body.b101-modern .donation-card .btn.primary {
    display: inline-flex;
    width: auto;
    background: #c92b2e;
    color: #fff;
    border: 1px solid #c92b2e;
}
body.b101-modern .donation-card .btn.primary:hover {
    background: #a51f25;
    border-color: #a51f25;
}

/* Unified split donation card: light gray message and charcoal action. */
body.b101-modern .donation-row {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(280px, 1fr);
    gap: 0;
    margin-top: 24px;
    padding: 0;
    overflow: hidden;
}
body.b101-modern .donation-message,
body.b101-modern .donation-card {
    min-width: 0;
    padding: 28px;
}
body.b101-modern .donation-message {
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: #e4e5e6;
}
body.b101-modern .donation-message p {
    line-height: 1.7;
    margin: 0 0 14px;
}
body.b101-modern .donation-message p:last-child { margin-bottom: 0; }
body.b101-modern .donation-row .donation-card {
    border: 0;
    border-radius: 0;
}
@media (max-width: 720px) {
    body.b101-modern .donation-row { grid-template-columns: 1fr; }
}


/* Shared review highlights and testing-ammunition cards. */
.b101-spec-highlights {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 18px 0 22px;
}
.b101-spec-highlight {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 16px;
    background: #f3f3f3;
    border: 1px solid #d9dbdd;
    border-radius: 6px;
}
.b101-spec-highlight strong { color: #222426; font-size: 22px; }
.b101-spec-highlight small { color: #5d6267; font-size: 11px; letter-spacing: .05em; }
.b101-ammo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
    gap: 18px;
}
.b101-ammo-card {
    min-width: 0;
    padding: 20px;
    background: #f3f3f3;
    border: 1px solid #d9dbdd;
    border-radius: 7px;
}
.b101-ammo-card h3 {
    margin: 0 0 14px;
    color: #222426;
    font-size: 18px;
}
.b101-ammo-items { display: flex; flex-direction: column; gap: 0; }
.b101-ammo-items a, .b101-ammo-items span {
    display: block;
    padding: 10px 0;
    border-top: 1px solid #d9dbdd;
    line-height: 1.45;
    overflow-wrap: anywhere;
}
.b101-ammo-items a { color: #282a2d; text-decoration: none; }
.b101-ammo-items a:hover { color: #c92b2e; text-decoration: underline; }
.b101-article-quote {
    clear: both;
    margin: 22px 0;
    padding: 20px 24px;
    border-left: 4px solid #c92b2e;
    background: #f3f3f3;
}
@media (max-width: 600px) {
    .b101-spec-highlights { grid-template-columns: 1fr; }
    .b101-ammo-grid { grid-template-columns: 1fr; }
}

/* Shared article subsection headings (AR15 assembly steps and other articles). */
body.b101-modern .b101-review-content .riflehead,
body.b101-modern .b101-info-page .riflehead,
body.b101-modern .article-body .riflehead {
    display: block;
    clear: both;
    margin: 30px 0 18px;
    padding: 0 0 10px;
    font-size: clamp(20px, 2vw, 24px);
    font-weight: 800;
    line-height: 1.3;
    color: #242628;
    border-bottom: 2px solid #c92b2e;
}

/* Keep article content within its responsive container. */
body.b101-modern .ar15-article-section .wrap,
body.b101-modern .ar15-article-section .article-body {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}
body.b101-modern .ar15-article-section .article-body p {
    overflow-wrap: break-word;
}
body.b101-modern .ar15-article-section .article-body img {
    max-width: 100%;
    height: auto;
}

/* Shared responsive article layout for comparison and education articles. */
body.b101-modern .b101-article-body { min-width:0; max-width:100%; }
body.b101-modern .b101-article-body .text { max-width:100%; margin-right:0; overflow-wrap:break-word; }
body.b101-modern .b101-article-body .b101-lead-image { float:left; max-width:min(46%, 183px); height:auto; margin:4px 20px 12px 0; }
body.b101-modern .b101-article-body .b101-chart-scroll { max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
body.b101-modern .b101-article-body .b101-chart-scroll table { width:100%; min-width:0; }
@media (max-width:600px) {
    body.b101-modern .b101-article-body .b101-lead-image { max-width:42%; margin-right:14px; }
    body.b101-modern .b101-article-body .b101-chart-scroll { margin-inline:0; }
}

/* Shared article content must shrink within the mobile viewport. */
body.b101-modern .b101-info-page,
body.b101-modern .b101-article-body { min-width:0; max-width:100%; width:100%; }
body.b101-modern .b101-info-page .b101-chart-scroll { width:100%; min-width:0; max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }

/* Universal searchable reference cards, available to all interior pages. */
body.b101-modern .reference-intro { margin:0 0 20px; color:#4b4d50; }
body.b101-modern .reference-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:12px; background:#202328; padding:16px 18px; margin-bottom:18px; }
body.b101-modern .reference-toolbar label { color:#fff; font-size:12px; font-weight:800; letter-spacing:.6px; text-transform:uppercase; }
body.b101-modern .reference-toolbar .b101-search-field { flex:1 1 310px; min-width:0; padding:0; background:transparent; }
body.b101-modern .reference-toolbar input[type="search"] { flex:1 1 180px; min-width:0; width:100%; border:1px solid #bbb; background:#fff; color:#222; padding:11px 12px; font:13px Arial,Helvetica,sans-serif; border-radius:3px; }
body.b101-modern .reference-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
body.b101-modern .reference-card { min-width:0; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:3px; background:#fff; border:1px solid #dedede; border-radius:7px; padding:10px 12px; }
body.b101-modern .reference-code { flex:0 0 auto; color:#c92b2e; font-size:15px; line-height:1.45; font-weight:900; overflow-wrap:anywhere; }
body.b101-modern .reference-definition { min-width:0; font-size:12px; line-height:1.4; color:#333; overflow-wrap:anywhere; }
body.b101-modern .reference-count { margin:17px 0 0; font-size:12px; color:#666; }
body.b101-modern .reference-empty { display:none; padding:18px; background:#fff; border:1px solid #dedede; }
@media (min-width:651px) and (max-width:900px) {
    body.b101-modern .reference-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:650px) {
    body.b101-modern .reference-grid { grid-template-columns:1fr; }
    body.b101-modern .reference-card { padding:10px 12px; }
    body.b101-modern .reference-toolbar .b101-search-field { flex-basis:100%; }
}

/* Universal ammunition submission form components */
body.b101-modern .ammo-submission-intro { max-width:760px; margin:0 0 22px; }
body.b101-modern .ammo-submission-intro h2 { font-size:21px; margin:0 0 8px; }
body.b101-modern .ammo-submission-intro p { margin:0; }
body.b101-modern .ammo-submission-card { padding:28px; }
body.b101-modern .ammo-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
body.b101-modern .ammo-field { min-width:0; display:flex; flex-direction:column; gap:7px; }
body.b101-modern .ammo-field label { font-size:12px; font-weight:800; letter-spacing:.3px; }
body.b101-modern .ammo-field input,
body.b101-modern .ammo-field select,
body.b101-modern .ammo-field textarea { width:100%; min-width:0; border:1px solid #c9c9c9; border-radius:4px; padding:12px 13px; background:#fff; color:#252525; font:inherit; }
body.b101-modern .ammo-field :is(input,select,textarea):focus { outline:2px solid #e54043; outline-offset:1px; }
body.b101-modern .ammo-field--wide { margin-top:20px; }
body.b101-modern .ammo-form-actions { display:flex; align-items:center; flex-wrap:wrap; gap:15px; margin-top:22px; justify-content:flex-end; }
body.b101-modern .ammo-form-actions button { order:2; margin-left:auto; background:#c92b2e; color:#fff; border:1px solid #c92b2e; padding:13px 20px; border-radius:4px; font-size:12px; font-weight:800; letter-spacing:.4px; }
body.b101-modern .ammo-form-actions button:hover { background:#111; border-color:#111; }
body.b101-modern .ammo-form-actions p { order:1; font-size:12px; color:#777; margin:0; }
body.b101-modern .ammo-message { padding:13px 16px; margin-bottom:20px; border:1px solid #ccc; border-left:3px solid #444; background:#f3f2f0; }
body.b101-modern .ammo-message--success { border-left-color:#237a4b; }
body.b101-modern .ammo-message--error { border-left-color:#c92b2e; }
body.b101-modern .ammo-message ul { margin:7px 0 0; padding-left:20px; }
body.b101-modern .ammo-honeypot { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
@media (max-width:600px) {
    body.b101-modern .ammo-submission-card { padding:18px; }
    body.b101-modern .ammo-form-grid { grid-template-columns:1fr; gap:16px; }
    body.b101-modern .ammo-form-actions button { width:auto; max-width:100%; }
}

/* Shared ammunition-category selector: accessible three-choice button group. */
body.b101-modern .ammo-category-field {
    border:0;
    padding:0;
    margin:0;
    min-width:0;
}
body.b101-modern .ammo-category-field legend {
    padding:0;
    margin-bottom:7px;
    font-size:12px;
    font-weight:800;
    letter-spacing:.3px;
}
body.b101-modern .ammo-category-options {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
}
body.b101-modern .ammo-category-option {
    position:relative;
    display:block;
    min-width:0;
    cursor:pointer;
}
body.b101-modern .ammo-category-option input[type="radio"] {
    position:absolute;
    opacity:0;
    width:1px;
    height:1px;
    margin:0;
}
body.b101-modern .ammo-category-option span {
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:49px;
    padding:9px 5px;
    background:#f3f2f0;
    border:1px solid #c9c9c9;
    border-radius:4px;
    color:#333;
    text-align:center;
    font-size:12px;
    font-weight:700;
    line-height:1.3;
    transition:background .15s,border-color .15s,color .15s;
}
body.b101-modern .ammo-category-option:hover span {
    border-color:#c92b2e;
}
body.b101-modern .ammo-category-option input:checked + span {
    background:#252525;
    border-color:#252525;
    color:#fff;
}
body.b101-modern .ammo-category-option input:focus-visible + span {
    outline:2px solid #e54043;
    outline-offset:2px;
}

/* Contact page: consistent padding on every main card and content panel. */
body.b101-modern .b101-info-page .info-alert,
body.b101-modern .b101-info-page .info-grid .info-card,
body.b101-modern .b101-info-page .info-section {
    padding: 30px 40px;
}
@media (max-width: 650px) {
    body.b101-modern .b101-info-page .info-alert,
    body.b101-modern .b101-info-page .info-grid .info-card,
    body.b101-modern .b101-info-page .info-section {
        padding: 30px 20px;
    }
}

/* Shared community submission feature on Contact, visually matching homepage. */
body.b101-modern .b101-contact-ammo {
    margin-top: 22px;
    background: #e9e9e7;
    padding: 30px 40px;
    box-sizing: border-box;
}
body.b101-modern .b101-contact-ammo .ammo-submit-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
    gap: 60px;
}
body.b101-modern .b101-contact-ammo .ammo-submit-copy h2 {
    font-size: clamp(28px, 3.1vw, 39px);
    line-height: 1.13;
    letter-spacing: -0.7px;
    margin: 12px 0 18px;
}
body.b101-modern .b101-contact-ammo .ammo-submit-copy h2 span {
    color: #c92b2e;
}
body.b101-modern .b101-contact-ammo .ammo-submit-copy p {
    color: #55585a;
    line-height: 1.75;
    max-width: 500px;
    margin: 0;
}
body.b101-modern .b101-contact-ammo .ammo-submit-panel {
    background: #f3f2f0;
    border: 1px solid #d8d8d5;
    border-radius: 7px;
    padding: 30px 40px;
}
body.b101-modern .b101-contact-ammo .ammo-submit-kicker {
    display: block;
    color: #73777a;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.5px;
}
body.b101-modern .b101-contact-ammo .ammo-submit-panel h3 {
    font-size: 22px;
    line-height: 1.25;
    margin: 14px 0 10px;
}
body.b101-modern .b101-contact-ammo .ammo-submit-panel p {
    color: #55585a;
    margin: 0 0 24px;
    line-height: 1.65;
}
body.b101-modern .b101-contact-ammo .ammo-submit-button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    width: 100%;
    background: #c92b2e;
    color: #fff;
    padding: 14px 18px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.8px;
    text-decoration: none;
}
body.b101-modern .b101-contact-ammo .ammo-submit-button:hover {
    background: #a51f25;
    color: #fff;
}
body.b101-modern .b101-contact-ammo .ammo-submit-button span {
    font-size: 19px;
    line-height: 1;
}
@media (max-width: 650px) {
    body.b101-modern .b101-contact-ammo {
        padding: 30px 20px;
    }
    body.b101-modern .b101-contact-ammo .ammo-submit-layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 22px;
    }
    body.b101-modern .b101-contact-ammo .ammo-submit-panel {
        padding: 30px 20px;
    }
    body.b101-modern .b101-contact-ammo .ammo-submit-copy h2 {
        font-size: 29px;
    }
}

body.b101-modern .b101-contact-ammo .eyebrow {
    color: #c92b2e;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 2px;
}

/* Donate page: float the founder photo so copy flows around it. */
body.b101-modern .b101-info-page .b101-donate-flow {
    display: flow-root;
}
body.b101-modern .b101-info-page .b101-donate-flow .b101-donate-photo-link {
    display: block;
    float: left;
    margin: 0 24px 14px 0;
}
body.b101-modern .b101-info-page .b101-donate-flow .info-donate-photo {
    display: block;
    max-width: 100%;
    height: auto;
}
body.b101-modern .b101-info-page .b101-donate-flow .info-paypal {
    clear: both;
}
@media (max-width: 600px) {
    body.b101-modern .b101-info-page .b101-donate-flow .b101-donate-photo-link {
        margin-right: 16px;
        max-width: 42%;
    }
}

/* Donate page: restore the distinct full-width PayPal donation card. */
body.b101-modern .b101-info-page .b101-donate-flow .info-paypal {
    display: block;
    clear: both;
    width: fit-content;
    max-width: 100%;
    box-sizing: border-box;
    margin: 26px 0 0;
    padding: 26px 30px;
    background: #ffffff;
    border: 1px solid #d9d9d9;
    border-radius: 8px;
}
body.b101-modern .b101-info-page .b101-donate-flow .info-paypal h3 {
    margin: 0 0 8px;
    font-size: 18px;
}
body.b101-modern .b101-info-page .b101-donate-flow .info-paypal form {
    margin: 14px 0 0;
}
body.b101-modern .b101-info-page .b101-donate-flow .info-paypal .b101-donate-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 13px 24px;
    border: 1px solid #c92b2e;
    border-radius: 5px;
    background: #c92b2e;
    color: #fff;
    font: 800 13px/1.2 Arial, Helvetica, sans-serif;
    letter-spacing: 1px;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .2s, border-color .2s;
}
body.b101-modern .b101-info-page .b101-donate-flow .info-paypal .b101-donate-button:hover,
body.b101-modern .b101-info-page .b101-donate-flow .info-paypal .b101-donate-button:focus-visible {
    background: #a91d23;
    border-color: #a91d23;
    color: #fff;
}
body.b101-modern .b101-info-page .b101-donate-flow .info-paypal .b101-donate-button:focus-visible {
    outline: 3px solid #202327;
    outline-offset: 3px;
}
@media (max-width: 600px) {
    body.b101-modern .b101-info-page .b101-donate-flow .info-paypal {
        padding: 22px 20px;
    }
}
