/*
Theme Name: WP Automation Lab Premium Theme
Theme URI: https://wpautomationlab.com
Author: Richard Lee Garcia Groups, LLC
Author URI: https://rlggroups.com
Description: A premium, lightweight framework for software products and plugin marketplace platforms. v2 adds a full Customizer (colors, fonts, layout, header, homepage, directory, plugin pages, footer), marketplace-style plugin pages and a secure download handler.
Version: 2.1.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: wpal
*/

/* ==========================================================================
   Design tokens — defaults. The Customizer overrides these at runtime
   (Appearance → Customize → WPAL Theme Options).
   ========================================================================== */
:root {
	--wpal-bg: #0B0F19; --wpal-surface: #141B2D; --wpal-surface-2: #0E1320;
	--wpal-text: #F3F4F6; --wpal-body: #E5E7EB; --wpal-heading: #FFFFFF; --wpal-muted: #9CA3AF; --wpal-subtle: #8B93A1;
	--wpal-accent: #4F46E5; --wpal-accent-rgb: 79,70,229; --wpal-accent-hover: #4338CA; --wpal-accent-light: #818CF8; --wpal-accent-text: #818CF8;
	--wpal-link: #818CF8; --wpal-code: #F43F5E;
	--wpal-success: #10B981; --wpal-success-rgb: 16,185,129; --wpal-warning: #F59E0B; --wpal-warning-rgb: 245,158,11; --wpal-danger: #EF4444; --wpal-danger-rgb: 239,68,68;
	--wpal-border: rgba(255,255,255,.05); --wpal-btn-text: #fff; --wpal-btn-secondary: #374151;
	--wpal-font-body: 'Inter', system-ui, -apple-system, sans-serif; --wpal-font-heading: 'Inter', system-ui, -apple-system, sans-serif;
	--wpal-fs: 16px; --wpal-lh: 1.6; --wpal-hw: 800; --wpal-hls: -.02em;
	--wpal-fs-hero: 56px; --wpal-fs-h1: 45px; --wpal-fs-h2: 32px; --wpal-fs-h3: 22px;
	--wpal-eyebrow-ls: .1em; --wpal-eyebrow-tt: uppercase;
	--wpal-container: 1200px; --wpal-container-pad: 32px; --wpal-narrow: 800px; --wpal-section: 80px;
	--wpal-radius: 12px; --wpal-radius-sm: 8px; --wpal-grid-min: 320px; --wpal-grid-gap: 32px;
	--wpal-btn-radius: 6px; --wpal-btn-py: 12px; --wpal-btn-px: 24px; --wpal-btn-fw: 600; --wpal-btn-tt: none; --wpal-btn-shadow: none;
	--wpal-card-pad: 32px; --wpal-card-radius: 12px; --wpal-card-shadow: 0 4px 20px rgba(0,0,0,.2); --wpal-card-lift: -4px;
	--wpal-card-glow: 0 20px 40px rgba(79,70,229,.08); --wpal-topbar-op: 1;
	--wpal-thumb: 140px; --wpal-thumb-radius: 14px; --wpal-thumb-zoom: 1.12;
	--wpal-header-bg: #0B0F19; --wpal-header-pad: 24px; --wpal-brand-color: #fff; --wpal-brand-size: 24px; --wpal-logo-h: 40px;
	--wpal-nav: #9CA3AF; --wpal-nav-hover: #818CF8; --wpal-nav-size: 15px; --wpal-nav-fw: 600; --wpal-nav-gap: 32px; --wpal-nav-tt: none;
	--wpal-announce-bg: #4F46E5; --wpal-announce-color: #fff;
	--wpal-hero-a: #0B0F19; --wpal-hero-b: #141B2D; --wpal-hero-pad: 96px; --wpal-hero-overlay: .6;
	--wpal-single-sidebar: 360px; --wpal-shots-min: 260px;
	--wpal-footer-bg: #070A10; --wpal-footer-text: #9CA3AF; --wpal-footer-heading: #fff; --wpal-footer-link: #9CA3AF; --wpal-footer-link-hover: #818CF8;
	--wpal-footer-bottom-bg: #070A10; --wpal-footer-bottom-text: #8B93A1; --wpal-footer-pt: 64px; --wpal-footer-pb: 32px; --wpal-footer-mt: 80px;
	--wpal-footer-fs: 14px; --wpal-footer-gap: 40px; --wpal-fcta-bg: #141B2D; --wpal-footer-logo-h: 36px;
	--wpal-docs-sidebar: 280px; --wpal-terms-w: 850px; --wpal-terms-fs: 17px;
}

