/*
 * TCG Paradise — design system
 *
 * Ported from the Claude Design project "TCG Paradise" (7 screens). The
 * design uses per-element inline styles; here every recurring pattern is a
 * class so WooCommerce's own markup can wear it. Tokens first, then layout,
 * then components in the order they appear on the site.
 *
 * Breakpoints follow the design: 1024 (nav collapse / hero stack),
 * 900 (shop + PDP stack), 860 (grids to 2 col), 560 (phone).
 */

/* ============================================================
   1. TOKENS
   ============================================================ */

:root {
  /* neutrals */
  --tgcp-ink: #181818;
  --tgcp-paper: #fff;
  --tgcp-cream: #FAF9F5;
  --tgcp-cream-2: #F4F2EC;
  --tgcp-cream-3: #F3F1EA;

  /* rules */
  --tgcp-line: #EBE9E2;
  --tgcp-line-soft: #F1EFE8;
  --tgcp-line-strong: #DCD9CF;
  --tgcp-rule: #CFCBC0;

  /* brand */
  --tgcp-red: #E0241B;
  --tgcp-red-deep: #B81810;
  --tgcp-navy: #14203A;
  --tgcp-navy-2: #1f2c4a;

  /* text */
  --tgcp-text: #55524B;
  --tgcp-text-2: #8A867C;
  --tgcp-text-3: #A9A59B;
  --tgcp-text-4: #B6B2A8;
  --tgcp-text-5: #C2BEB4;

  /* status */
  --tgcp-green: #1E8E4E;
  --tgcp-green-line: #BFE3CC;
  --tgcp-gold: #B07000;
  --tgcp-gold-line: #E8D5A8;
  --tgcp-red-line: #F3C4C1;

  /* type */
  --tgcp-display: 'Newsreader', Georgia, 'Times New Roman', serif;
  --tgcp-sans: 'Hanken Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --tgcp-mincho: 'Shippori Mincho', 'Yu Mincho', serif;

  /* metrics */
  --tgcp-wrap: 1280px;
  --tgcp-wrap-narrow: 1080px;
  --tgcp-gutter: 40px;
  --tgcp-radius: 2px;
  --tgcp-radius-lg: 6px;
  --tgcp-ease: cubic-bezier(.2, .7, .2, 1);
  --tgcp-header-offset: 96px;
}

/* ============================================================
   2. RESET / BASE
   ============================================================ */

*,
*::before,
*::after { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--tgcp-paper);
  color: var(--tgcp-ink);
  font-family: var(--tgcp-sans);
  font-size: 15px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

::selection { background: var(--tgcp-red); color: #fff; }

a { color: inherit; }

img { max-width: 100%; height: auto; }

button { font-family: inherit; }

input,
select,
textarea { font-family: inherit; }

input::placeholder,
textarea::placeholder { color: var(--tgcp-text-3); }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--tgcp-display);
  font-weight: 400;
  letter-spacing: -.01em;
  line-height: 1.15;
  margin: 0 0 .5em;
}

p { margin: 0 0 1em; }

.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.skip-link:focus {
  position: fixed;
  top: 8px; left: 8px;
  z-index: 200;
  width: auto; height: auto;
  clip: auto;
  background: var(--tgcp-ink);
  color: #fff;
  padding: 12px 18px;
  border-radius: var(--tgcp-radius);
}

/* ============================================================
   3. LAYOUT PRIMITIVES
   ============================================================ */

.tgcp-wrap {
  max-width: var(--tgcp-wrap);
  margin: 0 auto;
  padding-left: var(--tgcp-gutter);
  padding-right: var(--tgcp-gutter);
}

.tgcp-wrap--narrow { max-width: var(--tgcp-wrap-narrow); }

.tgcp-main { display: block; }

/* Section heading pair: kanji · rule · uppercase kicker */
.tgcp-eyebrow {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-bottom: 14px;
}

.tgcp-eyebrow__kanji {
  font-family: var(--tgcp-mincho);
  color: var(--tgcp-red);
  font-size: 14px;
}

.tgcp-eyebrow__rule {
  height: 1px;
  width: 34px;
  background: var(--tgcp-rule);
  display: block;
}

.tgcp-eyebrow__label {
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--tgcp-text-2);
  font-weight: 600;
}

.tgcp-page-title {
  font-family: var(--tgcp-display);
  font-weight: 400;
  font-size: 46px;
  line-height: 1;
  letter-spacing: -.015em;
  margin: 0;
}

.tgcp-section-title {
  font-family: var(--tgcp-display);
  font-weight: 400;
  font-size: 30px;
  letter-spacing: -.01em;
  margin: 0;
}

.tgcp-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 28px;
}

.tgcp-section-head--ruled {
  border-bottom: 1px solid var(--tgcp-line);
  padding-bottom: 18px;
}

/* ============================================================
   4. LINKS & BUTTONS
   ============================================================ */

.tgcp-navlink {
  position: relative;
  text-decoration: none;
}

.tgcp-navlink::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -6px;
  height: 1.5px;
  width: 0;
  background: var(--tgcp-red);
  transition: width .35s var(--tgcp-ease);
}

.tgcp-navlink:hover::after,
.tgcp-navlink:focus-visible::after { width: 100%; }

.tgcp-arrowlink {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .03em;
  text-decoration: none;
  color: var(--tgcp-text);
}

.tgcp-arrowlink .tgcp-ar { transition: transform .35s; }
.tgcp-arrowlink:hover .tgcp-ar { transform: translateX(6px); }
.tgcp-arrowlink--back .tgcp-ar { transform: rotate(180deg); }
.tgcp-arrowlink--back:hover .tgcp-ar { transform: rotate(180deg) translateX(6px); }

/* Solid button — the site's primary action */
.tgcp-btn,
.tgcp-main .button,
.tgcp-main button.button,
.tgcp-main a.button,
.tgcp-main input[type="submit"],
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: var(--tgcp-ink);
  color: #fff;
  border: none;
  border-radius: var(--tgcp-radius);
  padding: 15px 26px;
  font-family: var(--tgcp-sans);
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: .04em;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition: background .25s;
}

.tgcp-btn:hover,
.tgcp-main .button:hover,
.tgcp-main button.button:hover,
.tgcp-main a.button:hover,
.tgcp-main input[type="submit"]:hover {
  background: var(--tgcp-red);
  color: #fff;
}

.tgcp-btn--red { background: var(--tgcp-red); }
.tgcp-btn--red:hover { background: var(--tgcp-ink); }

.tgcp-btn--ghost,
.tgcp-main .button.tgcp-btn--ghost {
  background: var(--tgcp-paper);
  color: var(--tgcp-ink);
  border: 1px solid var(--tgcp-ink);
}

.tgcp-btn--ghost:hover,
.tgcp-main .button.tgcp-btn--ghost:hover {
  background: var(--tgcp-ink);
  color: #fff;
}

.tgcp-btn--block { width: 100%; }
.tgcp-btn--tall { height: 50px; padding-top: 0; padding-bottom: 0; }

.tgcp-btn[disabled],
.tgcp-btn.disabled {
  background: var(--tgcp-rule);
  cursor: default;
}

/* Text button (Rimuovi, Modifica…) */
.tgcp-linkbtn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  font-family: inherit;
  font-size: 11.5px;
  color: var(--tgcp-text-3);
  text-align: left;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.tgcp-linkbtn--red { color: var(--tgcp-red); font-weight: 600; font-size: 12px; }

/* Form field */
.tgcp-field,
.tgcp-main input[type="text"],
.tgcp-main input[type="email"],
.tgcp-main input[type="password"],
.tgcp-main input[type="tel"],
.tgcp-main input[type="url"],
.tgcp-main input[type="number"],
.tgcp-main input[type="search"],
.tgcp-main textarea,
.tgcp-main select {
  width: 100%;
  border: 1px solid var(--tgcp-line-strong);
  border-radius: var(--tgcp-radius);
  padding: 13px 14px;
  font-family: inherit;
  font-size: 13.5px;
  color: var(--tgcp-ink);
  background: var(--tgcp-paper);
  outline: none;
  transition: border-color .25s;
}

