/*
Theme Name: Saher Galt
Theme URI: https://www.galtmusic.com/lessons/
Author: Saher Galt
Description: Dark, vibrant, spectrum-lit theme for galtmusic.com/lessons. Built for Easy Digital Downloads and Ultimate Product Catalog. Signature SG insignia in wide-tracked Orbitron; Archivo display type; red–violet–blue spectrum accents.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: saher-galt
Tags: e-commerce, dark, one-column, custom-logo, custom-menu, featured-images
*/

/* ============================================================
   1. TOKENS
   ============================================================ */
:root{
  --ink:#06070C;
  --deep:#0A0D18;
  --panel:#121728;
  --panel-2:#171D33;
  --line:rgba(255,255,255,.08);
  --line-strong:rgba(255,255,255,.16);
  --red:#FF3B4C;
  --violet:#8B5CF6;
  --blue:#4D8DFF;
  --pop:#F4F6FF;
  --text:#EAEDF5;
  --muted:#98A0B8;
  --red-rgb:255,59,76;
  --violet-rgb:139,92,246;
  --blue-rgb:77,141,255;
  --glow-rgb:139,92,246;
  --on-grad:#ffffff; /* text placed on the spectrum gradient (badges, pills) */
  --grad:linear-gradient(100deg,var(--red),var(--violet),var(--blue));
  --grad-soft:linear-gradient(100deg,rgba(var(--red-rgb),.85),rgba(var(--glow-rgb),.85),rgba(var(--blue-rgb),.85));
  --r-lg:18px;
  --r-md:12px;
  --r-sm:8px;
  --shadow-lift:0 18px 50px rgba(0,0,0,.5);
  --shadow-glow:0 10px 34px rgba(var(--glow-rgb),.35);
  --font-display:'Archivo',sans-serif;
  --font-body:'Manrope',sans-serif;
  --font-accent:'Instrument Serif',serif;
  --font-insignia:'Orbitron',sans-serif;
  --accent:#A78BFF;
  --link:#B9A8FF;
  --wrap:1140px;
}

/* ============================================================
   2. RESET / BASE
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--ink);
  color:var(--text);
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--text)}
a:hover{color:#fff}
p{margin:0 0 1.2em}
h1,h2,h3,h4,h5,h6{
  font-family:var(--font-display);
  font-weight:800;
  font-stretch:118%;
  line-height:1.1;
  letter-spacing:-.01em;
  margin:0 0 .55em;
  color:var(--pop);
}
h1{font-size:clamp(34px,5vw,56px);font-weight:900;font-stretch:125%}
h2{font-size:clamp(27px,3.6vw,40px)}
h3{font-size:22px}
h4{font-size:18px}
blockquote{
  margin:2em 0;padding:8px 0 8px 26px;
  border-left:2px solid transparent;
  border-image:linear-gradient(180deg,var(--red),var(--violet),var(--blue)) 1;
  font-family:var(--font-accent);font-style:italic;
  font-size:1.25em;color:var(--pop);
}
hr{
  border:0;height:1px;margin:56px auto;
  background:linear-gradient(90deg,transparent,var(--red),var(--violet),var(--blue),transparent);
  opacity:.55;
}
::selection{background:var(--violet);color:#fff}
:focus-visible{outline:3px solid var(--violet);outline-offset:3px;border-radius:4px}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
body{overflow-x:clip} /* safety net: no accidental horizontal scroll */
.fitline{display:block;max-width:100%;min-width:0}
.screen-reader-text{
  clip:rect(1px,1px,1px,1px);clip-path:inset(50%);
  position:absolute!important;left:-9999px;top:auto;
  width:1px;height:1px;margin:-1px;padding:0;border:0;
  overflow:hidden;word-wrap:normal!important;color:transparent;
}
.skip-link:focus{
  clip:auto;clip-path:none;left:16px;top:16px;width:auto;height:auto;
  z-index:200;background:var(--panel);color:var(--pop);
  padding:12px 20px;border-radius:var(--r-sm);text-decoration:none;
}

/* Spectrum hairline — the recurring seam device (replaces angular cuts) */
.rule-spectrum{
  height:1px;border:0;margin:0;
  background:linear-gradient(90deg,transparent 2%,var(--red) 22%,var(--violet) 50%,var(--blue) 78%,transparent 98%);
  opacity:.65;
}

/* ============================================================
   3. BUTTONS  (shared by theme + EDD)
   ============================================================ */
.btn,
.edd-submit,
input[type="submit"],
button[type="submit"],
.edd_download_purchase_form .edd-add-to-cart,
a.edd-checkout-button{
  display:inline-block;
  font-family:var(--font-body);font-weight:700;font-size:15px;
  line-height:1.2;
  padding:14px 30px;
  border:0;border-radius:0;
  clip-path:polygon(73px -60px,calc(100% + 60px) -60px,calc(100% + 60px) calc(100% - 73px),calc(100% - 73px) calc(100% + 60px),-60px calc(100% + 60px),-60px 73px);
  background:var(--pop);color:#0A0C16!important;
  text-decoration:none;cursor:pointer;white-space:nowrap;
  box-shadow:none;
  transition:transform .22s ease,box-shadow .28s ease;
}
.btn:hover,
.edd-submit:hover,
input[type="submit"]:hover,
.edd_download_purchase_form .edd-add-to-cart:hover{
  background:linear-gradient(135deg,transparent 12px,#fff 12px) 1px 1px / calc(50% + 6px) calc(100% - 2px) no-repeat,linear-gradient(-45deg,transparent 12px,#fff 12px) right 1px bottom 1px / calc(50% + 6px) calc(100% - 2px) no-repeat,conic-gradient(from 315deg,var(--red),var(--violet) 25%,var(--blue) 50%,var(--violet) 75%,var(--red));
  transform:translateY(-2px);
  box-shadow:none;
  color:#0A0C16!important;
}
.btn-big{padding:18px 42px;font-size:17px}
.btn-ghost{
  background:transparent;color:var(--text)!important;
  box-shadow:inset 0 0 0 1px var(--line-strong);
}
.btn-ghost:hover{
  background:rgba(255,255,255,.04);color:var(--pop)!important;
  box-shadow:inset 0 0 0 1px var(--pop);
}
.btn-grad{
  background:var(--grad);color:#fff!important;
  box-shadow:none;
}
.btn-grad:hover{filter:brightness(1.08);color:#fff!important}

/* ============================================================
   4. FORMS
   ============================================================ */
input[type="text"],input[type="email"],input[type="url"],input[type="password"],
input[type="search"],input[type="number"],input[type="tel"],select,textarea{
  width:100%;
  background:var(--panel);
  border:1px solid var(--line-strong);
  border-radius:var(--r-sm);
  color:var(--text);
  font-family:var(--font-body);font-size:16px;
  padding:13px 16px;
  transition:border-color .18s ease,box-shadow .18s ease;
}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--violet);
  box-shadow:0 0 0 3px rgba(var(--glow-rgb),.25);
}
label{font-weight:600;font-size:14px;letter-spacing:.02em}
::placeholder{color:var(--muted);opacity:.8}

/* ============================================================
   5. HEADER / NAV
   ============================================================ */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(6,7,12,.82);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:0;
}
.site-header::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(var(--red-rgb),.55) 18%,rgba(var(--violet-rgb),.6) 50%,rgba(var(--blue-rgb),.55) 82%,transparent);
}
.site-header .wrap{display:flex;align-items:center;gap:28px;min-height:74px}

