  <link rel="stylesheet" href="/assets/theme.css.php" />

  <style>
    :root{
      --bg:#0b0c10; --surface:#11131a; --text:#e9edf3; --muted:#9aa3b2;
      --accent:#69b1ff; --accent-2:#7ef0c7; --card:#171a22; --ring:rgba(105,177,255,.4);
      --radius:14px; --shadow:0 2px 8px rgba(0,0,0,.25), 0 12px 24px rgba(0,0,0,.18);
      --font: Inter, system-ui, sans-serif;
    }
    @media (prefers-color-scheme: light){
      :root{ --bg:#f6f7fb; --surface:#fff; --text:#121722; --muted:#5a6375;
             --accent:#0b6bcb; --accent-2:#0f9d58; --card:#fff; --ring:rgba(11,107,203,.25); }
    }


    *,*::before,*::after{ box-sizing:border-box }
    html,body{ height:100% }
    body{ margin:0; font:16px/1.6 var(--font);
      color:var(--text); background:radial-gradient(900px 500px at 10% -10%,rgba(105,177,255,.15),transparent 60%),
      radial-gradient(700px 400px at 90% -20%,rgba(126,240,199,.12),transparent 60%), var(--bg);}
    a{ color:var(--accent); text-decoration:none }
    a:hover{ text-decoration:underline }
    .container{ max-width:1120px; margin:0 auto; padding:24px clamp(16px,3vw,32px) 64px }


/* === Responsive Images (Global) === */
img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* === Hero Image Utility === */
/* Use on top banners or feature graphics */
.hero img,
img.hero-img {
  width: 100%;
  height: auto;
  object-fit: cover;
  border: 0;
  vertical-align: middle;
}

/* Optional: maintain aspect ratio for hero sections */
.hero {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
}

@media (max-width: 768px) {
  .hero {
    aspect-ratio: 4 / 3; /* taller on small screens */
  }
}



    header.site{ position:sticky; top:0; z-index:10; backdrop-filter:blur(6px);
      background:linear-gradient(180deg,rgba(255,255,255,.06),transparent); border-bottom:1px solid rgba(255,255,255,.08)}
    .brand{ display:flex; align-items:center; gap:12px; padding:12px 0 }
    .logo{ width:32px; height:32px; border-radius:8px; background:conic-gradient(from 200deg,var(--accent),var(--accent-2)); box-shadow:var(--shadow) }
    nav a{ margin-right:16px; font-size:14px; color:var(--muted) }
    nav a.active{ color:var(--text); font-weight:600 }
    .hero{ display:grid; grid-template-columns:1.3fr 1fr; gap:24px; align-items:center; margin-top:12px }
    @media (max-width:900px){ .hero{ grid-template-columns:1fr } }

    .h1{ font-size:clamp(26px,4vw,40px); margin:8px 0 8px; letter-spacing:.2px }
    .sub{ color:var(--muted); margin:0 0 16px }
    .cta{ display:inline-flex; gap:10px; align-items:center; background:var(--accent); color:white;
      padding:10px 16px; border-radius:10px; box-shadow:var(--shadow) }
    .cta.secondary{ background:transparent; color:var(--accent); border:1px solid var(--accent) }
    .card{ background:var(--card); border:1px solid rgba(255,255,255,.12); border-radius:var(--radius); padding:16px; box-shadow:var(--shadow) }
    .grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px }
    h2{ font-size:clamp(20px,3vw,28px); margin:24px 0 8px }
    .tabs{ display:flex; gap:8px; flex-wrap:wrap }
    .tab{ padding:8px 12px; border-radius:999px; border:1px solid rgba(255,255,255,.18); background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(0,0,0,.04)); cursor:pointer }
    .tab[aria-selected="true"]{ outline:3px solid var(--ring) }
    .badge{ font-size:12px; padding:2px 8px; border-radius:999px; border:1px solid rgba(255,255,255,.18); color:var(--muted) }
    .muted{ color:var(--muted) }
    .list{ display:grid; gap:12px; }
    .list li{ display:flex; gap:10px; align-items:flex-start }

    img[class^="media"]{ width:100%; height:auto; border-radius:12px; display:block; background:#222; object-fit:cover }
    .template-filters{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:8px }
    .pill{ border:1px solid rgba(255,255,255,.18); border-radius:999px; padding:6px 10px; cursor:pointer; color:var(--muted) }
    .pill[aria-pressed="true"]{ outline:3px solid var(--ring); color:var(--text) }
    .cap-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px }
    .cap-grid .cap{ display:grid; gap:6px }
    .faq details{ background:var(--card); border:1px solid rgba(255,255,255,.12); border-radius:12px; padding:12px }
    .faq summary{ cursor:pointer; font-weight:600 }
    footer.site{ margin-top:36px; padding-top:16px; border-top:1px dashed rgba(255,255,255,.18); color:var(--muted); font-size:14px }
    :focus-visible{ outline:3px solid var(--accent); outline-offset:2px; border-radius:8px }
  </style>

  <style> :root { --text-strong:#ffffff } h1,h2,h3,h4,h5,h6{ color:var(--text-strong,#ffffff) } </style>


<scripts>

/* 1) Base responsive media */
img, video { max-width: 100%; height: auto; display: block; }

/* 2) Hero full-width and width-based scaling */
.hero { width: 100%; border-radius: 12px; overflow: hidden; }
.hero img {
  width: 100% !important;
  height: auto !important;            /* use cover only if you want cropping */
  display: block;
  /* If you DO want a cropped banner, swap the two lines below */
  /* height: clamp(220px, 45vw, 560px); object-fit: cover; */
}

/* 3) Neutralize TinyMCE inline/attribute sizing */
.hero img[width], .hero img[height],
.hero img[style*="width"], .hero img[style*="height"] {
  width: 100% !important;
  height: auto !important;
}

/* 4) If the hero is inside a .row flex container, force full row */
.row .hero { flex: 0 0 100%; }

</script>



<script>
/* resize text to viewport (mobiles etc.)   */
/* base and headings scale by viewport */
html { font-size: clamp(15px, 2.6vw, 18px); }
h1   { font-size: clamp(28px, 6vw, 44px); line-height: 1.15; }
h2   { font-size: clamp(22px, 4.2vw, 32px); }

/* comfortable container */
.container { max-width: 1100px; margin: 0 auto; padding: 16px; }
@media (min-width: 768px){ .container { padding: 24px; } }
</script>



<script>


/* Basic dropdown for nested menus */
.nav-header ul { list-style:none; margin:0; padding:0; display:flex; gap:1rem; }
.nav-header li { position:relative; }
.nav-header > ul > li > a { text-decoration:none; display:inline-block; padding:6px 8px; }

/* 2nd level and deeper */
.nav-header li ul {
  display:none;
  position:absolute;
  left:0; top:100%;
  min-width: 220px;
  background: var(--surface, #fff);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 8px;
  padding: 8px 0;
  box-shadow: 0 10px 25px rgba(0,0,0,.12);
  z-index: 50;
}
.nav-header li:hover > ul,
.nav-header li:focus-within > ul { display:block; }

.nav-header li ul li { display:block; }
.nav-header li ul a {
  display:block; padding:8px 12px; text-decoration:none;
  color: var(--text, #111);
}
.nav-header li ul a:hover { background: var(--active-bg, rgba(0,0,0,.06)); }

/* Mark active links (server or client adds .active on <li>) */
.nav-header li.active > a { font-weight:700; text-decoration:underline; }

/* Mobile: stack and show all children inline when menu is toggled open */
@media (max-width: 800px){
  #primary-nav[data-open="true"] ul { display:block; }
  .nav-header ul { flex-direction:column; gap:0; }
  .nav-header li ul {
    position:static; border:0; box-shadow:none; padding:0; display:none;
  }
  .nav-header li:focus-within > ul,
  .nav-header li.open > ul { display:block; }
}


/* ===== Global nav defaults for all locations ===== */
nav.nav { /* in case you use 'nav' base class */
  --nav-gap: 1rem;
}

/* Reset bullets & spacing on all levels */
.nav ul { list-style: none; margin: 0; padding: 0; }

/* Top level: horizontal row */
.nav > ul {
  display: flex;
  gap: var(--nav-gap);
  align-items: center;
  flex-wrap: nowrap;           /* set to wrap for footer if you want */
}

/* Anchors */
.nav li > a {
  display: inline-block;
  padding: 8px 10px;
  text-decoration: none;
}

/* Remove “bullets between items” some themes add */
.nav li { position: relative; }
.nav li::marker { content: none; }

/* ===== Dropdowns (only when children exist) ===== */
.nav li ul {
  display: none;
  position: absolute;
  left: 0; top: 100%;
  min-width: 220px;
  background: var(--surface, #fff);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 8px;
  padding: 8px 0;
  box-shadow: 0 10px 25px rgba(0,0,0,.12);
  z-index: 50;
}

/* Show submenu on hover/focus (desktop) */
@media (hover: hover) and (pointer: fine) {
  .nav li:hover > ul,
  .nav li:focus-within > ul { display: block; }
}

/* Submenu items */
.nav li ul li { display: block; }
.nav li ul a {
  display: block;
  padding: 8px 12px;
  text-decoration: none;
  color: var(--text, #111);
}
.nav li ul a:hover { background: var(--active-bg, rgba(0,0,0,.06)); }

/* Active state (server/client adds .active on <li>) */
.nav li.active > a { font-weight: 700; text-decoration: underline; }

/* ===== Footer / bottom variants (optional) ===== */
/* Make footer wrap if space is tight */
.nav-footer > ul,
.nav-bottom > ul { flex-wrap: wrap; gap: .75rem; }

/* ===== Mobile: stack vertically; toggle open via JS ===== */
@media (max-width: 800px) {
  .nav > ul { flex-direction: column; gap: 0; }
  .nav li ul {
    position: static;
    border: 0; box-shadow: none; padding: 0;
  }
  /* Hidden by default; opened by .open on parent li */
  .nav li ul { display: none; }
  .nav li.open > ul { display: block; }
}

</script>

<script>
/* ========== Polished responsive navigation ========== */

/* Base reset + variables */
nav.nav { --nav-gap: 1.1rem; --nav-pad: 8px 10px; --submenu-pad: 8px 12px; }
.nav ul { list-style: none; margin: 0; padding: 0; }
.nav li { position: relative; }

/* Top-level layout: row by default */
.nav > ul {
  display: flex;
  gap: var(--nav-gap);
  align-items: center;
  flex-wrap: nowrap; /* footer can override to wrap */
}

/* Alignment controls (set via data-align) */
.nav[data-align="left"]   > ul { justify-content: flex-start; }
.nav[data-align="center"] > ul { justify-content: center; }
.nav[data-align="right"]  > ul { justify-content: flex-end; }

/* Links */
.nav li > a {
  display: inline-block;
  padding: var(--nav-pad);
  text-decoration: none;
  white-space: nowrap;
  color: var(--text, inherit);
  border-radius: 10px;
}
.nav li > a:hover { background: var(--active-bg, rgba(0,0,0,.06)); text-decoration: none; }

/* Active state (we already add .active to <li>) */
.nav li.active > a {
  font-weight: 700;
  text-decoration: underline;
}

/* Caret indicator for parents (JS adds .has-submenu) */
.nav li.has-submenu > a::after {
  content: "▾";
  margin-left: .35rem;
  font-size: .85em;
  opacity: .75;
}

/* Dropdowns — only visible if children exist */
.nav li ul {
  position: absolute;
  left: 0; top: calc(100% + 6px);
  min-width: 220px;
  background: var(--surface, #fff);
  color: var(--text, #111);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  padding: 8px 0;
  box-shadow: 0 14px 36px rgba(0,0,0,.18);
  z-index: 60;

  /* hide by default */
  opacity: 0;
  visibility: hidden;
  transform: translateY(4px);
  transition: transform .12s ease, opacity .12s ease, visibility .12s;
}

/* Show submenu on hover/focus (desktop) */
@media (hover: hover) and (pointer: fine) {
  .nav li:hover > ul,
  .nav li:focus-within > ul {
    opacity: 1; visibility: visible; transform: translateY(0);
  }
}

.nav li ul li > a {
  display: block;
  padding: var(--submenu-pad);
  color: inherit;
  text-decoration: none;
  border-radius: 8px;
}
.nav li ul li > a:hover { background: var(--active-bg, rgba(0,0,0,.06)); }

/* Footer/bottom can wrap neatly */
.nav-footer > ul, .nav-bottom > ul { flex-wrap: wrap; gap: .8rem; }

/* Menu toggle: visible only on small screens */
.menu-toggle { display: none; }
@media (max-width: 960px) {
  .menu-toggle { display: inline-flex; align-items: center; gap: .4rem; }
  #primary-nav { display: none; }
  #primary-nav[data-open="true"] { display: block; }

  /* Stack menus vertically on mobile */
  .nav > ul { flex-direction: column; align-items: stretch; gap: 0; }
  .nav li > a { padding: 10px 14px; }

  /* Mobile submenus expand inline */
  .nav li ul {
    position: static;
    border: 0; box-shadow: none; padding: 0; margin: 0 0 6px 0;
    opacity: 1; visibility: visible; transform: none;
    display: none;
  }
  .nav li.open > ul { display: block; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .nav li ul { transition: none; }
}
</script>









/* MENU BEHAVIOUR */
:root{
  --bg: #0b0d12;
  --bg-header: #0f1219cc; /* translucent on scroll */
  --bg-panel: #0f1219;
  --text: #e6ebf5;
  --muted: #98a2b3;
  --accent: #6ea8ff;
  --border: rgba(255,255,255,.08);
  --shadow: 0 10px 30px rgba(0,0,0,.35);
}

/* Base */
body{ background: var(--bg); color: var(--text); }
.container{ width:min(1200px,92%); margin:0 auto; }

/* Top bar */
.nav-topbar{ border-bottom:1px solid var(--border); color:var(--muted); font-size:13px; }
.nav-topbar .nav .menu-root{ display:flex; gap:18px; list-style:none; padding:0; margin:0; }

/* Sticky header with blur */
.site-header{
  position: sticky; top:0; z-index:40;
  backdrop-filter: saturate(140%) blur(8px);
  background: var(--bg-header);
  border-bottom: 1px solid var(--border);
}

/* Core nav layout (used by #primary-nav and others) */
.nav .menu-root{
  display:flex; align-items:center; gap:22px;
  list-style:none; margin:0; padding:0;
  white-space:nowrap; overflow-x:auto; scrollbar-width:thin;
}
.nav[data-align="right"] .menu-root{ margin-left:auto; }
.nav[data-align="left"]  .menu-root{ margin-right:auto; }
.nav .menu-root > li > a{
  display:inline-flex; align-items:center; gap:6px;
  padding:14px 6px; text-decoration:none; color:var(--text);
  position:relative; transition:opacity .15s ease;
}
.nav .menu-root > li > a::after{
  content:""; position:absolute; left:0; bottom:8px; height:2px; width:0;
  background: var(--accent); transition: width .18s ease;
}
.nav .menu-root > li:hover > a::after,
.nav .menu-root > li > a.active::after{ width:100%; }

/* Dropdowns (desktop) */
.nav li{ position:relative; }
.nav li > ul{
  position:absolute; left:0; top:100%; min-width:220px;
  background:#0f1219; border:1px solid var(--border);
  border-radius:12px; padding:8px; display:none; box-shadow: var(--shadow);
}
.nav li:hover > ul{ display:block; }
.nav li > ul > li > a{ display:block; padding:10px 12px; border-radius:8px; color:var(--text); }
.nav li > ul > li > a:hover{ background: rgba(255,255,255,.06); }

/* Mobile toggle button (you already have .menu-toggle) */
.menu-toggle{
  display:none; position:relative; height:36px; padding:0 12px;
  border:1px solid var(--border); border-radius:10px; background:transparent; color:var(--text);
}

/* Mobile panel */
.mobile-panel{
  position: fixed; inset: 56px 0 0 0; /* sits below the sticky header */
  background: var(--bg-panel);
  border-top: 1px solid var(--border);
  box-shadow: var(--shadow); overflow:auto; z-index:39;
}
.mobile-panel .nav .menu-root{
  flex-direction:column; align-items:flex-start; gap:8px; padding:14px 0;
}
.mobile-panel .nav .menu-root > li > a{ width:100%; padding:12px 2px; }

/* Mobile submenus */
.mobile-panel .nav li > ul{
  position: static; display:none; padding:6px 0 6px 10px; border:none; box-shadow:none;
}
.mobile-panel .nav li.open > ul{ display:block; }

/* Responsive rules */
@media (max-width: 1024px){
  #primary-nav{ display:none; } /* hide desktop nav on mobile */
  .menu-toggle{ display:inline-block; margin-left:auto; }
}
@media (min-width: 1025px){
  #mobile-panel{ display:none !important; }
}

/* Optional: bottom nav tightening */
.nav-bottom .menu-root{ gap:18px; }




/* Table formating */
/* ===== Alternatives table: dark theme friendly ===== */
.table-scroll{overflow:auto}
.alt-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  min-width: 920px;            /* prevents squashing on laptops */
  background: var(--surface, #0f1219);
  color: var(--text, #eaf0ff);
  border:2px solid rgba(255,255,255,.10);
  border-radius:14px;
}
.alt-table th,.alt-table td{
  padding:14px 14px;
  vertical-align:top;
  border-bottom:2px solid rgba(255,255,255,.10);
}
.alt-table thead th{
  position: sticky;
  top: 0;
  z-index: 2;
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.03));
  backdrop-filter: blur(4px);
  font-weight:700;
  text-align:left;
}
.alt-table .sticky{           /* first column helpful on wide screens */
  position: sticky;
  left: 0;
  z-index: 1;
  background: var(--surface, #0f1219);
}
.alt-table tbody tr:hover td{
  background: rgba(255,255,255,.03);
}
.alt-table .brand td{
  background: rgba(122,162,255,.08);            /* subtle brand row */
  border-bottom-color: rgba(122,162,255,.25);
  font-weight:600;
}
.alt-table .meta{
  color: var(--text, #eaf0ff);
  opacity: .95;
  line-height: 1.45;
}
.alt-table .caption{
  color: var(--muted, #a9b2cc);
  font-size: .9em;
}

/* compact bullet chips for inclusions */
.pill-list{
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 6px 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pill-list li{
  background: rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  border-radius: 999px;
  padding: 6px 10px;
  line-height: 1.25;
  white-space: nowrap;
}
@media (max-width: 1000px){
  .pill-list{ grid-template-columns: 1fr; }  /* stack on narrow screens */
}

/* better spacing for long cells on dark */
.alt-table td > ul,
.alt-table td > div{ max-width: 46ch; }

/* improve contrast if your page background is even darker */
@media (prefers-color-scheme: dark){
  .alt-table{ border-color: rgba(255,255,255,.14); }
  .alt-table th,.alt-table td{ border-bottom-color: rgba(255,255,255,.12); }
}

/* column sizing to prevent squish */
.alt-table .col-platform   { width: 14rem; }
.alt-table .col-price      { width: 15rem; }
.alt-table .col-basis      { width: 13rem; }
.alt-table .col-inclusions { width: 24rem; }
.alt-table .col-voice      { width: 14rem; }
.alt-table .col-notes      { width: 22rem; }

/* improve readability on dark + wrapping */
.alt-table { table-layout: fixed; }             /* respect colgroup widths */
.alt-table th, .alt-table td{
  word-wrap: break-word;
  overflow-wrap: anywhere;
  line-height: 1.45;
}
.alt-table .meta{ white-space: normal; }

/* make sticky first column behave nicely on small screens */
@media (max-width: 1024px){
  .alt-table { table-layout: auto; }            /* let it flow on narrow */
  .alt-table .sticky { position: static; }      /* disable sticky on small */
}

/* pill list spacing in cramped columns */
.pill-list{ margin:0; padding:0; list-style:none;
  display:grid; grid-template-columns:1fr 1fr; gap:6px 10px; }
.pill-list li{
  background: rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  padding:6px 10px; white-space: nowrap;
}
@media (max-width: 1200px){ .pill-list{ grid-template-columns:1fr; } }



/* ===== Global CTA Button System (place in site.css or injected by base.php) ===== */
/* Base: normalize all legacy button classes to 1 style system */
.btn,
.home-btn, .sol-btn, .tpl-btn, .addons-btn, .compare-btn {
  display: inline-block;
  padding: .65rem 1rem;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.25);
  text-decoration: none;
  font-weight: 700;
  text-align: center;
  transition: filter .15s ease, transform .05s ease;
}

.btn:hover,
.home-btn:hover, .sol-btn:hover, .tpl-btn:hover, .addons-btn:hover, .compare-btn:hover {
  filter: brightness(.92);
}
.btn:active,
.home-btn:active, .sol-btn:active, .tpl-btn:active, .addons-btn:active, .compare-btn:active {
  transform: translateY(1px);
}
.btn:focus-visible,
.home-btn:focus-visible, .sol-btn:focus-visible, .tpl-btn:focus-visible, .addons-btn:focus-visible, .compare-btn:focus-visible {
  outline: 2px solid #fff; outline-offset: 2px;
}

/* Variants */
.btn--primary   { background:#00c86d; color:#000; border-color:transparent; } /* Convert */
.btn--secondary { background:#00bfff; color:#000; border-color:transparent; } /* Navigation */
.btn--ghost     { background:transparent; color:#fff; }                        /* Light emphasis */
.btn--accent    { background:#6e32ff; color:#fff; border-color:transparent; }  /* Waitlist/Promos */

/* Optional sizes */
.btn--sm { padding:.45rem .8rem; border-radius:8px; font-weight:600; }
.btn--lg { padding:.8rem 1.2rem; border-radius:12px; }

/* Optional full-width helper (for narrow cards) */
.btn--block { display:block; width:100%; }

/* Keep CTAs centered & bottom-aligned inside card footers */
.hcard-cta, .tpl-cta-row, .sol-cta, .addons-cta, .compare-cta-row {
  display:flex; justify-content:center; gap:.5rem; flex-wrap:wrap;
}

/* Home/Prices policy chips (dark friendly) */
.policy-chips{
  display:flex; gap:.5rem; justify-content:center; flex-wrap:wrap; margin:.6rem 0 .2rem;
}
.policy-chip{
  display:inline-flex; align-items:center; gap:.4rem;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.05);
  color:#fff; text-decoration:none;
  border-radius:999px; padding:.35rem .75rem; line-height:1;
}
.policy-chip:hover{ filter:brightness(.95); }
.policy-chip .chip-note{ opacity:.8; font-size:.85em; }
.policy-micro{
  text-align:center; opacity:.85; font-size:.95em; margin:.15rem 0 0;
}
.policy-micro a{ color:#fff; text-decoration:underline; }


