/*
Theme Name: Pretty Psycho
Theme URI: https://prettypsycho.com
Author: Pretty Psycho
Description: Maximalist brooch storefront theme. Designed for WooCommerce: products, cart, checkout and accounts are all handled by WooCommerce pages.
Version: 2.0.2
Requires at least: 6.0
Requires PHP: 7.4
License: Proprietary
Text Domain: pretty-psycho
*/

:root{
  --radius:1rem;
  --background:oklch(0.97 0.018 328);--foreground:oklch(0.285 0.09 347.8);
  --card:oklch(1 0 0);
  --primary:oklch(0.285 0.09 347.8);--primary-foreground:oklch(0.93 0.06 225);
  --secondary:oklch(0.85 0.055 224);--secondary-foreground:oklch(0.285 0.09 347.8);
  --muted:oklch(0.93 0.025 329);--muted-foreground:oklch(0.46 0.055 332);
  --accent:oklch(0.88 0.085 344);
  --border:oklch(0.83 0.035 329);--input:oklch(0.82 0.04 329);--ring:oklch(0.45 0.105 347.8);
  --shadow-glossy:0 14px 35px color-mix(in oklab,var(--primary) 18%,transparent),inset 0 1px 0 oklch(1 0 0/50%);
  --font-display:"DM Serif Display",Georgia,serif;--font-sans:"Manrope",system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body.pp{margin:0;background:var(--background);color:var(--foreground);font-family:var(--font-sans);line-height:1.55;-webkit-font-smoothing:antialiased}
body.pp.no-scroll{overflow:hidden}
/* :where() keeps these resets at zero specificity so component classes can override them */
:where(.pp) :where(h1,h2,h3,h4,p,figure){margin:0}
:where(.pp) a{color:inherit;text-decoration:none}
:where(.pp) img{max-width:100%;height:auto;display:block}
.pp ::selection{background:var(--secondary);color:var(--secondary-foreground)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hp{position:absolute;left:-9999px;opacity:0}
[hidden]{display:none!important}
.icon{width:1.25rem;height:1.25rem;flex-shrink:0}.icon-sm{width:1rem;height:1rem}.icon-md{width:1.5rem;height:1.5rem}.icon-lg{width:2rem;height:2rem}.icon-xl{width:2.5rem;height:2.5rem}
.primary{color:var(--primary)}.muted{color:var(--muted-foreground)}.center{text-align:center}.bold{font-weight:700}.italic{font-style:italic}
.display{font-family:var(--font-display);font-weight:400}
.display i,.display em{font-style:italic}
.eyebrow{font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.eyebrow.primary{color:var(--primary)}.eyebrow.secondary,.eyebrow.on-dark{color:var(--secondary)}
.only-mobile{display:block}.only-desktop{display:none!important}
@media(min-width:768px){.only-mobile{display:none}.only-desktop{display:inline-flex!important}}

/* headings */
.h-xl{font-size:3.5rem;line-height:1;margin-top:.75rem}
.h-mid{font-size:3.25rem;line-height:1}
.h-sec{font-size:2.75rem;line-height:1.02;margin-top:.5rem}
.lead{line-height:.98}
@media(min-width:768px){.h-xl{font-size:6rem}.h-mid{font-size:4.5rem}.h-sec{font-size:4.25rem}}

/* ---------- buttons: theme + WooCommerce, one look ---------- */
.btn,
body.pp .woocommerce a.button,body.pp .woocommerce button.button,body.pp .woocommerce input.button,
body.pp .woocommerce #respond input#submit,body.pp a.button,body.pp button.button,body.pp input.button,
body.pp .wp-element-button,body.pp .wp-block-button__link,
body.pp .wc-block-components-button:not(.is-link),body.pp .wc-block-cart__submit-button,
body.pp .wc-block-components-checkout-place-order-button{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.75rem;padding:.6rem 1.5rem;
  border-radius:999px;border:1px solid transparent;font:800 .875rem/1.2 var(--font-sans);text-transform:none;
  cursor:pointer;text-align:center;transition:background .2s,color .2s,transform .2s,box-shadow .2s;
  background:var(--primary)!important;color:var(--primary-foreground)!important;
  box-shadow:inset 0 1px 0 oklch(1 0 0/35%),0 8px 20px color-mix(in oklab,var(--primary) 18%,transparent)
}
.btn:hover,body.pp .woocommerce a.button:hover,body.pp .woocommerce button.button:hover,body.pp .woocommerce input.button:hover,
body.pp a.button:hover,body.pp button.button:hover,body.pp .wp-element-button:hover,body.pp .wp-block-button__link:hover,
body.pp .wc-block-components-button:not(.is-link):hover{background:color-mix(in oklab,var(--primary) 82%,white)!important;color:var(--primary-foreground)!important;transform:translateY(-1px)}
.btn:focus-visible,.input:focus-visible,.select:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
.btn-secondary{background:var(--secondary)!important;color:var(--secondary-foreground)!important}
.btn-secondary:hover{background:color-mix(in oklab,var(--secondary) 88%,white)!important;color:var(--secondary-foreground)!important}
.btn-outline{background:transparent!important;color:var(--foreground)!important;border-color:var(--primary);box-shadow:none}
.btn-outline:hover{background:var(--accent)!important;color:var(--foreground)!important}
.btn-ghost{background:transparent!important;color:inherit!important;box-shadow:none}
.btn-ghost:hover{background:var(--accent)!important;color:var(--foreground)!important}
.btn-icon{width:2.75rem;height:2.75rem;padding:0}
.btn-round{border-radius:999px}
.btn-lg{min-height:3rem;padding:.6rem 2rem}.btn-xl{min-height:3.5rem;padding:.6rem 2rem;font-size:1rem}
.btn:disabled,body.pp .woocommerce button.button:disabled{opacity:.5;cursor:not-allowed}
.shine{position:relative;overflow:hidden}
.shine::after{content:"✦";position:absolute;right:12px;top:6px;font-size:10px;opacity:0;transform:scale(.4) rotate(-20deg);transition:.25s ease}
.shine:hover::after{opacity:1;transform:scale(1) rotate(0)}
.link-arrow{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;color:var(--primary)}
.link-arrow .icon{transition:transform .2s}.link-arrow:hover .icon{transform:translateX(4px)}

/* ---------- header / footer ---------- */
.site-header{position:sticky;top:var(--wp-admin--admin-bar--height,0px);z-index:40;border-bottom:1px solid color-mix(in oklab,var(--primary) 10%,transparent);background:color-mix(in oklab,var(--background) 95%,transparent);backdrop-filter:blur(8px)}
.header-inner{max-width:1440px;margin:0 auto;height:5rem;padding:0 1rem;display:flex;align-items:center;justify-content:space-between}
@media(min-width:768px){.header-inner{padding:0 2rem}}
.logo-link{display:block;overflow:hidden;border-radius:.5rem;line-height:0}
.logo-link img{width:7rem;height:3rem;object-fit:cover;object-position:center}
.nav-desktop{display:none;align-items:center;gap:2rem}
@media(min-width:768px){.nav-desktop{display:flex}}
.nav-desktop a{font-size:.875rem;font-weight:800;text-transform:uppercase;transition:color .2s}
.nav-desktop a:hover,.nav-desktop a.is-active{color:var(--primary);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
.cart-btn{position:relative}
.cart-count{position:absolute;right:0;top:0;display:grid;place-items:center;min-width:1.25rem;height:1.25rem;padding:0 .25rem;border-radius:999px;background:var(--secondary);color:var(--secondary-foreground);font-size:10px;font-weight:900}
.cart-count.is-zero{display:none}
.leopard{background-image:radial-gradient(ellipse at 30% 35%,oklch(0.18 0.06 332/35%) 0 8%,transparent 9%),radial-gradient(ellipse at 70% 65%,oklch(0.18 0.06 332/28%) 0 10%,transparent 11%);background-size:68px 54px,74px 62px}
.site-footer{background-color:var(--primary);color:var(--primary-foreground)}
.footer-grid{max-width:1440px;margin:0 auto;display:grid;gap:2.5rem;padding:3.5rem 1.5rem}
@media(min-width:768px){.footer-grid{grid-template-columns:1.5fr 1fr 1fr;padding:4rem 2.5rem}}
.footer-brand{font:italic 900 3rem/1 var(--font-display);color:var(--secondary)}
.footer-tag{margin-top:1rem;max-width:24rem;color:color-mix(in oklab,var(--primary-foreground) 80%,transparent)}
.site-footer .eyebrow{margin-bottom:1rem}
.footer-links{display:flex;flex-direction:column;gap:.75rem}
.footer-links a:hover,.footer-ig:hover{color:var(--secondary)}
.footer-ig{display:inline-flex;align-items:center;gap:.5rem}
.footer-bottom{border-top:1px solid color-mix(in oklab,var(--primary-foreground) 20%,transparent);padding:1.25rem 1.5rem;text-align:center;font-size:.75rem;color:color-mix(in oklab,var(--primary-foreground) 60%,transparent)}

/* ---------- layout ---------- */
.wrap{max-width:1440px;margin:0 auto}.wrap.narrow-s{max-width:48rem}
.sec{padding:4.5rem 1.25rem}
@media(min-width:768px){.sec{padding:6rem 2.5rem}}
.sec-bg{background:var(--background)}
.sec-primary{background-color:var(--primary);color:var(--primary-foreground)}
.sec-secondary{background:var(--secondary);color:var(--secondary-foreground)}
.sec-secondary-soft{background:color-mix(in oklab,var(--secondary) 55%,var(--background));color:var(--foreground)}
.page-hero{padding-top:4rem;padding-bottom:4rem}
.page-hero .lede{margin-top:1.25rem}
.lede{margin-top:1rem;max-width:34rem;font-size:1.0625rem;line-height:1.6}.lede.light{color:color-mix(in oklab,var(--primary-foreground) 78%,transparent)}
.lede-dark{margin-top:1.25rem;line-height:1.7;max-width:34rem}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.25rem;margin-bottom:3rem}
.sec-head-c{margin-bottom:3rem}
.gap-top{margin-top:3rem}
.grid-4-sq{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}
@media(min-width:768px){.grid-4-sq{grid-template-columns:repeat(4,1fr);gap:1rem}}
.sq{aspect-ratio:1;width:100%;border-radius:1rem;object-fit:cover}
.shadow{box-shadow:var(--shadow-glossy)}.rounded-xl{border-radius:1.5rem}
.page-content{max-width:1200px;margin:0 auto;padding:3.5rem 1.25rem 6rem}
@media(min-width:768px){.page-content{padding:4.5rem 2.5rem 7rem}}
.prose{margin-top:2rem;line-height:1.7}
.prose>*+*{margin-top:1rem}

/* hero / marquee / split */
.hero{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100svh - 5rem);padding:4rem 1.25rem;text-align:center;overflow:hidden}
.hero-logo{width:100%;max-width:48rem;border-radius:1.5rem;object-fit:cover;box-shadow:var(--shadow-glossy)}
.hero-tag{margin:2rem 0;font-size:2.25rem;line-height:1.1}
@media(min-width:768px){.hero-tag{font-size:3.75rem}}
.hero-star{position:absolute;left:8%;top:16%;width:2.25rem;height:2.25rem;color:var(--secondary)}
.hero-sparkle{position:absolute;right:9%;bottom:18%;width:3rem;height:3rem;color:var(--secondary)}
.marquee{overflow:hidden;padding:1rem 0}
.marquee-track{display:flex;width:max-content;white-space:nowrap;font-size:.875rem;font-weight:900;text-transform:uppercase;animation:marquee 24s linear infinite}
.marquee-track span{padding:0 1.5rem}
@keyframes marquee{to{transform:translateX(-50%)}}
.split{display:grid}
@media(min-width:1024px){.split{grid-template-columns:1fr 1fr}}
.split-img{width:100%;height:100%;min-height:480px;object-fit:cover}.split-img.tall{min-height:520px}
.split-text{display:flex;align-items:center;padding:4rem 1.5rem}
@media(min-width:768px){.split-text{padding:5rem 4rem}}
.split-inner{max-width:36rem}.split-inner .btn{margin-top:2.25rem}.split-inner .h-sec{margin-top:1rem}.split-inner .lede{font-size:1.125rem;line-height:1.7;margin-top:1.5rem}
.news-form{display:flex;flex-direction:column;gap:.75rem;max-width:36rem;margin:2.25rem auto 0}
@media(min-width:640px){.news-form{flex-direction:row}}
.news-ok{margin-top:1.25rem;font-weight:800}
.sec-secondary.center .icon-lg{margin:0 auto}.sec-secondary.center .lede{margin-left:auto;margin-right:auto}
.sec-secondary.center .h-sec{margin-top:1rem}

/* forms */
.input,.select,
body.pp .woocommerce form .form-row input.input-text,body.pp .woocommerce form .form-row textarea,body.pp .woocommerce form .form-row select,
body.pp .woocommerce-ordering select{font:600 1rem var(--font-sans);color:var(--foreground);background:var(--card);border:1px solid var(--input);border-radius:.75rem;padding:.7rem .9rem;width:100%}
.input-pill{border-radius:999px;padding:0 1.5rem;flex:1;height:3.5rem;background:var(--background);border-color:color-mix(in oklab,var(--secondary-foreground) 30%,transparent)}
.textarea{min-height:10rem;resize:vertical}
.field{display:block}.field>span{display:block;margin-bottom:.5rem;font-size:.75rem;font-weight:900;text-transform:uppercase}
.stack{display:grid;gap:1.25rem}
.error{color:oklch(0.56 0.22 25);font-weight:700;font-size:.875rem}
body.pp .woocommerce-ordering select{width:auto;padding:.6rem 2rem .6rem .9rem;font-size:.875rem;font-weight:700}

/* about / contact */
.about-grid{display:grid;gap:3rem;max-width:1200px;margin:0 auto}
@media(min-width:768px){.about-grid{grid-template-columns:1fr 1fr;gap:4rem}}
.about-text{display:flex;align-items:center}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin:2.25rem 0}
.value{border-radius:1rem;background:var(--secondary);color:var(--secondary-foreground);padding:1.25rem;text-align:center}.value .icon{margin:0 auto}.value p{margin-top:.5rem}
.contact-grid{max-width:1100px;margin:0 auto;display:grid;gap:3rem}
@media(min-width:1024px){.contact-grid{grid-template-columns:.8fr 1.2fr;gap:4rem}}
.contact-links{margin-top:2rem;display:grid;gap:1rem}.contact-links a{display:flex;align-items:center;gap:.75rem;font-weight:700}.contact-links a:hover{color:var(--primary)}
.card-form{border-radius:1.5rem;background:var(--card);box-shadow:var(--shadow-glossy);padding:1.5rem}
@media(min-width:768px){.card-form{padding:2.5rem}}
.contact-ok{display:grid;place-items:center;min-height:20rem;text-align:center}.contact-ok .icon{margin:0 auto}.contact-ok h2{margin-top:1rem;font-size:2.25rem}.contact-ok p{margin-top:.5rem}

/* ---------- WooCommerce ---------- */
.wc-wrap{max-width:1280px;margin:0 auto;padding:2.5rem 1.25rem 6rem}
@media(min-width:768px){.wc-wrap{padding:3rem 2.5rem 7rem}}
.woocommerce-breadcrumb{font-size:.75rem;font-weight:800;text-transform:uppercase;color:var(--muted-foreground);margin-bottom:2rem}
.woocommerce-breadcrumb a:hover{color:var(--primary)}
.woocommerce-products-header__title.page-title{font:400 3.5rem/1 var(--font-display);margin-bottom:2rem}
.woocommerce-result-count{float:left;margin:0 0 2rem;font-size:.875rem;font-weight:700;color:var(--muted-foreground);line-height:2.75rem}
.woocommerce-ordering{float:right;margin:0 0 2rem}

/* product grids (shop, home, related, shortcodes) */
.woocommerce ul.products,.woocommerce-page ul.products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem 1rem;margin:0;padding:0;list-style:none;clear:both}
@media(min-width:1024px){
  .woocommerce ul.products,.woocommerce-page ul.products{grid-template-columns:repeat(4,minmax(0,1fr));gap:3rem 1.75rem}
  .woocommerce ul.products.columns-3,.woocommerce-page ul.products.columns-3{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none!important;content:none}
.woocommerce ul.products li.product,.woocommerce-page ul.products li.product{float:none!important;width:auto!important;margin:0!important;padding:0;display:flex;flex-direction:column;position:relative;text-align:left}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link,.woocommerce ul.products li.product a.woocommerce-loop-category__link{display:block}
.woocommerce ul.products li.product a img{width:100%;aspect-ratio:1;object-fit:cover;margin:0 0 1rem;border-radius:1.25rem;box-shadow:var(--shadow-glossy);transition:transform .4s}
.woocommerce ul.products li.product:hover a img{transform:translateY(-3px)}
.woocommerce ul.products li.product .woocommerce-loop-product__title,.woocommerce ul.products li.product .woocommerce-loop-category__title{font:400 1.5rem/1.15 var(--font-display);padding:0;margin:0 0 .35rem;color:var(--foreground)}
.woocommerce ul.products li.product .woocommerce-loop-category__title .count{background:none;color:var(--muted-foreground);font:700 .875rem var(--font-sans)}
.woocommerce ul.products li.product .price,.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--primary);font-weight:800;font-size:1rem}
.woocommerce ul.products li.product .price{display:block;margin:0 0 1rem}
.woocommerce ul.products li.product .price del{opacity:.55;font-weight:600}.woocommerce ul.products li.product .price ins{background:none;text-decoration:none}
.woocommerce ul.products li.product .button{margin-top:auto;align-self:flex-start}
.woocommerce ul.products li.product .added_to_cart{margin-top:.75rem;font-size:.875rem;font-weight:800;color:var(--primary);text-decoration:underline}
.woocommerce span.onsale{position:absolute;left:.75rem;top:.75rem;right:auto;z-index:2;min-height:0;min-width:0;padding:.3rem .8rem;border-radius:999px;background:var(--primary);color:var(--primary-foreground);font-size:.75rem;font-weight:800;line-height:1.3;text-transform:uppercase}
.woocommerce nav.woocommerce-pagination{margin-top:3rem;text-align:center}
.woocommerce nav.woocommerce-pagination ul{border:0;display:inline-flex;gap:.4rem}
.woocommerce nav.woocommerce-pagination ul li{border:0;overflow:visible}
.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span{border-radius:999px;min-width:2.5rem;padding:.6rem .8rem;font-weight:800;color:var(--foreground)}
.woocommerce nav.woocommerce-pagination ul li span.current,.woocommerce nav.woocommerce-pagination ul li a:hover{background:var(--primary);color:var(--primary-foreground)}