/* ==========================================================================
   Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	background-color: var(--wpal-bg); color: var(--wpal-text);
	font-family: var(--wpal-font-body); font-size: var(--wpal-fs); line-height: var(--wpal-lh);
	margin: 0; padding: 0;
}
img { max-width: 100%; height: auto; }
a { color: var(--wpal-link); }
h1, h2, h3, h4, h5, h6 { font-family: var(--wpal-font-heading); color: var(--wpal-heading); font-weight: var(--wpal-hw); letter-spacing: var(--wpal-hls); line-height: 1.2; }
h1 { font-size: var(--wpal-fs-h1); } h2 { font-size: var(--wpal-fs-h2); } h3 { font-size: var(--wpal-fs-h3); }
.screen-reader-text { position: absolute !important; clip: rect(1px,1px,1px,1px); width: 1px; height: 1px; overflow: hidden; white-space: nowrap; }
.wpal-skip { position: absolute; left: -9999px; top: 0; background: var(--wpal-accent); color: #fff; padding: .75rem 1rem; z-index: 10000; }
.wpal-skip:focus { left: 0; }
:focus-visible { outline: 2px solid var(--wpal-accent-light); outline-offset: 2px; }

.wpal-container { max-width: var(--wpal-container); margin: 0 auto; padding: 0 var(--wpal-container-pad); }
.wpal-eyebrow { display: block; color: var(--wpal-accent-text); font-weight: 600; text-transform: var(--wpal-eyebrow-tt); letter-spacing: var(--wpal-eyebrow-ls); font-size: .9rem; }
.wpal-lead { color: var(--wpal-muted); font-size: 1.1rem; margin: 0; }
.wpal-section { padding: var(--wpal-section) 0; }
.wpal-content { color: var(--wpal-body); line-height: 1.75; }
.wpal-content a { color: var(--wpal-link); }
.wpal-content code { background: var(--wpal-surface); color: var(--wpal-code); padding: .15rem .4rem; border-radius: 4px; font-size: .9em; border: 1px solid var(--wpal-border); }
.wpal-content pre { background: var(--wpal-surface); padding: 1.25rem; border-radius: var(--wpal-radius-sm); overflow-x: auto; border: 1px solid var(--wpal-border); }
.wpal-content pre code { background: transparent; border: 0; padding: 0; color: var(--wpal-body); }

/* ==========================================================================
   Buttons
   ========================================================================== */
.wpal-btn, .edd-submit, a.edd-submit, .edd-add-to-cart {
	display: inline-block; background: var(--wpal-accent); color: var(--wpal-btn-text); text-align: center; cursor: pointer; border: 0;
	padding: var(--wpal-btn-py) var(--wpal-btn-px); border-radius: var(--wpal-btn-radius); text-decoration: none;
	font-family: var(--wpal-font-body); font-weight: var(--wpal-btn-fw); text-transform: var(--wpal-btn-tt); font-size: 1rem; line-height: 1.4;
	box-shadow: var(--wpal-btn-shadow); transition: background .2s, transform .2s;
}
.wpal-btn:hover, .edd-submit:hover, a.edd-submit:hover, .edd-add-to-cart:hover { background: var(--wpal-accent-hover); color: var(--wpal-btn-text); transform: translateY(-1px); }
.wpal-btn--sm { padding: calc(var(--wpal-btn-py) - 3px) calc(var(--wpal-btn-px) - 6px); font-size: .9rem; }
.wpal-btn--secondary { background: var(--wpal-btn-secondary); }
.wpal-btn--secondary:hover { background: var(--wpal-btn-secondary); filter: brightness(1.15); }
.wpal-btn--ghost { background: transparent; border: 1px solid var(--wpal-border); color: var(--wpal-heading); }
.wpal-btn--ghost:hover { background: rgba(255,255,255,.04); border-color: var(--wpal-accent); }
.wpal-btn--block { display: block; width: 100%; }
.wpal-btn[aria-disabled="true"] { opacity: .6; cursor: not-allowed; pointer-events: none; }

/* ==========================================================================
   Announcement + Header
   ========================================================================== */
.wpal-announce { background: var(--wpal-announce-bg); color: var(--wpal-announce-color); text-align: center; font-size: .9rem; padding: .55rem 0; }
.wpal-announce a { color: inherit; font-weight: 700; margin-left: .5rem; }
.wpal-header { background: var(--wpal-header-bg); border-bottom: 1px solid var(--wpal-border); padding: var(--wpal-header-pad) 0; }
.wpal-header__inner { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; }
.wpal-brand { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; }
.wpal-brand__text { font-size: var(--wpal-brand-size); font-weight: 800; color: var(--wpal-brand-color); text-decoration: none; letter-spacing: -.02em; font-family: var(--wpal-font-heading); }
.wpal-brand__text span { color: var(--wpal-accent); }
.wpal-brand img, .wpal-brand .custom-logo { max-height: var(--wpal-logo-h); width: auto; display: block; }
.wpal-brand__tag { flex-basis: 100%; color: var(--wpal-subtle); font-size: .75rem; }
.wpal-nav { display: flex; align-items: center; gap: var(--wpal-nav-gap); }
.wpal-menu, .wpal-nav ul { display: flex; align-items: center; justify-content: flex-end; gap: var(--wpal-nav-gap); list-style: none; margin: 0; padding: 0; }
.wpal-nav li { list-style: none; margin: 0; padding: 0; position: relative; }
.wpal-nav a:not(.wpal-btn) { color: var(--wpal-nav); text-decoration: none; font-weight: var(--wpal-nav-fw); font-size: var(--wpal-nav-size); text-transform: var(--wpal-nav-tt); white-space: nowrap; transition: color .2s; }
.wpal-nav a:not(.wpal-btn):hover, .wpal-nav .current-menu-item > a, .wpal-nav .current_page_item > a { color: var(--wpal-nav-hover); }
.wpal-nav-toggle { display: none; background: transparent; border: 1px solid var(--wpal-border); border-radius: var(--wpal-radius-sm); width: 44px; height: 44px; align-items: center; justify-content: center; cursor: pointer; }
.wpal-burger, .wpal-burger::before, .wpal-burger::after { display: block; width: 20px; height: 2px; background: var(--wpal-heading); position: relative; content: ''; }
.wpal-burger::before { position: absolute; top: -6px; } .wpal-burger::after { position: absolute; top: 6px; }

