/* CWShopOnline v1.0.0 — storefront styles.
   All colours via CSS variables. Light + dark themes.
   --c-accent and --c-ink are injected from Brand & Identity settings. */

:root{
  --site-w:1320px;
  --c-accent:#03398A;
  --c-accent-2:#01BFC5;
  --c-ink:#0C1B33;
  --page-bg:#F6F7F9;
  --card-bg:#FFFFFF;
  --border-color:#E1E6ED;
  --text-primary:#16202E;
  --text-muted:#647085;
  --accent-soft:rgba(1,191,197,0.10);
  --danger:#C0392B;
  --ok-bg:rgba(1,191,197,0.14);
  --err-bg:rgba(192,57,43,0.10);
  --shadow:0 1px 3px rgba(16,20,24,0.06);
  --radius:10px;
  --font-brand:-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
[data-theme="dark"]{
  --page-bg:#0E141C;
  --card-bg:#161E29;
  --border-color:#26313F;
  --text-primary:#E8ECEF;
  --text-muted:#939DA8;
  --accent-soft:rgba(1,191,197,0.18);
  --ok-bg:rgba(1,191,197,0.20);
  --err-bg:rgba(192,57,43,0.22);
  --shadow:0 1px 3px rgba(0,0,0,0.35);
}
/* Navy reads great on light (the default), but is too dark for text set on a
   dark background — swap accented *text* usages to the teal secondary in dark
   mode. Button fills keep the navy token (white text on navy stays legible). */
html[data-theme="dark"] a,
html[data-theme="dark"] .accent-dot,
html[data-theme="dark"] .spec-tag,
html[data-theme="dark"] .review-verified,
html[data-theme="dark"] .cart-bundle-tag,
html[data-theme="dark"] .btn-mini,
html[data-theme="dark"] .p-card-initial{color:var(--c-accent-2);}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--page-bg);color:var(--text-primary);font-family:var(--font-brand);font-size:16px;line-height:1.55;display:flex;flex-direction:column;min-height:100vh;}
.site-main{flex:1 0 auto;}
img,svg,video{max-width:100%;height:auto;}
a{color:var(--c-accent);text-decoration:none;}
a:hover{text-decoration:underline;}
h1,h2,h3{color:var(--text-primary);line-height:1.2;margin:0 0 .5em;letter-spacing:-0.015em;}
h1{font-size:1.9rem;font-weight:800;}
h2{font-size:1.35rem;font-weight:700;}
h3{font-size:1.05rem;font-weight:700;}
.wrap{max-width:var(--site-w,1320px);margin:0 auto;padding-left:clamp(16px,3.5vw,36px);padding-right:clamp(16px,3.5vw,36px);}
.muted{color:var(--text-muted);}
.small{font-size:.83rem;}
.ta-c{text-align:center;}
.ta-r{text-align:right;}
:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px;}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important;}}

/* Signature: monospace spec-tag — every product wears a shipping-label line */
.spec-tag{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--c-accent);margin:0 0 .5em;}

/* Header */
.site-head{background:var(--card-bg);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:20;}
.head-row{display:flex;align-items:center;justify-content:space-between;min-height:58px;gap:12px;}
.brand{display:flex;align-items:center;text-decoration:none;}
.brand img{max-height:34px;}
.brand-mark{font-weight:800;font-size:1.2rem;color:var(--text-primary);letter-spacing:-0.02em;}
.site-nav{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.site-nav a{color:var(--text-primary);font-weight:600;font-size:.92rem;}
.cart-link{position:relative;}
.cart-badge{background:var(--c-accent);color:var(--card-bg);border-radius:99px;font-size:.7rem;padding:1px 6px;margin-left:4px;font-family:var(--font-mono);}
.theme-toggle{background:none;border:1px solid var(--border-color);border-radius:99px;color:var(--text-primary);cursor:pointer;padding:2px 9px;font-size:.95rem;}

/* Hero */
.hero{background:var(--card-bg);border-bottom:1px solid var(--border-color);padding:56px 0 48px;}
.hero h1{font-size:clamp(2.2rem,6vw,3.4rem);margin:.1em 0 .2em;}
.accent-dot{color:var(--c-accent-2);}
.hero-sub{font-size:1.1rem;color:var(--text-muted);max-width:560px;margin:0 0 1.4em;}
.hero-tag{font-size:.78rem;}
.hero-cta{display:flex;gap:10px;flex-wrap:wrap;}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,64px);align-items:center;}
.hero-copy{min-width:0;}
.hero-trust{list-style:none;padding:0;margin:1.7em 0 0;display:flex;flex-wrap:wrap;gap:9px 22px;}
.hero-trust li{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:.92rem;}
.hero-tick{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--accent-soft);color:var(--c-accent-2);font-size:.7rem;font-weight:700;flex-shrink:0;}
.hero-visual{display:block;position:relative;text-decoration:none;}
.hero-frame{border-radius:12px;overflow:hidden;border:1px solid var(--border-color);background:var(--page-bg);box-shadow:0 24px 50px rgba(0,0,0,.28);}
.hero-frame-bar{display:flex;align-items:center;gap:7px;padding:10px 14px;background:var(--card-bg);border-bottom:1px solid var(--border-color);}
.hero-frame-bar span{width:10px;height:10px;border-radius:50%;background:var(--border-color);}
.hero-frame-bar span:first-child{background:#E24B4A;}
.hero-frame-bar span:nth-child(2){background:#EF9F27;}
.hero-frame-bar span:nth-child(3){background:#1D9E75;}
.hero-frame-shot{aspect-ratio:16/10;background:var(--accent-soft);overflow:hidden;}
.hero-frame-shot img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease;}
.hero-visual:hover .hero-frame-shot img{transform:scale(1.03);}
.hero-visual-cap{display:block;margin-top:12px;text-align:center;font-size:.85rem;color:var(--text-muted);}
@media(max-width:820px){.hero-grid{grid-template-columns:1fr;}.hero-visual{display:none;}}

/* Buttons */
.btn{display:inline-block;border:1px solid transparent;border-radius:8px;padding:9px 16px;font-weight:700;font-size:.92rem;cursor:pointer;text-decoration:none;line-height:1.2;font-family:inherit;}
.btn:hover{text-decoration:none;filter:brightness(1.05);}
.btn-primary{background:var(--c-accent);color:#FFFFFF;}
.btn-ghost{background:transparent;color:var(--text-primary);border-color:var(--border-color);}
.btn-lg{padding:12px 22px;font-size:1rem;}
.btn-block{display:block;width:100%;text-align:center;}
.link-danger{background:none;border:none;color:var(--danger);cursor:pointer;font-size:.88rem;padding:4px;font-family:inherit;}

/* Sections & grids */
.section{padding-top:36px;padding-bottom:36px;}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px;}
.grid{display:grid;gap:16px;}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(min(100%,255px),1fr));}

/* Cards */
.card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow);}
.pad{padding:20px;}
.p-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow);transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease;}
.p-card:hover{box-shadow:0 10px 24px rgba(16,20,24,.10);border-color:var(--c-accent);transform:translateY(-2px);}
@media (prefers-reduced-motion: reduce){.p-card{transition:none;}.p-card:hover{transform:none;}}
.p-card-media{display:flex;align-items:center;justify-content:center;aspect-ratio:16/10;background:var(--accent-soft);overflow:hidden;}
.p-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease;}
.p-card:hover .p-card-media img{transform:scale(1.03);}
.p-card-initial{font-family:var(--font-mono);font-size:2rem;font-weight:700;color:var(--c-accent);}
.p-card-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1;}
.p-card-body h3{margin-bottom:0;}
.p-card-body h3 a{color:var(--text-primary);}
.p-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:8px;}
.price{font-family:var(--font-mono);font-weight:700;color:var(--text-primary);}

/* Category chips */
.catalog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:20px;padding:12px 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color);}
.catalog-count{white-space:nowrap;}
.catalog-filters{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.catalog-price,.catalog-sort{display:flex;align-items:center;gap:8px;margin:0;}
.catalog-price input{width:74px;}
.catalog-sort select{min-width:150px;}
.cat-strip{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px;}
.cat-chip{border:1px solid var(--border-color);border-radius:99px;padding:5px 14px;font-size:.86rem;color:var(--text-primary);background:var(--card-bg);}
.cat-chip.is-active{background:var(--c-accent);border-color:var(--c-accent);color:#FFFFFF;}
.cat-chip:hover{text-decoration:none;border-color:var(--c-accent);}

/* Search */
.search-form{display:flex;gap:8px;}
.search-form input{min-width:0;}

/* Product page */
.crumbs{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:22px;}
.crumbs a{color:var(--text-muted);}
.crumbs a:hover{color:var(--c-accent);}
.crumb-current{color:var(--text-primary);}
.lead{font-size:1.1rem;line-height:1.55;}

.product-grid{display:grid;gap:32px;grid-template-columns:1fr;align-items:start;}
@media (min-width:900px){.product-grid{grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);}}
.product-main{min-width:0;}
.product-title{font-size:clamp(1.8rem,3.4vw,2.4rem);margin:.15em 0 .3em;}
.product-lead{font-size:1.12rem;line-height:1.55;max-width:60ch;margin-bottom:24px;}

.product-figure{border:1px solid var(--border-color);border-radius:var(--radius);overflow:hidden;background:var(--accent-soft);margin-bottom:26px;}
.product-figure img{display:block;width:100%;height:auto;}
.figure-fallback{aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;}
.figure-fallback span{font-family:var(--font-mono);font-size:3rem;font-weight:700;color:var(--c-accent);}

/* Key-facts strip */
.specs-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--border-color);border:1px solid var(--border-color);border-radius:var(--radius);overflow:hidden;margin-bottom:34px;}
@media (min-width:560px){.specs-strip{grid-template-columns:repeat(4,1fr);}}
.spec-cell{background:var(--card-bg);padding:15px 16px;display:flex;flex-direction:column;gap:5px;}
.spec-k{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);}
.spec-v{font-weight:700;color:var(--text-primary);font-size:.95rem;}

.product-block{margin-bottom:8px;}
.product-block>h2{font-size:1.35rem;margin-bottom:.6em;}
.product-main .rich>ul{column-count:2;column-gap:36px;list-style:none;padding:0;}
.product-main .rich>ul>li{break-inside:avoid;position:relative;padding-left:24px;margin:0 0 .7em;line-height:1.5;}
.product-main .rich>ul>li::before{content:"✓";position:absolute;left:0;top:0;color:var(--c-accent);font-weight:700;}
@media (max-width:620px){.product-main .rich>ul{column-count:1;}}

