/* ---- Section headings: more presence, cleaner rhythm ---- */
.tdt-section-head{ margin-bottom:28px; padding-bottom:0; }
.tdt-section-head h2{
  font-size:clamp(20px,3vw,26px);
  position:relative; padding-bottom:0;
}
.tdt-section-head::after{
  content:""; display:block; width:32px; height:3px; border-radius:2px;
  background:var(--accent); margin-top:10px; opacity:.7;
}
.tdt-section-note{ margin-top:4px; }

/* ---- Grid: more breathing room ---- */
.tdt-grid{
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:18px;
}
.tdt-grid.tdt-deal-grid{
  grid-template-columns:repeat(auto-fill,minmax(290px,1fr));
  gap:18px;
}

/* ---- Card: refined cover with inner shadow for depth ---- */
.tdt-card{
  border-radius:14px;
  box-shadow:0 1px 2px rgba(23,23,23,.04);
}
.tdt-card:hover{
  box-shadow:0 4px 12px rgba(23,23,23,.08), 0 1px 3px rgba(23,23,23,.06);
  transform:translateY(-4px);
  border-color:#C5C5CC;
}
.tdt-card__cover::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:linear-gradient(to bottom, transparent 55%, rgba(23,23,23,.06) 100%);
}
.tdt-card__cover{ height:116px; }
.tdt-card__cover::after{
  background:radial-gradient(ellipse 75% 65% at 50% 10%, rgba(255,255,255,.6), transparent 72%);
}

/* ---- Card body: tighter, more readable ---- */
.tdt-card__body{ padding:15px 16px 14px; }
.tdt-card__title{
  font-size:15px!important;
  margin-bottom:4px!important;
}
.tdt-card__desc{
  font-size:13px; line-height:1.5;
  -webkit-line-clamp:2;
  min-height:calc(2 * 1.5em);
}
.tdt-card__foot{
  padding-top:9px; margin-top:9px;
  border-top:1px solid var(--line-2);
}
.tdt-card__price{ font-size:11px; }
.tdt-card__arrow{
  width:28px; height:28px; border-radius:50%;
  background:var(--canvas); border:1px solid var(--line);
  display:grid; place-items:center; font-size:14px;
  transition:all .18s;
}
.tdt-card:hover .tdt-card__arrow{
  background:var(--accent); color:var(--accent-ink);
  border-color:var(--accent); transform:translateX(2px);
}

/* ---- Card logo: slightly larger, more prominent ---- */
.tdt-card__logo{
  width:52px; height:52px; border-radius:13px;
  box-shadow:0 1px 3px rgba(23,23,23,.08), 0 4px 12px rgba(23,23,23,.08);
}

/* ---- Tags: slightly more refined ---- */
.tdt-tag{
  padding:4px 10px; border-radius:6px;
  font-size:10px;
}

/* ---- Discipline picker: larger, more inviting ---- */
.tdt-disc-grid{ gap:14px; }
.tdt-disc-card{
  padding:28px 14px; border-radius:14px;
  box-shadow:0 1px 2px rgba(23,23,23,.03);
}
.tdt-disc-card:hover{
  transform:translateY(-4px);
  box-shadow:0 6px 16px rgba(23,23,23,.08);
}
.tdt-disc-card__mono{
  width:60px; height:60px; border-radius:15px; font-size:20px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8), 0 2px 6px rgba(23,23,23,.06);
}
.tdt-disc-card__name{ font-size:14px; font-weight:600; }
.tdt-disc-card__count{ font-size:12px; }

/* ---- Partner cards: more prominent ---- */
.tdt-deal-card{ border-radius:14px; }
.tdt-deal-card:hover{
  box-shadow:0 6px 16px rgba(23,23,23,.08);
  transform:translateY(-3px);
  border-color:#C5C5CC;
}
.tdt-deal-card__banner{ height:110px; }
.tdt-partner-card__logo{
  width:60px; height:60px; border-radius:15px;
  box-shadow:0 2px 6px rgba(23,23,23,.08), 0 6px 16px rgba(23,23,23,.06);
}

/* ---- Newsletter: cleaner ---- */
.tdt-newsletter{
  border-radius:16px;
  box-shadow:0 1px 3px rgba(23,23,23,.04);
}
.tdt-newsletter:hover{
  box-shadow:0 4px 12px rgba(23,23,23,.06);
}


