/*
Theme Name: Tryanix
Theme URI: https://tryanix.co.uk/
Author: Tryanix
Description: A clean, consultancy-focused WordPress theme for Tryanix Cyber Security Operations & Resilience.
Version: 1.1.1
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: tryanix
*/

:root {
  --tx-navy: #10184f;
  --tx-midnight: #151b5b;
  --tx-blue: #218fd0;
  --tx-cyan: #2faadd;
  --tx-ice: #f2f8fc;
  --tx-white: #ffffff;
  --tx-charcoal: #273142;
  --tx-muted: #64748b;
  --tx-border: #dbe7f0;
  --tx-shadow: 0 16px 40px rgba(16, 24, 79, .10);
  --tx-radius: 18px;
  --tx-max: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--tx-charcoal);
  background: #fff;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--tx-blue); text-decoration: none; }
a:hover { color: var(--tx-navy); }
img { max-width: 100%; height: auto; }
h1,h2,h3,h4 { color: var(--tx-navy); line-height: 1.15; margin: 0 0 .65em; letter-spacing: -.02em; }
h1 { font-size: clamp(2.6rem, 6vw, 5.4rem); }
h2 { font-size: clamp(2rem, 4vw, 3.4rem); }
h3 { font-size: clamp(1.3rem, 2vw, 1.65rem); }
p { margin: 0 0 1.2rem; }

