/**
Theme Name: PepDaddy Child
Theme URI: https://pepdaddy.shop/
Description: Child theme of Astra for PepDaddy.shop. All custom CSS lives here; the Astra parent is never edited.
Author: PepDaddy
Template: astra
Version: 0.5.5
Requires PHP: 7.4
Text Domain: pepdaddy-child
*/

/* ==========================================================================
   Brand tokens (purples/gold refined from logos by asset-prep pass)
   ========================================================================== */
:root{
  --pd-ink:#0a0119;          /* near-black, purple-tinted (sampled) */
  --pd-ink-2:#181030;        /* raised surface */
  --pd-purple:#7c3aed;       /* primary (vivid) */
  --pd-purple-dark:#401070;  /* brand deep violet (sampled dominant) */
  --pd-purple-light:#a374ff; /* accent */
  --pd-gold:#d4af37;         /* gold */
  --pd-paper:#f4f1fa;        /* primary text on dark */
  --pd-muted:#9b93ad;        /* secondary text */
  --pd-line:rgba(163,116,255,.18); /* hairline */
  --pd-radius:10px;
}

/* ==========================================================================
   Base + type
   ========================================================================== */
body,.ast-container{ background:var(--pd-ink); color:var(--pd-paper); font-family:'Inter',sans-serif; }
h1,h2,h3,h4,.site-title,.entry-title{ font-family:'Oswald',sans-serif; letter-spacing:.02em; text-transform:uppercase; }
a{ color:var(--pd-gold); }
a:hover{ color:var(--pd-purple-light); }

/* ==========================================================================
   Buttons (Astra + WooCommerce)
   ========================================================================== */
.ast-button,.button,.wp-block-button__link,
.woocommerce a.button,.woocommerce button.button,.woocommerce #respond input#submit{
  background:var(--pd-purple); color:#fff; border:1px solid var(--pd-purple);
  border-radius:var(--pd-radius); font-family:'Oswald',sans-serif; text-transform:uppercase;
  letter-spacing:.03em; transition:background .15s,border-color .15s,color .15s;
}
.ast-button:hover,.button:hover,.wp-block-button__link:hover,
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce #respond input#submit:hover{
  background:var(--pd-purple-dark); border-color:var(--pd-gold); color:var(--pd-gold);
}

/* ==========================================================================
   Header / footer surfaces — Astra's Customizer palette now paints the global
   background + text; only these panels still need their own dark treatment.
   ========================================================================== */
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post{ box-shadow:none; border:0; }

/* Header — colors/bg MOVED to Customizer › Header Builder (see deploy notes).
   Only non-color structural bits stay here. */
/* Sticky header — Astra-free has no sticky module; pin the whole header bar
   (desktop + mobile). z-index sits below overlays, above page content. */
header.site-header{ position:sticky; top:0; z-index:100; }
.site-header .custom-logo,.ast-site-identity .custom-logo{ max-height:58px; width:auto; }
.site-title a{ font-family:'Oswald',sans-serif; letter-spacing:.06em; }

/* Footer — bg/text/link colors MOVED to Customizer › Footer Builder. */

/* Footer legal block */
.pd-legal{ max-width:100%; margin:40px 0 0; padding:24px 16px; text-align:center; border-top:1px solid var(--pd-line); background:var(--pd-ink); }
.pd-ruo{ font-size:.8rem; color:var(--pd-muted); margin-bottom:8px; line-height:1.5; }
.pd-legal-links a{ margin:0 10px; font-size:.85rem; font-family:'Oswald',sans-serif; text-transform:uppercase; color:var(--pd-gold) !important; }

/* ==========================================================================
   Shop grid
   ========================================================================== */
