/*
Theme Name: IoTVPN
Theme URI: https://iotvpn.co.uk
Author: Peter Green
Description: Custom theme for iotvpn.co.uk. No page builder - one template per content type, paired with the IoTVPN Knowledge Graph plugin. System font stacks only (no external font requests).
Version: 1.0.0
Requires PHP: 7.4
Text Domain: iotvpn-theme
*/

/* ---------- Design tokens ---------- */
:root {
	--navy: #0B1220;
	--navy-light: #16243B;
	--signal-blue: #3D8BFD;
	--verified-amber: #F5A623;
	--paper: #F7F8FA;
	--ink: #1B2230;
	--line: #E2E5EA;
	--white: #FFFFFF;

	--font-display: "Segoe UI Semibold", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, Helvetica, Arial, sans-serif;
	--font-body: "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, Helvetica, Arial, sans-serif;
	--font-mono: ui-monospace, "Cascadia Mono", "Segoe UI Mono", Consolas, "SFMono-Regular", Menlo, monospace;

	--content-width: 880px;
	--wide-width: 1120px;
	--radius: 6px;
}

* { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	font-family: var(--font-body);
	color: var(--ink);
	background: var(--paper);
	line-height: 1.6;
	font-size: 17px;
}

a { color: var(--signal-blue); text-decoration: none; }
a:hover { text-decoration: underline; }

h1, h2, h3, h4 {
	font-family: var(--font-display);
	line-height: 1.25;
	color: var(--navy);
	margin: 1.6em 0 0.6em;
}
h1 { font-size: 2.1rem; margin-top: 0; }
h2 { font-size: 1.5rem; border-top: 1px solid var(--line); padding-top: 1.2em; }
h3 { font-size: 1.15rem; }

p { margin: 0 0 1.1em; }
ul, ol { margin: 0 0 1.1em; padding-left: 1.4em; }
li { margin-bottom: 0.4em; }

code {
	font-family: var(--font-mono);
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: 4px;
	padding: 0.1em 0.4em;
	font-size: 0.9em;
}

img { max-width: 100%; height: auto; border-radius: var(--radius); }

.iotvpn-wrap { max-width: var(--content-width); margin: 0 auto; padding: 0 20px; }
.iotvpn-wrap--wide { max-width: var(--wide-width); }

/* ---------- Header ---------- */
.iotvpn-header {
	background: var(--navy);
	color: var(--white);
}
.iotvpn-header__inner {
	max-width: var(--wide-width);
	margin: 0 auto;
	padding: 18px 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
}
.iotvpn-logo {
	font-family: var(--font-display);
	font-size: 1.25rem;
	color: var(--white);
	font-weight: 600;
	letter-spacing: 0.01em;
}
.iotvpn-logo:hover { text-decoration: none; color: var(--white); opacity: 0.9; }
.iotvpn-nav ul {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	margin: 0;
	padding: 0;
}
.iotvpn-nav a {
	color: #C9D4E5;
	font-size: 0.95rem;
}
.iotvpn-nav a:hover { color: var(--white); }

