/*
Theme Name: Audiolatry
Theme URI: https://audiolatry.com/
Author: Audiolatry
Description: A custom, native WordPress theme for independent audio instruments.
Version: 1.5.1
Requires at least: 6.6
Requires PHP: 8.3
License: GNU General Public License v2 or later
Text Domain: audiolatry
*/
@font-face   {
    font-family:Manrope;
    src:url(assets/fonts/manrope-variable.woff2) format('woff2');
    font-style:normal;
    font-weight:200 800;
    font-display:swap;
}

*,*::before,*::after   {
    box-sizing:border-box;
}

html   {
    scroll-behavior:smooth;
    scroll-padding-top:100px;
}

body   {
    margin:0;
    background:var(--bg);
    color:var(--text);
    font:16px/1.75 var(--font);
    -webkit-font-smoothing:antialiased;
}

button,input,select,textarea   {
    font:inherit;
}

a,button,input,textarea,summary   {
    -webkit-tap-highlight-color:transparent;
}

a   {
    color:inherit;
    text-decoration:none;
}

a:hover   {
    color:var(--lilac);
}

a,button   {
    transition:background-color .16s,color .16s,box-shadow .18s;
}

button   {
    color:inherit;
    cursor:pointer;
}

img   {
    display:block;
    max-width:100%;
    height:auto;
}

svg   {
    flex:none;
    vertical-align:middle;
}

figure   {
    margin:0;
}

h1,h2,h3,h4,h5,h6,p   {
    margin-top:0;
}

h1,h2,h3,h4   {
    font-weight:800;
    line-height:1.08;
    letter-spacing:-.055em;
}

h1   {
    font-size:clamp(46px,6.7vw,96px);
}

h2   {
    font-size:clamp(32px,4vw,56px);
}

h3   {
    font-size:30px;
}

p   {
    margin-bottom:1.3em;
}

::selection   {
    background:var(--lilac);
    color:var(--ink);
}

:focus-visible   {
    outline:3px solid var(--lilac);
    outline-offset:5px;
}

[hidden]   {
    display:none!important;
}

.shell   {
    width:100%;
    max-width:1512px;
    margin-inline:auto;
    padding-inline:var(--gutter);
}

.eyebrow   {
    font-size:11px;
    font-weight:800;
    letter-spacing:.11em;
    line-height:1.5;
    text-transform:uppercase;
    color:var(--muted);
    margin-bottom:18px;
}

.muted   {
    color:var(--muted);
}

.accent-dot   {
    display:inline-block;
    width:8px;
    height:8px;
    border-radius:50%;
    background:var(--lilac);
    margin-right:7px;
}

.screen-reader-text,.skip-link:not(:focus)   {
    border:0;
    clip:rect(1px,1px,1px,1px);
    clip-path:inset(50%);
    height:1px;
    width:1px;
    margin:-1px;
    padding:0;
    position:absolute!important;
    overflow:hidden;
    white-space:nowrap;
}

.skip-link:focus   {
    position:fixed;
    z-index:99999;
    top:10px;
    left:10px;
    padding:12px 20px;
    background:var(--purple);
    color:var(--purple-50);
}

.button   {
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:14px;
    min-height:54px;
    padding:15px 25px;
    border:0;
    border-radius:7px;
    font-size:13px;
    font-weight:800;
    line-height:1.5;
    text-align:center;
}

.text-link,.support-link,.hero-free-link   {
    text-decoration:underline;
    text-decoration-thickness:1px;
    text-underline-offset:5px;
}

.text-link   {
    display:inline-flex;
    align-items:center;
    min-height:44px;
    font-size:13px;
    font-weight:700;
}

/* Header and footer */
.site-header   {
    background:var(--bg);
    border-bottom:1px solid var(--line);
    position:relative;
    z-index:30;
}

.header-inner   {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:25px;
    height:92px;
}

.brand   {
    display:inline-block;
    flex:none;
}

.brand img   {
    width:146px;
    height:auto;
}

.nav-list   {
    display:flex;
    align-items:center;
    gap:34px;
    list-style:none;
    margin:0;
    padding:0;
}

.nav-list a   {
    display:block;
    padding-block:14px;
    color:var(--purple-300);
    font-size:15px;
    font-weight:600;
}

.nav-list a:hover,.nav-list a[aria-current]   {
    color:var(--purple-50);
    text-decoration:underline;
    text-decoration-color:var(--lilac);
    text-underline-offset:8px;
}

.nav-toggle   {
    display:none;
}

.site-footer   {
    border-top:1px solid var(--line);
    background:var(--purple-950);
    padding-top:40px;
}

.footer-top   {
    display:flex;
    align-items:center;
    gap:28px;
    padding-bottom:35px;
}

.footer-top .brand img   {
    width:128px;
}

.footer-top p   {
    margin:0;
    font-size:12px;
    color:var(--muted);
}

.footer-top>.text-link   {
    margin-left:auto;
}

.footer-bottom   {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    padding:22px 0 28px;
    border-top:1px solid var(--line);
    font-size:11px;
    color:var(--muted);
}

.footer-links   {
    display:flex;
    flex-wrap:wrap;
    gap:25px;
    list-style:none;
    margin:0;
    padding:0;
}

.footer-links a   {
    display:flex;
    align-items:center;
    min-height:36px;
}

/* Minimal, product-led carousel. Only one slide is exposed at a time. */
.featured-carousel  {
    background:var(--lilac);
    color:var(--ink);
    overflow:hidden;
}

.featured-layout  {
    display:grid;
    grid-template-columns:.85fr 1.3fr;
    gap:40px;
    align-items:center;
    min-height:570px;
    padding-block:64px 42px;
}

.featured-copy  {
    min-width:0;
}

.featured-name  {
    font-size:clamp(44px,5.55vw,80px);
    line-height:1.05;
    letter-spacing:-.065em;
    margin:0 0 22px;
}

.featured-description  {
    max-width:360px;
    min-height:58px;
    font-size:16px;
    line-height:1.8;
    color:var(--purple-800);
    margin-bottom:28px;
}