/* Sticky purchase aside */
.product-aside{display:flex;flex-direction:column;gap:18px;}
@media (min-width:900px){.product-aside{position:sticky;top:78px;}}
.buy-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;}
.buy-price{display:flex;align-items:baseline;gap:8px;margin-bottom:16px;}
.price-lg{font-size:clamp(1.6rem,3vw,2rem);}
.buy-form{margin:0 0 10px;}
.buy-card .btn-block+.btn-block{margin-top:10px;}
.buy-includes{list-style:none;padding:16px 0 0;margin:18px 0 0;border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:10px;}
.buy-includes li{position:relative;padding-left:26px;font-size:.9rem;line-height:1.35;color:var(--text-primary);}
.buy-includes li::before{content:"";position:absolute;left:0;top:1px;width:16px;height:16px;border-radius:50%;background:var(--accent-soft);}
.buy-includes li::after{content:"✓";position:absolute;left:3.5px;top:0;font-size:.72rem;font-weight:700;color:var(--c-accent);}
.buy-trust{text-align:center;margin:16px 0 0;padding-top:14px;border-top:1px solid var(--border-color);}

.side-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius);padding:18px;}
.side-head{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:0 0 8px;}
.side-card p{font-size:.9rem;color:var(--text-muted);margin:0 0 12px;}

.related-section{margin-top:20px;}

/* Customer account pages */
.account-auth{max-width:420px;margin:0 auto;}
.account-auth h1{margin:.1em 0 .5em;}
.account-form{margin-top:14px;}
.account-form label{margin-bottom:14px;}
.account-form .btn-block{margin-top:6px;}
.account-alt{margin:12px 0 0;text-align:center;}
.account-switch{text-align:center;margin-top:16px;}
.account-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:8px;}
.account-head h1{margin:.1em 0 .15em;}
.account-h2{font-size:1.2rem;margin:24px 0 12px;}
.account-empty{text-align:center;}
.account-empty .btn{margin-top:10px;}

/* Stars + reviews */
:root{--star:#F5A623;}
.stars{position:relative;display:inline-block;font-size:1rem;line-height:1;letter-spacing:2px;color:var(--border-color);vertical-align:middle;}
.stars::before{content:"\2605\2605\2605\2605\2605";}
.stars-fill{position:absolute;top:0;left:0;overflow:hidden;white-space:nowrap;color:var(--star);}
.stars-fill::before{content:"\2605\2605\2605\2605\2605";}
.stars-count{margin-left:2px;}
.card-rating{margin:2px 0 0;}
.product-rating{display:inline-flex;align-items:center;gap:8px;margin:0 0 14px;text-decoration:none;}
.reviews-block{margin-top:16px;}
.reviews-summary{display:grid;gap:20px;grid-template-columns:1fr;align-items:center;margin-bottom:20px;}
@media (min-width:560px){.reviews-summary{grid-template-columns:auto 1fr;}}
.reviews-score{display:flex;flex-direction:column;gap:6px;align-items:flex-start;}
.reviews-avg{font-size:2.4rem;font-weight:800;line-height:1;color:var(--text-primary);}
.reviews-score .stars{font-size:1.15rem;}
.reviews-bars{display:flex;flex-direction:column;gap:5px;max-width:340px;}
.reviews-bar-row{display:flex;align-items:center;gap:10px;font-size:.8rem;}
.reviews-bar-label{width:26px;color:var(--text-muted);font-family:var(--font-mono);}
.reviews-bar{flex:1;height:8px;background:var(--border-color);border-radius:99px;overflow:hidden;}
.reviews-bar-fill{display:block;height:100%;background:var(--star);}
.reviews-bar-num{width:22px;text-align:right;}

.review-form{margin:0 0 22px;}
.review-form-head{margin:0 0 12px;display:flex;align-items:center;gap:10px;}
.star-input{display:inline-flex;gap:4px;margin-bottom:14px;font-size:1.7rem;line-height:1;}
.star-input input{position:absolute;opacity:0;width:0;height:0;}
.star-pick{cursor:pointer;color:var(--border-color);}
.star-pick.on span{color:var(--star);}
.review-note{margin:0 0 18px;}
.review-empty{margin:6px 0 0;}
.review-list{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:18px;}
.review-item{border-top:1px solid var(--border-color);padding-top:16px;}
.review-item-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px;}
.review-author{font-weight:700;}
.review-verified{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--c-accent);background:var(--accent-soft);padding:2px 8px;border-radius:99px;}
.review-date{margin-left:auto;}
.review-title{margin:2px 0 4px;}
.review-body{margin:0;line-height:1.6;}

/* Optional requirements panel */
.req-panel{border:1px solid var(--border-color);border-radius:var(--radius);background:var(--card-bg);padding:18px 20px;margin:8px 0 4px;}
.req-head{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin:0 0 12px;}
.req-list{list-style:none;padding:0;margin:0;display:grid;gap:8px;grid-template-columns:1fr;}
@media (min-width:560px){.req-list{grid-template-columns:1fr 1fr;column-gap:28px;}}
.req-list li{position:relative;padding-left:22px;font-size:.9rem;line-height:1.4;color:var(--text-primary);}
.req-list li::before{content:"›";position:absolute;left:4px;top:-1px;color:var(--c-accent);font-weight:700;}
.rich{color:var(--text-primary);overflow-wrap:break-word;}
.rich p{margin:0 0 1em;line-height:1.7;}
.rich h2{margin:1.4em 0 .5em;font-size:1.3rem;}
.rich h3{margin:1.5em 0 .5em;font-size:1.12rem;}
.rich ul,.rich ol{margin:0 0 1.2em;padding-left:1.25em;}
.rich li{margin:.35em 0;line-height:1.6;}
.rich a{color:var(--c-accent);}
.rich img{border-radius:var(--radius);}

/* Shared page header band (About, legal, and other content pages) */
.page-head{background:var(--card-bg);border-bottom:1px solid var(--border-color);padding:44px 0 34px;}
.page-head h1{margin:0;}
.page-body{max-width:760px;}

/* Tables */
.table{width:100%;border-collapse:collapse;font-size:.92rem;}
.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.table th{text-align:left;font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:10px 12px;border-bottom:1px solid var(--border-color);}
.table td{padding:10px 12px;border-bottom:1px solid var(--border-color);vertical-align:middle;}
.table tfoot td{border-bottom:none;}
.qty-input{width:64px;}

/* Forms */
input,select,textarea{width:100%;background:var(--card-bg);color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;padding:9px 11px;font-size:.95rem;font-family:inherit;}
input[type="color"]{padding:2px;height:42px;}
input[type="checkbox"],input[type="radio"]{width:auto;}
label{display:block;font-weight:600;font-size:.9rem;margin-bottom:12px;}
label input,label select,label textarea{margin-top:5px;font-weight:400;}
label .muted{font-weight:400;display:block;margin-top:3px;}

/* Cart & checkout */
.cart-actions{display:flex;justify-content:space-between;gap:10px;margin-top:16px;flex-wrap:wrap;}
.checkout-layout{display:grid;gap:20px;grid-template-columns:1fr;}
@media (min-width:820px){.checkout-layout{grid-template-columns:1fr 1.2fr;}}
.checkout-summary,.checkout-form{padding:20px;}
.summary-list{list-style:none;padding:0;margin:0 0 14px;}
.summary-list li{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--border-color);}
.summary-list .total{font-weight:800;font-size:1.05rem;border-bottom:none;}
.summary-list .discount{color:var(--c-accent);}
.coupon-form{display:flex;gap:8px;}
.gateway-list{display:flex;flex-direction:column;gap:8px;margin:8px 0 16px;}
.gateway-option{display:flex;align-items:center;gap:10px;border:1px solid var(--border-color);border-radius:8px;padding:11px 13px;cursor:pointer;font-weight:600;margin-bottom:0;}
.gateway-option:has(input:checked){border-color:var(--c-accent);background:var(--accent-soft);}

/* Order page */
.license-key{display:inline-block;background:var(--accent-soft);border:1px dashed var(--c-accent);border-radius:6px;padding:8px 12px;font-family:var(--font-mono);font-size:1rem;margin:4px 6px 4px 0;color:var(--text-primary);word-break:break-all;max-width:100%;}
.key-reveal{margin:18px 0;}

/* Flash */
.flash{border-radius:8px;padding:11px 14px;margin:14px 0;font-size:.92rem;border:1px solid var(--border-color);}
.flash-ok{background:var(--ok-bg);color:var(--text-primary);}
.flash-err{background:var(--err-bg);color:var(--text-primary);}

/* Contact honeypot — hidden from humans */
.hp-field{position:absolute;left:-9999px;top:-9999px;height:1px;overflow:hidden;}
.contact-form{max-width:100%;}
.contact-layout{display:grid;gap:24px;grid-template-columns:1fr;}
@media (min-width:820px){.contact-layout{grid-template-columns:1.6fr 1fr;align-items:start;}}
.contact-aside .card+.card{margin-top:16px;}
.req{color:var(--danger);}

/* Empty states */
.empty-state{text-align:center;padding:56px 16px;}
.empty-state .btn{margin-top:10px;}

/* Footer */
.site-foot{background:var(--card-bg);border-top:1px solid var(--border-color);margin-top:48px;padding:40px 0 20px;flex-shrink:0;}
.foot-grid{display:grid;gap:28px;grid-template-columns:1fr;}
@media (min-width:560px){.foot-grid{grid-template-columns:1fr 1fr;}}
@media (min-width:920px){.foot-grid{grid-template-columns:2fr 1fr 1fr 1fr;}}
.foot-brand{max-width:360px;}
.foot-logo{max-height:34px;margin-bottom:10px;}
.foot-name{font-size:1.15rem;display:block;margin-bottom:8px;}
.foot-col{display:flex;flex-direction:column;gap:9px;}
.foot-head{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin:0 0 3px;}
.foot-col a,.foot-social a{color:var(--text-muted);font-size:.9rem;}
.foot-col a:hover,.foot-social a:hover{color:var(--c-accent);}
.foot-social{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px;}
.foot-bottom{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:30px;padding-top:16px;border-top:1px solid var(--border-color);}
.inline{display:inline;}

/* Back-to-top floating button */
.to-top{position:fixed;right:18px;bottom:18px;width:44px;height:44px;border-radius:50%;border:1px solid var(--border-color);background:var(--card-bg);color:var(--text-primary);box-shadow:var(--shadow);cursor:pointer;font-size:1.2rem;line-height:1;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .18s ease,transform .18s ease,visibility .18s;z-index:30;}
.to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0);}
.to-top:hover{border-color:var(--c-accent);color:var(--c-accent);}
@media (prefers-reduced-motion: reduce){.to-top{transition:none;}}