.brand{display:flex;align-items:center;gap:16px;text-decoration:none}
.brand .custom-logo{max-height:44px;width:auto}
/* SG lockup — Plateia vector on top, trailing spectrum rule, tag below */
.sg-mark{
  display:inline-flex;flex-direction:column;align-items:center;
  line-height:1;gap:4px;
}
.sg-mark svg.sg-letters{
  display:block;height:30px;width:auto;color:var(--pop);
  margin-bottom:-1px; /* settle the letters down onto the rule */
}
.sg-mark .sg-letters-text{ /* fallback if the svg asset is missing */
  font-family:var(--font-insignia);font-weight:800;font-size:24px;
  letter-spacing:.1em;color:var(--pop);
}
.sg-mark .sg-rule{
  display:block;width:88%;height:2px;border-radius:2px;
  background:linear-gradient(90deg,transparent,var(--red) 18%,var(--violet) 50%,var(--blue) 82%,transparent);
}
.sg-mark .sg-sub{
  font-family:var(--font-display);font-weight:600;font-stretch:110%;
  font-size:8.5px;letter-spacing:.3em;text-indent:.3em;text-transform:uppercase;
  color:var(--muted);white-space:nowrap;
}
.site-footer .sg-mark{margin-bottom:16px}
.site-footer .sg-mark svg.sg-letters{height:19px}

/* SG insignia — wide, spaced Orbitron (legacy mark, still used on 404) */
.sg-insignia{
  font-family:var(--font-insignia);
  font-weight:700;font-size:21px;
  letter-spacing:.5em;text-indent:.5em; /* balance the trailing tracking */
  color:var(--pop);
  padding:7px 10px 7px 14px;
  border:1px solid var(--line-strong);
  border-radius:var(--r-sm);
  position:relative;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,0));
}
.sg-insignia::after{
  content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:1px;
  background:var(--grad);
}
.brand-name{display:flex;flex-direction:column;line-height:1.15}
.brand-name b{
  font-family:var(--font-display);font-weight:800;font-stretch:118%;
  font-size:17px;letter-spacing:.04em;text-transform:uppercase;color:var(--pop);
  white-space:nowrap;
}
.brand-name small{
  font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);
}

.main-nav{margin-left:auto}
.main-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:4px;align-items:center}
.main-nav li{position:relative}
.main-nav a{
  display:block;padding:10px 14px;position:relative;
  font-size:14.5px;font-weight:600;letter-spacing:.02em;
  color:var(--muted);text-decoration:none;
  transition:color .18s ease,letter-spacing .18s ease;
}
/* spectrum underline sweeps in from the left on hover */
.main-nav > ul > li > a::after{
  content:"";position:absolute;left:14px;right:14px;bottom:5px;height:2px;border-radius:2px;
  background:var(--grad);
  transform:scaleX(0);transform-origin:left center;opacity:0;
  transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .2s ease;
}
.main-nav a:hover{color:var(--pop);letter-spacing:.035em}
.main-nav > ul > li > a:hover::after,
.main-nav > ul > li > a:focus-visible::after{transform:scaleX(1);opacity:1}
.main-nav .current-menu-item > a,
.main-nav .current_page_item > a{color:var(--pop)}
.main-nav .current-menu-item > a::after,
.main-nav .current_page_item > a::after{transform:scaleX(1);opacity:1}
/* dropdowns */
.main-nav ul ul{
  position:absolute;top:100%;left:0;min-width:220px;
  flex-direction:column;gap:0;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);
  padding:8px;box-shadow:var(--shadow-lift);
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s;
}
.main-nav li:hover > ul,
.main-nav li:focus-within > ul{opacity:1;visibility:visible;transform:translateY(4px)}
.main-nav ul ul a{color:var(--text);border-radius:var(--r-sm)}
.main-nav ul ul a:hover{background:rgba(255,255,255,.05)}

.nav-cart{white-space:nowrap;
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 18px;margin-left:6px;
  font-size:14px;font-weight:700;text-decoration:none;
  color:#0A0C16;background:var(--pop);border-radius:0;
  clip-path:polygon(70px -60px,calc(100% + 60px) -60px,calc(100% + 60px) calc(100% - 70px),calc(100% - 70px) calc(100% + 60px),-60px calc(100% + 60px),-60px 70px);
  box-shadow:none;
  transition:transform .22s ease,box-shadow .28s ease;
}
.nav-cart:hover{transform:translateY(-1px);color:#0A0C16;background:linear-gradient(135deg,transparent 9px,#fff 9px) 1px 1px / calc(50% + 6px) calc(100% - 2px) no-repeat,linear-gradient(-45deg,transparent 9px,#fff 9px) right 1px bottom 1px / calc(50% + 6px) calc(100% - 2px) no-repeat,conic-gradient(from 315deg,var(--red),var(--violet) 25%,var(--blue) 50%,var(--violet) 75%,var(--red))}
.nav-cart .count{
  background:var(--grad);color:var(--on-grad);
  font-size:11.5px;font-weight:800;
  min-width:20px;height:20px;border-radius:10px;
  display:inline-flex;align-items:center;justify-content:center;padding:0 6px;
}

.nav-toggle{
  display:none;margin-left:auto;
  background:none;border:1px solid var(--line-strong);border-radius:var(--r-sm);
  padding:10px 12px;cursor:pointer;
}
.nav-toggle span{
  display:block;width:22px;height:2px;background:var(--pop);margin:4px 0;border-radius:2px;
  transition:transform .2s ease,opacity .2s ease;
}
.nav-open .nav-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav-open .nav-toggle span:nth-child(2){opacity:0}
.nav-open .nav-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* ============================================================
   6. HERO (front page)
   ============================================================ */
.hero{
  position:relative;overflow:hidden;
  padding:104px 0 84px;text-align:center;
}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 46% 44% at 15% 0%,rgba(var(--red-rgb),.13),transparent 60%),
    radial-gradient(ellipse 46% 44% at 85% 4%,rgba(var(--blue-rgb),.13),transparent 60%),
    radial-gradient(ellipse 40% 40% at 50% 108%,rgba(var(--glow-rgb),.1),transparent 60%);
}
.hero > .wrap{position:relative;z-index:2}
.nbseg{display:inline-block;white-space:nowrap}
.mbr{display:none}
@media (max-width:640px){.mbr{display:inline}}
.dbr{display:inline}
@media (max-width:640px){.dbr{display:none}}
:root{color-scheme:dark}
input:autofill,textarea:autofill,select:autofill{
  background-color:var(--panel)!important;color:var(--pop)!important;
  -webkit-text-fill-color:var(--pop)!important;
  box-shadow:inset 0 0 0 1000px var(--panel)!important;
  filter:none!important;
}
input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,
textarea:-webkit-autofill,select:-webkit-autofill{
  -webkit-text-fill-color:var(--pop)!important;
  box-shadow:inset 0 0 0 1000px var(--panel)!important;
  caret-color:var(--pop);
  transition:background-color 999999s ease-in-out 0s;
}
.eyebrow{
  display:inline-block;
  font-family:var(--font-display);font-weight:600;font-stretch:110%;
  font-size:13px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--accent);margin-bottom:24px;
}
.hero h1{
  text-transform:uppercase;
  font-size:clamp(40px,6.4vw,78px);
  max-width:15ch;margin:0 auto 24px;
}
.hero h1 .hl{
  white-space:nowrap;
  background:linear-gradient(100deg,var(--red),var(--violet),var(--blue),var(--violet),var(--red));
  background-size:250% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:shimmer 8s ease-in-out infinite;
}
@keyframes shimmer{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.hero .lede{max-width:58ch;margin:0 auto 40px;color:var(--muted);font-size:19px}
.hero-cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-bottom:26px}
.hero-note{color:var(--muted);font-size:14px;letter-spacing:.04em}
.hero-note .sep{opacity:.4;margin:0 8px}

/* ============================================================
   7. SECTIONS / CARDS
   ============================================================ */