.featured-actions  {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.featured-carousel :focus-visible  {
    outline-color:var(--ink);
}

.featured-image  {
    display:flex;
    align-items:center;
    justify-content:center;
    aspect-ratio:1.67;
    background:var(--purple-925);
    border-radius:12px;
    overflow:hidden;
}

.featured-image img  {
    width:137%;
    max-width:none;
    flex-shrink:0;
}

.featured-controls  {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:22px;
    padding-bottom:27px;
}

.featured-selectors  {
    display:flex;
    flex-wrap:wrap;
    gap:24px;
}

.featured-selector  {
    min-height:44px;
    padding:9px 0;
    border:0;
    border-bottom:0;
    background:transparent;
    color:var(--purple-800);
    font-size:12px;
    font-weight:650;
}

.featured-selector[aria-pressed=true]  {
    color:var(--ink);
    font-weight:800;
}

.featured-selector[aria-pressed=true]::after  {
    content:'';
    display:block;
    width:5px;
    height:5px;
    margin:3px auto -8px;
    border-radius:50%;
    background:var(--brand-purple);
}

.featured-rotation  {
    display:flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    padding:0;
    flex:none;
    border:0;
    border-radius:50%;
    background:transparent;
    color:var(--ink);
}

.js .featured-slide:not([hidden])  {
    animation:featured-enter .25s ease-out;
}

@keyframes featured-enter  {
    from  {
        opacity:0;
        transform:translateY(5px);
    }
    to  {
        opacity:1;
        transform:none;
    }
}

.home-collection  {
    padding-block:55px 60px;
}

.home-collection .section-heading h2  {
    font-size:32px;
}

.catalog-shortcuts  {
    display:flex;
    gap:28px;
    margin-top:27px;
}

.catalog-shortcuts a  {
    color:var(--lilac);
}

.showcase-section   {
    padding-block:75px;
}

.section-heading   {
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:25px;
    margin-bottom:32px;
}

.section-heading .eyebrow   {
    color:var(--lilac);
    margin-bottom:13px;
}

.section-heading h2   {
    margin:0;
}

.section-heading>.button,.section-heading>.text-link   {
    flex:none;
}

.spotlight-grid   {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:26px;
}

.spotlight   {
    padding:36px;
    border-radius:14px;
    min-width:0;
}

.spotlight-purple   {
    background:var(--purple);
    color:var(--purple-50);
}

.spotlight-lilac   {
    background:var(--pale-purple);
    color:var(--ink);
}

.spotlight-copy .eyebrow   {
    font-size:10px;
    margin-bottom:15px;
}

.spotlight-purple .eyebrow   {
    color:var(--purple-200);
}

.spotlight-lilac .eyebrow   {
    color:var(--purple-700);
}

.spotlight h3   {
    font-size:clamp(32px,4vw,54px);
    line-height:1.05;
    margin:0 0 15px;
}

.spotlight h3 a:hover   {
    color:inherit;
    text-decoration:underline;
    text-underline-offset:7px;
    text-decoration-thickness:2px;
}

.spotlight-copy>p:last-child   {
    font-size:14px;
    line-height:1.8;
    max-width:450px;
    min-height:51px;
    margin-bottom:25px;
}

.spotlight-purple .spotlight-copy>p:last-child   {
    color:var(--purple-200);
}

.spotlight-lilac .spotlight-copy>p:last-child   {
    color:var(--purple-700);
}

.spotlight-image   {
    display:flex;
    justify-content:center;
    align-items:center;
    background:var(--purple-925);
    border-radius:8px;
    overflow:hidden;
    aspect-ratio:1.7;
    margin-bottom:26px;
}

.spotlight-image img   {
    width:128%;
    max-width:none;
    flex-shrink:0;
}

.spotlight-button   {
    min-height:48px;
    padding:13px 22px;
}

.spotlight-lilac :focus-visible   {
    outline-color:var(--purple);
}

.free-collection   {
    padding-block:0 72px;
}

.product-grid   {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:30px;
}

.home-free-grid   {
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
}

.product-card   {
    min-width:0;
    display:flex;
    flex-direction:column;
    background:var(--surface);
    border:0;
    border-radius:11px;
    overflow:hidden;
}

.card-image   {
    display:flex;
    justify-content:center;
    align-items:center;
    aspect-ratio:1.7;
    overflow:hidden;
    background:var(--purple-925);
    border-bottom:0;
    transition:box-shadow .18s;
}

.card-image img   {
    width:127%;
    max-width:none;
    flex-shrink:0;
}

.card-copy   {
    padding:25px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    flex:1;
}

.card-copy .eyebrow   {
    display:inline-block;
    color:var(--lilac);
    font-size:10px;
    margin-bottom:11px;
}

.card-copy h3   {
    font-size:32px;
    margin:0 0 15px;
}

.card-copy h3 a:hover   {
    text-decoration:underline;
    text-underline-offset:5px;
    text-decoration-thickness:1px;
}

.card-description   {
    color:var(--muted);
    font-size:14px;
    line-height:1.8;
    margin-bottom:23px;
}

.card-action   {
    margin-top:auto;
    min-height:44px;
    font-size:12px;
    padding:11px 18px;
}

.home-free-grid .card-copy   {
    padding:23px;
}

.home-free-grid h3   {
    font-size:28px;
}

.home-free-grid .card-description   {
    font-size:13px;
}

.lite-note   {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:30px;
    border-top:1px solid var(--line);
    padding-top:28px;
    margin-top:36px;
}

.lite-note p   {
    margin:0;
    max-width:700px;
    color:var(--muted);
    font-size:13px;
}

.lite-note a   {
    color:var(--lilac);
    flex:none;
}

/* Catalog and information heading system */
.page-heading   {
    padding-block:65px 43px;
    max-width:1030px;
}

.page-heading>.eyebrow   {
    color:var(--lilac);
}

.page-heading h1   {
    margin-bottom:22px;
    font-size:clamp(44px,6vw,82px);
}

.page-heading>p:last-child:not(.eyebrow)   {
    color:var(--muted);
    font-size:16px;
    line-height:1.8;
    max-width:670px;
    margin:0;
}

.catalog-page   {
    min-height:60vh;
    padding-bottom:85px;
}

.catalog-controls   {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:22px;
    border-block:1px solid var(--line);
    padding-block:20px;
}

.filter-tabs   {
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}

.filter-tabs a   {
    display:flex;
    align-items:center;
    gap:10px;
    min-height:45px;
    padding:11px 15px;
    border-radius:6px;
    font-size:12px;
    font-weight:700;
}

.filter-tabs a[aria-current]   {
    background:var(--button-bg);
    color:var(--button-fg);
}

.filter-tabs span   {
    font-size:10px;
    opacity:.8;
}

.catalog-search   {
    display:flex;
    align-items:center;
    gap:10px;
    width:240px;
    flex:none;
    padding:10px 13px;
    border:1px solid var(--purple-500);
    border-radius:6px;
    color:var(--muted);
}

.catalog-search:focus-within   {
    border-color:var(--lilac);
    outline:1px solid var(--lilac);
}

.catalog-search input   {
    min-width:0;
    width:100%;
    min-height:27px;
    border:0;
    outline:0;
    background:transparent;
    color:var(--text);
    font-size:13px;
}

.catalog-search input::placeholder   {
    color:var(--purple-300);
}

.result-count   {
    color:var(--muted);
    font-size:12px;
    margin:22px 0 28px;
}

.empty-results   {
    padding:65px 10px;
    text-align:center;
}

.empty-results p   {
    color:var(--muted);
}

/* Product Pages */
.breadcrumbs   {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    font-size:11px;
    color:var(--muted);
    padding-block:28px 36px;
}

.breadcrumbs [aria-current]   {
    color:var(--purple-100);
}

.product-hero   {
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:40px;
    margin-bottom:36px;
}

.product-intro   {
    min-width:0;
    max-width:750px;
}

.product-intro .eyebrow   {
    color:var(--lilac);
    margin-bottom:20px;
}

.product-intro h1   {
    font-size:clamp(55px,7vw,100px);
    margin-bottom:20px;
    overflow-wrap:anywhere;
}

.product-lead   {
    color:var(--purple-300);
    max-width:650px;
    font-size:17px;
    line-height:1.8;
    margin:0;
}

.product-hero-actions   {
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:9px;
    flex:none;
}

.product-hero-actions .text-link   {
    color:var(--muted);
    font-size:12px;
}

.product-visual   {
    position:relative;
    background:transparent;
    border-radius:0;
    padding:0;
    overflow:hidden;
}

.product-visual img   {
    width:100%;
    background:transparent;
    border-radius:7px;
}

.product-visual figcaption   {
    color:var(--muted);
    font-size:11px;
    font-weight:600;
    padding-top:12px;
    position:static;
}

.product-visual figcaption span   {
    font-weight:500;
}

.product-detail-layout   {
    display:grid;
    grid-template-columns:minmax(0,1fr) 340px;
    grid-template-areas:'content sidebar';
    gap:clamp(45px,7vw,110px);
    padding-block:65px 70px;
    align-items:start;
}

.prose   {
    color:var(--purple-300);
    font-size:15px;
    line-height:1.95;
    overflow-wrap:anywhere;
}

.prose p   {
    margin-bottom:1.6em;
}

.prose h2   {
    color:var(--text);
    font-size:29px;
    line-height:1.25;
    letter-spacing:-.035em;
    margin:1.9em 0 .8em;
}

.prose h3   {
    color:var(--text);
    font-size:24px;
    line-height:1.3;
    margin:1.8em 0 .7em;
    letter-spacing:-.03em;
}

.prose h4   {
    color:var(--text);
    font-size:18px;
    line-height:1.4;
    margin:1.7em 0 .7em;
    letter-spacing:-.02em;
}

.prose h5   {
    color:var(--lilac);
    font-size:12px;
}

.prose .eyebrow   {
    color:var(--lilac);
    font-size:11px;
}

.prose strong,.prose b   {
    color:var(--purple-100);
    font-weight:750;
}

.prose em   {
    color:var(--purple-300);
}

.prose ul,.prose ol   {
    padding-left:1.35em;
    margin-block:1.4em 2em;
}

.prose li   {
    margin-bottom:.6em;
    padding-left:5px;
}

.prose li::marker   {
    color:var(--lilac);
}

.prose a:not(.button):not(.demo-play):not(.wp-block-button__link):not(.su-button):not(.gumroad-button):not(.payhip-button)   {
    color:var(--purple-300);
    text-decoration:underline;
    text-underline-offset:4px;
    text-decoration-thickness:1px;
}

.prose a:not(.button):not(.demo-play):not(.wp-block-button__link):not(.su-button):not(.gumroad-button):not(.payhip-button):hover   {
    color:var(--purple-50);
}

.prose hr   {
    border:0;
    border-top:1px solid var(--line);
    margin-block:42px;
}

.prose img,.prose iframe   {
    max-width:100%;
}

.prose table   {
    border-collapse:collapse;
    max-width:100%;
    font-size:13px;
}

.prose td,.prose th   {
    border:1px solid var(--line);
    padding:12px;
}

.product-copy .gumroad-button,.product-copy .payhip-button,.product-copy .su-button   {
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    box-sizing:border-box!important;
    max-width:100%!important;
    min-width:0!important;
    white-space:normal!important;
    padding:15px 22px!important;
    min-height:50px;
    background:var(--purple)!important;
    border:1px solid var(--purple)!important;
    color:var(--purple-50)!important;
    border-radius:7px!important;
    font-size:13px!important;
    line-height:1.5!important;
    font-weight:750!important;
    margin:10px 12px 10px 0!important;
    box-shadow:none;
    text-shadow:none!important;
    text-decoration:none!important;
}

.product-copy .su-button span   {
    padding:0!important;
    line-height:1.5!important;
    font-size:13px!important;
    border:0!important;
}

.product-copy .su-button-center   {
    display:block;
    max-width:100%;
}

.product-copy .su-button i   {
    display:none;
}

.product-copy {
    grid-area:content;
    min-width:0;
}
.purchase-panel {
    grid-area:sidebar;
    position:sticky;
    top:24px;
    align-self:start;
    min-width:0;
    scroll-margin-top:24px;
}
.purchase-panel-inner {
    max-height:calc(100vh - 48px);
    max-height:calc(100dvh - 48px);
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
    scrollbar-width:thin;
    scrollbar-color:var(--purple-400) var(--surface-2);
    padding:25px;
    background:var(--surface-2);
    border:0;
    border-radius:10px;
}
.purchase-panel h2 {
    font-size:29px;
    margin:0 0 21px;
    line-height:1.15;
    overflow-wrap:anywhere;
}
.purchase-actions {
    display:flex;
    flex-direction:column;
    gap:9px;
    margin-bottom:22px;
}
.purchase-actions .button {
    justify-content:space-between;
    min-height:47px;
    padding:12px 14px;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.025em;
    text-align:left;
}
.purchase-actions .button span { white-space:nowrap; }
.sidebar-accordion {
    border-top:1px solid var(--line);
}
.sidebar-accordion summary {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;
    min-height:49px;
    padding:13px 0;
    border-radius:5px;
    list-style:none;
    cursor:pointer;
    font-size:11px;
    line-height:1.5;
    font-weight:800;
    letter-spacing:.035em;
    color:var(--text);
}
.sidebar-accordion summary::-webkit-details-marker { display:none; }
.sidebar-accordion summary>span { flex:none; font-size:20px; line-height:1; color:var(--lilac); }
.sidebar-accordion summary>span::before { content:'+'; }
.sidebar-accordion[open] summary>span::before { content:'−'; }
.sidebar-accordion summary:hover, .faq-item summary:hover { box-shadow:none; }
.sidebar-section-content {
    padding:2px 0 17px;
    font-size:12px;
    line-height:1.85;
    color:var(--muted);
    overflow-wrap:anywhere;
}
.sidebar-section-content p { margin:0 0 1em; }
.sidebar-section-content p:last-child { margin-bottom:0; }
.sidebar-section-content h3 {
    margin:17px 0 9px;
    font-size:13px;
    line-height:1.5;
    letter-spacing:0;
    font-weight:800;
    color:var(--text);
}
.sidebar-section-content h3:first-child { margin-top:0; }
.sidebar-section-content ul,.sidebar-section-content ol { padding-left:17px; margin:0 0 15px; }
.sidebar-section-content li { padding-left:2px; margin-bottom:7px; }
.sidebar-section-content li::marker { color:var(--lilac); }
.sidebar-section-content a { color:var(--lilac); text-decoration:underline; text-underline-offset:3px; }
.sidebar-section-content em { font-style:normal; color:var(--text); }
.support-link {
    display:block;
    padding-top:16px;
    border-top:1px solid var(--line);
    font-size:11px;
}

.related-section   {
    border-top:1px solid var(--line);
    padding-block:45px 75px;
}

/* The demo remains just a symbol-only play button until activation. */
.demo   {
    margin-block:24px 40px;
}

.demo-play   {
    display:flex;
    justify-content:center;
    align-items:center;
    width:112px;
    height:78px;
    padding:0;
    border:0;
    border-radius:17px;
    background:var(--purple-800);
    color:var(--purple-50);
}

.demo-play svg   {
    width:34px;
    height:34px;
    margin-left:3px;
}

.demo.is-playing   {
    aspect-ratio:16/9;
    background:var(--purple-925);
    border-radius:8px;
    overflow:hidden;
}

.demo iframe   {
    display:block;
    width:100%;
    height:100%;
    border:0;
}

body:not(.js) button.demo-play   {
    display:none;
}

/* Native content and essential information Pages */
.info-page   {
    padding-bottom:80px;
    min-height:60vh;
}

.info-layout   {
    display:grid;
    grid-template-columns:minmax(0,780px) 270px;
    align-items:start;
    gap:clamp(45px,7vw,105px);
    padding-top:38px;
    border-top:1px solid var(--line);
}

.info-copy   {
    min-width:0;
}

.info-copy [data-custom-class]   {
    color:inherit!important;
    background:transparent!important;
    font:inherit!important;
}

.info-copy [data-custom-class] *   {
    color:inherit!important;
    background:transparent!important;
    font-family:inherit!important;
}

.info-copy [data-custom-class] a   {
    color:var(--purple-300)!important;
}

.info-copy [data-custom-class=title],.info-copy [data-custom-class=subtitle]   {
    display:block;
    margin-bottom:24px;
    color:var(--text)!important;
}

.info-copy [data-custom-class=heading_1]   {
    font-size:24px!important;
    font-weight:750!important;
    color:var(--text)!important;
}

.info-copy [data-custom-class=heading_2]   {
    font-size:20px!important;
    font-weight:750!important;
    color:var(--text)!important;
}

.info-copy [data-custom-class=body_text]   {
    font-size:14px!important;
    line-height:1.9!important;
}

.info-copy [data-custom-class] table   {
    width:100%!important;
    table-layout:fixed;
}

.info-sidebar   {
    position:sticky;
    top:30px;
}

.info-sidebar .eyebrow   {
    color:var(--lilac);
    font-size:10px;
}

.info-sidebar nav   {
    display:flex;
    flex-direction:column;
}

.info-sidebar nav a   {
    display:block;
    padding-block:18px;
    border-top:1px solid var(--line);
    font-size:13px;
    text-decoration:underline;
    text-underline-offset:5px;
}

.contact-direct   {
    border-top:1px solid var(--line);
    padding-top:25px;
    margin-top:25px;
    font-size:12px;
    color:var(--muted);
}

.contact-direct a   {
    color:var(--lilac);
    font-size:13px;
}

.contact-direct p:last-child   {
    margin-top:18px;
}

.faq-item   {
    border-bottom:1px solid var(--line);
}

.faq-item summary   {
    display:flex;
    justify-content:space-between;
    gap:24px;
    padding-block:21px;
    list-style:none;
    cursor:pointer;
    color:var(--text);
    font-size:16px;
    font-weight:700;
    line-height:1.6;
}

.faq-item summary::-webkit-details-marker   {
    display:none;
}

.faq-item summary span   {
    color:var(--lilac);
    font-size:24px;
    flex:none;
}

.faq-item summary span::before   {
    content:'+';
}

.faq-item[open] summary span::before   {
    content:'−';
}

.faq-item>div   {
    font-size:14px;
    padding-bottom:8px;
}

.wpcf7 form   {
    max-width:660px;
}

.wpcf7 label   {
    display:block;
    color:var(--purple-200);
    font-size:13px;
    font-weight:600;
}

.wpcf7 form p   {
    margin-bottom:21px;
}

.wpcf7 input:not([type=submit]):not([type=checkbox]),.wpcf7 textarea   {
    display:block;
    width:100%;
    min-height:50px;
    margin-top:9px;
    padding:13px 15px;
    background:var(--purple-925);
    border:1px solid var(--purple-500);
    border-radius:6px;
    color:var(--text);
    font-size:15px;
}

.wpcf7 textarea   {
    resize:vertical;
    min-height:170px;
}

.wpcf7 .wpcf7-not-valid-tip   {
    color:var(--purple-300);
    font-size:12px;
    margin-top:7px;
}

.wpcf7 .wpcf7-response-output   {
    font-size:13px;
    padding:16px!important;
    margin:22px 0!important;
    border-radius:6px;
}

.wpcf7 .wpcf7-spinner   {
    background:var(--purple-500);
}

.contact-page .info-layout   {
    grid-template-columns:minmax(0,660px) minmax(230px,1fr);
}

.not-found   {
    padding-block:95px;
    min-height:65vh;
}

.not-found h1   {
    margin-bottom:25px;
}

.not-found>p:not(.eyebrow)   {
    max-width:500px;
    color:var(--muted);
}

.not-found>.text-link   {
    display:flex;
    width:fit-content;
    margin-top:15px;
}

.alignwide   {
    max-width:1100px;
}

.aligncenter   {
    margin-inline:auto;
}

.wp-caption-text   {
    font-size:12px;
    color:var(--muted);
}

.wp-block-image   {
    margin-block:30px;
}

.wp-block-button__link   {
    border-radius:7px;
    background:var(--purple);
}

.wp-block-columns   {
    gap:30px;
}

.pagination   {
    margin-top:40px;
}

.pagination .nav-links   {
    display:flex;
    gap:20px;
}

/* Responsive compositions */
/* Exactly two CTA color treatments, selected by the surrounding background. */
.button-on-dark, .is-style-on-dark .wp-block-button__link  {
    --button-bg:var(--purple-200);
    --button-fg:var(--purple-900);
}

.button-on-light, .is-style-on-light .wp-block-button__link  {
    --button-bg:var(--brand-purple);
    --button-fg:var(--purple-50);
}

.featured-carousel, .spotlight-lilac, .has-lilac-background-color, .has-cream-background-color, .has-white-background-color  {
    --button-bg:var(--brand-purple);
    --button-fg:var(--purple-50);
}

:where(.button, .wpcf7 input[type=submit], .wp-block-button__link)  {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    min-height:54px;
    padding:15px 25px;
    border:0;
    border-radius:7px;
    background:var(--button-bg);
    color:var(--button-fg);
    font-family:var(--font);
    font-size:13px;
    font-weight:800;
    line-height:1.5;
    text-align:center;
    text-decoration:none;
    cursor:pointer;
}

.button, .wpcf7 input[type=submit], .wp-block-button__link  {
    background:var(--button-bg);
    color:var(--button-fg);
    border:0;
}

.product-copy .gumroad-button, .product-copy .payhip-button, .product-copy .su-button  {
    --button-bg:var(--purple-200);
    --button-fg:var(--purple-900);
    background:var(--button-bg)!important;
    color:var(--button-fg)!important;
    border:0!important;
    font-weight:800!important;
    box-shadow:none;
}

.product-copy .su-button span  {
    color:inherit!important;
    font-weight:inherit!important;
}

.featured-rotation, .demo-play, .nav-toggle  {
    background:var(--button-bg);
    color:var(--button-fg);
    border:0;
}

.featured-selector  {
    border-radius:6px;
    padding-inline:10px;
}

.product-card, .spotlight, .purchase-panel-inner, .featured-image, .product-visual,
.button, .demo-play, .featured-rotation, .featured-selector, .nav-toggle,
.filter-tabs a, .catalog-search, .wpcf7 input, .wpcf7 textarea, .wp-block-button__link  {
    transition:box-shadow .18s,color .16s;
}

/* The same subtle elevation everywhere; no hover border or fill swap. */
:is(.product-card, .spotlight, .featured-image, .product-visual):is(:hover, :focus-within),
:is(.button, .demo-play, .featured-rotation, .featured-selector, .nav-toggle, .filter-tabs a, .catalog-search, .wpcf7 input[type=submit], .wp-block-button__link):hover  {
    box-shadow:var(--interaction-shadow);
}

.button:hover, .wp-block-button__link:hover, .demo-play:hover, .featured-rotation:hover, .nav-toggle:hover  {
    color:var(--button-fg);
    background:var(--button-bg);
}

.product-copy :is(.gumroad-button,.payhip-button,.su-button):hover  {
    background:var(--button-bg)!important;
    color:var(--button-fg)!important;
    box-shadow:var(--interaction-shadow)!important;
}

.filter-tabs a:hover  {
    color:inherit;
}

.wpcf7 input:not([type=submit]):hover, .wpcf7 textarea:hover  {
    box-shadow:var(--interaction-shadow);
}

.wpcf7 .wpcf7-not-valid-tip  {
    color:var(--purple-200);
    font-weight:700;
}

.wpcf7 .wpcf7-response-output  {
    border-color:var(--purple-400)!important;
    background:var(--surface);
}

.wpcf7 .wpcf7-spinner::before  {
    background:var(--purple-50);
}

@media(max-width:1150px)   {
    .spotlight   {
        padding:28px;
    }
    .home-free-grid .card-copy   {
        padding:20px;
    }
    .home-free-grid h3   {
        font-size:25px;
    }
    .product-detail-layout   {
        grid-template-columns:minmax(0,1fr) 300px;
        gap:45px;
    }
    .purchase-panel-inner   {
        padding:23px;
    }
    .catalog-controls   {
        align-items:flex-start;
    }
    .filter-tabs a   {
        padding-inline:11px;
    }
    .info-layout   {
        grid-template-columns:minmax(0,1fr) 240px;
        gap:45px;
    }
}

@media(max-width:900px)   {
    .header-inner   {
        height:82px;
    }
    .nav-list   {
        gap:28px;
    }
    .spotlight   {
        padding:24px;
    }
    .spotlight h3   {
        font-size:36px;
    }
    .spotlight-copy>p:last-child   {
        min-height:76px;
        font-size:13px;
    }
    .home-free-grid   {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .home-free-grid .product-card:last-child   {
        grid-column:1/-1;
        display:grid;
        grid-template-columns:1fr 1fr;
    }
    .home-free-grid .product-card:last-child .card-image   {
        height:100%;
        aspect-ratio:auto;
        border-bottom:0;
    }
    .home-free-grid .product-card:last-child .card-image img   {
        width:128%;
    }
    .section-heading h2   {
        font-size:40px;
    }
    .section-heading>.button   {
        padding-inline:18px;
        font-size:12px;
    }
    .catalog-controls   {
        flex-direction:column;
        gap:17px;
    }
    .catalog-search   {
        width:100%;
        max-width:400px;
    }
    .product-hero   {
        display:block;
    }
    .product-hero-actions   {
        flex-direction:row;
        flex-wrap:wrap;
        align-items:center;
        justify-content:flex-start;
        margin-top:24px;
        gap:20px;
    }
    .product-intro h1   {
        font-size:64px;
    }
    .product-lead   {
        font-size:15px;
    }
    .product-hero-actions .button   {
        padding-inline:17px;
        font-size:12px;
    }
    .product-detail-layout   {
        grid-template-columns:minmax(0,1fr) 260px;
        gap:28px;
    }
    .purchase-panel-inner   {
        padding:19px;
    }
    .purchase-panel h2   {
        font-size:27px;
    }
    .purchase-actions .button   {
        font-size:10px;
        padding-inline:12px;
    }
    .prose   {
        font-size:14px;
    }
    .prose h2   {
        font-size:26px;
    }
    .info-layout   {
        gap:35px;
        grid-template-columns:minmax(0,1fr) 210px;
    }
}

@media(max-width:640px)   {
    :root   {
        --gutter:22px;
    }
    .header-inner   {
        height:74px;
        gap:15px;
    }
    .brand img   {
        width:128px;
    }
    .nav-toggle   {
        display:flex;
        align-items:center;
        gap:10px;
        padding:10px 14px;
        min-height:44px;
        border:0;
        font-size:12px;
        font-weight:700;
    }
    .js #primary-navigation   {
        display:none;
    }
    .js #primary-navigation.is-open   {
        display:block;
        position:absolute;
        top:74px;
        left:0;
        right:0;
        padding:20px var(--gutter) 30px;
        background:var(--bg);
        border-bottom:1px solid var(--line);
    }
    .nav-list   {
        flex-direction:column;
        align-items:stretch;
        gap:0;
    }
    .nav-list a   {
        min-height:54px;
        font-size:18px;
        padding-block:13px;
    }
    body.nav-open   {
        overflow:hidden;
    }
    body.js.nav-open .site-header   {
        position:fixed;
        top:0;
        width:100%;
    }
    body.js.nav-open #main   {
        padding-top:74px;
    }
    body:not(.js) .header-inner   {
        height:auto;
        flex-wrap:wrap;
        padding-block:18px;
    }
    body:not(.js) #primary-navigation   {
        width:100%;
    }
    body:not(.js) .nav-list   {
        flex-direction:row;
        flex-wrap:wrap;
        gap:18px;
    }
    body:not(.js) .nav-list a   {
        font-size:14px;
        min-height:44px;
        padding-block:10px;
    }
    body:not(.js) .nav-toggle   {
        display:none;
    }
    .showcase-section   {
        padding-block:42px;
    }
    .section-heading   {
        flex-direction:column;
        align-items:flex-start;
        gap:21px;
        margin-bottom:26px;
    }
    .section-heading .eyebrow   {
        font-size:9px;
        margin-bottom:13px;
    }
    .section-heading h2   {
        font-size:36px;
    }
    .section-heading>.button   {
        min-height:45px;
        font-size:12px;
        padding:11px 17px;
    }
    .section-heading>.text-link   {
        min-height:36px;
    }
    .spotlight-grid   {
        grid-template-columns:1fr;
        gap:22px;
    }
    .spotlight   {
        padding:25px;
        border-radius:10px;
    }
    .spotlight h3   {
        font-size:40px;
    }
    .spotlight-copy .eyebrow   {
        font-size:9px;
    }
    .spotlight-copy>p:last-child   {
        min-height:0;
        font-size:13px;
        margin-bottom:22px;
    }
    .spotlight-image   {
        margin-inline:-8px;
        margin-bottom:22px;
    }
    .spotlight-button   {
        font-size:12px;
    }
    .free-collection   {
        padding-bottom:42px;
    }
    .product-grid,.home-free-grid   {
        grid-template-columns:1fr;
        gap:24px;
    }
    .home-free-grid .product-card:last-child   {
        display:flex;
        grid-column:auto;
    }
    .home-free-grid .product-card:last-child .card-image   {
        height:auto;
        aspect-ratio:1.7;
        border-bottom:0;
    }
    .card-copy,.home-free-grid .card-copy   {
        padding:23px;
    }
    .card-copy .eyebrow   {
        font-size:9px;
    }
    .card-copy h3,.home-free-grid h3   {
        font-size:29px;
    }
    .card-description,.home-free-grid .card-description   {
        font-size:13px;
    }
    .card-action   {
        font-size:12px;
    }
    .lite-note   {
        display:block;
        padding-top:24px;
        margin-top:28px;
    }
    .lite-note p   {
        font-size:12px;
        margin-bottom:12px;
    }
    .lite-note a   {
        font-size:12px;
    }
    .site-footer   {
        padding-top:30px;
    }
    .footer-top   {
        display:grid;
        grid-template-columns:1fr auto;
        gap:17px;
        padding-bottom:25px;
    }
    .footer-top .brand img   {
        width:115px;
    }
    .footer-top p   {
        grid-column:1/-1;
        grid-row:2;
        font-size:11px;
    }
    .footer-top>.text-link   {
        font-size:12px;
    }
    .footer-bottom   {
        flex-direction:column;
        align-items:flex-start;
        gap:8px;
        font-size:10px;
        padding-block:18px 23px;
    }
    .footer-links   {
        gap:19px;
        font-size:10px;
    }
    .page-heading   {
        padding-block:42px 30px;
    }
    .page-heading>.eyebrow   {
        font-size:9px;
    }
    .page-heading h1   {
        font-size:44px;
        line-height:1.1;
        margin-bottom:20px;
    }
    .page-heading>p:last-child:not(.eyebrow)   {
        font-size:14px;
    }
    .catalog-page   {
        padding-bottom:48px;
    }
    .catalog-controls   {
        padding-block:16px;
    }
    .filter-tabs   {
        gap:5px;
    }
    .filter-tabs a   {
        font-size:10px;
        padding:10px 11px;
        min-height:42px;
        gap:7px;
    }
    .filter-tabs span   {
        font-size:9px;
    }
    .catalog-search   {
        max-width:none;
    }
    .result-count   {
        font-size:11px;
        margin-block:19px 24px;
    }
    .breadcrumbs   {
        font-size:10px;
        padding-block:22px 28px;
        gap:7px;
    }
    .product-hero   {
        display:block;
        margin-bottom:28px;
    }
    .product-intro .eyebrow   {
        font-size:10px;
        margin-bottom:17px;
    }
    .product-intro h1   {
        font-size:clamp(44px,11.5vw,65px);
        margin-bottom:20px;
    }
    .product-lead   {
        font-size:14px;
    }
    .product-hero-actions   {
        flex-direction:column;
        align-items:flex-start;
        margin-top:24px;
        gap:6px;
    }
    .product-hero-actions .button   {
        min-height:52px;
        padding-inline:22px;
        font-size:13px;
    }
    .product-hero-actions .text-link   {
        font-size:11px;
        min-height:38px;
    }
    .product-visual   {
        margin-inline:0;
        border-radius:0;
        padding:0;
    }
    .product-visual img   {
        border-radius:4px;
    }
    .product-visual figcaption   {
        font-size:9px;
        padding-top:10px;
    }
    .product-detail-layout   {
        display:flex;
        flex-direction:column;
        gap:32px;
        padding-block:36px 42px;
    }
    .product-copy   {
        width:100%;
        font-size:14px;
    }
    .prose h2   {
        font-size:25px;
        margin-top:1.7em;
    }
    .prose h3   {
        font-size:22px;
    }
    .prose h4   {
        font-size:18px;
    }
    .prose ul,.prose ol   {
        padding-left:1.1em;
    }
    .product-copy .gumroad-button,.product-copy .payhip-button,.product-copy .su-button   {
        width:100%;
        margin-right:0!important;
        font-size:11px!important;
    }
    .purchase-panel   {
        position:static;
        width:100%;
    }
    .purchase-panel-inner   {
        padding:25px;
    }
    .purchase-panel h2   {
        font-size:32px;
    }
    .purchase-actions .button   {
        font-size:12px;
        padding-inline:17px;
    }
    .purchase-note   {
        font-size:12px;
    }
    .related-section   {
        padding-block:33px 45px;
    }
    .info-page   {
        padding-bottom:48px;
    }
    .info-layout,.contact-page .info-layout   {
        display:flex;
        flex-direction:column;
        gap:35px;
        padding-top:28px;
    }
    .info-copy   {
        width:100%;
        font-size:14px;
    }
    .info-sidebar   {
        width:100%;
        position:static;
        border-top:1px solid var(--line);
        padding-top:25px;
    }
    .info-copy [data-custom-class=heading_1]   {
        font-size:21px!important;
    }
    .info-copy [data-custom-class=body_text]   {
        font-size:13px!important;
    }
    .faq-item summary   {
        font-size:14px;
        padding-block:18px;
    }
    .faq-item>div   {
        font-size:13px;
    }
    .wpcf7 input:not([type=submit]):not([type=checkbox]),.wpcf7 textarea   {
        font-size:16px;
    }
    .not-found   {
        padding-block:65px 75px;
    }
    .not-found h1   {
        font-size:44px;
    }
}