/* Ad zones */
.section-tight{padding-top:14px;padding-bottom:14px;}
.ad-zone{display:flex;flex-direction:column;align-items:center;gap:10px;margin:0 auto;}
.ad-zone-sidebar{align-items:stretch;margin-top:0;gap:0;}
.ad-zone-sidebar .ad-unit,.ad-zone-sidebar .ad-unit a{display:block;width:100%;}
.ad-zone-sidebar .ad-unit img{width:100%;border-radius:var(--radius);border:1px solid var(--border-color);}
.ad-label{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);opacity:.7;}
.ad-unit{max-width:100%;text-align:center;}
.ad-unit img{max-width:100%;height:auto;display:block;border-radius:8px;border:1px solid var(--border-color);}
.ad-unit a{display:inline-block;max-width:100%;}
.product-aside-ad{margin-top:18px;}
/* Ad rotator — cycles .ad-unit one at a time within a zone that has 2+ ads */
.ad-rotator .ad-track{position:relative;}
.ad-rotator .ad-unit{position:absolute;inset:0;opacity:0;transition:opacity .5s ease;pointer-events:none;}
.ad-rotator .ad-unit.is-active{position:relative;opacity:1;pointer-events:auto;}
.ad-dots{display:flex;gap:7px;justify-content:center;margin-top:10px;}
.ad-dot{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:var(--border-color);cursor:pointer;transition:background .2s ease,transform .2s ease;}
.ad-dot:hover{transform:scale(1.2);}
.ad-dot.is-on{background:var(--c-accent);}

/* Blog */
.blog-grid{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));}
.blog-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow);}
.blog-card-media{display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;background:var(--accent-soft);overflow:hidden;}
.blog-card-media img{width:100%;height:100%;object-fit:cover;}
.blog-card-initial{font-family:var(--font-brand);font-size:2.6rem;font-weight:800;color:var(--c-accent);}
.blog-card-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px;flex:1;}
.blog-card-body h2{font-size:1.15rem;margin:0;}
.blog-card-body h2 a{color:var(--text-primary);}
.blog-card-body .muted{font-size:.9rem;flex:1;}
.blog-more{font-weight:700;font-size:.9rem;}
.blog-article{max-width:760px;}
.blog-article-title{font-size:clamp(1.9rem,4vw,2.6rem);margin:.1em 0 .3em;}
.blog-article-lead{font-size:1.2rem;margin-bottom:20px;}
.blog-article-cover{border-radius:var(--radius);overflow:hidden;border:1px solid var(--border-color);margin:0 0 26px;}
.blog-article-cover img{width:100%;height:auto;display:block;}

/* Help & FAQ */
.faq-cat-nav{display:flex;flex-wrap:wrap;gap:8px 18px;margin-bottom:34px;padding-bottom:16px;border-bottom:1px solid var(--border-color);}
.faq-cat-nav a{font-weight:700;color:var(--text-muted);}
.faq-cat-nav a:hover{color:var(--c-accent);}
.faq-group{margin-bottom:36px;scroll-margin-top:24px;}
.faq-group:last-child{margin-bottom:0;}
.faq-cat-head{font-size:1.3rem;margin:0 0 14px;}
.faq-list{display:flex;flex-direction:column;gap:10px;}
.faq-item{background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius);padding:2px 18px;}
.faq-item summary{cursor:pointer;list-style:none;padding:16px 28px 16px 0;font-weight:700;position:relative;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";position:absolute;right:2px;top:14px;font-size:1.3rem;font-weight:400;color:var(--c-accent);line-height:1;}
.faq-item[open] summary::after{content:"\2212";}
.faq-answer{padding:0 0 18px;}
.faq-answer p:first-child{margin-top:0;}
.faq-answer p:last-child{margin-bottom:0;}
.blog-article-body{font-size:1.05rem;line-height:1.75;}
.blog-article-body h2{margin:1.5em 0 .5em;font-size:1.5rem;}
.blog-article-body h3{margin:1.4em 0 .5em;}
.blog-article-body img{border-radius:var(--radius);margin:1em 0;}

/* Bundles */
.bundle-strip{margin-bottom:34px;}
.bundle-card{display:flex;flex-direction:column;gap:8px;background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);}
.bundle-card:hover{border-color:var(--c-accent);}
.bundle-card-media{display:block;margin:-20px -20px 16px;height:260px;overflow:hidden;border-radius:var(--radius) var(--radius) 0 0;background:var(--accent-soft);}
.bundle-card-media img{width:100%;height:100%;object-fit:cover;display:block;}
.bundle-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.bundle-card-tag{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);}
.bundle-card h3{margin:0;color:var(--text-primary);}
.bundle-card .muted{font-size:.9rem;flex:1;}
.bundle-card-price{margin:0;font-size:1.1rem;}
.bundle-save-badge{display:inline-block;font-family:var(--font-mono);font-size:.68rem;font-weight:700;letter-spacing:.04em;color:var(--c-ink);background:var(--c-accent-2);padding:3px 9px;border-radius:99px;}
.bundle-list-strike{color:var(--text-muted);text-decoration:line-through;font-size:.95em;margin-left:6px;}
.bundle-save-line{display:flex;align-items:center;gap:10px;margin:0 0 14px;}
.bundle-members{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px;}
.bundle-member{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--border-color);}
.bundle-member:last-child{border-bottom:none;}
.bundle-member-main{display:flex;flex-direction:column;gap:3px;}
.bundle-member-main .muted{font-size:.88rem;}
.bundle-member-price{white-space:nowrap;font-family:var(--font-mono);}
.cart-bundle-tag{display:inline-block;font-family:var(--font-mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--c-accent);background:var(--accent-soft);padding:2px 7px;border-radius:99px;vertical-align:middle;margin-left:4px;}

/* Offline / maintenance page */
.maint-body{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:24px;}
.maint-wrap{width:100%;max-width:520px;}
.maint-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow);padding:44px 36px;text-align:center;}
.maint-logo{max-height:44px;margin:0 auto 18px;}
.maint-brand{display:block;font-size:1.4rem;font-weight:800;margin-bottom:18px;}
.maint-tag{justify-content:center;margin-bottom:10px;}
.maint-title{font-size:clamp(1.6rem,4vw,2.1rem);margin:0 0 12px;}
.maint-msg{color:var(--text-muted);font-size:1.05rem;line-height:1.6;margin:0 0 24px;}
.maint-dots{display:flex;gap:8px;justify-content:center;}
.maint-dots span{width:9px;height:9px;border-radius:50%;background:var(--c-accent);opacity:.35;animation:maintPulse 1.2s infinite ease-in-out;}
.maint-dots span:nth-child(2){animation-delay:.2s;}
.maint-dots span:nth-child(3){animation-delay:.4s;}
@keyframes maintPulse{0%,80%,100%{opacity:.25;transform:scale(.85);}40%{opacity:1;transform:scale(1);}}
@media (prefers-reduced-motion: reduce){.maint-dots span{animation:none;}}

.gen-wrap{display:flex;gap:6px;align-items:stretch;}
.gen-wrap input{flex:1;min-width:0;}
.btn-mini{padding:0 12px;font-size:12px;font-weight:600;border:1px solid var(--border-color);background:var(--accent-soft);color:var(--c-accent);border-radius:var(--radius);cursor:pointer;white-space:nowrap;}
.btn-mini:hover{background:var(--c-accent);color:#fff;border-color:var(--c-accent);}

/* Home top banner carousel */
.home-banners{position:relative;width:100%;margin:clamp(16px,2.5vw,28px) 0 10px;background:var(--card-bg);overflow:hidden;}
.hb-track{position:relative;width:100%;aspect-ratio:1200/300;max-height:360px;}
.hb-slide{position:absolute;inset:0;opacity:0;transition:opacity .5s ease;pointer-events:none;}
.hb-slide.is-active{opacity:1;pointer-events:auto;}
.hb-slide,.hb-slide a{display:block;width:100%;height:100%;}
.hb-slide img{width:100%;height:100%;object-fit:cover;display:block;}
.hb-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;border:none;cursor:pointer;width:42px;height:42px;border-radius:50%;background:rgba(0,0,0,.4);color:#fff;font-size:24px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .2s;}
.hb-arrow:hover{background:rgba(0,0,0,.65);}
.hb-prev{left:14px;}
.hb-next{right:14px;}
.hb-dots{position:absolute;bottom:12px;right:14px;z-index:3;display:flex;gap:7px;justify-content:flex-end;align-items:center;padding:6px 10px;border-radius:20px;background:rgba(0,0,0,.30);}
.hb-dot{width:9px;height:9px;border-radius:50%;border:none;cursor:pointer;background:rgba(255,255,255,.55);padding:0;transition:background .2s,transform .2s;}
.hb-dot.is-active{background:#fff;transform:scale(1.25);}
@media(max-width:700px){.hb-track{aspect-ratio:1200/300;}.hb-arrow{width:32px;height:32px;font-size:19px;}.hb-dots{bottom:8px;right:8px;padding:4px 8px;}}
/* Fit-content mode: constrain the banner to the site content column (same width,
   padding and alignment as .wrap) instead of full-bleed, and let its height follow
   each image's native ratio so nothing is cropped. */
.home-banners.is-fit{max-width:var(--site-w,1320px);margin:clamp(16px,2.5vw,28px) auto 10px;padding-left:clamp(16px,3.5vw,36px);padding-right:clamp(16px,3.5vw,36px);background:transparent;}
.home-banners.is-fit .hb-track{aspect-ratio:auto;max-height:none;border-radius:12px;overflow:hidden;}
.home-banners.is-fit .hb-slide{position:absolute;height:auto;}
.home-banners.is-fit .hb-slide.is-active{position:relative;}
.home-banners.is-fit .hb-slide a{height:auto;}
.home-banners.is-fit .hb-slide img{height:auto;object-fit:contain;}
.home-banners.is-fit .hb-prev{left:calc(clamp(16px,3.5vw,36px) + 10px);}
.home-banners.is-fit .hb-next{right:calc(clamp(16px,3.5vw,36px) + 10px);}
.home-banners.is-fit .hb-dots{right:calc(clamp(16px,3.5vw,36px) + 12px);}
/* Admin banner manager */
.banner-settings{max-width:820px;}
.banner-admin-list{display:flex;flex-direction:column;gap:10px;margin-top:14px;}
.banner-admin-row{display:flex;align-items:center;gap:14px;padding:10px;border:1px solid var(--border-color);border-radius:var(--radius);background:var(--card-bg);}
.banner-thumb{width:170px;height:46px;object-fit:cover;border-radius:6px;flex-shrink:0;background:var(--accent-soft);}
.banner-admin-meta{flex:1;min-width:0;word-break:break-all;}
.banner-admin-actions{display:flex;gap:6px;flex-shrink:0;}

/* Mobile hamburger nav (storefront) */
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:40px;background:transparent;border:1px solid var(--border-color);border-radius:9px;cursor:pointer;padding:0 10px;}
.nav-toggle span{display:block;height:2px;width:100%;background:var(--text-primary);border-radius:2px;transition:transform .25s ease,opacity .2s ease;}
.nav-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.is-open span:nth-child(2){opacity:0;}
.nav-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
@media(max-width:700px){
  .head-row{position:relative;}
  .nav-toggle{display:flex;}
  .site-nav{position:absolute;top:calc(100% + 1px);left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--card-bg);border-bottom:1px solid var(--border-color);box-shadow:0 14px 26px rgba(0,0,0,.14);padding:6px 16px 12px;display:none;z-index:30;}
  .site-nav.is-open{display:flex;}
  .site-nav a{padding:13px 2px;border-bottom:1px solid var(--border-color);font-size:1rem;}
  .site-nav .theme-toggle{margin-top:8px;align-self:flex-start;}
}

