/*
Theme Name: Sunistemi
Theme URI: https://sunistemi.com
Author: Sunistemi
Description: AI news aggregator, tool directory and consulting marketing site. Solar-technical design system: white field, charcoal type, amber signal accents, burnt-orange CTAs, mission-control detailing.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sunistemi
*/

/* =====================================================================
   COLORS & FONTS: every color below is a CSS variable (--sun-*).
   The actual hex values are printed into the <head> by
   inc/branding.php — edit THAT file to rebrand, not this one.

   Accessibility notes (WCAG AA):
   - Body text on white uses --sun-ink or --sun-grey-text (4.5:1+).
   - Small links use --sun-ember-text (5.4:1); bright --sun-ember is
     reserved for buttons, hovers and large display text (3:1+ large).
   - --sun-amber never colors text on white (2:1) — it is used for
     icons, borders, dots, and text on charcoal panels (9.4:1).
   ===================================================================== */

/* ---------------------------------------------------------------------
   1. RESET & BASE
   ------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

body {
	margin: 0;
	background: var(--sun-paper);
	color: var(--sun-ink);
	font-family: var(--sun-font-sans);
	font-size: 1rem;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; }

a { color: var(--sun-ember-text); text-decoration: none; }
a:hover { color: var(--sun-ember); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }

:focus-visible { outline: 2px solid var(--sun-ember); outline-offset: 2px; }

h1, h2, h3, h4 { line-height: 1.15; margin: 0 0 0.5em; font-weight: 700; letter-spacing: -0.01em; }

/* Precise, mechanical motion — and none at all if the visitor asks. */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Accessible hiding (skip link, form labels). */
.screen-reader-text {
	position: absolute; width: 1px; height: 1px;
	margin: -1px; padding: 0; overflow: hidden;
	clip: rect(0 0 0 0); clip-path: inset(50%); border: 0; white-space: nowrap;
}
a.screen-reader-text:focus {
	position: fixed; top: 8px; left: 8px; z-index: 999;
	width: auto; height: auto; clip: auto; clip-path: none;
	background: var(--sun-ink); color: var(--sun-amber);
	padding: 10px 16px; font-family: var(--sun-font-mono); font-size: 0.8rem;
}

/* Honeypot field — hidden from humans, visible to bots. */
.sun-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }

/* ---------------------------------------------------------------------
   2. LAYOUT PRIMITIVES
   ------------------------------------------------------------------- */
.sun-container { width: 100%; max-width: 1180px; margin-inline: auto; padding-inline: 20px; }

/* Subtle engineering-grid texture (light + dark variants). */
.sun-texture {
	background-image:
		linear-gradient(rgba(17, 17, 17, 0.04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(17, 17, 17, 0.04) 1px, transparent 1px);
	background-size: 48px 48px;
}
.sun-texture-dark {
	background-color: var(--sun-ink);
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
	background-size: 48px 48px;
}

/* Radial sun-glow divider — the one soft element, used sparingly. */
.sun-divider-radial {
	height: 2px;
	background: radial-gradient(ellipse 60% 100% at 50% 50%, var(--sun-amber), transparent 75%);
}

/* Amber status dot: square, blinking in steps (mechanical, no fade). */
.sun-dot {
	display: inline-block; width: 8px; height: 8px;
	background: var(--sun-amber);
	animation: sun-blink 1.6s steps(2, end) infinite;
}
@keyframes sun-blink { 50% { opacity: 0.25; } }

/* Small solid amber square — bullet/accent glyph. */
.sun-square { display: inline-block; width: 10px; height: 10px; background: var(--sun-amber); }

/* Monospace micro-labels — the mission-control voice. */
.sun-mono-label {
	display: inline-flex; align-items: center; gap: 8px;
	font-family: var(--sun-font-mono);
	font-size: 0.72rem; font-weight: 600;
	letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--sun-grey-text);
}
.sun-mono-label--amber { color: var(--sun-amber); }

.sun-timestamp {
	font-family: var(--sun-font-mono);
	font-size: 0.72rem; letter-spacing: 0.08em;
	color: var(--sun-grey-text); white-space: nowrap;
}

/* ---------------------------------------------------------------------
   3. BUTTONS
   ------------------------------------------------------------------- */