@media(prefers-reduced-motion:reduce)   {
    html   {
        scroll-behavior:auto;
    }
    *,*::before,*::after   {
        transition:none!important;
        animation:none!important;
    }
}

@media(max-width:1150px)  {
    .featured-layout  {
        grid-template-columns:.9fr 1.1fr;
        gap:25px;
        min-height:520px;
    }
    .featured-name  {
        font-size:clamp(44px,5.5vw,64px);
    }
    .featured-actions .button  {
        padding-inline:18px;
        font-size:12px;
    }
}

@media(max-width:900px)  {
    .featured-layout  {
        grid-template-columns:1fr;
        min-height:0;
        gap:30px;
        padding-block:40px 24px;
    }
    .featured-copy  {
        max-width:650px;
    }
    .featured-name  {
        font-size:62px;
        margin-bottom:15px;
    }
    .featured-description  {
        min-height:0;
        max-width:500px;
        margin-bottom:23px;
    }
    .featured-image  {
        width:100%;
        max-width:760px;
        margin-inline:auto;
        aspect-ratio:1.9;
    }
    .featured-image img  {
        width:124%;
    }
    .featured-controls  {
        padding-bottom:20px;
    }
}

@media(max-width:640px)  {
    .featured-layout  {
        padding-top:34px;
        gap:26px;
    }
    .featured-name  {
        font-size:clamp(38px,10.4vw,56px);
        margin-bottom:16px;
    }
    .featured-description  {
        min-height:47px;
        max-width:320px;
        font-size:13px;
        line-height:1.8;
        margin-bottom:22px;
    }
    .featured-actions  {
        display:grid;
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:9px;
    }
    .featured-actions .button  {
        min-height:60px;
        font-size:11px;
        padding:11px 10px;
        gap:7px;
    }
    .featured-image  {
        aspect-ratio:1.67;
        border-radius:8px;
    }
    .featured-image img  {
        width:136%;
    }
    .featured-controls  {
        gap:15px;
        padding-bottom:20px;
    }
    .featured-selectors  {
        gap:18px;
    }
    .featured-selector  {
        font-size:11px;
    }
    .featured-rotation  {
        width:42px;
        height:42px;
    }
    .home-collection  {
        padding-block:35px 40px;
    }
    .home-collection .section-heading  {
        flex-direction:row;
        align-items:center;
        gap:15px;
    }
    .home-collection .section-heading h2  {
        font-size:27px;
    }
    .catalog-shortcuts  {
        gap:25px;
        margin-top:20px;
    }
    .catalog-shortcuts a  {
        font-size:12px;
    }
}