.tgcp-field:focus,
.tgcp-main input:focus,
.tgcp-main textarea:focus,
.tgcp-main select:focus { border-color: var(--tgcp-ink); }

.tgcp-field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

input[type="checkbox"],
input[type="radio"] { accent-color: var(--tgcp-red); }

/* ============================================================
   5. ANNOUNCEMENT BAR + HEADER
   ============================================================ */

.tgcp-announce {
  background: var(--tgcp-ink);
  color: var(--tgcp-cream-3);
  font-size: 11.5px;
  letter-spacing: .16em;
  text-transform: uppercase;
  font-weight: 500;
}

.tgcp-announce__row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  flex-wrap: wrap;
  white-space: nowrap;
  padding-top: 9px;
  padding-bottom: 9px;
}

.tgcp-announce__dot {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--tgcp-red);
  display: inline-block;
}

.tgcp-announce__dot--grey { background: #5A5A5A; }

.tgcp-header {
  position: sticky;
  top: 0;
  z-index: 60;
  background: rgba(255, 255, 255, .9);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--tgcp-line);
}

.tgcp-header__row {
  display: flex;
  align-items: center;
  gap: 30px;
  padding-top: 15px;
  padding-bottom: 15px;
}

.tgcp-brand {
  display: flex;
  align-items: center;
  gap: 11px;
  text-decoration: none;
  flex-shrink: 0;
}

.tgcp-brand__mark { display: block; }

.tgcp-brand__name {
  font-family: var(--tgcp-mincho);
  font-weight: 600;
  font-size: 20px;
  letter-spacing: .02em;
  white-space: nowrap;
}

.tgcp-brand__logo { max-height: 40px; width: auto; }

/* primary nav */
.tgcp-nav {
  display: flex;
  align-items: center;
  gap: 26px;
  font-size: 13.5px;
  font-weight: 500;
  margin-left: 8px;
}

.tgcp-nav ul {
  display: flex;
  align-items: center;
  gap: 26px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.tgcp-nav a {
  position: relative;
  text-decoration: none;
}

.tgcp-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -6px;
  height: 1.5px;
  width: 0;
  background: var(--tgcp-red);
  transition: width .35s var(--tgcp-ease);
}

.tgcp-nav a:hover::after { width: 100%; }

.tgcp-nav .current-menu-item > a,
.tgcp-nav .current_page_item > a,
.tgcp-nav .current-menu-ancestor > a { color: var(--tgcp-red); }

/* search */
.tgcp-search {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 9px;
  background: var(--tgcp-cream-2);
  border: 1px solid var(--tgcp-line);
  border-radius: var(--tgcp-radius);
  padding: 9px 13px;
  width: 280px;
  transition: border-color .3s;
}

.tgcp-search:focus-within { border-color: var(--tgcp-ink); }

.tgcp-search input,
.tgcp-main .tgcp-search input[type="search"] {
  border: none;
  background: none;
  outline: none;
  padding: 0;
  font-family: inherit;
  font-size: 13px;
  width: 100%;
  color: var(--tgcp-ink);
}

.tgcp-search__submit {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  display: flex;
}

.tgcp-search-mobile { display: none; padding-bottom: 14px; }
.tgcp-search-mobile .tgcp-search { margin-left: 0; width: 100%; padding: 12px 13px; }
.tgcp-search-mobile .tgcp-search input { font-size: 14px; }

/* header icons */
.tgcp-hdr-icons {
  display: flex;
  align-items: center;
  gap: 18px;
}

.tgcp-hdr-icon {
  display: flex;
  position: relative;
  text-decoration: none;
  color: var(--tgcp-ink);
}

.tgcp-hdr-icon--active { color: var(--tgcp-red); }

.tgcp-count {
  position: absolute;
  top: -7px;
  right: -8px;
  background: var(--tgcp-red);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.tgcp-count:empty,
.tgcp-count[data-count="0"] { display: none; }

.tgcp-menu-btn {
  display: none;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  color: var(--tgcp-ink);
}

.tgcp-menu-btn .tgcp-icon-close { display: none; }
.tgcp-menu-btn[aria-expanded="true"] .tgcp-icon-close { display: block; }
.tgcp-menu-btn[aria-expanded="true"] .tgcp-icon-burger { display: none; }

/* mobile panel */
.tgcp-mobile-panel {
  display: none;
  flex-direction: column;
  border-top: 1px solid var(--tgcp-line);
  padding-bottom: 18px;
}

.tgcp-mobile-panel.is-open { display: flex; }

.tgcp-mobile-panel ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}

.tgcp-mobile-panel a {
  font-size: 15px;
  font-weight: 500;
  padding: 13px 2px;
  border-bottom: 1px solid var(--tgcp-line-soft);
  text-decoration: none;
  display: block;
}

.tgcp-mobile-panel li:last-child a { border-bottom: none; }

/* Minimal header used on checkout + account */
.tgcp-header--slim {
  position: static;
  background: var(--tgcp-paper);
  backdrop-filter: none;
}

.tgcp-header--slim .tgcp-header__row {
  justify-content: space-between;
  padding-top: 16px;
  padding-bottom: 16px;
}

.tgcp-header__secure {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--tgcp-text-2);
}

/* ============================================================
   6. FOOTER
   ============================================================ */

.tgcp-footer { background: var(--tgcp-paper); }
.tgcp-footer--ruled { border-top: 1px solid var(--tgcp-line); }

.tgcp-footer__grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 40px;
  padding-top: 64px;
  padding-bottom: 30px;
}

.tgcp-footer__blurb {
  font-size: 13px;
  line-height: 1.65;
  color: var(--tgcp-text-2);
  max-width: 300px;
}

.tgcp-footer__head {
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--tgcp-text-3);
  font-weight: 600;
  margin-bottom: 16px;
}

.tgcp-footer__links {
  display: flex;
  flex-direction: column;
  gap: 11px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.tgcp-footer__links a {
  font-size: 13.5px;
  color: var(--tgcp-text);
  text-decoration: none;
  position: relative;
}

.tgcp-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding-top: 22px;
  padding-bottom: 22px;
  border-top: 1px solid var(--tgcp-line);
  font-size: 12px;
  color: var(--tgcp-text-3);
}

.tgcp-footer__legal {
  display: flex;
  gap: 20px;
}

.tgcp-footer__legal a { text-decoration: none; }

/* ============================================================
   7. HERO
   ============================================================ */

.tgcp-hero { border-bottom: 1px solid var(--tgcp-line); }

.tgcp-hero__grid {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  min-height: 560px;
}

.tgcp-hero__left {
  padding: 64px 56px 64px 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-right: 1px solid var(--tgcp-line);
}

.tgcp-hero__eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 26px;
}

.tgcp-hero__eyebrow .tgcp-eyebrow__kanji { font-size: 15px; }
.tgcp-hero__eyebrow .tgcp-eyebrow__rule { width: 40px; }
.tgcp-hero__eyebrow .tgcp-eyebrow__label { letter-spacing: .22em; font-size: 11px; }

.tgcp-hero__title {
  font-family: var(--tgcp-display);
  font-weight: 400;
  font-size: 62px;
  line-height: 1.02;
  letter-spacing: -.015em;
  margin: 0 0 22px;
}

.tgcp-hero__title em {
  font-style: italic;
  color: var(--tgcp-red);
}

.tgcp-hero__body {
  font-size: 16px;
  line-height: 1.65;
  color: var(--tgcp-text);
  max-width: 430px;
  margin: 0 0 34px;
}

.tgcp-hero__actions {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 48px;
  flex-wrap: wrap;
}

.tgcp-hero__controls {
  display: flex;
  align-items: center;
  gap: 18px;
}

.tgcp-hero__dots { display: flex; gap: 9px; }