/* ---------- Hero (front page) ---------- */
.iotvpn-hero {
	background: var(--navy);
	color: var(--white);
	padding: 64px 0 56px;
}
.iotvpn-hero h1 {
	color: var(--white);
	font-size: 2.6rem;
	max-width: 14ch;
}
.iotvpn-hero p.lede {
	font-size: 1.15rem;
	color: #C9D4E5;
	max-width: 56ch;
}
.iotvpn-hero-status {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 28px;
	padding-top: 24px;
	border-top: 1px solid rgba(255,255,255,0.12);
}
.iotvpn-hero-status__label {
	font-family: var(--font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	color: #8FA3C4;
	margin-bottom: 8px;
	width: 100%;
}

/* ---------- Status chip (signature element) ---------- */
.iotvpn-chip {
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	font-family: var(--font-mono);
	font-size: 0.82rem;
	background: var(--navy-light);
	color: var(--white);
	border-radius: 4px;
	padding: 5px 10px;
	border-left: 3px solid var(--signal-blue);
}
.iotvpn-chip--amber { border-left-color: var(--verified-amber); }
.iotvpn-chip--blue { border-left-color: var(--signal-blue); }
.iotvpn-chip__label { color: #93A6C4; letter-spacing: 0.05em; font-size: 0.72rem; }
.iotvpn-chip__value { color: var(--white); font-weight: 600; }

/* Chips on a light background (article body, cards) need dark-on-light styling. */
.iotvpn-chip-row {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 18px 0 28px;
}
.iotvpn-chip-row .iotvpn-chip {
	background: var(--white);
	border: 1px solid var(--line);
	border-left: 3px solid var(--signal-blue);
	color: var(--ink);
}
.iotvpn-chip-row .iotvpn-chip__label { color: #6B7280; }
.iotvpn-chip-row .iotvpn-chip__value { color: var(--ink); }
.iotvpn-chip-row .iotvpn-chip--amber { border-left-color: var(--verified-amber); }

/* ---------- Cards / grids ---------- */
.iotvpn-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 16px;
	margin: 24px 0 40px;
}
.iotvpn-card {
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 18px;
}
.iotvpn-card h3 { margin-top: 0; font-size: 1.05rem; }
.iotvpn-card a { color: var(--navy); font-weight: 600; }
.iotvpn-card a:hover { color: var(--signal-blue); }
.iotvpn-card p { color: #4B5563; font-size: 0.95rem; margin-bottom: 0; }

/* ---------- Article body ---------- */
.iotvpn-article {
	background: var(--white);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 36px 40px;
	margin: 28px 0;
}
.iotvpn-eyebrow {
	font-family: var(--font-mono);
	font-size: 0.78rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--signal-blue);
	margin-bottom: 10px;
	display: block;
}

/* ---------- Security / backup box ---------- */
.iotvpn-sb-box {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
	background: var(--paper);
	border: 1px solid var(--line);
	border-left: 4px solid var(--verified-amber);
	border-radius: var(--radius);
	padding: 20px 22px;
	margin: 24px 0;
}
.iotvpn-sb-box__item h3 { margin-top: 0; font-size: 1rem; }
.iotvpn-sb-box__item p:last-child { margin-bottom: 0; }
@media (max-width: 640px) {
	.iotvpn-sb-box { grid-template-columns: 1fr; }
}

/* ---------- FAQ ---------- */
.iotvpn-faq__item { margin-bottom: 18px; }
.iotvpn-faq__item h3 { font-size: 1.02rem; margin-bottom: 4px; }
.iotvpn-faq__item p { color: #374151; }

/* ---------- Related content ---------- */
.iotvpn-related {
	background: var(--navy);
	color: var(--white);
	border-radius: var(--radius);
	padding: 24px 26px;
	margin: 28px 0;
}
.iotvpn-related__group { margin-bottom: 16px; }
.iotvpn-related__group:last-child { margin-bottom: 0; }
.iotvpn-related h3 {
	color: #93A6C4;
	font-size: 0.78rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-family: var(--font-mono);
	margin: 0 0 8px;
}
.iotvpn-related ul { list-style: none; padding: 0; margin: 0; }
.iotvpn-related li { margin-bottom: 6px; }
.iotvpn-related a { color: var(--white); font-weight: 600; }
.iotvpn-related a:hover { color: var(--signal-blue); }

/* ---------- Footer ---------- */
.iotvpn-footer {
	background: var(--navy);
	color: #8FA3C4;
	margin-top: 60px;
	padding: 36px 0;
	font-size: 0.9rem;
}
.iotvpn-footer a { color: #C9D4E5; }
.iotvpn-footer__inner {
	max-width: var(--wide-width);
	margin: 0 auto;
	padding: 0 20px;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
}

/* ---------- Archive pages ---------- */
.iotvpn-archive-header { padding: 40px 0 10px; }
.iotvpn-archive-header h1 { margin-bottom: 6px; }
.iotvpn-archive-header p { color: #4B5563; }

/* ---------- Utility ---------- */
.iotvpn-meta-row { color: #6B7280; font-size: 0.9rem; margin-bottom: 4px; }
.iotvpn-affiliate-note { font-size: 0.85rem; color: #6B7280; margin-top: 4px; }
