/* ============================================================
   SHA SHOP — books / needles / accessories storefront
   Scoped to .sha-shop. Brand tokens mirror the seminars page.
   Cart drawer + checkout panel styles live here too.
   ============================================================ */
.sha-shop {
  --wine:#730D2E; --wine-dark:#5a0a24; --wine-10:rgba(115,13,46,.10);
  --peach:#F5BF91; --peach-25:rgba(245,191,145,.25);
  --rust:#C4524A; --off-white:#FAF8F5; --text:#1C1C1C; --text-mid:#4A4A4A;
  --white:#FFFFFF; --border:#e8e0d8;
  --font-serif:'FKRomanStandard','Playfair Display',Garamond,serif;
  --font-sans:'FTRegolaNeue','DM Sans',system-ui,sans-serif;
  --max:1100px; --gutter:24px;
  font-family:var(--font-sans); font-size:18px; line-height:1.6; color:var(--text); background:var(--white);
}
.sha-shop *,.sha-shop *::before,.sha-shop *::after{box-sizing:border-box;}
.sha-shop img{max-width:100%;height:auto;display:block;}
.sha-shop a{text-decoration:none;color:inherit;}
.sha-shop h1,.sha-shop h2,.sha-shop h3{font-family:var(--font-serif);font-weight:400;line-height:1.2;margin:0;}
.sha-shop h1{font-size:clamp(1.9rem,4.5vw,3rem);}
.sha-shop h2{font-size:clamp(1.5rem,3vw,2.2rem);}
.sha-shop h3{font-size:1.1rem;}
.sha-shop .wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter);}

/* Buttons */
.sha-shop .btn{display:inline-block;font-family:var(--font-sans);font-weight:600;font-size:.95rem;
  padding:11px 22px;border-radius:999px;border:1.5px solid transparent;cursor:pointer;transition:.18s;text-align:center;}