@media(prefers-reduced-motion:reduce)  {
    .js .featured-slide:not([hidden])  {
        animation:none;
    }
}

.prose a.demo-play:hover  {
    color:var(--button-fg);
}

.wp-block-button.is-style-outline>.wp-block-button__link  {
    background:var(--button-bg);
    color:var(--button-fg);
    border:0;
}

.nav-toggle {
    border-radius:7px;
}

@media(max-width:640px) {
    .purchase-panel { position:static; width:100%; }
    .purchase-panel-inner {
        max-height:none;
        overflow:visible;
        overscroll-behavior:auto;
        scrollbar-gutter:auto;
        padding:23px;
    }
    .purchase-panel h2 { margin-bottom:20px; }
    .purchase-actions .button { font-size:12px; }
    .sidebar-accordion summary { font-size:12px; min-height:50px; }
    .sidebar-section-content { font-size:13px; }
}

/* Header access to the existing plugin catalog search. */
#primary-navigation { margin-left:auto; }
.header-search { position:relative; flex:none; }
.header-search summary { display:flex; align-items:center; justify-content:center; width:44px; height:44px; cursor:pointer; list-style:none; color:var(--purple-50); border-radius:7px; }
.header-search summary::-webkit-details-marker { display:none; }
.header-search summary:hover { box-shadow:var(--interaction-shadow); }
.header-search-form { position:absolute; top:calc(100% + 16px); right:0; width:360px; max-width:calc(100vw - 44px); padding:16px; background:var(--surface-2); border-radius:10px; display:flex; gap:10px; box-shadow:var(--interaction-shadow); }
.header-search-form input { min-width:0; width:100%; padding:10px; background:var(--bg); color:var(--purple-50); border:0; border-radius:6px; font:inherit; font-size:16px; }
.header-search-form .button { min-height:44px; padding:10px 16px; }
@media(max-width:640px) {
 .nav-toggle { margin-left:auto; }
 #primary-navigation { margin-left:0; }
 .header-inner { gap:8px; }
}

