/* ==========================================================================
   TERMINAX Norge — shared design system (tnx-ui)
   One source of truth for the site's new visual language.
   Component classes are prefixed .tnx-* and are opt-in: a page adopts the
   language by using these classes in a hand-authored <main class="tnx-page">.
   Palette: charcoal base + periwinkle accent. Fonts: Sora / Archivo.
   ========================================================================== */
:root{
  --tnx-bg:#101017; --tnx-bg2:#131319;
  --tnx-surface:#1a1a23; --tnx-surface2:#20202b;
  --tnx-border:#2a2a38; --tnx-line:#23232f;
  --tnx-ink:#f4f4f8; --tnx-muted:#a7a9ba; --tnx-muted2:#c9cbd8;
  --tnx-accent:#7c7ff0; --tnx-accent2:#5f6a90;
  --tnx-radius:18px; --tnx-radius-sm:10px;
  --tnx-maxw:1200px;
}

/* ---- page shell ---- */
.tnx-page{background:var(--tnx-bg);color:var(--tnx-ink);
  font-family:'Sora','Archivo',system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;}
.tnx-page *{box-sizing:border-box;}
.tnx-wrap{max-width:var(--tnx-maxw);margin:0 auto;padding:0 24px;}
.tnx-section{padding:64px 0;}
.tnx-section.tight{padding:40px 0;}

