/*
Theme Name: Sevroth Labs
Theme URI: https://sevrothlabs.com/
Description: A complete standalone WooCommerce theme for Sevroth Labs. No parent theme and no page-builder dependency. Ships full shop, product, cart, checkout, account, blog and utility templates, a WooCommerce override layer, six custom Elementor widgets plus six matching shortcodes, and a technical SEO layer with structured data, batch-level COA schema, canonicals, and sitemap control. Renders correctly with or without Elementor, and degrades without fatal errors if WooCommerce is deactivated.
Author: Sevroth Labs Digital Team
Author URI: https://sevrothlabs.com/
Version: 5.10.1
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
WC requires at least: 8.0
WC tested up to: 11.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sevrothlabs
Domain Path: /languages
Tags: e-commerce, custom-menu, custom-logo, featured-images, translation-ready, block-styles, wide-blocks, accessibility-ready
*/

/* =========================================================================
   1. Design tokens
   -------------------------------------------------------------------------
   These mirror elementor-templates/site-settings.json. If you change a colour
   here, change it there too, or the coded templates and the Elementor
   templates will drift apart.
   ========================================================================= */
:root {
  /* Elementor global colour slots, so Elementor picks these up automatically. */
  --e-global-color-primary: #0A0F1D;
  --e-global-color-secondary: #111827;
  --e-global-color-text: #334155;
  --e-global-color-accent: #00D4AA;

  /* Brand palette */
  --sev-navy: #0A0F1D;
  --sev-navy-2: #111827;
  --sev-navy-3: #1E293B;
  --sev-teal: #00D4AA;
  --sev-teal-dark: #00BD97;
  --sev-cyan: #0EA5E9;
  --sev-cyan-dark: #0B8FC7;
  --sev-surface: #F6F9FC;
  --sev-surface-2: #F8FAFC;
  --sev-white: #FFFFFF;
  --sev-border: #E2E8F0;
  --sev-border-strong: #CBD5E1;
  --sev-muted: #64748B;
  --sev-text: #334155;
  --sev-verified: #0A7C5A;
  --sev-verified-bg: #ECFDF5;
  --sev-danger: #B23A48;
  --sev-danger-bg: #FEF2F2;
  --sev-warning: #B45309;
  --sev-warning-bg: #FFFBEB;

  /* Type */
  --sev-font-display: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --sev-font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --sev-font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;

  /* Space & shape */
  --sev-radius-sm: 8px;
  --sev-radius: 10px;
  --sev-radius-lg: 14px;
  --sev-radius-pill: 999px;
  --sev-container: 1320px;
  --sev-narrow: 780px;
  --sev-gutter: 20px;
  --sev-section-y: clamp(40px, 6vw, 80px);

  /* Elevation */
  --sev-shadow-sm: 0 1px 2px rgba(10, 15, 29, .05);
  --sev-shadow: 0 1px 2px rgba(10, 15, 29, .04), 0 8px 24px rgba(10, 15, 29, .06);
  --sev-shadow-lg: 0 4px 12px rgba(10, 15, 29, .06), 0 24px 48px rgba(10, 15, 29, .10);
  --sev-ring: 0 0 0 3px rgba(14, 165, 233, .18);

  /* Motion */
  --sev-ease: cubic-bezier(.2, .7, .3, 1);
  --sev-fast: 140ms;
}

/* =========================================================================
   2. Reset & base
   ========================================================================= */
*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: 90px;
}

body {
  margin: 0;
  font-family: var(--sev-font-body);
  font-size: 16px;
  line-height: 1.65;
  color: var(--sev-text);
  background: var(--sev-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-wrap: break-word;
}

img, svg, video, canvas { max-width: 100%; height: auto; display: block; }
figure { margin: 0; }

a { color: var(--sev-cyan-dark); text-decoration: none; transition: color var(--sev-fast) var(--sev-ease); }
a:hover { color: var(--sev-navy); text-decoration: underline; text-underline-offset: 2px; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--sev-font-display);
  color: var(--sev-navy);
  line-height: 1.2;
  margin: 0 0 .55em;
  font-weight: 700;
  letter-spacing: -.02em;
  text-wrap: balance;
}
h1 { font-size: clamp(1.9rem, 3.6vw, 2.9rem); }
h2 { font-size: clamp(1.45rem, 2.8vw, 2.15rem); }
h3 { font-size: clamp(1.15rem, 1.9vw, 1.45rem); }
h4 { font-size: 1.0625rem; }
h5 { font-size: .9375rem; }

p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
ul, ol { margin: 0 0 1em; padding-left: 1.35em; }
li { margin-bottom: .4em; }
hr { border: 0; border-top: 1px solid var(--sev-border); margin: 2em 0; }
small { font-size: .8125rem; }
strong, b { font-weight: 650; color: var(--sev-navy); }

/* Focus & accessibility */
:focus-visible { outline: 2px solid var(--sev-cyan); outline-offset: 2px; border-radius: 4px; }
.screen-reader-text {
  border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
  height: 1px; width: 1px; margin: -1px; overflow: hidden;
  padding: 0; position: absolute !important; white-space: nowrap;
}
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 100000;
  background: var(--sev-navy); color: #fff; padding: 12px 20px;
  border-radius: 0 0 var(--sev-radius) 0; font-weight: 600;
}
.skip-link:focus { left: 0; color: #fff; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}

/* =========================================================================
   3. Layout helpers
   ========================================================================= */
.sev-container {
  width: 100%;
  max-width: var(--sev-container);
  margin-inline: auto;
  padding-inline: var(--sev-gutter);
}
.sev-container--narrow { max-width: var(--sev-narrow); }
.sev-section { padding-block: var(--sev-section-y); }
.sev-section--tight { padding-block: clamp(24px, 3vw, 40px); }
.sev-section--surface { background: var(--sev-surface); }

.sev-grid { display: grid; gap: 24px; }
.sev-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sev-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sev-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 900px) {
  .sev-grid--3, .sev-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .sev-grid--2, .sev-grid--3, .sev-grid--4 { grid-template-columns: 1fr; }
}

.sev-kicker {
  font-size: 12px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; color: var(--sev-cyan); margin-bottom: 10px;
}
.sev-muted { color: var(--sev-muted); }
.sev-center { text-align: center; }
.sev-stack > * + * { margin-top: 1rem; }

/* =========================================================================
   4. Buttons
   ========================================================================= */
.sev-btn,
.wp-block-button__link,
button.sev-btn,
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 12px 22px; border-radius: var(--sev-radius);
  font-family: var(--sev-font-body); font-size: 14.5px; font-weight: 650;
  line-height: 1.2; text-decoration: none; cursor: pointer;
  background: var(--sev-cyan); color: #fff; border: 1px solid transparent;
  transition: background var(--sev-fast) var(--sev-ease),
              transform var(--sev-fast) var(--sev-ease),
              box-shadow var(--sev-fast) var(--sev-ease);
}
.sev-btn:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
input[type="submit"]:hover {
  background: var(--sev-cyan-dark); color: #fff; text-decoration: none;
  box-shadow: var(--sev-shadow);
}
.sev-btn:active, .woocommerce a.button:active { transform: translateY(1px); box-shadow: none; }