.tgcp-hero__dot {
  width: 9px;
  height: 9px;
  border-radius: 20px;
  border: 1px solid var(--tgcp-rule);
  background: var(--tgcp-paper);
  cursor: pointer;
  padding: 0;
  transition: all .3s;
}

.tgcp-hero__dot[aria-selected="true"] {
  width: 30px;
  background: var(--tgcp-ink);
  border-color: var(--tgcp-ink);
}

.tgcp-hero__arrows { display: flex; gap: 8px; margin-left: 6px; }

.tgcp-hero__arrow {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid var(--tgcp-rule);
  background: var(--tgcp-paper);
  color: var(--tgcp-ink);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .25s, border-color .25s, color .25s;
}

.tgcp-hero__arrow:hover {
  background: var(--tgcp-ink);
  border-color: var(--tgcp-ink);
  color: #fff;
}

.tgcp-hero__right {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.tgcp-hero__sun {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 430px;
  height: 430px;
  border-radius: 50%;
  animation: tgcp-sunbreathe 7s ease-in-out infinite;
}

.tgcp-hero__rays {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: .5;
}

.tgcp-hero__card {
  position: relative;
  z-index: 2;
  width: 236px;
  height: 330px;
  border-radius: 8px;
  background: var(--tgcp-paper);
  box-shadow: 0 30px 70px -20px rgba(20, 32, 58, .4);
  border: 1px solid rgba(0, 0, 0, .06);
  animation: tgcp-floaty 6s ease-in-out infinite;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
}

.tgcp-hero__card-media {
  height: 62%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.tgcp-hero__card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tgcp-hero__card-kanji {
  font-family: var(--tgcp-mincho);
  color: rgba(255, 255, 255, .9);
  font-size: 46px;
}

.tgcp-hero__card-body {
  padding: 14px 15px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex: 1;
}

.tgcp-hero__card-name {
  font-family: var(--tgcp-display);
  font-size: 17px;
  line-height: 1.15;
}

.tgcp-hero__card-foot {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.tgcp-hero__card-price { font-size: 16px; font-weight: 600; }

.tgcp-hero__counter {
  position: absolute;
  bottom: 20px;
  right: 24px;
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 600;
  z-index: 3;
}

.tgcp-hero__slide { display: none; }
.tgcp-hero__slide.is-active { display: contents; }

@keyframes tgcp-sunbreathe {
  0%, 100% { transform: translate(-50%, -50%) scale(1); }
  50% { transform: translate(-50%, -50%) scale(1.04); }
}

@keyframes tgcp-floaty {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-9px); }
}

@media (prefers-reduced-motion: reduce) {
  .tgcp-hero__sun,
  .tgcp-hero__card,
  .tgcp-pdp__card { animation: none; }
  * { scroll-behavior: auto !important; }
}

/* ============================================================
   8. BADGES / PILLS / STATUS
   ============================================================ */

.tgcp-badge {
  display: inline-block;
  background: var(--tgcp-red);
  color: #fff;
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 4px 9px;
  border-radius: var(--tgcp-radius);
  line-height: 1.3;
}

.tgcp-badge--ink { background: var(--tgcp-ink); }
.tgcp-badge--navy { background: var(--tgcp-navy); }
.tgcp-badge--light { background: rgba(255, 255, 255, .92); color: var(--tgcp-ink); }

.tgcp-pill {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  border: 1px solid var(--tgcp-line);
  border-radius: 20px;
  padding: 5px 12px;
  display: inline-block;
  white-space: nowrap;
}

.tgcp-pill--green { color: var(--tgcp-green); border-color: var(--tgcp-green-line); }
.tgcp-pill--gold { color: var(--tgcp-gold); border-color: var(--tgcp-gold-line); }
.tgcp-pill--red { color: var(--tgcp-red); border-color: var(--tgcp-red-line); }

.tgcp-status { font-size: 10px; font-weight: 600; }
.tgcp-status--green { color: var(--tgcp-green); }
.tgcp-status--navy { color: var(--tgcp-navy); }
.tgcp-status--gold { color: var(--tgcp-gold); }

.tgcp-stock {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  font-weight: 600;
}

.tgcp-stock__dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
}

.tgcp-stock--in { color: var(--tgcp-green); }
.tgcp-stock--out { color: var(--tgcp-text-3); }

/* ============================================================
   9. PRODUCT CARD (shop loop, home, related, wishlist)
   ============================================================ */

.tgcp-grid {
  display: grid;
  gap: 24px 22px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.tgcp-grid--4 { grid-template-columns: repeat(4, 1fr); }
.tgcp-grid--3 { grid-template-columns: repeat(3, 1fr); }
.tgcp-grid--2 { grid-template-columns: repeat(2, 1fr); }

.tgcp-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  margin: 0;
  list-style: none;
}

.tgcp-card__media {
  position: relative;
  aspect-ratio: 3 / 4;
  border: 1px solid var(--tgcp-line);
  border-radius: 4px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
  transition: transform .4s var(--tgcp-ease), border-color .4s;
}

.tgcp-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.tgcp-card:hover .tgcp-card__media,
.tgcp-card__link:hover ~ .tgcp-card__media {
  border-color: var(--tgcp-ink);
  transform: translateY(-4px);
}

.tgcp-card__kanji {
  font-family: var(--tgcp-mincho);
  font-size: 44px;
  color: rgba(255, 255, 255, .82);
}

.tgcp-card__badge {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
}

.tgcp-card__add {
  position: absolute;
  bottom: 12px;
  right: 12px;
  background: rgba(255, 255, 255, .94);
  color: var(--tgcp-ink);
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--tgcp-line);
  transition: all .3s;
  z-index: 3;
  cursor: pointer;
  padding: 0;
  text-decoration: none;
}

.tgcp-card:hover .tgcp-card__add {
  background: var(--tgcp-ink);
  color: #fff;
}

.tgcp-card__add.loading { opacity: .5; }
.tgcp-card__add.added { background: var(--tgcp-green); color: #fff; border-color: var(--tgcp-green); }

.tgcp-card__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 5px;
  flex-wrap: wrap;
}

.tgcp-card__code {
  font-size: 10px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--tgcp-text-3);
  font-weight: 600;
}

.tgcp-card__title {
  font-family: var(--tgcp-display);
  font-size: 18px;
  line-height: 1.2;
  margin: 0 0 3px;
  font-weight: 400;
}

.tgcp-card__title a { text-decoration: none; }

.tgcp-card__set {
  font-size: 12px;
  color: var(--tgcp-text-2);
  margin-bottom: 10px;
}

.tgcp-card__price {
  margin-top: auto;
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: 17px;
  font-weight: 600;
}

.tgcp-card__price del {
  font-size: 12px;
  color: var(--tgcp-text-4);
  font-weight: 400;
}

.tgcp-card__price ins { text-decoration: none; }

.tgcp-card__sold-out {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, .7);
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  z-index: 2;
}

/* Wishlist heart on the card */
.tgcp-heart {
  position: absolute;
  top: 10px;
  right: 10px;
  background: rgba(255, 255, 255, .94);
  border: 1px solid var(--tgcp-line);
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  z-index: 3;
  transition: all .25s;
}

.tgcp-heart svg { stroke: var(--tgcp-text-2); fill: none; transition: all .25s; }
.tgcp-heart:hover { background: var(--tgcp-red); border-color: var(--tgcp-red); }
.tgcp-heart:hover svg { stroke: #fff; fill: #fff; }
.tgcp-heart.is-on svg { stroke: var(--tgcp-red); fill: var(--tgcp-red); }
.tgcp-heart.is-on:hover svg { stroke: #fff; fill: #fff; }

/* ============================================================
   10. CATEGORY CARDS
   ============================================================ */

.tgcp-cat-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.tgcp-cat {
  position: relative;
  height: 172px;
  border-radius: 4px;
  overflow: hidden;
  text-decoration: none;
  border: 1px solid var(--tgcp-line);
  display: block;
  transition: transform .4s var(--tgcp-ease), border-color .4s;
}

.tgcp-cat:hover { border-color: var(--tgcp-ink); transform: translateY(-4px); }

.tgcp-cat__img {
  position: absolute;
  inset: 0;
  transition: transform .6s var(--tgcp-ease);
  background-size: cover;
  background-position: center;
}

.tgcp-cat:hover .tgcp-cat__img { transform: scale(1.06); }

.tgcp-cat__scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0) 70%);
}