.wpal-header--right .wpal-header__inner { flex-direction: row-reverse; }
.wpal-header--centered .wpal-header__inner { flex-direction: column; text-align: center; }
.wpal-header--centered .wpal-menu, .wpal-header--centered .wpal-nav { justify-content: center; }

/* ==========================================================================
   Hero / homepage
   ========================================================================== */
.wpal-hero { padding: var(--wpal-hero-pad) 0; text-align: center; }
.wpal-hero-left .wpal-hero { text-align: left; }
.wpal-hero__title { font-size: var(--wpal-fs-hero); margin: 1rem 0; line-height: 1.15; }
.wpal-hero__text { max-width: 680px; margin: 0 auto 1.5rem; color: var(--wpal-muted); font-size: 1.2rem; }
.wpal-hero-left .wpal-hero__text { margin-left: 0; }
.wpal-hero__actions { display: flex; gap: 1rem; flex-wrap: wrap; justify-content: center; }
.wpal-hero-left .wpal-hero__actions { justify-content: flex-start; }
.hero-stats-badge { display: inline-flex; align-items: center; gap: .75rem; background: rgba(var(--wpal-accent-rgb), .1); border: 1px solid rgba(var(--wpal-accent-rgb), .2); padding: .5rem 1.25rem; border-radius: 50px; margin-bottom: 2.5rem; color: var(--wpal-heading); font-size: .9rem; }
.hero-stats-badge i { width: 8px; height: 8px; border-radius: 50%; background: var(--wpal-success); box-shadow: 0 0 8px var(--wpal-success); display: inline-block; }
.wpal-section-head { margin-bottom: 0; }
.wpal-section-head h2 { margin: 0 0 .5rem; }
.wpal-section-head p { color: var(--wpal-muted); margin: 0; }
.wpal-cta-band { background: var(--wpal-surface); border-top: 1px solid var(--wpal-border); border-bottom: 1px solid var(--wpal-border); padding: calc(var(--wpal-section) * .7) 0; text-align: center; }
.wpal-cta-band p { color: var(--wpal-muted); }

/* ==========================================================================
   Cards, grid, badges
   ========================================================================== */