/* ---- Newsletter page: centred reading column ---- */
.page-id-1140 .wp-block-post-content{
  max-width:680px;
  margin-left:auto;
  margin-right:auto;
  padding-left:20px;
  padding-right:20px;
  text-align:center;
}
.page-id-1140 .tdt-page-intro{
  max-width:560px;
  margin-left:auto;
  margin-right:auto;
}
.page-id-1140 .tdt-page-intro p{
  max-width:54ch;
  margin-left:auto;
  margin-right:auto;
  line-height:1.7;
}
.page-id-1140 .tdt-newsletter{
  width:100%;
  max-width:560px;
  margin:32px auto;
  padding:36px clamp(22px,5vw,48px);
  box-sizing:border-box;
}
.page-id-1140 .tdt-newsletter__form{
  max-width:430px;
  margin-left:auto;
  margin-right:auto;
}
@media (max-width:600px){
  .page-id-1140 .wp-block-post-content{ padding-left:16px; padding-right:16px; }
  .page-id-1140 .tdt-newsletter{ padding:28px 18px; }
}

/* ---- Buttons: smoother ---- */
.tdt-btn{
  border-radius:10px;
  transition:all .2s cubic-bezier(.16,1,.3,1);
}
.tdt-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 4px 12px rgba(36,84,255,.25);
}
.tdt-cta{
  border-radius:10px;
  transition:all .2s cubic-bezier(.16,1,.3,1);
}

/* ---- See-all link: more button-like ---- */
.tdt-see-all{
  border-radius:10px; font-weight:600; transition:all .2s;
}
.tdt-see-all:hover{
  /* !important beats the base design-system hover, which paints this
     surface rgba(36,84,255,.02) — a white pill. Forcing the solid accent
     keeps the white label legible in both themes. */
  background:var(--accent)!important; color:var(--accent-ink)!important;
  border-color:var(--accent)!important; transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(36,84,255,.25);
}
.tdt-see-all:focus-visible{
  background:var(--accent)!important; color:var(--accent-ink)!important;
  border-color:var(--accent)!important;
  outline:2px solid var(--accent); outline-offset:3px;
}

/* ---- Load more: polished ---- */
.tdt-load-more{
  border-radius:10px; font-weight:600; transition:all .2s cubic-bezier(.16,1,.3,1);
}
.tdt-load-more:hover{
  border-color:var(--accent); color:var(--accent);
  transform:translateY(-1px); box-shadow:0 4px 12px rgba(23,23,23,.06);
}

/* ---- Pros/cons + facts: cleaner ---- */
.tdt-pros,.tdt-cons{ border-radius:14px; }
.tdt-tool__facts{ border-radius:12px; }

/* ---- Mobile: tighter gaps ---- */
@media (max-width:600px){
  .tdt-grid{ gap:12px; }
  .tdt-card__cover{ height:100px; }
  .tdt-disc-grid{ gap:10px; }
  .tdt-disc-card{ padding:20px 10px; }
  .tdt-disc-card__mono{ width:52px; height:52px; font-size:18px; }
}

/* ---- Dark mode shadows ---- */
[data-theme="dark"] .tdt-card{ box-shadow:0 1px 2px rgba(0,0,0,.2); }
[data-theme="dark"] .tdt-card:hover{ box-shadow:0 4px 12px rgba(0,0,0,.3); }
[data-theme="dark"] .tdt-disc-card:hover{ box-shadow:0 6px 16px rgba(0,0,0,.3); }
[data-theme="dark"] .tdt-card__arrow{ background:rgba(255,255,255,.06); border-color:var(--line); }
[data-theme="dark"] .tdt-card:hover .tdt-card__arrow{ background:var(--accent); color:var(--accent-ink); }

/* ---- Reduced motion ---- */
@media (prefers-reduced-motion: reduce){
  .tdt-card:hover,.tdt-disc-card:hover,.tdt-deal-card:hover,
  .tdt-btn:hover,.tdt-see-all:hover,.tdt-load-more:hover{ transform:none!important; }
  .tdt-card:hover .tdt-card__cover{ transform:none; }
}

/* ---- Toools-inspired landing hero + category tiles ---- */
.tdt-hero--toools{ text-align:left; max-width:var(--max); padding:64px var(--gutter) 8px;
  display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:48px; align-items:center; }
.tdt-hero--toools .tdt-hero-copy{ position:relative; z-index:2; }
.tdt-hero--toools h1{ font-family:var(--font-display); font-size:clamp(34px,4.6vw,52px);
  font-weight:var(--fw-bold); letter-spacing:var(--ls-display); line-height:1.06;
  margin:0 0 14px; color:var(--ink); max-width:14ch; }
.tdt-hero--toools .tdt-hero-lede{ font-size:var(--fs-lg); color:var(--sub); line-height:1.5; max-width:46ch; margin:0 0 26px; }
.tdt-hero--toools .tdt-hero-ctas{ display:flex; gap:12px; flex-wrap:wrap; }
.tdt-hero--toools .tdt-hero-logo-cluster{ position:relative; z-index:1; display:flex; flex-wrap:wrap;
  gap:14px; justify-content:flex-end; }