.tgcp-cat__kanji {
  position: absolute;
  top: 18px;
  right: 18px;
  font-family: var(--tgcp-mincho);
  font-size: 30px;
  color: rgba(255, 255, 255, .85);
}

.tgcp-cat__body {
  position: absolute;
  left: 20px;
  bottom: 18px;
  color: #fff;
}

.tgcp-cat__name {
  font-family: var(--tgcp-display);
  font-size: 23px;
  line-height: 1.1;
  margin-bottom: 4px;
  white-space: nowrap;
}

.tgcp-cat__count {
  font-size: 11px;
  letter-spacing: .06em;
  opacity: .85;
}

/* ============================================================
   11. EDITORIAL SPLIT (graded promo)
   ============================================================ */

.tgcp-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid var(--tgcp-ink);
  border-radius: var(--tgcp-radius-lg);
  overflow: hidden;
}

.tgcp-split__dark {
  background: var(--tgcp-ink);
  color: var(--tgcp-cream-3);
  padding: 54px 50px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.tgcp-split__kanji {
  font-family: var(--tgcp-mincho);
  color: var(--tgcp-red);
  font-size: 14px;
  margin-bottom: 18px;
}

.tgcp-split__title {
  font-family: var(--tgcp-display);
  font-weight: 400;
  font-size: 40px;
  line-height: 1.05;
  letter-spacing: -.01em;
  margin: 0 0 18px;
}

.tgcp-split__title em { font-style: italic; }

.tgcp-split__body {
  font-size: 15px;
  line-height: 1.65;
  color: #B4B0A6;
  max-width: 380px;
  margin: 0 0 30px;
}

.tgcp-split__cta { align-self: flex-start; padding: 14px 24px; font-size: 13px; }

.tgcp-split__visual {
  position: relative;
  background: linear-gradient(150deg, var(--tgcp-navy-2), var(--tgcp-navy));
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px;
  overflow: hidden;
}

.tgcp-split__glow {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 300px;
  height: 300px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(224, 36, 27, .5), transparent 65%);
}

.tgcp-slab {
  position: relative;
  width: 200px;
  height: 300px;
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .25);
  border-radius: 10px;
  backdrop-filter: blur(2px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .6);
}

.tgcp-slab__label {
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .6);
  font-weight: 600;
}

.tgcp-slab__grade {
  font-family: var(--tgcp-display);
  font-size: 62px;
  color: #fff;
  line-height: 1;
}

.tgcp-slab__note {
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--tgcp-red);
  font-weight: 700;
}

/* ============================================================
   12. TRUST BAND
   ============================================================ */

.tgcp-trust {
  border-top: 1px solid var(--tgcp-line);
  border-bottom: 1px solid var(--tgcp-line);
  background: var(--tgcp-cream);
}

.tgcp-trust__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
  padding-top: 40px;
  padding-bottom: 40px;
}

.tgcp-trust__item {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.tgcp-trust__icon { color: var(--tgcp-red); display: block; }

.tgcp-trust__title {
  font-family: var(--tgcp-display);
  font-size: 17px;
}

.tgcp-trust__desc {
  font-size: 12.5px;
  color: var(--tgcp-text-2);
  line-height: 1.5;
}

/* ============================================================
   13. BREADCRUMB
   ============================================================ */

.tgcp-breadcrumb,
.woocommerce-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 12px;
  color: var(--tgcp-text-3);
  margin-bottom: 20px;
}

.tgcp-breadcrumb a,
.woocommerce-breadcrumb a {
  text-decoration: none;
  color: var(--tgcp-text-3);
}

.tgcp-breadcrumb a:hover,
.woocommerce-breadcrumb a:hover { color: var(--tgcp-ink); }

.tgcp-breadcrumb__current { color: var(--tgcp-text); }

/* ============================================================
   14. SHOP: page head, toolbar, filters, grid
   ============================================================ */

.tgcp-shop-head {
  border-bottom: 1px solid var(--tgcp-line);
  padding-top: 44px;
  padding-bottom: 30px;
}

.tgcp-shop-head__row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}

.tgcp-shop-head__title { font-size: 52px; }

.tgcp-shop-head__intro {
  font-size: 14px;
  line-height: 1.6;
  color: var(--tgcp-text-2);
  max-width: 340px;
  margin: 0;
}

.tgcp-shop-body { padding-top: 34px; padding-bottom: 80px; }

.tgcp-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 26px;
}

.tgcp-toolbar__left {
  display: flex;
  align-items: center;
  gap: 16px;
}

.tgcp-toolbar__count { font-size: 13px; color: var(--tgcp-text-2); }
.tgcp-toolbar__count strong { color: var(--tgcp-ink); font-weight: 600; }

.tgcp-filter-toggle {
  display: none;
  align-items: center;
  gap: 9px;
  background: var(--tgcp-paper);
  border: 1px solid var(--tgcp-ink);
  border-radius: var(--tgcp-radius);
  padding: 11px 16px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  color: var(--tgcp-ink);
}

.tgcp-sort {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  color: var(--tgcp-text-2);
  margin: 0;
}

.tgcp-sort__label {
  letter-spacing: .04em;
  text-transform: uppercase;
  font-weight: 600;
  font-size: 11px;
}

.tgcp-sort select,
.tgcp-main .tgcp-sort select {
  border: 1px solid var(--tgcp-line);
  background: var(--tgcp-paper);
  border-radius: var(--tgcp-radius);
  padding: 9px 12px;
  font-size: 13px;
  color: var(--tgcp-ink);
  cursor: pointer;
  width: auto;
}

.tgcp-shop-layout {
  display: grid;
  grid-template-columns: 248px 1fr;
  gap: 40px;
  align-items: start;
}

.tgcp-filters__inner {
  position: sticky;
  top: var(--tgcp-header-offset);
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.tgcp-filters__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--tgcp-ink);
}

.tgcp-filters__title {
  font-family: var(--tgcp-display);
  font-size: 20px;
}

.tgcp-filters__group {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.tgcp-filters__group + .tgcp-filters__group {
  padding-top: 26px;
  border-top: 1px solid var(--tgcp-line);
}

.tgcp-filters__legend {
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--tgcp-text-3);
  font-weight: 600;
}

.tgcp-filters ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.tgcp-frow {
  display: flex;
  align-items: center;
  gap: 11px;
  font-size: 13.5px;
  color: var(--tgcp-text);
  text-decoration: none;
  transition: color .2s;
  cursor: pointer;
}

.tgcp-frow:hover { color: var(--tgcp-ink); }

.tgcp-frow__box {
  width: 18px;
  height: 18px;
  border-radius: 3px;
  border: 1.5px solid var(--tgcp-rule);
  background: transparent;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.tgcp-frow__box svg { display: none; }

.tgcp-frow.is-on .tgcp-frow__box {
  background: var(--tgcp-ink);
  border-color: var(--tgcp-ink);
}

.tgcp-frow.is-on .tgcp-frow__box svg { display: block; }

.tgcp-frow__label { flex: 1; }
.tgcp-frow__count { font-size: 12px; color: var(--tgcp-text-5); }

.tgcp-price-filter__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.tgcp-price-filter__value { font-size: 12.5px; color: var(--tgcp-ink); font-weight: 600; }

.tgcp-price-filter input[type="range"] {
  width: 100%;
  accent-color: var(--tgcp-red);
  cursor: pointer;
  padding: 0;
  border: none;
}

.tgcp-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-bottom: 22px;
}