.sev-btn--primary, .woocommerce a.button.alt, .woocommerce button.button.alt {
  background: var(--sev-teal); color: var(--sev-navy);
}
.sev-btn--primary:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover {
  background: var(--sev-teal-dark); color: var(--sev-navy);
}
.sev-btn--ghost {
  background: transparent; color: var(--sev-navy);
  border-color: var(--sev-border-strong);
}
.sev-btn--ghost:hover { background: var(--sev-surface); color: var(--sev-navy); }
.sev-btn--dark { background: var(--sev-navy); color: #fff; }
.sev-btn--dark:hover { background: var(--sev-navy-3); color: #fff; }
.sev-btn--sm { padding: 9px 16px; font-size: 13.5px; border-radius: var(--sev-radius-sm); }
.sev-btn--lg { padding: 15px 30px; font-size: 15.5px; }
.sev-btn--block { width: 100%; }
.sev-btn[disabled], .sev-btn.is-disabled { opacity: .5; pointer-events: none; }

/* =========================================================================
   5. Forms
   ========================================================================= */
input[type="text"], input[type="email"], input[type="search"], input[type="url"],
input[type="tel"], input[type="number"], input[type="password"], input[type="date"],
textarea, select, .sev-input, .select2-container--default .select2-selection--single {
  width: 100%; font-family: var(--sev-font-body); font-size: 15px;
  color: var(--sev-navy); background: #fff;
  border: 1px solid var(--sev-border-strong); border-radius: var(--sev-radius);
  padding: 11px 14px; transition: border-color var(--sev-fast), box-shadow var(--sev-fast);
  appearance: none;
}
input[type="checkbox"], input[type="radio"] { width: auto; appearance: auto; }
textarea { min-height: 130px; resize: vertical; }
input:focus, textarea:focus, select:focus, .sev-input:focus {
  outline: none; border-color: var(--sev-cyan); box-shadow: var(--sev-ring);
}
label { display: block; font-size: 13.5px; font-weight: 600; color: var(--sev-navy); margin-bottom: 6px; }
::placeholder { color: #94A3B8; }

/* =========================================================================
   6. Header
   ========================================================================= */
.sev-site-header { position: relative; z-index: 999; background: var(--sev-navy); }
.sev-site-header.is-sticky {
  position: sticky; top: 0;
  box-shadow: 0 2px 20px rgba(0,0,0,.28);
}

.sev-promo-bar {
  background: linear-gradient(90deg, var(--sev-teal), var(--sev-cyan));
  color: var(--sev-navy);
  font-size: 12.5px; font-weight: 650; letter-spacing: .01em;
  text-align: center; padding: 7px 16px;
}

.sev-header-inner {
  display: flex; align-items: center; gap: 22px;
  min-height: 70px; padding-block: 10px;
}

.sev-logo {
  display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto;
  font-family: var(--sev-font-display); font-size: 19px; font-weight: 800;
  letter-spacing: -.02em; color: #fff; text-decoration: none;
}
.sev-logo:hover { color: #fff; text-decoration: none; }
.sev-logo__mark {
  width: 32px; height: 32px; border-radius: 9px; flex: 0 0 auto;
  background: linear-gradient(135deg, var(--sev-teal), var(--sev-cyan));
  display: grid; place-items: center;
  color: var(--sev-navy); font-weight: 800; font-size: 15px;
}
.sev-logo img, .sev-logo .custom-logo { max-height: 40px; width: auto; border-radius: 0; }

/* Primary navigation */
.sev-nav { margin-inline-start: auto; }
.sev-nav .sev-menu, .sev-nav > ul {
  list-style: none; margin: 0; padding: 0;
  display: flex; align-items: center; gap: 2px;
}
.sev-nav li { position: relative; margin: 0; }
.sev-nav a {
  display: block; padding: 10px 13px; border-radius: var(--sev-radius-sm);
  color: rgba(255,255,255,.82); font-size: 14.5px; font-weight: 500;
  text-decoration: none; white-space: nowrap;
}
.sev-nav a:hover, .sev-nav a:focus-visible {
  color: #fff; background: rgba(255,255,255,.08); text-decoration: none;
}
.sev-nav .current-menu-item > a,
.sev-nav .current_page_item > a,
.sev-nav .current-menu-parent > a,
.sev-nav .current-menu-ancestor > a { color: #fff; background: rgba(255,255,255,.12); }

.sev-nav ul ul {
  position: absolute; top: calc(100% + 8px); left: 0; z-index: 50;
  min-width: 230px; display: block; padding: 7px;
  background: #fff; border: 1px solid var(--sev-border);
  border-radius: var(--sev-radius); box-shadow: var(--sev-shadow-lg);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity var(--sev-fast), transform var(--sev-fast), visibility var(--sev-fast);
}
.sev-nav ul ul::before {
  content: ""; position: absolute; top: -8px; left: 0; right: 0; height: 8px;
}
.sev-nav li:hover > ul, .sev-nav li:focus-within > ul, .sev-nav li.is-open > ul {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.sev-nav ul ul li { width: 100%; }
.sev-nav ul ul a { color: var(--sev-text); font-size: 14px; padding: 9px 12px; }
.sev-nav ul ul a:hover { background: var(--sev-surface); color: var(--sev-navy); }
.sev-nav ul ul ul { top: -7px; left: calc(100% + 6px); }

/* Header actions */
.sev-header-actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.sev-icon-btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 7px; height: 40px; padding: 0 14px;
  border: 0; border-radius: var(--sev-radius-pill);
  background: rgba(255,255,255,.1); color: #fff; cursor: pointer;
  font-size: 14px; font-weight: 600; text-decoration: none;
  transition: background var(--sev-fast);
}
.sev-icon-btn:hover { background: rgba(255,255,255,.18); color: #fff; text-decoration: none; }
.sev-icon-btn svg { width: 18px; height: 18px; flex: 0 0 auto; }
.sev-cart-count {
  background: var(--sev-teal); color: var(--sev-navy);
  border-radius: var(--sev-radius-pill); padding: 1px 8px;
  font-size: 12px; font-weight: 800; min-width: 22px; text-align: center;
}

/* Mobile toggle */
.sev-nav-toggle {
  display: none; align-items: center; justify-content: center;
  width: 42px; height: 42px; margin-inline-start: auto;
  background: rgba(255,255,255,.1); border: 0; border-radius: var(--sev-radius-sm);
  color: #fff; cursor: pointer; padding: 0;
}
.sev-nav-toggle .sev-burger,
.sev-nav-toggle .sev-burger::before,
.sev-nav-toggle .sev-burger::after {
  display: block; width: 20px; height: 2px; border-radius: 2px;
  background: currentColor; content: "";
}
.sev-nav-toggle .sev-burger { position: relative; }
.sev-nav-toggle .sev-burger::before { position: absolute; top: -6px; }
.sev-nav-toggle .sev-burger::after { position: absolute; top: 6px; }
.sev-nav-toggle[aria-expanded="true"] .sev-burger { background: transparent; }
.sev-nav-toggle[aria-expanded="true"] .sev-burger::before { transform: translateY(6px) rotate(45deg); }
.sev-nav-toggle[aria-expanded="true"] .sev-burger::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 980px) {
  .sev-nav-toggle { display: inline-flex; }
  .sev-nav {
    position: absolute; top: 100%; left: 0; right: 0; z-index: 60;
    display: none; margin: 0; padding: 10px 16px 20px;
    background: var(--sev-navy-2);
    border-top: 1px solid rgba(255,255,255,.1);
    max-height: calc(100vh - 120px); overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .sev-nav.is-open { display: block; }
  .sev-nav .sev-menu, .sev-nav > ul { flex-direction: column; align-items: stretch; gap: 1px; }
  .sev-nav a { padding: 13px 12px; font-size: 15.5px; }
  .sev-nav ul ul {
    position: static; opacity: 1; visibility: visible; transform: none;
    background: rgba(255,255,255,.04); box-shadow: none; border: 0;
    border-radius: 0; padding: 2px 0 6px 14px; margin-top: 2px;
  }
  .sev-nav ul ul a { color: rgba(255,255,255,.8); }
  .sev-nav ul ul a:hover { background: rgba(255,255,255,.09); color: #fff; }
  .sev-nav ul ul ul { left: 0; }
}

/* =========================================================================
   7. Page head / breadcrumbs
   ========================================================================= */
.sev-page-head {
  background: linear-gradient(160deg, var(--sev-navy) 0%, var(--sev-navy-2) 60%, #16233d 100%);
  color: #fff;
  padding-block: clamp(34px, 5vw, 60px) clamp(26px, 4vw, 44px);
  position: relative;
  overflow: hidden;
}
.sev-page-head::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(760px 340px at 82% -30%, rgba(0,212,170,.16), transparent 70%);
}
.sev-page-head > * { position: relative; z-index: 1; }
.sev-page-head h1 { color: #fff; margin: 0; }
.sev-page-head p {
  color: rgba(255,255,255,.74); max-width: 64ch;
  margin: 14px 0 0; font-size: 16.5px;
}
.sev-page-head .sev-kicker { color: var(--sev-teal); }

.sev-breadcrumbs {
  font-size: 12.5px; color: var(--sev-muted);
  padding-block: 14px;
}
.sev-breadcrumbs a { color: var(--sev-muted); }
.sev-breadcrumbs a:hover { color: var(--sev-navy); }
.sev-breadcrumbs .sep { margin: 0 6px; opacity: .6; }
.sev-page-head .sev-breadcrumbs { color: rgba(255,255,255,.6); padding: 0 0 16px; }
.sev-page-head .sev-breadcrumbs a { color: rgba(255,255,255,.6); }
.sev-page-head .sev-breadcrumbs a:hover { color: #fff; }

/* =========================================================================
   8. Cards, badges, alerts
   ========================================================================= */
.sev-card {
  background: #fff; border: 1px solid var(--sev-border);
  border-radius: var(--sev-radius-lg); padding: 24px;
  box-shadow: var(--sev-shadow-sm);
}

.sev-badge {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 9px; border-radius: var(--sev-radius-pill);
  font-size: 11.5px; font-weight: 700; letter-spacing: .02em;
  text-transform: uppercase; line-height: 1.6;
}
.sev-badge--verified { background: var(--sev-verified-bg); color: var(--sev-verified); }
.sev-badge--pending  { background: var(--sev-warning-bg); color: var(--sev-warning); }
.sev-badge--none     { background: var(--sev-surface); color: var(--sev-muted); }
.sev-badge--sale     { background: var(--sev-danger-bg); color: var(--sev-danger); }
.sev-badge--stock    { background: #EFF6FF; color: #1D4ED8; }

.sev-alert {
  border-radius: var(--sev-radius); padding: 14px 16px;
  font-size: 14.5px; border: 1px solid;
  display: flex; gap: 10px; align-items: flex-start;
}
.sev-alert--info    { background: #EFF6FF; border-color: #BFDBFE; color: #1E3A8A; }
.sev-alert--success { background: var(--sev-verified-bg); border-color: #A7F3D0; color: var(--sev-verified); }
.sev-alert--warn    { background: var(--sev-warning-bg); border-color: #FDE68A; color: var(--sev-warning); }
.sev-alert--error   { background: var(--sev-danger-bg); border-color: #FECACA; color: var(--sev-danger); }

/* =========================================================================
   9. Content typography
   ========================================================================= */
.sev-content { padding-block: clamp(30px, 4vw, 56px); }
.sev-content h2, .sev-content h3, .sev-content h4 { margin-top: 1.7em; scroll-margin-top: 100px; }
.sev-content > *:first-child { margin-top: 0; }
.sev-content a { text-decoration: underline; text-underline-offset: 2px; }
.sev-content a.sev-btn, .sev-content a.button { text-decoration: none; }
.sev-content blockquote {
  margin: 1.6em 0; padding: 4px 0 4px 20px;
  border-left: 3px solid var(--sev-teal);
  color: var(--sev-navy); font-size: 1.06em; font-style: normal;
}
.sev-content table {
  width: 100%; border-collapse: collapse; margin: 1.5em 0; font-size: 14.5px;
}
.sev-content th, .sev-content td {
  border: 1px solid var(--sev-border); padding: 10px 12px; text-align: left;
}
.sev-content th { background: var(--sev-surface-2); font-weight: 650; color: var(--sev-navy); }
.sev-content code {
  font-family: var(--sev-font-mono); font-size: .875em;
  background: var(--sev-surface); padding: 2px 6px; border-radius: 5px;
}
.sev-content pre {
  background: var(--sev-navy); color: #E2E8F0; padding: 18px;
  border-radius: var(--sev-radius); overflow-x: auto; font-size: 13.5px;
}
.sev-content pre code { background: none; padding: 0; color: inherit; }
.sev-content img { border-radius: var(--sev-radius); }
.sev-content figcaption { font-size: 13px; color: var(--sev-muted); margin-top: 8px; text-align: center; }

/* =========================================================================
   10. Footer
   ========================================================================= */
.sev-site-footer {
  background: var(--sev-navy); color: rgba(255,255,255,.66);
  font-size: 14px; margin-top: clamp(48px, 6vw, 80px);
}
/* Brand block plus four menu columns, on one row. The brand gets the widest
   share; the four menus share what is left. minmax(0,1fr) on the menu tracks
   rather than plain 1fr is deliberate — a grid track's default minimum is
   auto, so a long category name ("Test Kits & Verification") would refuse to
   shrink and push the row wider than its container instead of wrapping. */
.sev-footer-top {
  display: grid;
  /* Weighted to the actual label lengths: the Resources column carries full
     article titles and the Navigation column carries short single words, so
     equal tracks made one column wrap on every line and left the other half
     empty. */
  grid-template-columns:
    minmax(0, 1.30fr) minmax(0, 1fr) minmax(0, 1.34fr)
    minmax(0, 0.86fr) minmax(0, 0.80fr);
  gap: 32px; padding-block: 56px 40px;
  align-items: start;
}
.sev-footer-top h4 {
  color: #fff; font-size: 12.5px; letter-spacing: .1em;
  text-transform: uppercase; margin-bottom: 16px; font-weight: 700;
}
.sev-footer-top ul { list-style: none; margin: 0; padding: 0; }
.sev-footer-top li { margin-bottom: 10px; }
.sev-footer-top a { color: rgba(255,255,255,.66); text-decoration: none; }
.sev-footer-top a:hover { color: #fff; text-decoration: none; }
.sev-footer-col { min-width: 0; }
.sev-footer-count {
  color: rgba(255,255,255,.32); font-size: 11.5px;
  font-variant-numeric: tabular-nums;
}
.sev-footer-brand p { max-width: 36ch; margin-top: 14px; line-height: 1.7; }
.sev-footer-widgets { padding-block: 36px; border-top: 1px solid rgba(255,255,255,.1); }
.sev-footer-widgets .sev-grid { gap: 32px; }
/* Keep widget columns to a sane measure instead of stretching one column
   edge-to-edge and leaving half the row as dead space. */
.sev-footer-widgets .sev-grid > div { max-width: 340px; }
.sev-footer-widgets .sev-grid--1 { grid-template-columns: minmax(0, 340px); }
.sev-footer-widget__title { color: #fff; font-size: 12.5px; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 14px; }
/* Widgets dropped into the footer inherit the dark surface, not the page. */
.sev-footer-widget,
.sev-footer-widget * { color: rgba(255,255,255,.66); }
.sev-footer-widget h1, .sev-footer-widget h2, .sev-footer-widget h3,
.sev-footer-widget h4, .sev-footer-widget h5, .sev-footer-widget h6,
.sev-footer-widget strong, .sev-footer-widget b { color: #fff; }
.sev-footer-widget ul { list-style: none; margin: 0; padding: 0; }
.sev-footer-widget li { margin-bottom: 9px; }
.sev-footer-widget li::marker { content: ""; }
.sev-footer-widget a { color: rgba(255,255,255,.66); text-decoration: none; }
.sev-footer-widget a:hover { color: #fff; text-decoration: none; }
.sev-footer-widget .wp-block-heading { font-size: 12.5px; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 14px; }
.sev-footer-widget img { border-radius: var(--sev-radius-sm); }
.sev-footer-widget select,
.sev-footer-widget input[type="text"],
.sev-footer-widget input[type="search"] {
  background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.18);
  color: #fff;
}
.sev-footer-widget a { color: rgba(255,255,255,.66); }
.sev-footer-widget a:hover { color: #fff; }

.sev-footer-trust {
  display: flex; flex-wrap: wrap; gap: 10px 26px;
  padding-block: 20px; border-top: 1px solid rgba(255,255,255,.1);
  font-size: 12.5px; color: rgba(255,255,255,.55);
}
.sev-footer-trust span { display: inline-flex; align-items: center; gap: 7px; }

.sev-footer-legal {
  display: flex; flex-wrap: wrap; gap: 10px 24px;
  align-items: center; justify-content: space-between;
  padding-block: 20px 28px; border-top: 1px solid rgba(255,255,255,.1);
  font-size: 12.5px; color: rgba(255,255,255,.45);
}
.sev-footer-legal a { color: rgba(255,255,255,.45); }
.sev-footer-legal a:hover { color: #fff; }
.sev-footer-legal__links {
  display: flex; flex-wrap: wrap; gap: 6px 20px;
  align-items: center;
}
/* Hairline between links so a bare run of four reads as a row of separate
   items rather than one long sentence. */
.sev-footer-legal__links a + a {
  position: relative;
}
.sev-footer-legal__links a + a::before {
  content: ""; position: absolute; left: -10px; top: 50%;
  width: 1px; height: 10px; margin-top: -5px;
  background: rgba(255,255,255,.16);
}

@media (max-width: 1180px) {
  /* Brand on its own row above, so the four menus stay aligned with each
     other instead of one orphan column wrapping onto a second line. */
  .sev-footer-top {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 32px 28px; padding-block: 48px 32px;
  }
  .sev-footer-brand { grid-column: 1 / -1; }
  .sev-footer-brand p { max-width: 52ch; }
}
@media (max-width: 860px) {
  .sev-footer-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .sev-footer-top { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .sev-footer-brand { grid-column: auto; }
  .sev-footer-legal { flex-direction: column; align-items: flex-start; }
}

/* =========================================================================
   11. Pagination
   ========================================================================= */
.pagination, .woocommerce-pagination { margin-block: 36px; }
.pagination .nav-links,
.woocommerce-pagination ul.page-numbers,
.woocommerce nav.woocommerce-pagination ul {
  display: flex; flex-wrap: wrap; gap: 6px; justify-content: center;
  list-style: none; margin: 0; padding: 0; border: 0;
}
.pagination .page-numbers,
.woocommerce-pagination .page-numbers,
.woocommerce nav.woocommerce-pagination ul li .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 42px; height: 42px; padding: 0 12px;
  border: 1px solid var(--sev-border); border-radius: var(--sev-radius-sm);
  background: #fff; color: var(--sev-text);
  font-size: 14px; font-weight: 600; text-decoration: none;
  transition: border-color var(--sev-fast), background var(--sev-fast);
}
.pagination .page-numbers:hover,
.woocommerce nav.woocommerce-pagination ul li .page-numbers:hover {
  border-color: var(--sev-cyan); color: var(--sev-navy); text-decoration: none;
}
.pagination .page-numbers.current,
.woocommerce nav.woocommerce-pagination ul li .page-numbers.current {
  background: var(--sev-navy); border-color: var(--sev-navy); color: #fff;
}

/* =========================================================================
   12. Posts & archives
   ========================================================================= */
.sev-post-card {
  display: flex; flex-direction: column;
  background: #fff; border: 1px solid var(--sev-border);
  border-radius: var(--sev-radius-lg); overflow: hidden;
  transition: box-shadow var(--sev-fast), transform var(--sev-fast), border-color var(--sev-fast);
}
.sev-post-card:hover {
  box-shadow: var(--sev-shadow-lg); border-color: var(--sev-border-strong);
  transform: translateY(-2px);
}
.sev-post-card__media { aspect-ratio: 16 / 10; background: var(--sev-surface); overflow: hidden; }
.sev-post-card__media img { width: 100%; height: 100%; object-fit: cover; }
.sev-post-card__body { padding: 20px 22px 24px; display: flex; flex-direction: column; flex: 1; }
.sev-post-card__body h2, .sev-post-card__body h3 { font-size: 1.0625rem; margin-bottom: .4em; }
.sev-post-card__body h2 a, .sev-post-card__body h3 a { color: var(--sev-navy); }
.sev-post-card__meta {
  font-size: 12.5px; color: var(--sev-muted); margin-bottom: 10px;
  display: flex; gap: 10px; flex-wrap: wrap;
}
.sev-post-card__excerpt { font-size: 14.5px; color: var(--sev-text); margin-bottom: 0; }
.sev-post-card__body .sev-btn { margin-top: auto; align-self: flex-start; }

.sev-empty {
  text-align: center; padding-block: clamp(48px, 8vw, 96px);
  color: var(--sev-muted);
}
.sev-empty h2 { margin-bottom: .35em; }

/* =========================================================================
   13. Elementor & builder compatibility
   When a builder owns the page, the coded chrome steps back but the header,
   footer and breadcrumbs stay so the site is never visually orphaned.
   ========================================================================= */
.elementor-page .sev-page-head,
.elementor-template-canvas .sev-page-head { display: none; }
.elementor-page .sev-content { padding-block: 0; }
.elementor-location-header .sev-site-header,
.elementor-location-footer .sev-site-footer { display: none; }

.sev-builder-content { width: 100%; }
.sev-builder-content > .elementor { width: 100%; }

/* Elementor kit variables pass-through so widgets inherit brand colours */
.elementor-kit-1 {
  --e-global-color-primary: var(--sev-navy);
  --e-global-color-secondary: var(--sev-navy-2);
  --e-global-color-text: var(--sev-text);
  --e-global-color-accent: var(--sev-teal);
}

/* =========================================================================
   14. Utilities
   ========================================================================= */
.sev-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sev-mt-0 { margin-top: 0 !important; }
.sev-mb-0 { margin-bottom: 0 !important; }
.sev-flex { display: flex; }
.sev-flex-wrap { flex-wrap: wrap; }
.sev-items-center { align-items: center; }
.sev-justify-between { justify-content: space-between; }
.sev-gap-sm { gap: 10px; }
.sev-gap { gap: 20px; }

/* =========================================================================
   Guides hub
   -------------------------------------------------------------------------
   The guides route in inc/seo.php renders its own markup (hub-card, hub-grid,
   hub-cta, hub-status). Those classes had no styles in this theme, so the hub
   collapsed into an unstyled list of giant underlined headings. Styled here to
   match the rest of the theme rather than shipped as a bare fragment.
   ========================================================================= */
.sevroth-guides-hub { padding-block: 8px 0; }

.hub-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 20px;
  margin-block: 8px 40px;
}

.hub-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 22px 24px 24px;
  background: #fff;
  border: 1px solid var(--sev-border);
  border-radius: var(--sev-radius-lg);
  text-decoration: none;
  transition: border-color var(--sev-fast) var(--sev-ease),
              box-shadow var(--sev-fast) var(--sev-ease),
              transform var(--sev-fast) var(--sev-ease);
}
.hub-card:hover {
  border-color: var(--sev-cyan);
  box-shadow: var(--sev-shadow-lg);
  transform: translateY(-2px);
  text-decoration: none;
}
.hub-card h2,
.hub-card h3 {
  font-family: var(--sev-font-display);
  font-size: 1.0625rem;
  line-height: 1.35;
  color: var(--sev-navy);
  margin: 0;
  text-decoration: none;
}
.hub-card p {
  font-size: 14px;
  color: var(--sev-muted);
  margin: 0;
}
.hub-card .hub-meta,
.hub-card time {
  font-size: 12.5px;
  color: var(--sev-muted);
  font-variant-numeric: tabular-nums;
}
.hub-card .hub-status,
.hub-status {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 2px 9px;
  border-radius: var(--sev-radius-pill);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  background: var(--sev-surface);
  color: var(--sev-muted);
}
.hub-status--published { background: var(--sev-verified-bg); color: var(--sev-verified); }
.hub-status--review    { background: var(--sev-warning-bg); color: var(--sev-warning); }

.hub-cta {
  margin-block: 8px 12px;
  padding: 32px 28px;
  border-radius: var(--sev-radius-lg);
  background: linear-gradient(150deg, var(--sev-navy) 0%, var(--sev-navy-2) 100%);
  color: #fff;
}
.hub-cta h2 { color: #fff; font-size: 1.25rem; margin-bottom: .35em; }
.hub-cta p { color: rgba(255,255,255,.72); margin-bottom: 18px; font-size: 14.5px; }
.hub-cta .btn,
.hub-cta a.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 22px;
  border-radius: var(--sev-radius);
  background: var(--sev-teal);
  color: var(--sev-navy);
  font-weight: 700;
  font-size: 14.5px;
  text-decoration: none;
}
.hub-cta a.btn:hover { background: var(--sev-teal-dark); color: var(--sev-navy); text-decoration: none; }

/* ==========================================================================
   HOME / FRONT PAGE
   Coded commerce homepage. Every rule here is scoped to the front page or to
   the sections front-page.php emits, so nothing leaks into archive, product
   or builder-driven pages.
   ========================================================================== */

/* --- Hero ---------------------------------------------------------------- */

.sev-hero {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient( 1100px 520px at 78% -12%, rgba( 0, 212, 170, 0.18 ), transparent 62% ),
		radial-gradient( 820px 460px at 8% 112%, rgba( 14, 165, 233, 0.14 ), transparent 60% ),
		var(--sev-navy );
	color: var(--sev-white );
	padding: clamp( 56px, 7vw, 104px ) 0 clamp( 56px, 6vw, 92px );
}

.sev-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image: linear-gradient( rgba( 255, 255, 255, 0.04 ) 1px, transparent 1px ),
		linear-gradient( 90deg, rgba( 255, 255, 255, 0.04 ) 1px, transparent 1px );
	background-size: 64px 64px;
	mask-image: linear-gradient( to bottom, rgba( 0, 0, 0, 0.5 ), transparent 70% );
}

.sev-hero__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax( 0, 1.15fr ) minmax( 0, 0.85fr );
	gap: clamp( 32px, 5vw, 72px );
	align-items: center;
}

.sev-hero__copy .sev-kicker {
	color: var(--sev-teal );
	margin-bottom: 18px;
}

.sev-hero h1 {
	color: var(--sev-white );
	font-size: clamp( 30px, 4.2vw, 52px );
	line-height: 1.1;
	letter-spacing: -0.025em;
	max-width: 20ch;
	margin: 0 0 20px;
}

.sev-hero__lede {
	color: rgba( 255, 255, 255, 0.76 );
	font-size: 1.0625rem;
	line-height: 1.65;
	max-width: 56ch;
	margin: 0 0 28px;
}

.sev-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 32px;
}

.sev-hero .sev-btn--ghost {
	color: var(--sev-white );
	border-color: rgba( 255, 255, 255, 0.28 );
}

.sev-hero .sev-btn--ghost:hover,
.sev-hero .sev-btn--ghost:focus-visible {
	color: var(--sev-navy );
	background: var(--sev-white );
	border-color: var(--sev-white );
}

.sev-hero__proof {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 22px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.875rem;
	color: rgba( 255, 255, 255, 0.68 );
}

.sev-hero__proof li {
	position: relative;
	padding-left: 20px;
}

.sev-hero__proof li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.45em;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--sev-teal );
	box-shadow: 0 0 0 3px rgba( 0, 212, 170, 0.2 );
}

/* --- Hero certificate panel ---------------------------------------------- */

.sev-hero__panel {
	display: flex;
	justify-content: flex-end;
}

.sev-hero__card {
	width: 100%;
	max-width: 380px;
	background: rgba( 17, 24, 39, 0.82 );
	border: 1px solid rgba( 255, 255, 255, 0.12 );
	border-radius: var(--sev-radius-lg );
	padding: 26px 26px 22px;
	box-shadow: var(--sev-shadow-lg );
	backdrop-filter: blur( 6px );
}

.sev-hero__card-label {
	margin: 0 0 18px;
	font-family: var(--sev-font-mono );
	font-size: 0.6875rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--sev-teal );
}

.sev-hero__card-rows {
	margin: 0 0 18px;
	display: grid;
	gap: 11px;
}

.sev-hero__card-rows > div {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	padding-bottom: 10px;
	border-bottom: 1px dashed rgba( 255, 255, 255, 0.1 );
}

.sev-hero__card-rows > div:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.sev-hero__card-rows dt {
	color: rgba( 255, 255, 255, 0.55 );
	font-size: 0.8125rem;
	margin: 0;
}

.sev-hero__card-rows dd {
	margin: 0;
	font-family: var(--sev-font-mono );
	font-size: 0.875rem;
	color: var(--sev-white );
	text-align: right;
}

.sev-hero__card-foot {
	margin: 0;
	padding-top: 14px;
	border-top: 1px solid rgba( 255, 255, 255, 0.1 );
	font-size: 0.75rem;
	letter-spacing: 0.02em;
	color: #5eead4;
}

/* --- Generic section + heading row --------------------------------------- */

/* Vertical rhythm already comes from .sev-section above (--sev-section-y). */

.sev-section--cats,
.sev-section--teaser {
	background: var(--sev-surface );
}

.sev-section--proof {
	background: var(--sev-white );
}

.sev-section__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px 24px;
	margin-bottom: clamp( 22px, 3vw, 34px );
}

.sev-section__head h2 {
	margin: 0;
	font-size: clamp( 22px, 2.6vw, 32px );
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--sev-navy );
}

.sev-section__more {
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--sev-cyan-dark );
	text-decoration: none;
	white-space: nowrap;
}

.sev-section__more:hover,
.sev-section__more:focus-visible {
	color: var(--sev-teal-dark );
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* --- Category rail ------------------------------------------------------- */

.sev-cat-rail {
	display: grid;
	grid-template-columns: repeat( 4, minmax( 0, 1fr ) );
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sev-cat-tile {
	display: flex;
	flex-direction: column;
	gap: 6px;
	height: 100%;
	padding: 18px 18px 16px;
	background: var(--sev-white );
	border: 1px solid var(--sev-border );
	border-radius: var(--sev-radius-lg );
	text-decoration: none;
	transition: border-color var(--sev-fast ) var(--sev-ease ),
		box-shadow var(--sev-fast ) var(--sev-ease ),
		transform var(--sev-fast ) var(--sev-ease );
}

.sev-cat-tile:hover,
.sev-cat-tile:focus-visible {
	border-color: var(--sev-teal );
	box-shadow: var(--sev-shadow );
	transform: translateY( -2px );
}

.sev-cat-tile__name {
	font-family: var(--sev-font-display );
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.3;
	color: var(--sev-navy );
}

.sev-cat-tile__count {
	font-size: 0.8125rem;
	color: var(--sev-muted );
}

/* --- Product grid on the homepage ---------------------------------------- */

.sev-home-products {
	margin: 0 !important;
}

/* --- Proof / guide cards ------------------------------------------------- */

.sev-proof-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 24px 24px 22px;
	background: var(--sev-surface-2 );
	border: 1px solid var(--sev-border );
	border-radius: var(--sev-radius-lg );
}

.sev-proof-card h3 {
	margin: 0 0 10px;
	font-size: 1.0625rem;
	line-height: 1.35;
	color: var(--sev-navy );
}

.sev-proof-card h3 a {
	color: inherit;
	text-decoration: none;
}

.sev-proof-card h3 a:hover,
.sev-proof-card h3 a:focus-visible {
	color: var(--sev-cyan-dark );
	text-decoration: underline;
	text-underline-offset: 3px;
}

.sev-proof-card p {
	margin: 0 0 12px;
	font-size: 0.9375rem;
	line-height: 1.65;
	color: var(--sev-muted );
}

.sev-proof-card p:last-child {
	margin-bottom: 0;
	margin-top: auto;
}

.sev-proof-card p a {
	font-weight: 600;
	color: var(--sev-cyan-dark );
	text-decoration: none;
}

.sev-proof-card p a:hover,
.sev-proof-card p a:focus-visible {
	color: var(--sev-teal-dark );
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* --- Closing CTA band ---------------------------------------------------- */

.sev-cta-band {
	background: linear-gradient( 115deg, var(--sev-navy ) 0%, #16213c 62%, #10304a 100% );
	color: var(--sev-white );
}

.sev-cta-band__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 24px 40px;
}

.sev-cta-band h2 {
	margin: 0 0 8px;
	font-size: clamp( 21px, 2.5vw, 30px );
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--sev-white );
}

.sev-cta-band p {
	margin: 0;
	max-width: 62ch;
	color: rgba( 255, 255, 255, 0.74 );
	line-height: 1.6;
}

.sev-cta-band__actions {
	flex: 0 0 auto;
	margin: 0;
}

/* --- Responsive ---------------------------------------------------------- */

@media ( max-width: 1024px ) {
	.sev-hero__inner {
		grid-template-columns: minmax( 0, 1fr );
	}

	.sev-hero__panel {
		justify-content: flex-start;
	}

	.sev-hero h1 {
		max-width: 26ch;
	}

	.sev-cat-rail {
		grid-template-columns: repeat( 3, minmax( 0, 1fr ) );
	}
}

@media ( max-width: 720px ) {
	.sev-cat-rail {
		grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
	}

	.sev-hero__card {
		max-width: none;
	}

	.sev-cta-band__actions .sev-btn {
		width: 100%;
		text-align: center;
	}
}

@media ( max-width: 420px ) {
	.sev-cat-rail {
		grid-template-columns: minmax( 0, 1fr );
	}

	.sev-hero__proof {
		flex-direction: column;
		gap: 8px;
	}
}

/* =========================================================================
   16. Blog index, single post, FAQ
   -------------------------------------------------------------------------
   Written against the same tokens as the rest of the theme. Two rules hold
   throughout: nothing here sets a fixed pixel width that a phone cannot
   satisfy, and every interactive element is a real link or button so the
   pages work without JavaScript.
   ========================================================================= */

/* --- Shared bits ------------------------------------------------------- */

.sev-page-head__lede {
  max-width: 68ch;
}

.sev-pill {
  display: inline-block;
  padding: 4px 11px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .01em;
  border-radius: var(--sev-radius-pill);
  background: var(--sev-surface);
  border: 1px solid var(--sev-border);
  color: var(--sev-muted);
  transition: color var(--sev-fast), border-color var(--sev-fast), background var(--sev-fast);
}
.sev-pill:hover {
  color: var(--sev-navy);
  border-color: var(--sev-border-strong);
  background: #fff;
}

/* --- Blog index -------------------------------------------------------- */

.sev-blog {
  padding-block: clamp(28px, 4vw, 48px) var(--sev-section-y);
}

.sev-blog__intro {
  max-width: var(--sev-narrow);
  margin: 0 auto clamp(28px, 4vw, 44px);
}

/* Category shelves: the reader picks a subject before scrolling a stream. */
.sev-blog__shelves {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: clamp(32px, 5vw, 56px);
}

.sev-shelf {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 20px 22px 18px;
  background: #fff;
  border: 1px solid var(--sev-border);
  border-radius: var(--sev-radius-lg);
  color: inherit;
  text-decoration: none;
  transition: box-shadow var(--sev-fast), transform var(--sev-fast), border-color var(--sev-fast);
}
.sev-shelf:hover {
  box-shadow: var(--sev-shadow);
  border-color: var(--sev-border-strong);
  transform: translateY(-2px);
}
.sev-shelf__label {
  font-family: var(--sev-font-display);
  font-weight: 700;
  font-size: 1.0625rem;
  color: var(--sev-navy);
}
.sev-shelf__count {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--sev-teal-dark);
}
.sev-shelf__blurb {
  font-size: 14px;
  color: var(--sev-text);
  line-height: 1.55;
}
.sev-shelf__more {
  margin-top: auto;
  padding-top: 10px;
  font-size: 13px;
  font-weight: 600;
  color: var(--sev-cyan-dark);
}

/* Lead article */
.sev-blog__stream {
  display: block;
}

.sev-lead-post {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  gap: clamp(20px, 3vw, 40px);
  align-items: center;
  padding: clamp(22px, 3vw, 34px);
  background: #fff;
  border: 1px solid var(--sev-border);
  border-radius: var(--sev-radius-lg);
  margin-bottom: clamp(24px, 3vw, 36px);
}
.sev-lead-post__body h2 {
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  line-height: 1.2;
  margin-bottom: .5em;
}
.sev-lead-post__body h2 a { color: var(--sev-navy); }
.sev-lead-post__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  font-size: 12.5px;
  color: var(--sev-muted);
  margin-bottom: 14px;
}
.sev-lead-post__excerpt {
  font-size: 15.5px;
  line-height: 1.6;
  color: var(--sev-text);
  margin-bottom: 20px;
}
.sev-lead-post__media {
  display: block;
  aspect-ratio: 16 / 10;
  border-radius: var(--sev-radius);
  overflow: hidden;
  background: var(--sev-surface);
}
.sev-lead-post__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sev-blog__grid {
  margin-bottom: clamp(24px, 4vw, 40px);
}

/* Closing CTA — keeps an editorial page one click from commerce. */
.sev-blog__cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  margin-top: clamp(32px, 5vw, 56px);
  padding: clamp(24px, 3vw, 36px);
  border-radius: var(--sev-radius-lg);
  background: linear-gradient(150deg, var(--sev-navy) 0%, var(--sev-navy-3) 100%);
  color: #fff;
}
.sev-blog__cta h2 {
  color: #fff;
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  margin-bottom: .35em;
}
.sev-blog__cta p {
  color: rgba(255, 255, 255, .74);
  font-size: 14.5px;
  max-width: 52ch;
  margin: 0;
}
.sev-blog__cta-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.sev-blog__cta .sev-btn--ghost {
  color: #fff;
  border-color: rgba(255, 255, 255, .28);
}
.sev-blog__cta .sev-btn--ghost:hover {
  background: rgba(255, 255, 255, .1);
  color: #fff;
}

/* --- Single post ------------------------------------------------------- */

.sev-post-hero {
  margin: 0 0 clamp(24px, 3vw, 36px);
  border-radius: var(--sev-radius-lg);
  overflow: hidden;
  background: var(--sev-surface);
}
.sev-post-hero img {
  width: 100%;
  height: auto;
  display: block;
}

.sev-post-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: clamp(24px, 3vw, 36px) 0 0;
  padding-top: 22px;
  border-top: 1px solid var(--sev-border);
}

/* "Next" block appended by sevroth_blog_render_body(). */
.sev-post-next {
  margin: clamp(26px, 3vw, 38px) 0;
  padding: 22px 24px;
  border-radius: var(--sev-radius-lg);
  border: 1px solid var(--sev-border);
  background: var(--sev-surface-2);
}
.sev-post-next__label {
  font-size: 11.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--sev-muted);
  margin-bottom: 10px;
}
.sev-post-next ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.sev-post-next li a {
  font-weight: 600;
  color: var(--sev-cyan-dark);
}
.sev-post-next li a::after {
  content: " →";
}

.sev-post-related {
  margin-top: clamp(36px, 5vw, 56px);
}
.sev-post-related h2 {
  font-size: 1.05rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--sev-muted);
  margin-bottom: 18px;
}

.sev-mini-card {
  padding: 18px 20px;
  background: #fff;
  border: 1px solid var(--sev-border);
  border-radius: var(--sev-radius);
}
.sev-mini-card__meta {
  font-size: 12px;
  color: var(--sev-muted);
  margin-bottom: 8px;
}
.sev-mini-card h3 {
  font-size: 1rem;
  margin-bottom: .4em;
}
.sev-mini-card h3 a { color: var(--sev-navy); }
.sev-mini-card p:last-child {
  font-size: 13.5px;
  color: var(--sev-text);
  margin-bottom: 0;
}

.sev-post-nav {
  margin-top: clamp(30px, 4vw, 44px);
}
.sev-post-nav .nav-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.sev-post-nav a {
  display: block;
  padding: 16px 18px;
  border: 1px solid var(--sev-border);
  border-radius: var(--sev-radius);
  text-decoration: none;
  transition: border-color var(--sev-fast), box-shadow var(--sev-fast);
}
.sev-post-nav a:hover {
  border-color: var(--sev-border-strong);
  box-shadow: var(--sev-shadow-sm);
}
.sev-post-nav__label {
  display: block;
  font-size: 11.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: var(--sev-muted);
  margin-bottom: 4px;
}
.sev-post-nav__title {
  font-weight: 600;
  color: var(--sev-navy);
  font-size: 14.5px;
  line-height: 1.35;
}
.sev-post-nav .nav-next {
  text-align: right;
}

/* --- Comments ---------------------------------------------------------- */

.sev-comments {
  margin-top: clamp(36px, 5vw, 56px);
  padding-top: clamp(26px, 3vw, 38px);
  border-top: 1px solid var(--sev-border);
}
.sev-comments__title,
.sev-comments__reply-title {
  font-size: 1.15rem;
  margin-bottom: 18px;
}
.sev-comments__list {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  display: grid;
  gap: 16px;
}
.sev-comments__list .comment-body {
  padding: 16px 18px;
  border: 1px solid var(--sev-border);
  border-radius: var(--sev-radius);
  background: #fff;
  font-size: 14.5px;
}
.sev-comments__list .comment-meta {
  font-size: 12.5px;
  color: var(--sev-muted);
  margin-bottom: 8px;
}
.sev-comments__list .children {
  list-style: none;
  margin: 14px 0 0;
  padding-left: 18px;
  border-left: 2px solid var(--sev-border);
  display: grid;
  gap: 12px;
}
.sev-comments__closed {
  font-size: 14px;
  color: var(--sev-muted);
}

/* --- FAQ --------------------------------------------------------------- */

.sev-faq-page {
  padding-block: clamp(28px, 4vw, 48px) var(--sev-section-y);
}

.sev-faq-page__intro {
  max-width: var(--sev-narrow);
  margin: 0 auto clamp(28px, 4vw, 44px);
}

.sev-faq-page__layout {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: clamp(24px, 4vw, 56px);
  align-items: start;
}

.sev-faq-page__nav {
  position: sticky;
  top: 20px;
  padding: 20px;
  border: 1px solid var(--sev-border);
  border-radius: var(--sev-radius-lg);
  background: var(--sev-surface-2);
}
.sev-faq-page__nav-label {
  font-size: 11.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--sev-muted);
  margin-bottom: 12px;
}
.sev-faq-page__nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 2px;
}
.sev-faq-page__nav li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 10px;
  border-radius: var(--sev-radius-sm);
  font-size: 13.5px;
  font-weight: 600;
  color: var(--sev-navy);
  text-decoration: none;
  transition: background var(--sev-fast), color var(--sev-fast);
}
.sev-faq-page__nav li a:hover {
  background: #fff;
  color: var(--sev-cyan-dark);
}
.sev-faq-page__nav-count {
  font-size: 11.5px;
  font-weight: 700;
  color: var(--sev-muted);
  background: #fff;
  border: 1px solid var(--sev-border);
  border-radius: var(--sev-radius-pill);
  padding: 1px 8px;
}
.sev-faq-page__nav-help {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--sev-border);
}
.sev-faq-page__nav-help p {
  font-size: 13px;
  color: var(--sev-text);
  margin-bottom: 10px;
}