/* Account: "update available" badge (theme-aware, vars only) */
.update-badge{display:inline-block;background:var(--ok-bg);color:var(--c-accent-2);border:1px solid var(--accent-soft);border-radius:99px;font-size:.7rem;font-weight:700;padding:2px 9px;margin-left:6px;vertical-align:middle;letter-spacing:.02em;}

/* ===== 1.0.83 compliance & conversion additions ===== */
.checkout-delivery-note{margin:14px 0 6px;font-size:.92rem;}
.checkout-tax-note{margin:0 0 10px;}
.checkout-reqs{margin:10px 0;border:1px solid var(--border-color);border-radius:8px;background:var(--card-bg);}
.checkout-reqs>summary{cursor:pointer;padding:8px 12px;font-weight:600;font-size:.92rem;user-select:none;}
.checkout-reqs ul{margin:0;padding:0 12px 4px 30px;}
.checkout-reqs p{padding:0 12px 10px;margin:4px 0 0;}
.checkout-dl{margin-top:10px;padding:10px 12px;border-left:3px solid var(--c-accent-2);background:var(--accent-soft);border-radius:0 8px 8px 0;}
.checkout-dl ul{margin:6px 0 0;padding-left:18px;}
.checkout-legal{margin:16px 0 14px;padding:14px 16px;border:1px solid var(--border-color);border-radius:var(--radius);background:var(--card-bg);}
.checkout-legal p{margin:0 0 8px;font-size:.92rem;}
.checkout-legal-links{font-size:.9rem;}
.consent-row{display:flex;gap:10px;align-items:flex-start;margin:10px 0 0;font-size:.93rem;cursor:pointer;line-height:1.45;}
.consent-row input{margin-top:4px;flex:0 0 auto;width:auto;}
.consent-optional{padding-top:10px;border-top:1px dashed var(--border-color);}
.consent-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:10000;max-width:760px;margin:0 auto;display:flex;gap:14px;align-items:center;flex-wrap:wrap;justify-content:space-between;padding:14px 18px;background:var(--card-bg);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:0 10px 30px rgba(0,0,0,.2);}
.consent-banner[hidden]{display:none;}
.consent-banner p{margin:0;font-size:.88rem;flex:1 1 320px;}
.consent-actions{display:flex;gap:8px;flex:0 0 auto;}
.choice-card{display:flex;flex-direction:column;gap:6px;padding:18px;border:1px solid var(--border-color);border-radius:var(--radius);background:var(--card-bg);text-decoration:none;color:inherit;box-shadow:var(--shadow);transition:transform .15s,border-color .15s;}
.choice-card:hover{transform:translateY(-2px);border-color:var(--c-accent-2);}
.choice-card h3{margin:0;font-size:1.05rem;}
.choice-card p{margin:0;color:var(--text-muted);font-size:.92rem;}
.choice-price{margin-top:auto;font-size:.82rem;font-weight:600;color:var(--c-accent);}
[data-theme="dark"] .choice-price{color:var(--c-accent-2);}
.trust-cell{padding:16px;border:1px solid var(--border-color);border-radius:var(--radius);background:var(--card-bg);}
.trust-cell h3{margin:0 0 4px;font-size:1rem;}
.trust-cell p{margin:0;}
.proof-card{margin:0;padding:18px;border:1px solid var(--border-color);border-radius:var(--radius);background:var(--card-bg);}
.proof-card blockquote{margin:8px 0;font-size:.98rem;}
.subscribe-card{max-width:760px;margin:0 auto;}
.subscribe-form{display:flex;gap:10px;flex-wrap:wrap;position:relative;}
.subscribe-form input[type=text],.subscribe-form input[type=email]{flex:1 1 200px;min-width:0;}
.best-for-list{margin:0;padding-left:20px;columns:2;column-gap:28px;}
@media (max-width:560px){.best-for-list{columns:1;}}
.buy-licence,.buy-access{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-color);}
.buy-access ul{margin:4px 0 0;padding-left:18px;}
.foot-identity{margin:8px 0;line-height:1.5;}
.identity-block{line-height:1.6;}
.notice-card{max-width:620px;margin:0 auto;}
@media (min-width:920px){.foot-grid.foot-grid-5{grid-template-columns:1.5fr repeat(4,1fr);}}

.checkout-digital{margin:0 0 10px;padding:10px 12px;border-left:3px solid var(--c-accent-2);background:var(--accent-soft);border-radius:0 8px 8px 0;font-size:.95rem;}
.dl-notice{margin:18px 0;border-left:3px solid var(--c-accent-2);}
.dl-notice p{margin:4px 0;}

/* ---- 1.0.84 presentation layer ---- */
.market-nav{background:var(--card-bg);border-bottom:1px solid var(--border-color);}
.market-nav-row{display:flex;gap:4px;overflow-x:auto;white-space:nowrap;scrollbar-width:thin;padding-top:2px;padding-bottom:2px;}
.market-nav a{display:inline-block;padding:9px 12px;font-size:.92rem;color:inherit;text-decoration:none;border-radius:6px;opacity:.85;}
.market-nav a:hover,.market-nav a:focus{opacity:1;background:var(--accent-soft);}
.product-price-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin:6px 0 14px;}
.product-lead-cta{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 14px;}
.product-lead-cta .inline-form{margin:0;}
.product-trust{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px;padding:0;}
.product-trust li span{display:inline-block;padding:5px 10px;border:1px solid var(--border-color);border-radius:99px;font-size:.82rem;background:var(--accent-soft);}
.pb-grid{display:grid;gap:16px;grid-template-columns:1fr;margin:18px 0;}
@media(min-width:760px){.pb-grid{grid-template-columns:1fr 1fr;}}
.pb-grid .req-panel,.pb-grid .best-for{margin:0;}
.what-you-get .best-for-list{margin:0;}
.product-faq{margin-top:22px;}
.solution-card{display:flex;flex-direction:column;gap:6px;}
.demo-card .demo-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0;}

/* =====================================================================
   1.0.85 design-system layer
   One token scale, one card, one control height, one table style.
   Everything below normalises the components above without changing markup
   structure or responsive breakpoints. Rules are grouped by component.
   ===================================================================== */

/* ---- Tokens ---- */
:root{
  /* aliases for names older views used with hard-coded light fallbacks */
  --c-surface:var(--card-bg);
  --c-line:var(--border-color);
  --c-border:var(--border-color);
  --c-card:var(--card-bg);
  --bg:var(--page-bg);
  --ok-text:#0A7A55;
  --err-text:#B3261E;

  --gutter:clamp(16px,3.5vw,36px);
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;

  --r-ctl:8px;            /* inputs, buttons, inner panels */
  --r-card:var(--radius); /* cards, tables, media frames  */
  --r-pill:99px;
  --ctl-h:42px;           /* every input, select and button */
  --pad-card:20px;        /* every content card */
  --pad-panel:14px 16px;  /* notes, legal boxes, inline panels */

  --fs-label:.68rem;      /* mono caps labels */
  --fs-small:.875rem;
  --fs-body-sm:.92rem;    /* text inside cards */
}
[data-theme="dark"]{--ok-text:#4AD3A0;--err-text:#FF8A80;}

/* ---- Typography ---- */
h1,h2,h3,.lead,.product-lead,.hero-sub{text-wrap:balance;}
p,li{overflow-wrap:break-word;}
h1{font-size:2rem;}
.product-title,.blog-article-title{font-size:clamp(1.8rem,3.4vw,2.4rem);line-height:1.15;}
h2{font-size:1.4rem;}
h3{font-size:1.05rem;line-height:1.3;}
.section-head h2,.product-block>h2,.related-section h2{font-size:1.4rem;margin:0;}
.product-block>h2{margin-bottom:var(--sp-3);}
.lead{font-size:var(--fs-lead,1.1rem);}
/* all mono caps labels share one size and tracking */
.spec-tag,.spec-k,.side-head,.req-head,.foot-head,.bundle-card-tag,.ad-label,.cart-bundle-tag,.review-verified,.bundle-save-badge{font-size:var(--fs-label);letter-spacing:.1em;}
.spec-tag{font-size:.72rem;}

/* ---- Layout rhythm ---- */
.section{padding-top:clamp(28px,4vw,40px);padding-bottom:clamp(28px,4vw,40px);}
.section>:last-child{margin-bottom:0;}
.section-head{margin-bottom:var(--sp-4);align-items:center;}
.section-head a{font-size:var(--fs-small);font-weight:600;white-space:nowrap;}
.section-note{margin:var(--sp-3) 0 0;}
.page-head{padding:clamp(28px,4vw,44px) 0 clamp(22px,3vw,32px);}
.grid{align-items:stretch;gap:var(--sp-4);}
.grid>*,.blog-grid>*,.foot-grid>*,.product-grid>*,.checkout-layout>*,.contact-layout>*{min-width:0;}
.blog-grid{gap:var(--sp-4);}
/* four cards read best as 2 x 2, not 3 + 1 */
@media (min-width:640px){
  .grid-3:has(>:nth-child(4):last-child),
  .grid-4:has(>:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr));}
}