.tgcp-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: var(--tgcp-cream-2);
  border: 1px solid var(--tgcp-line);
  border-radius: 20px;
  padding: 7px 13px;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--tgcp-ink);
  cursor: pointer;
  text-decoration: none;
  transition: background .2s, border-color .2s, color .2s;
}

.tgcp-chip:hover {
  background: var(--tgcp-ink);
  color: #fff;
  border-color: var(--tgcp-ink);
}

.tgcp-chip:hover svg { stroke: #fff; }

/* Empty state */
.tgcp-empty {
  text-align: center;
  padding: 70px 20px;
  border: 1px dashed var(--tgcp-line-strong);
  border-radius: var(--tgcp-radius-lg);
  max-width: 560px;
  margin: 0 auto;
}

.tgcp-empty__kanji {
  font-family: var(--tgcp-mincho);
  font-size: 36px;
  color: var(--tgcp-rule);
  margin-bottom: 16px;
}

.tgcp-empty__title {
  font-family: var(--tgcp-display);
  font-size: 24px;
  margin-bottom: 8px;
}

.tgcp-empty__body {
  font-size: 13.5px;
  color: var(--tgcp-text-2);
  margin-bottom: 24px;
}

/* Pagination */
.woocommerce-pagination,
.tgcp-pagination {
  margin-top: 46px;
  display: flex;
  justify-content: center;
}

.woocommerce-pagination ul,
.tgcp-pagination .nav-links {
  display: flex;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
  border: none;
}

.woocommerce-pagination li { border: none; }

.woocommerce-pagination a,
.woocommerce-pagination span,
.tgcp-pagination a,
.tgcp-pagination span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  border: 1px solid var(--tgcp-line);
  border-radius: var(--tgcp-radius);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  color: var(--tgcp-text);
  transition: all .25s;
}

.woocommerce-pagination a:hover,
.tgcp-pagination a:hover {
  border-color: var(--tgcp-ink);
  color: var(--tgcp-ink);
}

.woocommerce-pagination .current,
.tgcp-pagination .current {
  background: var(--tgcp-ink);
  border-color: var(--tgcp-ink);
  color: #fff;
}

/* ============================================================
   15. PRODUCT DETAIL (PDP)
   ============================================================ */

.tgcp-pdp { padding-top: 30px; padding-bottom: 70px; }

.tgcp-pdp__grid {
  display: grid;
  grid-template-columns: 1.02fr .98fr;
  gap: 64px;
  align-items: start;
}

.tgcp-pdp__media {
  position: sticky;
  top: 104px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.tgcp-pdp__stage {
  position: relative;
  aspect-ratio: 4 / 4.6;
  border: 1px solid var(--tgcp-line);
  border-radius: var(--tgcp-radius-lg);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(150deg, var(--tgcp-navy-2), var(--tgcp-navy));
}

.tgcp-pdp__stage img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.tgcp-pdp__stage-badge { position: absolute; top: 16px; left: 16px; z-index: 2; }

.tgcp-pdp__stage-kanji {
  position: absolute;
  top: 16px;
  right: 16px;
  font-family: var(--tgcp-mincho);
  font-size: 15px;
  color: rgba(255, 255, 255, .65);
  z-index: 2;
}

.tgcp-pdp__card {
  width: 250px;
  height: 348px;
  border-radius: 10px;
  box-shadow: 0 34px 70px -20px rgba(20, 32, 58, .5);
  border: 1px solid rgba(255, 255, 255, .2);
  animation: tgcp-floaty 6s ease-in-out infinite;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.tgcp-pdp__card img { width: 100%; height: 100%; object-fit: cover; }

.tgcp-pdp__card-kanji {
  font-family: var(--tgcp-mincho);
  font-size: 64px;
  color: rgba(255, 255, 255, .85);
}

.tgcp-pdp__thumbs {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
}

.tgcp-pdp__thumb {
  width: 74px;
  height: 74px;
  border-radius: 4px;
  border: 1.5px solid var(--tgcp-line);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  overflow: hidden;
  background: var(--tgcp-cream-2);
  transition: border-color .25s;
}

.tgcp-pdp__thumb img { width: 100%; height: 100%; object-fit: cover; }
.tgcp-pdp__thumb:hover { border-color: var(--tgcp-ink); }
.tgcp-pdp__thumb.is-active { border-color: var(--tgcp-ink); }

.tgcp-pdp__info { display: flex; flex-direction: column; }

.tgcp-pdp__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.tgcp-pdp__cat {
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--tgcp-red);
  font-weight: 700;
  text-decoration: none;
}

.tgcp-pdp__dot {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--tgcp-rule);
  display: inline-block;
}

.tgcp-pdp__sku {
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--tgcp-text-2);
  font-weight: 600;
}

.tgcp-pdp__title {
  font-family: var(--tgcp-display);
  font-weight: 400;
  font-size: 46px;
  line-height: 1.04;
  letter-spacing: -.015em;
  margin: 0 0 10px;
}

.tgcp-pdp__title em {
  font-style: italic;
  color: var(--tgcp-text-2);
  font-size: .62em;
}

.tgcp-pdp__sub {
  font-size: 13.5px;
  color: var(--tgcp-text-2);
  margin-bottom: 22px;
}

.tgcp-pdp__price {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 6px;
  font-family: var(--tgcp-display);
  font-size: 36px;
}

.tgcp-pdp__price del {
  font-family: var(--tgcp-sans);
  font-size: 15px;
  color: var(--tgcp-text-4);
}

.tgcp-pdp__price ins { text-decoration: none; }

.tgcp-pdp__save {
  font-family: var(--tgcp-sans);
  font-size: 11px;
  font-weight: 700;
  color: var(--tgcp-red);
  letter-spacing: .06em;
  text-transform: uppercase;
}

.tgcp-pdp__stock { margin-bottom: 28px; }

/* Condition / variation swatches */
.tgcp-swatches {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 26px;
}

.tgcp-swatches__list {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.tgcp-swatch {
  border: 1.5px solid var(--tgcp-line);
  background: var(--tgcp-paper);
  color: var(--tgcp-ink);
  border-radius: var(--tgcp-radius);
  padding: 11px 16px;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 2px;
  align-items: flex-start;
  min-width: 110px;
  transition: all .25s;
}

.tgcp-swatch__price { font-size: 11px; font-weight: 500; opacity: .65; }

.tgcp-swatch.is-active {
  background: var(--tgcp-ink);
  border-color: var(--tgcp-ink);
  color: #fff;
}

.tgcp-swatch[disabled] { opacity: .4; cursor: default; }

/* Quantity + add to cart */
.tgcp-buy {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
}

.tgcp-qty,
.woocommerce .quantity {
  display: flex;
  align-items: center;
  border: 1px solid var(--tgcp-rule);
  border-radius: var(--tgcp-radius);
  overflow: hidden;
}

.tgcp-qty__btn {
  width: 44px;
  height: 50px;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 18px;
  color: var(--tgcp-text);
  transition: background .2s;
  line-height: 1;
}

.tgcp-qty__btn:hover { background: var(--tgcp-cream-2); }

.tgcp-qty input,
.tgcp-main .tgcp-qty input[type="number"],
.woocommerce .quantity input.qty {
  width: 44px;
  text-align: center;
  font-size: 15px;
  font-weight: 600;
  border: none;
  padding: 0;
  height: 50px;
  background: none;
  -moz-appearance: textfield;
}

.tgcp-qty input::-webkit-outer-spin-button,
.tgcp-qty input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.tgcp-buy .tgcp-btn,
.tgcp-buy button[type="submit"] { flex: 1; height: 50px; padding: 0 26px; font-size: 14px; }

.tgcp-assurances {
  display: flex;
  align-items: center;
  gap: 22px;
  flex-wrap: wrap;
  margin-bottom: 34px;
  font-size: 12px;
  color: var(--tgcp-text-2);
}

.tgcp-assurances span {
  display: flex;
  align-items: center;
  gap: 7px;
}

/* Accordions */
.tgcp-acc { border-top: 1px solid var(--tgcp-line); }

.tgcp-acc__item { border-bottom: 1px solid var(--tgcp-line); }

.tgcp-acc__btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: none;
  border: none;
  cursor: pointer;
  padding: 18px 2px;
  font-family: var(--tgcp-display);
  font-size: 18px;
  color: var(--tgcp-ink);
  text-align: left;
  transition: color .2s;
}