.sev-faq-section {
  margin-bottom: clamp(32px, 4vw, 48px);
  scroll-margin-top: 24px;
}
.sev-faq-section__head {
  margin-bottom: 16px;
}
.sev-faq-section__head h2 {
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  margin-bottom: .3em;
}
.sev-faq-section__head p {
  font-size: 14.5px;
  color: var(--sev-muted);
  margin: 0;
  max-width: 62ch;
}

/* Accordion (shared with the [sevroth_faq] shortcode in widgets.css). */
.sev-faq {
  border: 1px solid var(--sev-border);
  border-radius: var(--sev-radius-lg);
  overflow: hidden;
  background: #fff;
}
.sev-faq__item {
  border-bottom: 1px solid var(--sev-border);
}
.sev-faq__item:last-child {
  border-bottom: 0;
}
.sev-faq__q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px;
  font-family: var(--sev-font-display);
  font-weight: 600;
  font-size: 15px;
  color: var(--sev-navy);
  cursor: pointer;
  list-style: none;
}
.sev-faq__q::-webkit-details-marker { display: none; }
.sev-faq__q::after {
  content: "+";
  flex: none;
  font-size: 19px;
  font-weight: 500;
  color: var(--sev-teal-dark);
  transition: transform var(--sev-fast);
}
.sev-faq__item[open] .sev-faq__q::after { content: "−"; }
.sev-faq__item[open] .sev-faq__q { background: var(--sev-surface-2); }
.sev-faq__a {
  padding: 0 20px 18px;
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--sev-text);
}
.sev-faq__a p { margin: 0; }