/* ---- Cards: one surface, one radius, one padding ---- */
.card,.p-card,.blog-card,.bundle-card,.choice-card,.trust-cell,.proof-card,.side-card,.req-panel,
.faq-item,.buy-card,.solution-card,.demo-card,.subscribe-card,.notice-card{
  background:var(--card-bg);border:1px solid var(--border-color);border-radius:var(--r-card);box-shadow:var(--shadow);min-width:0;
}
.pad,.choice-card,.trust-cell,.proof-card,.side-card,.req-panel,.bundle-card,.checkout-summary,.checkout-form{padding:var(--pad-card);}
.buy-card{padding:24px;}
.choice-card,.trust-cell,.proof-card,.solution-card,.demo-card,.bundle-card{display:flex;flex-direction:column;gap:var(--sp-2);height:100%;}
.choice-card h3,.trust-cell h3,.solution-card h3,.demo-card h3,.bundle-card h3,.proof-card h3,.blog-card-body h2{font-size:1.05rem;line-height:1.3;margin:0;}
.choice-card p,.trust-cell p,.solution-card p,.demo-card p,.bundle-card .muted,.blog-card-body .muted,.side-card p{font-size:var(--fs-body-sm);line-height:1.5;margin:0;}
.choice-card p,.trust-cell p,.solution-card p,.demo-card p{color:var(--text-muted);}
.choice-card p:last-child,.demo-card p:last-child,.solution-card p:last-child{margin-bottom:0;}
.choice-price,.demo-card .demo-actions,.solution-card .small:last-child{margin-top:auto;}
.demo-card .demo-actions{padding-top:var(--sp-2);margin-bottom:0;}
/* interactive cards share one hover */
.p-card,.bundle-card,.choice-card,.blog-card{transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease;}
.bundle-card:hover,.choice-card:hover,.blog-card:hover{border-color:var(--c-accent);box-shadow:0 10px 24px rgba(16,20,24,.10);transform:translateY(-2px);}
@media (prefers-reduced-motion:reduce){.p-card:hover,.bundle-card:hover,.choice-card:hover,.blog-card:hover{transform:none;}}
.p-card,.blog-card{height:100%;}
.p-card-body,.blog-card-body{padding:var(--sp-4) var(--pad-card) var(--pad-card);gap:var(--sp-2);}
/* media: one ratio per family, always filled, never stretched */
.p-card-media,.blog-card-media,.bundle-card-media,.hero-frame-shot,.figure-fallback{background:var(--accent-soft);}
.p-card-media{aspect-ratio:16/10;}
.p-card-media img,.blog-card-media img,.bundle-card-media img{width:100%;height:100%;object-fit:cover;display:block;}
.product-figure img,.blog-article-cover img{display:block;width:100%;height:auto;max-height:520px;object-fit:cover;}
.bundle-card-media{height:auto;aspect-ratio:16/10;margin:calc(var(--pad-card) * -1) calc(var(--pad-card) * -1) var(--sp-2);}
/* titles clamp so one long name never makes a taller card */
.p-card-body h3,.blog-card-body h2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.p-card-body h3{min-height:calc(1.3em * 2);}
.p-card-foot{padding-top:var(--sp-2);flex-wrap:wrap;}
.p-card-foot .price{white-space:nowrap;}
.p-card-foot form{margin:0;}
.price{font-variant-numeric:tabular-nums;}
/* bundle card header: tag truncates, badge never wraps */
.bundle-card-top{flex-wrap:wrap;row-gap:6px;min-height:24px;}
.bundle-card-tag{flex:0 1 auto;min-width:0;white-space:nowrap;font-size:.64rem;letter-spacing:.03em;}
.bundle-save-badge{flex:0 0 auto;display:inline-flex;align-items:center;white-space:nowrap;line-height:1.2;padding:3px 9px;font-size:.64rem;letter-spacing:0;}
.bundle-card-price{margin-top:auto;}
.bundle-card .muted{flex:1 1 auto;margin-bottom:var(--sp-2);}
/* "With CWPOS: Save $50" on solution cards is a pill, not a full-width bar */
.solution-card .bundle-save-badge{align-self:flex-start;}

/* ---- Pills, chips and badges ---- */
.cat-chip,.product-trust li span,.update-badge,.cart-bundle-tag,.review-verified{white-space:nowrap;line-height:1.3;}
.cat-chip{display:inline-flex;align-items:center;min-height:34px;padding:4px 14px;}
.cat-strip{gap:var(--sp-2);}
.product-trust li span{padding:5px 12px;}
.product-trust{gap:var(--sp-2);}

/* ---- Buttons and form controls: one height ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--ctl-h);padding:8px 16px;border-radius:var(--r-ctl);text-align:center;white-space:normal;}
.btn-lg{min-height:48px;padding:10px 22px;}
.btn-block{display:flex;width:100%;}
.btn-mini{min-height:var(--ctl-h);display:inline-flex;align-items:center;}
input,select,textarea{min-height:var(--ctl-h);line-height:1.3;border-radius:var(--r-ctl);}
textarea{min-height:0;}
input[type="checkbox"],input[type="radio"]{min-height:0;}
select{padding-right:30px;}
.catalog-price input{width:84px;}
.catalog-toolbar{align-items:center;}
.catalog-filters{align-items:center;}
.search-form{align-items:stretch;}
.search-form .btn{flex:0 0 auto;}
.coupon-form{align-items:stretch;}
.coupon-form input{flex:1;min-width:0;}
.coupon-form .btn{flex:0 0 auto;}
.gateway-option{min-height:var(--ctl-h);}

/* ---- KPI / key-fact cells ---- */
.specs-strip{margin-bottom:var(--sp-6);}
.spec-cell{min-height:76px;justify-content:flex-start;padding:var(--sp-4);min-width:0;}
.spec-v{line-height:1.3;overflow-wrap:anywhere;}
.reviews-avg{font-variant-numeric:tabular-nums;}

/* ---- Product page rhythm ---- */
.product-figure{margin-bottom:var(--sp-6);border-radius:var(--r-card);}
.product-lead{margin-bottom:var(--sp-4);}
.product-price-row{margin:var(--sp-2) 0 var(--sp-3);}
.product-block{margin:0 0 var(--sp-6);}
.pb-grid{margin:0 0 var(--sp-6);gap:var(--sp-4);align-items:stretch;}
.pb-grid>:only-child{grid-column:1/-1;}
.pb-grid .req-panel,.pb-grid .best-for{margin:0;height:100%;}
.pb-grid .best-for{padding:var(--pad-card);border:1px solid var(--border-color);border-radius:var(--r-card);background:var(--card-bg);box-shadow:var(--shadow);}
.req-panel{margin:0 0 var(--sp-6);}
.req-list li{font-size:var(--fs-body-sm);}
.best-for-list{list-style:none;padding:0;margin:0;columns:2;column-gap:var(--sp-5);}
.best-for-list li{position:relative;padding-left:24px;margin:0 0 .7em;line-height:1.5;break-inside:avoid;}
.best-for-list li::before{content:"\2713";position:absolute;left:0;top:0;color:var(--c-accent);font-weight:700;}
.related-section{margin-top:var(--sp-6);padding-left:0;padding-right:0;}
.product-faq{margin-top:0;}
.product-aside{gap:var(--sp-4);}
.buy-price{margin-bottom:var(--sp-4);flex-wrap:wrap;}
.buy-includes li,.buy-card .small{overflow-wrap:break-word;}
.side-card{padding:var(--pad-card);}
.side-card .btn-block{margin-top:var(--sp-2);}
.faq-item{padding:0 var(--pad-card);}
.faq-item summary{padding:var(--sp-4) 28px var(--sp-4) 0;}
.faq-item summary::after{top:calc(var(--sp-4) - 2px);}
.faq-list{gap:var(--sp-3);}
.review-item-head{row-gap:var(--sp-1);}
.reviews-bar-num{flex:0 0 22px;}

/* ---- Tables ---- */
.table-wrap{border:1px solid var(--border-color);border-radius:var(--r-card);background:var(--card-bg);box-shadow:var(--shadow);}
body:not(.admin-body) .table-wrap .table{min-width:520px;}
body:not(.admin-body) .table th{background:var(--page-bg);white-space:nowrap;padding:var(--sp-3) var(--sp-4);font-weight:600;}
body:not(.admin-body) .table td{padding:var(--sp-3) var(--sp-4);overflow-wrap:break-word;}
.table th.ta-r,.table td.ta-r{text-align:right;}
.table th.ta-c,.table td.ta-c{text-align:center;}
.table tbody tr:last-child td{border-bottom:none;}
.table tbody tr:hover td{background:var(--accent-soft);}
.table tfoot td{border-top:1px solid var(--border-color);font-weight:700;}
.table .price,.table td:nth-child(2){font-variant-numeric:tabular-nums;}
.qty-input{width:72px;text-align:center;}

/* ---- Notes, panels and inline boxes (one inner radius) ---- */
.checkout-reqs,.checkout-legal,.host-addon,.host-terms,.terms-details{border:1px solid var(--border-color);border-radius:var(--r-ctl);background:var(--card-bg);}
.checkout-legal{padding:var(--pad-panel);}
.checkout-dl,.checkout-digital,.dl-notice{padding:10px var(--sp-3);border-left:3px solid var(--c-accent-2);background:var(--accent-soft);border-radius:0 var(--r-ctl) var(--r-ctl) 0;}
.dl-notice{padding:var(--sp-3) var(--sp-4);}
.flash{border-radius:var(--r-ctl);}
.hero-frame,.home-banners.is-fit .hb-track{border-radius:var(--r-card);}

/* ---- Hosting add-on (moved out of an inline <style>; dark-mode safe) ---- */
.host-frame{margin:2px 0 var(--sp-2);max-width:640px;}
.host-addon{padding:var(--pad-panel);margin:6px 0 4px;background:var(--accent-soft);}
.host-toggle{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-weight:600;margin:0;}
.host-toggle input{margin-top:3px;}
.host-fields{margin-top:var(--sp-3);}
.host-slugrow{display:flex;align-items:stretch;max-width:420px;}
.host-slugrow input{flex:1;min-width:0;border-top-right-radius:0;border-bottom-right-radius:0;}
.host-suffix{display:flex;align-items:center;padding:0 var(--sp-3);background:var(--page-bg);border:1px solid var(--border-color);border-left:0;border-radius:0 var(--r-ctl) var(--r-ctl) 0;white-space:nowrap;color:var(--text-muted);}
.host-avail{margin:var(--sp-2) 0 0;min-height:1.2em;font-size:var(--fs-small);}
.host-avail.ok{color:var(--ok-text);}
.host-avail.no{color:var(--err-text);}
.host-terms{margin:10px 0 0;}
.host-terms>summary,.terms-details>summary{cursor:pointer;padding:var(--sp-2) var(--sp-3);font-weight:600;user-select:none;}
.host-terms-body,.terms-body{padding:0 var(--sp-3) var(--sp-3);max-height:220px;overflow:auto;font-size:var(--fs-small);line-height:1.5;color:var(--text-primary);}
.host-agree{display:flex;align-items:flex-start;gap:10px;margin:var(--sp-3) 0 0;cursor:pointer;font-size:.95rem;font-weight:400;}
.host-agree input{margin-top:3px;}
.host-actions{margin:var(--sp-4) 0 0;display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center;}
.terms-details{margin-top:10px;}
.host-renew-row{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:flex-end;}
.host-renew-row label{margin:0;}
.host-renew-agree{display:flex;align-items:flex-start;gap:var(--sp-2);margin-top:10px;font-size:.95rem;font-weight:400;}
.host-renew-agree input{margin-top:3px;}