.tgcp-acc__btn:hover { color: var(--tgcp-red); }

.tgcp-acc__sign {
  font-size: 20px;
  font-weight: 300;
  color: var(--tgcp-text-2);
  font-family: var(--tgcp-sans);
}

.tgcp-acc__btn[aria-expanded="true"] .tgcp-acc__sign-plus { display: none; }
.tgcp-acc__btn[aria-expanded="false"] .tgcp-acc__sign-minus { display: none; }

.tgcp-acc__panel { padding: 0 2px 20px; }
.tgcp-acc__panel[hidden] { display: none; }

.tgcp-acc__panel,
.tgcp-acc__panel p {
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--tgcp-text);
}

.tgcp-acc__panel table { width: 100%; border-collapse: collapse; }
.tgcp-acc__panel th {
  text-align: left;
  color: var(--tgcp-ink);
  font-weight: 600;
  padding: 3px 12px 3px 0;
  font-size: 13.5px;
  white-space: nowrap;
}
.tgcp-acc__panel td { padding: 3px 0; }

.tgcp-related { padding-bottom: 80px; }

.tgcp-related__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 26px;
  border-top: 1px solid var(--tgcp-line);
  padding-top: 44px;
}

/* ============================================================
   16. CART
   ============================================================ */

.tgcp-cart-head { padding-top: 44px; padding-bottom: 28px; }
.tgcp-cart-body { padding-top: 10px; padding-bottom: 90px; }

.tgcp-cart-layout {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 48px;
  align-items: start;
}

.tgcp-cart__items { display: flex; flex-direction: column; }

.tgcp-cartrow {
  display: grid;
  grid-template-columns: 88px 1fr auto;
  gap: 20px;
  align-items: center;
  padding: 22px 0;
  border-bottom: 1px solid var(--tgcp-line);
}

.tgcp-cartrow__media {
  width: 88px;
  height: 112px;
  border-radius: 4px;
  border: 1px solid var(--tgcp-line);
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  overflow: hidden;
}

.tgcp-cartrow__media img { width: 100%; height: 100%; object-fit: cover; }

.tgcp-cartrow__kanji {
  font-family: var(--tgcp-mincho);
  font-size: 26px;
  color: rgba(255, 255, 255, .85);
}

.tgcp-cartrow__body {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.tgcp-cartrow__name {
  font-family: var(--tgcp-display);
  font-size: 19px;
  line-height: 1.2;
  text-decoration: none;
}

.tgcp-cartrow__set { font-size: 12px; color: var(--tgcp-text-2); }
.tgcp-cartrow__remove { margin-top: 6px; }

.tgcp-cartrow__right {
  display: flex;
  align-items: center;
  gap: 22px;
}

.tgcp-cartrow__right .tgcp-qty__btn { width: 36px; height: 40px; font-size: 16px; }
.tgcp-cartrow__right .tgcp-qty input { width: 32px; height: 40px; font-size: 14px; }

.tgcp-cartrow__total {
  font-size: 16px;
  font-weight: 600;
  min-width: 78px;
  text-align: right;
}

.tgcp-summary {
  position: sticky;
  top: 104px;
  border: 1px solid var(--tgcp-ink);
  border-radius: var(--tgcp-radius-lg);
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.tgcp-summary--soft {
  border-color: var(--tgcp-line);
  background: var(--tgcp-cream);
  padding: 26px;
  gap: 16px;
  top: 30px;
}

.tgcp-summary__title {
  font-family: var(--tgcp-display);
  font-size: 22px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--tgcp-line);
}

.tgcp-summary--soft .tgcp-summary__title { font-size: 20px; padding-bottom: 12px; }

.tgcp-summary__row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 13.5px;
  color: var(--tgcp-text);
}

.tgcp-summary__row strong,
.tgcp-summary__row .amount { font-weight: 600; color: var(--tgcp-ink); }

.tgcp-summary__row--total {
  font-size: 16px;
  font-weight: 600;
  color: var(--tgcp-ink);
  padding-top: 16px;
  border-top: 1px solid var(--tgcp-line);
  align-items: baseline;
}

.tgcp-summary__row--total .amount,
.tgcp-summary__total-value {
  font-family: var(--tgcp-display);
  font-size: 22px;
}

.tgcp-summary__free { display: flex; flex-direction: column; gap: 8px; }

.tgcp-summary__free-label { font-size: 11.5px; color: var(--tgcp-text-2); }
.tgcp-summary__free-label strong { color: var(--tgcp-red); }

.tgcp-progress {
  height: 4px;
  background: var(--tgcp-line-soft);
  border-radius: 4px;
  overflow: hidden;
}

.tgcp-progress__bar {
  height: 100%;
  background: var(--tgcp-red);
  border-radius: 4px;
  transition: width .4s;
}

.tgcp-summary__secure {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 11.5px;
  color: var(--tgcp-text-2);
  text-align: center;
}

.tgcp-shipping-free { color: var(--tgcp-green); font-weight: 600; }

/* ============================================================
   17. CHECKOUT
   ============================================================ */

.tgcp-steps {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  font-weight: 600;
  padding-top: 30px;
  flex-wrap: wrap;
}

.tgcp-steps a,
.tgcp-steps span { color: var(--tgcp-text-3); text-decoration: none; }
.tgcp-steps .is-current { color: var(--tgcp-red); }

.tgcp-checkout { padding-top: 26px; padding-bottom: 90px; }
.tgcp-checkout__title { font-size: 40px; margin-bottom: 34px; }

.tgcp-checkout__layout {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 52px;
  align-items: start;
}

.tgcp-checkout__main {
  display: flex;
  flex-direction: column;
  gap: 38px;
}

.tgcp-fieldset {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.tgcp-fieldset + .tgcp-fieldset {
  padding-top: 30px;
  border-top: 1px solid var(--tgcp-line);
}

.tgcp-fieldset__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.tgcp-fieldset__title {
  font-family: var(--tgcp-display);
  font-size: 21px;
}

.tgcp-fieldset__link {
  font-size: 12px;
  color: var(--tgcp-red);
  font-weight: 600;
  text-decoration: none;
}

.tgcp-checkline {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-size: 12.5px;
  color: var(--tgcp-text);
  cursor: pointer;
  line-height: 1.5;
}

.tgcp-checkline input { width: 15px; height: 15px; margin-top: 2px; flex-shrink: 0; }

/* Payment methods, styled like the design's radio cards */
.woocommerce-checkout #payment,
.tgcp-payments {
  background: none;
  border-radius: 0;
}

.woocommerce-checkout #payment ul.payment_methods,
.tgcp-payments__list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  list-style: none;
  margin: 0;
  padding: 0;
  border: none;
}

.woocommerce-checkout #payment ul.payment_methods li,
.tgcp-payments__item {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 13px;
  border: 1.5px solid var(--tgcp-line-strong);
  background: var(--tgcp-paper);
  border-radius: var(--tgcp-radius);
  padding: 15px 16px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--tgcp-ink);
  cursor: pointer;
  transition: all .25s;
  margin: 0;
}

.woocommerce-checkout #payment ul.payment_methods li.tgcp-is-selected,
.tgcp-payments__item.is-selected { border-color: var(--tgcp-ink); }

.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] {
  width: 17px;
  height: 17px;
  margin: 0;
  flex-shrink: 0;
}

.woocommerce-checkout #payment ul.payment_methods li label { cursor: pointer; flex: 1; margin: 0; }

