/*
Theme Name: SignalMason Software
Theme URI: https://signalmason.com/
Author: SignalMason Software
Author URI: https://signalmason.com/
Description: A premium product-company theme for SignalMason plugins, applications, documentation, support, and sales pages.
Version: 1.1.1
Requires at least: 6.5
Requires PHP: 7.4
Text Domain: signalmason-software
License: GPLv2 or later
*/

:root {
	--sm-ink: #10201d;
	--sm-ink-soft: #314943;
	--sm-night: #0d1a25;
	--sm-green: #0b765f;
	--sm-green-bright: #29a883;
	--sm-copper: #c66a3d;
	--sm-gold: #e3b765;
	--sm-paper: #f4f0e7;
	--sm-cream: #fffaf0;
	--sm-white: #fffefd;
	--sm-line: rgba(16, 32, 29, .14);
	--sm-shadow: 0 24px 70px rgba(13, 26, 37, .12);
	--sm-radius: 18px;
	--sm-content: 1180px;
	--sm-serif: "Newsreader", Georgia, serif;
	--sm-sans: "Space Grotesk", "Trebuchet MS", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	background:
		radial-gradient(circle at 85% 8%, rgba(227, 183, 101, .18), transparent 26rem),
		linear-gradient(180deg, var(--sm-cream), var(--sm-paper));
	color: var(--sm-ink);
	font-family: var(--sm-sans);
	font-size: 17px;
	line-height: 1.65;
	margin: 0;
	min-height: 100vh;
}
a { color: var(--sm-green); text-decoration-thickness: .08em; text-underline-offset: .18em; }
a:hover { color: var(--sm-copper); }
img { height: auto; max-width: 100%; }
button, input, textarea, select { font: inherit; }
.sm-shell { margin-inline: auto; max-width: var(--sm-content); padding-inline: 24px; }
.sm-main { min-height: 60vh; }
.screen-reader-text {
	clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; overflow: hidden;
	position: absolute !important; width: 1px; word-wrap: normal !important;
}
.screen-reader-text:focus {
	background: var(--sm-white); clip: auto !important; clip-path: none; color: var(--sm-ink);
	height: auto; left: 12px; padding: 12px 16px; top: 12px; width: auto; z-index: 10000;
}

h1, h2, h3, h4 { font-family: var(--sm-serif); font-weight: 650; letter-spacing: -.035em; line-height: 1.02; }
h1 { font-size: clamp(3.4rem, 8vw, 7.4rem); }
h2 { font-size: clamp(2.35rem, 5vw, 4.5rem); }
h3 { font-size: clamp(1.5rem, 2.5vw, 2.15rem); }
p { margin-block: 0 1.35em; }

.sm-site-header {
	background: rgba(255, 250, 240, .84); border-bottom: 1px solid var(--sm-line); position: sticky;
	top: 0; z-index: 100; backdrop-filter: blur(18px);
}
.admin-bar .sm-site-header { top: 32px; }
.sm-nav-row { align-items: center; display: flex; justify-content: space-between; min-height: 78px; }
.sm-brand { align-items: center; color: var(--sm-ink); display: inline-flex; font-weight: 700; gap: 11px; text-decoration: none; }
.sm-brand:hover { color: var(--sm-ink); }
.sm-brand-mark { height: 35px; position: relative; width: 35px; }
.sm-brand-mark::before, .sm-brand-mark::after { content: ""; position: absolute; }
.sm-brand-mark::before { border: 2px solid var(--sm-green); border-radius: 50%; inset: 2px; }
.sm-brand-mark::after { background: var(--sm-copper); border-radius: 50%; box-shadow: 12px 8px 0 var(--sm-green), 4px 21px 0 var(--sm-gold); height: 7px; left: 6px; top: 5px; width: 7px; }
.sm-brand-name { font-size: 1.04rem; letter-spacing: -.02em; }
.sm-menu { align-items: center; display: flex; gap: 30px; list-style: none; margin: 0; padding: 0; }
.sm-menu a { color: var(--sm-ink); font-size: .88rem; font-weight: 650; text-decoration: none; }
.sm-menu a:hover, .sm-menu .current-menu-item > a { color: var(--sm-green); }
.sm-menu > li:last-child > a { background: var(--sm-night); border-radius: 999px; color: white; padding: 10px 17px; }
.sm-menu-toggle { background: none; border: 0; color: var(--sm-ink); display: none; padding: 10px; }
.sm-menu-toggle span, .sm-menu-toggle::before, .sm-menu-toggle::after { background: currentColor; content: ""; display: block; height: 2px; margin: 5px 0; width: 24px; }