.woocommerce ul.products li.product{ background:var(--pd-ink-2); border:1px solid var(--pd-line); border-radius:var(--pd-radius); padding:14px; transition:border-color .15s,transform .15s; }
.woocommerce ul.products li.product:hover{ border-color:var(--pd-gold); transform:translateY(-3px); }
.woocommerce ul.products li.product img{ border-radius:8px; margin-bottom:12px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title{ font-family:'Oswald',sans-serif; color:var(--pd-paper); font-size:1.05rem; }
.woocommerce ul.products li.product .button{ margin-top:8px; }
.woocommerce .woocommerce-result-count,.woocommerce .woocommerce-ordering select{ color:var(--pd-muted); }
.woocommerce .woocommerce-ordering select{ background:var(--pd-ink-2); border:1px solid var(--pd-line); }

/* ==========================================================================
   Single product
   ========================================================================== */
/* product_title color now from Customizer › Global › Colors › Headings. */
.single-product .woocommerce-variation-price .price,.single-product .price{ color:var(--pd-gold) !important; font-family:'Oswald',sans-serif; font-size:1.6rem; }
.single-product table.variations label{ font-family:'Oswald',sans-serif; text-transform:uppercase; color:var(--pd-paper); }
.single-product .product_meta{ color:var(--pd-muted); font-size:.85rem; }
.single-product .product_meta a{ color:var(--pd-purple-light); }
.pd-ruo-inline{ margin-top:14px; padding-top:12px; border-top:1px solid var(--pd-line); color:var(--pd-muted); font-size:.8rem; }
/* Back-to-Shop (single product, replaces hidden breadcrumb) — uses the store's
   standard .button style; only the wrapper spacing is custom. */
.pd-back{ margin:24px 0 22px; }

/* Add-to-cart: lock identical geometry/type across the variable-product
   disabled (pre-selection) and enabled states — only opacity should change. */
.single-product.woocommerce div.product form.cart .single_add_to_cart_button{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.03em; font-size:1rem; line-height:1.4; padding:12px 28px; }
.single-product.woocommerce div.product form.cart .single_add_to_cart_button.disabled,
.single-product.woocommerce div.product form.cart .single_add_to_cart_button:disabled{ opacity:.5; cursor:not-allowed; }

/* ==========================================================================
   Home hero
   ========================================================================== */
.pd-hero{ text-align:center; padding:40px 16px 64px; }
.pd-hero__img{ max-width:480px; width:100%; height:auto; margin:0 auto 22px; display:block; }
.pd-hero__tag{ font-family:'Oswald',sans-serif; font-style:italic; color:var(--pd-purple-light); font-size:1.35rem; letter-spacing:.02em; margin-bottom:26px; }
.pd-hero__cta{ font-size:1.15rem; padding:14px 38px; display:inline-block; }
.home .entry-title{ display:none; }

/* ==========================================================================
   Login gate (My Account, logged out)
   ========================================================================== */
.pd-gate{ text-align:center; max-width:520px; margin:0 auto 30px; }
.pd-gate__logo{ width:130px; height:auto; margin:0 auto 16px; display:block; }
.pd-gate__line{ color:var(--pd-muted); font-size:1.02rem; line-height:1.5; }
.woocommerce-account .woocommerce h2{ font-family:'Oswald',sans-serif; color:var(--pd-paper); text-transform:uppercase; }
.woocommerce form.login,.woocommerce form.register{ background:var(--pd-ink-2); border:1px solid var(--pd-line); border-radius:var(--pd-radius); padding:24px; }
.woocommerce-account label,.woocommerce-account .woocommerce-form__label{ color:var(--pd-paper); }
.woocommerce-account input[type=text],.woocommerce-account input[type=email],.woocommerce-account input[type=password]{ background:var(--pd-ink); border:1px solid var(--pd-line); color:var(--pd-paper); }
.pd-age-check span{ color:var(--pd-muted); font-size:.9rem; line-height:1.4; }

/* ==========================================================================
   Age gate modal (21+)
   ========================================================================== */
html.pd-age-locked{ overflow:hidden; }
.pd-age{ position:fixed; inset:0; z-index:99999; display:flex; align-items:center; justify-content:center; padding:20px; background:rgba(5,1,12,.86); backdrop-filter:blur(4px); }
.pd-age[hidden]{ display:none; } /* beat .pd-age's display:flex so hidden actually hides (also kills load flash for returning visitors) */
.pd-age__box{ width:100%; max-width:440px; text-align:center; background:var(--pd-ink-2); border:1px solid var(--pd-line); border-radius:var(--pd-radius); padding:32px 28px; box-shadow:0 18px 60px rgba(0,0,0,.6); }
.pd-age__logo{ width:96px; height:auto; margin:0 auto 18px; display:block; }
.pd-age__head{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.02em; color:var(--pd-paper); font-size:1.35rem; margin-bottom:12px; }
.pd-age__sub{ color:var(--pd-muted); font-size:.92rem; line-height:1.55; margin-bottom:24px; }
.pd-age__actions{ display:flex; flex-direction:column; gap:12px; align-items:stretch; }
.pd-age__yes{ font-size:1.05rem; padding:13px 24px; }
.pd-age__no{ background:none; border:1px solid var(--pd-line); color:var(--pd-muted); border-radius:var(--pd-radius); padding:11px 24px; font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.03em; cursor:pointer; transition:color .15s,border-color .15s; }
.pd-age__no:hover{ color:var(--pd-paper); border-color:var(--pd-purple-light); }

/* ==========================================================================
   Shop card polish — category removal + center alignment now via Customizer
   (WooCommerce › Product structure / alignment). Theme keeps only the
   price-hide (no native equiv) + minor spacing.
   ========================================================================== */
.woocommerce ul.products li.product .price{ display:none !important; }
.woocommerce ul.products li.product .astra-shop-summary-wrap{ padding-top:4px; }
/* Single product: hide the static price-range <p class="price"> (the PHP
   remove_action is re-added by Astra on live). The variation price still
   shows after an Amount is picked (it lives in .woocommerce-variation-price,
   not this direct-child paragraph). */
.single-product div.product > .summary > p.price{ display:none !important; }

/* ==========================================================================
   Nav submenus (dropdowns) — Astra paints these #fff / #f9f9f9; dark them
   to match the flyout. Covers desktop + header-break-point (mobile) menu.
   ========================================================================== */
.main-header-menu .sub-menu,
.ast-header-break-point .main-header-menu .sub-menu{ background:var(--pd-ink-2); background-color:var(--pd-ink-2); border:1px solid var(--pd-line); }
.main-header-menu .sub-menu a{ color:var(--pd-paper); }
.main-header-menu .sub-menu a:hover,
.main-header-menu .sub-menu .current-menu-item > a{ color:var(--pd-gold); background:var(--pd-ink); }
/* Sub-menu leaf items carry Astra's per-link arrow icon even though they have
   no children — hide it (misleading affordance); left padding stays as indent. */
.main-header-menu .sub-menu .menu-link > .ast-icon.icon-arrow,
.ast-mobile-popup-drawer .sub-menu .menu-link > .ast-icon.icon-arrow{ display:none !important; }
.woocommerce ul.products li.product .astra-shop-summary-wrap .woocommerce-loop-product__title{ margin-bottom:14px; }
/* Center the loop button on every breakpoint regardless of its display mode
   (Astra's mobile CSS doesn't honor the center-align setting for it). */
.woocommerce ul.products li.product .astra-shop-summary-wrap .button{ display:block; width:-moz-fit-content; width:fit-content; max-width:100%; margin-left:auto; margin-right:auto; float:none; }

/* ==========================================================================
   Mobile bottom bar (logged-in)
   ========================================================================== */
.pd-bottombar{ position:fixed; left:0; right:0; bottom:0; z-index:1000; display:none; background:var(--pd-ink-2); border-top:1px solid var(--pd-line); }
.pd-bottombar__item{ flex:1; display:flex; flex-direction:column; align-items:center; gap:3px; padding:8px 4px; background:none; border:0; cursor:pointer; color:var(--pd-muted); font-family:'Oswald',sans-serif; text-transform:uppercase; font-size:.62rem; letter-spacing:.04em; text-decoration:none; position:relative; }
.pd-bottombar__item svg{ width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
/* gold cue on hover + keyboard focus only (:focus-visible) — so a touch/mouse
   tap on the Cart <button> doesn't leave the gold stuck after the drawer closes. */
.pd-bottombar__item:hover,.pd-bottombar__item:focus-visible{ color:var(--pd-gold); }
/* Cart is a <button>; strip Astra's button bg/shadow in every state so it
   matches the Shop/Account links (gold text/icon only, no purple fill). */
.pd-bottombar button.pd-bottombar__item,
.pd-bottombar button.pd-bottombar__item:hover,
.pd-bottombar button.pd-bottombar__item:focus,
.pd-bottombar button.pd-bottombar__item:active{ background:none; box-shadow:none; border:0; }
.pd-bottombar button.pd-bottombar__item:hover,
.pd-bottombar button.pd-bottombar__item:focus-visible{ color:var(--pd-gold); }
.pd-cart-count{ position:absolute; top:2px; right:50%; margin-right:-22px; min-width:16px; height:16px; padding:0 4px; border-radius:8px; background:var(--pd-purple); color:#fff; font-size:.6rem; line-height:16px; text-align:center; }
/* Header cart icon is logged-in-only (guests can't shop; no drawer rendered). */
body:not(.logged-in) .ast-site-header-cart{ display:none; }
/* Mobile: bottom bar shows; header cart icon hides (bottom bar covers it). */
@media (max-width:921px){ .pd-bottombar{ display:flex; } body{ padding-bottom:60px; } .ast-site-header-cart{ display:none; } }

/* ==========================================================================
   Side-cart drawer (logged-in)
   ========================================================================== */
html.pd-cart-locked{ overflow:hidden; }
.pd-cart{ position:fixed; inset:0; z-index:9000; }
.pd-cart[hidden]{ display:none; }
.pd-cart__backdrop{ position:absolute; inset:0; background:rgba(5,1,12,.7); backdrop-filter:blur(3px); }
.pd-cart__panel{ position:absolute; top:0; right:0; height:100%; width:min(380px,86vw); z-index:9001; background:var(--pd-ink-2); border-left:1px solid var(--pd-line); display:flex; flex-direction:column; box-shadow:-16px 0 50px rgba(0,0,0,.5); }
.pd-cart__head{ display:flex; align-items:center; justify-content:space-between; padding:18px 20px; border-bottom:1px solid var(--pd-line); }
.pd-cart__title{ font-family:'Oswald',sans-serif; text-transform:uppercase; letter-spacing:.03em; color:var(--pd-paper); font-size:1.05rem; }
.pd-cart__close{ background:none; border:0; color:var(--pd-muted); font-size:1.6rem; line-height:1; cursor:pointer; }
.pd-cart__close:hover{ color:var(--pd-gold); }
.pd-cart__body{ flex:1; overflow-y:auto; padding:16px 20px; color:var(--pd-paper); }
.pd-cart__body a.button{ width:100%; text-align:center; margin-top:8px; }
.pd-cart__body .woocommerce-mini-cart__empty-message{ color:var(--pd-muted); }

/* ==========================================================================
   Classic cart + checkout ([woocommerce_cart] / [woocommerce_checkout]) —
   dark-theme the elements WooCommerce/Astra default to a light background
   (table headers, the totals heading, notices) so text stays readable.
   ========================================================================== */
.woocommerce table.shop_table thead th{ background:var(--pd-ink-2); color:var(--pd-paper); }
.woocommerce table.shop_table,
.woocommerce table.shop_table th,
.woocommerce table.shop_table td{ border-color:var(--pd-line); }
/* "Cart totals" / "Your order" headings — Astra gives these a white bg via a
   4-class selector (.cart-collaterals .cart_totals>h2) that outranks a plain
   .cart_totals h2. Match its specificity (body.class, no space — the woocommerce-cart
   class is ON body) and give it the dark bar. */
body.woocommerce-cart .cart-collaterals .cart_totals > h2,
body.woocommerce-cart .cart-collaterals .cross-sells > h2,
body.woocommerce-checkout #order_review_heading{ background-color:var(--pd-ink-2); color:var(--pd-paper); border-bottom-color:var(--pd-line); }
/* WooCommerce notices (Cart updated, coupon applied, errors) */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews{ background:var(--pd-ink-2); color:var(--pd-paper); border-top-color:var(--pd-gold); }
.woocommerce-message a,
.woocommerce-info a,
.woocommerce-error a{ color:var(--pd-gold); }
