/* Individual teaching resource. All layout rules are scoped to this template. */
.tss-resource-page { --resource-ink:#203b49; --resource-muted:#576974; --resource-slate:#4d6074; --resource-line:#dee5e5; color:var(--resource-ink); background:#f8f7f2; padding:32px 0 72px; }
.tss-resource-page__inner { width:min(calc(100% - 40px),var(--tss-content-width,1360px)); margin-inline:auto; }
.tss-resource-page a { color:#885133; }
.tss-resource-page :is(a,button,summary):focus-visible { outline:3px solid #4d6074; outline-offset:4px; }
.tss-resource-page__breadcrumbs { display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin:0 0 30px; font-size:12px; line-height:1.7; color:var(--resource-muted); }
.tss-resource-page__breadcrumbs a { color:var(--resource-muted); text-underline-offset:4px; }
.tss-resource-page__breadcrumbs [aria-current] { max-width:65ch; overflow-wrap:anywhere; }
.tss-resource-page__layout { display:grid; grid-template-columns:minmax(0,1.04fr) minmax(0,1fr); gap:clamp(28px,4.2vw,64px); align-items:start; }
.tss-resource-page__media,.tss-resource-page__overview { min-width:0; }
.tss-resource-page__gallery { margin:0; }
.tss-resource-page__image-frame { display:grid; place-items:center; min-height:360px; height:clamp(360px,40vw,580px); border:1px solid #dde5e2; border-radius:10px; background:#eef2ef; overflow:hidden; }
.tss-resource-page__zoom-link { display:flex; align-items:center; justify-content:center; width:100%; height:100%; padding:22px; }
.tss-resource-page__image { display:block; width:100%; height:100%; max-height:534px; object-fit:contain; filter:drop-shadow(0 5px 10px rgba(32,59,73,.12)); }
.tss-resource-page__placeholder { padding:35px; text-align:center; color:#5b726b; }
.tss-resource-page__placeholder svg { display:block; width:58px; height:70px; margin:0 auto 20px; opacity:.65; }
.tss-resource-page__placeholder strong { display:block; font-size:20px; font-weight:600; margin-bottom:8px; }
.tss-resource-page__placeholder p { margin:0; font-size:14px; }
.tss-resource-page__caption { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; margin:12px 0 0; color:var(--resource-muted); font-size:12px; line-height:1.6; }
.tss-resource-page__zoom-hint { color:#885133; }
.tss-resource-page__thumbs { display:flex; flex-wrap:wrap; gap:10px; margin-top:17px; }
.tss-resource-page__thumbs[hidden] { display:none; }
.tss-resource-page__thumb { width:70px; height:86px; padding:6px; background:#fffefb; border:1px solid #dce3e0; border-radius:5px; cursor:pointer; }
.tss-resource-page__thumb[aria-pressed="true"] { border:2px solid var(--resource-slate); padding:5px; box-shadow:0 2px 7px rgba(32,59,73,.09); }
.tss-resource-page__thumb img { display:block; width:100%; height:100%; object-fit:contain; }
.tss-resource-page__eyebrow { margin:0 0 12px; color:#945a3b; font-size:11px; font-weight:650; letter-spacing:.09em; text-transform:uppercase; line-height:1.6; }
.tss-resource-page h1 { margin:0 0 18px; color:var(--resource-ink); font-size:clamp(28px,2.55vw,38px); line-height:1.17; font-weight:650; letter-spacing:-.028em; overflow-wrap:anywhere; }
.tss-resource-page__summary { margin:0 0 23px; color:var(--resource-muted); font-size:16px; line-height:1.7; overflow-wrap:anywhere; }
.tss-resource-page__quick-facts { display:flex; flex-wrap:wrap; gap:8px; list-style:none; padding:0; margin:0 0 24px; }
.tss-resource-page__quick-facts li { padding:6px 10px; background:#edf2f5; color:#405e70; border-radius:5px; font-size:12px; line-height:1.4; }
.tss-resource-page__purchase { padding:24px; border:1px solid #dce2e1; border-radius:9px; background:#fffefb; box-shadow:0 4px 14px rgba(32,59,73,.04); }
.tss-resource-page__purchase-label { margin:0 0 6px; font-size:11px; font-weight:600; color:var(--resource-muted); letter-spacing:.07em; text-transform:uppercase; }
.tss-resource-page__price { margin:0 0 18px; color:var(--resource-ink); font-size:28px; line-height:1.2; font-weight:650; }
.tss-resource-page__button { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:13px 22px; border:1px solid var(--resource-slate); border-radius:6px; background:var(--resource-slate); color:#fff; font:inherit; font-size:15px; font-weight:600; line-height:1.4; text-decoration:none; cursor:pointer; }
.tss-resource-page a.tss-resource-page__button { color:#fff; }
.tss-resource-page__button:hover { background:#3d5064; }
.tss-resource-page__purchase .tss-resource-page__button { width:100%; }
.tss-resource-page__button--secondary { background:transparent; color:var(--resource-slate); margin-top:10px; }
.tss-resource-page a.tss-resource-page__button--secondary { color:var(--resource-slate); }
.tss-resource-page__button--secondary:hover { background:#eef2f5; }
.tss-resource-page__unavailable { display:block; padding:14px 18px; border:1px solid #d5dfe2; border-radius:6px; background:#edf1f3; color:#536574; font-size:14px; text-align:center; }
.tss-resource-page__purchase-note { margin:14px 0 0; color:var(--resource-muted); font-size:12px; line-height:1.6; }
.tss-resource-page__licence { margin:17px 0 0; padding-top:14px; border-top:1px solid var(--resource-line); font-size:12px; color:var(--resource-muted); line-height:1.6; overflow-wrap:anywhere; }
.tss-resource-page__licence strong { color:var(--resource-ink); }
.tss-resource-page__included { margin-top:27px; }
.tss-resource-page h2 { margin:0 0 16px; color:var(--resource-ink); font-size:23px; line-height:1.3; font-weight:600; letter-spacing:-.025em; }
.tss-resource-page__included ul { padding:0; margin:0; list-style:none; }
.tss-resource-page__included li { position:relative; padding-left:24px; margin-bottom:11px; font-size:14px; line-height:1.6; color:var(--resource-muted); overflow-wrap:anywhere; }
.tss-resource-page__included li::before { content:'✓'; position:absolute; left:0; top:0; color:#648173; }
.tss-resource-page__body { display:grid; grid-template-columns:minmax(0,1.04fr) minmax(0,1fr); gap:clamp(28px,4.2vw,64px); margin-top:48px; padding-top:34px; border-top:1px solid var(--resource-line); }
.tss-resource-page__body--single { grid-template-columns:minmax(0,1fr); }
.tss-resource-page__body--single > * { width:100%; max-width:820px; }
.tss-resource-page__description { min-width:0; font-size:15px; line-height:1.8; color:var(--resource-muted); overflow-wrap:anywhere; }
.tss-resource-page__description > :first-child { margin-top:0; }
.tss-resource-page__description :is(img,video,iframe,table) { max-width:100%; }
.tss-resource-page__description table { display:block; overflow:auto; }
.tss-resource-page__audience { margin-top:25px; }
.tss-resource-page__audience p { white-space:pre-line; }
.tss-resource-page__facts { padding:25px; border:1px solid var(--resource-line); border-radius:9px; background:#fdfcf8; }
.tss-resource-page__facts dl { margin:0; }
.tss-resource-page__fact { display:grid; grid-template-columns:minmax(95px,.65fr) minmax(0,1fr); gap:16px; padding:11px 0; border-bottom:1px solid #e6eae7; font-size:13px; line-height:1.65; }
.tss-resource-page__fact:last-child { padding-bottom:0; border-bottom:0; }
.tss-resource-page__fact dt { color:var(--resource-muted); }
.tss-resource-page__fact dd { margin:0; font-weight:550; color:var(--resource-ink); overflow-wrap:anywhere; }
.tss-resource-page__back { display:inline-flex; align-items:center; gap:8px; margin-top:30px; font-size:14px; text-underline-offset:4px; }
.tss-resource-page__dialog { width:min(calc(100vw - 32px),1050px); max-width:1050px; max-height:94vh; padding:20px; border:1px solid #dbe3e4; border-radius:9px; color:#203b49; background:#fffefb; }
.tss-resource-page__dialog:not([open]) { display:none; }
.tss-resource-page__dialog::backdrop { background:rgba(22,39,50,.75); }
.tss-resource-page__dialog-toolbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px; margin-bottom:16px; }
.tss-resource-page__dialog h2 { margin:0; font-size:18px; line-height:1.4; }
.tss-resource-page__dialog img { display:block; width:100%; height:auto; max-height:76vh; object-fit:contain; }
.tss-resource-page__dialog button { padding:8px 16px; min-height:40px; font-size:14px; }
.tss-resource-page__preview-note { margin:0 0 28px; padding:14px 18px; border:1px solid #dce5de; border-radius:6px; color:#52695f; background:#edf2ee; font-size:13px; line-height:1.6; }
@media (max-width:900px) { .tss-resource-page__layout,.tss-resource-page__body { grid-template-columns:minmax(0,1fr); gap:28px; } .tss-resource-page__image-frame { height:480px; min-height:0; } .tss-resource-page__media { width:100%; max-width:660px; margin-inline:auto; } .tss-resource-page__body { margin-top:32px; padding-top:28px; } }
@media (max-width:767px) { .tss-resource-page__inner { width:calc(100% - 28px); } }
@media (max-width:480px) { .tss-resource-page { padding-top:24px; } .tss-resource-page__image-frame { height:380px; } .tss-resource-page__zoom-link { padding:16px; } .tss-resource-page__purchase,.tss-resource-page__facts { padding:20px; } .tss-resource-page__thumb { width:59px; height:73px; } .tss-resource-page__fact { gap:10px; } }
@media (prefers-reduced-motion:reduce) { .tss-resource-page * { scroll-behavior:auto; } }

/* Resource purchase panel. Existing header, gallery and homepage styles are unchanged. */
.tss-resource-page .tss-resource-page__purchase--complete { padding:clamp(20px,2.2vw,30px); border-color:#d7e0e3; background:#fffefb; box-shadow:0 5px 18px rgba(32,59,73,.055); }
.tss-resource-page .tss-resource-page__purchase--complete .tss-resource-page__price { margin-bottom:18px; font-size:clamp(25px,2.35vw,34px); font-variant-numeric:tabular-nums; line-height:1.25; overflow-wrap:anywhere; }
.tss-resource-page .tss-resource-page__purchase-facts { display:flex; flex-wrap:wrap; gap:8px; padding:0; margin:0 0 22px; list-style:none; }
.tss-resource-page .tss-resource-page__purchase-facts li { padding:5px 9px; border:1px solid #e0e7e8; border-radius:5px; background:#f3f6f6; color:#425968; font-size:12px; line-height:1.55; overflow-wrap:anywhere; }
.tss-resource-page .tss-resource-page__purchase-action { display:flex; width:100%; min-height:50px; box-sizing:border-box; background:var(--resource-slate); border-color:var(--resource-slate); color:#fff; transition:background-color .2s ease,box-shadow .2s ease; }
.tss-resource-page .tss-resource-page__purchase-action:not(:disabled):hover { background:#3d5064; border-color:#3d5064; box-shadow:0 3px 9px rgba(32,59,73,.16); }
.tss-resource-page .tss-resource-page__purchase-action:disabled { border-color:#d9e1e4; background:#edf1f3; color:#536574; cursor:not-allowed; opacity:1; box-shadow:none; }
.tss-resource-page .tss-resource-page__purchase--complete .tss-resource-page__purchase-note { margin-top:12px; font-size:13px; line-height:1.65; overflow-wrap:anywhere; }
.tss-resource-page .tss-resource-page__checkout-fallback { margin:7px 0 0; font-size:12px; line-height:1.65; }
.tss-resource-page .tss-resource-page__checkout-fallback a { color:var(--resource-muted); text-underline-offset:3px; }
.tss-resource-page .tss-resource-page__purchase--complete .tss-resource-page__button--secondary { margin-top:17px; box-sizing:border-box; font-size:14px; }
.tss-resource-page .tss-resource-page__purchase--complete .tss-resource-page__licence { margin-top:20px; padding-top:17px; font-size:13px; line-height:1.7; }
.tss-resource-page .tss-resource-page__purchase--complete .tss-resource-page__licence strong { display:block; font-size:13px; font-weight:650; }
.tss-resource-page .tss-resource-page__purchase--complete .tss-resource-page__licence p { margin:4px 0 0; }
.tss-resource-page #tss-resource-previews { scroll-margin-top:28px; }
@media (max-width:480px) { .tss-resource-page .tss-resource-page__purchase-facts { gap:6px; } .tss-resource-page .tss-resource-page__purchase--complete .tss-resource-page__price { font-size:27px; } }
@media (prefers-reduced-motion:reduce) { .tss-resource-page .tss-resource-page__purchase-action { transition:none; } }

/* Related products: lightweight text cards, no extra images or scripts. */
.tss-related-resources {
  margin-top: 36px;
  padding-top: 28px;
  border-top: 1px solid var(--tss-line);
}
.tss-related-resources > h2 { color: var(--tss-navy); margin: 0 0 18px; }
.tss-related-resources__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.tss-related-resources__item {
  padding: 20px;
  border: 1px solid var(--tss-line);
  border-radius: 10px;
  background: #f7f9fc;
  overflow-wrap: anywhere;
}
.tss-related-resources__item h3 { margin: 0; font-size: 19px; line-height: 1.4; }
.tss-related-resources__item a { text-decoration: underline; text-underline-offset: 3px; }
.tss-related-resources__item a:focus-visible { outline: 2px solid var(--tss-blue); outline-offset: 4px; }
.tss-related-resources__item p { margin: 10px 0 0; font-size: 15px; line-height: 1.6; }
@media (max-width: 640px) {
  .tss-related-resources__list { grid-template-columns: minmax(0, 1fr); }
}