.sm-eyebrow { align-items: center; color: var(--sm-green); display: flex; font-size: .75rem; font-weight: 700; gap: 10px; letter-spacing: .16em; text-transform: uppercase; }
.sm-eyebrow::before { background: var(--sm-copper); content: ""; height: 2px; width: 28px; }
.sm-hero { overflow: hidden; padding: clamp(72px, 10vw, 138px) 0 90px; position: relative; }
.sm-hero::before {
	background-image: linear-gradient(var(--sm-line) 1px, transparent 1px), linear-gradient(90deg, var(--sm-line) 1px, transparent 1px);
	background-size: 44px 44px; content: ""; inset: 0 0 auto 53%; height: 100%; mask-image: linear-gradient(90deg, transparent, #000); opacity: .4; position: absolute;
}
.sm-hero-grid { align-items: center; display: grid; gap: clamp(40px, 8vw, 110px); grid-template-columns: minmax(0, 1.18fr) minmax(320px, .82fr); position: relative; }
.sm-hero h1 { margin: 22px 0 24px; max-width: 820px; }
.sm-hero h1 em { color: var(--sm-green); font-weight: 450; }
.sm-hero-copy { color: var(--sm-ink-soft); font-size: clamp(1.08rem, 1.8vw, 1.28rem); max-width: 650px; }
.sm-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 14px; margin-top: 34px; }
.sm-button {
	align-items: center; background: var(--sm-green); border: 1px solid var(--sm-green); border-radius: 999px;
	color: white; display: inline-flex; font-size: .9rem; font-weight: 700; gap: 10px; justify-content: center;
	min-height: 50px; padding: 12px 22px; text-decoration: none; transition: transform .2s, background .2s, box-shadow .2s;
}
.sm-button:hover { background: var(--sm-night); border-color: var(--sm-night); box-shadow: 0 12px 30px rgba(13, 26, 37, .18); color: white; transform: translateY(-2px); }
.sm-button-secondary { background: transparent; border-color: var(--sm-line); color: var(--sm-ink); }
.sm-button-secondary:hover { color: white; }
.sm-signal-card {
	aspect-ratio: 1 / 1.05; background: var(--sm-night); border-radius: 48% 48% 26px 26px; box-shadow: var(--sm-shadow);
	color: white; overflow: hidden; padding: 38px; position: relative;
}
.sm-signal-card::before { border: 1px solid rgba(255,255,255,.14); border-radius: 50%; content: ""; inset: 13%; position: absolute; }
.sm-signal-card::after { background: radial-gradient(circle, var(--sm-green-bright) 0 7px, transparent 8px); background-size: 42px 42px; content: ""; inset: 0; opacity: .3; position: absolute; transform: rotate(18deg) scale(1.3); }
.sm-signal-orbit { border: 2px solid var(--sm-gold); border-radius: 50%; inset: 28%; position: absolute; z-index: 2; }
.sm-signal-orbit::before, .sm-signal-orbit::after { background: var(--sm-copper); border: 5px solid var(--sm-night); border-radius: 50%; content: ""; height: 21px; position: absolute; width: 21px; }
.sm-signal-orbit::before { right: -11px; top: 20%; }
.sm-signal-orbit::after { bottom: 1%; left: 5%; }
.sm-signal-core { align-items: center; background: var(--sm-green); border-radius: 22px; display: flex; font-family: var(--sm-serif); font-size: 3rem; inset: 39%; justify-content: center; position: absolute; z-index: 3; }
.sm-signal-caption { bottom: 34px; font-size: .72rem; font-weight: 700; left: 38px; letter-spacing: .15em; position: absolute; text-transform: uppercase; z-index: 4; }
.sm-proof-row { border-top: 1px solid var(--sm-line); display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 70px; padding-top: 25px; }
.sm-proof { border-right: 1px solid var(--sm-line); padding: 0 26px; }
.sm-proof:first-child { padding-left: 0; }.sm-proof:last-child { border-right: 0; }
.sm-proof strong { display: block; font-family: var(--sm-serif); font-size: 1.55rem; line-height: 1.1; }
.sm-proof span { color: var(--sm-ink-soft); font-size: .78rem; }

