/*
Theme Name: Talking Shop 4 Fire & EMS
Theme URI: https://www.fireemsleaderpro.org/
Author: Responder MAX
Author URI: https://respondermax.com/
Description: Custom editorial theme for Talking Shop 4 Fire & EMS, a Fire & EMS Leader Pro publication by Battalion Chief (Ret.) Robert Avsec. Classic Editor, self-hosted fonts, focus-point image system.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: talkingshop
License: Proprietary
*/

/* ---------- Tokens ---------- */
:root{
  --ink:#13202E; --paper:#F6F2EA; --surface:#FFFFFF; --sand:#EDE6D9; --rule:#D9D1C2;
  --muted:#4A5562; --body:#1E2A38; --red:#C8102E; --red-dark:#A00D25; --brass:#7A5C34;
  --brass-light:#D4B483; --navy-line:#2E3D4F; --on-navy:#C9D0D8; --placeholder:#DCD3C3;
  --font-display:"Fraunces",Georgia,"Times New Roman",serif;
  --font-body:"Source Serif 4",Georgia,"Times New Roman",serif;
  --font-label:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --container:1240px; --measure:800px; --wide:1040px;
  --gutter:clamp(20px,4vw,64px);
  --space-lg:clamp(36px,5vw,56px); --space-xl:clamp(44px,6vw,88px);
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:24px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:1.125rem;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img,video,iframe{max-width:100%;height:auto}
a{color:var(--ink)}
a:hover{color:var(--red)}
:focus-visible{outline:3px solid var(--red);outline-offset:3px}
:where(h1,h2,h3,h4,h5,h6){font-family:var(--font-display);font-weight:800;line-height:1.1;margin:0;color:var(--ink)}
:where(p,ul,ol,figure,blockquote){margin:0}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.screen-reader-text:focus{clip:auto;width:auto;height:auto;z-index:1000;background:var(--surface);padding:12px 16px;top:8px;left:8px}
.container{max-width:var(--container);margin:0 auto;padding-inline:var(--gutter)}
.label{font-family:var(--font-label);font-weight:700;letter-spacing:.16em;text-transform:uppercase;font-size:0.8125rem}
.label--red{color:var(--red)} .label--brass{color:var(--brass)} .label--muted{color:var(--muted)} .label--light{color:var(--brass-light)}
.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;border-top:3px solid var(--ink);padding-top:14px;margin-bottom:28px}
.section-head h2{font-family:var(--font-label);font-weight:700;letter-spacing:.18em;text-transform:uppercase;font-size:1.125rem}
.section-head a{font-family:var(--font-label);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:0.9375rem}
.arrow-link{align-self:flex-start;display:inline-block;font-family:var(--font-label);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:1rem;color:var(--ink);text-decoration:none;border-bottom:3px solid var(--red);padding:10px 0 6px}
.arrow-link:hover{color:var(--red)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 20px;border:0;font-family:var(--font-label);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:0.9375rem;text-decoration:none;cursor:pointer;background:var(--ink);color:#fff}
.btn:hover{background:#0B141E;color:#fff}
.btn--red{background:var(--red)} .btn--red:hover{background:var(--red-dark)}
.btn--outline{background:transparent;color:var(--ink);border:1px solid var(--ink)} .btn--outline:hover{background:var(--ink);color:#fff}
.btn--light{background:#fff;color:var(--ink)} .btn--light:hover{background:var(--paper);color:var(--ink)}

/* ---------- Brand mark ---------- */
.brand{display:inline-flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--ink)}
.brand__name{font-family:var(--font-display);font-weight:800;font-size:clamp(1.75rem,3vw,2.375rem);line-height:.95;letter-spacing:-.02em}
.brand__sub{font-family:var(--font-label);font-weight:700;letter-spacing:.22em;text-transform:uppercase;font-size:0.875rem}
.brand__four{font-family:var(--font-display);font-style:italic;font-weight:600;letter-spacing:0;font-size:1.3em;color:var(--red)}
.brand:hover{color:var(--ink)}

/* ---------- Utility bar + header ---------- */
.utility{background:var(--ink);color:#E7E2D8}
.utility__inner{display:flex;flex-wrap:wrap;gap:6px 24px;justify-content:space-between;align-items:center;padding-block:9px;font-family:var(--font-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:0.8125rem}
.utility a{color:#E7E2D8;text-decoration:none} .utility a:hover{color:#fff;text-decoration:underline}
.utility ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 20px}
.site-header{background:var(--paper);border-bottom:1px solid var(--rule);position:relative;z-index:20}
.site-header__inner{display:flex;flex-wrap:wrap;gap:16px 40px;justify-content:space-between;align-items:center;padding-block:20px}
.nav-toggle{display:none;align-items:center;gap:10px;min-height:44px;padding:10px 14px;background:transparent;border:1px solid var(--ink);color:var(--ink);font-family:var(--font-label);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:0.9375rem;cursor:pointer}
.nav-toggle__bars{width:18px;height:12px;position:relative;border-top:2px solid currentColor;border-bottom:2px solid currentColor}
.nav-toggle__bars::after{content:"";position:absolute;left:0;right:0;top:3px;border-top:2px solid currentColor}
.primary-nav ul{list-style:none;margin:0;padding:0}
.primary-nav>ul{display:flex;flex-wrap:wrap;align-items:center;gap:0 26px}
.primary-nav a{display:inline-flex;align-items:center;min-height:44px;font-family:var(--font-label);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:0.9375rem;color:var(--ink);text-decoration:none}
.primary-nav a:hover,.primary-nav .current-menu-item>a,.primary-nav .current-menu-ancestor>a{color:var(--red)}
.primary-nav li{position:relative}
.primary-nav .menu-item-has-children>a::after{content:"";width:6px;height:6px;margin-left:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-3px)}
.primary-nav .sub-menu{position:absolute;left:-16px;top:100%;min-width:320px;background:var(--surface);border:1px solid var(--rule);border-top:3px solid var(--red);padding:8px 0;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .15s,transform .15s,visibility .15s}
.primary-nav li:hover>.sub-menu,.primary-nav li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}
.primary-nav .sub-menu a{display:flex;padding:8px 16px;min-height:40px;font-family:var(--font-body);text-transform:none;letter-spacing:0;font-size:1rem;font-weight:600;line-height:1.3}
.primary-nav .menu-cta>a{background:var(--red);color:#fff;padding:0 18px}
.primary-nav .menu-cta>a:hover{background:var(--red-dark);color:#fff}
@media (max-width:960px){
  .nav-toggle{display:inline-flex}
  .primary-nav{display:none;flex-basis:100%}
  .primary-nav.is-open{display:block}
  .primary-nav>ul{flex-direction:column;align-items:stretch;gap:0;border-top:1px solid var(--rule)}
  .primary-nav>ul>li{border-bottom:1px solid var(--rule)}
  .primary-nav .sub-menu{position:static;opacity:1;visibility:visible;transform:none;border:0;padding:0 0 8px 16px;min-width:0;background:transparent}
  .primary-nav .menu-item-has-children>a::after{display:none}
}

/* ---------- Media frames (one 3:2 shape everywhere) ---------- */
.ts-media{position:relative;display:block;width:100%;aspect-ratio:3/2;overflow:hidden;background:var(--placeholder);margin:0}
.ts-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;max-width:none}
.ts-media--portrait{background:var(--ink)}
.ts-media--portrait img{object-fit:contain}
.ts-media--small{max-width:var(--natural-w,100%);margin-inline:auto}

/* ---------- Cards ---------- */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:44px 32px}
.card{display:flex;flex-direction:column;gap:12px;color:var(--ink);text-decoration:none}
.card:hover .card__title{color:var(--red)}
.card__title{font-family:var(--font-display);font-weight:600;font-size:clamp(1.2rem,1.05rem + .45vw,1.45rem);line-height:1.18;transition:color .15s}
.card__meta{font-size:0.9375rem;color:var(--muted)}
.card__excerpt{font-size:1.0625rem;line-height:1.55;color:#2A3542}

/* ---------- Homepage ---------- */
.desk-note{background:var(--sand);border-bottom:1px solid var(--rule)}
.desk-note__inner{display:flex;flex-wrap:wrap;gap:6px 24px;align-items:baseline;padding-block:18px}
.desk-note p{font-size:1.0625rem;line-height:1.55;max-width:920px}
.lead{padding-block:var(--space-lg)}
.lead__box{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);background:var(--surface);border:1px solid var(--rule)}@media (max-width:860px){.lead__box{grid-template-columns:1fr}}
.lead__media{display:block;min-width:0}.lead__media .ts-media{height:100%}
.lead__body{flex:1 1 420px;padding:clamp(24px,3.4vw,48px);display:flex;flex-direction:column;justify-content:center;gap:18px}
.lead__title{font-size:clamp(1.9rem,1.1rem + 2.1vw,3rem);line-height:1.06;letter-spacing:-.015em}
.lead__title a{color:inherit;text-decoration:none} .lead__title a:hover{color:var(--red)}
.lead__meta{font-size:1.0625rem;color:var(--muted)}
.recent{padding-bottom:var(--space-xl)}
.topics{background:var(--ink);color:var(--paper)}
.topics__inner{display:flex;flex-wrap:wrap;gap:40px 72px;padding-block:var(--space-xl)}
.topics__intro{flex:1 1 340px;display:flex;flex-direction:column;gap:18px}
.topics__intro h2{color:var(--paper);font-size:clamp(1.875rem,3.4vw,2.875rem);line-height:1.08}
.topics__motto{font-family:var(--font-display);font-style:italic;font-size:1.25rem;line-height:1.5;color:var(--on-navy)}
.topics__list{flex:1 1 480px;list-style:none;margin:0;padding:0;counter-reset:topic}
.topics__list li{display:flex;gap:22px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--navy-line);font-family:var(--font-display);font-weight:600;font-size:clamp(1.2rem,1rem + .7vw,1.5rem);line-height:1.25}
.topics__list li:last-child{border-bottom:0}
.topics__list li::before{counter-increment:topic;content:counter(topic);font-style:italic;font-weight:400;font-size:1.875rem;color:var(--brass-light);min-width:36px}
.topics__list a{color:var(--paper);text-decoration:none} .topics__list a:hover{color:#fff;text-decoration:underline;text-decoration-color:var(--red)}
.library{padding-block:var(--space-xl)}
.library__grid{display:flex;flex-wrap:wrap;gap:32px}
.book-card{flex:2 1 420px;background:var(--surface);border:1px solid var(--rule);display:flex;flex-wrap:wrap}
.book-card__cover{flex:0 0 170px;align-self:flex-start;aspect-ratio:2/3;background:var(--ink)}
.book-card__cover img{width:100%;height:100%;object-fit:cover;display:block}
.book-card__body{flex:1 1 240px;padding:28px 30px;display:flex;flex-direction:column;gap:12px}
.book-card__title{font-size:clamp(1.35rem,1.1rem + .8vw,1.625rem);line-height:1.12}
.book-card__desc{font-size:1.0625rem;line-height:1.5;color:#3A4552}
.link-list{flex:1 1 280px;list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.link-list a{display:flex;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid var(--rule);font-family:var(--font-display);font-weight:600;font-size:clamp(1.125rem,1rem + .4vw,1.3125rem);line-height:1.25;color:var(--ink);text-decoration:none}
.link-list a::after{content:"\2192";color:var(--red)}
.link-list a:hover{color:var(--red)}
.about{background:var(--sand)}
.about__inner{display:flex;flex-wrap:wrap;gap:40px 64px;align-items:center;padding-block:var(--space-xl)}
.about__photo{flex:0 1 300px;width:300px;max-width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 20%;display:block}
.about__body{flex:1 1 420px;display:flex;flex-direction:column;gap:18px}
.about__body h2{font-size:clamp(1.875rem,3.4vw,2.75rem)}
.about__body p{font-size:clamp(1.0625rem,1rem + .3vw,1.1875rem);line-height:1.6;color:#2A3542}
.chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0}
.chips li{border:1px solid var(--ink);padding:6px 12px;font-family:var(--font-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:0.8125rem}
.engage{padding-block:var(--space-xl)}
.engage__grid{display:flex;flex-wrap:wrap;gap:32px}
.engage__primary{flex:3 1 460px;background:var(--red);color:#fff;padding:clamp(28px,3.4vw,48px);display:flex;flex-direction:column;gap:16px}
.engage__primary h2{color:#fff;font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.1}
.engage__primary p{font-size:1.125rem;line-height:1.5}
.engage__primary input[type=email],.engage__primary input[type=text]{height:52px;border:0;padding:0 16px;font-family:var(--font-body);font-size:1.0625rem;color:var(--ink);background:#fff;width:100%}
.engage__primary input[type=submit]{height:52px;border:0;padding:0 24px;background:var(--ink);color:#fff;font-family:var(--font-label);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:1rem;cursor:pointer}
.engage__follow{display:flex;flex-wrap:wrap;gap:10px}
.engage__secondary{flex:2 1 320px;border:1px solid var(--ink);padding:clamp(28px,3.4vw,48px);display:flex;flex-direction:column;gap:14px;justify-content:center}
.engage__secondary h2{font-size:clamp(1.5rem,1.2rem + 1vw,1.875rem)}
.engage__secondary p{font-size:1.125rem;line-height:1.5;color:#2A3542}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink);color:var(--on-navy)}
.site-footer__top{display:flex;flex-wrap:wrap;gap:32px 64px;justify-content:space-between;padding-block:56px 40px}
.site-footer .brand{color:var(--paper)} .site-footer .brand__four{color:#E46A7B}
.site-footer__credit{font-size:0.9375rem;margin-top:10px}
.footer-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px 28px}
.footer-nav a{color:#E7E2D8;text-decoration:none;font-family:var(--font-label);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:0.875rem}
.footer-nav a:hover{color:#fff;text-decoration:underline}
.site-footer__bottom{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;padding-block:18px 28px;border-top:1px solid var(--navy-line);font-size:0.875rem}
.site-footer__bottom a{color:var(--on-navy)}

/* ---------- Archive / page headers ---------- */
.page-head{padding-block:var(--space-lg) 32px}
.page-head h1{font-size:clamp(2.125rem,4.6vw,3.75rem);line-height:1.05;letter-spacing:-.015em;margin-top:10px}
.page-head__desc{max-width:var(--measure);font-size:1.1875rem;line-height:1.6;color:#2A3542;margin-top:14px}
.archive-body{padding-bottom:var(--space-xl)}
.pagination{margin-top:56px}
.pagination .nav-links{display:flex;flex-wrap:wrap;gap:8px}
.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 12px;border:1px solid var(--ink);font-family:var(--font-label);font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:0.9375rem;color:var(--ink);text-decoration:none}
.pagination .page-numbers.current{background:var(--ink);color:#fff}
.pagination .page-numbers.dots{border-color:transparent}
.pagination a.page-numbers:hover{background:var(--red);border-color:var(--red);color:#fff}
.search-form{display:flex;gap:10px;flex-wrap:wrap;max-width:620px}
.search-form label{flex:1 1 260px}
.search-form input[type=search]{width:100%;height:52px;border:1px solid var(--ink);padding:0 16px;font-family:var(--font-body);font-size:1.0625rem;background:var(--surface);color:var(--ink)}
.no-results{max-width:var(--measure);font-size:1.1875rem;display:flex;flex-direction:column;gap:20px}

/* ---------- Single post ---------- */
.article-head{max-width:960px;margin:0 auto;padding:var(--space-xl) var(--gutter) clamp(28px,4vw,44px);display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px}
.article-head h1{font-size:clamp(2.125rem,5vw,4rem);line-height:1.05;letter-spacing:-.02em}
.article-head .label a{color:var(--red);text-decoration:none}
.byline{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center;text-align:left}
.byline img{width:48px;height:48px;border-radius:50%;object-fit:cover;object-position:center 20%}
.byline__name{font-family:var(--font-label);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:0.9375rem}
.byline__name a{color:inherit;text-decoration:none}
.byline__date{font-size:0.9375rem;color:var(--muted)}
.article-figure{max-width:calc(960px + 2 * var(--gutter));margin:0 auto;padding-inline:var(--gutter)}
.article-figure figcaption{font-size:0.875rem;color:var(--muted);font-style:italic;padding-top:10px}
@media (max-width:600px){.article-figure{padding-inline:0}.article-figure figcaption{padding-inline:20px}}
.article{max-width:calc(var(--measure) + 2 * var(--gutter));margin:0 auto;padding:clamp(32px,5vw,64px) var(--gutter) 24px}

/* ---------- Entry content (classic editor output) ---------- */
.entry-content{font-size:clamp(1.1875rem,1.45vw,1.3125rem);line-height:1.72;color:var(--body);overflow-wrap:break-word}
.entry-content::after{content:"";display:table;clear:both}
.entry-content>*+*{margin-top:1.15em}
.entry-content p:empty{display:none}
.single .entry-content>p:first-of-type::first-letter{float:left;font-family:var(--font-display);font-weight:800;font-size:4.1em;line-height:.8;padding:.08em .12em 0 0;color:var(--red)}
.entry-content h2{font-size:clamp(1.625rem,2.4vw,2rem);line-height:1.15;margin-top:1.8em}
.entry-content h3{font-size:clamp(1.375rem,2vw,1.625rem);line-height:1.2;margin-top:1.6em}
.entry-content h4,.entry-content h5,.entry-content h6{font-family:var(--font-label);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:1.0625rem;margin-top:1.6em}
.entry-content a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:2px;text-underline-offset:3px}
.entry-content a:hover{color:var(--red)}
.entry-content ul,.entry-content ol{padding-left:1.4em}
.entry-content li+li{margin-top:.4em}
.entry-content strong,.entry-content b{font-weight:600}
.entry-content hr,.ts-divider{border:0;border-top:1px solid var(--rule);margin-block:2.2em}
.entry-content table{width:100%;border-collapse:collapse;font-size:.85em;display:block;overflow-x:auto}
.entry-content th,.entry-content td{border:1px solid var(--rule);padding:10px 12px;text-align:left;vertical-align:top}
.entry-content th{background:var(--sand);font-family:var(--font-label);letter-spacing:.08em;text-transform:uppercase;font-size:.85em}
/* Wide breakouts: centered on the reading column, up to 1040px */
.entry-content blockquote,
.entry-content .ts-embed,
.entry-content>p>img.aligncenter,.entry-content>p>a>img.aligncenter,
.entry-content .wp-caption.aligncenter,
.entry-content>figure.aligncenter{
  display:block;position:relative;left:50%;transform:translateX(-50%);
  max-width:min(var(--wide),calc(100vw - 2 * var(--gutter)));margin-inline:0
}
.entry-content>p>a:has(>img.aligncenter){display:block}
.entry-content blockquote{width:min(var(--wide),calc(100vw - 2 * var(--gutter)));border-top:3px solid var(--ink);border-bottom:1px solid var(--rule);padding:18px 0;margin-block:1.6em}
.entry-content blockquote p{font-family:var(--font-body);font-style:italic;font-weight:400;font-size:clamp(1.2rem,1rem + .6vw,1.45rem);line-height:1.5;color:var(--ink);max-width:var(--measure);margin-inline:auto}
.entry-content blockquote p+p{margin-top:.6em}
.entry-content blockquote cite{display:block;font-family:var(--font-label);font-style:normal;font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:0.875rem;color:var(--muted);margin-top:12px;max-width:var(--measure);margin-inline:auto}
.entry-content .ts-embed{width:min(var(--wide),calc(100vw - 2 * var(--gutter)));aspect-ratio:16/9}
.entry-content .ts-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.entry-content img{height:auto}
.entry-content .alignleft{float:left;margin:.3em 1.5em 1em 0;max-width:50%}
.entry-content .alignright{float:right;margin:.3em 0 1em 1.5em;max-width:50%}
.entry-content .alignnone{max-width:100%}
.entry-content .wp-caption{max-width:100%}
.entry-content .wp-caption img{display:block;width:100%}
.entry-content .wp-caption-text,.entry-content figcaption{font-size:0.9375rem;line-height:1.45;color:var(--muted);font-style:italic;padding-top:8px}
.entry-content .gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.entry-content .gallery img{width:100%;aspect-ratio:3/2;object-fit:cover}
@media (max-width:600px){.entry-content .alignleft,.entry-content .alignright{float:none;margin:1em 0;max-width:100%}}
/* Legacy Jarida shortcodes */
.ts-box{padding:20px 24px;background:var(--sand);border-top:3px solid var(--ink)}
.ts-box>*+*{margin-top:.8em}
.ts-box--success{border-top-color:#2F6B4F}
.ts-box--warning,.ts-box--error,.ts-box--important{border-top-color:var(--red)}
.ts-box--download{border-top-color:var(--brass)}
.ts-box.alignleft,.ts-box.alignright{max-width:45%}
.ts-cols{display:flex;flex-wrap:wrap;gap:24px}
.ts-col{flex:1 1 240px;min-width:0}

/* ---------- Post footer ---------- */
.tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:32px 0 0;padding:0}
.tags a{display:inline-block;border:1px solid var(--rule);padding:4px 10px;font-family:var(--font-label);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:0.8125rem;color:var(--muted);text-decoration:none}
.tags a:hover{border-color:var(--red);color:var(--red)}
.share{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding-top:24px;margin-top:32px;border-top:1px solid var(--rule)}
.share .label{margin-right:4px}
.author-box{display:flex;flex-wrap:wrap;gap:20px;background:var(--sand);padding:28px;margin-top:32px}
.author-box img{flex:0 0 96px;width:96px;height:96px;border-radius:50%;object-fit:cover;object-position:center 20%}
.author-box__body{flex:1 1 280px;display:flex;flex-direction:column;gap:8px}
.author-box__name{font-family:var(--font-display);font-weight:800;font-size:clamp(1.25rem,1.1rem + .5vw,1.5rem);line-height:1.15}
.author-box p{font-size:1.0625rem;line-height:1.55;color:#2A3542}
.related{padding-block:var(--space-xl)}
.comments-wrap{max-width:calc(var(--measure) + 2 * var(--gutter));margin:0 auto;padding:0 var(--gutter) var(--space-xl)}
.comments-wrap>h2,.comments-title,.comment-reply-title{font-family:var(--font-label);font-weight:700;letter-spacing:.18em;text-transform:uppercase;font-size:1.125rem;margin-bottom:18px}
.comment-list{list-style:none;padding:0}
.comment-body{border-top:1px solid var(--rule);padding:18px 0}
.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{width:100%;border:1px solid var(--ink);padding:12px 14px;font-family:var(--font-body);font-size:1.0625rem;background:var(--surface)}
.comment-form .submit{min-height:44px;padding:0 22px;border:0;background:var(--ink);color:#fff;font-family:var(--font-label);font-weight:700;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}

/* ---------- Pages ---------- */
.page-article{max-width:calc(var(--measure) + 2 * var(--gutter));margin:0 auto;padding:var(--space-lg) var(--gutter) var(--space-xl)}
.page-article>h1{font-size:clamp(2.125rem,4.6vw,3.5rem);line-height:1.06;letter-spacing:-.015em;margin-bottom:32px}
.page-article--full{max-width:var(--container)}
.page-article--full .entry-content{max-width:none}
.page-thumb{margin-bottom:32px}
.wpcf7 label{display:block;font-family:var(--font-label);font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:0.875rem}
.wpcf7 input[type=text],.wpcf7 input[type=email],.wpcf7 input[type=tel],.wpcf7 input[type=url],.wpcf7 textarea{width:100%;border:1px solid var(--ink);padding:12px 14px;margin-top:6px;font-family:var(--font-body);font-size:1.0625rem;background:var(--surface);color:var(--ink);text-transform:none;letter-spacing:0}
.wpcf7 input[type=submit]{min-height:48px;padding:0 24px;border:0;background:var(--red);color:#fff;font-family:var(--font-label);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:1rem;cursor:pointer}
.book-page{display:flex;flex-wrap:wrap;gap:48px;align-items:flex-start}
.book-page__cover{flex:0 1 340px;max-width:100%}
.book-page__cover img{width:100%;height:auto;display:block;box-shadow:0 18px 40px rgba(19,32,46,.18)}
.book-page__body{flex:1 1 420px;display:flex;flex-direction:column;gap:20px}
.hub-list{list-style:none;margin:40px 0 0;padding:0;border-top:3px solid var(--ink)}
.hub-list li{border-bottom:1px solid var(--rule)}
.hub-list a{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:22px 0;text-decoration:none;color:var(--ink)}
.hub-list a::after{content:"\2192";color:var(--red);font-size:1.375rem}
.hub-list a:hover{color:var(--red)}
.hub-list__title{font-family:var(--font-display);font-weight:600;font-size:clamp(1.2rem,1.05rem + .45vw,1.45rem);line-height:1.25}
.hub-list__excerpt{display:block;font-family:var(--font-body);font-weight:400;font-size:1.0625rem;color:var(--muted);margin-top:6px}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{.utility,.site-header,.share,.related,.comments-wrap,.engage,.site-footer{display:none}}

/* Grid fixes: no orphan cards */
.recent .card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.related .card-grid,.archive-body .card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1000px){.recent .card-grid,.related .card-grid,.archive-body .card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.recent .card-grid,.related .card-grid,.archive-body .card-grid{grid-template-columns:1fr}}

/* Single posts: text runs the full width of the header image (960px), per client. */
body.single{--measure:960px;--wide:960px}
.entry-content blockquote{border-top:0;border-bottom:0;border-left:3px solid var(--red);padding:4px 0 4px 24px}
.entry-content blockquote p,.entry-content blockquote cite{max-width:none;margin-inline:0}

/* Image rule: floats are one consistent size; headings always start below them. */
.entry-content .alignright,.entry-content .wp-caption.alignright{max-width:min(40%,380px)}
.entry-content .alignleft,.entry-content .wp-caption.alignleft{max-width:min(40%,380px)}
.entry-content .alignright img,.entry-content .alignleft img{width:100%;height:auto}
.entry-content h2,.entry-content h3,.entry-content h4,.entry-content h5,.entry-content h6,.entry-content blockquote,.entry-content hr,.entry-content .ts-embed{clear:both}
@media (max-width:600px){.entry-content .alignright,.entry-content .alignleft,.entry-content .wp-caption.alignright,.entry-content .wp-caption.alignleft{max-width:100%}}

/* Single post polish v2 */
/* Small featured images: sharp at natural size over a blurred fill of the same photo (never stretched). */
.ts-media--small{max-width:none;margin-inline:0;background:var(--ink)}
.ts-media--small::before{content:"";position:absolute;inset:-40px;background:var(--ts-bg) center/cover no-repeat;filter:blur(28px) brightness(.7) saturate(1.1)}
.ts-media--small img{inset:0;margin:auto;width:var(--natural-w);height:auto;max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 12px 40px rgba(0,0,0,.35)}
/* Content headings: Bob uses h3-h5 as section heads, so they must read as headings. */
.entry-content h2{margin-top:1.9em}
.entry-content h3{margin-top:1.8em}
.entry-content h4{font-family:var(--font-display);font-weight:800;letter-spacing:-.005em;text-transform:none;font-size:clamp(1.25rem,1.1rem + .5vw,1.5rem);line-height:1.2;margin-top:1.8em}
.entry-content h5{font-family:var(--font-display);font-weight:700;letter-spacing:0;text-transform:none;font-size:clamp(1.125rem,1.05rem + .3vw,1.25rem);line-height:1.25;margin-top:1.6em}
.entry-content :is(h2,h3,h4,h5)+*{margin-top:.55em}
/* Captioned images: the image never floats inside its own caption; caption sits below. */
.entry-content .wp-caption img,.entry-content figure img{float:none!important;position:static!important;left:auto!important;transform:none!important;width:100%;max-width:100%!important;height:auto;margin:0!important;display:block}
.entry-content .wp-caption .wp-caption-text,.entry-content figure figcaption{display:block;padding-top:8px;text-align:left}
/* Rhythm around images. */
.entry-content .wp-caption,.entry-content figure,.entry-content>p>img{margin-top:1.6em;margin-bottom:1.6em}
.entry-content .alignright,.entry-content .wp-caption.alignright{margin:.35em 0 1.2em 2em}
.entry-content .alignleft,.entry-content .wp-caption.alignleft{margin:.35em 2em 1.2em 0}
.entry-content p:has(>img:only-child),.entry-content p:has(>a:only-child>img){margin-top:1.6em;margin-bottom:1.6em}
/* Spacing v3: depth-independent (works even when plugins wrap content in divs) */
.entry-content :is(p,ul,ol,table,blockquote,.ts-box,.ts-embed){margin-top:0;margin-bottom:1.15em}
.entry-content :is(h2,h3,h4,h5,h6){margin-bottom:.55em}
.entry-content :is(div,section)>:last-child{margin-bottom:0}
/* Lists */
.entry-content :is(ul,ol){padding-left:1.6em}
.entry-content ul{list-style:none}
.entry-content ul>li{position:relative}
.entry-content ul>li::before{content:"";position:absolute;left:-1.05em;top:.72em;width:7px;height:7px;background:var(--red)}
.entry-content ol{list-style:decimal}
.entry-content ol>li::marker{font-family:var(--font-label);font-weight:700;color:var(--red)}
.entry-content li{margin:0;padding-left:.15em}
.entry-content li+li{margin-top:.45em}
.entry-content li>:is(ul,ol){margin-top:.45em;margin-bottom:0}
.entry-content li ul>li::before{background:transparent;border:1.5px solid var(--red)}
/* Images: centered get real breathing room; floats wrap text with a clear gutter */
.entry-content :is(.wp-caption.aligncenter,figure.aligncenter,img.aligncenter){margin-top:2em;margin-bottom:2em;display:block}
.entry-content p:has(>img.aligncenter:only-child),.entry-content p:has(>a:only-child>img.aligncenter){margin-top:2em;margin-bottom:2em}
.entry-content :is(.alignright,.alignleft){margin-bottom:1em}
.entry-content p:has(>img:is(.alignright,.alignleft):first-child),.entry-content p:has(>a:first-child>img:is(.alignright,.alignleft)){overflow:visible}
/* Centered small images keep their own size (never stretched) */
.entry-content img.aligncenter{width:auto;max-width:100%;margin-left:auto;margin-right:auto}
.entry-content .wp-caption.aligncenter{margin-left:auto;margin-right:auto;left:auto;transform:none}

/* Headings v4: one consistent scale inside posts, whatever tag the author picked */
.entry-content :is(h2,h3,h4,h5){font-family:var(--font-display);font-weight:800;letter-spacing:-.005em;text-transform:none;color:var(--ink);font-size:clamp(1.375rem,1.2rem + .5vw,1.625rem);line-height:1.2;margin-top:1.9em;margin-bottom:.5em}
.entry-content :is(h2,h3,h4,h5)~:is(h3,h4,h5){}
.entry-content h6{font-family:var(--font-label);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.9375rem;margin-top:1.6em;margin-bottom:.4em}
/* When a post really has two levels (normalized to h2 + h3), the subheading is one step smaller */
.entry-content.has-subheads h3{font-weight:700;font-size:clamp(1.1875rem,1.1rem + .25vw,1.3125rem);margin-top:1.5em}
/* Gravity Forms: brand polish (form colors are set in the form's own Style settings; this handles type and states) */
.gform_wrapper.gform-theme{font-family:var(--font-body)}
.gform_wrapper.gform-theme .gfield_label,.gform_wrapper.gform-theme legend.gfield_label{font-family:var(--font-label)!important;font-weight:700!important;letter-spacing:.1em;text-transform:uppercase;font-size:.875rem!important;color:var(--ink)!important}
.gform_wrapper.gform-theme .gfield_required{color:var(--red)!important}
.gform_wrapper.gform-theme :is(input[type=text],input[type=email],select,textarea){font-family:var(--font-body)!important;font-size:1.0625rem!important;border-color:var(--ink)!important;transition:border-color .15s,box-shadow .15s}
.gform_wrapper.gform-theme :is(input[type=text],input[type=email],select,textarea):focus{border-color:var(--red)!important;box-shadow:0 0 0 3px rgba(200,16,46,.15)!important;outline:none}
.gform_wrapper.gform-theme textarea{min-height:220px}
.gform_wrapper.gform-theme .gform_footer{margin-top:8px}
.gform_wrapper.gform-theme .gform_footer :is(input[type=submit],button){background:var(--red)!important;color:#fff!important;border:0!important;border-radius:0!important;min-height:52px!important;padding:0 32px!important;font-family:var(--font-label)!important;font-weight:700!important;letter-spacing:.14em!important;text-transform:uppercase!important;font-size:1rem!important;cursor:pointer;transition:background .15s}
.gform_wrapper.gform-theme .gform_footer :is(input[type=submit],button):hover{background:var(--red-dark)!important}
.gform_wrapper.gform-theme .gform_footer :is(input[type=submit],button):focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.gform_wrapper.gform-theme .gform_validation_errors{border-radius:0;border-color:var(--red)}
.gform_wrapper .gform_confirmation_message,.gform_confirmation_wrapper .gform_confirmation_message{background:var(--sand);border-left:3px solid var(--red);padding:20px 24px;font-size:1.125rem}
/* Contact page */
.contact{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px 72px;align-items:start;padding-block:var(--space-xl)}
.contact__side{display:flex;flex-direction:column;gap:20px;position:sticky;top:32px}
.contact__title{font-size:clamp(2.4rem,1.6rem + 2.6vw,3.75rem);line-height:1.02;letter-spacing:-.02em}
.contact__intro{font-size:clamp(1.125rem,1.05rem + .3vw,1.3125rem);line-height:1.6;color:#2A3542}
.contact__person{display:flex;align-items:center;gap:16px;padding:18px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.contact__person img{width:72px;height:72px;border-radius:50%;object-fit:cover;object-position:center 20%;flex:0 0 72px}
.contact__name{font-family:var(--font-display);font-weight:800;font-size:1.25rem;line-height:1.2}
.contact__note{font-family:var(--font-display);font-style:italic;color:var(--muted);font-size:1.0625rem}
.contact__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}
.contact__list li{display:flex;flex-direction:column;gap:4px;font-size:1.0625rem;line-height:1.5;color:#2A3542}
.contact__list a{color:var(--ink);text-decoration-color:var(--red);text-decoration-thickness:2px;text-underline-offset:3px}
.contact__form{background:var(--surface);border:1px solid var(--rule);border-top:4px solid var(--ink);padding:clamp(24px,3vw,44px)}
.contact__form .entry-content{font-size:1rem}
.contact__form .gform_required_legend{font-size:.875rem!important;color:var(--muted);margin:0 0 16px!important}
@media (max-width:900px){.contact{grid-template-columns:1fr}.contact__side{position:static}.contact__person,.contact__list{order:3}.contact__form{order:2}}
@media (max-width:900px){.contact{display:flex;flex-direction:column}.contact__side{display:contents}.contact__side>.label{order:0}.contact__title{order:0}.contact__intro{order:1}.contact__form{order:2}.contact__person{order:3}.contact__list{order:4}}
/* About page */
.about-hero{background:var(--sand);border-bottom:1px solid var(--rule)}
.about-hero__inner{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px 64px;align-items:center;padding-block:var(--space-xl)}
.about-hero__photo{width:100%;max-width:440px;aspect-ratio:4/5;object-fit:cover;object-position:center 20%;display:block}
.about-hero__body{display:flex;flex-direction:column;gap:20px}
.about-hero__body h1{font-size:clamp(2.2rem,1.5rem + 2.4vw,3.5rem);line-height:1.04;letter-spacing:-.02em}
.about-hero__motto{font-family:var(--font-display);font-style:italic;font-size:clamp(1.125rem,1rem + .4vw,1.375rem);line-height:1.5;color:#2A3542}
.about-hero__actions{display:flex;flex-wrap:wrap;gap:12px}
.about-logos{padding-bottom:var(--space-lg)}
.about-logos__row{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:24px 56px;align-items:center}
.about-logos__row img{max-height:96px;width:auto;height:auto;display:block}
@media (max-width:860px){.about-hero__inner{grid-template-columns:1fr}.about-hero__photo{max-width:320px}}
/* Resource cards */
.entry-content .ts-resource{background:var(--surface);border:1px solid var(--rule);border-left:4px solid var(--red);padding:24px 28px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin:1.6em 0}
.entry-content .ts-resource .ts-resource__title{margin:0!important;font-size:clamp(1.25rem,1.1rem + .5vw,1.5rem);line-height:1.2}
.entry-content .ts-resource .ts-resource__desc{margin:0;font-size:1.0625rem;line-height:1.55;color:#2A3542}
.entry-content .ts-resource .btn{margin-top:6px;text-decoration:none;color:#fff}
.entry-content .ts-resource .btn:hover{color:#fff}
.hub-head{font-family:var(--font-label);font-weight:700;letter-spacing:.18em;text-transform:uppercase;font-size:1.125rem;margin:64px 0 0;padding-top:14px}
.hub-head+.hub-list{margin-top:14px}
/* About: stats band and even logo tiles */
.about-stats{background:var(--ink);color:var(--paper)}
.about-stats__row{list-style:none;margin:0;padding-block:40px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.about-stats__row li{display:flex;flex-direction:column;gap:6px;border-left:2px solid var(--red);padding-left:18px}
.about-stats__num{font-family:var(--font-display);font-weight:800;font-size:clamp(2rem,1.4rem + 2vw,3rem);line-height:1;color:#fff}
.about-stats__txt{font-family:var(--font-label);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:.8125rem;line-height:1.35;color:var(--on-navy)}
@media (max-width:860px){.about-stats__row{grid-template-columns:repeat(2,minmax(0,1fr))}}
.about-logos__row{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px!important}
.about-logos__row li{background:#fff;border:1px solid var(--rule);height:120px;display:flex;align-items:center;justify-content:center;padding:16px}
.about-logos__row img{max-height:88px!important;max-width:100%;width:auto;object-fit:contain}
/* Tighten v1 */
.about-stats__row{margin:0 auto!important;max-width:var(--container);padding-inline:var(--gutter)}
.about-logos__row{grid-template-columns:repeat(4,minmax(0,1fr))!important}
@media (max-width:700px){.about-logos__row{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
/* Lists next to a floated image keep one consistent width (no half-squeezed bullets) */
.entry-content :is(ul,ol){display:flow-root}
/* Book cards */
.entry-content .ts-book{display:grid;grid-template-columns:200px minmax(0,1fr);gap:32px;align-items:start;background:var(--surface);border:1px solid var(--rule);padding:28px;margin:2em 0}
.entry-content .ts-book__cover{aspect-ratio:2/3;background:var(--ink);color:var(--paper);display:flex;flex-direction:column;justify-content:space-between;padding:22px 18px;border-top:6px solid var(--red);box-shadow:0 14px 30px rgba(19,32,46,.18)}
.ts-book__kick{font-family:var(--font-label);font-weight:700;letter-spacing:.2em;text-transform:uppercase;font-size:.75rem;color:var(--brass-light)}
.ts-book__ctitle{font-family:var(--font-display);font-weight:800;font-size:1.35rem;line-height:1.12;margin-top:8px;flex:1}
.ts-book__brand{font-family:var(--font-label);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.625rem;color:var(--on-navy)}
.ts-book__brand em{font-family:var(--font-display);font-style:italic;color:#E46A7B;font-size:1.2em;letter-spacing:0}
.entry-content .ts-book__body{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.entry-content .ts-book .ts-book__title{margin:0!important;font-size:clamp(1.375rem,1.2rem + .5vw,1.625rem)}
.entry-content .ts-book__quote{margin:0}
.entry-content .ts-book__quote blockquote{position:static;left:auto;transform:none;width:auto;max-width:none;margin:0;padding:0 0 0 18px;border:0;border-left:3px solid var(--red)}
.entry-content .ts-book__quote blockquote p{font-size:1.0625rem;line-height:1.55;margin:0}
.entry-content .ts-book__quote figcaption{font-style:normal;font-size:.9375rem;color:var(--muted);padding:8px 0 0 21px}
.entry-content .ts-book .btn{margin-top:4px;color:#fff;text-decoration:none}
@media (max-width:640px){.entry-content .ts-book{grid-template-columns:1fr}.entry-content .ts-book__cover{max-width:200px}}
/* NFPA standards list */
.entry-content .ts-note{font-size:1rem;color:var(--muted);background:var(--sand);border-left:3px solid var(--brass);padding:12px 16px}
.entry-content ul.ts-std-list{list-style:none;padding:0;margin:0 0 1.6em;border-top:1px solid var(--rule)}
.entry-content ul.ts-std-list>li{display:grid;grid-template-columns:7.5em minmax(0,1fr);gap:16px;padding:10px 0;margin:0;border-bottom:1px solid var(--rule);font-size:1.0625rem;line-height:1.45}
.entry-content ul.ts-std-list>li::before{display:none}
.ts-std__num{font-family:var(--font-label);font-weight:700;letter-spacing:.06em;color:var(--red);white-space:nowrap}
@media (max-width:560px){.entry-content ul.ts-std-list>li{grid-template-columns:1fr;gap:2px}}
/* Jump-to bar */
.entry-content .ts-toc{background:var(--surface);border:1px solid var(--rule);border-top:3px solid var(--ink);padding:18px 22px;margin:0 0 2em}
.entry-content .ts-toc ul{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 10px}
.entry-content .ts-toc li{margin:0;padding:0}
.entry-content .ts-toc li::before{display:none}
.entry-content .ts-toc a{display:inline-flex;align-items:center;min-height:36px;padding:6px 12px;border:1px solid var(--rule);background:var(--paper);font-family:var(--font-label);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:.8125rem;color:var(--ink);text-decoration:none}
.entry-content .ts-toc a:hover{border-color:var(--red);color:var(--red)}
.entry-content [id]{scroll-margin-top:24px}
/* On jump-to pages, h3 entries read as compact resource entries under each section */
.has-toc .entry-content h2{border-top:3px solid var(--ink);padding-top:14px}
.has-toc .entry-content h3{font-size:clamp(1.125rem,1.05rem + .3vw,1.25rem)!important;font-weight:700!important;border-left:3px solid var(--red);padding-left:14px;margin-top:1.6em!important}
.has-toc .entry-content h3 a{text-decoration:none;color:var(--ink)}
.has-toc .entry-content h3 a:hover{color:var(--red);text-decoration:underline;text-decoration-color:var(--red)}
/* Camps directory */
.page-article--camps{max-width:calc(var(--container) + 2 * var(--gutter))}
.page-article--camps>.entry-content{max-width:var(--measure)}
.camps__bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;padding:18px 20px;background:var(--surface);border:1px solid var(--rule);border-top:3px solid var(--ink);margin:2em 0}
.camps__bar select{height:46px;border:1px solid var(--ink);padding:0 14px;font-family:var(--font-body);font-size:1rem;background:#fff;min-width:200px}
.camps__count{font-family:var(--font-label);font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:.875rem;color:var(--muted);margin-left:auto}
.camps__country>h2{font-family:var(--font-label);font-weight:700;letter-spacing:.18em;text-transform:uppercase;font-size:1.125rem;border-top:3px solid var(--ink);padding-top:14px;margin:48px 0 20px}
.camps__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
@media (max-width:1000px){.camps__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.camps__grid{grid-template-columns:1fr}}
.camp{background:var(--surface);border:1px solid var(--rule);border-top:4px solid var(--red);padding:22px;display:flex;flex-direction:column;gap:10px}
.camp__name{font-size:1.25rem;line-height:1.2}
.camp__short{font-size:1rem;line-height:1.55;color:#2A3542;margin:0}
.camp__flag{font-size:.875rem;line-height:1.4;color:var(--brass);margin:0}
.camp__flag--ok{color:#2F6B4F}
.camp__more summary{cursor:pointer;font-family:var(--font-label);font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:.8125rem;color:var(--ink);min-height:32px;display:flex;align-items:center}
.camp__body{font-size:.9375rem;line-height:1.6;padding-top:8px}
.camp__body>*+*{margin-top:.8em}
.camp__body ul{padding-left:1.2em}
.camp__body iframe,.camp__body .ts-embed{max-width:100%}
.camp__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:6px}
.camp[hidden],.camps__country[hidden]{display:none}
/* Lead + resource row */
.entry-content .ts-lead{font-size:clamp(1.1875rem,1.1rem + .4vw,1.375rem);line-height:1.55;color:var(--ink)}
.entry-content .ts-resource-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:1.6em 0}
.entry-content .ts-resource-row .ts-resource{margin:0}
@media (max-width:760px){.entry-content .ts-resource-row{grid-template-columns:1fr}}
.page-article--camps>.entry-content{max-width:none}
.page-article--camps>.entry-content>p{max-width:var(--measure)}

.book-page__note{font-size:1rem;color:var(--muted)}
.book-page__body .entry-content h2{margin-top:1.4em}
.book-page__cover img{margin-inline:auto}

/* Page layout v2: one width for every page (matches Essays). Prose capped at 960px, left-aligned; components full width. */
body.page{--measure:960px;--wide:960px}
.page-article,.page-article--full,.page-article--camps{max-width:var(--container)!important;margin:0 auto;padding:var(--space-lg) var(--gutter) var(--space-xl)}
.page-article>h1{max-width:none}
.page-article .entry-content{max-width:none!important}
.page-article .entry-content>:is(p,h2,h3,h4,h5,h6,figure,.wp-caption,table,.ts-note,.ts-lead),.page-article .entry-content>:is(ul,ol):not(.ts-std-list){max-width:var(--measure)}
.page-article .entry-content :is(blockquote,.ts-embed,.wp-caption.aligncenter,figure.aligncenter),.page-article .entry-content>p>img.aligncenter{left:auto!important;transform:none!important;margin-left:0!important}
.page-article .hub-list,.page-article .hub-head{max-width:var(--measure)}
.page-article .entry-content .ts-std-list{max-width:none}
.contact{max-width:var(--container)}
.book-page{max-width:none}
/* Mobile header v2: no utility bar on phones; its links live in the menu panel */
.nav-social{display:none}
@media (max-width:700px){
  .utility{display:none}
  .site-header__inner{padding-block:14px}
  .primary-nav.is-open .nav-social{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:16px 0 8px;border-top:0}
  .nav-social a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--rule);font-family:var(--font-label);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.875rem;color:var(--ink);text-decoration:none}
  .nav-social a:hover{border-color:var(--red);color:var(--red)}
}
.card,.card *{-webkit-tap-highlight-color:transparent}
/* Mobile header v2 fix: beat .primary-nav>ul specificity */
.primary-nav>ul.nav-social{display:none}
@media (max-width:700px){
  .primary-nav.is-open>ul.nav-social{display:flex;flex-direction:row;flex-wrap:wrap;gap:10px;border-top:0;padding:16px 0 8px}
  .primary-nav>ul.nav-social>li{border-bottom:0}
}
/* Wide banner graphics: shown whole */
.ts-media--banner{background:transparent}
.ts-media--banner img{object-fit:contain}

/* Lead: banner fill + long titles */
.lead__media .ts-media--banner{background:var(--ink);aspect-ratio:auto!important;min-height:100%}
.lead__media .ts-media--banner::before{content:"";position:absolute;inset:-40px;background:var(--ts-bg) center/cover no-repeat;filter:blur(28px) brightness(.6)}
.lead__media .ts-media--banner img{object-fit:contain;z-index:1}
@media (max-width:860px){.lead__media .ts-media--banner{aspect-ratio:3/2!important}}
.lead__title--long{font-size:clamp(1.6rem,1rem + 1.5vw,2.375rem)}