.sev-faq-page__closing {
  margin-top: clamp(32px, 4vw, 48px);
  padding: clamp(24px, 3vw, 34px);
  border-radius: var(--sev-radius-lg);
  background: var(--sev-surface-2);
  border: 1px solid var(--sev-border);
}
.sev-faq-page__closing h2 {
  font-size: clamp(1.1rem, 2vw, 1.3rem);
  margin-bottom: .4em;
}
.sev-faq-page__closing p {
  font-size: 14.5px;
  color: var(--sev-text);
  max-width: 68ch;
  margin-bottom: 18px;
}
.sev-faq-page__closing-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

/* --- Responsive -------------------------------------------------------- */

@media ( max-width: 980px ) {
  .sev-blog__shelves {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sev-faq-page__layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .sev-faq-page__nav {
    position: static;
  }

  .sev-faq-page__nav ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media ( max-width: 760px ) {
  .sev-lead-post {
    grid-template-columns: minmax(0, 1fr);
  }

  .sev-lead-post__media {
    order: -1;
  }

  .sev-post-nav .nav-links {
    grid-template-columns: minmax(0, 1fr);
  }

  .sev-post-nav .nav-next {
    text-align: left;
  }
}

@media ( max-width: 560px ) {
  .sev-blog__shelves,
  .sev-faq-page__nav ul {
    grid-template-columns: minmax(0, 1fr);
  }

  .sev-blog__cta-actions .sev-btn,
  .sev-faq-page__closing-actions .sev-btn {
    width: 100%;
    text-align: center;
  }
}

/* =========================================================================
   17. Footer widget columns
   -------------------------------------------------------------------------
   These render only when a footer sidebar is active, and on this install the
   WordPress defaults (Archives / Categories) are what land there. They were
   rendered inside a dark footer with no styling at all: default blue links,
   default list bullets, no heading treatment. Styled here rather than left
   unstyled, because an owner who adds a widget should not have to also write
   CSS for it.
   ========================================================================= */

.sev-footer-widgets {
  margin-top: clamp(24px, 3vw, 40px);
  padding-top: clamp(20px, 3vw, 32px);
  border-top: 1px solid rgba(255, 255, 255, .1);
}

.sev-footer-widgets h2,
.sev-footer-widgets h3,
.sev-footer-widgets h4,
.sev-footer-widgets .widget-title {
  font-family: var(--sev-font-display);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .55);
  margin: 0 0 12px;
}

.sev-footer-widgets ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 7px;
}