.tx-container { width: min(var(--tx-max), calc(100% - 40px)); margin: 0 auto; }
.tx-section { padding: 88px 0; }
.tx-section--tight { padding: 64px 0; }
.tx-section--ice { background: var(--tx-ice); }
.tx-section--navy { background: var(--tx-navy); color: rgba(255,255,255,.88); }
.tx-section--navy h2,.tx-section--navy h3 { color: #fff; }
.tx-eyebrow { text-transform: uppercase; font-size: .78rem; letter-spacing: .16em; font-weight: 800; color: var(--tx-blue); margin-bottom: 14px; }
.tx-lead { font-size: clamp(1.15rem, 2vw, 1.35rem); color: #526073; max-width: 800px; }
.tx-section--navy .tx-lead { color: rgba(255,255,255,.78); }
.tx-accent { color: var(--tx-cyan); }

.tx-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.96); backdrop-filter: blur(12px); border-bottom: 1px solid rgba(16,24,79,.07); }
.tx-header__inner { min-height: 86px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.tx-brand { display: flex; align-items: center; }
.tx-brand img { width: 230px; max-height: 64px; object-fit: contain; object-position: left center; }
.tx-nav { display: flex; align-items: center; gap: 26px; }
.tx-nav ul { display: flex; align-items: center; gap: 25px; list-style: none; margin: 0; padding: 0; }
.tx-nav a { color: var(--tx-navy); font-weight: 650; font-size: .96rem; }
.tx-nav .current-menu-item > a { color: var(--tx-blue); }
.tx-menu-toggle { display:none; border:0; background:var(--tx-ice); color:var(--tx-navy); border-radius:10px; padding:10px 12px; font-weight:700; }

.tx-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 999px; padding: 13px 22px; font-weight: 800; transition: .2s ease; border: 1px solid transparent; }
.tx-btn--primary { background: linear-gradient(135deg, var(--tx-blue), var(--tx-cyan)); color: #fff; box-shadow: 0 10px 25px rgba(33,143,208,.26); }
.tx-btn--primary:hover { color:#fff; transform: translateY(-1px); box-shadow: 0 14px 34px rgba(33,143,208,.30); }
.tx-btn--secondary { border-color: rgba(255,255,255,.35); color:#fff; }
.tx-btn--secondary:hover { background:#fff; color:var(--tx-navy); }
.tx-btn--outline { border-color: var(--tx-border); color:var(--tx-navy); background:#fff; }
.tx-btn--outline:hover { border-color:var(--tx-blue); color:var(--tx-blue); }
.tx-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }

.tx-hero { position: relative; overflow: hidden; background: linear-gradient(135deg, #0d1444 0%, #10184f 48%, #13356a 100%); color:#fff; min-height: 650px; display:flex; align-items:center; }
.tx-hero::before { content:""; position:absolute; inset:-20%; background-image: radial-gradient(circle at 72% 30%, rgba(47,170,221,.22), transparent 25%), linear-gradient(90deg, transparent 0 49%, rgba(255,255,255,.035) 50% 51%, transparent 52%); transform: rotate(-7deg); }
.tx-hero::after { content:""; position:absolute; width:620px; height:620px; right:-190px; top:45px; border:1px solid rgba(47,170,221,.22); border-radius:50%; box-shadow: 0 0 0 80px rgba(47,170,221,.04), 0 0 0 160px rgba(47,170,221,.025); }
.tx-hero__inner { position:relative; z-index:2; padding: 90px 0; max-width: 860px; }
.tx-hero h1 { color:#fff; max-width: 900px; }
.tx-hero p { color: rgba(255,255,255,.78); font-size: clamp(1.15rem, 2vw, 1.4rem); max-width: 760px; }
.tx-hero .tx-eyebrow { color:#7bd2f0; }

.tx-grid { display:grid; gap:22px; }
.tx-grid--3 { grid-template-columns: repeat(3, 1fr); }
.tx-grid--2 { grid-template-columns: repeat(2, 1fr); }
.tx-card { background:#fff; border:1px solid var(--tx-border); border-radius:var(--tx-radius); padding:30px; box-shadow: 0 7px 24px rgba(16,24,79,.05); }
.tx-card:hover { box-shadow:var(--tx-shadow); transform:translateY(-2px); transition:.2s ease; }
.tx-card__num { width:42px; height:42px; border-radius:12px; display:grid; place-items:center; background:var(--tx-ice); color:var(--tx-blue); font-weight:900; margin-bottom:22px; }
.tx-card p:last-child { margin-bottom:0; }
.tx-card ul { margin:18px 0 0; padding-left:20px; }
.tx-card li { margin-bottom:7px; }

.tx-process { display:grid; grid-template-columns: repeat(4, 1fr); gap:0; margin-top:38px; border:1px solid var(--tx-border); border-radius:var(--tx-radius); overflow:hidden; background:#fff; }
.tx-process__step { padding:28px; min-height:230px; position:relative; }
.tx-process__step + .tx-process__step { border-left:1px solid var(--tx-border); }
.tx-process__step::after { content:"→"; position:absolute; right:-12px; top:34px; z-index:2; width:24px; height:24px; display:grid; place-items:center; border-radius:50%; background:var(--tx-blue); color:#fff; font-size:.9rem; }
.tx-process__step:last-child::after { display:none; }
.tx-process__step strong { display:block; color:var(--tx-cyan); letter-spacing:.08em; font-size:.8rem; margin-bottom:12px; }
.tx-process__step h3 { margin-bottom:10px; }
.tx-process__step p { color:#5e6a7b; margin:0; }

.tx-band { background: linear-gradient(135deg, var(--tx-blue), #1e72b8); color:#fff; border-radius:24px; padding:44px; display:flex; align-items:center; justify-content:space-between; gap:32px; }
.tx-band h2,.tx-band h3 { color:#fff; margin-bottom:.35em; }
.tx-band p { color:rgba(255,255,255,.82); margin:0; max-width:720px; }

.tx-page-hero { background: linear-gradient(135deg, var(--tx-ice), #fff); border-bottom:1px solid var(--tx-border); padding:85px 0 72px; }
.tx-page-hero h1 { font-size: clamp(2.7rem, 5vw, 4.6rem); }
.tx-page-hero p { font-size:1.25rem; max-width:820px; color:#617084; }

.tx-split { display:grid; grid-template-columns: 1.1fr .9fr; gap:60px; align-items:start; }
.tx-list-clean { list-style:none; padding:0; margin:24px 0 0; }
.tx-list-clean li { padding:13px 0 13px 32px; border-bottom:1px solid var(--tx-border); position:relative; }
.tx-list-clean li::before { content:"✓"; position:absolute; left:0; color:var(--tx-blue); font-weight:900; }
.tx-outcome { margin-top:24px; padding:18px 20px; background:var(--tx-ice); border-left:4px solid var(--tx-blue); border-radius:10px; }
.tx-outcome strong { color:var(--tx-navy); }

.tx-stats { display:grid; grid-template-columns: repeat(4,1fr); gap:18px; margin-top:36px; }
.tx-stat { border:1px solid rgba(255,255,255,.16); border-radius:16px; padding:24px; }
.tx-stat strong { display:block; font-size:1.8rem; color:#fff; }
.tx-stat span { color:rgba(255,255,255,.7); }

.tx-footer { background:#0b113a; color:rgba(255,255,255,.72); padding:56px 0 26px; }
.tx-footer h3 { color:#fff; }
.tx-footer__grid { display:grid; grid-template-columns: 1.4fr .8fr .8fr; gap:50px; }
.tx-footer a { color:rgba(255,255,255,.82); }
.tx-footer a:hover { color:#fff; }
.tx-footer ul { list-style:none; margin:0; padding:0; }
.tx-footer li { margin-bottom:9px; }
.tx-footer__bottom { margin-top:42px; padding-top:22px; border-top:1px solid rgba(255,255,255,.11); display:flex; justify-content:space-between; gap:20px; font-size:.9rem; }
.tx-footer__brand { color:#fff; font-size:1.55rem; font-weight:800; letter-spacing:.18em; margin-bottom:18px; }

.tx-content > *:first-child { margin-top:0; }
.tx-content > *:last-child { margin-bottom:0; }
.tx-spacer { height:20px; }

@media (max-width: 900px) {
  .tx-grid--3,.tx-grid--2,.tx-process,.tx-split,.tx-stats,.tx-footer__grid { grid-template-columns:1fr; }
  .tx-process__step + .tx-process__step { border-left:0; border-top:1px solid var(--tx-border); }
  .tx-process__step::after { display:none; }
  .tx-nav ul { display:none; position:absolute; left:20px; right:20px; top:78px; background:#fff; padding:20px; border:1px solid var(--tx-border); border-radius:14px; box-shadow:var(--tx-shadow); flex-direction:column; align-items:flex-start; }
  .tx-nav.tx-open ul { display:flex; }
  .tx-menu-toggle { display:block; }
  .tx-nav > .tx-btn { display:none; }
  .tx-band { flex-direction:column; align-items:flex-start; }
  .tx-hero { min-height:560px; }
}
@media (max-width: 580px) {
  .tx-container { width:min(var(--tx-max), calc(100% - 28px)); }
  .tx-section { padding:66px 0; }
  .tx-header__inner { min-height:74px; }
  .tx-brand img { width:190px; }
  .tx-hero__inner { padding:70px 0; }
  .tx-card { padding:24px; }
  .tx-band { padding:30px; }
  .tx-footer__bottom { flex-direction:column; }
}


/* v1.1 refinements */
.tx-sector-line { margin: 22px 0 24px; color: var(--tx-navy); font-weight: 750; line-height: 1.9; }
.tx-sector-line span { color: var(--tx-cyan); padding: 0 .35rem; }
.tx-sector-line--hero { max-width: 900px; font-size: 1rem !important; }
.tx-home-statement { font-size: clamp(1.8rem, 3vw, 2.7rem); }
.tx-contact-note { margin-top: 28px; color: var(--tx-muted); font-size: .93rem; }
.tx-contact-hero { display:grid; grid-template-columns: 1.15fr .85fr; gap: 56px; align-items:center; }
.tx-contact-art { position:relative; min-height:320px; border-radius:28px; overflow:hidden; background:linear-gradient(135deg, #10184f 0%, #153a74 58%, #218fd0 100%); box-shadow:var(--tx-shadow); }
.tx-contact-art::before, .tx-contact-art::after { content:""; position:absolute; border:1px solid rgba(255,255,255,.16); border-radius:50%; }
.tx-contact-art::before { width:260px; height:260px; right:-60px; top:-55px; box-shadow:0 0 0 48px rgba(255,255,255,.03),0 0 0 96px rgba(255,255,255,.02); }
.tx-contact-art::after { width:190px; height:190px; left:-55px; bottom:-70px; }
.tx-contact-art__core { position:absolute; inset:0; display:grid; place-items:center; color:#fff; font-size:1.3rem; font-weight:850; letter-spacing:.18em; z-index:3; }
.tx-node { position:absolute; width:13px; height:13px; border-radius:50%; background:#fff; box-shadow:0 0 0 6px rgba(255,255,255,.1); z-index:2; }
.tx-node::after { content:""; position:absolute; height:1px; width:110px; background:rgba(255,255,255,.45); left:12px; top:6px; transform-origin:left center; }
.tx-node--1 { left:18%; top:24%; }.tx-node--1::after{transform:rotate(24deg)}
.tx-node--2 { right:18%; top:22%; }.tx-node--2::after{width:95px;left:auto;right:12px;transform-origin:right center;transform:rotate(-26deg)}
.tx-node--3 { left:20%; bottom:24%; }.tx-node--3::after{transform:rotate(-24deg)}
.tx-node--4 { right:18%; bottom:22%; }.tx-node--4::after{width:95px;left:auto;right:12px;transform-origin:right center;transform:rotate(26deg)}
.tx-node--5 { left:50%; top:15%; }.tx-node--5::after{width:95px;transform:rotate(90deg)}
@media (max-width:900px){.tx-contact-hero{grid-template-columns:1fr}.tx-contact-art{min-height:260px}.tx-sector-line{line-height:2.1}}