.section{padding:92px 0}
.section-deep{background:var(--deep)}
.kicker{
  font-family:var(--font-display);font-weight:600;font-stretch:110%;
  font-size:13px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--accent);margin-bottom:14px;
}
.sec-title{
  text-transform:uppercase;font-weight:900;font-stretch:125%;
  font-size:clamp(28px,4vw,46px);margin-bottom:16px;max-width:22ch;
}
.sec-lede{color:var(--muted);max-width:64ch;font-size:18px}
.center{text-align:center}
.center .sec-title,.center .sec-lede{margin-left:auto;margin-right:auto}

.card-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:52px;
}
.card{
  position:relative;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  overflow:hidden;
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.card:hover{
  transform:translateY(-5px);
  border-color:rgba(var(--glow-rgb),.5);
  box-shadow:var(--shadow-lift);
}
.card{overflow:hidden}
.card::after{ /* spectrum hairline reveals on hover */
  content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:var(--grad);opacity:0;transition:opacity .22s ease;
}
.card:hover::after{opacity:1}
.card-media{aspect-ratio:16/10;overflow:hidden;background:var(--panel-2)}
.card-media img{width:100%;height:100%;object-fit:cover;margin:0;border-radius:0;transition:transform .5s ease}
.card:hover .card-media img{transform:scale(1.045)}
.card-body{padding:26px 26px 30px}
.card-body h3{
  font-size:20px;text-transform:uppercase;letter-spacing:.02em;
  font-weight:800;font-stretch:112%;margin-bottom:8px;
}
.card-body h3 a{text-decoration:none;color:var(--pop)}
.card-body p{color:var(--muted);font-size:15.5px;margin-bottom:16px}
.card-link{
  font-weight:700;font-size:14px;letter-spacing:.06em;text-transform:uppercase;
  text-decoration:none;color:var(--pop);
}
.card-link::after{content:" →";color:var(--violet)}
.card > a.card-cover{position:absolute;inset:0;z-index:2}

/* About band */
.about-band{display:grid;grid-template-columns:290px 1fr;gap:56px;align-items:center}
.about-band > div{min-width:0} /* let fitline measure real available width */
.about-band .portrait{
  border-radius:var(--r-lg);overflow:hidden;
  border:1px solid var(--line);
  box-shadow:var(--shadow-lift);
  position:relative;
}
.about-band .portrait::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--grad);
}
.about-band .portrait.no-rule::after{display:none}
.about-band .accent{
  font-family:var(--font-accent);font-style:italic;font-weight:400;
  font-size:clamp(24px,2.6vw,32px);color:var(--pop);line-height:1.35;
  letter-spacing:.005em;margin-bottom:18px;
}
.about-band p{color:var(--muted)}
.about-band strong{color:var(--pop)}

/* Newsletter */
.newsletter{
  background:
    radial-gradient(ellipse 55% 90% at 20% 120%,rgba(var(--red-rgb),.12),transparent 60%),
    radial-gradient(ellipse 55% 90% at 80% 120%,rgba(var(--blue-rgb),.12),transparent 60%),
    var(--deep);
  text-align:center;
}
.newsletter .sec-title{
  font-size:clamp(22px,2.8vw,32px);
  max-width:none; /* full width — never break early */
}
.newsletter .sec-lede{
  max-width:none;
  font-size:15px;letter-spacing:.02em;color:var(--muted);
}
.newsletter .widget{max-width:480px;margin:34px auto 0}
.newsletter .widget-title{display:none}
.newsletter p{color:var(--muted)}
/* Stack the form: field full width, button centered underneath.
   Generic selectors cover MC4WP, Mailpoet, Newsletter, custom HTML forms. */
.newsletter .widget form{
  display:flex;flex-direction:column;gap:14px;align-items:stretch;
}
.newsletter .widget form p,.newsletter .widget form div{margin:0}
.newsletter .widget input[type="email"],
.newsletter .widget input[type="text"]{
  width:100%;text-align:center;
  background:var(--panel)!important;color:var(--text)!important;
  border:1px solid var(--line-strong)!important;border-radius:var(--r-sm)!important;
  font-family:var(--font-body)!important;font-size:16px!important;
  padding:13px 16px!important;box-shadow:none!important;
}
.newsletter .widget input[type="email"]:focus,
.newsletter .widget input[type="text"]:focus{
  outline:none!important;border-color:var(--violet)!important;
  box-shadow:0 0 0 3px rgba(var(--violet-rgb),.25)!important;
}
.newsletter .widget input::placeholder{color:var(--muted)}
.newsletter .widget input[type="submit"],
.newsletter .widget button[type="submit"],
.newsletter .widget button{
  align-self:center;min-width:220px;
  background:#0A0C16!important;
  background-image:none!important;
  color:var(--pop)!important;
  border:0!important;
  box-shadow:inset 0 0 0 1px var(--line-strong)!important;
}
.newsletter .widget input[type="submit"]:hover,
.newsletter .widget button:hover{
  background:#10142A!important;
  color:#fff!important;
  box-shadow:inset 0 0 0 1px var(--violet)!important;
  transform:translateY(-2px);
}

/* ============================================================
   8. CONTENT / BLOG
   ============================================================ */
.page-head{
  position:relative;overflow:hidden;
  padding:76px 0 56px;text-align:center;
  border-bottom:0;
}
.page-head::after,.single-download-hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--line);
}
.page-head::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 46% 70% at 12% 0%,rgba(var(--red-rgb),.13),transparent 60%),
    radial-gradient(ellipse 46% 70% at 88% 0%,rgba(var(--blue-rgb),.13),transparent 60%),
    radial-gradient(ellipse 40% 60% at 50% 120%,rgba(var(--glow-rgb),.08),transparent 60%);
}
.page-head .wrap{position:relative;z-index:2}
.page-head h1{text-transform:uppercase;margin-bottom:8px;font-size:clamp(26px,3.4vw,40px)}
/* Blog post titles are sentences, not signage: sentence case, smaller, and
   held to the article's reading column so they align with the text below. */
.page-head-post h1{
  text-transform:none;
  font-size:clamp(24px,2.9vw,34px);
  letter-spacing:-.005em;
  max-width:none;
  text-wrap:balance;
}
/* Blog listing cards follow the same voice. */
.post-list .card-body h3{
  text-transform:none;
  font-size:19px;letter-spacing:0;line-height:1.28;
}
.page-head .meta{color:var(--muted);font-size:14.5px;letter-spacing:.04em}
.page-head .meta a{color:var(--link);text-decoration:none}

.content-area{padding:64px 0 96px}
.page .content-area:has(.entry-content-wide){padding-top:34px}
.entry-content{max-width:760px;margin:0 auto}
.entry-content.entry-content-wide{max-width:none}
/* Lead-in: the paragraph(s) before the catalog on a wide page read as a
   continuation of the centered header, so centre and constrain them.
   Copy after the listing stays left-aligned for comfortable reading. */
.entry-content-wide > p:first-child,
.entry-content-wide > p.lead-in{
  max-width:1140px;margin:0 auto 34px;text-align:center;
  font-size:18px;line-height:1.65;color:var(--text);
  text-wrap:pretty; /* avoid orphans, but fill the line */
}
@media (max-width:640px){
  .entry-content-wide > p:first-child,
  .entry-content-wide > p.lead-in{font-size:16px;margin-bottom:26px}
}
.entry-content p a,.entry-content li a,.entry-content td a,.about-band p a,.page-head .meta a,.hero .lede a,.site-footer .brand-blurb a,.newsletter .sec-lede a{
  color:var(--link);text-decoration:none;
  background-image:var(--grad);background-repeat:no-repeat;
  background-size:100% 1px;background-position:0 100%;
  padding-bottom:1px;
  transition:color .15s ease,background-size .15s ease;
}
.entry-content p a:hover,.entry-content li a:hover,.entry-content td a:hover,.about-band p a:hover,.page-head .meta a:hover,.hero .lede a:hover,.site-footer .brand-blurb a:hover,.newsletter .sec-lede a:hover{
  color:var(--pop);background-size:100% 2px;
}
.entry-content img{border-radius:var(--r-md);margin:1.4em auto}
.entry-content h2,.entry-content h3{margin-top:1.6em}
.entry-content ul,.entry-content ol{color:var(--text);padding-left:1.3em}
.entry-content li{margin-bottom:.45em}
.entry-content li::marker{color:var(--violet)}
.entry-content .wp-block-embed,.entry-content iframe{max-width:100%}
.entry-content .wp-block-embed iframe{border-radius:var(--r-md)}
.alignwide{max-width:980px}
.alignfull{max-width:none}

