/* TFW Shop/Archive Page — extracted from woocommerce/archive-product.php */
/* ── ARCHIVE-SPECIFIC STYLES (supplements .pc classes from front-page) ── */
.tfw-shop { max-width:1440px; margin:0 auto; padding:32px 16px 64px; overflow-x:hidden; }
.tfw-shop-header { margin-bottom:24px; }
.tfw-shop-title {
  font-family:var(--fd); font-size:clamp(32px,5vw,48px); font-weight:300;
  color:var(--ink); margin-bottom:20px; letter-spacing:-0.01em;
}

/* ── Screen reader only ── */
.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; }

/* ── Shop Hero Search Bar ── */
.shop-hero-search { margin-bottom:20px; max-width:100%; }
.shop-hero-search .dgwt-wcas-search-wrapp { max-width:100% !important; }
.shop-hero-search .dgwt-wcas-search-form {
  border:1px solid var(--bd) !important; background:var(--bg) !important;
  border-radius:0 !important; height:52px !important;
  transition:border-color .22s cubic-bezier(0.32,0.72,0,1) !important;
}
.shop-hero-search .dgwt-wcas-search-form:focus-within { border-color:var(--ink) !important; }
.shop-hero-search .dgwt-wcas-search-input {
  background:transparent !important; color:var(--ink) !important;
  font-family:var(--fb) !important; font-size:16px !important; font-weight:300 !important;
  border:none !important; padding:14px 20px !important; height:50px !important;
  letter-spacing:.3px;
}
.shop-hero-search .dgwt-wcas-search-input::placeholder { color:var(--muted) !important; }
.shop-hero-search .dgwt-wcas-search-submit { display:none !important; }
.shop-hero-search .dgwt-wcas-search-submit svg,
.shop-hero-search .dgwt-wcas-ico-magnifier,
.shop-hero-search .dgwt-wcas-ico-magnifier-handler { fill:var(--white) !important; }
.shop-hero-search .dgwt-wcas-sf-wrapp { position:relative; background:transparent !important; padding:0 !important; height:auto !important; }
.shop-hero-search .dgwt-wcas-sf-wrapp::before,
.shop-hero-search .dgwt-wcas-sf-wrapp::after { display:none !important; content:none !important; }
.shop-hero-search .dgwt-wcas-search-form::before,
.shop-hero-search .dgwt-wcas-search-form::after { display:none !important; content:none !important; }
.shop-hero-search .dgwt-wcas-suggestions-wrapp { border-radius:0 !important; border:1px solid var(--bd) !important; margin-top:2px; box-shadow:0 8px 32px rgba(0,0,0,.08) !important; }
.shop-hero-search .dgwt-wcas-suggestion { font-family:var(--fb) !important; padding:12px 16px !important; }
.shop-hero-search .dgwt-wcas-st { font-family:var(--fb) !important; font-size:14px !important; color:var(--ink) !important; }
.shop-hero-search .dgwt-wcas-sp { font-family:var(--fb) !important; font-size:13px !important; color:var(--ink) !important; }
@media(min-width:768px) {
  .shop-hero-search { max-width:560px; }
}
@media(min-width:1024px) {
  .shop-hero-search { max-width:640px; }
}
.tfw-shop-controls {
  display:flex; flex-direction:column; align-items:flex-start; gap:12px;
  width:calc(100% + 32px); margin:0 -16px; padding:10px 16px;
  position:sticky; top:56px; z-index:90; background:var(--bg);
  transition:box-shadow .22s cubic-bezier(0.32,0.72,0,1);
}
.tfw-shop-controls.is-stuck { box-shadow:0 2px 12px rgba(0,0,0,.06); }

/* Filter tabs — same pattern as .collections-nav-links */
.tfw-shop-filters {
  display:flex; align-items:center; gap:6px; overflow-x:auto; flex-wrap:nowrap;
  -webkit-overflow-scrolling:touch; scrollbar-width:none; max-width:100%;
  position:relative;
  mask-image:linear-gradient(to right, black calc(100% - 32px), transparent 100%);
  -webkit-mask-image:linear-gradient(to right, black calc(100% - 32px), transparent 100%);
}
.tfw-shop-filters::-webkit-scrollbar { display:none; }
.tfw-shop-filters a {
  font-family:var(--fb); font-size:11px; font-weight:400; letter-spacing:1px;
  text-transform:uppercase; color:var(--ink); text-decoration:none;
  padding:8px 14px; border:1px solid var(--bd); min-height:44px;
  display:inline-flex; align-items:center; transition:all .22s cubic-bezier(0.32,0.72,0,1); white-space:nowrap; flex-shrink:0;
}
.tfw-shop-filters a:hover { border-color:var(--ink); }
.tfw-shop-filters a:active { transform:scale(0.96); transition-duration:.1s; }
.tfw-shop-filters a.active {
  color:var(--white); background:var(--ink); border-color:var(--ink);
}

/* Sort dropdown */
.tfw-shop-sort {
  position:relative; flex-shrink:0;
}
.tfw-shop-sort select {
  font-family:var(--fb); font-size:11px; font-weight:400; letter-spacing:1px;
  text-transform:uppercase; color:var(--ink); background:var(--white);
  border:1px solid var(--bd); padding:8px 32px 8px 12px; min-height:44px;
  cursor:pointer; appearance:none; -webkit-appearance:none;
  transition:border-color .22s cubic-bezier(0.32,0.72,0,1);
}
.tfw-shop-sort select:hover { border-color:var(--ink); }
.tfw-shop-sort::after {
  content:''; position:absolute; right:14px; top:50%; transform:translateY(-50%);
  width:0; height:0; border-left:4px solid transparent; border-right:4px solid transparent;
  border-top:5px solid var(--ink); pointer-events:none;
}

/* Product grid — mobile-first: 2 columns base, scales up */
.tfw-shop-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:16px;
}

/* Category intro */
.tfw-shop-intro {
  font-family:var(--fb); font-size:15px; font-weight:400; color:var(--ink);
  line-height:1.6; max-width:640px; margin-bottom:16px;
}

/* Results count */
.tfw-shop-count {
  font-family:var(--fb); font-size:13px; font-weight:400; color:var(--ink);
  margin-bottom:20px;
}

/* ── Curated Sets section (bundles filter) ── */
.shop-curated-trios {
  margin-bottom:40px;
  padding-bottom:40px;
  border-bottom:1px solid var(--bd);
}

/* Section Header */
.sct-header { text-align:center; margin-bottom:28px; }
.sct-header-eyebrow {
  font-family:var(--fb); font-size:10px; font-weight:600;
  letter-spacing:0.2em; text-transform:uppercase; color:var(--ink); margin-bottom:8px;
}
.sct-title {
  font-family:var(--fd); font-size:32px; font-weight:300; font-style:italic;
  color:var(--ink); line-height:1.15; margin-bottom:10px;
}
.sct-sub {
  font-family:var(--fb); font-size:14px; font-weight:300; color:var(--ink);
  max-width:480px; margin:0 auto; line-height:1.6;
}

/* Trio Grid */
.sct-trio-grid { display:grid; grid-template-columns:1fr; gap:16px; }

/* Trio Card */
.sct-trio-card {
  display:block; text-decoration:none; color:inherit;
  border:1px solid var(--bd); background:var(--white); overflow:hidden;
  transition:border-color 0.2s ease;
}
.sct-trio-card:hover { border-color:var(--ink); }

/* Bottles (dark background) */
.sct-trio-bottles {
  display:grid; grid-template-columns:repeat(3,1fr);
  background:var(--deep); position:relative;
}
.sct-trio-bottles::after {
  content:''; position:absolute; bottom:0; left:0; right:0; height:40px;
  background:linear-gradient(to top, rgba(17,17,16,0.6), transparent);
  pointer-events:none; z-index:2;
}
.sct-trio-bottle-cell {
  position:relative; aspect-ratio:3/4; overflow:hidden;
}
.sct-trio-bottle-cell + .sct-trio-bottle-cell {
  border-left:1px solid rgba(255,255,255,0.08);
}
.sct-trio-bottle-cell img {
  width:100%; height:100%; object-fit:cover;
  transition:transform 0.5s cubic-bezier(0,0,0.2,1);
}
.sct-trio-card:hover .sct-trio-bottle-cell img { transform:scale(1.03); }