.plugin-grid, .wpal-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(var(--wpal-grid-min), 100%), 1fr)); gap: var(--wpal-grid-gap); margin: 3rem 0; }
.wpal-grid--tight { margin: 1.5rem 0 0; }
.plugin-card, .wpal-card {
	position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; height: 100%;
	background: var(--wpal-surface); border: 1px solid var(--wpal-border); border-radius: var(--wpal-card-radius); padding: var(--wpal-card-pad);
	box-shadow: var(--wpal-card-shadow); transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.plugin-card:hover { transform: translateY(var(--wpal-card-lift)); border-color: var(--wpal-accent); box-shadow: var(--wpal-card-glow); }
.plugin-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 3px; background: linear-gradient(90deg, var(--wpal-accent), var(--wpal-accent-light)); opacity: 0; transition: opacity .3s; }
.plugin-card:hover::before { opacity: var(--wpal-topbar-op); }
.wpal-card__title { margin: 0 0 .6rem; font-size: calc(var(--wpal-fs-h3) - 2px); }
.wpal-card__title a { color: var(--wpal-heading); text-decoration: none; }
.wpal-card__text { color: var(--wpal-muted); font-size: .92rem; line-height: 1.55; margin: 0 0 1.5rem; }
.wpal-card__foot { display: flex; justify-content: space-between; align-items: center; gap: .75rem; flex-wrap: wrap; margin-top: auto; }
.wpal-card__link { color: var(--wpal-accent-text); font-weight: 600; text-decoration: none; font-size: .92rem; transition: color .2s; }
.plugin-card:hover .card-action-anchor { color: var(--wpal-accent-light); }
.wpal-card__meta { display: flex; gap: .4rem; flex-wrap: wrap; }
.wpal-chip { font-size: .72rem; color: #B4BAC6; background: rgba(255,255,255,.06); padding: .2rem .5rem; border-radius: 4px; font-family: ui-monospace, monospace; }
.card-thumb-frame { width: var(--wpal-thumb); height: var(--wpal-thumb); max-width: 100%; background: rgba(255,255,255,.02); border: 1px solid rgba(255,255,255,.06); border-radius: var(--wpal-thumb-radius); margin-bottom: 1.5rem; overflow: hidden; display: flex; align-items: center; justify-content: center; transition: transform .3s cubic-bezier(.2,.8,.2,1), border-color .3s, box-shadow .3s; }
.card-thumb-frame img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.plugin-card:hover .card-thumb-frame { transform: scale(var(--wpal-thumb-zoom)); border-color: var(--wpal-accent); box-shadow: 0 0 20px rgba(var(--wpal-accent-rgb), .3); background: rgba(var(--wpal-accent-rgb), .06); }
.wpal-badges { display: flex; gap: .4rem; align-items: center; flex-wrap: wrap; margin-bottom: .75rem; }
.wpal-badge { font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; padding: .22rem .55rem; border-radius: 999px; border: 1px solid transparent; }
.wpal-badge--free { color: var(--wpal-success); background: rgba(var(--wpal-success-rgb), .12); border-color: rgba(var(--wpal-success-rgb), .3); }
.wpal-badge--premium { color: var(--wpal-accent-light); background: rgba(var(--wpal-accent-rgb), .14); border-color: rgba(var(--wpal-accent-rgb), .35); }
.wpal-badge--beta, .wpal-badge--soon { color: var(--wpal-warning); background: rgba(var(--wpal-warning-rgb), .12); border-color: rgba(var(--wpal-warning-rgb), .3); }
.wpal-badge--private { color: var(--wpal-danger); background: rgba(var(--wpal-danger-rgb), .12); border-color: rgba(var(--wpal-danger-rgb), .3); }
.wpal-price { font-size: .85rem; color: var(--wpal-heading); font-weight: 600; margin-left: auto; }

/* ==========================================================================
   Directory
   ========================================================================== */
.wpal-dir-head { padding: calc(var(--wpal-section) * .9) 0 3rem; border-bottom: 1px solid var(--wpal-border); }
.wpal-dir-head h1 { margin: .5rem 0 1rem; }
.wpal-dir-head p { max-width: 640px; }
.wpal-filters { display: grid; gap: 1rem; margin-bottom: 2.5rem; padding: 1.25rem; background: var(--wpal-surface); border: 1px solid var(--wpal-border); border-radius: var(--wpal-radius); }
.wpal-filters__row { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
.wpal-filters__label { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--wpal-subtle); font-weight: 700; margin-right: .25rem; }
.wpal-search { width: 100%; background: var(--wpal-bg); color: var(--wpal-heading); border: 1px solid var(--wpal-border); border-radius: var(--wpal-radius-sm); padding: .8rem 1rem; font: inherit; }
.wpal-search:focus { border-color: var(--wpal-accent); outline: none; }
.wpal-pill { background: transparent; color: var(--wpal-muted); border: 1px solid var(--wpal-border); border-radius: 999px; padding: .35rem .9rem; font: inherit; font-size: .85rem; cursor: pointer; transition: all .15s; }
.wpal-pill:hover { border-color: var(--wpal-accent); color: var(--wpal-heading); }
.wpal-pill.is-active { background: var(--wpal-accent); border-color: var(--wpal-accent); color: var(--wpal-btn-text); }
.wpal-count { color: var(--wpal-subtle); font-size: .85rem; }
.wpal-category { margin-bottom: 4rem; }
.wpal-category > header { border-left: 3px solid var(--wpal-accent); padding-left: 1.25rem; margin-bottom: 1.5rem; }
.wpal-category > header h2 { margin: 0 0 .4rem; font-size: calc(var(--wpal-fs-h2) - 3px); }
.wpal-category > header p { color: var(--wpal-muted); margin: 0; max-width: 700px; font-size: .95rem; }
.wpal-empty { color: var(--wpal-muted); text-align: center; padding: 3rem 0; }
[hidden] { display: none !important; }

/* ==========================================================================
   Single plugin page
   ========================================================================== */
.wpal-single { display: grid; grid-template-columns: minmax(0, 1fr) var(--wpal-single-sidebar); gap: 4rem; padding-top: 4rem; padding-bottom: 4rem; align-items: start; }
.wpal-sidebar-left .wpal-single { grid-template-columns: var(--wpal-single-sidebar) minmax(0, 1fr); }
.wpal-sidebar-left .wpal-single__aside { order: -1; }
.wpal-single__head { display: flex; gap: 1.5rem; align-items: center; margin: .5rem 0 1rem; }
.wpal-single__head h1 { margin: 0; }
.wpal-single__icon { flex: 0 0 auto; width: 84px; height: 84px; border-radius: 18px; background: rgba(255,255,255,.03); border: 1px solid var(--wpal-border); object-fit: contain; padding: 6px; }
.wpal-single__sub { color: var(--wpal-muted); font-size: 1.15rem; margin: 0 0 1rem; }
.wpal-jump { display: flex; gap: .5rem; flex-wrap: wrap; margin: 1.5rem 0 0; padding-bottom: 2rem; border-bottom: 1px solid var(--wpal-border); }
.wpal-jump a { font-size: .82rem; color: var(--wpal-muted); border: 1px solid var(--wpal-border); border-radius: 999px; padding: .3rem .85rem; text-decoration: none; transition: all .15s; }
.wpal-jump a:hover { color: var(--wpal-heading); border-color: var(--wpal-accent); }
.wpal-section-block { margin-top: 3.5rem; padding-top: 2.5rem; border-top: 1px solid var(--wpal-border); scroll-margin-top: 90px; }
.wpal-section-block:first-of-type { border-top: 0; }
.wpal-section-title { font-size: calc(var(--wpal-fs-h2) - 6px); margin: 0 0 1.5rem; }
.wpal-subtitle { font-size: 1.1rem; margin: 2rem 0 .75rem; }

.wpal-features { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.25rem; }
.wpal-feature { background: var(--wpal-surface); border: 1px solid var(--wpal-border); border-radius: var(--wpal-radius-sm); padding: 1.4rem; }
.wpal-feature h3 { font-size: 1.05rem; margin: 0 0 .5rem; }
.wpal-feature p { color: var(--wpal-muted); font-size: .92rem; margin: 0 0 .6rem; }
.wpal-feature__benefit { color: var(--wpal-success); font-size: .85rem; font-weight: 600; margin: 0; }
.wpal-usecases { margin: 0; padding-left: 1.2rem; color: var(--wpal-body); }
.wpal-usecases li { margin-bottom: .4rem; }

.screenshot-display-matrix { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(var(--wpal-shots-min), 100%), 1fr)); gap: 1.5rem; }
.screenshot-node-container { margin: 0; background: var(--wpal-surface); border: 1px solid var(--wpal-border); border-radius: var(--wpal-radius-sm); overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,.3); transition: transform .3s, border-color .3s; }
.screenshot-node-container a { display: block; aspect-ratio: 16/10; overflow: hidden; }
.screenshot-node-container img { width: 100%; height: 100%; object-fit: cover; display: block; filter: brightness(.92) contrast(1.05); transition: filter .3s, transform .3s; }
.screenshot-node-container:hover { transform: translateY(-4px); border-color: var(--wpal-accent); }
.screenshot-node-container:hover img { filter: none; transform: scale(1.02); }
.screenshot-node-container figcaption { padding: .75rem 1rem; font-size: .85rem; color: var(--wpal-muted); }

