/*
Theme Name: Digital Store
Description: Sell digital products with Gumroad. Manage products, prices, buy links, colors and fonts from the "Products" menu in the WordPress dashboard. No code editing needed.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: digital-store
*/

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--dps-bg);color:var(--dps-text);font-family:var(--dps-body-font);font-size:var(--dps-body-size);line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--dps-primary)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--dps-accent);outline-offset:2px}
h1,h2,h3{font-family:var(--dps-head-font);line-height:1.15;margin:0 0 .5em;letter-spacing:-.02em}
h1{font-size:clamp(calc(var(--dps-h1)*.6),6vw,var(--dps-h1))}
h2{font-size:clamp(calc(var(--dps-h2)*.75),4vw,var(--dps-h2))}
h3{font-size:var(--dps-h3)}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--dps-primary);color:#fff;padding:.5rem 1rem;z-index:100}
.skip:focus{left:0}
.wrap{width:min(100% - 2.5rem,var(--dps-container));margin-inline:auto}
.narrow{max-width:820px}
.section{padding:var(--dps-space) 0}
.section.alt{background:var(--dps-surface);border-block:1px solid var(--dps-border)}
.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}
.section-head h2{margin:0}

/* header */
.site-header{background:var(--dps-header-bg);color:var(--dps-header-text);position:sticky;top:0;z-index:50;border-bottom:1px solid var(--dps-border)}
.admin-bar .site-header{top:32px}
@media (max-width:782px){.admin-bar .site-header{top:46px}}
.bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:68px}
.brand{color:inherit;text-decoration:none;font-family:var(--dps-head-font);font-weight:700;font-size:1.35rem}
.brand .logo{max-height:44px;width:auto}
.nav{display:flex;align-items:center;gap:1.5rem}
.menu,.flist{list-style:none;display:flex;gap:1.4rem;margin:0;padding:0}
.menu a{color:inherit;text-decoration:none;font-weight:500;padding:.4rem 0}
.menu a:hover,.menu .current-menu-item a{color:var(--dps-primary);text-decoration:underline;text-underline-offset:6px}
.nav-toggle{display:none;background:none;border:1px solid var(--dps-border);border-radius:var(--dps-radius);width:46px;height:46px;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px;color:inherit}
.nav-toggle i{display:block;width:20px;height:2px;background:currentColor}
@media (max-width:860px){
	.nav-toggle{display:flex}
	.nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--dps-header-bg);border-bottom:1px solid var(--dps-border);padding:1rem 1.25rem 1.5rem;flex-direction:column;align-items:stretch;gap:1rem}
	.nav.open{display:flex}
	.menu{flex-direction:column;gap:.2rem}
	.menu a{display:block;padding:.7rem 0}
}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.7rem 1.5rem;border-radius:var(--dps-btn-radius);background:var(--dps-btn);color:var(--dps-btn-text);border:2px solid var(--dps-btn);font:700 1rem var(--dps-body-font);text-decoration:none;cursor:pointer;transition:background .15s,border-color .15s}
.btn:hover{background:var(--dps-btn-hover);border-color:var(--dps-btn-hover);color:var(--dps-btn-text)}
.btn-ghost{background:transparent;color:var(--dps-text);border-color:var(--dps-border)}
.btn-ghost:hover{background:transparent;color:var(--dps-primary);border-color:var(--dps-primary)}
.btn-sm{min-height:40px;padding:.35rem 1rem;font-size:.92rem}
.btn-light{background:#fff;border-color:#fff;color:#14213D}
.btn-light:hover{background:var(--dps-accent);border-color:var(--dps-accent);color:var(--dps-accent-text)}
.btn-outline-light{background:transparent;border-color:rgba(255,255,255,.6);color:#fff}
.btn-outline-light:hover{background:rgba(255,255,255,.12);border-color:#fff;color:#fff}
.btn.is-off{background:var(--dps-border);border-color:var(--dps-border);color:var(--dps-muted);cursor:not-allowed}
.actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}

/* price + tags */
.price{display:inline-flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}
.price del{color:var(--dps-muted)}
.price strong{font-family:var(--dps-head-font);font-size:1.5em;line-height:1}
.off{background:var(--dps-accent);color:var(--dps-accent-text);font-weight:700;font-size:.82rem;padding:.15rem .6rem;border-radius:999px}
.tag{position:absolute;left:.75rem;top:.75rem;background:var(--dps-secondary);color:#fff;font-size:.82rem;font-weight:700;padding:.2rem .65rem;border-radius:999px}
.tag-inline{position:static;display:inline-block;margin-bottom:1rem}
.stars{color:var(--dps-accent);letter-spacing:2px}

/* hero */
.hero{padding:calc(var(--dps-space)*.8) 0 var(--dps-space)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:4rem;align-items:center}
.lead{font-size:1.2em;color:var(--dps-muted)}
.hero-price{margin:1.25rem 0 1.5rem}
.hero-media{position:relative;display:block}
.hero-media::before{content:"";position:absolute;inset:1.5rem -1.25rem -1.25rem 1.5rem;background:var(--dps-accent);border-radius:calc(var(--dps-radius)*1.5)}
.hero-media img,.hero-media .ph{position:relative;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:calc(var(--dps-radius)*1.5);border:1px solid var(--dps-border);background:var(--dps-surface)}
@media (max-width:860px){.hero-grid{grid-template-columns:1fr;gap:2.5rem}.hero-media::before{inset:1rem -.6rem -.6rem 1rem}}
.ph{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;background:var(--dps-border);font:700 3rem var(--dps-head-font);color:var(--dps-muted)}

/* cards and grids */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.5rem}
.g3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.card,.tile,.quote,.cats a{background:var(--dps-surface);border:var(--dps-card-border);box-shadow:var(--dps-card-shadow);border-radius:var(--dps-radius)}
.card{display:flex;flex-direction:column;overflow:hidden}
.card-img{position:relative;display:block;overflow:hidden}
.card-img img,.card-img .ph{width:100%;aspect-ratio:4/3;object-fit:cover}
.card-body{display:flex;flex-direction:column;gap:.35rem;padding:1.1rem 1.25rem 1.25rem;flex:1}
.card h3{font-size:1.2rem;margin:0}
.card h3 a{color:inherit;text-decoration:none}
.card h3 a:hover{color:var(--dps-primary)}
.cat{font-size:.85rem;color:var(--dps-muted);margin:0}
.short{color:var(--dps-muted);margin:0;font-size:.95em}
.card-foot{margin-top:auto;padding-top:.8rem;display:flex;flex-direction:column;gap:.8rem}
.card-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.tile{padding:1.5rem}
.tile.plain{border-left:4px solid var(--dps-accent)}
.tile h3{margin-bottom:.35em}
.tile p{margin:0;color:var(--dps-muted)}
.ico{font-size:1.8rem;display:block;margin-bottom:.6rem}
.cats{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}
.cats a{display:flex;flex-direction:column;padding:1.2rem 1.4rem;text-decoration:none;color:var(--dps-text)}
.cats a:hover{border-color:var(--dps-primary)}
.cats span{color:var(--dps-muted);font-size:.9rem}
.quote{margin:0;padding:1.5rem}
.quote blockquote{margin:.5rem 0 1rem;font-size:1.05em}
.quote figcaption{display:flex;align-items:center;gap:.7rem;font-weight:700}
.quote img{width:44px;height:44px;border-radius:50%;object-fit:cover}

/* catalog */
.catalog h1,.product .crumbs{margin-top:1.2rem}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;font-size:.9rem;color:var(--dps-muted);margin-top:1.2rem}
.crumbs li+li::before{content:"/";margin-right:.4rem}
.crumbs a{color:inherit}
.filters{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}
.filters input,.filters select{min-height:44px;padding:.4rem .9rem;border:1px solid var(--dps-border);border-radius:var(--dps-radius);background:var(--dps-surface);color:var(--dps-text);font:inherit}
.filters input{flex:1 1 220px}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}
.chips a{display:inline-block;padding:.35rem 1rem;border:1px solid var(--dps-border);border-radius:999px;text-decoration:none;color:var(--dps-text);background:var(--dps-surface)}
.chips a[aria-current]{background:var(--dps-primary);border-color:var(--dps-primary);color:#fff}
.pager{margin:2.5rem 0 var(--dps-space);display:flex;justify-content:center}
.pager .page-numbers{display:inline-block;padding:.45rem .9rem;margin:0 .15rem;border:1px solid var(--dps-border);border-radius:var(--dps-radius);text-decoration:none;color:var(--dps-text);background:var(--dps-surface)}
.pager .current{background:var(--dps-primary);border-color:var(--dps-primary);color:#fff}
.empty{text-align:center;padding:4rem 1rem}

/* product page */
.pd-hero{padding:1rem 0 var(--dps-space)}
.pd-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:3.5rem;align-items:start}
.pd-main img,.pd-main .ph{width:100%;border-radius:calc(var(--dps-radius)*1.3);border:1px solid var(--dps-border);aspect-ratio:4/3;object-fit:cover}
.pd-thumbs{display:flex;gap:.6rem;margin-top:.8rem;flex-wrap:wrap}
.pd-thumbs button{padding:0;border:2px solid var(--dps-border);border-radius:calc(var(--dps-radius)*.7);overflow:hidden;cursor:pointer;background:none;width:76px}
.pd-thumbs button:hover{border-color:var(--dps-primary)}
.pd-thumbs img{aspect-ratio:1;object-fit:cover;width:100%}
.rating{display:flex;gap:.5rem;align-items:center;color:var(--dps-muted)}
.facts{list-style:none;display:flex;gap:2rem;margin-top:1.8rem;padding-top:1.2rem;border-top:1px solid var(--dps-border);flex-wrap:wrap}
.facts li{display:flex;flex-direction:column}
.facts span{color:var(--dps-muted);font-size:.9rem}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:3rem}
.ticks{list-style:none}
.ticks li{position:relative;padding:.45rem 0 .45rem 1.9rem;border-bottom:1px solid var(--dps-border)}
.ticks li::before{content:"";position:absolute;left:.15rem;top:.95rem;width:.9rem;height:.5rem;border-left:3px solid var(--dps-primary);border-bottom:3px solid var(--dps-primary);transform:rotate(-45deg) scale(.9)}
.ticks.bonus li::before{border-color:var(--dps-accent)}
.prose>*+*{margin-top:1em}
.prose img{border-radius:var(--dps-radius)}
.video{position:relative;aspect-ratio:16/9;margin-bottom:1rem;border-radius:var(--dps-radius);overflow:hidden}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.faq{border-bottom:1px solid var(--dps-border)}
.faq summary{cursor:pointer;font-weight:700;padding:1rem 0;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.4rem;line-height:1;color:var(--dps-primary)}
.faq[open] summary::after{content:"\2212"}
.faq p{color:var(--dps-muted)}
.final{background:var(--dps-secondary);color:#fff;border-radius:calc(var(--dps-radius)*1.5);padding:clamp(1.8rem,5vw,3.5rem);display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}
.final h2{margin-bottom:.3em;color:#fff}
.final p{margin:0;opacity:.85}
.buy-strip{padding:calc(var(--dps-space)*.5) 0}
.sticky-buy{display:none}
@media (max-width:860px){
	.pd-grid{grid-template-columns:1fr;gap:2rem}
	.sticky-buy{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 1.25rem calc(.7rem + env(safe-area-inset-bottom));background:var(--dps-surface);border-top:1px solid var(--dps-border)}
	.sticky-buy .price strong{font-size:1.2em}
	.product{padding-bottom:4.5rem}
	.single-dps_product .wa-float{bottom:5.5rem}
}

/* footer */
.site-footer{background:var(--dps-footer-bg);color:var(--dps-footer-text);margin-top:0}
.site-footer a{color:inherit}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem;padding:3.5rem 0 2rem}
.site-footer h3{font-size:1.05rem}
.flist{flex-direction:column;gap:.4rem}
.copy{border-top:1px solid rgba(128,128,128,.35);padding:1.2rem 0 1.5rem;font-size:.9rem;opacity:.85}
@media (max-width:760px){.foot-grid{grid-template-columns:1fr;gap:1.8rem}}
.wa-float{position:fixed;right:1rem;bottom:1rem;z-index:45;background:#25D366;color:#073B1E;font-weight:700;text-decoration:none;padding:.7rem 1.1rem;border-radius:999px;box-shadow:0 6px 18px rgba(0,0,0,.25)}

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