/* Uniform tool grid + simple hero (home page and /tools/) */
.tg-hero{text-align:center;padding:2.75rem 1rem 2.25rem;margin-top:.75rem}
.tg-hero h1{font-size:clamp(1.6rem,3.2vw,2.5rem);line-height:1.2;font-weight:700;letter-spacing:-.02em;color:var(--bs-heading-color);max-width:820px;margin:0 auto .75rem}
.tg-hero p{font-size:clamp(.95rem,1.4vw,1.05rem);color:var(--bs-body-color);max-width:640px;margin:0 auto 1.5rem}
.tg-search{position:relative;max-width:600px;margin:0 auto}
.tg-search .ti{position:absolute;left:1.1rem;top:50%;transform:translateY(-50%);font-size:1.25rem;width:1.25rem;height:1.25rem;color:var(--bs-secondary-color);pointer-events:none}
.tg-search input{width:100%;font:inherit;font-size:1rem;padding:.9rem 1.2rem .9rem 3rem;border-radius:.75rem;border:1px solid var(--bs-border-color);
  background:var(--bs-paper-bg,#fff);color:var(--bs-heading-color);outline:none;box-shadow:0 2px 6px rgba(47,43,61,.06);transition:border-color .15s,box-shadow .15s}
.tg-search input:focus{border-color:var(--bs-primary);box-shadow:0 0 0 3px rgba(var(--bs-primary-rgb),.15)}

.tg{max-width:1240px;margin:0 auto}
.tg-group{margin-top:2.25rem}
.tg-group:first-child{margin-top:1rem}
.tg-heading{font-size:1.2rem;font-weight:600;color:var(--bs-heading-color);margin:0 0 1rem}
.tg-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.1rem}
.tg-card{display:flex;flex-direction:column;align-items:flex-start;height:100%;padding:1.15rem 1.15rem 1.25rem;border-radius:.6rem;
  background:var(--bs-paper-bg,#fff);border:1px solid var(--bs-border-color);text-decoration:none!important;transition:border-color .15s,box-shadow .15s,transform .15s}
.tg-card:hover,.tg-card:focus-visible{border-color:var(--bs-primary);box-shadow:0 6px 18px -8px rgba(var(--bs-primary-rgb),.45);transform:translateY(-2px);outline:none}
.tg-icon{width:40px;height:40px;border-radius:.5rem;display:flex;align-items:center;justify-content:center;background:var(--tc,var(--bs-primary));color:#fff;margin-bottom:.85rem;flex-shrink:0}
.tg-icon .ti{font-size:1.35rem;width:1.35rem;height:1.35rem}
.tg-title{font-size:1rem;font-weight:600;color:var(--bs-heading-color);line-height:1.3;margin-bottom:.35rem}
.tg-desc{font-size:.84rem;line-height:1.5;color:var(--bs-body-color);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tg-empty{text-align:center;color:var(--bs-secondary-color);margin:2.5rem 0}
.tg [hidden]{display:none!important}

.tg-why{max-width:1240px;margin:3rem auto 1rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
.tg-why>div{text-align:center;padding:1.25rem 1rem}
.tg-why .ti{font-size:1.75rem;width:1.75rem;height:1.75rem;color:var(--bs-primary)}
.tg-why h3{font-size:1rem;font-weight:600;color:var(--bs-heading-color);margin:.6rem 0 .3rem}
.tg-why p{font-size:.84rem;color:var(--bs-body-color);margin:0}

@media (max-width:1199.98px){.tg-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:899.98px){.tg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tg-why{grid-template-columns:repeat(2,1fr)}}
@media (max-width:575.98px){
  .tg-hero{padding:1.5rem .25rem 1.25rem;margin-top:0}
  .tg-group{margin-top:1.75rem}
  .tg-heading{font-size:1.05rem;margin-bottom:.75rem}
  .tg-grid{grid-template-columns:1fr;gap:.65rem}
  .tg-card{display:grid;grid-template-columns:40px 1fr;column-gap:.85rem;row-gap:.15rem;padding:.85rem .95rem}
  .tg-icon{grid-row:1/3;margin:0}
  .tg-title{margin:0;font-size:.95rem}
  .tg-desc{font-size:.8rem;-webkit-line-clamp:2}
  .tg-why{grid-template-columns:1fr;margin-top:2rem}
}
.footer-links a{color:var(--bs-body-color);font-size:.85rem}.footer-links a:hover{color:var(--bs-primary)}