.post-list{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.post-list .sticky{border-color:rgba(var(--violet-rgb),.45)}
.post-list .sticky::after{opacity:1}
.post-list .card time{
  display:block;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);margin-bottom:8px;
}
.pagination,.page-links{margin-top:56px;text-align:center}
.pagination .nav-links{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.pagination a,.pagination span{
  display:inline-block;min-width:42px;padding:10px 14px;
  border:1px solid var(--line);border-radius:var(--r-sm);
  text-decoration:none;font-weight:700;font-size:14px;color:var(--muted);
}
.pagination a:hover{border-color:var(--violet);color:var(--pop)}
.pagination .current{background:var(--grad);color:#fff;border-color:transparent}

.post-nav{display:flex;justify-content:space-between;gap:20px;margin-top:64px}
.post-nav a{
  flex:1;padding:20px;border:1px solid var(--line);border-radius:var(--r-md);
  text-decoration:none;color:var(--text);transition:border-color .18s ease;
}
.post-nav a:hover{border-color:rgba(var(--glow-rgb),.5)}
.post-nav small{display:block;color:var(--muted);font-size:12px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px}

/* Comments */
.comments-area{max-width:760px;margin:72px auto 0}
.comment-list{list-style:none;padding:0}
.comment-list .comment{border-top:1px solid var(--line);padding:26px 0}
.comment-author img{border-radius:50%;margin-right:12px;float:left}
.comment-metadata{font-size:13px;color:var(--muted)}
.comment-metadata a{color:var(--muted);text-decoration:none}
.reply a{font-size:13px;font-weight:700;color:var(--link);text-decoration:none}
.comment-respond{margin-top:40px}

/* ============================================================
   9. EASY DIGITAL DOWNLOADS
   ============================================================ */

/* --- single download --- */
.single-download-hero{
  padding:72px 0 64px;
  border-bottom:0;
  position:relative;overflow:hidden;
}
.single-download-hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 40% 65% at 8% 0%,rgba(var(--red-rgb),.11),transparent 60%),
    radial-gradient(ellipse 40% 65% at 92% 0%,rgba(var(--blue-rgb),.11),transparent 60%);
}
.single-download-hero .wrap{position:relative;z-index:2}
.download-layout{display:grid;grid-template-columns:400px 1fr;gap:60px;align-items:start}
.download-layout > *{min-width:0}
.download-figure{
  position:sticky;top:100px;
  border-radius:var(--r-lg);overflow:hidden;
  border:1px solid var(--line);
  background:var(--panel);
  box-shadow:var(--shadow-lift);
}
.download-figure::after{
  content:"";display:block;height:3px;background:var(--grad);
}
.download-figure img{width:100%;margin:0;border-radius:0}
.download-main .kicker{margin-bottom:10px}
.download-main h1{text-transform:uppercase;font-size:clamp(32px,4.4vw,52px)}
.edd_price{
  font-family:var(--font-display);font-weight:800;font-stretch:118%;
  font-size:30px;color:var(--pop);
}
.download-buy{margin-top:6px}
.download-price-line{
  display:flex;flex-direction:column;align-items:flex-start;gap:3px;
  margin:0;
}
.download-price-line .edd_price{font-size:26px;line-height:1.1;margin:0}
.download-price-note{
  font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
}
.download-main .entry-content{max-width:none;margin:18px 0 0}

/* purchase form (auto-appended by EDD) — the CTA moment:
   spectrum hairline frame, soft violet bloom, lifts on hover */
.edd_download_purchase_form{
  position:relative;
  margin:30px 0 8px;padding:26px;
  border:1px solid transparent;
  border-radius:var(--r-md);
  background:
    linear-gradient(160deg,var(--panel-2),var(--panel)) padding-box,
    linear-gradient(100deg,rgba(var(--red-rgb),.65),rgba(var(--glow-rgb),.75),rgba(var(--blue-rgb),.65)) border-box;
  box-shadow:0 14px 44px rgba(var(--glow-rgb),.16);
  transition:box-shadow .25s ease,transform .25s ease;
}
.single-download .edd_download_purchase_form:hover,
.single-download .edd_download_purchase_form:focus-within{
  box-shadow:0 20px 60px rgba(var(--glow-rgb),.28);
  transform:translateY(-2px);
}
/* manual offer box (non-EDD pages) — matches the EDD purchase panel */
.sg-offer-box{
  position:relative;margin:30px 0 8px;padding:26px;
  border:1px solid transparent;border-radius:var(--r-md);
  background:linear-gradient(160deg,var(--panel-2),var(--panel)) padding-box,
             linear-gradient(100deg,rgba(var(--red-rgb),.65),rgba(var(--violet-rgb),.75),rgba(var(--blue-rgb),.65)) border-box;
  box-shadow:0 14px 44px rgba(var(--glow-rgb),.16);
  transition:box-shadow .25s ease,transform .25s ease;
  display:grid;grid-template-columns:auto 1fr;
  grid-template-areas:"price assure" "button assure";
  column-gap:48px;row-gap:16px;align-items:center;
}
.sg-offer-box:hover{box-shadow:0 20px 60px rgba(var(--glow-rgb),.28);transform:translateY(-2px)}
.sg-offer-box .download-price-line{grid-area:price;align-self:end}
.sg-offer-box .sg-offer-action{grid-area:button;align-self:start}
.sg-offer-box .sg-assurance{grid-area:assure;justify-self:end}
.sg-offer-box form,
.sg-offer-box .edd_download_purchase_form,
.sg-offer-box .wp-block-group,
.sg-offer-box .wp-block-group__inner-container,
.sg-offer-box .sg-offer-action > div,
.sg-offer-box .sg-offer-action > p{
  margin:0!important;padding:0!important;background:none!important;
  border:0!important;box-shadow:none!important;border-radius:0!important;
  display:block;transform:none!important;
}
.sg-offer-box .sg-offer-action p:empty{display:none}
.sg-offer-box br{display:none}
@media (max-width:640px){
  .hero h1{font-size:clamp(19px,7.3vw,40px);max-width:none}
  .single-download .content-area,.page-template-product-layout .content-area{padding-top:22px}
  .download-figure{margin-bottom:14px}
  .download-main h1{margin-bottom:10px}
  .download-main .kicker{margin-bottom:8px}
}
@media (max-width:560px){
  .sg-offer-box{
    display:grid;grid-template-columns:auto 1fr;
    grid-template-areas:"price price" "button assure";
    column-gap:18px;row-gap:14px;padding:20px;
  }
  .sg-offer-box .download-price-line{margin-bottom:0}
  .sg-offer-box .sg-assurance{justify-self:end;gap:8px;min-width:0}
  .sg-offer-box .sg-assure-item{font-size:12px;white-space:normal;align-items:flex-start;line-height:1.35}
}

