:root {
  --blue:#2563eb;
  --blue-dark:#1748c0;
  --ink:#172033;
  --muted:#5e6a7f;
  --line:#e4e9f1;
  --soft:#f7f9fc;
  --yellow:#f5ca63;
  --radius:16px
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth
}
body {
  margin:0;
  color:var(--ink);
  background:#fff;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  font-size:15px;
  line-height:1.65
}
a {
  color:inherit;
  text-decoration:none
}
button,input,select {
  font:inherit
}
button,a,input,select {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer
}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible {
  outline:3px solid #87adff;
  outline-offset:4px
}
button:disabled {
  cursor:default
}
h1,h2,h3,p {
  margin-top:0
}
h1,h2,h3 {
  font-family:"Space Grotesk",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  line-height:1.25;
  letter-spacing:-.035em
}
h2 {
  font-size:29px;
  margin-bottom:12px
}
h3 {
  font-size:18px
}
p {
  color:var(--muted)
}
svg {
  flex-shrink:0
}
main {
  min-height:65vh
}
.container {
  max-width:1160px;
  margin:0 auto;
  padding:0 28px
}
.section {
  padding-top:58px;
  padding-bottom:10px
}
.eyebrow {
  font-size:10px;
  font-weight:750;
  letter-spacing:.14em;
  color:var(--muted)
}
.header {
  border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.96)
}
.header-inner {
  min-height:88px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px
}
.brand {
  display:flex;
  gap:10px;
  align-items:center;
  font-size:24px;
  font-weight:850;
  letter-spacing:-.055em;
  line-height:1.1
}
.brand-blue {
  color:var(--blue)
}
.brand small {
  display:block;
  font-size:8px;
  letter-spacing:.13em;
  font-weight:650;
  color:var(--muted);
  margin-top:7px
}
.brand-mark {
  display:grid;
  place-items:center;
  background:var(--blue);
  color:white;
  border-radius:11px;
  width:42px;
  height:42px;
  transform:rotate(-5deg)
}
.main-nav {
  display:flex;
  align-items:center;
  gap:20px;
  white-space:nowrap;
  color:#58667b;
  font-weight:550;
  font-size:13px
}
.main-nav a:hover {
  color:var(--blue)
}
.nav-saved {
  display:flex;
  align-items:center;
  gap:7px
}
.button {
  background:var(--blue);
  color:white;
  border:1px solid var(--blue);
  padding:12px 19px;
  border-radius:9px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-size:13px;
  font-weight:650;
  min-height:46px;
  white-space:nowrap;
  transition:background .15s
}
.button:hover {
  background:var(--blue-dark)
}
.button-small {
  padding:9px 16px;
  min-height:40px
}
.button-secondary {
  background:white;
  color:var(--ink);
  border-color:var(--line)
}
.button-secondary:hover {
  background:var(--soft)
}
.button-light {
  background:white;
  color:var(--blue);
  border-color:white
}
.button-light:hover {
  background:#eaf1ff
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:9px;
  color:var(--blue);
  font-weight:650;
  font-size:13px;
  background:none;
  border:0;
  padding:0
}
.hero {
  background:linear-gradient(115deg,#f5f8ff 0%,#f9fbff 53%,#fffdf7 100%);
  border-bottom:1px solid var(--line);
  padding:64px 0 58px;
  position:relative;
  overflow:hidden
}
.hero-layout {
  display:flex;
  justify-content:center;
  text-align:center
}
.hero-copy {
  width:100%;
  max-width:720px
}
.hero .eyebrow {
  justify-content:center;
  display:flex;
  align-items:center;
  gap:8px;
  color:#54688d
}
.status-dot {
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--blue)
}
.hero h1 {
  font-size:clamp(36px,4.2vw,53px);
  letter-spacing:-.045em;
  line-height:1.15;
  margin:20px 0 20px;
  font-weight:800
}
.hero h1 span {
  color:var(--blue)
}
.hero-description {
  font-size:15px;
  line-height:1.85;
  color:#65738b;
  margin-bottom:28px
}
.search-box {
  display:flex;
  align-items:center;
  gap:12px;
  border:1px solid #d9e2f3;
  border-radius:12px;
  background:white;
  padding:7px 8px 7px 16px;
  box-shadow:0 5px 22px #153f7810
}
.search-box>svg {
  color:#8290a7
}
.search-box input {
  min-width:0;
  flex:1;
  border:0;
  outline:0!important;
  background:none;
  font-size:13px;
  padding:10px 0;
  color:var(--ink)
}
.search-box .button {
  padding:10px 14px;
  font-size:12px
}
.popular-searches {
  justify-content:center;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  font-size:11px;
  color:var(--muted);
  margin-top:15px
}
.popular-searches a {
  background:#fff;
  border:1px solid #e5eaf2;
  padding:3px 9px;
  border-radius:6px;
  color:#586986
}
.section-title {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:20px;
  margin-bottom:25px
}
.section-title h2 {
  margin-top:9px;
  margin-bottom:0
}
.section-title>.text-link {
  margin-bottom:5px
}
.exam-grid {
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:13px
}
.exam-tile {
  border:1px solid var(--line);
  border-radius:12px;
  padding:19px 17px;
  display:flex;
  flex-direction:column;
  position:relative;
  min-height:150px;
  background:#fff;
  transition:transform .15s,border-color .15s
}
.exam-tile:hover {
  transform:translateY(-3px);
  border-color:#b7cafa
}
.exam-number {
  font-size:10px;
  color:#8c98ab;
  margin-bottom:14px;
  font-weight:600
}
.exam-tile strong {
  font-size:23px;
  font-weight:800;
  letter-spacing:-.04em
}
.exam-label {
  color:var(--muted);
  font-size:10px;
  margin-top:7px
}
.exam-arrow {
  position:absolute;
  right:12px;
  top:17px;
  opacity:.55
}
.exam-thpt {
  --accent:#2459c4;
  --tint:#edf3ff
}
.exam-hsa {
  --accent:#7652ad;
  --tint:#f3edff
}
.exam-tsa {
  --accent:#875a10;
  --tint:#fff6e5
}
.exam-v-act {
  --accent:#23745c;
  --tint:#eaf7f1
}
.exam-spt {
  --accent:#9f4661;
  --tint:#fff0f4
}
.exam-qda {
  --accent:#276a82;
  --tint:#ecf7fc
}
.exam-general {
  --accent:#5e6a7f;
  --tint:#f0f3f8
}
.exam-tile {
  background:linear-gradient(145deg,#fff 30%,var(--tint));
  color:var(--accent)
}
.resource-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px
}
.resource-card {
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:22px;
  display:flex;
  flex-direction:column;
  min-height:255px;
  background:#fff;
  transition:border-color .15s,box-shadow .15s
}
.resource-card:hover {
  border-color:#bccdec;
  box-shadow:0 8px 28px #203d7110
}
.card-top {
  display:flex;
  align-items:start;
  justify-content:space-between;
  margin-bottom:19px
}
.file-mark {
  width:44px;
  height:48px;
  border-radius:9px;
  display:grid;
  place-items:center;
  background:var(--tint);
  color:var(--accent)
}
.save-icon {
  border:0;
  background:none;
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  color:#9aa5b6;
  border-radius:7px
}
.save-icon:hover {
  background:#f0f5ff;
  color:var(--blue)
}
.is-saved {
  color:var(--blue);
  background:#edf3ff
}
.badges {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  margin-bottom:12px
}
.badge {
  font-size:9px;
  letter-spacing:.035em;
  font-weight:700;
  background:var(--tint,#edf3ff);
  color:var(--accent,var(--blue));
  padding:3px 7px;
  border-radius:5px
}
.badge-muted {
  color:#566174;
  background:#f1f4f8
}
.resource-card h3 {
  font-size:17px;
  line-height:1.5;
  margin-bottom:8px;
  letter-spacing:-.02em;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:51px
}
.resource-card h3 a:hover {
  color:var(--blue)
}
.card-meta {
  font-size:10px;
  color:#5a6678;
  margin-bottom:20px
}
.card-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  border-top:1px solid #edf0f5;
  padding-top:14px;
  margin-top:auto
}
.card-link {
  font-size:11px;
  color:var(--blue);
  font-weight:650;
  display:flex;
  gap:10px;
  align-items:center
}
.answer-note {
  font-size:10px;
  color:#3e9674;
  display:inline-flex;
  gap:4px;
  align-items:center
}
.learning-section {
  display:grid;
  grid-template-columns:1fr 1.5fr;
  gap:50px;
  padding-top:65px;
  padding-bottom:55px
}
.learning-heading h2 {
  margin-top:10px
}
.learning-heading p {
  font-size:13px;
  max-width:330px
}
.grade-links {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:25px
}
.grade-links a {
  display:flex;
  align-items:center;
  gap:13px;
  border:1px solid var(--line);
  border-radius:8px;
  padding:9px 12px;
  font-weight:600;
  font-size:11px
}
.grade-links a:hover {
  border-color:var(--blue)
}
.subject-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:11px
}
.subject-grid a {
  display:flex;
  align-items:center;
  gap:13px;
  border:1px solid var(--line);
  border-radius:10px;
  padding:12px;
  font-size:12px;
  font-weight:550
}
.subject-grid a>svg {
  color:#a1adbe;
  margin-left:auto
}
.subject-symbol {
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border-radius:7px;
  font-size:16px;
  font-weight:600
}
.color-0 {
  color:#3b5f9f;
  background:#eef4ff
}
.color-1 {
  color:#7e68a5;
  background:#f4effb
}
.color-2 {
  color:#24715b;
  background:#edf8f2
}
.color-3 {
  color:#b7893b;
  background:#fcf5e6
}
.practice-banner {
  padding:37px 42px;
  background:var(--blue);
  color:white;
  border-radius:17px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:30px;
  margin-bottom:60px;
  position:relative;
  overflow:hidden
}
.practice-banner .eyebrow {
  color:#ffffff
}
.practice-banner h2 {
  font-size:29px;
  margin:12px 0
}
.practice-banner p {
  font-size:12px;
  color:#ffffff;
  margin-bottom:0
}
.practice-banner:after {
  content:"✦";
  position:absolute;
  right:24%;
  top:-50px;
  font-size:170px;
  color:#ffffff08;
  pointer-events:none
}
.footer {
  border-top:1px solid var(--line);
  padding:48px 0 20px;
  background:#f6f7f9;
  color:#657084
}
.footer-inner {
  display:grid;
  grid-template-columns:1.05fr 1.1fr 1fr;
  align-items:start;
  gap:30px
}
.footer-about { min-width:0; }
.footer p { font-size:13px; line-height:1.85; margin:14px 0 0; }
.footer-column { min-width:0; border-left:1px solid #e3e7ec; padding-left:28px; }
.footer-column h2 { font-size:16px; text-transform:uppercase; letter-spacing:.035em; color:#247f77; margin:8px 0 15px; }
.footer-column ul { list-style:none; padding:0; margin:0; }
.footer-column li + li { margin-top:4px; }
.footer-column a { display:flex; align-items:baseline; gap:10px; padding:8px 0; font-size:12px; line-height:1.65; }
.footer-column a::before { content:'▸'; color:#798396; flex:none; }
.footer a:hover { color:var(--blue); }
.footer-bottom { text-align:center; margin-top:36px; padding-top:20px; border-top:1px solid #e3e7ec; }
.footer-bottom p { margin:0; font-size:12px; }
.footer-bottom a { font-weight:700; color:#344b6c; }
.listing-page {
  padding-top:42px;
  padding-bottom:65px
}
.listing-heading {
  margin-bottom:28px
}
.listing-heading h1 {
  font-size:35px;
  margin:10px 0 12px
}
.listing-heading p {
  font-size:14px
}
.filters-form {
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--soft);
  padding:23px;
  margin-bottom:34px
}
.filters-form label {
  font-size:11px;
  color:#66738a;
  font-weight:650;
  display:block
}
.filters-form input,.filters-form select {
  display:block;
  width:100%;
  border:1px solid #dce3ef;
  background:white;
  border-radius:8px;
  padding:11px 12px;
  margin-top:6px;
  color:var(--ink);
  font-size:13px;
  min-height:44px
}
.filter-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-top:15px
}
.filter-actions {
  display:flex;
  gap:18px;
  align-items:center;
  margin-top:19px
}
.results-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:22px
}
.results-heading h2 {
  font-size:20px;
  margin:0
}
.results-heading>span {
  font-size:12px;
  color:var(--muted)
}
.empty-state {
  padding:70px 24px;
  text-align:center
}
.empty-state>svg {
  color:#8095ba;
  margin-bottom:20px
}
.empty-state h1,.empty-state h2 {
  font-size:27px
}
.empty-state p {
  font-size:14px
}
.pagination {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  margin-top:30px;
  font-size:13px
}
.pagination>a {
  color:var(--blue);
  border:1px solid var(--line);
  border-radius:8px;
  padding:10px 13px
}
.pagination>span {
  color:var(--muted)
}
.breadcrumb {
  display:flex;
  gap:9px;
  align-items:center;
  flex-wrap:wrap;
  font-size:11px;
  color:#586477;
  padding:25px 0
}
.breadcrumb span:last-child {
  max-width:60%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}
.detail-layout {
  display:block
}
.detail-main {
  min-width:0
}
.detail-page {
  width:80%;
  padding-bottom:45px
}
.detail-main h1 {
  font-size:34px;
  line-height:1.3;
  margin-bottom:18px
}
.detail-meta {
  display:flex;
  gap:16px;
  flex-wrap:wrap;
  color:var(--muted);
  font-size:11px;
  margin-bottom:24px
}
.detail-actions {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  padding-bottom:26px;
  border-bottom:1px solid var(--line);
  margin-bottom:26px
}
.article-content {
  line-height:1.9;
  overflow-wrap:anywhere;
  color:#3c485d;
  font-size:15px
}
.article-content p {
  color:inherit
}
.article-content h2 {
  font-size:25px;
  margin:30px 0 17px
}
.article-content h3 {
  font-size:20px;
  margin:24px 0 15px
}
.article-content a {
  color:var(--blue);
  text-decoration:underline;
  text-underline-offset:3px
}
.article-content img {
  max-width:100%;
  height:auto
}
.article-content figure {
  max-width:100%;
  margin:22px 0
}
.article-content figcaption {
  font-size:12px;
  color:var(--muted)
}
.article-content table {
  max-width:100%;
  display:block;
  overflow-x:auto;
  border-collapse:collapse
}
.article-content td,.article-content th {
  border:1px solid var(--line);
  padding:10px
}
.article-content #ez-toc-container {
  font-size:12px;
  padding:20px;
  background:var(--soft);
  border:1px solid var(--line);
  border-radius:10px;
  margin:20px 0
}
.article-content #ez-toc-container ul {
  padding-left:20px
}
.article-content .ez-toc-title-toggle {
  display:none
}
.pdf-preview {
  margin:26px 0;
  border:1px solid var(--line);
  border-radius:12px;
  padding:18px;
  background:var(--soft)
}
.pdf-preview>div {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px
}
.pdf-preview h2 {
  font-size:18px;
  margin:0
}
.pdf-preview iframe {
  width:100%;
  height:580px;
  border:0;
  background:#fff;
  margin-top:16px;
  border-radius:8px
}
.pdf-preview p {
  font-size:11px;
  margin:12px 0 0
}
.author-card {
  display:flex;
  gap:16px;
  align-items:center;
  padding:22px;
  background:var(--soft);
  border-radius:12px;
  border:1px solid var(--line);
  margin-top:30px
}
.author-avatar {
  flex-shrink:0;
  height:43px;
  width:43px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e4ecff;
  color:var(--blue);
  font-weight:750;
  font-size:18px
}
.author-card p {
  font-size:11px;
  margin:3px 0
}
.file-list {
  margin-top:28px
}
.file-list h2 {
  font-size:21px
}
.file-list a {
  display:flex;
  align-items:center;
  gap:12px;
  border:1px solid var(--line);
  padding:15px;
  border-radius:8px;
  margin-top:10px;
  font-size:13px
}
.file-list a span {
  margin-left:auto
}
.saved-list {
  display:grid;
  gap:14px
}
.saved-list article {
  display:flex;
  align-items:center;
  gap:15px;
  border:1px solid var(--line);
  padding:19px;
  border-radius:12px
}
.saved-list article>a {
  font-weight:650;
  font-size:15px
}
.saved-list article>button {
  margin-left:auto;
  white-space:nowrap
}
.saved-list svg {
  color:var(--blue)
}
.save-wrap {
  display:inline-flex;
  position:relative
}
.save-wrap small {
  position:absolute;
  top:100%;
  right:0;
  min-width:180px;
  background:#fff4df;
  color:#8a6a26;
  padding:6px;
  z-index:2;
  font-size:10px
}
.error-code {
  font-size:70px;
  color:#c9d9fb;
  line-height:1.5;
  font-weight:800
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.skip-link {
  position:fixed;
  top:-60px;
  left:10px;
  background:var(--blue);
  color:white;
  padding:10px 15px;
  z-index:100
}
.skip-link:focus {
  top:10px
}
@media(max-width:960px) {
  .detail-page { width:100%; }
  .main-nav {
    gap:17px
  }
  .hero h1 {
    font-size:41px
  }
  .exam-grid {
    grid-template-columns:repeat(3,minmax(0,1fr))
  }
  .exam-tile {
    min-height:130px
  }
  .resource-grid {
    gap:14px
  }
  .resource-card {
    padding:18px
  }
  .learning-section {
    gap:28px
  }
  .detail-main h1 {
    font-size:29px
  }
}
@media(max-width:740px) {
  .container {
    padding-left:20px;
    padding-right:20px
  }
  .header-inner {
    min-height:76px;
    gap:12px;
    flex-wrap:wrap;
    padding-top:15px;
    padding-bottom:12px
  }
  .brand {
    font-size:21px
  }
  .brand-mark {
    width:36px;
    height:36px
  }
  .main-nav {
    order:3;
    width:100%;
    justify-content:space-between;
    font-size:12px;
    border-top:1px solid #f0f2f7;
    padding-top:12px;
    margin-top:4px
  }
  .header-practice {
    font-size:11px;
    padding:7px 10px;
    min-height:35px
  }
  .hero {
    padding:37px 0
  }
  .hero h1 {
    font-size:40px
  }
  .hero-description {
    font-size:14px
  }
  .search-box {
    padding-left:12px;
    gap:8px
  }
  .search-box input {
    font-size:12px
  }
  .search-box .button {
    font-size:11px;
    padding:10px
  }
  .search-box .button svg {
    display:none
  }
  .section {
    padding-top:37px
  }
  .section-title h2 {
    font-size:24px
  }
  .section-title {
    align-items:center;
    gap:13px
  }
  .section-title>.text-link {
    font-size:11px
  }
  .eyebrow {
    font-size:8px
  }
  .exam-grid {
    gap:10px
  }
  .exam-tile {
    padding:15px 13px;
    min-height:120px
  }
  .exam-tile strong {
    font-size:22px
  }
  .exam-label {
    font-size:9px
  }
  .exam-number {
    margin-bottom:10px
  }
  .resource-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:13px
  }
  .resource-card {
    padding:17px;
    min-height:260px
  }
  .card-bottom {
    flex-wrap:wrap
  }
  .learning-section {
    grid-template-columns:1fr;
    padding-bottom:35px;
    gap:23px
  }
  .learning-heading p {
    max-width:none
  }
  .grade-links {
    margin-top:16px
  }
  .practice-banner {
    margin:0 20px 35px;
    padding:27px;
    display:block
  }
  .practice-banner h2 {
    font-size:25px
  }
  .practice-banner .button {
    margin-top:22px
  }
  .footer-inner {
    grid-template-columns:1fr;
    gap:24px
  }
  .footer-column {
    border-left:0;
    border-top:1px solid #e3e7ec;
    padding:20px 0 0
  }
  .listing-heading h1 {
    font-size:29px
  }
  .listing-page {
    padding-top:32px;
    padding-bottom:40px
  }
  .filters-form {
    padding:18px
  }
  .filter-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .results-heading {
    display:block
  }
  .results-heading>span {
    display:block;
    margin-top:8px
  }
  .detail-main h1 {
    font-size:28px
  }
  .breadcrumb {
    font-size:10px
  }
  .breadcrumb span:last-child {
    max-width:40%
  }
  .article-content {
    font-size:14px
  }
  .pdf-preview iframe {
    height:460px
  }
  .saved-list article {
    flex-wrap:wrap
  }
  .saved-list article>a {
    max-width:calc(100% - 40px);
    font-size:14px
  }
  .saved-list article>button {
    margin-left:35px
  }
  .pagination {
    font-size:11px
  }
  .pagination>a {
    padding:9px
  }
  .detail-actions .button {
    font-size:12px
  }
}
@media(max-width:480px) {
  .resource-grid {
    grid-template-columns:1fr
  }
  .resource-card {
    min-height:235px
  }
  .hero h1 {
    font-size:37px
  }
  .desktop-break {
    display:none
  }
  .section-title>.text-link {
    max-width:95px
  }
  .exam-arrow {
    right:9px
  }
  .exam-label {
    font-size:8px
  }
  .card-bottom {
    flex-wrap:nowrap
  }
  .subject-grid {
    gap:8px
  }
  .subject-grid a {
    padding:10px;
    gap:8px;
    font-size:11px
  }
  .subject-grid svg {
    display:none
  }
  .filters-form {
    padding:15px
  }
  .filter-grid {
    gap:10px
  }
  .filter-actions {
    gap:12px
  }
  .detail-meta {
    gap:10px
  }
  .detail-actions {
    gap:8px
  }
  .pdf-preview>div {
    display:block
  }
  .pdf-preview .text-link {
    margin-top:8px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  * {
    transition:none!important
  }
}
@media (max-width: 380px)  {
  .header-practice  {
    display: none;
  }
}

/* Existing WordPress brand assets; predictable dimensions avoid layout shifts. */
.brand img { width: 176px; height: auto; display: block; }
.footer-brand img { width: 240px; max-width:100%; height: auto; display: block; }
.header-search { display: none; font-size: 28px; min-width: 44px; min-height: 44px; text-align: center; }
.exam-menu { position: relative; }
.exam-menu summary, .mobile-menu summary { cursor: pointer; list-style: none; }
.exam-menu summary::-webkit-details-marker, .mobile-menu summary::-webkit-details-marker { display: none; }
.exam-menu summary { min-height: 44px; display: flex; align-items: center; gap: 6px; }
.exam-dropdown { position: absolute; z-index: 20; top: 46px; left: -18px; min-width: 150px; padding: 8px; background: white; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 30px #17203315; }
.exam-dropdown a { display: block; padding: 9px 12px; }
.exam-dropdown a:hover { background: var(--soft); border-radius: 6px; }
.mobile-menu { display: none; }
.hero-exams { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: 16px; overflow-x: auto; padding-bottom: 8px; }
.hero-exams a { flex: 0 0 auto; border: 1px solid var(--line); border-radius: 20px; padding: 6px 12px; font-size: 12px; font-weight: 600; }
.hero-exams a:hover { border-color: var(--blue); color: var(--blue); }
.hub-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 28px; }
.hub-chips a { border: 1px solid var(--line); border-radius: 9px; padding: 10px 14px; display: flex; gap: 10px; }
.hub-chips span { color: var(--muted); }
.hub-group, .hub-guide, .hub-faq { margin: 44px 0; }
.hub-guide { padding: 24px; border-radius: 12px; background: var(--soft); }
.hub-guide li { margin-bottom: 8px; }
.hub-faq details { border-bottom: 1px solid var(--line); padding: 16px 0; }
.hub-faq summary { cursor: pointer; font-weight: 600; padding: 4px 0; }
.hub-faq details p { margin: 12px 0 0; max-width: 760px; }
.card-practice { display: inline-block; margin-bottom: 12px; font-size: 12px; }
.bundle-list, .teacher-offer, .affiliate-section { margin-top: 36px; border-top: 1px solid var(--line); padding-top: 24px; }
.bundle-list article { padding: 16px 0; border-bottom: 1px solid var(--line); }
.bundle-list article > div { display: flex; flex-wrap: wrap; gap: 12px; }
.teacher-offer { background: var(--soft); padding: 24px; border-radius: 12px; }
.affiliate-disclosure { font-size: 13px; }
.affiliate-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.affiliate-grid article { border: 1px solid var(--line); padding: 20px; border-radius: 12px; }
.author-resources { display: block; margin-top: 8px; }
.recent-section { padding-bottom: 12px; }
summary:focus-visible { outline: 3px solid #87adff; outline-offset: 4px; }
@media (max-width: 900px) {
  .header-inner { position: relative; gap: 12px; min-height: 76px; }
  .brand img { width: 146px; }
  .main-nav { display: none; }
  .header-practice { display: none; }
  .header-search { display: block; margin-left: auto; }
  .mobile-menu { display: block; }
  .mobile-menu summary { min-width: 44px; min-height: 44px; display: grid; place-items: center; font-size: 23px; border: 1px solid var(--line); border-radius: 8px; }
  .mobile-menu nav { position: absolute; z-index: 30; top: 100%; right: 20px; left: 20px; background: white; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 30px #17203315; padding: 12px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mobile-menu nav a { padding: 12px; font-size: 14px; }
  .mobile-menu nav a:last-child { grid-column: 1 / -1; color: var(--blue); }
}
@media (max-width: 480px) {
  .brand img { width: 130px; }
  .affiliate-grid { grid-template-columns: 1fr; }
  .hub-chips { gap: 8px; }
  .hub-chips a { padding: 8px 10px; font-size: 13px; }
  .bundle-list .button { white-space: normal; }
}

/* Article photo viewer: native dialog provides focus trapping and inert background. */
.lightbox-trigger{cursor:zoom-in}.lightbox-trigger:focus-visible{outline:3px solid var(--blue);outline-offset:3px}

.downloads-section { margin-top: 32px; padding: 24px; border: 1px solid var(--border, #e2e8f0); border-radius: 14px; background: #f8fafc; }
.downloads-section h2 { overflow-wrap: anywhere; }
.download-buttons { display: grid; gap: 16px; margin: 20px 0; }
.download-action { display: flex; align-items: flex-start; flex-direction: column; gap: 6px; }
.download-action .button { white-space: normal; text-align: left; max-width: 100%; overflow-wrap: anywhere; }
.download-action span, .click-note { font-size: .85rem; color: #475569; }
.click-totals { font-weight: 600; }
@media (max-width: 600px) { .downloads-section { padding: 16px; } }

.back-to-top {
  position:fixed;
  right:calc(20px + env(safe-area-inset-right, 0px));
  bottom:calc(20px + env(safe-area-inset-bottom, 0px));
  z-index:10;
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border:1px solid var(--blue);
  border-radius:50%;
  background:var(--blue);
  color:white;
  box-shadow:0 4px 16px #153f7826;
  cursor:pointer;
}
.back-to-top:hover { background:#174fe5; }
.back-to-top svg { transform:rotate(-90deg); }

.card-top.has-thumbnail { display:block; position:relative; }
.card-thumbnail { display:block; overflow:hidden; border-radius:9px; background:var(--soft); }
.card-thumbnail img { display:block; width:100%; height:auto; aspect-ratio:16 / 9; object-fit:cover; }
.has-thumbnail > .save-wrap { position:absolute; top:8px; right:8px; background:white; border-radius:8px; box-shadow:0 2px 8px #17203314; }
.author-info { min-width:0; }
.author-card .author-description { font-size:13px; line-height:1.7; margin:7px 0; }
.author-socials { display:flex; flex-wrap:wrap; gap:16px; margin:8px 0; }

.author-avatar img { width:100%; height:100%; object-fit:cover; border-radius:50%; }
.download-action .button { white-space:normal; overflow-wrap:anywhere; text-align:center; }

.ad-slot { margin:24px auto; padding:12px; border:1px solid var(--line); border-radius:10px; background:#f8fafc; max-width:100%; min-width:0; }
.ad-slot-label { display:block; margin-bottom:8px; color:#65738b; font-size:10px; text-transform:uppercase; letter-spacing:.08em; }
.ad-slot-body { min-height:var(--ad-height); display:grid; place-items:center; min-width:0; overflow-wrap:anywhere; }
.ad-slot-body img { display:block; width:auto; max-width:100%; height:auto; max-height:var(--ad-height); object-fit:contain; }
.ad-slot-body iframe { display:block; border:0; width:100%; }
.ad-slot-html { max-width:100%; }
@media(max-width:740px) { .ad-slot--desktop { display:none; } }
@media(min-width:741px) { .ad-slot--mobile { display:none; } }

[hidden]{display:none!important}.wp-block-image img{max-width:100%;height:auto}
.save-wrap small:empty {
  display: none;
}
