/* TNM 2026 v0.3.0 | Reusable Custom HTML module design system.
   All classes are prefixed to avoid clashes with Joomla and extensions.
   Section snippets should be pasted into Custom modules as HTML. */

.tnm-site .tnm-module-position{width:100%;min-width:0}
.tnm-site .tnm-module-position>*{min-width:0}
.tnm-site .tnm-block{
  --tnm-block-bg:transparent;
  position:relative;isolation:isolate;
  width:100%;background:var(--tnm-block-bg);color:var(--ink);
  padding:clamp(76px,8.5vw,136px) 0;
}
.tnm-site .tnm-block--compact{padding:clamp(46px,5.5vw,84px) 0}
.tnm-site .tnm-block--paper{--tnm-block-bg:var(--paper)}
.tnm-site .tnm-block--warm{--tnm-block-bg:#ecece6}
.tnm-site .tnm-block--white{--tnm-block-bg:#fff}
.tnm-site .tnm-block--dark{--tnm-block-bg:var(--ink);color:#fff}
.tnm-site .tnm-block--red{--tnm-block-bg:var(--red);color:#fff}
.tnm-site .tnm-block--border{border-block:1px solid var(--line)}
.tnm-site .tnm-block--dark .tnm-kicker,.tnm-site .tnm-block--red .tnm-kicker{color:rgba(255,255,255,.68)}
.tnm-site .tnm-block--dark .tnm-copy,.tnm-site .tnm-block--red .tnm-copy{color:rgba(255,255,255,.77)}
.tnm-site .tnm-inner{width:min(var(--max),calc(100% - 2 * var(--pad)));margin-inline:auto}
.tnm-site .tnm-inner--narrow{max-width:960px}
.tnm-site .tnm-stack>*{margin-block:0}
.tnm-site .tnm-stack>*+*{margin-top:clamp(16px,2vw,30px)}
.tnm-site .tnm-grid{display:grid;gap:clamp(22px,3vw,54px);align-items:start}
.tnm-site .tnm-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.tnm-site .tnm-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.tnm-site .tnm-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.tnm-site .tnm-grid--center{align-items:center}
.tnm-site .tnm-grid>*{min-width:0}
.tnm-site .tnm-kicker{display:block;margin:0 0 22px;color:var(--red);font-size:12px;font-weight:800;line-height:1.3;letter-spacing:.15em;text-transform:uppercase}
.tnm-site .tnm-headline{font-size:clamp(46px,6vw,100px);font-weight:800;line-height:.94;letter-spacing:-.065em;text-wrap:balance;margin:0}
.tnm-site .tnm-headline--sm{font-size:clamp(36px,4.3vw,72px)}
.tnm-site .tnm-headline--xl{font-size:clamp(58px,9vw,150px)}
.tnm-site .tnm-headline .tnm-red{color:var(--red)}
.tnm-site .tnm-copy{font-size:clamp(17px,1.5vw,22px);line-height:1.55;color:var(--muted);max-width:700px;margin:24px 0 0}
.tnm-site .tnm-copy--large{font-size:clamp(21px,2.2vw,32px);line-height:1.35}
.tnm-site .tnm-copy p{margin:0 0 1.05em}
.tnm-site .tnm-copy p:last-child{margin-bottom:0}
.tnm-site .tnm-eyeline{height:1px;width:100%;background:currentColor;opacity:.16;margin:34px 0}
.tnm-site .tnm-media{margin:0;overflow:hidden;background:#d9d9d5;aspect-ratio:1.16;min-width:0}
.tnm-site .tnm-media--landscape{aspect-ratio:16/10}
.tnm-site .tnm-media--portrait{aspect-ratio:4/5}
.tnm-site .tnm-media--square{aspect-ratio:1}
.tnm-site .tnm-media img{width:100%;height:100%;object-fit:cover;transition:transform .65s ease}
.tnm-site a.tnm-media:hover img{transform:scale(1.04)}
.tnm-site .tnm-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:30px}
.tnm-site .tnm-btn{display:inline-flex;justify-content:center;align-items:center;gap:22px;min-height:53px;padding:14px 22px;font-size:13px;font-weight:800;line-height:1.2;text-decoration:none;letter-spacing:.03em;border:1px solid var(--ink);background:transparent;color:var(--ink);transition:background .2s,border-color .2s,color .2s,transform .2s}
.tnm-site .tnm-btn:hover{background:var(--ink);color:white;transform:translateY(-2px)}
.tnm-site .tnm-btn--red{background:var(--red);border-color:var(--red);color:#fff}
.tnm-site .tnm-btn--red:hover{background:var(--red-dark);border-color:var(--red-dark)}
.tnm-site .tnm-btn--white{border-color:#fff;background:#fff;color:var(--ink)}
.tnm-site .tnm-btn--white:hover{background:transparent;color:#fff}
.tnm-site .tnm-block--dark .tnm-btn:not(.tnm-btn--red):not(.tnm-btn--white){color:#fff;border-color:rgba(255,255,255,.6)}
.tnm-site .tnm-block--dark .tnm-btn:not(.tnm-btn--red):not(.tnm-btn--white):hover{background:white;color:var(--ink)}
.tnm-site .tnm-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:center;gap:clamp(34px,5vw,100px)}
.tnm-site .tnm-feature--reverse{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
.tnm-site .tnm-feature--reverse .tnm-media{order:-1}
.tnm-site .tnm-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-block:1px solid rgba(125,125,125,.3);margin-top:45px}
.tnm-site .tnm-stat-tile{min-width:0;padding:36px 24px;border-right:1px solid rgba(125,125,125,.26)}
.tnm-site .tnm-stat-tile:first-child{padding-left:0}
.tnm-site .tnm-stat-tile:last-child{border-right:0}
.tnm-site .tnm-stat-tile strong{display:block;font-size:clamp(39px,4.6vw,82px);font-weight:800;line-height:.95;letter-spacing:-.07em;overflow-wrap:anywhere}
.tnm-site .tnm-stat-tile span{display:block;margin-top:15px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:750;opacity:.7}
.tnm-site .tnm-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.tnm-site .tnm-card-grid--spaced{margin-top:40px}
.tnm-site .tnm-card{background:#fff;color:var(--ink);border:1px solid var(--line);display:flex;flex-direction:column;min-width:0;transition:transform .25s,box-shadow .25s}
.tnm-site .tnm-card:hover{transform:translateY(-3px);box-shadow:0 15px 42px rgba(20,20,20,.08)}
.tnm-site .tnm-card .tnm-media{aspect-ratio:4/3}
.tnm-site .tnm-card__body{padding:clamp(23px,2.5vw,38px);flex:1;display:flex;flex-direction:column}
.tnm-site .tnm-card__number{font-size:12px;letter-spacing:.1em;color:var(--red);font-weight:800}
.tnm-site .tnm-card h3{font-size:clamp(26px,2.6vw,42px);font-weight:800;letter-spacing:-.05em;line-height:1.08;margin:22px 0 16px}
.tnm-site .tnm-card p{color:var(--muted);line-height:1.55;margin:0}
.tnm-site .tnm-card__link{font-weight:800;margin-top:auto;padding-top:26px;font-size:13px}
.tnm-site .tnm-card__link:hover{color:var(--red)}
.tnm-site .tnm-quote{margin:0;max-width:1100px;font-size:clamp(32px,5.6vw,90px);letter-spacing:-.065em;font-weight:750;line-height:1.07}
.tnm-site .tnm-quote__byline{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin-top:30px;font-weight:800;opacity:.7}
.tnm-site .tnm-banner{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:28px;border-top:1px solid currentColor;padding-top:24px}
.tnm-site .tnm-banner h2{font-size:clamp(28px,4vw,70px);line-height:1;letter-spacing:-.06em;max-width:850px;margin:0}
.tnm-site .tnm-downloads{list-style:none;padding:0;margin:35px 0 0;border-top:1px solid var(--line)}
.tnm-site .tnm-downloads li{border-bottom:1px solid var(--line)}
.tnm-site .tnm-downloads a{min-height:78px;display:flex;gap:30px;align-items:center;justify-content:space-between;font-weight:750;font-size:clamp(17px,2vw,25px);line-height:1.2}
.tnm-site .tnm-downloads a:hover{color:var(--red)}
.tnm-site .tnm-downloads a span:last-child{font-size:12px;letter-spacing:.12em;white-space:nowrap}
.tnm-site .tnm-rule-list{list-style:none;padding:0;margin:20px 0 0;counter-reset:tnm-num}
.tnm-site .tnm-rule-list li{display:grid;grid-template-columns:70px 1fr;gap:20px;border-bottom:1px solid rgba(125,125,125,.28);padding:22px 0;counter-increment:tnm-num;font-size:clamp(19px,2.4vw,32px);line-height:1.15;font-weight:650}
.tnm-site .tnm-rule-list li::before{content:counter(tnm-num, decimal-leading-zero);font-size:13px;letter-spacing:.05em;color:var(--red);font-weight:800}
.tnm-site .tnm-accent-strip{height:6px;background:var(--red);width:100%}
.tnm-site :is(.tnm-btn,.tnm-card__link,.tnm-downloads a):focus-visible{outline:3px solid var(--red);outline-offset:5px}
/* The dynamic Articles module uses the existing Joomla-news design with this grid. */
.tnm-site .tnm-home-news-feed .tnm-news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.tnm-site .tnm-home-news-feed .tnm-news-card-live{background:#fff}
@media(max-width:980px){
  .tnm-site .tnm-grid--4,.tnm-site .tnm-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tnm-site .tnm-card-grid,.tnm-site .tnm-grid--3,.tnm-site .tnm-home-news-feed .tnm-news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tnm-site .tnm-stat-tile:nth-child(2){border-right:0}
  .tnm-site .tnm-stat-tile:nth-child(-n+2){border-bottom:1px solid rgba(125,125,125,.26)}
  .tnm-site .tnm-stat-tile:nth-child(3){padding-left:0}
}
@media(max-width:700px){
  .tnm-site .tnm-grid--2,.tnm-site .tnm-grid--3,.tnm-site .tnm-grid--4,.tnm-site .tnm-card-grid,.tnm-site .tnm-home-news-feed .tnm-news-grid{grid-template-columns:1fr}
  .tnm-site .tnm-feature,.tnm-site .tnm-feature--reverse{grid-template-columns:1fr;gap:28px}
  .tnm-site .tnm-feature--reverse .tnm-media{order:initial}
  .tnm-site .tnm-inner{width:calc(100% - 2 * var(--pad))}
  .tnm-site .tnm-stat-tile{padding:28px 12px}
  .tnm-site .tnm-stat-tile strong{font-size:clamp(35px,9vw,55px)}
  .tnm-site .tnm-media,.tnm-site .tnm-media--portrait{aspect-ratio:5/4}
  .tnm-site .tnm-banner{grid-template-columns:1fr;align-items:start}
  .tnm-site .tnm-banner .tnm-btn{justify-self:start}
  .tnm-site .tnm-headline{overflow-wrap:break-word;hyphens:auto}
  .tnm-site .tnm-downloads a{gap:12px}
  .tnm-site .tnm-rule-list li{grid-template-columns:42px 1fr}
}
@media(prefers-reduced-motion:reduce){.tnm-site .tnm-card,.tnm-site .tnm-btn,.tnm-site .tnm-media img{transition:none!important}}
