/*
Theme Name: PHARMA SAM
Theme URI: https://pharma-sam.com/
Author: PHARMA SAM
Author URI: https://pharma-sam.com/
Description: Thème WooCommerce sur mesure pour la pharmacie PHARMA SAM (Aïn Benian). Identité vert pharmacie, fiche produit avec galerie carrousel, accordéons et avis, bloc "vraie pharmacie", bouton WhatsApp flottant et intégration commande WhatsApp. Prêt pour le marché algérien (paiement à la livraison, 58 wilayas).
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pharma-sam
Tags: e-commerce, woocommerce, custom-colors, custom-logo, custom-menu, featured-images, translation-ready, rtl-language-support
WC requires at least: 6.0
WC tested up to: 9.0
*/

:root{
  --pine:#12503A;
  --pine-deep:#0C3A29;
  --pine-soft:#2C6C51;
  --sage:#7BA894;
  --sage-line:#C4D9CE;
  --mist:#EAF1EC;
  --mist-2:#F2F7F3;
  --paper:#FBFCFA;
  --ink:#1D2622;
  --ink-soft:#556059;
  --wa:#25D366;
  --wa-deep:#128C7E;
  --gold:#B98A3E;
  --line:#DDE7E1;
  --radius:14px;
  --shadow-sm:0 1px 2px rgba(12,58,41,.06),0 6px 20px rgba(12,58,41,.05);
  --shadow-md:0 10px 40px rgba(12,58,41,.10);
  --maxw:1200px;
  --font-body:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-display:"Fraunces",Georgia,"Times New Roman",serif;
}

/* ---------- Base ---------- */
*{box-sizing:border-box}
body{
  margin:0;font-family:var(--font-body);color:var(--ink);background:var(--paper);
  line-height:1.6;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--pine);text-decoration:none;transition:color .2s}
a:hover{color:var(--pine-deep)}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.14;letter-spacing:-.01em;color:var(--pine-deep);margin:0 0 .5em}
p{margin:0 0 1em}
button{font-family:inherit;cursor:pointer}
.ps-wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.ps-eyebrow{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--sage);font-weight:600}
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden}
:focus-visible{outline:2.5px solid var(--pine-soft);outline-offset:3px;border-radius:4px}