/* offer-box layout: price stacked over button (left), assurances (right) */
.single-download .edd_download_purchase_form{
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-areas:"price assure" "button assure";
  column-gap:48px;row-gap:16px;
  align-items:center;
}
.single-download .edd_download_purchase_form .download-price-line{grid-area:price;align-self:end}
.single-download .edd_download_purchase_form .edd_purchase_submit_wrapper{grid-area:button;align-self:start}
.single-download .edd_download_purchase_form .sg-assurance{grid-area:assure;justify-self:end}
.single-download .edd_download_purchase_form .edd_price_options{grid-column:1/-1;grid-row:1}
/* variable-priced products have no injected price line: simple row */
.single-download .edd_download_purchase_form:not(:has(.download-price-line)){
  display:flex;flex-wrap:nowrap;align-items:center;gap:20px 30px;
}
.single-download .edd_download_purchase_form .edd_price_options{flex:1 1 100%}
.sg-assurance{
  margin-left:auto;
  display:flex;flex-direction:column;align-items:flex-start;gap:10px;
}
.sg-assure-item{
  display:inline-flex;align-items:center;gap:9px;
  font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--muted);
  white-space:nowrap;
}
.sg-assure-item svg{width:17px;height:17px;color:var(--accent);flex:none}
@media (max-width:560px){
  .single-download .edd_download_purchase_form,
  .single-download .edd_download_purchase_form:not(:has(.download-price-line)){
    display:grid;grid-template-columns:auto 1fr;
    grid-template-areas:"price price" "button assure";
    column-gap:18px;row-gap:14px;
  }
  .single-download .edd_download_purchase_form .download-price-line{margin-bottom:0}
  .single-download .edd_download_purchase_form .edd_purchase_submit_wrapper{grid-area:button}
  .sg-assurance{grid-area:assure;margin:0;justify-self:end;gap:8px;min-width:0}
  .sg-assure-item{font-size:12px;white-space:normal;align-items:flex-start;line-height:1.35}
}
.edd_download_purchase_form .edd_price_options ul{list-style:none;margin:0 0 16px;padding:0}
.edd_download_purchase_form .edd_price_options li{margin-bottom:10px}
.edd_download_purchase_form .edd_price_options label{color:var(--text);font-weight:600}
.edd_download_purchase_form .edd-add-to-cart{width:auto}
.edd_download_purchase_form .edd-add-to-cart-label{color:inherit}
.edd_download_purchase_form .edd-cart-ajax{margin-left:8px}
.edd_download_purchase_form .edd_purchase_submit_wrapper{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.edd-cart-added-alert,span.edd-cart-added-alert,.edd_added_to_cart_alert{display:none!important}
a.edd_go_to_checkout{margin-left:0}

/* Per-product switch: hide the recommendations block entirely */
.sg-hide-recs .edd-recommended-products,
.sg-hide-recs .edd-related-downloads,
.sg-hide-recs .edd-recommended-title,
.sg-hide-recs h3.edd-recommended-title,
.sg-hide-recs .edd_recommended_products,
.sg-hide-recs #edd-recommended-products,
.sg-hide-recs .edd-rp,.sg-hide-recs .edd-rp-wrap,.sg-hide-recs .edd_rp,
.sg-hide-recs [class*="recommend"],.sg-hide-recs [id*="recommend"],
.sg-hide-recs [class*="related"],.sg-hide-recs [id*="related"],
.sg-hide-recs [class*="crosssell"],.sg-hide-recs [class*="cross-sell"],
.sg-hide-recs [class*="upsell"]{display:none!important}

/* "You might also like" (recommended products) — deliberately quiet:
   it sits below the buy panel and should read as a footnote, not a rival CTA */
.edd-related-downloads h3,
.entry-content h3.edd-recommended-title{
  margin-top:3.2em;font-size:15px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);
}
.edd-related-downloads ul,
ul.edd-recommended-products{
  list-style:none;margin:20px 0 0;padding:0;
  display:grid;grid-template-columns:repeat(3,1fr);gap:18px;
}
.edd-related-downloads li,
ul.edd-recommended-products li{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);
  padding:16px;text-align:center;transition:border-color .2s ease,transform .2s ease;
}
.edd-related-downloads li:hover,
ul.edd-recommended-products li:hover{border-color:rgba(var(--glow-rgb),.5);transform:translateY(-3px)}
.edd-related-downloads li a,
ul.edd-recommended-products li a{text-decoration:none;font-weight:700;font-size:14.5px}
.edd-related-downloads li img,
ul.edd-recommended-products li img{border-radius:var(--r-sm);margin:0 auto 12px}

/* --- downloads grid ([downloads] shortcode + archive) --- */
.edd_downloads_list{
  display:grid!important;grid-template-columns:repeat(3,1fr);gap:22px;margin:48px 0;
  width:auto!important;
}
.edd_download{width:auto!important;float:none!important;margin:0!important}
.edd_download_inner{
  height:100%;display:flex;flex-direction:column;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);
  overflow:hidden;padding:0!important;position:relative;
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.edd_download_inner:hover{
  transform:translateY(-5px);border-color:rgba(var(--glow-rgb),.5);box-shadow:var(--shadow-lift);
}
.edd_download_inner::after{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:var(--grad);opacity:0;transition:opacity .22s ease;
}
.edd_download_inner:hover::after{opacity:1}
.edd_download_image{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--panel-2)}
.edd_download_image img{width:100%;height:100%;object-fit:cover;margin:0;border-radius:0;transition:transform .5s ease}
.edd_download_inner:hover .edd_download_image img{transform:scale(1.045)}
.edd_download_title{
  font-size:19px;margin:20px 22px 6px;text-transform:uppercase;letter-spacing:.02em;
}
.edd_download_title a{text-decoration:none;color:var(--pop)}
.edd_download_excerpt{color:var(--muted);font-size:15px;margin:0 22px 14px;flex:1}
.edd_download_excerpt a{color:var(--link)}
.edd_download .edd_price{margin:0 22px 12px}
.edd_download .edd_price{font-size:22px}
.edd_download_buy_button{margin:0 22px 22px}
.edd_download_buy_button .edd_download_purchase_form{margin:0;padding:0;background:none;border:0}

/* EDD ships its own button colors (blue/green/…). Match EVERY markup EDD
   uses across versions — bare .edd-submit, with/without .button, anchors,
   inputs, the checkout #edd-purchase-button — and force the theme button. */
.edd-submit,
a.edd-submit,button.edd-submit,input.edd-submit,
.edd-submit.button,.edd-submit.plain,
.edd-submit.blue,.edd-submit.gray,.edd-submit.dark-gray,.edd-submit.green,
.edd-submit.yellow,.edd-submit.orange,.edd-submit.red,.edd-submit.purple,
.edd-submit.slate,.edd-submit.white,
.edd-submit.button.blue,.edd-submit.button.gray,.edd-submit.button.dark-gray,
.edd-submit.button.green,.edd-submit.button.yellow,.edd-submit.button.orange,
.edd-submit.button.red,.edd-submit.button.purple,.edd-submit.button.slate,
.edd-submit.button.white,
.edd_download_purchase_form a.button,
a.edd-add-to-cart,input.edd-add-to-cart,
#edd-purchase-button,input#edd-purchase-button{
  background:var(--pop)!important;
  background-color:var(--pop)!important;
  background-image:none!important;
  color:#0A0C16!important;
  border:0!important;
  border-radius:0!important;
  clip-path:polygon(73px -60px,calc(100% + 60px) -60px,calc(100% + 60px) calc(100% - 73px),calc(100% - 73px) calc(100% + 60px),-60px calc(100% + 60px),-60px 73px)!important;
  font-family:var(--font-body)!important;
  font-weight:700!important;
  font-size:15px!important;
  line-height:1.2!important;
  padding:14px 30px!important;
  text-shadow:none!important;
  text-decoration:none!important;
  box-shadow:none!important;
  transition:transform .22s ease,box-shadow .28s ease!important;
}
.edd-submit.edd-submit.edd-submit:hover,.edd-submit.edd-submit.edd-submit:focus,
a.edd-add-to-cart.edd-add-to-cart:hover,input.edd-add-to-cart.edd-add-to-cart:hover,
#edd-purchase-button:hover,#edd-purchase-button:focus{
  background-color:#fff!important;
  background-image:linear-gradient(135deg,transparent 12px,#fff 12px),linear-gradient(-45deg,transparent 12px,#fff 12px),conic-gradient(from 315deg,var(--red),var(--violet) 25%,var(--blue) 50%,var(--violet) 75%,var(--red))!important;
  background-size:calc(50% + 6px) calc(100% - 2px),calc(50% + 6px) calc(100% - 2px),100% 100%!important;
  background-position:1px 1px,right 1px bottom 1px,0 0!important;
  background-repeat:no-repeat,no-repeat,no-repeat!important;
  color:#0A0C16!important;
  transform:translateY(-2px);
  box-shadow:none!important;
}
.edd-submit .edd-add-to-cart-label{color:inherit!important}