.sm-section { padding: clamp(74px, 10vw, 130px) 0; }
.sm-section-dark { background: var(--sm-night); color: white; position: relative; }
.sm-section-dark::before { background: linear-gradient(90deg, var(--sm-copper), var(--sm-gold)); content: ""; height: 4px; left: 0; position: absolute; right: 72%; top: 0; }
.sm-section-head { align-items: end; display: flex; gap: 40px; justify-content: space-between; margin-bottom: 50px; }
.sm-section-head h2 { margin: 12px 0 0; max-width: 720px; }
.sm-section-head p { color: var(--sm-ink-soft); max-width: 440px; }
.sm-section-dark .sm-section-head p { color: rgba(255,255,255,.66); }
.sm-product-grid { display: grid; gap: 22px; grid-template-columns: repeat(3, 1fr); }
.sm-product-card {
	background: var(--sm-white); border: 1px solid var(--sm-line); border-radius: var(--sm-radius); display: flex;
	flex-direction: column; min-height: 420px; overflow: hidden; position: relative; transition: transform .25s, box-shadow .25s;
}
.sm-product-card:hover { box-shadow: var(--sm-shadow); transform: translateY(-6px); }
.sm-product-art { align-items: flex-end; background: var(--sm-product-accent, var(--sm-green)); display: flex; height: 180px; overflow: hidden; padding: 24px; position: relative; }
.sm-product-art::before { border: 1px solid rgba(255,255,255,.35); border-radius: 50%; content: ""; height: 230px; position: absolute; right: -65px; top: -85px; width: 230px; }
.sm-product-art::after { background: rgba(255,255,255,.9); border-radius: 50%; box-shadow: 35px -25px 0 rgba(227,183,101,.9), 60px 20px 0 rgba(198,106,61,.9); content: ""; height: 12px; position: absolute; right: 85px; top: 90px; width: 12px; }
.sm-product-art img { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.sm-product-status { background: rgba(255,255,255,.92); border-radius: 999px; color: var(--sm-ink); font-size: .68rem; font-weight: 700; letter-spacing: .1em; padding: 7px 11px; position: relative; text-transform: uppercase; z-index: 2; }
.sm-product-body { display: flex; flex: 1; flex-direction: column; padding: 27px; }
.sm-product-body h3 { margin: 0 0 12px; }
.sm-product-body h3 a { color: var(--sm-ink); text-decoration: none; }
.sm-product-body p { color: var(--sm-ink-soft); font-size: .93rem; }
.sm-product-foot { align-items: center; border-top: 1px solid var(--sm-line); display: flex; justify-content: space-between; margin-top: auto; padding-top: 18px; }
.sm-product-price { font-family: var(--sm-serif); font-size: 1.18rem; font-weight: 650; }
.sm-text-link { font-size: .82rem; font-weight: 700; text-decoration: none; }

.sm-principles { display: grid; gap: 1px; grid-template-columns: repeat(3,1fr); }
.sm-principle { background: rgba(255,255,255,.045); min-height: 280px; padding: 38px; }
.sm-principle-number { color: var(--sm-gold); font-family: var(--sm-serif); font-size: 1.2rem; }
.sm-principle h3 { margin: 52px 0 16px; }.sm-principle p { color: rgba(255,255,255,.62); font-size: .93rem; }
.sm-cta-band { align-items: center; background: var(--sm-green); border-radius: 28px; color: white; display: flex; justify-content: space-between; overflow: hidden; padding: clamp(35px,6vw,70px); position: relative; }
.sm-cta-band::after { border: 80px solid rgba(255,255,255,.08); border-radius: 50%; content: ""; height: 300px; position: absolute; right: -100px; top: -190px; width: 300px; }
.sm-cta-band h2 { margin: 0; max-width: 700px; position: relative; z-index: 2; }.sm-cta-band .sm-button { background: var(--sm-cream); border-color: var(--sm-cream); color: var(--sm-ink); position: relative; z-index: 2; }

.sm-page-hero { background: var(--sm-night); color: white; padding: 95px 0 80px; }
.sm-page-hero h1 { font-size: clamp(3rem, 7vw, 6rem); margin: 18px 0 10px; max-width: 920px; }
.sm-page-hero p { color: rgba(255,255,255,.7); font-size: 1.15rem; max-width: 720px; }
.sm-content-wrap { background: var(--sm-white); border: 1px solid var(--sm-line); border-radius: var(--sm-radius); box-shadow: 0 12px 40px rgba(13,26,37,.06); margin: 70px auto; max-width: 900px; padding: clamp(28px,6vw,70px); }
.sm-content-wrap > :first-child { margin-top: 0; }.sm-content-wrap > :last-child { margin-bottom: 0; }
.sm-content-wrap h2 { font-size: 2.6rem; margin-top: 1.2em; }.sm-content-wrap h3 { margin-top: 1.5em; }
.sm-content-wrap blockquote { border-left: 4px solid var(--sm-copper); color: var(--sm-ink-soft); font-family: var(--sm-serif); font-size: 1.4rem; margin: 2em 0; padding-left: 24px; }
.sm-content-wrap table,.sm-product-content table{border-collapse:collapse;margin:2rem 0;width:100%}.sm-content-wrap th,.sm-content-wrap td,.sm-product-content th,.sm-product-content td{border-bottom:1px solid var(--sm-line);padding:14px;text-align:left}.sm-content-wrap th,.sm-product-content th{background:var(--sm-paper);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.sm-feature-grid{display:grid;gap:16px;grid-template-columns:repeat(2,1fr);margin:2rem 0}.sm-feature{background:var(--sm-white);border:1px solid var(--sm-line);border-radius:14px;padding:24px}.sm-feature h3{font-size:1.4rem;margin:0 0 10px}.sm-feature p{color:var(--sm-ink-soft);font-size:.92rem;margin:0}.sm-callout{background:var(--sm-paper);border-left:4px solid var(--sm-green);border-radius:0 12px 12px 0;margin:2rem 0;padding:22px 25px}.sm-doc-list{display:grid;gap:12px;grid-template-columns:repeat(2,1fr);list-style:none;margin:2rem 0;padding:0}.sm-doc-list a{background:var(--sm-paper);border:1px solid var(--sm-line);border-radius:10px;color:var(--sm-ink);display:block;font-weight:700;padding:17px;text-decoration:none}.sm-doc-list a:hover{border-color:var(--sm-green);color:var(--sm-green)}

.sm-product-hero { background: var(--sm-night); color: white; overflow: hidden; padding: 95px 0; position: relative; }
.sm-product-hero-grid { align-items: center; display: grid; gap: 80px; grid-template-columns: 1.15fr .85fr; }
.sm-product-hero h1 { font-size: clamp(3.4rem,7vw,6.8rem); margin: 18px 0; }
.sm-product-hero-copy { color: rgba(255,255,255,.72); font-size: 1.2rem; max-width: 670px; }
.sm-product-panel { background: var(--sm-white); border-radius: 22px; box-shadow: var(--sm-shadow); color: var(--sm-ink); padding: 34px; transform: rotate(2deg); }
.sm-product-panel strong { display: block; font-family: var(--sm-serif); font-size: 2.5rem; line-height: 1; margin: 15px 0 25px; }
.sm-product-panel .sm-button { width: 100%; }
.sm-product-detail { display: grid; gap: 70px; grid-template-columns: minmax(0,1fr) 310px; padding: 90px 0; }
.sm-product-content { font-size: 1.05rem; }.sm-product-content h2 { font-size: 3rem; margin-top: 1.2em; }
.sm-product-aside { align-self: start; border-left: 1px solid var(--sm-line); padding-left: 30px; position: sticky; top: 120px; }
.sm-product-aside h3 { font-size: 1.5rem; }.sm-product-aside a { display: block; margin: 12px 0; }
.sm-empty { border: 1px dashed var(--sm-line); border-radius: var(--sm-radius); color: var(--sm-ink-soft); grid-column: 1 / -1; padding: 45px; text-align: center; }

.sm-site-footer { background: #09131b; color: white; padding: 70px 0 25px; }
.sm-footer-grid { display: grid; gap: 50px; grid-template-columns: 1.4fr 1fr 1fr; }
.sm-footer-brand p { color: rgba(255,255,255,.58); max-width: 390px; }.sm-footer-title { color: rgba(255,255,255,.45); font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.sm-footer-links { list-style: none; margin: 17px 0 0; padding: 0; }.sm-footer-links li { margin: 8px 0; }.sm-footer-links a { color: white; font-size: .88rem; text-decoration: none; }
.sm-footer-bottom { border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.45); display: flex; font-size: .75rem; justify-content: space-between; margin-top: 55px; padding-top: 23px; }

.sm-reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s ease; }
.sm-reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; }.sm-reveal { opacity: 1; transform: none; transition: none; } }
@media (max-width: 900px) {
	.admin-bar .sm-site-header { top: 46px; }.sm-menu-toggle { display: block; }.sm-primary-nav { background: var(--sm-cream); border-bottom: 1px solid var(--sm-line); display: none; left: 0; padding: 20px 24px; position: absolute; right: 0; top: 78px; }.sm-primary-nav.is-open { display: block; }.sm-menu { align-items: stretch; flex-direction: column; gap: 8px; }.sm-menu a { display: block; padding: 10px; }.sm-hero-grid,.sm-product-hero-grid,.sm-product-detail { grid-template-columns: 1fr; }.sm-signal-card { margin: auto; max-width: 520px; width: 100%; }.sm-product-grid { grid-template-columns: repeat(2,1fr); }.sm-principles { grid-template-columns: 1fr; }.sm-product-aside { border-left: 0; border-top: 1px solid var(--sm-line); padding: 25px 0 0; position: static; }.sm-footer-grid { grid-template-columns: 1fr 1fr; }.sm-footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 620px) {
	.sm-shell { padding-inline: 18px; }.sm-hero { padding-top: 58px; }.sm-product-grid { grid-template-columns: 1fr; }.sm-proof-row { grid-template-columns: 1fr; }.sm-proof { border-bottom: 1px solid var(--sm-line); border-right: 0; padding: 16px 0; }.sm-section-head,.sm-cta-band { align-items: flex-start; flex-direction: column; }.sm-footer-grid { grid-template-columns: 1fr; }.sm-footer-brand { grid-column: auto; }.sm-footer-bottom { flex-direction: column; gap: 8px; }.sm-product-panel { transform: none; }
}
@media (max-width:620px){.sm-feature-grid,.sm-doc-list{grid-template-columns:1fr}.sm-content-wrap table,.sm-product-content table{display:block;overflow-x:auto}}