/* single product */
.woocommerce div.product{display:grid;grid-template-columns:minmax(0,1fr);gap:2.5rem;position:relative}
@media(min-width:900px){.woocommerce div.product{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4rem}}
.woocommerce div.product div.images,.woocommerce div.product div.summary{float:none!important;width:auto!important;margin:0!important}
.woocommerce div.product div.images img{border-radius:1.5rem;box-shadow:var(--shadow-glossy)}
.woocommerce div.product div.images .flex-control-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin:.75rem 0 0;padding:0;list-style:none}
.woocommerce div.product div.images .flex-control-thumbs li{width:auto!important;float:none!important;margin:0!important}
.woocommerce div.product div.images .flex-control-thumbs img{border-radius:.75rem;box-shadow:none;opacity:.7;cursor:pointer}.woocommerce div.product div.images .flex-control-thumbs img.flex-active,.woocommerce div.product div.images .flex-control-thumbs img:hover{opacity:1}
.woocommerce div.product div.summary{align-self:start;position:static}
.woocommerce div.product .product_title{font:400 3rem/1 var(--font-display);margin:0 0 1rem}
@media(min-width:768px){.woocommerce div.product .product_title{font-size:3.75rem}}
.woocommerce div.product p.price,.woocommerce div.product span.price{display:block;font-size:1.5rem;font-weight:900;margin:0 0 1.5rem}
.woocommerce div.product .woocommerce-product-details__short-description{line-height:1.7;margin-bottom:2rem}
.woocommerce div.product .woocommerce-product-details__short-description p+p{margin-top:.75rem}
.woocommerce div.product form.cart{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin:0 0 2rem}
.woocommerce .quantity .qty{width:5rem;height:3.5rem;border:1px solid var(--input);border-radius:999px;background:var(--card);font:700 1rem var(--font-sans);text-align:center;color:var(--foreground)}
.woocommerce div.product form.cart .single_add_to_cart_button{flex:1;min-width:10rem;min-height:3.5rem;font-size:1rem;float:none;margin:0}
.woocommerce div.product .product_meta{display:grid;gap:.4rem;border-top:1px solid var(--border);padding-top:1.25rem;font-size:.875rem;color:var(--muted-foreground)}
.woocommerce div.product .product_meta .posted_in{display:none}
.woocommerce div.product .product_meta a{color:var(--primary);font-weight:700}
.woocommerce div.product .woocommerce-tabs,.woocommerce div.product .related,.woocommerce div.product .upsells{grid-column:1/-1;margin:0}
.woocommerce div.product .woocommerce-tabs ul.tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.25rem;padding:0;list-style:none;overflow:visible}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,.woocommerce div.product .woocommerce-tabs ul.tabs::after{display:none!important}
.woocommerce div.product .woocommerce-tabs ul.tabs li{margin:0;padding:0;border:0;border-radius:999px;background:var(--muted);box-shadow:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,.woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none!important}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{display:block;padding:.6rem 1.4rem;font-weight:800;font-size:.875rem;color:var(--foreground)}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{background:var(--primary)}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--primary-foreground)}
.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel{margin:0;padding:2rem;border-radius:1.5rem;background:var(--card);box-shadow:var(--shadow-glossy);line-height:1.7}
@media(min-width:768px){.woocommerce div.product .woocommerce-tabs .woocommerce-Tabs-panel{padding:2.5rem 3rem}}
.woocommerce div.product .woocommerce-Tabs-panel>h2:first-child{display:none}
.woocommerce div.product .woocommerce-Tabs-panel h2,.woocommerce div.product .woocommerce-Tabs-panel h3{font:400 1.75rem/1.2 var(--font-display);margin:1.5rem 0 .75rem}
.woocommerce div.product .woocommerce-Tabs-panel p+p{margin-top:1rem}
.woocommerce div.product .woocommerce-Tabs-panel ul{margin:.75rem 0 0;padding-left:1.25rem}
.woocommerce div.product .woocommerce-Tabs-panel li{margin:.25rem 0}
.woocommerce div.product .related>h2,.woocommerce div.product .upsells>h2{font:400 2.5rem/1.1 var(--font-display);margin:2rem 0 2rem}
.woocommerce div.product .related ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:1024px){.woocommerce div.product .related ul.products{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* notices */
.woocommerce-message,.woocommerce-info,.woocommerce-error{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 2rem;padding:1rem 1.5rem;list-style:none;border:0;border-left:4px solid var(--primary);border-radius:.75rem;background:var(--card);color:var(--foreground);box-shadow:var(--shadow-glossy)}
.woocommerce-message::before,.woocommerce-info::before,.woocommerce-error::before{display:none}
.woocommerce-message .button{order:2;margin:0!important}

/* cart + checkout (classic and block versions) */
.page-content .woocommerce,.page-content .wp-block-woocommerce-cart,.page-content .wp-block-woocommerce-checkout{margin-top:2rem}
.woocommerce table.shop_table{border:0;border-radius:1.5rem;background:var(--card);box-shadow:var(--shadow-glossy);border-collapse:separate;overflow:hidden}
.woocommerce table.shop_table th,.woocommerce table.shop_table td{padding:1rem 1.25rem;border-color:var(--border)}
.woocommerce-cart-form .product-thumbnail img{width:4.5rem;border-radius:.75rem}
.woocommerce .cart_totals,.woocommerce-checkout #order_review,.woocommerce .col2-set .col-1,.woocommerce .col2-set .col-2{padding:0}
.woocommerce .cart_totals h2,.woocommerce-checkout h3,.woocommerce-billing-fields h3{font:400 2rem/1.1 var(--font-display);margin:2rem 0 1rem}
.wc-block-components-product-name,.wc-block-cart-item__product a,.wc-block-components-title{font-family:var(--font-display)!important;font-weight:400!important;color:var(--foreground)!important}
.wc-block-components-totals-item__value,.wc-block-formatted-money-amount{color:var(--foreground)}
.wc-block-components-sidebar-layout{gap:2.5rem}
.wc-block-cart__main,.wc-block-checkout__main{padding-right:0}
.wc-block-grid__products{gap:1.5rem}
.wc-block-grid__product-title{font-family:var(--font-display)!important;font-weight:400!important;font-size:1.25rem!important;text-transform:none!important}
.wc-block-grid__product-image img{border-radius:1rem}
.wc-block-components-text-input input,.wc-block-components-select .wc-block-components-select__select{border-radius:.75rem!important;border-color:var(--input)!important}
.wc-block-components-notice-banner{border-radius:.75rem}
.wp-block-woocommerce-empty-cart-block h2,.wc-block-cart__empty-cart__title{font-family:var(--font-display)!important;font-weight:400!important}

/* drawer (mobile menu) */
.overlay{position:fixed;inset:0;z-index:50;background:oklch(0 0 0/70%);opacity:0;transition:opacity .25s}.overlay.is-open{opacity:1}
.drawer{position:fixed;top:0;bottom:0;z-index:60;display:flex;flex-direction:column;padding:1.5rem;background:var(--background);color:var(--foreground);box-shadow:0 0 40px oklch(0 0 0/30%);transition:transform .3s ease;visibility:hidden}
.drawer.is-open{transform:none;visibility:visible}
.drawer-left{left:0;width:86%;max-width:24rem;transform:translateX(-100%);background:var(--secondary)}
.drawer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.drawer-title{font:400 1.875rem/1.1 var(--font-display)}.drawer-sub{margin-top:.25rem;font-size:.875rem;color:var(--muted-foreground)}
.drawer-left .drawer-title,.drawer-left .drawer-sub{color:var(--secondary-foreground)}
.menu-links{margin-top:2.5rem;display:flex;flex-direction:column}
.menu-links a{border-bottom:1px solid color-mix(in oklab,var(--secondary-foreground) 20%,transparent);padding:1.25rem 0;font:400 1.875rem var(--font-display);color:var(--secondary-foreground)}

.notfound{display:grid;place-items:center;min-height:70vh;padding:0 1.5rem;text-align:center;background:var(--secondary)}.nf-num{font:900 6rem/1 var(--font-display);color:var(--primary)}.notfound h1{font-size:2.25rem;margin:.5rem 0 1.5rem}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* category cards: tidy placeholder when a category has no image */
.woocommerce ul.products li.product-category a img[src*="placeholder"]{object-fit:contain;background:var(--muted);padding:2rem}
