/* Styles for the /training/ hub and the course family pages. Loaded only by those pages (a <link> at the top of their body), so the shared style.css is not touched.
   Uses the same variables as style.css. Also carries the FAQ accordion rules these pages need. */

.tr-h2{ font-size:clamp(24px,3.4vw,34px); max-width:760px; margin:44px 0 16px; }
.tr-section .tr-h2:first-child{ margin-top:0; }
.tr-cat-blurb{ color:var(--ink-dim); font-size:15px; line-height:1.6; max-width:760px; margin-bottom:22px; }

.tr-pill{ display:inline-block; background:var(--purple-soft); color:var(--purple-deep); font-size:11px; font-weight:700; letter-spacing:.03em; padding:3px 9px; border-radius:999px; margin-right:6px; vertical-align:middle; }

.tr-list{ margin:10px 0 0; padding-left:20px; font-size:14.5px; line-height:1.55; color:var(--ink-dim); }
.tr-list li{ margin:3px 0; }
.tr-scn{ margin-top:10px; font-size:13.5px; line-height:1.55; color:var(--ink-dim); }
.tr-scn b{ color:var(--ink); }
.tr-provide{ font-size:15.5px; max-width:760px; }

.tr-modules .check-item{ align-items:flex-start; }
.tr-modules .check-item > div{ min-width:0; }

.tr-note{ margin:32px 0 0; padding:20px 24px; border:1px solid var(--gray-line); border-left:4px solid var(--purple); border-radius:14px; background:var(--paper-2); max-width:860px; }
.tr-note p{ font-size:14.5px; line-height:1.65; color:var(--ink-dim); }
.tr-note p + p{ margin-top:10px; }
.tr-note b{ color:var(--ink); }
.tr-note a{ color:var(--purple); font-weight:600; text-decoration:underline; }
.tr-trainer{ margin-top:28px; }

.tr-disclaimer{ margin-top:30px; max-width:760px; font-size:12.5px; line-height:1.6; color:var(--ink-dim); }

/* ---------- hub ---------- */
.tr-search-row{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin:6px 0 20px; }
.tr-search{ flex:1 1 320px; max-width:560px; font:inherit; font-size:15px; padding:14px 18px; border:1px solid var(--gray-line); border-radius:14px; background:var(--white); color:var(--ink); }
.tr-search:focus{ outline:2px solid var(--purple); outline-offset:1px; }
.tr-count{ font-size:13.5px; color:var(--ink-dim); }
.tr-catnav{ display:flex; flex-wrap:wrap; gap:8px 10px; margin-bottom:34px; }
.tr-catnav a{ font-size:13px; font-weight:600; padding:8px 14px; border:1px solid var(--gray-line); border-radius:999px; background:var(--white); color:var(--ink); transition:border-color .15s ease, color .15s ease; }
.tr-catnav a:hover{ border-color:var(--purple); color:var(--purple); }

.tr-cat{ scroll-margin-top:96px; margin-bottom:12px; }
.tr-cat[hidden]{ display:none; }
.tr-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; }
@media (max-width:980px){ .tr-grid{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:640px){ .tr-grid{ grid-template-columns:1fr; } }
.tr-card{ display:flex; flex-direction:column; gap:8px; background:var(--white); border:1px solid var(--gray-line); border-radius:14px; padding:18px 20px; transition:border-color .15s ease, transform .15s ease; }
.tr-card:hover{ border-color:var(--purple); transform:translateY(-1px); }
.tr-card[hidden]{ display:none; }
.tr-card-title{ font-weight:700; font-size:15px; line-height:1.35; color:var(--ink); }
.tr-card-pitch{ font-size:13.5px; line-height:1.55; color:var(--ink-dim); }
.tr-card-meta{ margin-top:auto; padding-top:6px; display:flex; flex-wrap:wrap; align-items:center; gap:6px 0; }
.tr-card-dur{ font-size:12px; color:var(--ink-dim); }
.tr-empty{ margin:0 0 28px; padding:18px 22px; border:1px dashed var(--gray-line); border-radius:14px; color:var(--ink-dim); }
.tr-empty a{ color:var(--purple); font-weight:600; text-decoration:underline; }

.tr-find{ margin:0 0 40px; }
.tr-ind-list{ display:grid; grid-template-columns:repeat(2, 1fr); gap:8px 20px; margin-top:12px; }
@media (max-width:640px){ .tr-ind-list{ grid-template-columns:1fr; } }
.tr-ind summary{ cursor:pointer; font-weight:600; font-size:14.5px; padding:6px 0; color:var(--ink); }
.tr-ind ul{ margin:4px 0 10px; padding-left:20px; font-size:14px; line-height:1.7; }
.tr-ind a{ color:var(--purple); text-decoration:underline; }

/* ---------- FAQ accordion (copy of the shared rules, which are not yet live on every page) ---------- */
.faq-section .faq-list{ display:flex; flex-direction:column; gap:10px; max-width:760px; }
.faq-section .faq-item{ background:var(--white); border:1px solid var(--gray-line); border-radius:14px; padding:2px 22px; }
.faq-section .faq-item summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:16px; padding:16px 0; font-weight:700; font-size:15px; color:var(--ink); }
.faq-section .faq-item summary::-webkit-details-marker{ display:none; }
.faq-section .faq-item summary::after{ content:'+'; font-size:22px; font-weight:400; color:var(--purple); flex-shrink:0; }
.faq-section .faq-item[open] summary::after{ content:'\2212'; }
.faq-section .faq-item p{ padding:0 0 18px; font-size:14.5px; line-height:1.65; color:var(--ink-dim); }

/* The shared price-block glow is wider than a phone screen, which gives the page a few pixels of sideways scroll; clip it on these pages. */
html{ overflow-x:hidden; }
/* Centre the intro line under the centred heading. */
.hero-inner .course-intro{ margin-left:auto; margin-right:auto; text-align:center; }

/* ---------- breadcrumbs, update line, category links ---------- */
.tr-crumbs{ display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:4px 8px; font-size:13px; color:var(--ink-dim); margin:0 0 22px; }
.tr-crumbs a{ color:var(--purple); font-weight:600; }
.tr-crumbs a:hover{ text-decoration:underline; }
.tr-sep{ opacity:.5; }
.tr-updated{ margin-top:12px; font-size:12px; color:var(--ink-dim); }
.tr-cat-more{ margin-top:16px; font-weight:600; font-size:14.5px; }
.tr-cat-more a{ color:var(--purple); }
.tr-cat-more a:hover{ text-decoration:underline; }