/* Keep the homepage introduction editable and visible to readers and search engines. */
.home-intro { padding-block:36px; }
.home-intro h1 { margin:0 0 14px; font-size:clamp(30px,4vw,52px); line-height:1.15; }
.home-intro p { max-width:850px; margin:0; color:var(--muted); line-height:1.8; }
@media (max-width:640px) { .home-intro { padding-block:28px; } }

/* Audiolatry editorial archive */
.news-archive { padding-bottom:80px; min-height:60vh; }
.news-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
.news-card { min-width:0; overflow:hidden; border:1px solid var(--line, #352746); border-radius:16px; background:var(--surface, #190e30); }
.news-card-image { display:block; aspect-ratio:16/9; background:#07040c; overflow:hidden; }
.news-card-image img { width:100%; height:100%; object-fit:contain; }
.news-card-copy { padding:26px; }
.news-card time,.news-date { color:var(--muted); font-size:14px; }
.news-card h2 { margin:12px 0 16px; font-size:clamp(23px,2.5vw,32px); line-height:1.25; }
.news-card-copy>p { margin-bottom:22px; color:var(--muted); line-height:1.7; }
.news-pagination { margin-top:42px; }
.news-pagination .nav-links { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.news-pagination .page-numbers { padding:10px 16px; border:1px solid var(--line,#352746); border-radius:8px; }
.news-pagination .current { background:var(--lilac); color:#190e30; }
.news-single { padding-bottom:80px; }
.news-single .page-heading { max-width:1050px; }
.news-single .page-heading>a { margin-bottom:24px; display:inline-block; }
.news-single .page-heading h1 { font-size:clamp(32px,5vw,64px); overflow-wrap:anywhere; }
.news-single .page-heading .news-date { margin-bottom:18px; }
.news-featured { margin:0 auto 36px; padding:18px; max-width:1050px; border-radius:16px; background:#07040c; }
.news-featured img { display:block; width:100%; max-height:580px; object-fit:contain; }
.news-reading-column { max-width:820px; margin-inline:auto; }
.news-product-link { margin-top:42px; padding-block:26px; border-top:1px solid var(--line,#352746); }
.news-product-link h2 { font-size:25px; margin-bottom:18px; }
.news-post-navigation { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:38px; padding-top:28px; border-top:1px solid var(--line,#352746); }
.news-post-navigation a { line-height:1.5; overflow-wrap:anywhere; }
.news-post-navigation>div:last-child { text-align:right; }
@media(max-width:640px) { .news-grid { grid-template-columns:1fr;gap:24px; } .news-card-copy { padding:22px; } .news-featured { padding:10px; } .news-post-navigation { grid-template-columns:1fr; } .news-post-navigation>div:last-child { text-align:left; } }

.cookie-table-wrap { max-width:100%; overflow-x:auto; margin-block:24px; border-radius:10px; }
.prose .cookie-table { width:100%; min-width:700px; font-size:14px; }
.cookie-table caption { text-align:left; padding:0 0 14px; font-weight:600; }
.cookie-table th { text-align:left; vertical-align:top; }
.cookie-table td { vertical-align:top; line-height:1.6; }
.cookie-table thead { background:var(--surface,#190e30); }
.cookie-table code { overflow-wrap:anywhere; font-size:0.9em; }