.woocommerce-checkout #payment div.payment_box,
.tgcp-payments__box {
  flex-basis: 100%;
  background: var(--tgcp-cream);
  border: 1px solid var(--tgcp-line);
  border-radius: 4px;
  padding: 18px;
  margin: 6px 0 0;
  font-size: 12.5px;
  font-weight: 400;
  color: var(--tgcp-text);
}

.woocommerce-checkout #payment div.payment_box::before { display: none; }

.woocommerce-checkout #payment .form-row.place-order { padding: 0; margin: 0; }

#place_order,
.tgcp-place-order {
  width: 100%;
  height: 54px;
  font-size: 14.5px;
}

.tgcp-order-review__item {
  display: flex;
  align-items: center;
  gap: 14px;
}

.tgcp-order-review__media {
  position: relative;
  width: 52px;
  height: 66px;
  border-radius: 3px;
  border: 1px solid var(--tgcp-line);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
}

.tgcp-order-review__media img { width: 100%; height: 100%; object-fit: cover; }

.tgcp-order-review__kanji {
  font-family: var(--tgcp-mincho);
  font-size: 17px;
  color: rgba(255, 255, 255, .85);
}

.tgcp-order-review__qty {
  position: absolute;
  top: -7px;
  right: -7px;
  background: var(--tgcp-ink);
  color: #fff;
  font-size: 9.5px;
  font-weight: 700;
  width: 17px;
  height: 17px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.tgcp-order-review__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.tgcp-order-review__name {
  font-family: var(--tgcp-display);
  font-size: 15px;
  line-height: 1.2;
}

.tgcp-order-review__meta { font-size: 11px; color: var(--tgcp-text-2); }
.tgcp-order-review__total { font-size: 13.5px; font-weight: 600; }

/* Thank you */
.tgcp-thanks {
  text-align: center;
  padding: 70px 30px;
  border: 1px solid var(--tgcp-line);
  border-radius: var(--tgcp-radius-lg);
}

.tgcp-thanks__check {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--tgcp-red);
  margin: 0 auto 22px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.tgcp-thanks__kanji {
  font-family: var(--tgcp-mincho);
  font-size: 15px;
  color: var(--tgcp-red);
  margin-bottom: 10px;
}

.tgcp-thanks__title {
  font-family: var(--tgcp-display);
  font-size: 30px;
  margin-bottom: 10px;
}

.tgcp-thanks p { font-size: 13.5px; color: var(--tgcp-text-2); margin-bottom: 6px; }
.tgcp-thanks strong { color: var(--tgcp-ink); }

/* ============================================================
   18. ACCOUNT
   ============================================================ */

.tgcp-auth {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: calc(100vh - 130px);
}

.tgcp-auth__form {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 60px var(--tgcp-gutter);
}

.tgcp-auth__inner {
  width: 100%;
  max-width: 400px;
  display: flex;
  flex-direction: column;
}

.tgcp-auth__title {
  font-family: var(--tgcp-display);
  font-weight: 400;
  font-size: 38px;
  letter-spacing: -.015em;
  margin: 0 0 26px;
}

.tgcp-tabs {
  display: flex;
  border: 1px solid var(--tgcp-line);
  border-radius: var(--tgcp-radius);
  margin-bottom: 26px;
  overflow: hidden;
}

.tgcp-tabs__btn {
  flex: 1;
  padding: 12px;
  background: var(--tgcp-paper);
  color: var(--tgcp-text);
  border: none;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all .25s;
}

.tgcp-tabs__btn.is-active { background: var(--tgcp-ink); color: #fff; }

.tgcp-auth__panel { display: flex; flex-direction: column; gap: 14px; }
.tgcp-auth__panel[hidden] { display: none; }

.tgcp-auth__row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  font-size: 12.5px;
  flex-wrap: wrap;
}

.tgcp-auth__lost { color: var(--tgcp-red); font-weight: 600; text-decoration: none; }

.tgcp-or {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 24px 0;
}

.tgcp-or::before,
.tgcp-or::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--tgcp-line);
}

.tgcp-or span {
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--tgcp-text-3);
  font-weight: 600;
}

.tgcp-auth__aside {
  position: relative;
  background: linear-gradient(150deg, var(--tgcp-navy-2), var(--tgcp-navy));
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.tgcp-auth__glow {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 380px;
  height: 380px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(224, 36, 27, .55), transparent 65%);
}

.tgcp-auth__aside-inner {
  position: relative;
  text-align: center;
  color: #fff;
  padding: 0 60px;
}

.tgcp-auth__aside-kanji {
  font-family: var(--tgcp-mincho);
  font-size: 44px;
  margin-bottom: 18px;
  color: rgba(255, 255, 255, .9);
}

.tgcp-auth__aside-title {
  font-family: var(--tgcp-display);
  font-size: 30px;
  line-height: 1.2;
  margin-bottom: 14px;
}

.tgcp-auth__aside-title em { font-style: italic; }

.tgcp-auth__aside-body {
  font-size: 13.5px;
  line-height: 1.65;
  color: rgba(255, 255, 255, .65);
  max-width: 320px;
  margin: 0 auto;
}

/* Logged-in account */
.tgcp-account { padding-top: 44px; padding-bottom: 90px; }

.tgcp-account__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  margin-bottom: 38px;
}

.tgcp-account__title { font-size: 40px; }

.tgcp-account__grid {
  display: grid;
  grid-template-columns: 230px 1fr;
  gap: 44px;
  align-items: start;
}

.woocommerce-MyAccount-navigation,
.tgcp-account__nav {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--tgcp-line);
  border-radius: var(--tgcp-radius-lg);
  overflow: hidden;
  position: sticky;
  top: 24px;
}

.woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}

.woocommerce-MyAccount-navigation li a,
.tgcp-account__nav a {
  display: block;
  padding: 15px 18px;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--tgcp-text);
  background: var(--tgcp-paper);
  border-left: 2px solid transparent;
  border-top: 1px solid var(--tgcp-line-soft);
  text-decoration: none;
  transition: all .2s;
}

.woocommerce-MyAccount-navigation li:first-child a,
.tgcp-account__nav a:first-child { border-top: none; }

.woocommerce-MyAccount-navigation li a:hover,
.tgcp-account__nav a:hover { color: var(--tgcp-red); }

.woocommerce-MyAccount-navigation li.is-active a,
.tgcp-account__nav a.is-active {
  font-weight: 600;
  color: var(--tgcp-red);
  background: var(--tgcp-cream);
  border-left-color: var(--tgcp-red);
}

.woocommerce-MyAccount-content { min-width: 0; }

.tgcp-account__section-title {
  font-family: var(--tgcp-display);
  font-size: 22px;
  margin-bottom: 20px;
}

.tgcp-orderrow {
  display: flex;
  align-items: center;
  gap: 20px;
  border: 1px solid var(--tgcp-line);
  border-radius: var(--tgcp-radius-lg);
  padding: 20px 22px;
  flex-wrap: wrap;
  margin-bottom: 16px;
  text-decoration: none;
  color: inherit;
}

.tgcp-orderrow__media {
  width: 46px;
  height: 58px;
  border-radius: 3px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
}

.tgcp-orderrow__media img { width: 100%; height: 100%; object-fit: cover; }

.tgcp-orderrow__kanji {
  font-family: var(--tgcp-mincho);
  font-size: 16px;
  color: rgba(255, 255, 255, .85);
}

.tgcp-orderrow__body {
  flex: 1;
  min-width: 150px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.tgcp-orderrow__id { font-size: 13.5px; font-weight: 600; }
.tgcp-orderrow__meta { font-size: 12px; color: var(--tgcp-text-2); }

.tgcp-orderrow__total {
  font-size: 15px;
  font-weight: 600;
  min-width: 80px;
  text-align: right;
}

.tgcp-addresses {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
}

.tgcp-address {
  border: 1px solid var(--tgcp-line);
  border-radius: var(--tgcp-radius-lg);
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.tgcp-address--default { border-color: var(--tgcp-ink); }

.tgcp-address__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
}

.tgcp-address__label {
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--tgcp-text-3);
  font-weight: 600;
}