.sev-footer-widgets li a,
.sev-footer-widgets a {
  font-size: 14px;
  color: rgba(255, 255, 255, .78);
  text-decoration: none;
  transition: color var(--sev-fast);
}

.sev-footer-widgets li a:hover,
.sev-footer-widgets a:hover {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.sev-footer-widgets li {
  font-size: 14px;
  color: rgba(255, 255, 255, .78);
}

.sev-footer-widgets .count {
  color: rgba(255, 255, 255, .4);
  font-size: 12.5px;
}

.sev-footer-widgets select {
  width: 100%;
  max-width: 260px;
  padding: 9px 12px;
  border-radius: var(--sev-radius-sm);
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .16);
  color: #fff;
  font-size: 14px;
}

/* Keep the footer grid from stretching narrow widget columns edge to edge. */
.sev-footer-widgets > .sev-grid {
  align-items: start;
}

/* =========================================================================
   18. Contact page
   ========================================================================= */

.sev-contact-page {
  padding-block: clamp(28px, 4vw, 48px) var(--sev-section-y);
}

.sev-contact-page__intro {
  max-width: var(--sev-narrow);
  margin: 0 auto clamp(28px, 4vw, 44px);
}

.sev-contact__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  gap: clamp(24px, 4vw, 48px);
  align-items: start;
}