.sct-trio-bottle-label {
  position:absolute; bottom:0; left:0; right:0; z-index:3;
  text-align:center; padding:8px 4px 12px;
  background:linear-gradient(to top, rgba(17,17,16,0.85), transparent);
}
.sct-trio-bottle-name {
  display:block; font-family:var(--fb); font-size:10px; font-weight:600;
  letter-spacing:0.15em; text-transform:uppercase; color:var(--white); line-height:1.3;
}
.sct-trio-bottle-inspired {
  display:block; font-family:var(--fb); font-size:9px; font-weight:300;
  color:var(--white); line-height:1.4; margin-top:2px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* Card body */
.sct-trio-body { padding:20px 16px 24px; text-align:center; }
.sct-trio-eyebrow {
  display:block; font-family:var(--fb); font-size:9px; font-weight:600;
  letter-spacing:0.2em; text-transform:uppercase; color:var(--bundle); margin-bottom:6px;
}
.sct-trio-title {
  display:block; font-family:var(--fd); font-size:26px; font-weight:300; font-style:italic;
  color:var(--ink); line-height:1.15; margin-bottom:8px;
}
.sct-trio-desc {
  display:block; font-family:var(--fb); font-size:13px; font-weight:300;
  color:var(--ink); line-height:1.55; max-width:340px; margin:0 auto 16px;
}
.sct-trio-pricing {
  display:flex; align-items:baseline; justify-content:center; gap:8px; margin-bottom:4px;
}
.sct-trio-was {
  font-family:var(--fb); font-size:14px; font-weight:300; color:var(--ink); text-decoration:line-through;
}
.sct-trio-now {
  font-family:var(--fb); font-size:28px; font-weight:600; color:var(--ink); letter-spacing:-0.02em;
}
.sct-trio-save {
  display:block; font-family:var(--fb); font-size:11px; font-weight:500;
  color:var(--bundle); text-transform:uppercase; letter-spacing:0.05em; margin-bottom:6px;
}
.sct-trio-klarna {
  display:block; font-family:var(--fb); font-size:11px; font-weight:300;
  color:var(--ink); margin-bottom:20px;
}
.sct-trio-cta {
  display:block; width:100%; height:48px; line-height:48px;
  background:var(--ink); color:var(--white); border:1px solid var(--ink);
  font-family:var(--fb); font-size:11px; font-weight:500;
  letter-spacing:0.12em; text-transform:uppercase; text-align:center;
  transition:all 0.2s ease; min-height:44px;
}
.sct-trio-card:hover .sct-trio-cta { background:transparent; color:var(--ink); }
.sct-trio-trust {
  display:block; font-family:var(--fb); font-size:10px; font-weight:300;
  color:var(--ink); margin-top:14px; letter-spacing:0.02em;
}

/* Divider */
.sct-divider { display:flex; align-items:center; gap:16px; margin:36px 0 20px; }
.sct-divider-line { flex:1; height:1px; background:var(--bd); }
.sct-divider-text {
  font-family:var(--fb); font-size:10px; font-weight:500;
  letter-spacing:0.15em; text-transform:uppercase; color:var(--ink); white-space:nowrap;
}

/* BYO Grid */
.sct-byo-grid { display:grid; grid-template-columns:1fr; gap:16px; }

/* BYO Card */
.sct-byo-card {
  display:block; text-decoration:none; color:inherit;
  border:1px solid var(--bd); background:var(--white); overflow:hidden;
  transition:border-color 0.2s ease;
}
.sct-byo-card:hover { border-color:var(--ink); }

/* BYO Slots */
.sct-byo-slots { display:grid; grid-template-columns:repeat(3,1fr); background:var(--deep); }
.sct-byo-slot {
  aspect-ratio:4/3; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:12px;
}
.sct-byo-slot + .sct-byo-slot { border-left:1px solid rgba(255,255,255,0.08); }
.sct-byo-circle {
  width:56px; height:56px; border:1px dashed rgba(255,255,255,0.35); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  transition:border-color 0.3s ease, transform 0.3s ease;
}
.sct-byo-card:hover .sct-byo-circle { border-color:rgba(255,255,255,0.6); transform:scale(1.05); }
.sct-byo-circle svg { width:20px; height:20px; color:rgba(255,255,255,0.5); }
.sct-byo-slot-label {
  font-family:var(--fb); font-size:9px; font-weight:400;
  letter-spacing:0.12em; text-transform:uppercase; color:rgba(255,255,255,0.5);
}

/* BYO Body */
.sct-byo-body { padding:20px 16px 24px; text-align:center; }
.sct-byo-eyebrow {
  display:block; font-family:var(--fb); font-size:9px; font-weight:600;
  letter-spacing:0.2em; text-transform:uppercase; color:var(--ink); margin-bottom:6px;
}
.sct-byo-title {
  display:block; font-family:var(--fd); font-size:26px; font-weight:300; font-style:italic;
  color:var(--ink); line-height:1.15; margin-bottom:8px;
}
.sct-byo-size {
  display:block; font-family:var(--fb); font-size:13px; font-weight:300;
  color:var(--ink); line-height:1.55; margin-bottom:16px;
}
.sct-byo-pricing {
  display:flex; align-items:baseline; justify-content:center; gap:8px; margin-bottom:4px;
}
.sct-byo-was {
  font-family:var(--fb); font-size:14px; font-weight:300; color:var(--ink); text-decoration:line-through;
}
.sct-byo-now {
  font-family:var(--fb); font-size:28px; font-weight:600; color:var(--ink); letter-spacing:-0.02em;
}
.sct-byo-save {
  display:block; font-family:var(--fb); font-size:11px; font-weight:500;
  color:var(--bundle); text-transform:uppercase; letter-spacing:0.05em; margin-bottom:6px;
}
.sct-byo-klarna {
  display:block; font-family:var(--fb); font-size:11px; font-weight:300;
  color:var(--ink); margin-bottom:20px;
}
.sct-byo-cta {
  display:block; width:100%; height:48px; line-height:48px;
  background:var(--ink); color:var(--white); border:1px solid var(--ink);
  font-family:var(--fb); font-size:11px; font-weight:500;
  letter-spacing:0.12em; text-transform:uppercase; text-align:center;
  transition:all 0.2s ease; min-height:44px;
}
.sct-byo-card:hover .sct-byo-cta { background:transparent; color:var(--ink); }
.sct-byo-trust {
  display:block; font-family:var(--fb); font-size:10px; font-weight:300;
  color:var(--ink); margin-top:14px; letter-spacing:0.02em;
}

/* Responsive */
@media(min-width:600px) {
  .sct-trio-grid { grid-template-columns:repeat(2,1fr); gap:20px; }
  .sct-trio-body { padding:24px 20px 28px; }
  .sct-trio-title { font-size:28px; }
  .sct-trio-desc { font-size:14px; }
  .sct-trio-bottle-name { font-size:11px; }
  .sct-byo-grid { grid-template-columns:repeat(2,1fr); gap:20px; }
  .sct-byo-body { padding:24px 20px 28px; }
  .sct-byo-title { font-size:28px; }
  .sct-title { font-size:36px; }
  .shop-curated-trios { margin-bottom:48px; padding-bottom:48px; }
}
@media(min-width:960px) {
  .sct-trio-grid { grid-template-columns:repeat(3,1fr); gap:24px; }
  .sct-trio-body { padding:28px 24px 32px; }
  .sct-trio-title { font-size:30px; }
  .sct-byo-circle { width:64px; height:64px; }
  .sct-byo-circle svg { width:24px; height:24px; }
  .sct-byo-body { padding:28px 24px 32px; }
  .sct-byo-title { font-size:30px; }
}

/* ── Bundles Hub page ── */
.bundles-hub { max-width:1200px; margin:0 auto; padding:0 16px 64px; }
.bh-header { text-align:center; padding:48px 0 40px; }
.bh-eyebrow {
  font-family:var(--fb); font-size:10px; font-weight:600;
  letter-spacing:0.2em; text-transform:uppercase; color:var(--bundle); margin-bottom:10px;
}
.bh-title {
  font-family:var(--fd); font-size:clamp(32px,7vw,48px); font-weight:300; font-style:italic;
  color:var(--ink); line-height:1.1; margin-bottom:14px;
}
.bh-sub {
  font-family:var(--fb); font-size:15px; font-weight:300; color:var(--ink);
  max-width:520px; margin:0 auto; line-height:1.6;
}
.bh-section { padding:0; }
@media(min-width:769px) {
  .bundles-hub { padding:0 48px 96px; }
  .bh-header { padding:64px 0 56px; }
  .bh-sub { font-size:16px; }
}

/* ── Product cards — mobile-first base ── */
.tfw-shop-grid .pc {
  cursor:pointer; position:relative; text-decoration:none; color:inherit;
  display:flex; flex-direction:column; background:var(--white); min-width:0;
  transition:transform .12s cubic-bezier(0.32,0.72,0,1);
}
.tfw-shop-grid .pc:focus-visible { outline:2px solid var(--ink); outline-offset:2px; }
.tfw-shop-grid .pc:hover { transform:none; }
.tfw-shop-grid .pc:active { transform:scale(0.98); transition-duration:.12s; }
.tfw-shop-grid .pc-img {
  background:var(--bg2); aspect-ratio:3/4; width:100%;
  position:relative; overflow:hidden;
}
.tfw-shop-grid .pc-img .pc-product {
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  transition:opacity .35s cubic-bezier(0.32,0.72,0,1); z-index:2; background:var(--bg2);
}
.tfw-shop-grid .pc-img .pc-product img { width:100%; height:100%; object-fit:cover; transition:transform .35s cubic-bezier(0.34,1.56,0.64,1); mix-blend-mode:multiply; }
.tfw-shop-grid .pc:hover .pc-img .pc-product img { transform:none; }
.tfw-shop-grid .pc-img .pc-lifestyle {
  position:absolute; inset:0; opacity:0; transition:opacity .35s cubic-bezier(0.32,0.72,0,1); z-index:1;
}
.tfw-shop-grid .pc-img .pc-lifestyle img { width:100%; height:100%; object-fit:cover; }
/* Desktop crossfade handled in min-width:769px media query below */
.tfw-shop-grid .pc-info { padding:14px 12px 18px; flex:1; display:flex; flex-direction:column; border-top:1px solid var(--bd); }
.tfw-shop-grid .ruk_rating_snippet { font-size:11px; margin-bottom:8px; }
.tfw-shop-grid .pc-rating { margin-bottom:6px; display:flex; align-items:center; gap:2px; }
.tfw-shop-grid .pc-stars { font-size:13px; color:var(--gold); letter-spacing:-1px; }
.tfw-shop-grid .pc-stars span { font-size:20px !important; }
.tfw-shop-grid .pc-reviews { font-family:var(--fb); font-size:14px; font-weight:400; color:var(--ink); margin-left:2px; }
.tfw-shop-grid .pc-insp { font-family:var(--fb); font-size:13px; font-weight:400; font-style:italic; letter-spacing:0.02em; color:var(--ink); margin-bottom:4px; overflow-wrap:break-word; word-break:break-word; }
.tfw-shop-grid .pc-name { font-family:var(--fb); font-size:17px; font-weight:500; text-transform:uppercase; letter-spacing:0.02em; color:var(--ink); margin-bottom:6px; overflow-wrap:break-word; word-break:break-word; }
.tfw-shop-grid .pc-urgency { font-family:var(--fb); font-size:11px; font-weight:500; text-transform:uppercase; letter-spacing:0.06em; color:var(--ink); margin-bottom:4px; display:block; }
.tfw-shop-grid .pc-price-link { font-family:var(--fb); font-size:15px; font-weight:400; color:var(--ink); text-decoration:none; display:inline-flex; align-items:center; gap:4px; }
.tfw-shop-grid .pc-price-link::after { display:none; }
.tfw-shop-grid .pc:hover .pc-price-link::after { transform:translateX(3px); }

/* ── Product badges ── */
.tfw-shop-grid .pc-bdg { position:absolute; top:12px; left:12px; font-family:var(--fb); font-size:10px; font-weight:500; letter-spacing:0.08em; text-transform:uppercase; padding:4px 10px; z-index:3; border-radius:0; }
.tfw-shop-grid .pc-bdg--best { background:var(--ink); color:var(--white); }
.tfw-shop-grid .pc-bdg--new { background:var(--white); color:var(--ink); border:1px solid var(--ink); }
.tfw-shop-grid .pc-bdg--trend { background:var(--ink); color:var(--white); }
.tfw-shop-grid .pc-bdg--pick { background:var(--white); color:var(--ink); border:1px solid var(--bd); }
.tfw-shop-grid .pc-fam { position:absolute; bottom:12px; left:12px; font-family:var(--fb); font-size:9px; font-weight:500; letter-spacing:0.08em; text-transform:uppercase; padding:4px 10px; z-index:3; background:var(--white); color:var(--ink); border:1px solid var(--bd); }
.tfw-shop-grid .pc-fam--floral { background:#F9F0F4; color:#8C3B5E; border-color:#E8C8D6; }
.tfw-shop-grid .pc-fam--gourmand { background:#FDF5EE; color:#8B5E3C; border-color:#E5CDAE; }
.tfw-shop-grid .pc-fam--oriental-spicy, .tfw-shop-grid .pc-fam--oriental { background:#F7F0EA; color:#7A4B2A; border-color:#D9C0A5; }
.tfw-shop-grid .pc-fam--fresh-citrus, .tfw-shop-grid .pc-fam--fresh { background:#EFF6F2; color:#3B6B4F; border-color:#B5D4C1; }
.tfw-shop-grid .pc-fam--woody-oud, .tfw-shop-grid .pc-fam--woody { background:#F3F0EB; color:#5C4A35; border-color:#C9B99A; }
.tfw-shop-grid .pc-fam--chypre-green { background:#F1F4EE; color:#4A5E3B; border-color:#B8C9A5; }
.tfw-shop-grid .pc-fam--amber { background:#F8F2E8; color:#7A5C2B; border-color:#D4BC8A; }

/* ── Pagination ── */
.tfw-shop-pagination {
  display:flex; align-items:center; justify-content:center; gap:4px;
  padding:32px 0 0; margin-top:16px;
}
.tfw-shop-pagination a,
.tfw-shop-pagination span {
  font-family:var(--fb); font-size:12px; font-weight:400; letter-spacing:0.5px;
  color:var(--ink); text-decoration:none; display:inline-flex;
  align-items:center; justify-content:center;
  width:44px; height:44px; border:1px solid var(--bd); transition:all .22s cubic-bezier(0.32,0.72,0,1);
}
.tfw-shop-pagination a:hover { border-color:var(--ink); }
.tfw-shop-pagination span.current {
  background:var(--ink); color:var(--white); border-color:var(--ink);
}
.tfw-shop-pagination .prev,
.tfw-shop-pagination .next {
  width:auto; padding:0 16px; letter-spacing:1px; text-transform:uppercase; font-size:11px;
}
.tfw-shop-pagination .dots { border:none; color:var(--ink); }

/* Empty state */
.tfw-shop-empty {
  padding:96px 24px; text-align:center;
  font-family:var(--fb); font-size:16px; font-weight:300; color:var(--ink);
}

/* No results — Baymard: never a dead end */
.tfw-no-results__title {
  font-family:var(--fd); font-size:clamp(24px,4vw,32px); font-weight:300;
  color:var(--ink); margin-bottom:8px;
}
.tfw-no-results__hint {
  font-family:var(--fb); font-size:15px; font-weight:300; color:var(--ink);
  margin-bottom:24px; line-height:1.5;
}
.tfw-no-results__links {
  display:flex; align-items:center; justify-content:center; gap:6px;
  flex-wrap:wrap; margin-bottom:40px;
}
.tfw-no-results__links a {
  font-family:var(--fb); font-size:11px; font-weight:400; letter-spacing:1px;
  text-transform:uppercase; color:var(--ink); text-decoration:none;
  padding:8px 14px; border:1px solid var(--bd);
  transition:all .22s cubic-bezier(0.32,0.72,0,1);
}
.tfw-no-results__links a:hover { border-color:var(--ink); background:var(--ink); color:var(--white); }
.tfw-no-results__popular-title {
  font-family:var(--fb); font-size:11px; font-weight:500; letter-spacing:1.5px;
  text-transform:uppercase; color:var(--ink); margin-bottom:20px;
}
.tfw-no-results__popular {
  display:grid; grid-template-columns:1fr 1fr; gap:12px;
  max-width:800px; margin:0 auto;
}
.tfw-no-results__card {
  text-decoration:none; color:inherit; background:var(--white);
  transition:transform .28s cubic-bezier(0.34,1.56,0.64,1), box-shadow .22s cubic-bezier(0.32,0.72,0,1);
}
.tfw-no-results__card:hover { transform:translateY(-4px); box-shadow:0 8px 24px rgba(28,28,26,.06); }
.tfw-no-results__card-img { aspect-ratio:1/1; background:var(--bg2); overflow:hidden; }
.tfw-no-results__card-img img { width:100%; height:100%; object-fit:cover; }
.tfw-no-results__card-info { padding:10px; text-align:left; }
.tfw-no-results__card-insp { display:block; font-family:var(--fb); font-size:11px; font-weight:300; color:var(--ink); margin-bottom:2px; }
.tfw-no-results__card-name { display:block; font-family:var(--fb); font-size:14px; font-weight:500; text-transform:uppercase; color:var(--ink); margin-bottom:4px; }
.tfw-no-results__card-price { display:block; font-family:var(--fb); font-size:13px; font-weight:400; color:var(--ink); }
@media(min-width:769px) {
  .tfw-no-results__popular { grid-template-columns:repeat(4,1fr); gap:16px; }
  .tfw-no-results__links { gap:8px; }
  .tfw-no-results__links a { font-size:12px; padding:10px 18px; }
}

/* ── Interstitial bundle CTA ── */
.tfw-shop-interstitial { margin:8px 0; }
.tfw-shop-interstitial__inner {
  display:flex; flex-direction:column; align-items:center; text-align:center;
  background:var(--ink); padding:20px 20px; gap:16px;
}
.tfw-shop-interstitial__text { display:flex; flex-direction:column; gap:4px; align-items:center; }
.tfw-shop-interstitial__kicker {
  font-family:var(--fb); font-size:10px; font-weight:500;
  letter-spacing:1.5px; text-transform:uppercase; color:var(--gold);
}
.tfw-shop-interstitial__headline {
  font-family:var(--fd); font-size:clamp(18px,2.5vw,24px); font-weight:300;
  font-style:italic; color:var(--white);
}
.tfw-shop-interstitial__cta {
  font-family:var(--fb); font-size:12px; font-weight:500;
  letter-spacing:.08em; text-transform:uppercase; text-decoration:none;
  color:var(--ink); background:var(--white); padding:12px 24px;
  white-space:nowrap; transition:all .22s cubic-bezier(0.32,0.72,0,1);
  width:100%; text-align:center;
}
.tfw-shop-interstitial__cta:hover { background:var(--bg2); }
.tfw-shop-interstitial__cta:active { transform:scale(0.97); transition-duration:.1s; }

/* ── Quick-Add button on cards ── */
.tfw-shop-grid .pc-quick-add {
  display:block; width:100%; padding:10px; text-align:center; margin-top:auto;
  font-family:var(--fb); font-size:11px; font-weight:500;
  letter-spacing:.08em; text-transform:uppercase; color:var(--white);
  background:var(--ink); border:none; border-top:1px solid var(--bd);
  cursor:pointer; transition:background .22s cubic-bezier(0.32,0.72,0,1); text-decoration:none;
}
.tfw-shop-grid .pc-quick-add:hover { background:transparent; color:var(--ink); border:1px solid var(--ink); }

/* ── RESPONSIVE — min-width overrides (mobile-first) ── */
@media(min-width:481px){
  .tfw-shop-filters { padding-bottom:0; }
}
@media(min-width:769px){
  .tfw-shop { padding:48px 48px 96px; overflow-x:visible; }
  .tfw-shop-title { margin-bottom:24px; }
  .tfw-shop-controls { flex-direction:row; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; width:auto; margin:0; padding:12px 16px; position:static; top:auto; z-index:auto; background:transparent; }
  .tfw-shop-controls.is-stuck { box-shadow:none; }
  .tfw-shop-filters { gap:8px; overflow-x:visible; flex-wrap:wrap; scrollbar-width:auto; max-width:none; mask-image:none; -webkit-mask-image:none; }
  .tfw-shop-filters a { font-size:12px; padding:10px 18px; min-height:40px; letter-spacing:1.2px; flex-shrink:0; }
  .tfw-shop-sort select { font-size:12px; padding:10px 36px 10px 14px; min-height:40px; }
  .tfw-shop-grid { grid-template-columns:repeat(3, 1fr); gap:24px; }
  .tfw-shop-grid .pc { transition:transform .28s cubic-bezier(0.34,1.56,0.64,1), box-shadow .22s cubic-bezier(0.32,0.72,0,1); }
  .tfw-shop-grid .pc:hover { transform:translateY(-4px); box-shadow:0 8px 24px rgba(28,28,26,0.06); }
  .tfw-shop-grid .pc-info { padding:14px 14px 16px; }
  .tfw-shop-grid .pc-rating { margin-bottom:4px; }
  .tfw-shop-grid .pc-stars span { font-size:inherit !important; }
  .tfw-shop-grid .pc-reviews { font-size:12px; }
  .tfw-shop-grid .pc-insp { font-size:12px; }
  .tfw-shop-grid .pc-name { font-size:15px; margin-bottom:4px; }
  .tfw-shop-grid .pc-price-link { font-size:13px; }
  .tfw-shop-grid .pc:hover .pc-img .pc-product { opacity:0; }
  .tfw-shop-grid .pc:hover .pc-img .pc-lifestyle { opacity:1; }
  .tfw-shop-grid .pc:hover .pc-img .pc-product img { transform:scale(1.03); }
  .tfw-shop-pagination { padding:48px 0 0; gap:6px; }
  .tfw-shop-pagination a,
  .tfw-shop-pagination span { width:40px; height:40px; font-size:13px; }
  .tfw-shop-interstitial__inner { flex-direction:row; align-items:center; justify-content:space-between; padding:24px 32px; text-align:left; gap:24px; }
  .tfw-shop-interstitial__text { align-items:flex-start; }
  .tfw-shop-interstitial__cta { width:auto; text-align:center; }
}
@media(min-width:1025px){
  .tfw-shop-grid { grid-template-columns:repeat(4, 1fr); }
}

/* ══════════════════════════════════════════════
   BUNDLE HERO BANNER — £19.97/bottle CTA
   ══════════════════════════════════════════════ */
.tfw-bundle-banner {
  margin-bottom:0;
}
.tfw-bundle-banner__link {
  display:block; text-decoration:none; color:inherit;
  background:var(--ink); padding:32px 20px; transition:opacity .22s ease;
  position:relative; overflow:hidden;
}
.tfw-bundle-banner__link:hover { opacity:0.95; }
.tfw-bundle-banner__img {
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  object-position:center center; z-index:0;
}
.tfw-bundle-banner__overlay {
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(to bottom, rgba(28,28,26,0.75) 0%, rgba(28,28,26,0.45) 60%, rgba(28,28,26,0.65) 100%);
}
.tfw-bundle-banner__content {
  display:flex; flex-direction:column; gap:16px; align-items:center; text-align:center;
  position:relative; z-index:2;
}
.tfw-bundle-banner__price {
  font-family:var(--fb); font-size:32px; font-weight:600; color:var(--white);
  letter-spacing:-0.02em; line-height:1.1;
}
.tfw-bundle-banner__sub {
  font-family:var(--fb); font-size:14px; font-weight:300; color:var(--white);
  line-height:1.5;
}
.tfw-bundle-banner__was {
  text-decoration:line-through; font-weight:300;
}
.tfw-bundle-banner__cta {
  display:inline-block; background:var(--white); color:var(--ink);
  font-family:var(--fb); font-size:12px; font-weight:500;
  letter-spacing:.1em; text-transform:uppercase;
  padding:14px 32px; min-height:44px;
  border:1px solid var(--white);
  transition:all .22s cubic-bezier(0.32,0.72,0,1);
}
.tfw-bundle-banner__link:hover .tfw-bundle-banner__cta {
  background:transparent; color:var(--white);
}
.tfw-bundle-banner__klarna {
  font-family:var(--fb); font-size:11px; font-weight:300; color:rgba(255,255,255,0.8);
  margin-top:4px;
}
.tfw-bundle-banner__free {
  font-family:var(--fb); font-size:11px; font-weight:400; color:var(--white);
  margin-top:4px; letter-spacing:0.02em;
}
.tfw-bundle-banner__actions {
  display:flex; flex-direction:column; align-items:center; gap:6px;
}

@media(min-width:769px) {
  .tfw-bundle-banner__link { padding:48px 48px; min-height:180px; }
  .tfw-bundle-banner__content {
    flex-direction:row; justify-content:space-between; text-align:left; gap:32px;
  }
  .tfw-bundle-banner__text { flex:1; }
  .tfw-bundle-banner__actions { align-items:flex-end; }
  .tfw-bundle-banner__price { font-size:36px; }
  .tfw-bundle-banner__overlay {
    background:linear-gradient(to right, rgba(28,28,26,0.9) 0%, rgba(28,28,26,0.6) 50%, rgba(28,28,26,0.35) 100%);
  }
}

/* ── Bundle filter tab highlight ── */
.tfw-shop-filters__bundle {
  font-weight:500; letter-spacing:0.8px;
}

/* ══════════════════════════════════════════════
   CURATED NUDGE — inline grid card
   ══════════════════════════════════════════════ */
.tfw-shop-curated-nudge { margin:4px 0; }
.tfw-shop-curated-nudge__inner {
  display:flex; flex-direction:column; align-items:center; text-align:center;
  border-top:1px solid var(--bd); border-bottom:1px solid var(--bd);
  padding:36px 20px; gap:14px;
  transition:background .22s ease;
}
.tfw-shop-curated-nudge__inner:hover { background:var(--bg2); }
.tfw-shop-curated-nudge__eyebrow {
  font-family:var(--fb); font-size:10px; font-weight:500;
  letter-spacing:0.15em; text-transform:uppercase; color:var(--ink);
}
.tfw-shop-curated-nudge__headline {
  font-family:var(--fd); font-size:clamp(22px,3vw,28px); font-weight:300;
  font-style:italic; color:var(--ink); line-height:1.3; max-width:480px;
}
.tfw-shop-curated-nudge__cta {
  font-family:var(--fb); font-size:12px; font-weight:500;
  letter-spacing:.1em; text-transform:uppercase; text-decoration:none;
  color:var(--white); background:var(--ink); padding:14px 32px;
  border:1px solid var(--ink); min-height:48px;
  display:inline-flex; align-items:center;
  transition:all .22s cubic-bezier(0.32,0.72,0,1);
}
.tfw-shop-curated-nudge__cta:hover {
  background:transparent; color:var(--ink);
}
@media(min-width:769px) {
  .tfw-shop-curated-nudge__inner {
    flex-direction:row; justify-content:space-between; text-align:left;
    padding:40px 48px; gap:32px;
  }
}

/* Hide extra social wall images on mobile */
.social-wall .sw-cell--desktop-only { display:none !important; }
@media(min-width:769px) { .social-wall .sw-cell--desktop-only { display:block !important; } }

/* ══════════════════════════════════════════════
   TRUST STRIP
   ══════════════════════════════════════════════ */
.tfw-shop-trust {
  display:flex; align-items:center; justify-content:center; gap:8px;
  padding:18px 16px; font-family:var(--fb); font-size:10px; font-weight:500;
  letter-spacing:0.1em; text-transform:uppercase;
  color:var(--ink); flex-wrap:wrap;
  border-top:1px solid var(--bd); border-bottom:1px solid var(--bd);
  margin-bottom:8px;
}
.tfw-shop-trust__stars { color:var(--gold); letter-spacing:-1px; font-size:11px; text-transform:none; }
.tfw-shop-trust__dot { color:var(--bd); }
.tfw-shop-trust__item { white-space:nowrap; }
@media(min-width:769px) {
  .tfw-shop-trust { font-size:11px; padding:20px 48px; gap:12px; letter-spacing:0.12em; }
}

/* ══════════════════════════════════════════════
   WISHLIST HEART ON PRODUCT CARDS
   ══════════════════════════════════════════════ */
.tfw-shop-grid .pc-wishlist {
  position:absolute; top:12px; right:12px; z-index:5;
  background:var(--white); border:1px solid var(--bd); padding:0;
  width:36px; height:36px; display:flex; align-items:center; justify-content:center;
  cursor:pointer; color:var(--ink); transition:all .22s ease;
}
.tfw-shop-grid .pc-wishlist:hover { border-color:var(--ink); }
.tfw-shop-grid .pc-wishlist svg { width:16px; height:16px; }
.tfw-shop-grid .pc { position:relative; }
@media(min-width:769px) {
  .tfw-shop-grid .pc-wishlist { width:40px; height:40px; }
  .tfw-shop-grid .pc-wishlist svg { width:18px; height:18px; }
}

/* ══════════════════════════════════════════════
   INSPIRED-BY PROMINENCE
   ══════════════════════════════════════════════ */
.tfw-shop-grid .pc-insp {
  font-family:var(--fb); font-size:11px; font-weight:500; font-style:normal;
  letter-spacing:0.04em; text-transform:uppercase; color:var(--ink);
  margin-bottom:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* ══════════════════════════════════════════════
   LOAD MORE BUTTON
   ══════════════════════════════════════════════ */
.tfw-shop-loadmore {
  display:flex; flex-direction:column; align-items:center; gap:14px;
  padding:48px 0 0; margin-top:24px;
}
.tfw-shop-loadmore__btn {
  font-family:var(--fb); font-size:12px; font-weight:500;
  letter-spacing:.1em; text-transform:uppercase;
  color:var(--white); background:var(--ink); border:1px solid var(--ink);
  padding:14px 40px; min-height:48px; cursor:pointer;
  transition:all .22s cubic-bezier(0.32,0.72,0,1);
}
.tfw-shop-loadmore__btn:hover {
  background:transparent; color:var(--ink);
}
.tfw-shop-loadmore__btn:disabled {
  cursor:wait;
}
.tfw-shop-loadmore__count {
  font-family:var(--fb); font-size:11px; font-weight:300; color:var(--ink);
  letter-spacing:0.02em;
}

/* ══════════════════════════════════════════════
   BACK TO TOP
   ══════════════════════════════════════════════ */
.tfw-back-to-top {
  position:fixed; bottom:72px; right:16px; z-index:190;
  width:44px; height:44px; background:var(--white); border:1px solid var(--bd);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; color:var(--ink);
  transform:translateY(20px); opacity:0; pointer-events:none;
  transition:all .3s cubic-bezier(0,0,0.2,1);
}
.tfw-back-to-top.is-visible {
  transform:translateY(0); opacity:1; pointer-events:auto;
}
.tfw-back-to-top:hover { border-color:var(--ink); background:var(--ink); color:var(--white); }
@media(min-width:769px) {
  .tfw-back-to-top { bottom:24px; right:24px; }
}

/* ══════════════════════════════════════════════
   EDITORIAL CARDS — Discovery Set + Scent Quiz
   ══════════════════════════════════════════════ */
.tfw-shop-editorial-card { margin:4px 0; }
.tfw-shop-editorial-card__link {
  display:block; text-decoration:none; color:inherit;
  background:var(--bg2); border:none; padding:40px 24px;
  text-align:center; transition:background .22s ease;
}
.tfw-shop-editorial-card__link:hover { background:#F0F0F2; }
.tfw-shop-editorial-card__content {
  display:flex; flex-direction:column; align-items:center; gap:8px;
  max-width:520px; margin:0 auto;
}
.tfw-shop-editorial-card__eyebrow {
  font-family:var(--fb); font-size:10px; font-weight:500;
  letter-spacing:0.15em; text-transform:uppercase; color:var(--ink);
}
.tfw-shop-editorial-card__headline {
  font-family:var(--fd); font-size:clamp(28px,4vw,38px); font-weight:300;
  font-style:italic; color:var(--ink); line-height:1.15;
}
.tfw-shop-editorial-card__sub {
  font-family:var(--fb); font-size:15px; font-weight:500; color:var(--ink);
  letter-spacing:-0.01em;
}
.tfw-shop-editorial-card__detail {
  font-family:var(--fb); font-size:13px; font-weight:300; color:var(--ink);
  line-height:1.55; max-width:400px;
}
.tfw-shop-editorial-card__cta {
  display:inline-flex; align-items:center; margin-top:14px;
  font-family:var(--fb); font-size:12px; font-weight:500;
  letter-spacing:.1em; text-transform:uppercase;
  color:var(--white); background:var(--ink); padding:14px 32px;
  border:1px solid var(--ink); min-height:48px;
  transition:all .22s cubic-bezier(0.32,0.72,0,1);
}
.tfw-shop-editorial-card__link:hover .tfw-shop-editorial-card__cta {
  background:transparent; color:var(--ink);
}

/* Quiz variant — dark background */
.tfw-shop-editorial-card--quiz .tfw-shop-editorial-card__link {
  background:var(--ink); border-color:var(--ink);
}
.tfw-shop-editorial-card--quiz .tfw-shop-editorial-card__link:hover { background:#2A2A28; }
.tfw-shop-editorial-card--quiz .tfw-shop-editorial-card__eyebrow { color:var(--white); }
.tfw-shop-editorial-card--quiz .tfw-shop-editorial-card__headline { color:var(--white); }
.tfw-shop-editorial-card--quiz .tfw-shop-editorial-card__sub { color:var(--white); }
.tfw-shop-editorial-card--quiz .tfw-shop-editorial-card__detail { color:var(--white); }
.tfw-shop-editorial-card--quiz .tfw-shop-editorial-card__cta {
  background:var(--white); color:var(--ink); border-color:var(--white);
}
.tfw-shop-editorial-card--quiz .tfw-shop-editorial-card__link:hover .tfw-shop-editorial-card__cta {
  background:transparent; color:var(--white);
}

/* Editorial card with image — stacked layout (all breakpoints) */
.tfw-shop-editorial-card--has-img .tfw-shop-editorial-card__link {
  display:flex; flex-direction:column; padding:0; overflow:hidden;
}
.tfw-shop-editorial-card__img {
  width:100%; height:280px; object-fit:cover; object-position:center 30%;
}
.tfw-shop-editorial-card--has-img .tfw-shop-editorial-card__content {
  padding:28px 24px 32px;
}

/* Quiz variant with ingredient background image */
.tfw-shop-editorial-card--quiz .tfw-shop-editorial-card__link {
  position:relative; overflow:hidden; min-height:280px;
  display:flex; align-items:center; justify-content:center;
}
.tfw-shop-editorial-card--quiz .tfw-shop-editorial-card__bg {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center center; z-index:0;
}
.tfw-shop-editorial-card--quiz .tfw-shop-editorial-card__overlay {
  position:absolute; inset:0; z-index:1;
  background:rgba(28,28,26,0.75);
}
.tfw-shop-editorial-card--quiz .tfw-shop-editorial-card__content {
  position:relative; z-index:2;
}

@media(min-width:769px) {
  .tfw-shop-editorial-card__link { padding:56px 48px; }
  .tfw-shop-editorial-card__content { gap:10px; }
  .tfw-shop-editorial-card__headline { font-size:clamp(32px,4vw,42px); }

  .tfw-shop-editorial-card--has-img .tfw-shop-editorial-card__link {
    flex-direction:row; align-items:stretch;
  }
  .tfw-shop-editorial-card--has-img .tfw-shop-editorial-card__img {
    width:40%; height:auto; min-height:280px; flex-shrink:0; object-position:center 40%;
  }
  .tfw-shop-editorial-card--has-img .tfw-shop-editorial-card__content {
    padding:40px 48px; justify-content:center; text-align:left; align-items:flex-start;
  }
}

/* ══════════════════════════════════════════════
   STICKY MOBILE BUNDLE BAR
   ══════════════════════════════════════════════ */
.tfw-sticky-bundle {
  position:fixed; bottom:0; left:0; right:0; z-index:200;
  background:var(--ink); transform:translateY(100%);
  transition:transform .35s cubic-bezier(0,0,0.2,1);
  display:none;
}
.tfw-sticky-bundle.is-visible { transform:translateY(0); }
.tfw-sticky-bundle.is-dismissed { display:none; }
.tfw-sticky-bundle__link {
  display:flex; align-items:center; justify-content:center; gap:6px;
  padding:12px 48px 12px 16px; text-decoration:none; min-height:52px;
}
.tfw-sticky-bundle__price {
  font-family:var(--fb); font-size:15px; font-weight:600; color:var(--white);
}
.tfw-sticky-bundle__sep {
  font-family:var(--fb); font-size:12px; color:rgba(255,255,255,0.5);
}
.tfw-sticky-bundle__desc {
  font-family:var(--fb); font-size:12px; font-weight:300; color:var(--white);
}
.tfw-sticky-bundle__cta {
  font-family:var(--fb); font-size:11px; font-weight:500;
  letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink); background:var(--white);
  padding:8px 16px; margin-left:auto; white-space:nowrap;
  border:1px solid var(--white);
  transition:all .22s ease;
}
.tfw-sticky-bundle__link:hover .tfw-sticky-bundle__cta {
  background:transparent; color:var(--white);
}
.tfw-sticky-bundle__close {
  position:absolute; top:50%; right:12px; transform:translateY(-50%);
  background:none; border:none; color:rgba(255,255,255,0.5);
  font-size:18px; cursor:pointer; padding:8px; min-width:44px; min-height:44px;
  display:flex; align-items:center; justify-content:center;
  transition:color .2s ease;
}
.tfw-sticky-bundle__close:hover { color:var(--white); }

/* Show only on mobile */
@media(max-width:768px) {
  .tfw-sticky-bundle { display:block; }
}

/* ══════════════════════════════════════════════
   VIBE HERO BANNER
   ══════════════════════════════════════════════ */
@keyframes vibeHeroIn {
  from { opacity:0; transform:translateY(24px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes vibeIconPulse {
  0%, 100% { transform:scale(1); }
  50%      { transform:scale(1.08); }
}
@keyframes vibeNoteIn {
  from { opacity:0; transform:translateY(8px); }
  to   { opacity:1; transform:translateY(0); }
}
@keyframes vibeMetaIn {
  from { opacity:0; }
  to   { opacity:1; }
}

.vibe-hero {
  padding:56px 20px 48px;
  text-align:center;
  animation:vibeHeroIn .7s cubic-bezier(0.16,1,0.3,1) both;
  position:relative;
  overflow:hidden;
  min-height:420px;
  display:flex; align-items:center; justify-content:center;
}

/* Full-width lifestyle banner image */
.vibe-hero picture {
  position:absolute; inset:0; z-index:0;
}
.vibe-hero__bg {
  width:100%; height:100%;
  object-fit:cover; object-position:center center;
}
.vibe-hero__overlay {
  position:absolute; inset:0; z-index:1;
}
/* Scattered editorial images */
.vibe-editorial {
  display:grid; grid-template-columns:1fr 1fr; gap:10px;
  padding:8px 0; overflow:hidden;
}
.vibe-editorial__img {
  width:100%; aspect-ratio:3/4; object-fit:cover;
  opacity:0; transform:translateY(16px);
  transition:opacity .6s cubic-bezier(0.16,1,0.3,1), transform .6s cubic-bezier(0.16,1,0.3,1);
}
.vibe-editorial.visible .vibe-editorial__img {
  opacity:1; transform:translateY(0);
}
.vibe-editorial.visible .vibe-editorial__img:nth-child(2) {
  transition-delay:.15s;
}
.vibe-page[data-vibe="sweet"] .vibe-editorial__img { border-radius:0; }
@media(min-width:769px){
  .vibe-editorial { gap:16px; }
  .vibe-editorial__img { aspect-ratio:4/5; }
}
.vibe-hero__inner {
  max-width:640px; margin:0 auto; position:relative; z-index:2;
}
.vibe-hero__icon {
  font-size:32px; display:block; margin-bottom:12px;
  animation:vibeIconPulse 3s cubic-bezier(0.4,0,0.2,1) infinite;
}
.vibe-hero__title {
  font-family:var(--fd); font-size:clamp(40px,7vw,64px); font-weight:300;
  letter-spacing:-0.02em; line-height:1.1; margin-bottom:16px;
}
.vibe-hero__notes {
  display:flex; align-items:center; justify-content:center; gap:6px;
  margin-bottom:20px; flex-wrap:wrap;
}
.vibe-hero__note {
  font-family:var(--fb); font-size:10px; font-weight:500;
  letter-spacing:1.2px; text-transform:uppercase;
  padding:5px 12px; border:1px solid currentColor;
  opacity:0.85;
  opacity:0; animation:vibeNoteIn .5s cubic-bezier(0.16,1,0.3,1) forwards;
}
.vibe-hero__tagline {
  font-family:var(--fd); font-size:clamp(16px,2.5vw,20px); font-weight:300;
  font-style:italic; margin-bottom:20px;
  opacity:0; animation:vibeMetaIn .6s cubic-bezier(0.16,1,0.3,1) .5s forwards;
}
.vibe-hero__meta {
  display:flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--fb); font-size:12px; font-weight:400; letter-spacing:0.5px;
  opacity:0; animation:vibeMetaIn .6s cubic-bezier(0.16,1,0.3,1) .7s forwards;
}
.vibe-hero__dot { opacity:0.4; }

/* Dark vibe hero — light text adjustments */
.vibe-hero--dark .vibe-hero__note { border-color:rgba(255,255,255,0.3); }

/* ── Vibe editorial quote block ── */
.vibe-quote {
  padding:40px 20px; text-align:center; border-top:1px solid var(--bd);
}
.vibe-quote__text {
  font-family:var(--fd); font-size:18px; font-weight:300;
  font-style:italic; line-height:1.5; color:var(--ink);
  max-width:600px; margin:0 auto 20px; quotes:none;
}
.vibe-quote__cta {
  font-family:var(--fb); font-size:12px; font-weight:500;
  letter-spacing:1.5px; text-transform:uppercase; text-decoration:none;
  color:var(--ink); padding:12px 28px; border:1px solid var(--ink);
  display:inline-block;
  transition:all .22s cubic-bezier(0.32,0.72,0,1);
}
.vibe-quote__cta:hover {
  background:var(--ink); color:var(--white);
}

/* Vibe quote on dark pages */
.vibe-page[data-vibe="bold"] .vibe-quote__text { color:#E8E6E1; }
.vibe-page[data-vibe="bold"] .vibe-quote__cta { color:#E8E6E1; border-color:#E8E6E1; }
.vibe-page[data-vibe="bold"] .vibe-quote__cta:hover { background:#E8E6E1; color:#0A0A0A; }
.vibe-page[data-vibe="date-night"] .vibe-quote__text { color:#F0E6DC; }
.vibe-page[data-vibe="date-night"] .vibe-quote__cta { color:#F0E6DC; border-color:#F0E6DC; }
.vibe-page[data-vibe="date-night"] .vibe-quote__cta:hover { background:#F0E6DC; color:#2A1A12; }

@media(min-width:769px){
  .vibe-hero { padding:96px 48px 76px; min-height:520px; }
  .vibe-hero__icon { font-size:40px; margin-bottom:16px; }
  .vibe-hero__title { margin-bottom:20px; }
  .vibe-hero__notes { gap:8px; }
  .vibe-hero__note { font-size:11px; padding:6px 16px; letter-spacing:1.5px; }
  .vibe-hero__tagline { margin-bottom:24px; }
  .vibe-hero__meta { font-size:13px; gap:12px; }
  .vibe-quote { padding:58px 32px; }
  .vibe-quote__text { font-size:clamp(20px,3vw,28px); margin-bottom:24px; }
}

/* ══════════════════════════════════════════════
   CROSS-VIBE NAVIGATION
   ══════════════════════════════════════════════ */
.vibe-explore {
  padding:48px 0 0; margin-bottom:64px; border-top:1px solid var(--bd);
  text-align:center;
  opacity:0; transform:translateY(20px);
  transition:opacity .6s cubic-bezier(0.16,1,0.3,1), transform .6s cubic-bezier(0.16,1,0.3,1);
}
.vibe-explore.visible { opacity:1; transform:translateY(0); }
.vibe-explore__label {
  font-family:var(--fb); font-size:10px; font-weight:500;
  letter-spacing:2px; text-transform:uppercase; color:var(--ink);
  margin-bottom:16px;
}
.vibe-explore__grid {
  display:flex; align-items:center; justify-content:flex-start; gap:10px;
  flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch;
  scrollbar-width:none; padding:0 4px 8px;
}
.vibe-explore__grid::-webkit-scrollbar { display:none; }
.vibe-explore__pill {
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--fb); font-size:11px; font-weight:400; letter-spacing:0.8px;
  text-transform:uppercase; text-decoration:none; color:var(--ink);
  padding:8px 16px; border:1px solid var(--bd); flex-shrink:0;
  transition:all .22s cubic-bezier(0.32,0.72,0,1);
}
.vibe-explore__pill:hover {
  border-color:var(--ink); background:var(--ink); color:var(--white);
  transform:translateY(-2px); box-shadow:0 4px 12px rgba(28,28,26,0.08);
}
.vibe-explore__pill:active { transform:scale(0.97); transition-duration:.1s; }
.vibe-explore__pill-icon { font-size:16px; line-height:1; }
.vibe-explore__pill--active {
  background:var(--ink); color:var(--white); border-color:var(--ink);
  pointer-events:none;
}

@media(min-width:769px){
  .vibe-explore { padding:68px 0 0; margin-bottom:80px; }
  .vibe-explore__grid {
    justify-content:center; flex-wrap:wrap;
    overflow-x:visible; scrollbar-width:auto; padding:0;
  }
  .vibe-explore__pill { font-size:12px; padding:10px 20px; flex-shrink:0; }
}

/* ══════════════════════════════════════════════
   VIBE BUNDLE CTA (contextual)
   ══════════════════════════════════════════════ */
.tfw-shop-interstitial--vibe .tfw-shop-interstitial__kicker { color:var(--gold); }

/* ══════════════════════════════════════════════
   ENHANCED CARD ANIMATIONS
   ══════════════════════════════════════════════ */
.tfw-shop-grid .reveal-child {
  opacity:0; transform:translateY(20px);
  transition:opacity .5s cubic-bezier(0.16,1,0.3,1), transform .5s cubic-bezier(0.16,1,0.3,1);
}
.tfw-shop-grid .reveal-child.visible {
  opacity:1; transform:translateY(0);
}

/* ══════════════════════════════════════════════════════════
   PER-VIBE PAGE TREATMENTS
   Each vibe gets its own visual personality throughout
   ══════════════════════════════════════════════════════════ */
.vibe-page { transition:background .4s cubic-bezier(0.16,1,0.3,1); }

/* ─────────────────────────────
   BOLD — Full dark mode
   ───────────────────────────── */
.vibe-page[data-vibe="bold"] {
  background:#0A0A0A;
}
.vibe-page[data-vibe="bold"] .tfw-shop {
  color:#E8E6E1;
}
.vibe-page[data-vibe="bold"] .tfw-shop-controls {
  background:#0A0A0A;
}
.vibe-page[data-vibe="bold"] .tfw-shop-filters a {
  color:#E8E6E1; border-color:#3A3A38;
}
.vibe-page[data-vibe="bold"] .tfw-shop-filters a:hover {
  border-color:#888;
}
.vibe-page[data-vibe="bold"] .tfw-shop-filters a.active {
  background:#E8E6E1; color:#0A0A0A; border-color:#E8E6E1;
}
.vibe-page[data-vibe="bold"] .tfw-shop-sort select {
  color:#E8E6E1; background:#262624; border-color:#3A3A38;
}
.vibe-page[data-vibe="bold"] .tfw-shop-sort::after {
  border-top-color:#E8E6E1;
}
.vibe-page[data-vibe="bold"] .tfw-shop-count {
  color:#999;
}

/* Bold — Product cards */
.vibe-page[data-vibe="bold"] .pc {
  background:#262624;
}
.vibe-page[data-vibe="bold"] .pc:hover {
  box-shadow:0 12px 40px rgba(0,0,0,0.5);
  transform:translateY(-6px);
}
.vibe-page[data-vibe="bold"] .pc-info {
  border-top:1px solid #3A3A38;
}
.vibe-page[data-vibe="bold"] .pc-insp {
  color:#AAA;
}
.vibe-page[data-vibe="bold"] .pc-name {
  color:#E8E6E1;
}
.vibe-page[data-vibe="bold"] .pc-price-link {
  color:#E8E6E1;
}
.vibe-page[data-vibe="bold"] .pc-reviews {
  color:#AAA;
}
.vibe-page[data-vibe="bold"] .pc-quick-add {
  background:#E8E6E1; color:#0A0A0A; border-top-color:#3A3A38;
}
.vibe-page[data-vibe="bold"] .pc-quick-add:hover {
  background:#FFFFFF;
}
.vibe-page[data-vibe="bold"] .pc-bdg--new,
.vibe-page[data-vibe="bold"] .pc-bdg--pick {
  background:#333; color:#E8E6E1; border-color:#555;
}

/* Bold — Interstitial inverted */
.vibe-page[data-vibe="bold"] .tfw-shop-interstitial__inner {
  background:#E8E6E1;
}
.vibe-page[data-vibe="bold"] .tfw-shop-interstitial__headline {
  color:#0A0A0A;
}
.vibe-page[data-vibe="bold"] .tfw-shop-interstitial__kicker {
  color:var(--bundle);
}
.vibe-page[data-vibe="bold"] .tfw-shop-interstitial__cta {
  background:#0A0A0A; color:#E8E6E1;
}
.vibe-page[data-vibe="bold"] .tfw-shop-interstitial__cta:hover {
  background:#333;
}

/* Bold — Pagination */
.vibe-page[data-vibe="bold"] .tfw-shop-pagination a,
.vibe-page[data-vibe="bold"] .tfw-shop-pagination span {
  color:#E8E6E1; border-color:#3A3A38;
}
.vibe-page[data-vibe="bold"] .tfw-shop-pagination a:hover {
  border-color:#888;
}
.vibe-page[data-vibe="bold"] .tfw-shop-pagination span.current {
  background:#E8E6E1; color:#0A0A0A; border-color:#E8E6E1;
}

/* Bold — Cross-vibe nav */
.vibe-page[data-vibe="bold"] .vibe-explore__label {
  color:#999;
}
.vibe-page[data-vibe="bold"] .vibe-explore__pill {
  color:#E8E6E1; border-color:#3A3A38;
}
.vibe-page[data-vibe="bold"] .vibe-explore__pill:hover {
  background:#E8E6E1; color:#0A0A0A; border-color:#E8E6E1;
  box-shadow:0 4px 16px rgba(0,0,0,0.3);
}
.vibe-page[data-vibe="bold"] .vibe-explore__pill--active {
  background:#E8E6E1; color:#0A0A0A; border-color:#E8E6E1;
}

/* Bold controls background already set in base vibe styles above */

/* ─────────────────────────────
   DATE NIGHT — Warm intimate
   ───────────────────────────── */
.vibe-page[data-vibe="date-night"] {
  background:#2A1A12;
}
.vibe-page[data-vibe="date-night"] .tfw-shop {
  color:#F0E6DC;
}
.vibe-page[data-vibe="date-night"] .tfw-shop-controls {
  background:#2A1A12;
}
.vibe-page[data-vibe="date-night"] .tfw-shop-filters a {
  color:#F0E6DC; border-color:#4A3328;
}
.vibe-page[data-vibe="date-night"] .tfw-shop-filters a:hover {
  border-color:var(--bundle);
}
.vibe-page[data-vibe="date-night"] .tfw-shop-filters a.active {
  background:#F0E6DC; color:#2A1A12; border-color:#F0E6DC;
}
.vibe-page[data-vibe="date-night"] .tfw-shop-sort select {
  color:#F0E6DC; background:#3A2518; border-color:#4A3328;
}
.vibe-page[data-vibe="date-night"] .tfw-shop-sort::after {
  border-top-color:#F0E6DC;
}
.vibe-page[data-vibe="date-night"] .tfw-shop-count {
  color:#A88F7D;
}

/* Date Night — Cards */
.vibe-page[data-vibe="date-night"] .pc {
  background:#3A2518;
}
.vibe-page[data-vibe="date-night"] .pc:hover {
  box-shadow:0 12px 36px rgba(42,26,18,0.6);
  transform:translateY(-5px);
}
.vibe-page[data-vibe="date-night"] .pc-info {
  border-top:1px solid #4A3328;
}
.vibe-page[data-vibe="date-night"] .pc-insp {
  color:#B8A090;
}
.vibe-page[data-vibe="date-night"] .pc-name {
  color:#F0E6DC;
}
.vibe-page[data-vibe="date-night"] .pc-price-link {
  color:#F0E6DC;
}
.vibe-page[data-vibe="date-night"] .pc-reviews {
  color:#B8A090;
}
.vibe-page[data-vibe="date-night"] .pc-quick-add {
  background:#F0E6DC; color:#2A1A12; border-top-color:#4A3328;
}
.vibe-page[data-vibe="date-night"] .pc-quick-add:hover {
  background:#FFFFFF;
}
.vibe-page[data-vibe="date-night"] .pc-bdg--new,
.vibe-page[data-vibe="date-night"] .pc-bdg--pick {
  background:#4A3328; color:#F0E6DC; border-color:#5A4338;
}
.vibe-page[data-vibe="date-night"] .pc-bdg--best,
.vibe-page[data-vibe="date-night"] .pc-bdg--trend {
  background:#F0E6DC; color:#2A1A12;
}

/* Date Night — Interstitial */
.vibe-page[data-vibe="date-night"] .tfw-shop-interstitial__inner {
  background:#F0E6DC;
}
.vibe-page[data-vibe="date-night"] .tfw-shop-interstitial__headline {
  color:#2A1A12;
}
.vibe-page[data-vibe="date-night"] .tfw-shop-interstitial__kicker {
  color:var(--bundle);
}
.vibe-page[data-vibe="date-night"] .tfw-shop-interstitial__cta {
  background:#2A1A12; color:#F0E6DC;
}

/* Date Night — Pagination */
.vibe-page[data-vibe="date-night"] .tfw-shop-pagination a,
.vibe-page[data-vibe="date-night"] .tfw-shop-pagination span {
  color:#F0E6DC; border-color:#4A3328;
}
.vibe-page[data-vibe="date-night"] .tfw-shop-pagination span.current {
  background:#F0E6DC; color:#2A1A12; border-color:#F0E6DC;
}

/* Date Night — Cross-vibe nav */
.vibe-page[data-vibe="date-night"] .vibe-explore__label {
  color:#A88F7D;
}
.vibe-page[data-vibe="date-night"] .vibe-explore__pill {
  color:#F0E6DC; border-color:#4A3328;
}
.vibe-page[data-vibe="date-night"] .vibe-explore__pill:hover {
  background:#F0E6DC; color:#2A1A12; border-color:#F0E6DC;
}
.vibe-page[data-vibe="date-night"] .vibe-explore__pill--active {
  background:#F0E6DC; color:#2A1A12; border-color:#F0E6DC;
}

/* Date Night controls background already set in base vibe styles above */

/* ─────────────────────────────
   FRESH — Clean airy minimal
   ───────────────────────────── */
.vibe-page[data-vibe="fresh"] {
  background:#F2F7F5;
}
.vibe-page[data-vibe="fresh"] .tfw-shop {
  max-width:1480px; /* Slightly wider, more breathing room */
}
.vibe-page[data-vibe="fresh"] .tfw-shop-grid {
  gap:14px; /* Mobile: slightly more than default 12px */
}
.vibe-page[data-vibe="fresh"] .pc {
  border:1px solid #E4EDE9;
}
.vibe-page[data-vibe="fresh"] .pc:hover {
  border-color:#C0D8CE;
  box-shadow:0 8px 28px rgba(0,60,40,0.06);
  transform:translateY(-4px);
}
.vibe-page[data-vibe="fresh"] .tfw-shop-controls {
  background:#F2F7F5;
}
.vibe-page[data-vibe="fresh"] .tfw-shop-filters a {
  border-color:#C0D8CE;
}
.vibe-page[data-vibe="fresh"] .tfw-shop-interstitial__inner {
  background:#0A0A0A;
}

@media(min-width:769px){
  .vibe-page[data-vibe="fresh"] .tfw-shop-grid { gap:24px; }
}

/* ─────────────────────────────
   SWEET — Soft warm playful
   ───────────────────────────── */
.vibe-page[data-vibe="sweet"] {
  background:#FDF6F3;
}
.vibe-page[data-vibe="sweet"] .pc {
  border-radius:0; overflow:hidden;
  border:1px solid #F0E0DA;
}
.vibe-page[data-vibe="sweet"] .pc:hover {
  box-shadow:0 10px 30px rgba(160,80,60,0.08);
  transform:translateY(-5px);
}
.vibe-page[data-vibe="sweet"] .pc-img {
  border-radius:0;
}
.vibe-page[data-vibe="sweet"] .pc-quick-add {
  border-radius:0;
}
.vibe-page[data-vibe="sweet"] .tfw-shop-controls {
  background:#FDF6F3;
}
.vibe-page[data-vibe="sweet"] .tfw-shop-filters a {
  border-color:#F0E0DA; border-radius:0;
}
.vibe-page[data-vibe="sweet"] .tfw-shop-filters a.active {
  border-radius:0;
}
.vibe-page[data-vibe="sweet"] .vibe-explore__pill {
  border-radius:0;
}
.vibe-page[data-vibe="sweet"] .tfw-shop-interstitial__inner {
  border-radius:0;
}

/* Sweet controls background already set in base vibe styles above */

/* ─────────────────────────────
   SIGNATURE — Classic elegant
   ───────────────────────────── */
.vibe-page[data-vibe="signature"] {
  background:#FAF7F4;
}
.vibe-page[data-vibe="signature"] .pc {
  border-bottom:2px solid var(--ink);
}
.vibe-page[data-vibe="signature"] .pc:hover {
  box-shadow:0 6px 20px rgba(28,28,26,0.08);
  transform:translateY(-3px);
}
.vibe-page[data-vibe="signature"] .pc-name {
  font-family:var(--fd); font-weight:500; font-style:italic;
  text-transform:none; font-size:18px; letter-spacing:0;
}
.vibe-page[data-vibe="signature"] .tfw-shop-controls {
  background:#FAF7F4;
}
.vibe-page[data-vibe="signature"] .tfw-shop-filters a {
  border-color:#D8D2CA;
}

@media(min-width:769px){
  .vibe-page[data-vibe="signature"] .pc-name { font-size:17px; }
}

/* ─────────────────────────────
   HOLIDAY — Sun-kissed golden
   ───────────────────────────── */
.vibe-page[data-vibe="holiday"] {
  background:#FBF6ED;
}
.vibe-page[data-vibe="holiday"] .pc {
  border-radius:0; overflow:hidden;
}
.vibe-page[data-vibe="holiday"] .pc:hover {
  box-shadow:0 10px 30px rgba(193,127,36,0.1);
  transform:translateY(-5px);
}
.vibe-page[data-vibe="holiday"] .tfw-shop-controls {
  background:#FBF6ED;
}
.vibe-page[data-vibe="holiday"] .tfw-shop-filters a {
  border-color:#E8DCC8;
}
.vibe-page[data-vibe="holiday"] .tfw-shop-filters a.active {
  background:var(--ink); border-color:var(--ink); color:var(--white);
}
.vibe-page[data-vibe="holiday"] .tfw-shop-interstitial__inner {
  background:var(--ink);
}
.vibe-page[data-vibe="holiday"] .tfw-shop-interstitial__kicker {
  color:rgba(255,255,255,0.7);
}
.vibe-page[data-vibe="holiday"] .tfw-shop-interstitial__cta {
  color:var(--ink);
}
.vibe-page[data-vibe="holiday"] .vibe-explore__pill:hover {
  background:var(--ink); border-color:var(--ink); color:var(--white);
}

/* Holiday controls background already set in base vibe styles above */