.wpal-steps { list-style: none; counter-reset: wpalstep; margin: 0; padding: 0; display: grid; gap: 1rem; }
.wpal-steps li { counter-increment: wpalstep; position: relative; padding: 1.1rem 1.25rem 1.1rem 4rem; background: var(--wpal-surface); border: 1px solid var(--wpal-border); border-radius: var(--wpal-radius-sm); }
.wpal-steps li::before { content: counter(wpalstep); position: absolute; left: 1.1rem; top: 1.05rem; width: 2rem; height: 2rem; border-radius: 50%; background: var(--wpal-accent); color: var(--wpal-btn-text); font-weight: 700; display: flex; align-items: center; justify-content: center; }
.wpal-steps strong { display: block; color: var(--wpal-heading); margin-bottom: .2rem; }
.wpal-steps span { color: var(--wpal-muted); font-size: .94rem; }

.wpal-compat { width: 100%; border-collapse: collapse; background: var(--wpal-surface); border: 1px solid var(--wpal-border); border-radius: var(--wpal-radius-sm); overflow: hidden; }
.wpal-compat th, .wpal-compat td { text-align: left; padding: .85rem 1.1rem; border-bottom: 1px solid var(--wpal-border); font-size: .95rem; }
.wpal-compat th { width: 40%; color: var(--wpal-muted); font-weight: 600; }
.wpal-compat td { color: var(--wpal-heading); }
.wpal-compat tr:last-child th, .wpal-compat tr:last-child td { border-bottom: 0; }
.wpal-note { color: var(--wpal-subtle); font-size: .85rem; margin-top: .75rem; }

.wpal-release { background: var(--wpal-surface); border: 1px solid var(--wpal-border); border-radius: var(--wpal-radius-sm); margin-bottom: .75rem; }
.wpal-release summary { cursor: pointer; padding: 1rem 1.25rem; display: flex; gap: 1rem; align-items: baseline; list-style: none; }
.wpal-release summary::-webkit-details-marker, .wpal-faq summary::-webkit-details-marker { display: none; }
.wpal-release__ver { color: var(--wpal-heading); font-weight: 700; }
.wpal-release__date { color: var(--wpal-subtle); font-size: .85rem; }
.wpal-release ul { list-style: none; margin: 0; padding: 0 1.25rem 1.1rem; }
.wpal-release li { display: flex; gap: .75rem; padding: .3rem 0; color: var(--wpal-body); font-size: .94rem; }
.wpal-tag { flex: 0 0 4.6rem; font-size: .65rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--wpal-accent-text); padding-top: .25rem; }
.wpal-tag--fixed { color: var(--wpal-warning); } .wpal-tag--security { color: var(--wpal-danger); } .wpal-tag--added, .wpal-tag--new { color: var(--wpal-success); }

