.download-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  margin: 0 0 24px;
  padding: 30px;
  border: 1px solid #f2cede;
  border-radius: 24px;
  background: linear-gradient(135deg, #fff0f5, #eff9ff);
}

.download-intro h2 { margin: 4px 0 7px; font-size: 26px; line-height: 1.15; }
.download-intro p { margin: 0; color: var(--muted); }
.download-kicker { color: var(--pink); font-size: 12px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.catalog-actions { display: flex; min-width: 280px; flex-direction: column; align-items: stretch; gap: 8px; }
.catalog-actions small { color: var(--muted); font-size: 11px; text-align: center; }
.catalog-button,
.card-download-link { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 12px; background: linear-gradient(135deg, #f04d86, var(--pink-dark)); color: #fff; font-weight: 900; text-decoration: none; }
.catalog-button { padding: 14px 18px; }
.tier-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-bottom: 34px; }
.tier-card { padding: 24px; border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: 0 8px 22px rgba(31, 53, 91, .07); }
.tier-card.featured-tier { border: 2px solid #f2acc3; background: #fff9fb; }
.tier-card > span { color: var(--pink); font-size: 12px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.tier-card h2 { margin: 7px 0; font-size: 27px; }
.tier-card h2 small { font-size: 13px; }
.tier-card p { margin: 0; color: var(--muted); font-size: 14px; }
.available-tag { display: inline-flex; padding: 6px 11px; border-radius: 20px; background: #eaf7e4; color: #467832; font-size: 11px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.coming-soon-tag { background: #fff0f5; color: var(--pink-dark); }
.card-download-link { width: 100%; margin-top: auto; padding: 11px 15px; font-size: 13px; }
.coming-soon-panel { max-width: 760px; margin: 0 auto; padding: 44px 32px; border: 1px solid #f2cede; border-radius: 24px; background: linear-gradient(135deg, #fff0f5, #eff9ff); text-align: center; box-shadow: 0 12px 28px rgba(31, 53, 91, .08); }
.coming-soon-panel h2 { margin: 8px 0 12px; font-size: clamp(28px, 4vw, 42px); }
.coming-soon-panel p { max-width: 590px; margin: 0 auto 22px; color: var(--muted); }
.download-back-link { display: inline-flex; align-items: center; justify-content: center; padding: 12px 18px; border-radius: 12px; background: linear-gradient(135deg, #f04d86, var(--pink-dark)); color: #fff; font-weight: 900; text-decoration: none; }

.download-library { padding: 54px 0 76px; background: linear-gradient(#fff, #f8fcff); }
.download-library > .container { width: min(1240px, calc(100% - 48px)); }
.zip-help { display: flex; align-items: center; gap: 20px; padding: 24px 28px; border: 1px solid #cde7f3; border-radius: 22px; background: #eff9ff; }
.zip-help h2, .library-heading h2, .section-title h2 { margin: 3px 0 5px; }
.zip-help p, .section-title p { margin: 0; color: var(--muted); }
.zip-icon { display: grid; flex: 0 0 64px; height: 64px; place-items: center; border-radius: 18px; background: #fff; color: #3283a6; font-size: 16px; font-weight: 1000; box-shadow: 0 8px 18px rgba(31,53,91,.08); }
.library-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin: 48px 0 18px; }
.secondary-link { background: #fff; color: var(--pink-dark); border: 1px solid #f0c4d5; }
.download-tabs { display: flex; flex-wrap: wrap; gap: 10px; padding: 8px; border-radius: 18px; background: #f6f2f7; }
.download-tabs a { padding: 11px 18px; border-radius: 12px; color: var(--navy); font-weight: 900; text-decoration: none; }
.download-tabs a:hover, .download-tabs a:focus-visible, .download-tabs a.active { background: #fff; color: var(--pink-dark); box-shadow: 0 5px 14px rgba(31,53,91,.09); }
.collection-section { padding-top: 48px; scroll-margin-top: 90px; }
.section-title, .section-title > div { display: flex; align-items: center; gap: 15px; }
.section-title { justify-content: space-between; margin-bottom: 20px; }
.section-number { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 15px; background: #fff0f5; color: var(--pink-dark); font-weight: 1000; }
.collection-count { padding: 7px 12px; border-radius: 20px; background: #eaf7e4; color: #467832; font-size: 12px; font-weight: 900; }
.download-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
.download-card { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border: 1px solid var(--line); border-radius: 22px; background: #fff; box-shadow: 0 10px 24px rgba(31,53,91,.07); }
.card-accent { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 82px; padding: 20px 26px; color: #34415e; font-weight: 900; text-align: center; }
.card-accent b { font-size: 28px; }
.accent-pink { background: #fff0f5; }.accent-blue { background: #eaf7ff; }.accent-yellow { background: #fff8d9; }.accent-green { background: #eef9e9; }.accent-purple { background: #f3edff; }.accent-coral { background: #fff0e9; }
.download-card-body { display: flex; flex: 1; flex-direction: column; align-items: center; padding: 32px 34px; text-align: center; }
.download-card-body > .available-tag { align-self: center; }
.download-card h3 { width: 100%; max-width: none; margin: 16px 0 11px; font-size: clamp(22px, 2vw, 26px); line-height: 1.25; overflow-wrap: normal; word-break: normal; text-align: center; }
.download-card p { width: 100%; max-width: 48ch; margin: 0 auto; color: var(--muted); font-size: 15px; line-height: 1.65; text-align: center; }
.file-facts { display: grid; width: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 22px 0; padding: 14px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: #5b6680; font-size: 13px; font-weight: 800; list-style: none; }
.file-facts li { min-width: 0; padding: 0 8px; text-align: center; }
.file-facts li:first-child, .file-facts li:last-child { text-align: center; }
.file-facts li::before { content: "✓ "; color: #58a63d; }
.download-card details { width: 100%; margin-bottom: 22px; text-align: center; }
.download-card summary { display: inline-block; color: var(--pink-dark); cursor: pointer; font-size: 13px; font-weight: 900; text-align: center; }
.download-card details p { margin-top: 9px; }
.download-disabled { width: 100%; margin-top: auto; padding: 14px 16px; border-radius: 12px; background: #edf0f4; color: #727b8e; font-size: 13px; font-weight: 900; line-height: 1.35; text-align: center; }
.download-notice { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 52px; padding: 26px; border-radius: 22px; background: linear-gradient(135deg,#fff0f5,#eff9ff); }
.download-notice h2 { margin: 0 0 7px; font-size: 18px; }.download-notice p { margin: 0; color: var(--muted); font-size: 14px; }

/* Printable Activity Sheets download library */
.activity-library .library-heading { margin-bottom: 24px; }
.activity-section-grid { display: grid; grid-template-columns: 1fr; gap: 38px; }
.activity-download-card { overflow: hidden; border: 1px solid var(--line); border-radius: 26px; background: #fff; box-shadow: 0 12px 30px rgba(31,53,91,.09); }
.activity-banner { position: relative; width: 100%; aspect-ratio: 4 / 1; overflow: hidden; background: #fff0f5; }
.activity-banner img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 45%; }
.activity-banner span { position: absolute; right: 18px; bottom: 16px; padding: 7px 11px; border-radius: 999px; background: rgba(23,34,82,.85); color: #fff; font-size: 11px; font-weight: 900; letter-spacing: .04em; }
.activity-card-intro { padding: 30px 34px 25px; text-align: left; }
.activity-card-intro .available-tag { margin-bottom: 10px; }
.activity-card-intro h2 { margin: 0 0 8px; font-size: clamp(28px,3vw,38px); line-height: 1.15; }
.activity-card-intro p { max-width: 820px; margin: 0; color: var(--muted); font-size: 16px; line-height: 1.65; }
.activity-card-intro.visual-supports-intro { text-align: center; }
.activity-card-intro.visual-supports-intro p { margin-right: auto; margin-left: auto; }
.download-list { margin: 0 34px; border: 1px solid #eadde3; border-radius: 17px; overflow: hidden; }
.download-file-row { display: grid; grid-template-columns: 78px minmax(240px,1fr) 145px 135px; align-items: center; gap: 18px; padding: 17px; background: #fff; }
.download-file-row + .download-file-row { border-top: 1px solid #eadde3; }
.download-file-row > img { width: 78px; height: 64px; border-radius: 12px; background: #fff5f8; object-fit: contain; }
.file-name { min-width: 0; }
.file-name strong, .file-name span { display: block; overflow-wrap: anywhere; }
.file-name strong { color: var(--navy); font-size: 14px; }
.file-name span { margin-top: 4px; color: var(--muted); font-size: 13px; }
.file-name small { display: block; margin-top: 6px; color: #7b8498; font-size: 11px; overflow-wrap: anywhere; }
.file-size { color: #657088; font-size: 13px; font-weight: 800; text-align: center; }
.file-download-disabled { padding: 11px 12px; border-radius: 11px; background: #edf0f4; color: #727b8e; font-size: 12px; font-weight: 900; text-align: center; }
.file-download-button { padding: 11px 12px; border-radius: 11px; background: linear-gradient(135deg,#f04d86,var(--pink-dark)); color: #fff; font-size: 12px; font-weight: 900; text-align: center; text-decoration: none; }
.file-download-button:hover, .file-download-button:focus-visible { filter: brightness(.96); transform: translateY(-1px); }
.collection-download-disabled { display: block; margin: 24px 34px 34px; padding: 15px 20px; border-radius: 13px; background: #edf0f4; color: #727b8e; font-size: 14px; font-weight: 900; text-align: center; }
.collection-download-button { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 24px 34px 34px; padding: 16px 20px; border-radius: 13px; background: linear-gradient(135deg,#f04d86,var(--pink-dark)); color: #fff; font-size: 15px; font-weight: 900; text-align: center; text-decoration: none; }
.collection-download-button span { font-size: 12px; font-weight: 800; opacity: .88; }
.hop-levels-visual { margin: 26px 0 0; border: 1px solid #eadde3; border-radius: 24px; background: #fff; box-shadow: 0 9px 24px rgba(31,53,91,.08); overflow: hidden; }
.hop-levels-visual img { display: block; width: 100%; height: auto; }
.hop-levels-caption { margin: 0; padding: 12px 22px 14px; border-top: 1px solid #eadde3; background: #fff; color: #657088; font-size: 12px; font-weight: 700; line-height: 1.55; text-align: center; }
.hop-levels-caption strong { color: var(--navy); }
.difficulty-badge { display: inline-flex!important; width: fit-content!important; margin: 7px 0 3px!important; padding: 7px 12px; border: 1px solid transparent; border-radius: 999px; font-size: 11px!important; font-weight: 900; letter-spacing: .04em; line-height: 1.1; text-transform: uppercase; }
.difficulty-gentle { border-color: #addb9c; background: #e3f7dc; color: #326f29!important; }
.difficulty-steady { border-color: #ead16e; background: #fff2b8; color: #765900!important; }
.difficulty-mighty { border-color: #ee9ba8; background: #ffe0e4; color: #a3293f!important; }
.file-name .difficulty-badge { display: inline-flex!important; align-items: center; justify-content: center; width: auto!important; margin: 7px 0 4px!important; padding: 7px 12px!important; border-radius: 20px; font-size: 11px!important; font-weight: 900; letter-spacing: .06em; line-height: 1; text-transform: uppercase; }
.file-name .difficulty-gentle { border: 1px solid #8fc77e; background: #dff4d7!important; color: #2f6d26!important; }
.file-name .difficulty-steady { border: 1px solid #ddc04f; background: #ffec9c!important; color: #705400!important; }
.file-name .difficulty-mighty { border: 1px solid #e48292; background: #ffd4da!important; color: #98243a!important; }
.visual-support-subcategory { padding: 0 0 12px; }
.visual-support-subcategory + .visual-support-subcategory { margin-top: 18px; padding-top: 32px; border-top: 1px solid #eadde3; }
.subcategory-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin: 0 34px 18px; }
.subcategory-heading h3 { margin: 4px 0 6px; color: var(--navy); font-size: clamp(23px,2.5vw,30px); line-height: 1.2; }
.subcategory-heading p { max-width: 780px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.6; }

@media (max-width: 900px) {
  .tier-grid { grid-template-columns: 1fr; }
  .download-intro { align-items: flex-start; flex-direction: column; }
  .catalog-actions { width: 100%; min-width: 0; }
  .download-library > .container { width: min(760px, calc(100% - 40px)); }
  .download-card-grid { grid-template-columns: 1fr; }
  .activity-banner { aspect-ratio: 3 / 1; }
  .download-file-row { grid-template-columns: 70px minmax(0,1fr) 125px; }
  .download-file-row > img { width: 70px; height: 60px; }
  .file-size { text-align: right; }
  .file-download-disabled { grid-column: 2 / 4; }
  .file-download-button { grid-column: 2 / 4; }
}

@media (max-width: 620px) {
  .download-intro { padding: 24px; }
  .coming-soon-panel { padding: 34px 20px; }
  .download-library { padding-top: 36px; }
  .download-library > .container { width: calc(100% - 28px); }
  .zip-help { align-items: flex-start; padding: 22px; }
  .zip-icon { flex-basis: 52px; height: 52px; }
  .library-heading, .section-title { align-items: flex-start; flex-direction: column; }
  .download-card-grid, .download-notice { grid-template-columns: 1fr; }
  .hop-levels-visual { border-radius: 18px; }
  .hop-levels-caption { padding: 11px 15px 13px; font-size: 11px; }
  .download-card-body { padding: 26px 22px; }
  .download-card h3 { max-width: none; font-size: 22px; }
  .file-facts { grid-template-columns: 1fr; gap: 7px; padding: 13px 0; }
  .file-facts li, .file-facts li:first-child, .file-facts li:last-child { padding: 0; text-align: center; }
  .activity-banner { aspect-ratio: 16 / 7; }
  .activity-banner span { right: 10px; bottom: 10px; font-size: 9px; }
  .activity-card-intro { padding: 24px 20px 20px; text-align: center; }
  .activity-card-intro p { font-size: 15px; }
  .download-list { margin: 0 14px; }
  .download-file-row { grid-template-columns: 58px minmax(0,1fr); gap: 12px; padding: 14px; }
  .download-file-row > img { width: 58px; height: 54px; }
  .file-size { grid-column: 1 / 3; text-align: center; }
  .file-download-disabled { grid-column: 1 / 3; }
  .file-download-button { grid-column: 1 / 3; }
  .collection-download-disabled { margin: 18px 14px 24px; }
  .collection-download-button { align-items: center; flex-direction: column; gap: 3px; margin: 18px 14px 24px; }
  .subcategory-heading { align-items: flex-start; flex-direction: column; gap: 10px; margin: 0 20px 15px; text-align: left; }
  .download-tabs a { flex: 1 1 auto; text-align: center; }
}

/* Optional support page and download thank-you dialog */
.donation-card{max-width:820px;margin:0 auto;padding:clamp(30px,5vw,56px);border:1px solid #f0c9d9;border-radius:28px;background:linear-gradient(135deg,#fff8fb,#eef9ff);box-shadow:0 16px 38px rgba(31,53,91,.1);text-align:center}.donation-card h2{margin:8px 0 15px;font-size:clamp(28px,4vw,42px);line-height:1.12}.donation-card p{max-width:680px;margin:0 auto 15px;color:var(--muted);line-height:1.7}.donation-card small{display:block;margin-top:20px;color:#6b7488}.donation-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:26px}.download-support-dialog{width:min(560px,calc(100% - 28px));padding:0;border:0;border-radius:26px;background:#fff;box-shadow:0 28px 70px rgba(31,53,91,.28)}.download-support-dialog::backdrop{background:rgba(20,28,55,.58);backdrop-filter:blur(3px)}.download-dialog-content{padding:34px;text-align:center}.download-dialog-heart{display:grid;width:64px;height:64px;margin:0 auto 17px;place-items:center;border-radius:50%;background:#fff0f5;color:var(--pink);font-size:30px}.download-dialog-content h2{margin:0 0 12px;font-size:clamp(25px,4vw,34px)}.download-dialog-content p{margin:0;color:var(--muted);line-height:1.65}.download-dialog-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:24px}.download-dialog-actions a,.download-dialog-actions button{min-height:46px;padding:12px 17px;border:0;border-radius:12px;font:inherit;font-weight:900;cursor:pointer;text-decoration:none}.continue-download{background:linear-gradient(135deg,#f04d86,var(--pink-dark));color:#fff}.visit-donation{border:1px solid #f0c4d5!important;background:#fff;color:var(--pink-dark)}.close-download-dialog{margin-top:14px;border:0;background:transparent;color:#697287;font:inherit;font-size:13px;font-weight:800;cursor:pointer}@media(max-width:520px){.download-dialog-content{padding:28px 20px}.download-dialog-actions{flex-direction:column}.download-dialog-actions a,.download-dialog-actions button{width:100%}}

/* Reliable in-page download support window */
.download-popup-open{overflow:hidden}.download-support-overlay[hidden]{display:none}.download-support-overlay{position:fixed;z-index:9999;inset:0;display:grid;place-items:center;padding:18px;background:rgba(20,28,55,.62);opacity:0;transition:opacity .18s ease;backdrop-filter:blur(3px)}.download-support-overlay.is-open{opacity:1}.download-support-window{width:min(560px,100%);max-height:calc(100vh - 36px);overflow:auto;padding:34px;border:1px solid #f1cfdd;border-radius:26px;background:#fff;box-shadow:0 28px 70px rgba(31,53,91,.3);text-align:center}.download-support-window h2{margin:0 0 12px;font-size:clamp(25px,4vw,34px);line-height:1.15}.download-support-window p{margin:0;color:var(--muted);line-height:1.65}@media(max-width:520px){.download-support-window{padding:28px 20px}.download-dialog-actions{flex-direction:column}.download-dialog-actions a,.download-dialog-actions button{width:100%}}