.sev-contact__h2 {
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  margin-bottom: .5em;
}

.sev-contact__form-lede {
  font-size: 14px;
  color: var(--sev-muted);
  margin-bottom: 18px;
}

/* Wrapper around whatever the form plugin outputs. Every one of them ships
   its own CSS with its own idea of spacing, so the container is neutral and
   the plugin's own styles are left alone rather than fought. */
.sev-contact__form {
  padding: clamp(20px, 3vw, 28px);
  border: 1px solid var(--sev-border);
  border-radius: var(--sev-radius-lg);
  background: #fff;
}

.sev-form-embed input[type="text"],
.sev-form-embed input[type="email"],
.sev-form-embed input[type="tel"],
.sev-form-embed input[type="url"],
.sev-form-embed textarea,
.sev-form-embed select {
  width: 100%;
  padding: 11px 14px;
  border: 1px solid var(--sev-border-strong);
  border-radius: var(--sev-radius-sm);
  font-family: var(--sev-font-body);
  font-size: 15px;
  color: var(--sev-navy);
  background: #fff;
  transition: border-color var(--sev-fast), box-shadow var(--sev-fast);
}

.sev-form-embed input:focus,
.sev-form-embed textarea:focus,
.sev-form-embed select:focus {
  outline: none;
  border-color: var(--sev-cyan);
  box-shadow: var(--sev-ring);
}