.sun-btn {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 12px 22px;
	border: 1px solid var(--sun-ink); border-radius: 0;
	background: var(--sun-paper); color: var(--sun-ink);
	font-family: var(--sun-font-mono); font-size: 0.8rem; font-weight: 600;
	letter-spacing: 0.1em; text-transform: uppercase; line-height: 1;
	cursor: pointer; text-decoration: none;
	transition: background-color 0.15s linear, color 0.15s linear, box-shadow 0.15s linear, border-color 0.15s linear;
}
.sun-btn:hover {
	background: var(--sun-ink); color: var(--sun-amber);
	text-decoration: none;
	box-shadow: 0 3px 0 0 var(--sun-amber); /* amber underglow */
}
.sun-btn--primary { background: var(--sun-ember); border-color: var(--sun-ember); color: var(--sun-ink); }
.sun-btn--primary:hover { background: var(--sun-ink); border-color: var(--sun-ink); color: var(--sun-amber); }
.sun-btn--dark { background: transparent; border-color: var(--sun-grey); color: var(--sun-paper); }
.sun-btn--dark:hover { border-color: var(--sun-amber); }
.sun-btn:disabled { opacity: 0.5; cursor: not-allowed; }

/* ---------------------------------------------------------------------
   4. HEADER
   ------------------------------------------------------------------- */
.sun-header {
	position: sticky; top: 0; z-index: 50;
	background: var(--sun-paper);
	border-bottom: 1px solid var(--sun-line);
}
.sun-header-inner { display: flex; align-items: center; gap: 16px; min-height: 64px; }

.sun-logo { display: inline-flex; align-items: center; gap: 10px; color: var(--sun-ink); }
.sun-logo:hover { text-decoration: none; color: var(--sun-ink); }
.sun-logo-word {
	font-family: var(--sun-font-mono); font-weight: 600;
	font-size: 1.05rem; letter-spacing: 0.18em;
}
.custom-logo { max-height: 40px; width: auto; }

.sun-live {
	display: none; align-items: center; gap: 7px;
	font-family: var(--sun-font-mono); font-size: 0.68rem; font-weight: 600;
	letter-spacing: 0.16em; color: var(--sun-grey-text);
	border: 1px solid var(--sun-line); padding: 5px 9px;
}

.sun-nav-toggle {
	margin-left: auto;
	background: none; border: 1px solid var(--sun-ink); border-radius: 0;
	padding: 9px 14px; cursor: pointer;
}
.sun-nav-toggle-label {
	font-family: var(--sun-font-mono); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.14em;
}