/* ---- hero ---- */
.tnx-hero{position:relative;padding:128px 24px 54px;text-align:center;overflow:hidden;}
.tnx-hero::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(900px 380px at 50% -8%,rgba(124,127,240,.20),transparent 68%);}
.tnx-hero-in{position:relative;max-width:760px;margin:0 auto;}
.tnx-hero h1{font-size:clamp(38px,6.5vw,64px);line-height:1.02;font-weight:800;letter-spacing:-.02em;margin:0 0 16px;color:#fff;}
.tnx-hero p{color:var(--tnx-muted2);font-size:17px;line-height:1.65;margin:0 auto;max-width:600px;}
.tnx-hero.left{text-align:left;}
.tnx-hero.left .tnx-hero-in{margin:0;}
.tnx-hero.left p{margin:0;}

/* ---- eyebrow (no decorative dot) ---- */
.tnx-eyebrow{display:inline-flex;align-items:center;letter-spacing:.26em;text-transform:uppercase;
  font-size:11px;color:#9a9db8;border:1px solid var(--tnx-border);padding:7px 15px;border-radius:999px;margin-bottom:22px;}

/* ---- gradient accent word (use sparingly, one word) ---- */
.tnx-grad{background:linear-gradient(100deg,#b9b4ff,#5f6a90);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}

/* ---- section heading ---- */
.tnx-head{max-width:640px;margin:0 0 34px;}
.tnx-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.tnx-head h2{font-size:clamp(26px,3.6vw,40px);font-weight:800;letter-spacing:-.015em;color:#fff;margin:0 0 12px;line-height:1.08;}
.tnx-head p{color:var(--tnx-muted2);font-size:16px;line-height:1.6;margin:0;max-width:60ch;}

/* ---- buttons ---- */
.tnx-btn-row{display:flex;gap:12px;flex-wrap:wrap;}
.tnx-hero .tnx-btn-row,.tnx-head.center + .tnx-btn-row{justify-content:center;}
.tnx-btn{display:inline-block;background:linear-gradient(180deg,#6b74a0,#4a5378);color:#fff;text-decoration:none;
  padding:14px 32px;border-radius:999px;font-weight:600;font-size:15px;border:none;cursor:pointer;font-family:inherit;
  transition:transform .18s,box-shadow .18s;box-shadow:0 10px 26px rgba(74,83,120,.4);}
.tnx-btn:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(74,83,120,.5);}
.tnx-btn:active{transform:translateY(0);}
.tnx-btn-ghost{display:inline-block;background:transparent;border:1px solid var(--tnx-border);color:var(--tnx-ink);text-decoration:none;
  padding:14px 30px;border-radius:999px;font-weight:600;font-size:15px;cursor:pointer;font-family:inherit;transition:border-color .18s,color .18s;}
.tnx-btn-ghost:hover{border-color:var(--tnx-accent2);color:#fff;}
.tnx-btn:focus-visible,.tnx-btn-ghost:focus-visible,.tnx-pill:focus-visible,.tnx-card:focus-visible{outline:2px solid var(--tnx-accent);outline-offset:3px;}

/* ---- filter pills ---- */
.tnx-filter{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;}
.tnx-pill{appearance:none;cursor:pointer;font:inherit;font-size:14px;font-weight:600;color:var(--tnx-muted2);
  background:var(--tnx-surface);border:1px solid var(--tnx-border);padding:10px 20px;border-radius:999px;
  transition:color .18s,background .18s,border-color .18s;}
.tnx-pill:hover{color:#fff;border-color:var(--tnx-accent2);}
.tnx-pill[aria-pressed="true"]{color:#fff;background:linear-gradient(180deg,#5f6a90,#4a5378);border-color:#6f7aa5;}

/* ---- card grid (bento-capable) ---- */
.tnx-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.tnx-grid.cols-2{grid-template-columns:repeat(2,1fr);}
@media(max-width:1000px){.tnx-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.tnx-grid,.tnx-grid.cols-2{grid-template-columns:1fr;}}
.tnx-card{position:relative;display:flex;flex-direction:column;background:var(--tnx-surface);border:1px solid var(--tnx-border);
  border-radius:var(--tnx-radius);overflow:hidden;text-decoration:none;color:inherit;
  transition:transform .45s ease,opacity .5s ease,border-color .25s,box-shadow .25s;}
.tnx-card:hover{border-color:var(--tnx-accent2);box-shadow:0 22px 48px rgba(0,0,0,.5);transform:translateY(-6px);}
.tnx-media{position:relative;aspect-ratio:16/11;overflow:hidden;background:#0c0c12;}
.tnx-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.tnx-card:hover .tnx-media img{transform:scale(1.06);}
.tnx-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(16,16,23,.55));}
.tnx-cardbody{display:flex;flex-direction:column;gap:9px;padding:20px 20px 22px;flex:1;}
.tnx-cardbody h3{margin:0;font-size:19px;font-weight:700;color:#fff;letter-spacing:-.01em;}
.tnx-cardbody p{margin:0;font-size:14px;line-height:1.55;color:var(--tnx-muted);flex:1;}
.tnx-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px;}
.tnx-tag{font-size:11px;color:#c7c9e0;background:var(--tnx-surface2);border:1px solid var(--tnx-line);padding:4px 10px;border-radius:8px;}
.tnx-tag.cat{color:#cdd0ee;background:rgba(124,127,240,.14);border-color:rgba(124,127,240,.32);font-weight:600;}
.tnx-more{margin-top:10px;display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:600;color:var(--tnx-accent);}
.tnx-more svg{transition:transform .25s;}
.tnx-card:hover .tnx-more svg{transform:translateX(4px);}
.tnx-feat-label{align-self:flex-start;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--tnx-accent);margin-bottom:2px;}
/* featured card: 2-col span, horizontal */
.tnx-card.feat{grid-column:span 2;flex-direction:row;}
.tnx-card.feat .tnx-media{aspect-ratio:auto;flex:1.15;min-height:280px;}
.tnx-card.feat .tnx-cardbody{flex:1;justify-content:center;padding:30px;}
.tnx-card.feat .tnx-cardbody h3{font-size:26px;}
.tnx-card.feat .tnx-cardbody p{flex:none;font-size:15px;}
@media(max-width:640px){.tnx-card.feat{grid-column:span 1;flex-direction:column;}.tnx-card.feat .tnx-media{min-height:220px;}}

/* ---- feature split (image + text), alternate with .rev ---- */
.tnx-feature{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;}
.tnx-feature + .tnx-feature{margin-top:56px;}
.tnx-feature .tnx-fimg{border-radius:var(--tnx-radius);overflow:hidden;border:1px solid var(--tnx-border);aspect-ratio:4/3;background:#0c0c12;}
.tnx-feature .tnx-fimg img{width:100%;height:100%;object-fit:cover;}
.tnx-feature h3{font-size:clamp(22px,3vw,30px);font-weight:800;letter-spacing:-.015em;color:#fff;margin:0 0 12px;}
.tnx-feature p{color:var(--tnx-muted2);font-size:16px;line-height:1.65;margin:0 0 18px;}
.tnx-feature.rev .tnx-fimg{order:2;}
@media(max-width:820px){.tnx-feature{grid-template-columns:1fr;gap:24px;}.tnx-feature.rev .tnx-fimg{order:0;}}

/* ---- trust / stats strip ---- */
.tnx-trust{border-top:1px solid var(--tnx-line);border-bottom:1px solid var(--tnx-line);}
.tnx-trust-in{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--tnx-line);}
@media(max-width:760px){.tnx-trust-in{grid-template-columns:repeat(2,1fr);}}
.tnx-trust-item{background:var(--tnx-bg);padding:30px 22px;text-align:center;}
.tnx-trust-item .n{font-size:26px;font-weight:800;color:#fff;letter-spacing:-.01em;}
.tnx-trust-item .l{font-size:13px;color:var(--tnx-muted);margin-top:5px;}

/* ---- logo wall (awards) ---- */
.tnx-logos{display:flex;flex-wrap:wrap;gap:34px 46px;align-items:center;justify-content:center;}
.tnx-logos img{height:44px;width:auto;opacity:.72;filter:grayscale(1) brightness(1.6);transition:opacity .2s;}
.tnx-logos img:hover{opacity:1;}

/* ---- CTA band ---- */
.tnx-cta{max-width:1000px;margin:0 auto;padding:44px 30px;text-align:center;border-radius:var(--tnx-radius);
  background:radial-gradient(700px 260px at 50% 0,rgba(124,127,240,.18),transparent 70%),linear-gradient(180deg,#1a1a23,#15151d);
  border:1px solid var(--tnx-border);}
.tnx-cta h2{margin:0 0 10px;font-size:clamp(24px,3.6vw,34px);color:#fff;font-weight:800;letter-spacing:-.01em;}
.tnx-cta p{margin:0 auto 24px;color:var(--tnx-muted2);max-width:520px;line-height:1.6;}
.tnx-cta .tnx-btn-row{justify-content:center;}

/* ---- scroll reveal (progressive enhancement) ---- */
.tnx-reveal[data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .5s ease;}
.tnx-reveal.is-in{opacity:1;transform:none;}

@media(prefers-reduced-motion:reduce){
  .tnx-page *{transition:none!important;animation:none!important;}
  .tnx-reveal[data-reveal]{opacity:1!important;transform:none!important;}
}

/* ---- footer contact block: phone / email / address on one line ---- */
.elementor-element-8cfc851 .elementor-icon-list-items{display:flex !important;flex-direction:row !important;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 28px;}
.elementor-element-8cfc851 .elementor-icon-list-items > .elementor-icon-list-item{width:auto !important;margin:0 !important;}