.sev-form-embed label {
  display: block;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--sev-navy);
  margin-bottom: 6px;
}

.sev-form-embed p {
  margin-bottom: 16px;
}

.sev-form-embed textarea {
  min-height: 140px;
  resize: vertical;
}

.sev-form-embed input[type="submit"],
.sev-form-embed button[type="submit"],
.sev-form-embed .wpcf7-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 13px 26px;
  border: 0;
  border-radius: var(--sev-radius-sm);
  background: var(--sev-teal);
  color: var(--sev-navy);
  font-family: var(--sev-font-display);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  transition: background var(--sev-fast), transform var(--sev-fast);
}

.sev-form-embed input[type="submit"]:hover,
.sev-form-embed button[type="submit"]:hover,
.sev-form-embed .wpcf7-submit:hover {
  background: var(--sev-teal-dark);
  color: #fff;
}

.sev-form-embed .wpcf7-not-valid-tip {
  font-size: 12.5px;
  color: var(--sev-danger);
  margin-top: 4px;
}

.sev-form-embed .wpcf7-response-output {
  margin: 18px 0 0;
  padding: 12px 16px;
  border-radius: var(--sev-radius-sm);
  font-size: 14px;
  border: 1px solid var(--sev-border);
}

.sev-form-embed .wpcf7-spinner {
  margin-left: 8px;
}