/* sale badge / discounted price */
.edd_price del,.edd_price s{color:var(--muted);font-size:.72em;font-weight:600;margin-right:8px}
.edd_price ins,.download-price-line .edd_price ins,.sg-plist-side .edd_price ins,.sg-offer-box .edd_price ins{
  text-decoration:none;display:inline-block;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;
  color:transparent!important;-webkit-text-fill-color:transparent;
}

/* --- [sg_product_list]: image left · description wide · price narrow --- */
.sg-plist{display:flex;flex-direction:column;gap:20px;margin:44px 0}
/* consecutive lists/items merge into one visual list */
.sg-plist + .sg-plist{margin-top:-24px}
.sg-plist-row{
  display:grid;grid-template-columns:276px 1fr 172px;gap:28px;align-items:stretch;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:20px;position:relative;overflow:hidden;
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.sg-plist-row:hover{
  transform:translateY(-3px);border-color:rgba(var(--glow-rgb),.5);box-shadow:var(--shadow-lift);
}
.sg-plist-row::after{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:var(--grad);opacity:0;transition:opacity .22s ease;
}
.sg-plist-row:hover::after{opacity:1}
.sg-plist-media{display:block;border-radius:var(--r-md);overflow:hidden;background:var(--panel-2);aspect-ratio:4/3;align-self:center;width:100%}
.sg-plist-body{align-self:center;min-width:0}
.sg-plist-media img{width:100%;height:100%;object-fit:cover;margin:0;border-radius:0;transition:transform .5s ease}
.sg-plist-row:hover .sg-plist-media img{transform:scale(1.04)}
.sg-plist-body h3{
  font-size:21px;text-transform:uppercase;letter-spacing:.02em;
  font-weight:800;font-stretch:112%;margin:0 0 8px;
}
.sg-plist-body h3 a{text-decoration:none;color:var(--pop)}
.sg-plist-body h3 a:hover{color:#fff}
.sg-plist-body p{color:var(--muted);font-size:15.5px;margin:0}
.sg-plist-side{
  display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;
  border-left:1px solid var(--line);padding-left:26px;align-self:stretch;justify-content:center;
}
.sg-plist-side .edd_price{margin:0;font-size:26px}
.sg-plist-side .edd_download_purchase_form{margin:0;padding:0;background:none;border:0}
@media (max-width:820px){
  .sg-plist-row{grid-template-columns:1fr;gap:0;padding:0;overflow:hidden}
  .sg-plist-media{border-radius:0;aspect-ratio:4/3}
  .sg-plist-body h3{text-align:center}
  .sg-plist-side{align-items:center}
  .sg-plist-body{padding:20px 22px 6px}
  .sg-plist-side{
    flex-direction:row;justify-content:space-between;align-items:center;
    border-left:0;border-top:1px solid var(--line);
    padding:16px 22px;margin-top:14px;
  }
  .sg-plist-side .edd_price{font-size:22px}
}

/* --- checkout --- */
/* EDD renders the cart table outside the form wrap: constrain both to one column */
#edd_checkout_cart_form,#edd_checkout_cart_wrap,#edd_checkout_form_wrap{max-width:820px;margin:0 auto}
#edd_checkout_cart_form{margin-bottom:28px}
/* kill EDD's white table + total backgrounds */
#edd_checkout_cart,#edd_checkout_cart th,#edd_checkout_cart td,
#edd_checkout_cart tr,#edd_checkout_cart tbody,#edd_checkout_cart thead{
  background:transparent!important;color:var(--text)!important;
}
#edd_checkout_cart{
  background:var(--panel)!important;border:1px solid var(--line);border-radius:var(--r-md);
  overflow:hidden;border-collapse:separate!important;border-spacing:0;
}
/* EDD draws light borders around every cell — replace with hairline row dividers only */
#edd_checkout_cart th,#edd_checkout_cart td{
  border:0!important;border-bottom:1px solid var(--line)!important;
}
#edd_checkout_cart tfoot th,#edd_checkout_cart tfoot td,
#edd_checkout_cart tbody tr:last-child td{border-bottom:0!important}
#edd_checkout_cart .edd_cart_header_row th{background:rgba(255,255,255,.03)!important;border-bottom:1px solid var(--line-strong)!important}
#edd_checkout_cart .edd_cart_footer_row th,#edd_checkout_cart .edd_cart_footer_row td{border-top:1px solid var(--line-strong)!important}
/* EDD colors required inputs dark gray — force theme colors on all of them */
#edd_checkout_form_wrap input.edd-input,#edd_checkout_form_wrap input.edd-input.required,
#edd_checkout_form_wrap select.edd-select,#edd_checkout_form_wrap select.edd-select.required,
#edd_checkout_form_wrap textarea.edd-input,#edd_checkout_form_wrap textarea.edd-input.required{
  color:var(--pop)!important;
}
/* theme fonts, no matter what EDD's stylesheet says */
#edd_checkout_cart,#edd_checkout_cart th,#edd_checkout_cart td,
#edd_checkout_form_wrap,#edd_checkout_form_wrap label,#edd_checkout_form_wrap input,
#edd_checkout_form_wrap select,#edd_checkout_form_wrap textarea,#edd_checkout_form_wrap p,
#edd_checkout_form_wrap .edd-description,#edd_checkout_form_wrap span{font-family:var(--font-body)!important}
#edd_checkout_form_wrap legend,#edd_checkout_cart th,#edd_checkout_cart .edd_cart_total,
#edd_purchase_final_total{font-family:var(--font-display)!important}
#edd_checkout_form_wrap label{font-size:14px;font-weight:600;letter-spacing:.02em;color:var(--text)!important}
#edd_checkout_form_wrap .edd-description{font-size:13px;color:var(--muted)!important}
#edd-payment-mode-wrap input[type="radio"]{margin:0 7px 0 0!important;accent-color:var(--violet)}
#edd-payment-mode-wrap label{margin-right:24px}
#edd_checkout_cart .edd_cart_footer_row td,
#edd_checkout_cart .edd_cart_total{
  background:rgba(255,255,255,.03)!important;color:var(--pop)!important;
  font-family:var(--font-display);font-weight:800;font-stretch:112%;letter-spacing:.06em;
}
#edd_checkout_cart .edd_cart_item_price,#edd_checkout_cart .edd_cart_amount{color:var(--pop)!important}
#edd_checkout_cart .edd_cart_item_image{float:none!important;display:inline-block;vertical-align:middle;margin:0 10px 0 0;border-radius:4px}
#edd_checkout_cart .edd_checkout_cart_item_title{display:inline;vertical-align:middle}
/* "Purchase Total" bar */
#edd_purchase_final_total,#edd_final_total_wrap,.edd_cart_total.edd-cart-total-row{
  background:var(--panel)!important;color:var(--pop)!important;
  border:1px solid var(--line);border-radius:var(--r-md);
  padding:16px 20px!important;margin:0 0 18px!important;
  font-family:var(--font-display);font-weight:800;font-stretch:112%;font-size:18px;
}
#edd_purchase_final_total .edd_cart_amount{color:var(--pop)!important}
#edd_purchase_final_total #edd_final_total_wrap{background:none!important;border:0!important;padding:0!important;margin:0!important;font-size:inherit}
/* purchase button stands alone, no panel */
#edd_checkout_form_wrap #edd_purchase_submit{background:none!important;border:0!important;padding:0!important;margin:0!important}
/* legends as in-panel headings instead of floating on the border */
#edd_checkout_form_wrap fieldset{padding:22px 26px 24px}
#edd_checkout_form_wrap legend{float:left;width:100%;margin:0 0 14px;padding:0}
#edd_checkout_form_wrap fieldset > *:not(legend){clear:both}
#edd_checkout_form_wrap p{margin:0 0 14px}
#edd_checkout_form_wrap p:last-child{margin-bottom:0}
/* payment-method radios */
#edd_payment_mode_select .edd-payment-mode-label,
#edd-payment-mode-wrap label{display:inline-flex;align-items:center;gap:8px;margin-right:22px;font-weight:600}
#edd_checkout_form_wrap input[type="radio"],#edd_checkout_form_wrap input[type="checkbox"]{margin:0}
#edd_checkout_form_wrap label{display:block;margin-bottom:6px}
#edd_checkout_form_wrap .edd-description{margin:-2px 0 8px}
#edd_checkout_form_wrap .edd-required-indicator{color:var(--red)}
#edd_checkout_form_wrap fieldset{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);
  padding:26px;margin:0 0 24px;
}
#edd_checkout_form_wrap legend{
  font-family:var(--font-display);font-weight:800;font-stretch:112%;
  text-transform:uppercase;letter-spacing:.04em;font-size:16px;
  padding:0 10px;color:var(--pop);
}
#edd_checkout_form_wrap label{color:var(--text)}
#edd_checkout_form_wrap .edd-description{color:var(--muted);font-size:13.5px}
#edd_checkout_form_wrap input[type="radio"],#edd_checkout_form_wrap input[type="checkbox"]{
  width:auto;accent-color:var(--violet);
}
#edd_checkout_cart{width:100%;border-collapse:collapse;margin-bottom:28px}
#edd_checkout_cart th,#edd_checkout_cart td{
  padding:15px 16px;border-bottom:1px solid var(--line);text-align:left;
}
#edd_checkout_cart th{
  font-family:var(--font-display);font-weight:700;font-stretch:110%;
  font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
  border-bottom:1px solid var(--line-strong);
}
#edd_checkout_cart .edd_cart_item_image img{border-radius:var(--r-sm)}
.edd_cart_remove_item_btn{color:var(--red);text-decoration:none;font-weight:700}
#edd_checkout_cart .edd_cart_footer_row td{border-bottom:0;font-weight:800;color:var(--pop)}
#edd_purchase_submit input{width:100%;font-size:17px;padding:18px}
#edd-purchase-button{background:var(--grad);color:#fff!important}
.edd_errors,.edd-alert-error{
  background:rgba(var(--red-rgb),.1);border:1px solid rgba(var(--red-rgb),.4);
  border-radius:var(--r-sm);padding:14px 18px;margin-bottom:20px;color:#FFB4BA;
}
.edd-alert-success{
  background:rgba(124,227,168,.08);border:1px solid rgba(124,227,168,.35);
  border-radius:var(--r-sm);padding:14px 18px;margin-bottom:20px;color:#7CE3A8;
}
/* receipt + downloads history */
table.edd-table,table#edd_purchase_receipt,table#edd_user_history{
  width:100%;border-collapse:collapse;
}
table.edd-table th,table.edd-table td,
#edd_purchase_receipt th,#edd_purchase_receipt td,
#edd_user_history th,#edd_user_history td{
  padding:13px 15px;border-bottom:1px solid var(--line);text-align:left;
}
.edd_purchase_receipt_files a{color:var(--link)}