.sha-shop .btn-wine{background:var(--wine);color:#fff;border-color:var(--wine);}
.sha-shop .btn-wine:hover{background:var(--wine-dark);border-color:var(--wine-dark);transform:translateY(-1px);}
.sha-shop .btn-outline{background:transparent;border-color:var(--wine);color:var(--wine);}
.sha-shop .btn-outline:hover{background:var(--wine);color:#fff;}
.sha-shop .btn-sm{padding:8px 16px;font-size:.85rem;}
.sha-shop .btn[disabled]{opacity:.5;cursor:not-allowed;transform:none;}

/* Hero */
.sha-shop .page-hero{background:var(--wine);color:#fff;text-align:center;padding:72px var(--gutter);}
.sha-shop .page-hero h1{color:#fff;margin-bottom:14px;}
.sha-shop .page-hero .sub{color:var(--peach);font-size:1.05rem;max-width:620px;margin:0 auto;}

/* Filter bar — same sticky off-white bar + solid-wine active pills as the
   seminars/webinars filters, but the shop has more rows (5), so it collapses
   behind a "Filter products" toggle on every screen size. z-index sits BELOW
   the cart drawer (80) so the sticky bar never covers the open checkout. */
.sha-shop .shop-filter-bar{position:sticky;top:0;z-index:40;background:var(--off-white);border-bottom:1px solid var(--peach);padding:0 var(--gutter);}
.sha-shop .shop-filter-inner{max-width:var(--max);margin-inline:auto;}
.sha-shop .shop-filter-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;
  padding:14px 0;background:none;border:none;font-family:var(--font-sans);font-size:.95rem;font-weight:600;color:var(--wine);cursor:pointer;}
.sha-shop .shop-filter-toggle-label{display:flex;align-items:center;gap:10px;}
.sha-shop .filter-toggle-icon{transition:transform .2s;opacity:.7;flex-shrink:0;}
.sha-shop .shop-filter-toggle.open .filter-toggle-icon{transform:rotate(180deg);}
.sha-shop .shop-filter-count{background:var(--wine);color:#fff;border-radius:999px;font-size:.72rem;font-weight:700;padding:2px 9px;line-height:1.5;}
.sha-shop .shop-filter-groups{display:none;}
.sha-shop .shop-filter-groups.open{display:block;padding-bottom:10px;}
.sha-shop .shop-filters{display:flex;align-items:center;gap:8px;padding:11px 0;flex-wrap:wrap;border-top:1px solid var(--border);}
.sha-shop .filter-row-label{font-size:.82rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--wine);font-family:var(--font-sans);min-width:62px;flex-shrink:0;}
.sha-shop .filter-pills{display:flex;flex-wrap:wrap;gap:8px;}
.sha-shop .shop-filter{display:inline-block;padding:7px 16px;border-radius:100px;font-size:.88rem;font-weight:600;
  font-family:var(--font-sans);cursor:pointer;border:1.5px solid var(--border);color:var(--text-mid);background:var(--white);
  transition:background .15s,color .15s,border-color .15s;user-select:none;line-height:1.5;white-space:nowrap;}
.sha-shop .shop-filter:hover{border-color:var(--wine);color:var(--wine);}
.sha-shop .shop-filter.active{background:var(--wine);border-color:var(--wine);color:var(--white);}

@media(max-width:767px){
  .sha-shop .shop-filter{min-height:42px;}
  /* each row scrolls sideways instead of stacking into many lines */
  .sha-shop .filter-pills{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px;}
  .sha-shop .filter-pills::-webkit-scrollbar{display:none;}
}

/* Product grid */
.sha-shop .shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:28px;padding:40px 0 80px;}
.sha-shop .prod-card{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:#fff;display:flex;flex-direction:column;transition:.18s;}
.sha-shop .prod-card:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(115,13,46,.10);}
.sha-shop .prod-card-img{aspect-ratio:1/1;background:var(--off-white);overflow:hidden;display:flex;align-items:center;justify-content:center;padding:14px;}
.sha-shop .prod-card-img img{width:100%;height:100%;object-fit:contain;}
.sha-shop .prod-card-body{padding:18px;display:flex;flex-direction:column;gap:8px;flex:1;}
.sha-shop .prod-tag{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--rust);font-weight:700;}
.sha-shop .prod-card-body h3{font-size:1.02rem;color:var(--wine);}
.sha-shop .prod-teacher{font-size:.8rem;color:var(--text-mid);font-style:italic;}
.sha-shop .prod-price{font-weight:700;font-size:1.05rem;color:var(--text);margin-top:auto;padding-top:6px;}
.sha-shop .prod-card-actions{display:flex;flex-direction:column;gap:8px;margin-top:12px;}
.sha-shop .prod-card-actions .btn{width:100%;}
.sha-shop .prod-card-actions .notify-wrap{width:100%;}
.sha-shop .prod-card-actions .notify-wrap .notify-open{width:100%;}
.sha-shop .prod-card.is-sold-out .prod-card-img{opacity:.55;}
.sha-shop .btn.sold-out{background:#b9ada4;border-color:#b9ada4;color:#fff;}

/* Product detail */
.sha-shop .prod-detail{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding:56px 0 80px;align-items:start;}
@media(max-width:767px){.sha-shop .prod-detail{grid-template-columns:1fr;gap:28px;padding:36px 0 60px;}}
.sha-shop .prod-detail-img{border:1px solid var(--border);border-radius:16px;overflow:hidden;background:var(--off-white);display:flex;align-items:center;justify-content:center;padding:28px;}
.sha-shop .prod-detail-img img{max-height:460px;width:auto;max-width:100%;object-fit:contain;}
.sha-shop .prod-detail h1{color:var(--wine);margin-bottom:10px;}
.sha-shop .prod-detail .price-lg{font-size:1.6rem;font-weight:700;margin:6px 0 20px;}
.sha-shop .prod-detail .desc{color:var(--text-mid);margin-bottom:24px;}
.sha-shop .qty-row{display:flex;align-items:center;gap:14px;margin-bottom:20px;}
.sha-shop .qty-stepper{display:inline-flex;align-items:center;border:1.5px solid var(--border);border-radius:999px;overflow:hidden;}
.sha-shop .qty-stepper button{width:38px;height:38px;border:none;background:#fff;font-size:1.2rem;cursor:pointer;color:var(--wine);}
.sha-shop .qty-stepper span{width:42px;text-align:center;font-weight:600;}
.sha-shop .ship-note{font-size:.82rem;color:var(--text-mid);margin-top:16px;line-height:1.5;}
.sha-shop .back-link{display:inline-block;margin:28px 0 0;color:var(--wine);font-weight:600;font-size:.9rem;}

/* Cart button (floating) */
.sha-cart-fab{position:fixed;bottom:22px;right:22px;z-index:60;background:#730D2E;color:#fff;border:none;
  border-radius:999px;padding:14px 22px;font:600 .95rem 'FTRegolaNeue','DM Sans',system-ui,sans-serif;
  cursor:pointer;box-shadow:0 8px 24px rgba(115,13,46,.32);display:flex;align-items:center;gap:8px;}
.sha-cart-fab .cart-count{background:#F5BF91;color:#730D2E;border-radius:999px;min-width:22px;height:22px;
  display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;padding:0 6px;}

/* Cart drawer */
.sha-cart-overlay{position:fixed;inset:0;background:rgba(28,28,28,.45);z-index:70;opacity:0;visibility:hidden;transition:.2s;}
.sha-cart-overlay.open{opacity:1;visibility:visible;}
.sha-cart{position:fixed;top:0;right:0;height:100%;width:min(420px,100%);background:#fff;z-index:80;
  transform:translateX(100%);transition:transform .25s ease;display:flex;flex-direction:column;
  font-family:'FTRegolaNeue','DM Sans',system-ui,sans-serif;color:#1C1C1C;}
.sha-cart.open{transform:translateX(0);}
.sha-cart-head{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;border-bottom:1px solid #e8e0d8;}
.sha-cart-head h2{font-family:'FKRomanStandard',Garamond,serif;font-weight:400;color:#730D2E;font-size:1.4rem;margin:0;}
.sha-cart-close{background:none;border:none;font-size:1.6rem;cursor:pointer;color:#730D2E;line-height:1;}
.sha-cart-body{flex:1;overflow-y:auto;padding:16px 22px;}
.sha-cart-empty{color:#7a6b63;text-align:center;padding:48px 0;}
.sha-cart-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid #f0ebe5;}
.sha-cart-item img{width:54px;height:54px;object-fit:contain;border-radius:8px;background:#FAF8F5;flex:none;padding:4px;}
.sha-cart-item .ci-name{font-weight:600;font-size:.9rem;color:#730D2E;line-height:1.3;}
.sha-cart-item .ci-price{font-size:.85rem;color:#4A4A4A;margin-top:2px;}
.sha-cart-item .ci-controls{display:flex;align-items:center;gap:8px;margin-top:6px;}
.sha-cart-item .ci-controls button{width:26px;height:26px;border:1px solid #d8cfc6;background:#fff;border-radius:6px;cursor:pointer;color:#730D2E;}
.sha-cart-item .ci-main{flex:1;min-width:0;}
.sha-cart-item .ci-remove{flex:none;align-self:flex-start;background:none;border:none;color:#9a8f88;cursor:pointer;
  font-size:1.35rem;line-height:1;padding:0 4px;border-radius:7px;transition:.15s;}
.sha-cart-item .ci-remove:hover{color:#730D2E;background:rgba(115,13,46,.08);}
.sha-cart-foot{border-top:1px solid #e8e0d8;padding:18px 22px;background:#FAF8F5;}
.sha-cart-foot .row{display:flex;justify-content:space-between;font-size:.92rem;margin-bottom:8px;color:#4A4A4A;}
.sha-cart-foot .row.total{font-weight:700;font-size:1.05rem;color:#1C1C1C;border-top:1px solid #e8e0d8;padding-top:10px;margin-top:4px;}
/* Cart inputs/selects — applies to the country picker (cart body) too, which was
   rendering as a raw browser default before. Custom wine chevron, focus ring. */
.sha-cart select,.sha-cart input{-webkit-appearance:none;-moz-appearance:none;appearance:none;
  width:100%;padding:12px 14px;border:1.5px solid #d8cfc6;border-radius:10px;
  font:600 .92rem 'FTRegolaNeue','DM Sans',system-ui,sans-serif;color:#1C1C1C;background:#fff;margin:4px 0 10px;}
.sha-cart select{padding-right:40px;cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23730D2E' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat:no-repeat;background-position:right 14px center;}
.sha-cart select:focus,.sha-cart input:focus{outline:none;border-color:#730D2E;box-shadow:0 0 0 3px rgba(115,13,46,.12);}
.sha-cart-foot .btn{display:block;width:100%;text-align:center;border:none;cursor:pointer;
  background:#730D2E;color:#fff;font-weight:600;padding:13px;border-radius:999px;font-size:.95rem;}
.sha-cart-foot .btn[disabled]{opacity:.5;cursor:not-allowed;}
.sha-cart-foot .duty-note{font-size:.78rem;color:#7a6b63;margin:6px 0 10px;line-height:1.45;}
.sha-cart-foot .ship-line{font-size:.82rem;color:#6b5f58;margin-bottom:8px;}
.sha-cart-foot .cart-err{color:#C4524A;font-size:.82rem;margin-bottom:8px;}
.sha-cart-back{background:none;border:none;color:#730D2E;font-size:.85rem;cursor:pointer;padding:0;margin-bottom:10px;text-decoration:underline;}