/* Fallback shown when no form plugin is active. */
.sev-contact__no-form {
  padding: clamp(20px, 3vw, 28px);
  border: 1px dashed var(--sev-border-strong);
  border-radius: var(--sev-radius-lg);
  background: var(--sev-surface-2);
}
.sev-contact__no-form p {
  font-size: 14.5px;
  color: var(--sev-text);
}
.sev-contact__no-form ol {
  margin: 0 0 16px 20px;
  padding: 0;
  font-size: 14.5px;
  color: var(--sev-text);
  display: grid;
  gap: 6px;
}
.sev-contact__fallback-note {
  margin-bottom: 0;
  font-weight: 600;
  color: var(--sev-navy);
}

/* Details column */
.sev-contact__details {
  padding: clamp(20px, 3vw, 28px);
  border: 1px solid var(--sev-border);
  border-radius: var(--sev-radius-lg);
  background: var(--sev-surface-2);
}

.sev-contact__list {
  list-style: none;
  margin: 0 0 22px;
  padding: 0;
  display: grid;
  gap: 18px;
}

.sev-contact__item {
  display: grid;
  gap: 3px;
}

.sev-contact__label {
  font-size: 11.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: var(--sev-muted);
}

.sev-contact__value {
  font-family: var(--sev-font-display);
  font-size: 15.5px;
  font-weight: 600;
  color: var(--sev-navy);
  text-decoration: none;
  word-break: break-word;
}
a.sev-contact__value:hover {
  color: var(--sev-cyan-dark);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.sev-contact__note {
  font-size: 13px;
  line-height: 1.5;
  color: var(--sev-muted);
}

.sev-contact__help {
  padding-top: 18px;
  border-top: 1px solid var(--sev-border);
}
.sev-contact__help-title {
  font-size: 11.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .09em;
  color: var(--sev-muted);
  margin-bottom: 10px;
}
.sev-contact__help ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 9px;
  font-size: 13.5px;
  color: var(--sev-text);
}
.sev-contact__help a {
  font-weight: 600;
  color: var(--sev-cyan-dark);
}

@media ( max-width: 900px ) {
  .sev-contact__grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* =========================================================================
 * 19. Batch verifier and cycles index
 * ========================================================================= */

.sev-verify__form { margin: 0 0 2.5rem; }
.sev-verify__label { display: block; font-weight: 600; margin-bottom: .6rem; }
.sev-verify__row { display: flex; gap: .75rem; flex-wrap: wrap; }
.sev-verify__input {
	flex: 1 1 260px; min-width: 0;
	padding: .8rem 1rem; font-size: 1rem;
	border: 1px solid var(--sev-border, #d6dbe4); border-radius: 10px;
	background: var(--sev-surface, #fff); color: inherit;
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	letter-spacing: .04em; text-transform: uppercase;
}
.sev-verify__input:focus { outline: 2px solid var(--sev-accent, #14b8a6); outline-offset: 1px; }
.sev-verify__hint { margin: .75rem 0 0; font-size: .9rem; opacity: .72; }

.sev-verify__result {
	border: 1px solid var(--sev-border, #d6dbe4);
	border-radius: 14px; padding: 1.5rem; margin: 0 0 2rem;
	background: var(--sev-surface, #fff);
}
.sev-verify__result--hit { border-color: #14b8a6; }
.sev-verify__result--miss { border-color: #e0a03c; }
.sev-verify__result h2 { margin-top: 0; }

.sev-verify__card { display: flex; gap: 1.25rem; align-items: flex-start; flex-wrap: wrap; }
.sev-verify__card img { border-radius: 10px; flex: 0 0 auto; }
.sev-verify__card dl { display: grid; grid-template-columns: max-content 1fr; gap: .4rem 1.25rem; margin: 0; }
.sev-verify__card dt { font-weight: 600; font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; opacity: .7; }
.sev-verify__card dd { margin: 0; }
.sev-verify__card code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.sev-verify__note { font-size: .92rem; opacity: .8; margin-bottom: 0; }

.sev-verify__sub { margin-top: 2.5rem; }
.sev-verify__list { list-style: none; padding: 0; margin: 0 0 2rem; display: grid; gap: .5rem; }
.sev-verify__list li { padding: .6rem 0; border-bottom: 1px solid var(--sev-border, #e6ebf2); }
.sev-verify__list code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .85em; opacity: .8; }

.sev-cycles__intro { font-size: 1.05rem; max-width: 68ch; }
.sev-cycles__grid {
	display: grid; gap: 1.5rem; margin: 2rem 0;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
.sev-cycles__card {
	border: 1px solid var(--sev-border, #d6dbe4); border-radius: 16px; overflow: hidden;
	background: var(--sev-surface, #fff); display: flex; flex-direction: column;
}
.sev-cycles__img { display: block; background: #f4f6fa; }
.sev-cycles__img img { display: block; width: 100%; height: auto; }
.sev-cycles__body { padding: 1.25rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.sev-cycles__body h2 { margin: 0; font-size: 1.15rem; }
.sev-cycles__body h2 a { text-decoration: none; }
.sev-cycles__body p { margin: 0; font-size: .95rem; }
.sev-cycles__price { font-weight: 700; font-size: 1.1rem; }
.sev-cycles__body .sev-btn { margin-top: auto; text-align: center; }