.sun-nav { display: none; }
.sun-nav.is-open {
	display: block;
	position: absolute; top: 100%; left: 0; right: 0;
	background: var(--sun-paper); border-bottom: 2px solid var(--sun-ink);
	padding: 12px 20px 20px;
}
.sun-menu { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.sun-menu a {
	display: block; padding: 10px 4px;
	font-family: var(--sun-font-mono); font-size: 0.85rem; font-weight: 500;
	letter-spacing: 0.1em; text-transform: uppercase;
	color: var(--sun-ink); border-bottom: 1px solid var(--sun-line);
}
.sun-menu a:hover { color: var(--sun-ember); text-decoration: none; box-shadow: inset 0 -2px 0 0 var(--sun-amber); }
.sun-header-cta { margin-top: 14px; }

@media (min-width: 880px) {
	.sun-live { display: inline-flex; }
	.sun-nav-toggle { display: none; }
	.sun-nav { display: flex; align-items: center; gap: 22px; margin-left: auto; }
	.sun-menu { flex-direction: row; gap: 4px; }
	.sun-menu a { border-bottom: 0; padding: 8px 10px; font-size: 0.78rem; }
	.sun-header-cta { margin-top: 0; }
}

/* ---------------------------------------------------------------------
   5. HERO
   ------------------------------------------------------------------- */
.sun-hero { padding: 56px 0 48px; border-bottom: 1px solid var(--sun-line); }
.sun-kicker {
	display: flex; align-items: center; gap: 10px; margin: 0 0 18px;
	font-family: var(--sun-font-mono); font-size: 0.75rem; font-weight: 600;
	letter-spacing: 0.18em; text-transform: uppercase; color: var(--sun-grey-text);
}
.sun-hero-title {
	font-size: clamp(2.1rem, 6vw, 4rem);
	letter-spacing: -0.02em; max-width: 18ch; margin-bottom: 0.35em;
}
.sun-hero-sub { max-width: 56ch; color: var(--sun-grey-text); font-size: 1.05rem; margin: 0 0 26px; }
.sun-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* Counters: charcoal instrument panel with amber mono digits. */
.sun-counters {
	display: grid; grid-template-columns: 1fr; gap: 1px;
	margin-top: 40px; background: var(--sun-line); border: 1px solid var(--sun-ink);
}
.sun-counter { background: var(--sun-ink); padding: 20px 22px; }
.sun-counter-num {
	display: block; font-family: var(--sun-font-mono);
	font-size: 2rem; font-weight: 600; color: var(--sun-amber);
	font-variant-numeric: tabular-nums;
}
.sun-counter-status {
	display: flex; align-items: center; gap: 10px;
	font-family: var(--sun-font-mono); font-size: 1.05rem; font-weight: 600;
	letter-spacing: 0.1em; color: var(--sun-amber); padding: 8px 0;
}
.sun-counter-label {
	display: block; margin-top: 4px;
	font-family: var(--sun-font-mono); font-size: 0.68rem;
	letter-spacing: 0.16em; color: var(--sun-grey);
}
@media (min-width: 700px) { .sun-counters { grid-template-columns: repeat(3, 1fr); } }

/* ---------------------------------------------------------------------
   6. SECTIONS
   ------------------------------------------------------------------- */
.sun-section { padding: 56px 0; }
.sun-section--alt { border-top: 1px solid var(--sun-line); border-bottom: 1px solid var(--sun-line); }
.sun-section--dark { background: var(--sun-ink); color: var(--sun-paper); }
.sun-section--dark .sun-section-title { color: var(--sun-paper); }

.sun-section-head {
	display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 18px;
	margin-bottom: 26px; padding-bottom: 14px;
	border-bottom: 2px solid var(--sun-ink);
	position: relative;
}
.sun-section--dark .sun-section-head { border-bottom-color: var(--sun-grey); }
.sun-section-head::after { /* amber tick on the section rule */
	content: ""; position: absolute; left: 0; bottom: -2px;
	width: 56px; height: 2px; background: var(--sun-amber);
}
.sun-section-head .sun-mono-label { flex-basis: 100%; }
.sun-section-title { font-size: clamp(1.5rem, 3.4vw, 2.1rem); margin: 0; }
.sun-section-link {
	margin-left: auto; font-family: var(--sun-font-mono);
	font-size: 0.78rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase;
}
.sun-section-link--dark { color: var(--sun-amber); }
.sun-sub-title { font-size: 1.25rem; margin: 40px 0 16px; }

.sun-page-head { padding: 44px 0 34px; border-bottom: 1px solid var(--sun-line); }
.sun-page-title { font-size: clamp(1.8rem, 4.5vw, 2.8rem); margin: 10px 0; }
.sun-archive-body { padding-top: 34px; padding-bottom: 56px; }

.sun-empty {
	font-family: var(--sun-font-mono); font-size: 0.9rem;
	color: var(--sun-grey-text);
	border: 1px dashed var(--sun-grey); padding: 26px; text-align: center;
}
.sun-empty--dark { color: var(--sun-grey); border-color: var(--sun-grey); }

/* ---------------------------------------------------------------------
   7. CARD GRIDS & CARDS (corner brackets + amber underglow on hover)
   ------------------------------------------------------------------- */
.sun-grid { display: grid; grid-template-columns: 1fr; gap: 18px; }
@media (min-width: 640px) { .sun-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 980px) {
	.sun-grid { grid-template-columns: repeat(3, 1fr); }
	.sun-grid--videos { grid-template-columns: repeat(4, 1fr); }
}

.sun-card {
	position: relative;
	display: flex; flex-direction: column; gap: 12px;
	background: var(--sun-paper);
	border: 1px solid var(--sun-line); border-radius: 0;
	padding: 20px;
	transition: border-color 0.15s linear, box-shadow 0.15s linear, transform 0.15s linear;
}
.sun-card::before, .sun-card::after { /* corner brackets, amber, on hover */
	content: ""; position: absolute; width: 12px; height: 12px;
	border: 0 solid var(--sun-amber); opacity: 0; pointer-events: none;
	transition: opacity 0.15s linear;
}
.sun-card::before { top: -1px; left: -1px; border-top-width: 2px; border-left-width: 2px; }
.sun-card::after { bottom: -1px; right: -1px; border-bottom-width: 2px; border-right-width: 2px; }
.sun-card:hover {
	border-color: var(--sun-ink);
	transform: translateY(-2px);
	box-shadow: 0 12px 22px -14px rgba(242, 169, 0, 0.55); /* amber underglow */
}
.sun-card:hover::before, .sun-card:hover::after { opacity: 1; }

.sun-card-meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.sun-card-title { font-size: 1.1rem; margin: 0; }
.sun-card-title a { color: var(--sun-ink); }
.sun-card-title a:hover { color: var(--sun-ember); text-decoration: none; box-shadow: inset 0 -2px 0 0 var(--sun-amber); }
.sun-card-excerpt { margin: 0; color: var(--sun-grey-text); font-size: 0.92rem; }

.sun-chip-row { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.sun-chip {
	display: inline-block; padding: 3px 8px;
	border: 1px solid var(--sun-line);
	font-family: var(--sun-font-mono); font-size: 0.66rem; font-weight: 600;
	letter-spacing: 0.1em; text-transform: uppercase;
	color: var(--sun-grey-text);
}
.sun-chip:hover { border-color: var(--sun-amber); color: var(--sun-ink); text-decoration: none; }

.sun-badge {
	display: inline-block; padding: 2px 7px; vertical-align: middle;
	font-family: var(--sun-font-mono); font-size: 0.62rem; font-weight: 600;
	letter-spacing: 0.12em;
}
.sun-badge--new { background: var(--sun-amber); color: var(--sun-ink); }

.sun-source-link {
	margin-top: auto;
	font-family: var(--sun-font-mono); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.1em;
}

/* News-feed live refresh pill (injected by main.js). */
.sun-live-pill {
	display: block; width: 100%; margin: 0 0 16px; padding: 12px;
	background: var(--sun-ink); color: var(--sun-amber);
	border: 0; cursor: pointer;
	font-family: var(--sun-font-mono); font-size: 0.78rem; font-weight: 600;
	letter-spacing: 0.12em; text-transform: uppercase;
}
.sun-live-pill:hover { box-shadow: 0 3px 0 0 var(--sun-amber); }

/* ---------------------------------------------------------------------
   8. TOOL CARDS, STARS, VOTES
   ------------------------------------------------------------------- */
.sun-tool-top { display: flex; gap: 14px; align-items: flex-start; }
.sun-tool-thumb {
	flex: 0 0 48px; width: 48px; height: 48px;
	display: flex; align-items: center; justify-content: center;
	border: 1px solid var(--sun-line); background: var(--sun-paper); overflow: hidden;
}
.sun-tool-thumb img { width: 100%; height: 100%; object-fit: cover; }
.sun-tool-heading { min-width: 0; }

.sun-stars { position: relative; display: inline-block; line-height: 0; }
.sun-stars-base, .sun-stars-fill { display: inline-flex; gap: 2px; }
.sun-stars-base svg { fill: var(--sun-line); }
.sun-stars-fill { position: absolute; top: 0; left: 0; overflow: hidden; white-space: nowrap; }
.sun-stars-fill svg { fill: var(--sun-amber); }

.sun-tool-stats { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }

.sun-vote { display: inline-flex; align-items: center; gap: 6px; }
.sun-vote.is-busy { opacity: 0.6; }
.sun-vote-btn {
	width: 28px; height: 24px;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--sun-paper); border: 1px solid var(--sun-line); border-radius: 0;
	cursor: pointer; transition: border-color 0.15s linear, background-color 0.15s linear;
}
.sun-vote-btn svg { fill: var(--sun-grey-text); }
.sun-vote-btn:hover { border-color: var(--sun-ink); }
.sun-vote-btn.is-active { background: var(--sun-ink); border-color: var(--sun-ink); }
.sun-vote-btn.is-active svg { fill: var(--sun-amber); }
.sun-vote-score {
	min-width: 2ch; text-align: center;
	font-family: var(--sun-font-mono); font-size: 0.85rem; font-weight: 600;
	font-variant-numeric: tabular-nums;
}

.sun-tool-actions {
	display: flex; align-items: center; justify-content: space-between; gap: 10px;
	margin-top: auto; padding-top: 12px; border-top: 1px solid var(--sun-line);
}
.sun-compare-check {
	display: inline-flex; align-items: center; gap: 7px; cursor: pointer;
	font-family: var(--sun-font-mono); font-size: 0.7rem; font-weight: 600; letter-spacing: 0.12em;
	color: var(--sun-grey-text);
}
.sun-compare-check input { accent-color: var(--sun-ember); width: 14px; height: 14px; }
.sun-visit-link { font-family: var(--sun-font-mono); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.1em; }

/* ---------------------------------------------------------------------
   9. FILTER BARS & FORMS
   ------------------------------------------------------------------- */
.sun-filterbar { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; }
.sun-filter-btn {
	padding: 7px 13px;
	background: var(--sun-paper); border: 1px solid var(--sun-line); border-radius: 0;
	font-family: var(--sun-font-mono); font-size: 0.7rem; font-weight: 600;
	letter-spacing: 0.12em; color: var(--sun-grey-text);
	cursor: pointer; transition: border-color 0.15s linear, color 0.15s linear;
}
.sun-filter-btn:hover { border-color: var(--sun-ink); color: var(--sun-ink); text-decoration: none; }
.sun-filter-btn.is-active {
	background: var(--sun-ink); border-color: var(--sun-ink); color: var(--sun-amber);
	box-shadow: 0 2px 0 0 var(--sun-amber);
}

input[type="search"], input[type="text"], input[type="email"], select, textarea {
	padding: 11px 14px;
	background: var(--sun-paper);
	border: 1px solid var(--sun-grey); border-radius: 0;
	font-family: var(--sun-font-mono); font-size: 0.88rem; color: var(--sun-ink);
}
input:focus, select:focus, textarea:focus { border-color: var(--sun-ink); }
::placeholder { color: var(--sun-grey-text); opacity: 1; }

.sun-toolbar { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.sun-toolbar input[type="search"] { flex: 1 1 220px; }
.sun-searchform { display: flex; gap: 10px; flex-wrap: wrap; margin: 20px 0; }
.sun-searchform input { flex: 1 1 240px; }

/* WordPress pagination. */
.pagination, .navigation { margin: 34px 0 0; }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.nav-links .page-numbers {
	padding: 8px 13px; border: 1px solid var(--sun-line);
	font-family: var(--sun-font-mono); font-size: 0.8rem; color: var(--sun-ink);
}
.nav-links .page-numbers.current { background: var(--sun-ink); color: var(--sun-amber); border-color: var(--sun-ink); }
.nav-links a.page-numbers:hover { border-color: var(--sun-ink); text-decoration: none; }

/* ---------------------------------------------------------------------
   10. COMPARE: TRAY + TABLE
   ------------------------------------------------------------------- */
.sun-compare-tray {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
	display: flex; flex-wrap: wrap; align-items: center; gap: 12px;
	background: var(--sun-ink); color: var(--sun-paper);
	border-top: 2px solid var(--sun-amber);
	padding: 12px 20px 12px;
	padding-right: 96px; /* keep clear of the ASSIST button */
}
.sun-compare-items { font-family: var(--sun-font-mono); font-size: 0.78rem; letter-spacing: 0.04em; }
.sun-compare-go.is-disabled { opacity: 0.45; cursor: not-allowed; }
.sun-compare-clear {
	background: none; border: 0; padding: 4px; cursor: pointer;
	color: var(--sun-grey); font-family: var(--sun-font-mono);
	font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; text-decoration: underline;
}
.sun-compare-clear:hover { color: var(--sun-amber); }

.sun-table-scroll { overflow-x: auto; border: 1px solid var(--sun-ink); }
.sun-compare-table { width: 100%; min-width: 640px; border-collapse: collapse; }
.sun-compare-table th, .sun-compare-table td {
	padding: 14px 16px; text-align: left; vertical-align: top;
	border-bottom: 1px solid var(--sun-line); border-right: 1px solid var(--sun-line);
	font-size: 0.92rem;
}
.sun-compare-table thead th { background: var(--sun-ink); color: var(--sun-paper); border-right-color: var(--sun-grey); }
.sun-compare-table tbody th {
	font-family: var(--sun-font-mono); font-size: 0.68rem; font-weight: 600;
	letter-spacing: 0.14em; color: var(--sun-grey-text); white-space: nowrap;
}
.sun-compare-toolname { color: var(--sun-amber); font-size: 1rem; }
.sun-compare-toolname:hover { color: var(--sun-amber); }
.sun-compare-score { font-family: var(--sun-font-mono); font-weight: 600; font-size: 1.1rem; }
.sun-compare-table .sun-feature-list { margin: 0; }

/* ---------------------------------------------------------------------
   11. VIDEOS
   ------------------------------------------------------------------- */
.sun-video-thumb {
	position: relative; display: block; width: 100%;
	padding: 0; border: 0; cursor: pointer; background: var(--sun-ink);
	aspect-ratio: 16 / 9; overflow: hidden;
}
.sun-video-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sun-play {
	position: absolute; inset: 0; margin: auto;
	width: 52px; height: 40px;
	display: flex; align-items: center; justify-content: center;
	background: var(--sun-ink); border: 1px solid var(--sun-amber);
	transition: background-color 0.15s linear;
}
.sun-play svg { fill: var(--sun-amber); }
.sun-video-thumb:hover .sun-play { background: var(--sun-ember); }
.sun-video-frame { width: 100%; aspect-ratio: 16 / 9; border: 0; display: block; }
.sun-card-title--video { font-size: 0.98rem; }

.sun-carousel-wrap { position: relative; }
.sun-carousel {
	display: flex; gap: 16px;
	overflow-x: auto; scroll-snap-type: x mandatory;
	padding-bottom: 8px; scrollbar-width: thin;
}
.sun-carousel .sun-card--video { flex: 0 0 280px; scroll-snap-align: start; }
.sun-carousel-btn {
	position: absolute; top: 34%; z-index: 5;
	width: 40px; height: 40px;
	background: var(--sun-ink); color: var(--sun-amber);
	border: 1px solid var(--sun-amber); border-radius: 0;
	font-size: 1rem; cursor: pointer;
}
.sun-carousel-btn:hover { background: var(--sun-ember); color: var(--sun-ink); }
.sun-carousel-btn[data-carousel-prev] { left: -8px; }
.sun-carousel-btn[data-carousel-next] { right: -8px; }

/* ---------------------------------------------------------------------
   12. ARTICLES / COMMENTARY
   ------------------------------------------------------------------- */
.sun-articles { display: grid; grid-template-columns: 1fr; gap: 18px; }
@media (min-width: 900px) {
	.sun-articles { grid-template-columns: repeat(2, 1fr); }
	.sun-card--feature { grid-row: span 2; }
}
.sun-articles--list { grid-template-columns: 1fr; max-width: 820px; }
.sun-article-thumb img, .sun-article-cover img { display: block; width: 100%; }
.sun-article-cover { margin: 0 0 28px; border: 1px solid var(--sun-line); }

.sun-byline { display: inline-flex; align-items: center; gap: 9px; margin-top: auto; }
.sun-byline img { border-radius: 0; }
.sun-byline-name { font-family: var(--sun-font-mono); font-size: 0.75rem; letter-spacing: 0.06em; color: var(--sun-grey-text); }
.sun-byline--head { display: flex; margin-top: 8px; gap: 12px; }

.sun-author-box {
	display: flex; gap: 18px; align-items: flex-start;
	margin-top: 44px; padding: 22px;
	border: 1px solid var(--sun-ink);
	border-left: 4px solid var(--sun-amber);
}
.sun-author-name { margin: 4px 0 6px; font-size: 1.05rem; }
.sun-author-bio { margin: 0; color: var(--sun-grey-text); font-size: 0.92rem; }

.sun-post-nav { display: flex; justify-content: space-between; gap: 16px; margin-top: 36px; flex-wrap: wrap; }
.sun-post-nav a { font-family: var(--sun-font-mono); font-size: 0.8rem; }

/* Long-form typography for article/page/tool content. */
.sun-prose { max-width: 720px; }
.sun-prose h2, .sun-prose h3 { margin-top: 1.6em; }
.sun-prose h2 { font-size: 1.45rem; padding-bottom: 8px; border-bottom: 1px solid var(--sun-line); }
.sun-prose p, .sun-prose li { font-size: 1.02rem; }
.sun-prose img { border: 1px solid var(--sun-line); }
.sun-prose blockquote {
	margin: 1.4em 0; padding: 4px 0 4px 20px;
	border-left: 3px solid var(--sun-amber);
	color: var(--sun-grey-text); font-style: normal;
}
.sun-prose code, .sun-prose pre { font-family: var(--sun-font-mono); font-size: 0.9em; background: var(--sun-line); }
.sun-prose pre { padding: 16px; overflow-x: auto; }
.sun-prose code { padding: 1px 5px; }
.sun-prose pre code { padding: 0; background: none; }

/* ---------------------------------------------------------------------
   13. SINGLE TOOL PAGE
   ------------------------------------------------------------------- */
.sun-tool-hero { display: flex; gap: 22px; align-items: flex-start; }
.sun-tool-hero-thumb {
	flex: 0 0 72px; width: 72px; height: 72px;
	display: flex; align-items: center; justify-content: center;
	border: 1px solid var(--sun-ink); background: var(--sun-paper); overflow: hidden;
}
.sun-tool-hero-thumb img { width: 100%; height: 100%; object-fit: cover; }
.sun-tool-hero-main .sun-tool-stats { margin-top: 16px; }

.sun-spec-grid {
	display: grid; grid-template-columns: 1fr; gap: 1px;
	background: var(--sun-line); border: 1px solid var(--sun-line);
	margin: 0 0 12px;
}
@media (min-width: 700px) { .sun-spec-grid { grid-template-columns: repeat(3, 1fr); } }
.sun-spec { background: var(--sun-paper); padding: 16px 18px; margin: 0; }
.sun-spec dt {
	font-family: var(--sun-font-mono); font-size: 0.66rem; font-weight: 600;
	letter-spacing: 0.14em; color: var(--sun-grey-text); margin-bottom: 6px;
}
.sun-spec dd { margin: 0; font-size: 0.95rem; }

.sun-feature-list { list-style: none; margin: 0 0 24px; padding: 0; }
.sun-feature-list li { position: relative; padding: 6px 0 6px 22px; font-size: 0.95rem; }
.sun-feature-list li::before { /* amber tick square */
	content: ""; position: absolute; left: 0; top: 12px;
	width: 9px; height: 9px; background: var(--sun-amber);
}
.sun-news-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 30px; }

/* ---------------------------------------------------------------------
   14. CONSULTING
   ------------------------------------------------------------------- */
.sun-grid--services { align-items: stretch; }
.sun-service-card { /* dark-band teaser variant */
	border: 1px solid var(--sun-grey);
	padding: 22px; display: flex; flex-direction: column; gap: 12px;
}
.sun-service-card:hover { border-color: var(--sun-amber); }
.sun-service-title { margin: 0; font-size: 1.1rem; color: var(--sun-paper); }
.sun-service-body { color: var(--sun-grey); font-size: 0.92rem; }
.sun-service-body p { margin: 0; }
.sun-consulting-cta { margin-top: 30px; }
.sun-consulting-intro { margin-bottom: 8px; }

.sun-card--service .sun-card-excerpt p { margin: 0 0 8px; }
.sun-case-metric {
	display: block;
	font-family: var(--sun-font-mono); font-weight: 600;
	font-size: 2rem; letter-spacing: -0.01em;
	color: var(--sun-ember); /* large display text: ember passes 3:1 */
}
.sun-card--placeholder { border-style: dashed; border-color: var(--sun-grey); max-width: 640px; }

.sun-booking {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
	gap: 22px; padding-top: 8px; padding-bottom: 8px;
}
.sun-booking .sun-section-title { color: var(--sun-paper); margin: 6px 0 0; }

/* ---------------------------------------------------------------------
   15. NEWSLETTER
   ------------------------------------------------------------------- */
.sun-newsletter { border-top: 2px solid var(--sun-ink); }
.sun-newsletter-inner { display: grid; grid-template-columns: 1fr; gap: 26px; align-items: center; }
@media (min-width: 880px) { .sun-newsletter-inner { grid-template-columns: 1.2fr 1fr; } }
.sun-newsletter-blurb { color: var(--sun-grey-text); max-width: 48ch; }
.sun-newsletter-form { display: flex; flex-wrap: wrap; gap: 10px; }
.sun-newsletter-form input[type="email"] { flex: 1 1 220px; }
.sun-newsletter-msg { flex-basis: 100%; margin: 0; font-family: var(--sun-font-mono); font-size: 0.8rem; color: var(--sun-ink); }
.sun-newsletter-msg.is-error { color: var(--sun-ember-text); }

/* ---------------------------------------------------------------------
   16. FOOTER
   ------------------------------------------------------------------- */
.sun-footer { color: var(--sun-paper); padding: 52px 0 26px; }
.sun-footer-grid { display: grid; grid-template-columns: 1fr; gap: 34px; }
@media (min-width: 880px) { .sun-footer-grid { grid-template-columns: 1.3fr 1fr 1fr 1fr; } }

.sun-footer-tagline { color: var(--sun-grey); font-size: 0.92rem; max-width: 34ch; margin: 14px 0 18px; }
.sun-footer-title {
	font-family: var(--sun-font-mono); font-size: 0.72rem; font-weight: 600;
	letter-spacing: 0.16em; text-transform: uppercase;
	color: var(--sun-amber); margin: 0 0 14px;
}
.sun-footer .sun-menu { display: block; }
.sun-footer .sun-menu a { color: var(--sun-line); border-bottom: 0; padding: 6px 0; text-transform: none; letter-spacing: 0.04em; }
.sun-footer .sun-menu a:hover { color: var(--sun-amber); box-shadow: none; }
.sun-footer-widget { font-size: 0.9rem; color: var(--sun-grey); }
.sun-footer-widget a { color: var(--sun-line); }
.sun-footer-widget a:hover { color: var(--sun-amber); }
.sun-footer-widget ul { list-style: none; margin: 0; padding: 0; }
.sun-footer-widget li { padding: 5px 0; }

.sun-social { display: flex; gap: 10px; }
.sun-social-link {
	display: inline-flex; align-items: center; justify-content: center;
	width: 38px; height: 38px;
	border: 1px solid var(--sun-grey); color: var(--sun-line);
}
.sun-social-link svg { fill: currentColor; }
.sun-social-link:hover { border-color: var(--sun-amber); color: var(--sun-amber); }

.sun-footer-legal {
	display: flex; flex-wrap: wrap; align-items: center; gap: 10px 24px;
	margin-top: 44px; padding-top: 18px;
	border-top: 1px solid var(--sun-grey);
}
.sun-footer-copy { font-family: var(--sun-font-mono); font-size: 0.72rem; letter-spacing: 0.08em; color: var(--sun-grey); }
.sun-legal-menu { list-style: none; display: flex; flex-wrap: wrap; gap: 18px; margin: 0 0 0 auto; padding: 0; }
.sun-legal-menu a { font-family: var(--sun-font-mono); font-size: 0.72rem; letter-spacing: 0.08em; color: var(--sun-grey); }
.sun-legal-menu a:hover { color: var(--sun-amber); }

/* ---------------------------------------------------------------------
   17. ASSIST CHATBOT WIDGET (bottom-right, persistent)
   ------------------------------------------------------------------- */
.sun-bot { position: fixed; right: 16px; bottom: 16px; z-index: 70; }
.sun-bot-toggle {
	display: inline-flex; align-items: center; gap: 9px;
	padding: 13px 16px;
	background: var(--sun-ink); color: var(--sun-amber);
	border: 1px solid var(--sun-amber); border-radius: 0; cursor: pointer;
	box-shadow: 0 3px 0 0 var(--sun-amber);
	transition: background-color 0.15s linear, color 0.15s linear;
}
.sun-bot-toggle svg { fill: var(--sun-amber); transition: fill 0.15s linear; }
.sun-bot-toggle:hover { background: var(--sun-ember); color: var(--sun-ink); }
.sun-bot-toggle:hover svg { fill: var(--sun-ink); }
.sun-bot-toggle-label { font-family: var(--sun-font-mono); font-size: 0.72rem; font-weight: 600; letter-spacing: 0.16em; }

.sun-bot-panel {
	position: absolute; right: 0; bottom: calc(100% + 12px);
	width: min(340px, calc(100vw - 32px));
	display: flex; flex-direction: column;
	background: var(--sun-paper);
	border: 2px solid var(--sun-ink);
	box-shadow: 0 14px 30px -12px rgba(17, 17, 17, 0.35);
}
.sun-bot-head {
	display: flex; align-items: center; gap: 10px;
	background: var(--sun-ink); color: var(--sun-amber);
	padding: 11px 14px;
}
.sun-bot-title { font-family: var(--sun-font-mono); font-size: 0.74rem; font-weight: 600; letter-spacing: 0.16em; }
.sun-bot-close {
	margin-left: auto; background: none; border: 0; cursor: pointer;
	color: var(--sun-grey); font-size: 0.9rem; line-height: 1; padding: 4px;
}
.sun-bot-close:hover { color: var(--sun-amber); }

.sun-bot-log { height: 300px; overflow-y: auto; padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.sun-bot-msg { max-width: 86%; padding: 9px 12px; font-size: 0.88rem; line-height: 1.45; }
.sun-bot-msg--bot { align-self: flex-start; border: 1px solid var(--sun-line); border-left: 3px solid var(--sun-amber); }
.sun-bot-msg--user { align-self: flex-end; background: var(--sun-ink); color: var(--sun-paper); }

.sun-bot-items { display: flex; flex-direction: column; gap: 8px; }
.sun-bot-item { display: block; border: 1px solid var(--sun-line); padding: 9px 12px; }
.sun-bot-item:hover { border-color: var(--sun-ember); text-decoration: none; }
.sun-bot-item-type {
	display: inline-block; margin-bottom: 3px;
	font-family: var(--sun-font-mono); font-size: 0.6rem; font-weight: 600;
	letter-spacing: 0.14em; text-transform: uppercase;
	background: var(--sun-amber); color: var(--sun-ink); padding: 1px 6px;
}
.sun-bot-item-title { display: block; font-weight: 700; color: var(--sun-ink); font-size: 0.9rem; }
.sun-bot-item-note { display: block; color: var(--sun-grey-text); font-size: 0.78rem; }

.sun-bot-form { display: flex; gap: 0; border-top: 1px solid var(--sun-line); }
.sun-bot-form input { flex: 1; border: 0; padding: 12px 14px; font-size: 0.88rem; }
.sun-bot-form input:focus { outline-offset: -2px; }
.sun-bot-send {
	background: var(--sun-ember); color: var(--sun-ink);
	border: 0; border-radius: 0; padding: 0 18px; cursor: pointer;
	font-family: var(--sun-font-mono); font-size: 0.74rem; font-weight: 600;
	letter-spacing: 0.12em; text-transform: uppercase;
}
.sun-bot-send:hover { background: var(--sun-ink); color: var(--sun-amber); }

@media (max-width: 640px) {
	.sun-bot { right: 12px; bottom: 12px; }
	.sun-bot-log { height: 240px; }
}