/* ---- Replacements for inline styles in views ---- */
.lead-narrow{max-width:760px;}
.mt-sm{margin-top:var(--sp-3);}
.mt-md{margin-top:var(--sp-4);}
.mt-lg{margin-top:var(--sp-6);}
.mb-0{margin-bottom:0;}
.card-narrow{max-width:760px;line-height:1.6;}
.stack-card{margin-bottom:var(--sp-4);}

/* ---- Footer ---- */
.site-foot{margin-top:var(--sp-7);}
.foot-col,.foot-brand{min-width:0;}
.foot-col a{overflow-wrap:anywhere;line-height:1.4;}
.foot-bottom{position:relative;align-items:center;padding-top:var(--sp-4);border-top:0;}
.foot-bottom::before{content:"";position:absolute;top:0;left:var(--gutter);right:var(--gutter);border-top:1px solid var(--border-color);}
.foot-bottom>*{min-width:0;}

/* ---- Containment safety net ---- */
.wrap,.product-main,.product-aside,.card,.rich{min-width:0;}
.rich img,.blog-article-body img,.rich table,.rich pre{max-width:100%;}
.rich table{display:block;overflow-x:auto;}
.rich pre,.license-key,code{overflow-wrap:anywhere;white-space:pre-wrap;}
.market-nav-row{-webkit-overflow-scrolling:touch;}
.account-head>*{min-width:0;}
.site-nav{min-width:0;}
.brand img{max-width:100%;height:auto;object-fit:contain;}
@media (max-width:620px){
  .best-for-list{columns:1;}
  .catalog-toolbar,.catalog-filters,.catalog-price,.catalog-sort{width:100%;}
  .catalog-sort select{flex:1;min-width:0;}
  .hero-cta .btn,.product-lead-cta .btn,.product-lead-cta form{flex:1 1 100%;}
  .product-lead-cta .btn{width:100%;}
  .coupon-form{flex-wrap:wrap;}
  .subscribe-form .btn{flex:1 1 100%;}
}
.checkout-layout{align-items:start;}
.demo-card .spec-tag{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:var(--sp-1);}

/* ---- Dark mode: accent-coloured glyphs need the lighter teal ---- */
[data-theme="dark"] .product-main .rich>ul>li::before,
[data-theme="dark"] .best-for-list li::before,
[data-theme="dark"] .buy-includes li::after,
[data-theme="dark"] .req-list li::before,
[data-theme="dark"] .faq-item summary::after,
[data-theme="dark"] .p-card-initial,
[data-theme="dark"] .summary-list .discount,
[data-theme="dark"] .figure-fallback span,
[data-theme="dark"] .blog-card-initial,
[data-theme="dark"] .crumbs a:hover,
[data-theme="dark"] .foot-col a:hover,
[data-theme="dark"] .faq-cat-nav a:hover{color:var(--c-accent-2);}
[data-theme="dark"] .bundle-card-price .price,
[data-theme="dark"] .bundle-card-price{color:var(--text-primary);}
[data-theme="dark"] .host-addon{background:var(--accent-soft);}

/* ---- Tablet: a lone last text card spans the row instead of orphaning ---- */
@media (min-width:640px) and (max-width:939px){
  .grid-3:has(>.choice-card,>.trust-cell,>.demo-card,>.solution-card,>.proof-card)>:last-child:nth-child(odd){grid-column:1/-1;}
}

/* ---- Cart table becomes stacked rows on phones (no sideways scrolling) ---- */
@media (max-width:620px){
  body:not(.admin-body) .table-wrap .cart-table{min-width:0;}
  .cart-table,.cart-table tbody,.cart-table tfoot{display:block;}
  .cart-table thead{display:none;}
  .cart-table tbody tr{display:grid;grid-template-columns:1fr auto;gap:var(--sp-2) var(--sp-4);padding:var(--sp-4);border-bottom:1px solid var(--border-color);}
  .cart-table tbody tr:last-child{border-bottom:0;}
  .cart-table td{display:block;padding:0;border:0;text-align:left;min-width:0;}
  .cart-table tbody td:nth-child(1){grid-column:1/-1;}
  .cart-table tbody td:nth-child(2){grid-column:1;grid-row:2;}
  .cart-table tbody td:nth-child(4){grid-column:2;grid-row:2;text-align:right;font-weight:700;}
  .cart-table tbody td:nth-child(3){grid-column:1;grid-row:3;}
  .cart-table tbody td:nth-child(5){grid-column:2;grid-row:3;align-self:end;text-align:right;}
  .cart-table tbody td[data-label]:not(:first-child)::before{content:attr(data-label);display:block;font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);font-weight:400;margin-bottom:2px;}
  .cart-table tbody td:nth-child(5)::before{display:none;}
  .cart-table tbody tr:hover td{background:transparent;}
  .cart-table tfoot tr{display:flex;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4);border-top:1px solid var(--border-color);}
  .cart-table tfoot td{padding:0;border:0;}
  .cart-table tfoot td:empty{display:none;}
  .cart-table tfoot td[colspan]{text-align:left;}
}

/* ---- Wide tables scroll inside their card, with edge shadows as a hint ---- */
.table-wrap{
  background:
    linear-gradient(to right,var(--card-bg) 30%,rgba(255,255,255,0)) left center/40px 100% no-repeat local,
    linear-gradient(to left,var(--card-bg) 30%,rgba(255,255,255,0)) right center/40px 100% no-repeat local,
    radial-gradient(farthest-side at 0 50%,rgba(16,20,24,.16),rgba(16,20,24,0)) left center/10px 100% no-repeat scroll,
    radial-gradient(farthest-side at 100% 50%,rgba(16,20,24,.16),rgba(16,20,24,0)) right center/10px 100% no-repeat scroll;
  background-color:var(--card-bg);
}
body:not(.admin-body) .table td:not(:first-child){white-space:nowrap;}
.consent-row~.btn,.consent-row~button{margin-top:var(--sp-3);}
@media (max-width:620px){.cart-table tbody td.ta-c{text-align:left;}}

/* =====================================================================
   1.0.86 machined-metal theme  (storefront only: body.theme-machined)
   Brushed steel surfaces, milled recesses, engraved labels, anodised
   buttons and a measuring-scale rule under section headings.
   Pure CSS. To switch it off, remove class="theme-machined" from <body>
   in views/layout.php.
   ===================================================================== */