/* Product Layout pages (e.g. /subscribe): hard-coded forms inherit the theme.
   PayPal note: replace <input type="image" …> with
   <button type="submit" class="btn btn-big">Subscribe with PayPal</button> */
.page-template-product-layout .entry-content form{
  margin:26px 0 8px;padding:26px;
  background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);
}
.page-template-product-layout .entry-content form table,
.page-template-product-layout .entry-content form td{border:0;padding:4px 0}
.page-template-product-layout .entry-content form input[type="image"]{
  filter:drop-shadow(0 6px 20px rgba(var(--glow-rgb),.32));
}
.page-template-product-layout .entry-content select{max-width:340px}

/* cart widget */
.widget_edd_cart_widget ul{list-style:none;margin:0;padding:0}
.widget_edd_cart_widget li{border-bottom:1px solid var(--line);padding:10px 0}

/* ============================================================
   10. ULTIMATE PRODUCT CATALOG compatibility
   (covers thumbnail + list layouts; tolerant selectors)
   ============================================================ */
#upcp-catalog-page,#Product_Catalog_Content,.upcp-catalog{color:var(--text)}
[class*="upcp"] [class*="prod-block"],
.upcp-thumb-prod-block,.upcp-list-prod-block,.upcp-tl-prod-block,
#Product_Catalog_Content .CatalogItem{
  background:var(--panel)!important;
  border:1px solid var(--line)!important;
  border-radius:var(--r-lg)!important;
  overflow:hidden;
  box-shadow:none!important;
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;
}
[class*="upcp"] [class*="prod-block"]:hover{
  transform:translateY(-5px);
  border-color:rgba(var(--glow-rgb),.5)!important;
  box-shadow:var(--shadow-lift)!important;
}
[class*="upcp"] [class*="prod-title"],
.upcp-thumb-prod-title,.upcp-list-prod-title,
#Product_Catalog_Content .Product_Title,
#Product_Catalog_Content .Product_Title a{
  font-family:var(--font-display)!important;font-weight:800!important;
  text-transform:uppercase;letter-spacing:.02em;
  color:var(--pop)!important;text-decoration:none;
}
[class*="upcp"] [class*="prod-desc"],
#Product_Catalog_Content .Product_Description{color:var(--muted)!important}
[class*="upcp"] [class*="prod-price"],
#Product_Catalog_Content .Product_Price{
  font-family:var(--font-display)!important;font-weight:800!important;
  color:var(--pop)!important;font-size:20px!important;
}
[class*="upcp"] input,[class*="upcp"] select{
  background:var(--panel)!important;color:var(--text)!important;
  border:1px solid var(--line-strong)!important;border-radius:var(--r-sm)!important;
}
[class*="upcp"] a.upcp-details-button,
[class*="upcp"] [class*="button"]{
  background:var(--pop)!important;color:#0A0C16!important;
  border:0!important;border-radius:var(--r-sm)!important;font-weight:700!important;
}

/* ============================================================
   10b. CONTACT FORMS (Contact Form 7 / WPForms / Forminator)
   ============================================================ */