.tdt-hero--toools .tdt-hero-logo-cluster .tdt-mini-logo{ width:52px; height:52px; border-radius:14px;
  background:var(--paper); border:1px solid var(--line); box-shadow:var(--shadow);
  display:grid; place-items:center; overflow:hidden; font-weight:700; font-size:13px; color:var(--ink);
  transition:transform .2s var(--ease-spring), box-shadow .2s; }
.tdt-hero--toools .tdt-hero-logo-cluster .tdt-mini-logo:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lg); }
.tdt-hero--toools .tdt-hero-logo-cluster img{ width:30px; height:30px; object-fit:contain; }
/* Category tiles: same anatomy as the tool cards — tinted cover strip with a
   white icon chip, then title + count body. Card radius, shadows and spring
   hover so the homepage grid reads as one family with /tools/. */
.tdt-cat-tiles{ display:grid; grid-template-columns:repeat(auto-fill,minmax(168px,1fr)); gap:14px;
  margin-top:34px; position:relative; z-index:1; }
.tdt-cat-tile{ position:relative; background:var(--paper); border:1px solid var(--line);
  border-radius:14px; overflow:hidden; text-align:center; text-decoration:none; color:var(--ink);
  display:flex; flex-direction:column; align-items:center; padding:18px 16px 16px; gap:8px;
  box-shadow:0 1px 2px rgba(23,23,23,.04);
  transition:transform .34s var(--ease-spring), box-shadow .34s var(--ease-spring), border-color .34s var(--ease-spring); }
/* tinted cover strip behind the chip, mirroring .tdt-card__cover */
.tdt-cat-tile::before{ content:""; position:absolute; top:0; left:0; right:0; height:64px;
  background-image:linear-gradient(135deg, hsl(var(--tint,220) 72% 94%) 0%, hsl(calc(var(--tint,220) + 38) 66% 88%) 100%);
  border-bottom:1px solid var(--line-2); }
/* soft radial highlight, same as the cards */
.tdt-cat-tile::after{ content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(ellipse 75% 65% at 50% 10%, rgba(255,255,255,.55), transparent 72%); }
.tdt-cat-tile:hover{ transform:translateY(-4px); border-color:#C5C5CC;
  box-shadow:0 4px 12px rgba(23,23,23,.08), 0 1px 3px rgba(23,23,23,.06); }
.tdt-cat-tile:active{ transform:translateY(-1px) scale(1.004); }
.tdt-cat-tile:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.tdt-cat-tile:hover .tdt-cat-tile__count{ color:var(--accent); }
/* white chip for the glyph, mirroring .tdt-card__logo */
.tdt-cat-tile__icon{ position:relative; z-index:1; width:44px; height:44px; border-radius:12px;
  background:rgba(255,255,255,.9); border:1px solid rgba(255,255,255,.75);
  box-shadow:0 1px 3px rgba(23,23,23,.08), 0 4px 12px rgba(23,23,23,.08);
  display:grid; place-items:center; font-size:19px; }
.tdt-cat-tile__icon svg{ width:22px; height:22px; display:block; }
.tdt-cat-tile__label{ position:relative; z-index:1; font-size:15px; font-weight:600; line-height:1.3; }
.tdt-cat-tile__count{ position:relative; z-index:1; font-size:11px; font-weight:600; color:var(--faint); }
/* Dark mode: card shadows + dim the pastel cover so it doesn't glare on dark ground */
[data-theme="dark"] .tdt-cat-tile{ box-shadow:0 1px 2px rgba(0,0,0,.2); }
[data-theme="dark"] .tdt-cat-tile:hover{ box-shadow:0 4px 12px rgba(0,0,0,.3); }
[data-theme="dark"] .tdt-cat-tile::before{ filter:brightness(.6) saturate(.85); }
[data-theme="dark"] .tdt-cat-tile__icon{ background:rgba(255,255,255,.9); color:#0B0D12; }
@media (prefers-reduced-motion: reduce){ .tdt-cat-tile{ transition:none!important; } .tdt-cat-tile:hover{ transform:none!important; } }
@media(max-width:820px){ .tdt-hero--toools{ grid-template-columns:1fr; text-align:center; gap:22px; }
  .tdt-hero--toools h1{ margin:0 auto 12px; } .tdt-hero--toools .tdt-hero-lede{ margin:0 auto 18px; }
  .tdt-hero--toools .tdt-hero-logo-cluster{ justify-content:center; } .tdt-cat-tiles{ grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); } }



/* .tdt-btn carries a blue drop shadow for the solid fill; a ghost button that
   keeps it looks like a solid button that failed to paint. */
.tdt-btn--ghost{ background:var(--paper); color:var(--ink)!important; border:1px solid var(--line-hover); box-shadow:none; }
.tdt-btn--ghost:hover{ box-shadow:none; transform:none; filter:none; }
.tdt-btn--ghost:hover{ border-color:var(--accent); color:var(--accent)!important; }