.wpal-faq { background: var(--wpal-surface); border: 1px solid var(--wpal-border); border-radius: var(--wpal-radius-sm); padding: 1rem 1.25rem; margin-bottom: .75rem; }
.wpal-faq summary { cursor: pointer; color: var(--wpal-heading); font-weight: 600; list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.wpal-faq summary::after { content: '+'; color: var(--wpal-accent); font-size: 1.25rem; line-height: 1; }
.wpal-faq[open] summary::after { content: '–'; }
.wpal-faq__a { margin-top: .9rem; color: var(--wpal-muted); font-size: .96rem; }

.wpal-support-box { background: var(--wpal-surface); border: 1px solid var(--wpal-border); border-radius: var(--wpal-radius); padding: 1.75rem; display: flex; gap: 1.5rem; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.wpal-support-box p { margin: 0; color: var(--wpal-muted); max-width: 520px; }

.wpal-single__aside { background: var(--wpal-surface); border: 1px solid var(--wpal-border); padding: 2rem; border-radius: var(--wpal-radius); position: sticky; top: 2rem; }
.wpal-single__aside h4 { margin: 0 0 1.25rem; text-transform: uppercase; font-size: .8rem; letter-spacing: .05em; }
.wpal-spec { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid var(--wpal-border); font-size: .9rem; }
.wpal-spec span { color: var(--wpal-subtle); } .wpal-spec strong { color: var(--wpal-heading); text-align: right; }
.wpal-aside__cta { margin: 1.5rem 0 .75rem; }
.wpal-aside__note { color: var(--wpal-subtle); font-size: .8rem; text-align: center; margin: .6rem 0 0; }
.wpal-aside__status { text-align: center; color: var(--wpal-muted); font-size: .9rem; padding: .85rem; border: 1px dashed var(--wpal-border); border-radius: var(--wpal-radius-sm); }
.wpal-aside__links { margin-top: 1.25rem; display: grid; gap: .5rem; }
.wpal-aside__links a { color: var(--wpal-accent-light); font-size: .9rem; text-decoration: none; }

/* ==========================================================================
   Pages: default / about / terms / docs
   ========================================================================== */
.wpal-page { padding: var(--wpal-section) var(--wpal-container-pad); max-width: var(--wpal-narrow); margin: 0 auto; color: var(--wpal-body); }
.wpal-page h1 { margin: 0 0 2rem; }
.wpal-page .entry-content { font-size: 1.1rem; line-height: 1.8; }

.wpal-about-hero { padding: var(--wpal-hero-pad) 0; background: linear-gradient(180deg, var(--wpal-hero-a), var(--wpal-hero-b)); border-bottom: 1px solid var(--wpal-border); }
.wpal-about-hero .wpal-container { max-width: 900px; text-align: center; }
.wpal-about-hero h1 { font-size: calc(var(--wpal-fs-hero) - 4px); margin: .75rem 0 1.5rem; }
.wpal-about-hero p { color: var(--wpal-muted); font-size: 1.2rem; margin: 0; }
.wpal-pillars { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 2rem; }
.wpal-pillar { background: var(--wpal-surface); border: 1px solid var(--wpal-border); padding: 2.25rem; border-radius: var(--wpal-radius-sm); }
.wpal-pillar__num { color: var(--wpal-accent-text); font-size: 1.4rem; font-weight: 800; margin-bottom: 1rem; }
.wpal-pillar h3 { margin: 0 0 1rem; font-size: 1.2rem; } .wpal-pillar p { color: var(--wpal-muted); margin: 0; font-size: .95rem; }
.wpal-gov { background: var(--wpal-footer-bg); border-top: 1px solid var(--wpal-border); padding: 5rem 0; }
.wpal-gov__box { max-width: 800px; margin: 0 auto; background: var(--wpal-surface); border: 1px solid var(--wpal-border); padding: 2.5rem; border-radius: var(--wpal-radius); box-shadow: 0 20px 40px rgba(0,0,0,.4); }
.wpal-gov__box h3 { margin: 0 0 1.5rem; padding-bottom: 1rem; border-bottom: 1px solid var(--wpal-border); }
.wpal-gov__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; font-size: .9rem; }
.wpal-gov__grid span { display: block; color: var(--wpal-subtle); text-transform: uppercase; font-size: .72rem; font-weight: 700; margin-bottom: .25rem; }

.wpal-legal { max-width: var(--wpal-terms-w); margin: 0 auto; padding: var(--wpal-section) var(--wpal-container-pad); }
.wpal-legal > header { border-bottom: 1px solid var(--wpal-border); padding-bottom: 2.5rem; margin-bottom: 3rem; }
.wpal-legal h1 { margin: .5rem 0 1rem; font-size: calc(var(--wpal-fs-h1) + 3px); }
.wpal-legal__meta { color: var(--wpal-subtle); font-size: .92rem; font-family: ui-monospace, monospace; margin: 0; }
.wpal-legal__body { color: #D1D5DB; font-size: var(--wpal-terms-fs); line-height: 1.75; }
.wpal-legal__body h2 { margin: 3.5rem 0 1rem; font-size: 1.6rem; } .wpal-legal__body h3 { margin: 2rem 0 .75rem; font-size: 1.2rem; }
.wpal-legal__body p { margin-bottom: 1.5rem; } .wpal-legal__body ul { margin-bottom: 1.5rem; padding-left: 1.5rem; list-style: square; }
.wpal-legal__body li { margin-bottom: .5rem; color: var(--wpal-muted); } .wpal-legal__body strong { color: var(--wpal-heading); }

.wpal-docs { display: grid; grid-template-columns: var(--wpal-docs-sidebar) minmax(0, 1fr); gap: 4rem; align-items: start; padding-top: 4rem; padding-bottom: 4rem; }
.wpal-docs--no-sidebar { grid-template-columns: minmax(0, 1fr); }
.docs-sidebar { position: sticky; top: 2rem; background: var(--wpal-surface); border: 1px solid var(--wpal-border); padding: 1.75rem; border-radius: var(--wpal-radius-sm); }
.docs-sidebar h4 { color: var(--wpal-accent-text); font-size: .85rem; text-transform: uppercase; letter-spacing: .05em; margin: 0 0 1.25rem; }
.docs-sidebar ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .85rem; font-size: .95rem; }
.docs-nav-link { color: var(--wpal-muted); text-decoration: none; display: block; transition: color .2s, padding-left .2s; }
.docs-nav-link:hover, .docs-nav-link.active { color: var(--wpal-heading); padding-left: 4px; }
.docs-nav-link.active { font-weight: 600; border-left: 2px solid var(--wpal-accent); padding-left: 8px; }
.docs-markdown-body { font-size: 1.05rem; line-height: 1.7; }
.docs-markdown-body h2 { margin-top: 3rem; padding-bottom: .5rem; border-bottom: 1px solid var(--wpal-border); font-size: 1.8rem; }
.docs-markdown-body h3 { margin-top: 2rem; font-size: 1.3rem; }

/* ==========================================================================
   Footer
   ========================================================================== */
.wpal-fcta { background: var(--wpal-fcta-bg); border-top: 1px solid var(--wpal-border); margin-top: var(--wpal-footer-mt); padding: 2.5rem 0; }
.wpal-fcta__inner { display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.wpal-fcta h3 { margin: 0 0 .25rem; } .wpal-fcta p { margin: 0; color: var(--wpal-muted); }
.wpal-footer { background: var(--wpal-footer-bg); border-top: 1px solid var(--wpal-border); margin-top: var(--wpal-footer-mt); color: var(--wpal-footer-text); font-size: var(--wpal-footer-fs); }
.wpal-fcta + .wpal-footer { margin-top: 0; }
.wpal-footer .wpal-container:first-child { padding-top: var(--wpal-footer-pt); padding-bottom: var(--wpal-footer-pb); }
.wpal-footer a { color: var(--wpal-footer-link); text-decoration: none; transition: color .2s; }
.wpal-footer a:hover { color: var(--wpal-footer-link-hover); }
.wpal-footer__grid { display: grid; gap: var(--wpal-footer-gap); grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.wpal-footer--wide .wpal-footer__col--brand { grid-column: span 2; }
.wpal-footer--centered .wpal-footer__grid { text-align: center; grid-template-columns: 1fr; justify-items: center; }
.wpal-footer--centered .wpal-footer__menu, .wpal-footer--centered .wpal-social { justify-content: center; }
.wpal-footer__title { color: var(--wpal-footer-heading); margin: 0 0 1rem; font-size: 1rem; letter-spacing: 0; }
.wpal-footer__about p { max-width: 340px; margin: 0 0 .75rem; }
.wpal-footer--centered .wpal-footer__about p { margin-left: auto; margin-right: auto; }
.wpal-footer__logo, .wpal-footer__logo-wrap img { max-height: var(--wpal-footer-logo-h); width: auto; margin-bottom: 1rem; display: block; }
.wpal-footer__menu, .wpal-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.wpal-social { display: flex; gap: .5rem; flex-wrap: wrap; }
.wpal-social__link { border: 1px solid var(--wpal-border); border-radius: 999px; padding: .25rem .75rem; font-size: .8rem; }
.wpal-footer__extra { margin-top: 2rem; }
.wpal-footer__bottom { background: var(--wpal-footer-bottom-bg); color: var(--wpal-footer-bottom-text); border-top: 1px solid var(--wpal-border); font-size: .85rem; }
.wpal-footer__bottom-inner { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; padding-top: 1.25rem; padding-bottom: 1.25rem; }
.wpal-footer__bottom a { color: var(--wpal-footer-bottom-text); }
.wpal-footer__bottom--center .wpal-footer__bottom-inner { flex-direction: column; text-align: center; }
.wpal-footer__copy { display: flex; gap: 1rem; flex-wrap: wrap; }
.wpal-footer__legal-menu { display: flex !important; gap: 1.25rem; }
.wpal-totop { position: fixed; right: 1.5rem; bottom: 1.5rem; z-index: 900; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--wpal-border); background: var(--wpal-accent); color: var(--wpal-btn-text); font-size: 1.1rem; cursor: pointer; box-shadow: 0 6px 20px rgba(0,0,0,.35); }

/* ==========================================================================
   Easy Digital Downloads
   ========================================================================== */
.edd-submit, a.edd-submit, .edd-add-to-cart { box-shadow: 0 4px 14px rgba(var(--wpal-accent-rgb), .2); }
.edd-input, #edd_checkout_form input[type="text"], #edd_checkout_form input[type="email"], #edd_checkout_form input[type="password"], #edd_checkout_form select {
	background: var(--wpal-surface) !important; border: 1px solid var(--wpal-border) !important; color: var(--wpal-heading) !important;
	border-radius: var(--wpal-btn-radius) !important; padding: .75rem !important; font-family: var(--wpal-font-body) !important; width: 100% !important;
}
.edd-input:focus, #edd_checkout_form input:focus { border-color: var(--wpal-accent) !important; outline: none !important; box-shadow: 0 0 10px rgba(var(--wpal-accent-rgb), .15) !important; }
#edd_checkout_form fieldset { border: 1px solid var(--wpal-border) !important; background: var(--wpal-surface-2) !important; padding: 2rem !important; border-radius: var(--wpal-radius) !important; margin-bottom: 2rem !important; }
#edd_checkout_form legend { color: var(--wpal-heading) !important; font-weight: 700 !important; font-size: 1.25rem !important; padding: 0 .5rem !important; }
#edd_checkout_form label { color: var(--wpal-muted) !important; font-weight: 600 !important; font-size: .9rem !important; display: block !important; margin: 1rem 0 .5rem !important; }
#edd_checkout_cart, .edd_cart { width: 100% !important; border-collapse: collapse !important; border: 1px solid var(--wpal-border) !important; background: var(--wpal-surface) !important; margin-bottom: 3rem !important; }
#edd_checkout_cart th, .edd_cart th { background: rgba(255,255,255,.02) !important; color: var(--wpal-heading) !important; padding: 1rem !important; text-align: left !important; border-bottom: 1px solid var(--wpal-border) !important; }
#edd_checkout_cart td, .edd_cart td { padding: 1rem !important; color: var(--wpal-body) !important; border-bottom: 1px solid var(--wpal-border) !important; }
.edd_cart_total { font-size: 1.2rem !important; color: var(--wpal-heading) !important; font-weight: 700 !important; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1024px) {
	.wpal-container { padding: 0 1.5rem; }
	.plugin-grid, .wpal-grid { gap: 1.5rem; }
	.wpal-hero__title { font-size: calc(var(--wpal-fs-hero) * .8); }
	.wpal-single { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
	.wpal-sidebar-left .wpal-single { grid-template-columns: minmax(0, 1fr); }
	.wpal-sidebar-left .wpal-single__aside { order: 0; }
	.wpal-single__aside { position: static; }
	.wpal-docs { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
	.docs-sidebar { position: static; }
}
@media (max-width: 768px) {
	.wpal-container { padding: 0 1rem; }
	.plugin-grid, .wpal-grid { grid-template-columns: 1fr; gap: 1.25rem; }
	h1 { font-size: calc(var(--wpal-fs-h1) * .78); } h2 { font-size: calc(var(--wpal-fs-h2) * .8); }
	.wpal-hero__title { font-size: calc(var(--wpal-fs-hero) * .6); }
	.wpal-about-hero h1 { font-size: calc(var(--wpal-fs-hero) * .55); }
	.wpal-single__head { flex-direction: column; align-items: flex-start; }
	.wpal-gov__grid { grid-template-columns: 1fr; }
	.wpal-footer--wide .wpal-footer__col--brand { grid-column: auto; }
	.wpal-footer__bottom-inner { flex-direction: column; text-align: center; }
	.wpal-section-block { margin-top: 2.5rem; padding-top: 2rem; }
}
@media (min-width: 901px) {
	/* One-level dropdown for nested menu items */
	.wpal-nav .sub-menu { display: none; position: absolute; top: 100%; left: 0; min-width: 200px; background: var(--wpal-surface); border: 1px solid var(--wpal-border); border-radius: var(--wpal-radius-sm); padding: .5rem 1rem; z-index: 50; flex-direction: column; align-items: flex-start; gap: .5rem; }
	.wpal-nav li:hover > .sub-menu, .wpal-nav li:focus-within > .sub-menu { display: flex; }
}
@media print { .wpal-header, .wpal-footer, .wpal-totop, .wpal-announce { display: none; } body { background: #fff; color: #000; } }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }

/* ==========================================================================
   Phase 2 additions: how-it-works strip, status block, forms, notices
   ========================================================================== */
.wpal-how { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 1.25rem; margin-top: 2rem; padding: 0; list-style: none; counter-reset: wpalhow; }
.wpal-how li { counter-increment: wpalhow; background: var(--wpal-surface); border: 1px solid var(--wpal-border); border-radius: var(--wpal-radius-sm); padding: 1.4rem; }
.wpal-how li::before { content: counter(wpalhow); display: inline-flex; width: 2rem; height: 2rem; align-items: center; justify-content: center; border-radius: 50%; background: var(--wpal-accent); color: var(--wpal-btn-text); font-weight: 700; margin-bottom: .75rem; }
.wpal-how strong { display: block; color: var(--wpal-heading); margin-bottom: .25rem; }
.wpal-how span { color: var(--wpal-muted); font-size: .92rem; }
.wpal-actions { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 1.5rem; }
.wpal-aside__custom { margin-top: .75rem; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 2px solid var(--wpal-accent-light); outline-offset: 2px; }
/* Forms (WPAL Commerce Core shortcodes) */
.wpal-form { display: grid; gap: 1.1rem; max-width: 720px; }
.wpal-form label { display: block; font-weight: 600; color: var(--wpal-heading); margin-bottom: .35rem; font-size: .95rem; }
.wpal-form .req { color: var(--wpal-danger); }
.wpal-form input[type=text], .wpal-form input[type=email], .wpal-form input[type=url], .wpal-form select, .wpal-form textarea, .wpal-form input[type=file] { width: 100%; background: var(--wpal-surface); color: var(--wpal-heading); border: 1px solid rgba(255,255,255,.18); border-radius: var(--wpal-radius-sm); padding: .75rem 1rem; font: inherit; }
.wpal-form input:focus, .wpal-form select:focus, .wpal-form textarea:focus { border-color: var(--wpal-accent-light); outline: none; box-shadow: 0 0 0 3px rgba(var(--wpal-accent-rgb), .3); }
.wpal-form .help { color: var(--wpal-muted); font-size: .85rem; margin-top: .3rem; }
.wpal-form .wpal-hp { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.wpal-notice { padding: 1rem 1.25rem; border-radius: var(--wpal-radius-sm); border: 1px solid var(--wpal-border); margin-bottom: 1.5rem; }
.wpal-notice--ok { background: rgba(var(--wpal-success-rgb), .12); border-color: rgba(var(--wpal-success-rgb), .4); color: var(--wpal-heading); }
.wpal-notice--err { background: rgba(var(--wpal-danger-rgb), .12); border-color: rgba(var(--wpal-danger-rgb), .45); color: var(--wpal-heading); }
.wpal-draft-banner { background: rgba(var(--wpal-warning-rgb), .12); border: 1px solid rgba(var(--wpal-warning-rgb), .5); color: var(--wpal-heading); padding: 1rem 1.25rem; border-radius: var(--wpal-radius-sm); margin-bottom: 2rem; font-size: .95rem; }