.wpcf7,.wpcf7 *,.wpforms-container,.wpforms-container *,.forminator-ui,.forminator-ui *{
  font-family:var(--font-body)!important;
}
.wpcf7 label,.wpforms-field-label,.forminator-label{
  display:block;font-weight:600;font-size:14px;letter-spacing:.02em;
  color:var(--text)!important;margin-bottom:8px;
}
.wpcf7 input[type="text"],.wpcf7 input[type="email"],.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],.wpcf7 input[type="number"],.wpcf7 select,.wpcf7 textarea,
.wpforms-field input,.wpforms-field textarea,.wpforms-field select,
.forminator-input,.forminator-textarea{
  width:100%;background:var(--panel)!important;color:var(--text)!important;
  border:1px solid var(--line-strong)!important;border-radius:var(--r-sm)!important;
  font-family:var(--font-body)!important;font-size:16px!important;
  padding:13px 16px!important;box-shadow:none!important;
}
.wpcf7 input:focus,.wpcf7 textarea:focus,.wpcf7 select:focus,
.wpforms-field input:focus,.wpforms-field textarea:focus{
  outline:none!important;border-color:var(--violet)!important;
  box-shadow:0 0 0 3px rgba(var(--violet-rgb),.25)!important;
}
.wpcf7 textarea{min-height:220px}
.wpcf7 p{margin:0 0 20px}
.wpcf7 .wpcf7-submit,.wpforms-submit,.forminator-button-submit{
  font-family:var(--font-body)!important;font-weight:700!important;font-size:15px!important;
  padding:14px 30px!important;border:0!important;border-radius:0!important;
  clip-path:polygon(73px -60px,calc(100% + 60px) -60px,calc(100% + 60px) calc(100% - 73px),calc(100% - 73px) calc(100% + 60px),-60px calc(100% + 60px),-60px 73px);
  background:var(--pop)!important;color:#0A0C16!important;cursor:pointer;
  box-shadow:none!important;transition:transform .22s ease,background .18s ease;
}
.wpcf7 .wpcf7-submit:hover,.wpforms-submit:hover{
  transform:translateY(-2px);
  background:linear-gradient(135deg,transparent 12px,#fff 12px) 1px 1px / calc(50% + 6px) calc(100% - 2px) no-repeat,
             linear-gradient(-45deg,transparent 12px,#fff 12px) right 1px bottom 1px / calc(50% + 6px) calc(100% - 2px) no-repeat,
             conic-gradient(from 315deg,var(--red),var(--violet) 25%,var(--blue) 50%,var(--violet) 75%,var(--red))!important;
}
/* response messages — themed, not browser-default green/red */
.wpcf7 form .wpcf7-response-output,
.wpforms-confirmation-container-full,.forminator-response-message{
  margin:22px 0 0!important;padding:16px 20px!important;
  border:1px solid var(--line)!important;border-radius:var(--r-md)!important;
  background:var(--panel)!important;color:var(--text)!important;font-size:15px;
}
.wpcf7 form.sent .wpcf7-response-output,.wpforms-confirmation-container-full{
  border-color:rgba(var(--blue-rgb),.5)!important;
  box-shadow:0 10px 30px rgba(var(--glow-rgb),.18)!important;
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output{
  border-color:rgba(var(--red-rgb),.55)!important;color:#FFC9CE!important;
}
.wpcf7-not-valid-tip{color:var(--red)!important;font-size:13px;margin-top:6px}
.wpcf7-spinner{filter:invert(1) grayscale(1) opacity(.6)}

.grecaptcha-badge{z-index:60!important}

/* ============================================================
   11. FOOTER
   ============================================================ */
.site-footer{
  border-top:1px solid var(--line);
  background:var(--deep);
  padding:64px 0 40px;
}
.footer-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:48px;margin-bottom:48px;align-items:start}
.footer-col-brand{text-align:center;justify-self:center;max-width:420px}
a.sg-mark{text-decoration:none;color:inherit;display:inline-flex}
.footer-col-brand .brand-blurb{font-size:14px;line-height:1.6}
.footer-col-brand .social-row{justify-content:center}
.footer-col-start{text-align:right;justify-self:end}
.site-footer .sg-insignia{font-size:17px;display:inline-block;margin-bottom:16px}
.site-footer p{color:var(--muted);font-size:15px}
.site-footer .widget-title,.site-footer h4{
  font-size:13px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--pop);margin-bottom:16px;font-stretch:110%;
}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer ul li{margin-bottom:9px}
.site-footer ul a{color:var(--muted);text-decoration:none;font-size:15px}
.site-footer ul a:hover{color:var(--pop)}
.social-row{display:flex;gap:12px;margin-top:18px}
.social-row a{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;border:1px solid var(--line-strong);border-radius:10px;
  color:var(--muted);transition:border-color .18s ease,color .18s ease,transform .18s ease;
}
.social-row a:hover{border-color:var(--violet);color:var(--pop);transform:translateY(-2px)}
.social-row svg{width:18px;height:18px;fill:currentColor}
.footer-legal{
  border-top:1px solid var(--line);padding-top:26px;
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  color:var(--muted);font-size:13.5px;letter-spacing:.03em;
}
.footer-legal a{color:var(--muted);text-decoration:none}
.footer-legal a:hover{color:var(--pop)}

/* ============================================================
   12. UTILITIES / MOTION
   ============================================================ */
.rv{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.rv.on{opacity:1;transform:none}
.no-js .rv{opacity:1;transform:none}

.error-404 .page-head{border-bottom:0}
.error-404 .sg-insignia{font-size:40px;margin-bottom:24px}

/* ============================================================
   13. RESPONSIVE
   ============================================================ */
@media (max-width:960px){
  .card-grid,.post-list,.edd_downloads_list{grid-template-columns:1fr 1fr}
  .download-layout{grid-template-columns:1fr;gap:36px}
  .download-figure{position:static;max-width:420px}
  .footer-grid{grid-template-columns:1fr 1fr}
  .about-band{grid-template-columns:minmax(0,1fr);gap:36px;justify-items:center;text-align:center}
  .about-band > div{width:100%;min-width:0;max-width:100%}
  .about-band .portrait{max-width:290px;margin-inline:auto}
  .about-band .kicker{display:block;text-align:center}
  .about-band .accent{text-align:left;white-space:normal;font-size:clamp(17px,4.6vw,22px)}
  .about-band p{max-width:100%;text-align:left}
  .about-band .btn-row{justify-content:flex-start}
}
@media (max-width:760px){
  .site-header .wrap{gap:10px;min-height:64px;padding:0 14px}
  .brand{gap:10px}
  .brand-name b{font-size:14px}
  .sg-insignia{font-size:16px;letter-spacing:.4em;text-indent:.4em;padding:6px 6px 6px 10px}
  .sg-mark svg.sg-letters{height:19px}
  .sg-mark .sg-sub{font-size:7.5px}
  .nav-cart{white-space:nowrap;padding:8px 11px;font-size:13px;margin-left:0}
  .nav-toggle{display:block}
  .main-nav{
    display:none;position:absolute;top:100%;left:0;right:0;
    background:#06070C;
    border-bottom:1px solid var(--line);padding:12px 24px 22px;
    margin-left:0;
  }
  .nav-open .main-nav{display:block}
  .main-nav ul{flex-direction:column;align-items:stretch;gap:0}
  .main-nav a{padding:13px 8px;font-size:16px}
  .main-nav ul ul{position:static;opacity:1;visibility:visible;transform:none;
    border:0;box-shadow:none;background:transparent;padding-left:18px}
  .nav-cart{white-space:nowrap;margin-left:12px}
  .brand-name small{display:none}
}
@media (max-width:600px){
  body{font-size:16px}
  .card-grid,.post-list,.edd_downloads_list,
  .edd-related-downloads ul,ul.edd-recommended-products{grid-template-columns:1fr}
  .section{padding:68px 0}
  .hero{padding:76px 0 60px}
  .footer-grid{grid-template-columns:1fr;text-align:center;gap:40px}
  .footer-col-brand{order:-1;justify-self:center}
  .footer-col-start{text-align:center;justify-self:center}
  .site-footer .social-row{justify-content:center}
  .footer-legal{flex-direction:column;align-items:center;text-align:center;gap:10px}
  .sg-insignia{font-size:17px;letter-spacing:.4em;text-indent:.4em}
  #edd_checkout_cart .edd_cart_item_image{display:none}
}
@media (max-width:420px){
  .nav-cart .count{display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}
}