/* ---- Light: brushed aluminium ---- */
body.theme-machined{
  --page-bg:#E2E6EA;
  --card-bg:#F7F9FA;
  --border-color:#BAC2CB;
  --text-primary:#131E29;
  --text-muted:#4F5B67;
  --accent-soft:rgba(1,150,160,.10);
  --radius:6px;
  --r-card:6px;
  --r-ctl:6px;

  --hi:#FFFFFF;                       /* top bevel highlight */
  --lo:rgba(19,30,41,.07);            /* bottom bevel shade */
  --metal-line:#B2BAC3;               /* machined edge */
  --metal-edge:#98A2AD;               /* stronger edge (hover, bezels) */
  --plate:linear-gradient(180deg,#FCFDFD 0%,#F2F5F7 55%,#E8ECEF 100%);
  --steel-bar:linear-gradient(180deg,#FAFBFC 0%,#E4E8EC 100%);
  --steel-rail:linear-gradient(180deg,#D7DCE2 0%,#CBD1D8 100%);
  --steel-1:#FFFFFF;--steel-2:#E5E9ED;  /* ghost button / chip metal */
  --input-bg:#F1F4F6;
  --recess:inset 0 2px 5px rgba(19,30,41,.30),0 1px 0 rgba(255,255,255,.9);
  --grain:repeating-linear-gradient(0deg,rgba(255,255,255,.30) 0,rgba(255,255,255,.30) 1px,rgba(19,30,41,.022) 1px,rgba(19,30,41,.022) 2px);
  --sheen:linear-gradient(115deg,rgba(255,255,255,0) 28%,rgba(255,255,255,.60) 44%,rgba(255,255,255,0) 60%);
  --bevel:inset 0 1px 0 var(--hi),inset 0 -1px 0 var(--lo);
  --shadow:0 1px 2px rgba(19,30,41,.08),0 8px 16px -10px rgba(19,30,41,.22);
  --shadow-lift:0 2px 4px rgba(19,30,41,.10),0 14px 24px -12px rgba(19,30,41,.30);
  background:var(--grain),linear-gradient(180deg,#EBEEF1 0%,#DEE2E7 100%);
  background-color:var(--page-bg);
}

/* ---- Dark: gunmetal ---- */
[data-theme="dark"] body.theme-machined{
  --page-bg:#0D1115;
  --card-bg:#171E25;
  --border-color:#2D3742;
  --text-primary:#E8ECF0;
  --text-muted:#9BA6B2;
  --hi:rgba(255,255,255,.08);
  --lo:rgba(0,0,0,.45);
  --metal-line:#364250;
  --metal-edge:#4A5867;
  --plate:linear-gradient(180deg,#232B34 0%,#1B232B 55%,#161D24 100%);
  --steel-bar:linear-gradient(180deg,#262F39 0%,#171D24 100%);
  --steel-rail:linear-gradient(180deg,#1C232B 0%,#12171D 100%);
  --steel-1:#2B3540;--steel-2:#1D252D;
  --input-bg:#10161C;
  --recess:inset 0 2px 6px rgba(0,0,0,.65),0 1px 0 rgba(255,255,255,.06);
  --grain:repeating-linear-gradient(0deg,rgba(255,255,255,.022) 0,rgba(255,255,255,.022) 1px,rgba(0,0,0,.06) 1px,rgba(0,0,0,.06) 2px);
  --sheen:linear-gradient(115deg,rgba(255,255,255,0) 28%,rgba(255,255,255,.07) 44%,rgba(255,255,255,0) 60%);
  --shadow:0 1px 2px rgba(0,0,0,.5),0 10px 18px -10px rgba(0,0,0,.7);
  --shadow-lift:0 2px 4px rgba(0,0,0,.5),0 16px 26px -12px rgba(0,0,0,.8);
  background:var(--grain),linear-gradient(180deg,#12171C 0%,#0B0F13 100%);
  background-color:var(--page-bg);
}

/* ---- Header and navigation rail ---- */
.theme-machined .site-head{background:var(--grain),var(--steel-bar);border-bottom:1px solid var(--metal-line);box-shadow:inset 0 1px 0 var(--hi),0 2px 10px -4px rgba(19,30,41,.25);}
.theme-machined .head-row{min-height:60px;}
.theme-machined .theme-toggle{background:linear-gradient(180deg,var(--steel-1),var(--steel-2));border-color:var(--metal-line);box-shadow:var(--bevel);}
.theme-machined .cart-badge{background:linear-gradient(180deg,color-mix(in srgb,var(--c-accent) 80%,#fff),var(--c-accent));box-shadow:inset 0 1px 0 rgba(255,255,255,.35);}
.theme-machined .market-nav{background:var(--steel-rail);border-bottom:1px solid var(--metal-edge);box-shadow:inset 0 1px 0 var(--hi),inset 0 -1px 0 var(--lo);}
.theme-machined .market-nav-row{gap:0;padding-top:0;padding-bottom:0;}
.theme-machined .market-nav a{border-radius:0;padding:11px 16px;font-size:.88rem;font-weight:600;letter-spacing:.01em;opacity:1;color:var(--text-primary);position:relative;transition:background .15s ease,color .15s ease;}
/* panel seams between items: a dark groove with a light edge beside it */
.theme-machined .market-nav a+a{box-shadow:inset 1px 0 0 var(--metal-line),inset 2px 0 0 var(--hi);}
.theme-machined .market-nav a:hover,.theme-machined .market-nav a:focus-visible{background:linear-gradient(180deg,var(--steel-1),var(--steel-2));text-decoration:none;color:var(--c-accent);}
[data-theme="dark"] .theme-machined .market-nav a:hover,[data-theme="dark"] .theme-machined .market-nav a:focus-visible{color:var(--c-accent-2);}

/* ---- Hero: a brushed plate with a sheen, scale along the bottom edge ---- */
.theme-machined .hero{position:relative;background:linear-gradient(105deg,transparent 0%,transparent 38%,rgba(255,255,255,.55) 46%,rgba(255,255,255,.12) 54%,transparent 62%),var(--sheen),var(--grain),linear-gradient(180deg,#EEF1F4 0%,#C4CBD3 100%);background-color:#D3D9DF;border-bottom:1px solid var(--metal-edge);box-shadow:inset 0 -1px 0 var(--hi);padding:clamp(40px,6vw,64px) 0 clamp(44px,6vw,68px);overflow:hidden;}
[data-theme="dark"] .theme-machined .hero{background:linear-gradient(105deg,transparent 0%,transparent 38%,rgba(255,255,255,.07) 46%,rgba(255,255,255,.02) 54%,transparent 62%),var(--sheen),var(--grain),linear-gradient(180deg,#232C36 0%,#12171D 100%);background-color:#161C22;}
.theme-machined .hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:8px;background:repeating-linear-gradient(90deg,var(--metal-edge) 0,var(--metal-edge) 1px,transparent 1px,transparent 12px),repeating-linear-gradient(90deg,var(--metal-edge) 0,var(--metal-edge) 1px,transparent 1px,transparent 60px) bottom/100% 8px no-repeat;-webkit-mask:linear-gradient(180deg,transparent 0,#000 100%);mask:linear-gradient(180deg,transparent 0,#000 100%);opacity:.55;pointer-events:none;}
.theme-machined .hero h1{color:var(--c-ink);text-shadow:0 1px 0 rgba(255,255,255,.85);letter-spacing:-0.025em;}
[data-theme="dark"] .theme-machined .hero h1{color:var(--text-primary);text-shadow:0 -1px 0 rgba(0,0,0,.6);}
.theme-machined .hero-sub{color:var(--text-muted);}
.theme-machined .hero-trust{color:var(--text-muted);padding-top:var(--sp-3);border-top:1px solid var(--metal-line);box-shadow:0 -1px 0 var(--hi);margin-top:var(--sp-5);}
/* the screenshot sits in a bezelled, screwed-down frame */
.theme-machined .hero-frame{padding:10px;border-radius:8px;border:1px solid var(--metal-edge);background:linear-gradient(145deg,#FAFBFC 0%,#C9CFD6 48%,#E9EDF0 100%);box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(255,255,255,.7),0 22px 44px -14px rgba(19,30,41,.45);}
[data-theme="dark"] .theme-machined .hero-frame{background:linear-gradient(145deg,#3A4552 0%,#222A33 48%,#2E3843 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 22px 44px -14px rgba(0,0,0,.8);}
.theme-machined .hero-frame-bar{background:transparent;border:0;padding:0 2px 10px;gap:8px;}
.theme-machined .hero-frame-bar span,
.theme-machined .hero-frame-bar span:first-child,
.theme-machined .hero-frame-bar span:nth-child(2),
.theme-machined .hero-frame-bar span:nth-child(3){width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#FFFFFF 0%,#A7B0BA 52%,#6C7681 100%);box-shadow:inset 0 0 0 1px rgba(19,30,41,.35),0 1px 0 rgba(255,255,255,.7);}
.theme-machined .hero-frame-shot{border-radius:4px;box-shadow:var(--recess),0 0 0 1px rgba(19,30,41,.35);}
.theme-machined .hero-visual-cap{color:var(--text-muted);letter-spacing:.01em;}

/* ---- Plates: cards, panels, tables ---- */
.theme-machined :is(.card,.p-card,.blog-card,.bundle-card,.choice-card,.trust-cell,.proof-card,.side-card,.req-panel,.faq-item,.buy-card,.solution-card,.demo-card,.subscribe-card,.notice-card,.table-wrap,.checkout-legal,.checkout-reqs,.host-addon,.terms-details){
  background:var(--plate);
  border:1px solid var(--metal-line);
  border-radius:var(--r-card);
  box-shadow:var(--bevel),var(--shadow);
}
.theme-machined .table-wrap{background:var(--plate);}
.theme-machined :is(.p-card,.bundle-card,.choice-card,.blog-card){transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease;}
.theme-machined :is(.p-card,.bundle-card,.choice-card,.blog-card):hover{border-color:var(--metal-edge);box-shadow:var(--bevel),var(--shadow-lift);transform:translateY(-2px);}
/* images sit in a milled pocket inside the plate */
.theme-machined .p-card-media,.theme-machined .blog-card-media{margin:8px 8px 0;border-radius:4px;box-shadow:var(--recess),0 0 0 1px rgba(19,30,41,.28);}
.theme-machined .bundle-card-media{border-radius:5px 5px 0 0;box-shadow:inset 0 -1px 0 rgba(19,30,41,.25);}
.theme-machined .product-figure,.theme-machined .blog-article-cover{padding:8px;background:var(--plate);border:1px solid var(--metal-line);box-shadow:var(--bevel),var(--shadow);}
.theme-machined .product-figure img,.theme-machined .blog-article-cover img{border-radius:4px;box-shadow:0 0 0 1px rgba(19,30,41,.28);}
.theme-machined .specs-strip{background:var(--metal-line);border-color:var(--metal-line);box-shadow:var(--shadow);}
.theme-machined .spec-cell{background:var(--plate);box-shadow:inset 0 1px 0 var(--hi);}
.theme-machined .table th{background:linear-gradient(180deg,var(--steel-1),var(--steel-2));border-bottom:1px solid var(--metal-line);}
.theme-machined .table td{border-bottom-color:var(--metal-line);}
.theme-machined .table tbody tr:hover td{background:rgba(1,150,160,.07);}
.theme-machined .gateway-option{background:linear-gradient(180deg,var(--steel-1),var(--steel-2));border-color:var(--metal-line);box-shadow:var(--bevel);}
.theme-machined .gateway-option:has(input:checked){border-color:var(--c-accent);box-shadow:var(--bevel),0 0 0 1px var(--c-accent);}

/* ---- Engraved labels ---- */
.theme-machined :is(.spec-k,.side-head,.req-head,.foot-head,.bundle-card-tag,.ad-label){text-shadow:0 1px 0 rgba(255,255,255,.8);}
[data-theme="dark"] .theme-machined :is(.spec-k,.side-head,.req-head,.foot-head,.bundle-card-tag,.ad-label){text-shadow:0 -1px 0 rgba(0,0,0,.6);}
.theme-machined .spec-tag{text-shadow:0 1px 0 rgba(255,255,255,.7);}
[data-theme="dark"] .theme-machined .spec-tag{text-shadow:0 -1px 0 rgba(0,0,0,.6);}

/* ---- Section headings with a measuring scale ---- */
.theme-machined .section-head{position:relative;padding-bottom:12px;margin-bottom:var(--sp-5);}
.theme-machined .section-head::after{content:"";flex:0 0 100%;height:7px;margin-top:2px;
  background:
    repeating-linear-gradient(90deg,var(--metal-edge) 0,var(--metal-edge) 1px,transparent 1px,transparent 8px) left bottom/100% 4px no-repeat,
    repeating-linear-gradient(90deg,var(--metal-edge) 0,var(--metal-edge) 1px,transparent 1px,transparent 40px) left bottom/100% 7px no-repeat,
    linear-gradient(var(--metal-edge),var(--metal-edge)) left bottom/100% 1px no-repeat;
  box-shadow:0 1px 0 var(--hi);opacity:.9;}
.theme-machined .section-head h2{text-shadow:0 1px 0 rgba(255,255,255,.7);}
[data-theme="dark"] .theme-machined .section-head h2{text-shadow:0 -1px 0 rgba(0,0,0,.6);}

/* ---- Buttons: anodised primary, brushed-steel secondary ---- */
.theme-machined .btn{border-radius:var(--r-ctl);letter-spacing:.01em;transition:filter .15s ease,box-shadow .15s ease,transform .1s ease,border-color .15s ease;}
.theme-machined .btn-primary{background:var(--c-accent);border:1px solid color-mix(in srgb,var(--c-accent) 60%,#000);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.35);
  background:linear-gradient(180deg,color-mix(in srgb,var(--c-accent) 78%,#fff) 0%,var(--c-accent) 50%,color-mix(in srgb,var(--c-accent) 82%,#000) 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.32),inset 0 -1px 0 rgba(0,0,0,.28),0 1px 2px rgba(19,30,41,.35);}
.theme-machined .btn-primary:hover{filter:brightness(1.1);}
.theme-machined .btn-ghost{background:linear-gradient(180deg,var(--steel-1),var(--steel-2));border:1px solid var(--metal-line);color:var(--text-primary);box-shadow:var(--bevel),0 1px 2px rgba(19,30,41,.12);}
.theme-machined .btn-ghost:hover{border-color:var(--metal-edge);filter:none;background:linear-gradient(180deg,var(--steel-1),var(--steel-1));}
.theme-machined .btn:active{transform:translateY(1px);box-shadow:inset 0 2px 4px rgba(0,0,0,.35);filter:none;}
.theme-machined .btn-mini{background:linear-gradient(180deg,var(--steel-1),var(--steel-2));border-color:var(--metal-line);box-shadow:var(--bevel);}
.theme-machined .btn-mini:hover{background:var(--c-accent);}

/* ---- Chips and pills: small steel capsules ---- */
.theme-machined .cat-chip,.theme-machined .product-trust li span{background:linear-gradient(180deg,var(--steel-1),var(--steel-2));border:1px solid var(--metal-line);box-shadow:var(--bevel);color:var(--text-primary);}
.theme-machined .cat-chip:hover{border-color:var(--metal-edge);}
.theme-machined .cat-chip.is-active{background:linear-gradient(180deg,color-mix(in srgb,var(--c-accent) 78%,#fff),var(--c-accent) 55%,color-mix(in srgb,var(--c-accent) 82%,#000));border-color:color-mix(in srgb,var(--c-accent) 60%,#000);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.35);box-shadow:inset 0 1px 0 rgba(255,255,255,.3);}
.theme-machined .bundle-save-badge{background:linear-gradient(180deg,#3FE0E6 0%,var(--c-accent-2) 55%,#00A4AA 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 1px 1px rgba(19,30,41,.25);}

/* ---- Inputs: recessed pockets ---- */
.theme-machined :is(input,select,textarea):not([type=checkbox],[type=radio],[type=color],[type=file]){background:var(--input-bg);border:1px solid var(--metal-edge);box-shadow:inset 0 2px 4px rgba(19,30,41,.16),0 1px 0 var(--hi);}
[data-theme="dark"] .theme-machined :is(input,select,textarea):not([type=checkbox],[type=radio],[type=color],[type=file]){box-shadow:inset 0 2px 5px rgba(0,0,0,.55),0 1px 0 rgba(255,255,255,.05);}
.theme-machined :is(input,select,textarea):focus{outline:none;border-color:var(--c-accent);box-shadow:inset 0 2px 4px rgba(19,30,41,.16),0 0 0 3px var(--accent-soft);}

/* ---- Rating bars: milled channel with a metal fill ---- */
.theme-machined .reviews-bar{background:var(--input-bg);box-shadow:inset 0 1px 3px rgba(19,30,41,.35);}

/* ---- Admin-authored text ad ("Own the whole toolkit") ---- */
.theme-machined .ad-unit div[style*="dashed"]{border:1px solid var(--metal-line)!important;border-radius:var(--r-card)!important;background:var(--plate)!important;box-shadow:var(--bevel),var(--shadow);}

/* ---- Footer: gunmetal base ---- */
.theme-machined .site-foot{--text-primary:#E8ECF0;--text-muted:#A3AEBA;--border-color:#2F3945;--metal-line:#2F3945;--hi:rgba(255,255,255,.07);
  background:var(--grain),linear-gradient(180deg,#252D36 0%,#141A20 100%);background-color:#1A2027;color:#E8ECF0;border-top:1px solid #0A0E12;box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
  --grain:repeating-linear-gradient(0deg,rgba(255,255,255,.02) 0,rgba(255,255,255,.02) 1px,rgba(0,0,0,.05) 1px,rgba(0,0,0,.05) 2px);}
.theme-machined .site-foot :is(h1,h2,h3,.foot-name){color:#E8ECF0;}
.theme-machined .site-foot a{color:#C6CFD8;}
.theme-machined .site-foot a:hover{color:var(--c-accent-2);text-decoration:none;}
.theme-machined .site-foot :is(.foot-head,.foot-name){text-shadow:0 -1px 0 rgba(0,0,0,.6);}
.theme-machined .site-foot .foot-head{color:#8E9AA7;}
.theme-machined .foot-logo{background:linear-gradient(180deg,#fff,#E4E8EC);padding:6px 10px;border-radius:6px;box-shadow:var(--bevel);}
.theme-machined .foot-bottom::before{border-top-color:#2F3945;box-shadow:0 1px 0 rgba(255,255,255,.05);}
.theme-machined .site-foot .consent-link,.theme-machined .site-foot .foot-admin-link{color:#8E9AA7;}

/* ---- Keep motion gentle ---- */
@media (prefers-reduced-motion:reduce){
  .theme-machined :is(.p-card,.bundle-card,.choice-card,.blog-card):hover{transform:none;}
  .theme-machined .btn:active{transform:none;}
}

/* ---- Demo login details (collapsible) ---- */
.demo-access{margin-top:var(--sp-3);border:1px solid var(--border-color);border-radius:var(--r-ctl,6px);background:var(--card-bg);}
.demo-access>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;padding:10px 14px;min-height:var(--ctl-h,42px);font-weight:600;font-size:.9rem;color:var(--text-primary);}
.demo-access>summary::-webkit-details-marker{display:none;}
.demo-access>summary::after{content:"+";margin-left:auto;font-size:1.2rem;line-height:1;color:var(--text-muted);}
.demo-access[open]>summary::after{content:"\2212";}
.demo-access>summary:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px;}
.demo-access-body{padding:4px 14px 14px;border-top:1px solid var(--border-color);}
.demo-cred{padding-top:10px;}
.demo-cred+.demo-cred{margin-top:6px;border-top:1px dashed var(--border-color);}
.demo-cred-label{margin:0 0 6px;font-family:var(--font-mono);font-size:var(--fs-label,.68rem);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);}
.demo-cred dl{margin:0;display:grid;gap:6px;}
.demo-cred dl>div{display:flex;flex-direction:column;align-items:stretch;gap:3px;min-width:0;}
.demo-cred dt{font-size:.74rem;color:var(--text-muted);}
.demo-cred dd{margin:0;display:flex;align-items:center;gap:8px;min-width:0;flex:1;}
.demo-cred code{flex:1;min-width:0;overflow-wrap:anywhere;font-size:.85rem;padding:3px 8px;border-radius:4px;background:var(--accent-soft,rgba(0,0,0,.05));color:var(--text-primary);}
.copy-btn{flex:0 0 auto;font:inherit;font-size:.75rem;font-weight:600;padding:4px 10px;min-height:28px;border:1px solid var(--border-color);border-radius:var(--r-ctl,6px);background:var(--card-bg);color:var(--text-primary);cursor:pointer;}
.copy-btn:hover{border-color:var(--c-accent);}
.demo-access-note{margin:10px 0 0;}
.demo-card .demo-access{margin-top:var(--sp-3);}
.theme-machined .demo-access{background:var(--plate,var(--card-bg));box-shadow:var(--bevel,none);}
.theme-machined .demo-access>summary{text-shadow:0 1px 0 rgba(255,255,255,.7);}
[data-theme="dark"] .theme-machined .demo-access>summary{text-shadow:0 -1px 0 rgba(0,0,0,.6);}
.theme-machined .demo-cred code{background:var(--recess,rgba(0,0,0,.06));box-shadow:inset 0 1px 2px rgba(0,0,0,.12);}
.theme-machined .copy-btn{background:var(--steel-bar,var(--card-bg));}

/* ---- "Requires another product" reminders ---- */
.requires-note{display:flex;gap:12px;align-items:flex-start;margin:var(--sp-4) 0;padding:14px 16px;border:1px solid var(--border-color);border-left:4px solid var(--c-accent);border-radius:var(--r-ctl,6px);background:var(--card-bg);}
.requires-ico,.requires-cart .requires-title span{color:var(--c-accent);font-size:1.15rem;line-height:1.2;flex:0 0 auto;}
.requires-title{margin:0 0 4px;font-weight:700;color:var(--text-primary);}
.requires-note p{margin:0;}
.requires-note .requires-links{margin-top:8px;}
.requires-note .requires-links a{font-weight:600;}
.requires-mini{margin:0 0 10px;color:var(--text-muted);text-align:center;}
.p-card-req{margin:2px 0 0;font-family:var(--font-mono);font-size:var(--fs-label,.68rem);letter-spacing:.06em;text-transform:uppercase;color:var(--c-accent);}
.requires-cart{margin:var(--sp-5) 0;padding:16px;border:1px solid var(--border-color);border-left:4px solid var(--c-accent);border-radius:var(--r-card,8px);background:var(--card-bg);}
.requires-cart .requires-title{display:flex;gap:8px;align-items:center;}
.requires-row+.requires-row{margin-top:12px;padding-top:12px;border-top:1px dashed var(--border-color);}
.requires-row p{margin:0 0 8px;}
.requires-actions{display:flex;flex-wrap:wrap;gap:8px;}
.checkout-summary .requires-cart{margin:var(--sp-3) 0;padding:12px 14px;}
@media (max-width:620px){.requires-actions .btn,.requires-actions form{width:100%;}.requires-actions .btn{justify-content:center;text-align:center;}}
.theme-machined :is(.requires-note,.requires-cart){background:var(--plate,var(--card-bg));box-shadow:var(--bevel,none);}

.shelf-head{margin-top:var(--sp-7,40px);}
.shelf-head:first-of-type{margin-top:var(--sp-4);}
.shelf-head .muted{margin-left:auto;}

/* Product cards: when the card is narrow (4-up grids), stack price over a full-width button so every
   card in a row lines up the same way, with or without a struck-through price. */
.p-card{container-type:inline-size;}
@container (max-width:340px){
  .p-card-foot{flex-direction:column;align-items:stretch;gap:var(--sp-2);}
  .p-card-foot form,.p-card-foot .btn{width:100%;}
  .p-card-foot .btn{justify-content:center;text-align:center;}
}
.p-card-price{display:flex;align-items:baseline;gap:10px;white-space:nowrap;}

/* 1.0.94 — Requirements and Best for always stack (Requirements on top, Best for below), on every screen size.
   On a product page the buy box takes a third of the width, so side-by-side cards were cramped even on a
   ~1000px screen. The lists inside each card still use two columns when the card is wide enough, and drop to
   one when it is narrow, measured on the card itself. */
.pb-grid{grid-template-columns:1fr;}
.pb-grid .req-panel,.pb-grid .best-for{height:auto;}
.req-panel,.best-for,.what-you-get{container-type:inline-size;container-name:pbcard;}
@container pbcard (max-width:520px){
  .req-list{grid-template-columns:1fr;}
  .best-for-list{columns:1;}
}