.ps-btn{display:inline-flex;align-items:center;gap:9px;background:var(--pine);color:#fff;padding:13px 24px;border-radius:100px;font-weight:600;font-size:.95rem;border:none;transition:background .2s,transform .15s}
.ps-btn:hover{background:var(--pine-deep);color:#fff;transform:translateY(-1px)}
.ps-btn--ghost{background:transparent;color:var(--pine);border:1.5px solid var(--sage-line)}
.ps-btn--ghost:hover{background:var(--mist);color:var(--pine-deep)}
.ps-btn--wa{background:var(--wa);box-shadow:0 6px 18px rgba(37,211,102,.28)}
.ps-btn--wa:hover{background:var(--wa-deep);color:#fff}
.ps-btn svg{width:18px;height:18px}

/* ---------- Top line ---------- */
.ps-topline{background:var(--pine-deep);color:#DCEAE1;font-size:.78rem;letter-spacing:.02em}
.ps-topline .ps-wrap{display:flex;justify-content:center;gap:26px;padding:8px 24px;flex-wrap:wrap}
.ps-topline span{display:inline-flex;align-items:center;gap:7px}
.ps-topline svg{width:14px;height:14px;stroke:var(--sage);fill:none;stroke-width:1.6}

/* ---------- Header ---------- */
.ps-header{position:sticky;top:0;z-index:200;background:rgba(251,252,250,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.ps-header .ps-wrap{display:flex;align-items:center;justify-content:space-between;height:74px;gap:20px}
.ps-brand{display:flex;align-items:center;gap:12px}
.ps-brand img{height:42px;width:auto}
.ps-brand .ps-wm{display:flex;flex-direction:column;line-height:1}
.ps-brand .ps-wm b{font-size:1.02rem;letter-spacing:.32em;color:var(--pine);font-weight:600}
.ps-brand .ps-wm small{font-size:.55rem;letter-spacing:.4em;color:var(--sage);margin-top:4px}
.ps-menu{display:none}
.ps-nav-cta{display:flex;align-items:center;gap:12px}
.ps-loc{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--pine);background:var(--mist);padding:8px 12px;border-radius:100px;font-weight:600}
.ps-loc svg{width:14px;height:14px;stroke:var(--pine);fill:none;stroke-width:1.7}
.ps-cart-link{position:relative;display:inline-flex;color:var(--pine)}
.ps-cart-link svg{width:24px;height:24px;stroke:var(--pine);fill:none;stroke-width:1.6}
.ps-cart-count{position:absolute;top:-8px;right:-10px;background:var(--wa);color:#fff;font-size:.68rem;font-weight:700;min-width:18px;height:18px;border-radius:100px;display:flex;align-items:center;justify-content:center;padding:0 4px}
.ps-burger{display:flex;width:44px;height:44px;border:1px solid var(--line);border-radius:10px;background:#fff;align-items:center;justify-content:center}
.ps-burger svg{width:22px;height:22px;stroke:var(--pine);stroke-width:2;fill:none}

/* mobile drawer */
.ps-drawer{position:fixed;inset:0 0 0 auto;width:min(84vw,340px);background:var(--paper);z-index:400;transform:translateX(100%);transition:transform .3s ease;box-shadow:var(--shadow-md);padding:26px;overflow-y:auto}
.ps-drawer.open{transform:translateX(0)}
.ps-drawer .close{position:absolute;top:18px;right:18px;background:none;border:none;font-size:1.6rem;color:var(--pine)}
.ps-drawer ul{list-style:none;margin:40px 0 0;padding:0}
.ps-drawer li{border-bottom:1px solid var(--line)}
.ps-drawer a{display:block;padding:15px 4px;color:var(--pine-deep);font-weight:500}

/* Drawer collections accordion */
.ps-drawer-collections{margin-top:8px}
.ps-drawer-title{display:block;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--sage);margin:0 0 4px;padding:0 4px}
.ps-acc--nav{border-top:none}
.ps-acc--nav .ps-acc-item{border-bottom:1px solid var(--line)}
.ps-acc--nav .ps-acc-head{padding:14px 4px;font-family:var(--font-body);font-size:.98rem;font-weight:600;color:var(--pine-deep)}
.ps-acc--nav .ps-acc-head--link{justify-content:flex-start}
.ps-acc--nav .ps-acc-ic{width:22px;height:22px}
.ps-acc--nav .ps-acc-panel .inner{display:flex;flex-direction:column;padding:0 4px 16px 14px}
.ps-acc--nav .ps-acc-panel a{padding:9px 0;color:var(--ink-soft);font-size:.92rem;font-weight:500;border:none}
.ps-acc--nav .ps-acc-panel a:hover{color:var(--pine)}
.ps-acc--nav .ps-acc-panel a.ps-acc-sub{padding-left:14px;font-size:.88rem;color:var(--sage)}
.ps-acc--nav .ps-acc-all{color:var(--pine)!important;font-weight:700!important;border-bottom:1px dashed var(--sage-line);padding-bottom:12px!important;margin-bottom:4px}
.ps-overlay{position:fixed;inset:0;background:rgba(12,58,41,.4);z-index:390;opacity:0;visibility:hidden;transition:.3s}
.ps-overlay.open{opacity:1;visibility:visible}

/* ---------- Header desktop nav: pages + "Nos collections" ---------- */
.ps-primary-nav{display:flex;align-items:center;gap:4px}

/* Page links (Accueil, Boutique, Notre pharmacie, …) */
.ps-menu li{position:relative}
.ps-menu > li > a{display:inline-flex;align-items:center;padding:10px 14px;font-family:var(--font-body);font-weight:600;font-size:.92rem;color:var(--pine-deep);border-radius:100px;transition:background .2s,color .2s}
.ps-menu > li > a:hover{background:var(--mist);color:var(--pine)}
.ps-menu > li.current-menu-item > a,.ps-menu > li.current_page_item > a{color:var(--pine)}
.ps-menu .sub-menu{position:absolute;top:calc(100% + 8px);left:0;min-width:210px;list-style:none;margin:0;padding:8px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md);opacity:0;visibility:hidden;transform:translateY(-6px);transition:.2s;z-index:250}
.ps-menu li:hover > .sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
.ps-menu .sub-menu a{display:block;padding:9px 12px;border-radius:8px;font-size:.9rem;font-weight:500;color:var(--ink-soft)}
.ps-menu .sub-menu a:hover{background:var(--mist);color:var(--pine)}

/* "Nos collections" trigger — same look as the page links */
.ps-collections{position:relative;display:none}
.ps-collections-trigger{display:inline-flex;align-items:center;gap:8px;background:none;color:var(--pine-deep);border:none;padding:10px 14px;border-radius:100px;font-family:var(--font-body);font-weight:600;font-size:.92rem;line-height:1;cursor:pointer;transition:background .2s,color .2s}
.ps-collections-trigger:hover{background:var(--mist);color:var(--pine)}
.ps-collections-trigger .ps-collections-ico{width:16px;height:16px;stroke:var(--pine);fill:none;stroke-width:1.8;flex-shrink:0}
.ps-collections-trigger .ps-collections-chev{width:15px;height:15px;stroke:var(--pine-soft);fill:none;stroke-width:2;flex-shrink:0;transition:transform .25s}
.ps-collections-trigger[aria-expanded="true"]{background:var(--pine);color:#fff}
.ps-collections-trigger[aria-expanded="true"] .ps-collections-ico{stroke:#fff}
.ps-collections-trigger[aria-expanded="true"] .ps-collections-chev{stroke:#fff;transform:rotate(180deg)}
.ps-collections-menu{position:absolute;top:calc(100% + 12px);right:0;width:340px;max-height:min(74vh,580px);overflow-y:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:6px 18px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s ease,transform .2s ease,visibility .2s;z-index:250}
.ps-collections.open .ps-collections-menu{opacity:1;visibility:visible;transform:translateY(0)}
.ps-collections-menu .ps-acc--nav .ps-acc-item:last-child{border-bottom:none}

@media(min-width:992px){
  .ps-menu{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0}
  .ps-collections{display:block}
  .ps-burger{display:none}
}

/* ---------- Trust bar ---------- */
.ps-trustbar{background:var(--mist);border-bottom:1px solid var(--line)}
.ps-trustbar .ps-wrap{display:flex;justify-content:center;gap:40px;padding:12px 24px;flex-wrap:wrap;font-size:.83rem;color:var(--pine-deep);font-weight:500}
.ps-trustbar span{display:inline-flex;align-items:center;gap:8px}
.ps-trustbar svg{width:16px;height:16px;stroke:var(--pine);fill:none;stroke-width:1.7}

/* ---------- Hero ---------- */
.ps-hero{position:relative;overflow:hidden;background:linear-gradient(160deg,var(--mist-2),var(--mist))}
.ps-hero .ps-wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;padding:76px 24px}
.ps-hero-badge{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--sage-line);color:var(--pine);padding:8px 15px;border-radius:100px;font-size:.78rem;font-weight:600;margin-bottom:22px}
.ps-hero-badge svg{width:15px;height:15px;stroke:var(--pine);fill:none;stroke-width:1.8}
.ps-hero h1{font-size:3.1rem;line-height:1.08;margin-bottom:18px}
.ps-hero h1 em{font-style:italic;color:var(--pine-soft)}
.ps-hero p{font-size:1.08rem;color:var(--ink-soft);max-width:44ch;margin-bottom:28px}
.ps-hero-cta{display:flex;gap:14px;flex-wrap:wrap}
.ps-hero-visual{position:relative;aspect-ratio:1/1;background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;overflow:hidden}
.ps-hero-visual img{width:62%;opacity:.96}
.ps-hero-visual::before{content:"";position:absolute;width:150%;height:150%;background:radial-gradient(circle at 50% 40%,rgba(123,168,148,.16),transparent 60%)}

/* ---------- Section shell ---------- */
.ps-section{padding:72px 0}
.ps-section-head{text-align:center;max-width:600px;margin:0 auto 46px}
.ps-section-head .ps-eyebrow{display:block;margin-bottom:12px}
.ps-section-head h2{font-size:2.2rem}
.ps-section-head p{color:var(--ink-soft)}

/* ---------- Category grid ---------- */
.ps-cats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.ps-cats .cat{position:relative;display:block;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:var(--mist-2);aspect-ratio:3/4}
.ps-cats .cat img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.ps-cats .cat:hover img{transform:scale(1.05)}
.ps-cats .cat .lbl{position:absolute;inset:auto 0 0 0;padding:22px 18px 18px;background:linear-gradient(transparent,rgba(12,58,41,.82));color:#fff}
.ps-cats .cat .lbl b{font-family:var(--font-display);font-size:1.15rem;display:block}
.ps-cats .cat .lbl span{font-size:.8rem;opacity:.85}

/* Home featured products use WooCommerce .products grid (styled below) */
.ps-featured{padding-top:0}

/* ---------- Pharmacy band ---------- */
.ps-pharmacy{position:relative;overflow:hidden;background:var(--pine-deep);color:#DFEAE3}
.ps-pharmacy .watermark{position:absolute;right:-40px;top:50%;transform:translateY(-50%);width:340px;opacity:.06;pointer-events:none}
.ps-pharmacy .ps-wrap{display:grid;grid-template-columns:1.1fr 1fr;gap:50px;padding:66px 24px;align-items:center;position:relative;z-index:2}
.ps-seal{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(199,217,206,.35);border-radius:100px;padding:8px 16px;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);font-weight:600;margin-bottom:22px}
.ps-seal svg{width:16px;height:16px;stroke:var(--sage);fill:none;stroke-width:1.6}
.ps-pharmacy h2{font-size:2.05rem;color:#fff}
.ps-pharmacy p{color:#BFD3C8;line-height:1.7;margin-bottom:26px;max-width:46ch}
.ps-facts{display:flex;flex-direction:column;gap:14px;margin-bottom:28px}
.ps-facts .f{display:flex;gap:12px;align-items:flex-start;font-size:.92rem}
.ps-facts svg{width:19px;height:19px;stroke:var(--sage);fill:none;stroke-width:1.6;flex-shrink:0;margin-top:2px}
.ps-facts b{color:#fff}
.ps-facts small{color:#AEC6B9;display:block;font-size:.83rem}
.ps-pharm-actions{display:flex;gap:12px;flex-wrap:wrap}
.ps-pharmacy .ps-btn--ghost{color:#fff;border-color:rgba(199,217,206,.4)}
.ps-pharmacy .ps-btn--ghost:hover{background:rgba(255,255,255,.08);color:#fff}
.ps-mapcard{background:#0A3324;border:1px solid rgba(199,217,206,.2);border-radius:18px;overflow:hidden;box-shadow:var(--shadow-md)}
.ps-mapvis{height:230px;position:relative;background:radial-gradient(circle at 30% 40%,rgba(123,168,148,.18),transparent 55%),linear-gradient(135deg,#0E3D2B,#0A3324)}
.ps-mapvis .grid{position:absolute;inset:0;width:100%;height:100%;opacity:.5}
.ps-pin{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);text-align:center}
.ps-pin .drop{width:34px;height:34px;margin:0 auto;background:var(--wa);border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 6px 20px rgba(37,211,102,.5);display:flex;align-items:center;justify-content:center;animation:ps-bob 2.4s ease-in-out infinite}
.ps-pin .drop::after{content:"";width:11px;height:11px;background:#fff;border-radius:50%}
.ps-pin small{display:block;margin-top:14px;font-size:.76rem;color:#DFEAE3;font-weight:600}
@keyframes ps-bob{0%,100%{transform:rotate(-45deg) translateY(0)}50%{transform:rotate(-45deg) translateY(-6px)}}
.ps-mapfoot{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.ps-mapfoot b{color:#fff;font-size:.92rem}
.ps-mapfoot small{color:#9FBBAD;font-size:.78rem}
.ps-mapfoot a{color:var(--wa);font-size:.85rem;font-weight:600;display:inline-flex;align-items:center;gap:6px}
.ps-mapfoot a svg{width:15px;height:15px;stroke:var(--wa);fill:none;stroke-width:2}

/* ---------- Footer ---------- */
.ps-footer{background:var(--pine-deep);color:#BFD3C8;padding:60px 0 26px;margin-top:20px}
.ps-foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:44px;padding-bottom:38px;border-bottom:1px solid rgba(199,217,206,.16)}
.ps-foot-lockup{display:inline-flex;align-items:center;gap:12px;margin-bottom:18px}
.ps-foot-lockup img{width:50px;height:auto;filter:brightness(0) invert(1);opacity:.92}
.ps-foot-wm{display:flex;flex-direction:column;line-height:1}
.ps-foot-wm b{font-size:1.05rem;letter-spacing:.3em;color:#fff;font-weight:600}
.ps-foot-wm small{font-size:.56rem;letter-spacing:.42em;color:var(--sage);margin-top:5px}
.ps-foot-brand p{font-size:.9rem;line-height:1.65;max-width:34ch;color:#AEC6B9}
.ps-foot-col h4{color:#fff;font-family:var(--font-body);font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:16px}
.ps-foot-col ul{list-style:none;margin:0;padding:0}
.ps-foot-col a{display:block;color:#AEC6B9;font-size:.9rem;margin-bottom:11px}
.ps-foot-col a:hover{color:#fff}
.ps-foot-col .row{display:flex;gap:9px;align-items:flex-start;margin-bottom:12px;font-size:.9rem;color:#AEC6B9}
.ps-foot-col .row svg{width:16px;height:16px;stroke:var(--sage);fill:none;stroke-width:1.7;flex-shrink:0;margin-top:3px}
.ps-foot-social{display:flex;gap:10px;margin-top:6px}
.ps-foot-social a{width:38px;height:38px;border-radius:50%;border:1px solid rgba(199,217,206,.3);display:flex;align-items:center;justify-content:center}
.ps-foot-social svg{width:17px;height:17px;stroke:#DFEAE3;fill:none;stroke-width:1.7}
.ps-foot-social a:hover{background:rgba(255,255,255,.08)}
.ps-foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:22px;flex-wrap:wrap;gap:12px;font-size:.8rem;color:#8FA99C}
.ps-chip{background:rgba(255,255,255,.07);padding:5px 11px;border-radius:6px;font-size:.72rem;font-weight:600;color:#DFEAE3;margin-left:8px}

/* ---------- Floating WhatsApp ---------- */
.ps-wafloat{position:fixed;right:22px;bottom:22px;z-index:300;display:flex;align-items:center;gap:0}
.ps-wafloat .bubble{background:#fff;color:var(--pine-deep);font-size:.82rem;font-weight:600;padding:11px 16px;border-radius:100px 0 0 100px;box-shadow:var(--shadow-md);white-space:nowrap;overflow:hidden;transition:all .3s}
.ps-wafloat .btn{width:60px;height:60px;border-radius:50%;background:var(--wa);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(37,211,102,.45);flex-shrink:0;animation:ps-pulse 2.6s infinite}
.ps-wafloat .btn svg{width:32px;height:32px;fill:#fff}
@keyframes ps-pulse{0%{box-shadow:0 8px 24px rgba(37,211,102,.45),0 0 0 0 rgba(37,211,102,.5)}70%{box-shadow:0 8px 24px rgba(37,211,102,.45),0 0 0 16px rgba(37,211,102,0)}100%{box-shadow:0 8px 24px rgba(37,211,102,.45),0 0 0 0 rgba(37,211,102,0)}}
@media(max-width:640px){
  .ps-wafloat{right:14px;bottom:16px}
  .ps-wafloat .bubble{font-size:.76rem;padding:9px 13px}
  .ps-wafloat .btn{width:54px;height:54px}
  .ps-wafloat .btn svg{width:28px;height:28px}
}

/* ============================================================
   WooCommerce
   ============================================================ */
.woocommerce .ps-wrap{}
.woocommerce-breadcrumb{max-width:var(--maxw);margin:22px auto 4px;padding:0 24px;font-size:.8rem;color:var(--ink-soft)}
.woocommerce-breadcrumb a{color:var(--ink-soft)}
.woocommerce-breadcrumb a:hover{color:var(--pine)}

/* Notices */
.woocommerce-message,.woocommerce-info,.woocommerce-error{border-top-color:var(--pine)!important;background:var(--mist)!important;border-radius:10px;font-size:.9rem}
.woocommerce-message::before,.woocommerce-info::before{color:var(--pine)!important}
.woocommerce #respond input#submit,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce a.button.alt,.woocommerce button.button.alt{
  background:var(--pine)!important;color:#fff!important;border-radius:100px!important;font-weight:600!important;
  padding:12px 24px!important;border:none!important;transition:background .2s,transform .15s!important;
}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover{background:var(--pine-deep)!important;transform:translateY(-1px)}

/* Shop / archive header */
.woocommerce-products-header{text-align:center;padding:44px 0 8px}
.woocommerce-products-header__title{font-size:2.3rem}
.term-description{max-width:60ch;margin:8px auto 0;color:var(--ink-soft);text-align:center}
.woocommerce .woocommerce-result-count{color:var(--ink-soft);font-size:.85rem}
.woocommerce .woocommerce-ordering select{border:1.5px solid var(--line);border-radius:8px;padding:8px 12px;font-family:inherit}

/* Product grid cards */
.woocommerce ul.products{display:grid!important;grid-template-columns:repeat(4,1fr);gap:24px;margin:24px 0!important}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none!important}
.woocommerce ul.products li.product{width:auto!important;margin:0!important;float:none!important;
  background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;padding:14px!important;
  transition:transform .2s,box-shadow .25s;display:flex;flex-direction:column;position:relative;text-align:left}
.woocommerce ul.products li.product:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.woocommerce ul.products li.product a img{border-radius:10px;background:var(--mist-2);margin-bottom:12px}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-family:var(--font-display);font-size:1.02rem!important;color:var(--pine-deep);padding:0!important;font-weight:600}
.woocommerce ul.products li.product .price{color:var(--pine-deep)!important;font-weight:700;font-family:var(--font-display);font-size:1.05rem;margin-top:auto}
.woocommerce ul.products li.product .price del{color:var(--ink-soft);font-weight:400;opacity:.7;font-size:.9rem}
.woocommerce ul.products li.product .price ins{text-decoration:none}
.woocommerce ul.products li.product .star-rating{margin:6px 0;font-size:.8em;color:var(--gold)}
.woocommerce span.onsale{background:var(--pine)!important;color:#fff!important;border-radius:100px;min-height:auto;min-width:auto;padding:5px 11px;font-size:.72rem;font-weight:700;top:18px;left:18px;margin:0}
.woocommerce ul.products li.product .button{margin-top:12px!important;text-align:center;font-size:.85rem!important;padding:10px 16px!important}

/* ---------- Single product ---------- */
.single-product div.product{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;
  max-width:var(--maxw);margin:12px auto 40px;padding:0 24px;
}
.single-product div.product .woocommerce-product-gallery{width:100%!important;float:none!important;margin:0!important;position:sticky;top:96px;align-self:start}
.single-product div.product .woocommerce-product-gallery__wrapper{border-radius:var(--radius);overflow:hidden}
.single-product div.product .woocommerce-product-gallery img{border-radius:var(--radius);background:var(--mist-2)}
.single-product .flex-control-thumbs{display:flex!important;gap:12px;margin-top:14px;padding:0!important}
.single-product .flex-control-thumbs li{width:auto!important;flex:1;margin:0!important}
.single-product .flex-control-thumbs img{border:1.5px solid var(--line);border-radius:10px;opacity:.7;transition:.2s}
.single-product .flex-control-thumbs img.flex-active,.single-product .flex-control-thumbs img:hover{opacity:1;border-color:var(--pine)}
.single-product div.product .summary{width:100%!important;float:none!important;margin:0!important;padding-top:6px}
.single-product .product_title{font-size:2.3rem;margin:8px 0 12px}
.single-product .woocommerce-product-rating{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.single-product .woocommerce-product-rating .star-rating{color:var(--gold)}
.single-product .woocommerce-review-link{color:var(--ink-soft);font-size:.85rem}
.single-product div.product p.price,.single-product div.product span.price{
  color:var(--pine-deep)!important;font-family:var(--font-display);font-size:2rem;font-weight:600;margin-bottom:6px}
.single-product div.product p.price del{font-size:1.1rem;color:var(--ink-soft);font-weight:400}
.single-product div.product p.price ins{text-decoration:none}
.single-product .woocommerce-product-details__short-description{color:var(--ink-soft);line-height:1.68;margin:18px 0 22px}
.single-product .stock.in-stock{display:inline-flex;align-items:center;gap:8px;color:var(--pine);font-weight:600;font-size:.9rem}
.single-product .stock.in-stock::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--wa);box-shadow:0 0 0 4px rgba(37,211,102,.18)}

.single-product form.cart{margin:22px 0 6px!important;display:flex;gap:12px;align-items:stretch;flex-wrap:wrap}
.single-product form.cart .quantity{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:12px;overflow:hidden}
.single-product form.cart .quantity .ps-qtybtn{width:44px;height:52px;border:none;background:#fff;color:var(--pine);font-size:1.3rem}
.single-product form.cart .quantity .ps-qtybtn:hover{background:var(--mist)}
.single-product form.cart .quantity input.qty{width:46px;height:52px;border:none;text-align:center;font-size:1rem;font-weight:600;font-family:inherit;-moz-appearance:textfield}
.single-product form.cart .quantity input.qty::-webkit-inner-spin-button{-webkit-appearance:none}
.single-product form.cart .single_add_to_cart_button{flex:1;min-width:200px;height:54px;border-radius:12px!important;font-size:1rem!important;display:flex;align-items:center;justify-content:center;gap:8px}

.ps-wa-order{width:100%;margin:14px 0 6px;height:54px;border-radius:12px;background:var(--wa);color:#fff;display:flex;align-items:center;justify-content:center;gap:10px;font-weight:600;font-size:1rem;box-shadow:0 6px 18px rgba(37,211,102,.28);transition:background .2s,transform .15s}
.ps-wa-order:hover{background:var(--wa-deep);color:#fff;transform:translateY(-1px)}
.ps-wa-order svg{width:20px;height:20px;fill:#fff}

.ps-reassure{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:20px;background:var(--mist-2);border:1px solid var(--line);border-radius:var(--radius);margin:22px 0 8px}
.ps-reassure .r{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}
.ps-reassure svg{width:24px;height:24px;stroke:var(--pine);fill:none;stroke-width:1.5}
.ps-reassure b{font-size:.82rem;color:var(--pine-deep)}
.ps-reassure span{font-size:.72rem;color:var(--ink-soft);line-height:1.35}

.single-product .product_meta{font-size:.82rem;color:var(--ink-soft);margin-top:18px;border-top:1px solid var(--line);padding-top:16px}
.single-product .product_meta a{color:var(--pine)}

/* Tabs -> Accordion (JS adds .ps-acc-mode) */
.single-product .woocommerce-tabs{grid-column:1 / -1;margin-top:16px}
.woocommerce-tabs.ps-acc-mode ul.tabs{display:none!important}
.ps-acc{border-top:1px solid var(--line)}
.ps-acc-item{border-bottom:1px solid var(--line)}
.ps-acc-head{width:100%;display:flex;align-items:center;justify-content:space-between;padding:20px 2px;text-align:left;background:none;border:none;font-family:var(--font-display);font-size:1.12rem;font-weight:600;color:var(--pine-deep)}
.ps-acc-head:hover{color:var(--pine-soft)}
.ps-acc-ic{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--sage-line);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:.2s;position:relative}
.ps-acc-head[aria-expanded="true"] .ps-acc-ic{background:var(--pine);border-color:var(--pine)}
.ps-acc-ic::before,.ps-acc-ic::after{content:"";position:absolute;background:var(--pine);transition:.25s}
.ps-acc-ic::before{width:11px;height:2px}.ps-acc-ic::after{width:2px;height:11px}
.ps-acc-head[aria-expanded="true"] .ps-acc-ic::before,.ps-acc-head[aria-expanded="true"] .ps-acc-ic::after{background:#fff}
.ps-acc-head[aria-expanded="true"] .ps-acc-ic::after{transform:scaleY(0)}
.ps-acc-panel{max-height:0;overflow:hidden;transition:max-height .38s cubic-bezier(.4,0,.2,1)}
.ps-acc-panel .inner{padding:0 2px 24px;color:var(--ink-soft);line-height:1.7;font-size:.94rem}
.ps-acc-panel h2{display:none}

/* Reviews */
#reviews{grid-column:1 / -1;max-width:var(--maxw);margin:20px auto 0;padding:40px 24px 0;border-top:1px solid var(--line)}
#reviews h2{font-size:1.7rem;margin-bottom:20px}
#reviews .commentlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
#reviews .commentlist li.review{padding:22px 0;border-bottom:1px solid var(--line)}
#reviews .comment_container{display:flex;gap:14px;align-items:flex-start}
#reviews .comment_container img.avatar{width:44px;height:44px;border-radius:50%;position:static;margin:0;float:none;background:var(--pine)}
#reviews .comment-text{border:none!important;margin:0!important;padding:0!important}
#reviews .comment-text strong.woocommerce-review__author{color:var(--pine-deep);font-family:var(--font-body)}
#reviews .comment-text .star-rating{color:var(--gold);margin:6px 0}
#reviews .meta{font-size:.8rem;color:var(--sage)}
#review_form_wrapper{margin-top:26px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px}
#review_form_wrapper h3{font-size:1.3rem}
#review_form .comment-form-rating label{display:block;margin-bottom:6px;font-weight:600;color:var(--pine-deep)}
#review_form p.stars a{color:var(--gold)}
#review_form input,#review_form textarea{border:1.5px solid var(--line)!important;border-radius:10px;padding:12px 14px;font-family:inherit;width:100%}
#review_form input:focus,#review_form textarea:focus{border-color:var(--pine)!important;outline:none}

/* Cart / checkout minimal polish */
.woocommerce table.shop_table{border-radius:12px;border-color:var(--line)}
.woocommerce .cart-collaterals .cart_totals h2,.woocommerce-checkout h3{color:var(--pine-deep)}
.woocommerce-checkout #payment{background:var(--mist)!important;border-radius:14px}

/* ---------- Responsive ---------- */
@media(max-width:1024px){
  .ps-cats{grid-template-columns:repeat(2,1fr)}
  .woocommerce ul.products{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
  .ps-loc{display:none}
  .ps-hero .ps-wrap{grid-template-columns:1fr;gap:34px;padding:52px 24px}
  .ps-hero h1{font-size:2.4rem}
  .ps-hero-visual{max-width:360px}
  .ps-pharmacy .ps-wrap{grid-template-columns:1fr;gap:36px;padding:52px 24px}
  .single-product div.product{grid-template-columns:1fr;gap:32px}
  .single-product div.product .woocommerce-product-gallery{position:static}
  .ps-foot-grid{grid-template-columns:1fr 1fr}
  .ps-foot-brand{grid-column:1 / -1}
  .woocommerce ul.products{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:560px){
  .ps-wrap{padding:0 18px}
  .ps-hero h1{font-size:2rem}
  .ps-section{padding:52px 0}
  .ps-reassure{grid-template-columns:1fr}
  .ps-reassure .r{flex-direction:row;text-align:left;gap:12px}
  .ps-cats{grid-template-columns:1fr 1fr;gap:14px}
  .ps-foot-grid{grid-template-columns:1fr}
  .single-product form.cart .single_add_to_cart_button{min-width:100%;flex:1 1 100%}
  .ps-topline .ps-wrap{gap:14px;font-size:.72rem}
  .ps-trustbar .ps-wrap{gap:16px;font-size:.76rem}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