.tgcp-address address {
  font-size: 13px;
  color: var(--tgcp-text);
  line-height: 1.6;
  font-style: normal;
}

/* ============================================================
   19. WISHLIST PAGE
   ============================================================ */

.tgcp-wishlist { padding-top: 10px; padding-bottom: 90px; }

.tgcp-wish-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px 22px;
}

.tgcp-wish-card__foot {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.tgcp-wish-card__btn {
  background: var(--tgcp-ink);
  color: #fff;
  border: none;
  border-radius: var(--tgcp-radius);
  padding: 10px 14px;
  font-family: inherit;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .04em;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  text-decoration: none;
  transition: background .25s;
}

.tgcp-wish-card__btn:hover { background: var(--tgcp-red); }
.tgcp-wish-card__btn.added { background: var(--tgcp-green); }
.tgcp-wish-card__btn[disabled] { background: var(--tgcp-rule); cursor: default; }

/* ============================================================
   20. WOOCOMMERCE NOTICES & MISC OVERRIDES
   ============================================================ */

.woocommerce-notices-wrapper:empty { display: none; }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  list-style: none;
  background: var(--tgcp-cream);
  border: 1px solid var(--tgcp-line);
  border-left: 3px solid var(--tgcp-ink);
  border-radius: var(--tgcp-radius);
  padding: 16px 20px;
  margin: 0 0 22px;
  font-size: 13.5px;
  color: var(--tgcp-text);
}

.woocommerce-message { border-left-color: var(--tgcp-green); }
.woocommerce-error { border-left-color: var(--tgcp-red); }
.woocommerce-error li { list-style: none; }

.woocommerce-message .button,
.woocommerce-info .button {
  margin-left: auto;
  padding: 10px 18px;
  font-size: 12px;
}

.woocommerce form .form-row {
  padding: 0;
  margin: 0 0 14px;
}

.woocommerce form .form-row label {
  display: block;
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--tgcp-text-3);
  font-weight: 600;
  margin-bottom: 6px;
}

.woocommerce form .form-row-first,
.woocommerce form .form-row-last {
  width: 100%;
  float: none;
}

.tgcp-main .select2-container--default .select2-selection--single {
  border: 1px solid var(--tgcp-line-strong);
  border-radius: var(--tgcp-radius);
  height: 46px;
  display: flex;
  align-items: center;
}

.tgcp-main .select2-container--default .select2-selection--single .select2-selection__arrow { height: 44px; }

.required { color: var(--tgcp-red); border: none; }

.woocommerce .woocommerce-ordering,
.woocommerce .woocommerce-result-count { margin: 0; float: none; }

.woocommerce ul.products,
.woocommerce-page ul.products { margin: 0; }

/* Blog / generic content fallback */
.tgcp-article { padding: 60px 0 80px; }
.tgcp-article__title { font-size: 42px; margin-bottom: 8px; }
.tgcp-article__meta { font-size: 12px; color: var(--tgcp-text-3); margin-bottom: 26px; }
.tgcp-article__list { display: flex; flex-direction: column; gap: 34px; }
.tgcp-entry { max-width: 720px; }
.tgcp-entry h2 { font-size: 30px; margin-top: 1.4em; }
.tgcp-entry h3 { font-size: 23px; margin-top: 1.3em; }
.tgcp-entry ul, .tgcp-entry ol { padding-left: 1.3em; }
.tgcp-entry blockquote {
  border-left: 2px solid var(--tgcp-red);
  padding-left: 20px;
  margin-left: 0;
  font-family: var(--tgcp-display);
  font-size: 19px;
}

/* ============================================================
   21. RESPONSIVE
   ============================================================ */

@media (max-width: 1024px) {
  :root { --tgcp-gutter: 24px; }

  .tgcp-nav { display: none !important; }
  .tgcp-menu-btn { display: flex; }
  .tgcp-search { display: none; }
  .tgcp-search-mobile { display: block; }
  .tgcp-hdr-icons { margin-left: auto; }

  .tgcp-hero__grid { grid-template-columns: 1fr; min-height: 0; }
  .tgcp-hero__left {
    border-right: none;
    border-bottom: 1px solid var(--tgcp-line);
    padding: 46px 0 52px;
  }
  .tgcp-hero__right { min-height: 400px; order: -1; }
  .tgcp-hero__title { font-size: 54px; }

  .tgcp-split { grid-template-columns: 1fr; }
  .tgcp-trust__grid { grid-template-columns: 1fr 1fr; }
  .tgcp-footer__grid { grid-template-columns: 1fr 1fr; }
  .tgcp-announce__row { gap: 16px; font-size: 10.5px; }
}

@media (max-width: 900px) {
  .tgcp-shop-layout { grid-template-columns: 1fr; gap: 0; }
  .tgcp-filters { display: none; }
  .tgcp-filters.is-open {
    display: block;
    margin-bottom: 26px;
    border: 1px solid var(--tgcp-line);
    border-radius: var(--tgcp-radius-lg);
    padding: 22px;
  }
  .tgcp-filters__inner { position: static; }
  .tgcp-filter-toggle { display: inline-flex; }

  .tgcp-pdp__grid { grid-template-columns: 1fr; gap: 34px; }
  .tgcp-pdp__media { position: static; }
  .tgcp-pdp__title { font-size: 38px; }

  .tgcp-cart-layout { grid-template-columns: 1fr; gap: 34px; }
  .tgcp-summary { position: static; }

  .tgcp-checkout__layout { grid-template-columns: 1fr; gap: 34px; }
  .tgcp-checkout__aside { position: static; order: -1; }

  .tgcp-auth { grid-template-columns: 1fr; }
  .tgcp-auth__aside { display: none; }
  .tgcp-account__grid { grid-template-columns: 1fr; gap: 26px; }
  .woocommerce-MyAccount-navigation { position: static; }

  .tgcp-wish-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 860px) {
  .tgcp-cat-grid { grid-template-columns: 1fr 1fr; }
  .tgcp-grid--4,
  .tgcp-grid--3 { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
  :root { --tgcp-gutter: 16px; }

  .tgcp-hero__title { font-size: 38px; }
  .tgcp-shop-head__title { font-size: 40px; }
  .tgcp-page-title { font-size: 36px; }
  .tgcp-checkout__title { font-size: 36px; }
  .tgcp-section-title { font-size: 26px; }
  .tgcp-pdp__title { font-size: 32px; }
  .tgcp-split__dark { padding: 42px 26px; }

  .tgcp-announce .tgcp-hide-sm { display: none; }
  .tgcp-toolbar { flex-wrap: wrap; gap: 14px; }
  .tgcp-buy { flex-direction: column; align-items: stretch; }
  .tgcp-buy .tgcp-qty { align-self: flex-start; }
  .tgcp-field-row { grid-template-columns: 1fr; }
  .tgcp-footer__grid { grid-template-columns: 1fr; }
  .tgcp-footer__bottom { flex-direction: column; gap: 14px; align-items: flex-start; }
  .tgcp-wish-grid { gap: 16px; }

  .tgcp-cartrow {
    grid-template-columns: 72px 1fr;
    gap: 14px;
  }
  .tgcp-cartrow__media { width: 72px; height: 92px; }
  .tgcp-cartrow__right {
    grid-column: 1 / -1;
    justify-content: space-between;
  }

  /* Category strip becomes a swipeable carousel, as in the design */
  .tgcp-cat-grid {
    display: flex;
    grid-template-columns: none;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    margin: 0 calc(var(--tgcp-gutter) * -1);
    padding: 0 var(--tgcp-gutter) 8px;
  }
  .tgcp-cat-grid::-webkit-scrollbar { height: 0; }
  .tgcp-cat { flex: 0 0 76%; scroll-snap-align: start; height: 140px; }
}
