/*
Theme Name:Ankle child
Theme URI:https://tcd-theme.com/tcd092
Description:WordPressテーマ「Ankle」の子テーマ
Template:ankle_tcd092
Author:TCD
Author URI:https://tcd-theme.com/
Version:1.1
*/

/* ==========================================================================
   Sakuragi JAPAN — design tokens and shared styles
   ========================================================================== */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap');

:root {
  --sj-black: #0c0d0f;
  --sj-navy: #101a2b;
  --sj-navy-2: #17243a;
  --sj-ivory: #f3f4f6;
  --sj-ivory-2: #e7e9ed;
  --sj-white: #ffffff;
  --sj-text: #17181b;
  --sj-text-soft: #50545b;
  --sj-text-on-dark: #e8e6e1;
  --sj-line: #dadde3;
  --sj-gold: #b8975a;
  --sj-gold-light: #e6cc92;
  --sj-sale: #9b2a35;
  --sj-serif: "Playfair Display", "Hiragino Mincho ProN", Georgia, serif;
  --sj-sans: "Inter", "Helvetica Neue", Arial, sans-serif;
}

body {
  font-family: var(--sj-sans);
  font-size: 16px;
  line-height: 1.75;
  color: var(--sj-text);
  background: var(--sj-ivory);
  -webkit-font-smoothing: antialiased;
}

/* ==========================================================================
   Header
   ========================================================================== */
#header_top.site_header {
  position: sticky;
  top: 0;
  z-index: 100;
  height: auto;
  background: var(--sj-black);
  border-bottom: 1px solid #222428;
  box-shadow: none;
}
.site_header .site_header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  width: min(1180px, 90%);
  height: 76px;
  margin: 0 auto;
  position: relative;
}
.site_logo {
  font-family: var(--sj-serif);
  font-size: 24px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #ffffff;
  white-space: nowrap;
}
.site_logo:hover { color: #ffffff; opacity: 0.85; }

.site_nav .global_nav_menu {
  display: flex;
  gap: 30px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.site_nav .global_nav_menu a {
  position: relative;
  display: inline-block;
  padding: 6px 0;
  font-size: 14px;
  font-weight: 500;
  color: #d8d9dd;
  letter-spacing: 0.02em;
}
.site_nav .global_nav_menu a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 1px;
  background: var(--sj-gold);
  transition: width 0.3s ease;
}
.site_nav .global_nav_menu a:hover::after,
.site_nav .current-menu-item > a::after { width: 100%; }
.site_nav .sub-menu { display: none; }

.site_tools {
  display: flex;
  align-items: center;
  gap: 20px;
}
.site_tool {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  padding: 0;
  background: none;
  border: 0;
  color: #d8d9dd;
  cursor: pointer;
}
.site_tool svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.site_tool:hover { color: var(--sj-gold-light); }

/* badges for wishlist and cart counts */
#header_top .header_member_badge {
  position: absolute;
  top: -7px;
  right: -9px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 8px;
  font-size: 10px;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
  color: #ffffff;
}
#header_top .header_member_badge:empty { display: none; }

/* search panel: opened by #js-header-search (JS toggles .is_active on the panel) */
.site_header .header_search { display: none; }
.site_header .header_search.is_active {
  display: block;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: min(560px, 90%);
  padding: 18px;
  background: var(--sj-black);
  border-top: 1px solid #222428;
  box-shadow: 0 16px 30px rgba(0, 0, 0, 0.35);
}
.site_header .header_search_inner form {
  display: flex;
  gap: 8px;
}
.site_header .input_area { flex: 1; }
.site_header .input_area input {
  width: 100%;
  height: 44px;
  padding: 0 14px;
  background: #151517;
  border: 1px solid #2a2d33;
  color: #ffffff;
  font-size: 15px;
}
.site_header .search_area .search_button {
  width: 44px;
  height: 44px;
  background: var(--sj-gold);
  border: 0;
  cursor: pointer;
}

/* the mobile menu button is only needed when the global nav is hidden */
.site_tool--menu { display: none; }

/* ==========================================================================
   Responsive header
   ========================================================================== */
@media screen and (max-width: 960px) {
  .site_header .site_header__inner { height: 64px; }
  .site_nav { display: none; }
  .site_tool--menu { display: inline-flex; }
  .site_logo { font-size: 20px; }
}
@media screen and (max-width: 560px) {
  .site_tools { gap: 14px; }
  .site_logo { font-size: 18px; }
}

/* child-theme-specific overrides */

/* ==========================================================================
   Header navigation: keep it on the same row as the logo and match the palette
   ========================================================================== */
.site_header .site_nav,
.site_header .site_nav .global_nav_container {
  position: static !important;
  display: flex !important;
  align-items: center;
  height: auto !important;
  width: auto !important;
  top: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  border: 0 !important;
}
.site_header .global_nav_menu {
  position: static !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  gap: 30px;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  background: none !important;
  border: 0 !important;
}
.site_header .global_nav_menu > li {
  float: none !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}
.site_header .global_nav_menu a {
  display: inline-block;
  padding: 6px 0 !important;
  font-family: var(--sj-sans) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: 0.02em;
  color: #d8d9dd !important;
  background: none !important;
  line-height: 1.4 !important;
}
.site_header .global_nav_menu a::before { display: none !important; }
.site_header .global_nav_menu .current-menu-item > a,
.site_header .global_nav_menu .current_page_item > a,
.site_header .global_nav_menu a:hover {
  color: var(--sj-gold-light) !important;
}
/* keep the sub-menus hidden in the header bar */
.site_header .global_nav_menu .sub-menu { display: none !important; }

@media screen and (max-width: 960px) {
  .site_header .site_nav { display: none !important; }
}

/* ==========================================================================
   Footer
   ========================================================================== */
#footer.site_footer {
  background: var(--sj-ivory);
  border-top: 1px solid var(--sj-line);
  padding: 80px 0 32px;
  margin: 0;
  color: var(--sj-text-soft);
}
.site_footer__inner {
  width: min(1180px, 90%);
  margin: 0 auto;
}
.site_footer__grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 48px;
}
.site_footer__logo {
  font-family: var(--sj-serif);
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--sj-text);
  margin-bottom: 14px;
}
.site_footer__brand p {
  font-size: 15px;
  line-height: 1.7;
  color: var(--sj-text-soft);
  max-width: 340px;
  margin: 0;
}
.site_footer__col h6 {
  font-family: var(--sj-sans);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--sj-gold);
  margin: 0 0 18px;
}
#footer .site_footer__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
#footer .site_footer__list li {
  margin: 0 0 12px;
  padding: 0;
  border: 0;
}
#footer .site_footer__list a {
  font-size: 15px;
  color: var(--sj-text-soft);
  background: none;
  padding: 0;
}
#footer .site_footer__list a:hover { color: var(--sj-text); }

.site_footer__bottom {
  margin-top: 64px;
  padding-top: 26px;
  border-top: 1px solid var(--sj-line);
  text-align: center;
}
.site_footer__recaptcha {
  font-size: 12px;
  color: #8a8e95;
  margin: 0 0 10px;
}
.site_footer__copy {
  font-size: 14px;
  color: #7d8189;
  letter-spacing: 0.02em;
  margin: 0;
}

@media screen and (max-width: 960px) {
  .site_footer__grid { grid-template-columns: 1fr 1fr; }
  .site_footer__brand { grid-column: 1 / -1; }
}
@media screen and (max-width: 560px) {
  #footer.site_footer { padding: 60px 0 28px; }
  .site_footer__grid { grid-template-columns: 1fr; gap: 36px; }
}

/* ==========================================================================
   Top page (front-page.php)
   ========================================================================== */
.sj-top { background: var(--sj-ivory); color: var(--sj-text); }
.sj-top h1, .sj-top h2, .sj-top h3 { font-family: var(--sj-serif); font-weight: 600; margin: 0; line-height: 1.25; color: var(--sj-text); }
.sj-top p { margin: 0; }
.sj-wrap { width: min(1180px, 90%); margin: 0 auto; }
.sj-center { text-align: center; }
.sj-gold-text {
  font-style: italic;
  background: linear-gradient(120deg, #8c6d33 0%, #e6cd8e 42%, #b8975a 62%, #8c6d33 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.sj-eyebrow {
  font-family: var(--sj-sans);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--sj-gold);
  margin-bottom: 14px !important;
}
.sj-head { text-align: center; margin-bottom: 60px; }
.sj-head h2 { font-size: 40px; }
.sj-rule { width: 72px; height: 2px; background: linear-gradient(120deg, #8c6d33, #e6cd8e, #b8975a); margin: 22px auto 0; }
.sj-lead { color: var(--sj-text-soft); margin-top: 16px !important; }
.sj-section { padding: 110px 0; }

/* buttons */
.sj-btn {
  display: inline-block;
  padding: 15px 32px;
  font-family: var(--sj-sans);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.06em;
  border: 1px solid var(--sj-gold);
  transition: all 0.3s ease;
  cursor: pointer;
}
.sj-btn--gold { background: linear-gradient(120deg, #8c6d33 0%, #e6cd8e 42%, #b8975a 62%, #8c6d33 100%); color: var(--sj-black); border-color: transparent; }
.sj-btn--gold:hover { filter: brightness(1.08); color: var(--sj-black); }
.sj-btn--ghost { color: var(--sj-gold-light); }
.sj-btn--ghost:hover { background: var(--sj-gold); color: var(--sj-black); }
.sj-btn--outline { color: var(--sj-text); border-color: var(--sj-text); }
.sj-btn--outline:hover { background: var(--sj-text); color: var(--sj-ivory); }
.sj-btns { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }

/* HERO */
.sj-hero {
  background: var(--sj-black) url('assets/hero-bg.jpg') center top / cover no-repeat;
  color: var(--sj-text-on-dark);
  padding: 120px 0 110px;
  text-align: center;
}
.sj-hero__inner { width: min(1000px, 90%); margin: 0 auto; }
.sj-hero__logo { display: block; width: min(520px, 78vw); height: auto; margin: 0 auto 34px; }
.sj-hero .sj-eyebrow { color: var(--sj-gold-light); }
.sj-hero__title { font-size: clamp(32px, 3.6vw, 46px); color: #ffffff; max-width: 720px; margin: 0 auto 24px !important; line-height: 1.22; }
.sj-hero__lead { font-size: 16px; color: #a9a7a1; max-width: 560px; margin: 0 auto 34px !important; }
.sj-hero__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: 780px;
  margin: 64px auto 0;
  padding-top: 34px;
  border-top: 1px solid rgba(230, 204, 146, 0.3);
}
.sj-hero__stats div { font-size: 14px; color: #a9a7a1; }
.sj-hero__stats div + div { border-left: 1px solid rgba(230, 204, 146, 0.2); }
.sj-hero__stats strong { display: block; font-family: var(--sj-serif); font-size: 30px; font-weight: 600; color: var(--sj-gold-light); line-height: 1.2; margin-bottom: 6px; }

/* TRUST */
.sj-trust { background: #ffffff; border-bottom: 1px solid var(--sj-line); }
.sj-trust__inner { width: min(1180px, 90%); margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); }
.sj-trust__item { padding: 40px 26px; text-align: center; border-right: 1px solid var(--sj-line); }
.sj-trust__item:last-child { border-right: 0; }
.sj-trust__item svg { width: 34px; height: 34px; fill: none; stroke: var(--sj-gold); stroke-width: 1.4; margin-bottom: 14px; }
.sj-trust__item h3 { font-size: 18px; margin-bottom: 6px; }
.sj-trust__item p { font-size: 14px; color: var(--sj-text-soft); }

/* NEW ARRIVALS */
.sj-arrivals { background: var(--sj-ivory); }
.sj-products { display: grid; grid-template-columns: repeat(4, 1fr); gap: 48px 22px; }
.sj-product { position: relative; }
.sj-product__link { display: block; color: inherit; }
.sj-product__thumb { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #000; }
.sj-product__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; margin: 0; transition: transform 0.8s ease; }
.sj-product__link:hover .sj-product__thumb img { transform: scale(1.03); }
.sj-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 2;
  background: #9b2a35;
  color: #ffffff;
  font-family: var(--sj-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 5px 10px;
}
.sj-product__platform { display: block; font-family: var(--sj-sans); font-size: 12px; font-weight: 600; letter-spacing: 0.06em; color: var(--sj-gold); margin: 18px 0 4px; }
.sj-product__title { font-size: 17px; line-height: 1.35; margin-bottom: 8px !important; }
.sj-price { font-family: var(--sj-sans); font-size: 16px; color: var(--sj-text); }
.sj-price s { color: #7d8189; font-size: 13px; margin-right: 8px; }
.sj-price b { font-weight: 700; color: var(--sj-text); font-size: 17px; }
.sj-more { text-align: center; margin-top: 70px; }

/* PLATFORMS */
.sj-platforms { background: var(--sj-navy); padding: 84px 0; }
.sj-platforms .sj-eyebrow { color: var(--sj-gold-light); }
.sj-platforms h2 { font-size: 34px; color: #ffffff; margin-bottom: 40px; }
.sj-plat { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 0; }
.sj-plat__tile {
  display: block;
  padding: 34px 24px 28px;
  border: 1px solid #243352;
  background: var(--sj-navy-2);
  transition: border-color 0.3s, transform 0.3s;
  color: inherit;
}
.sj-plat__tile:hover { border-color: var(--sj-gold); transform: translateY(-3px); }
.sj-plat__tile svg { width: 44px; height: 44px; fill: none; stroke: var(--sj-gold-light); stroke-width: 1.3; margin-bottom: 16px; }
.sj-plat__tile h3 { font-size: 20px; color: #ffffff; margin-bottom: 10px; }
.sj-plat__tile span { font-family: var(--sj-sans); font-size: 13px; font-weight: 600; color: var(--sj-gold-light); }

/* COMMITMENT */
.sj-commit { background: #ffffff; }
.sj-commit__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.sj-commit__card { padding: 42px 28px; border: 1px solid var(--sj-line); background: var(--sj-ivory); text-align: center; }
.sj-commit__card svg { width: 40px; height: 40px; fill: none; stroke: var(--sj-gold); stroke-width: 1.4; margin-bottom: 20px; }
.sj-commit__card h3 { font-size: 20px; margin-bottom: 10px; }
.sj-commit__card p { font-size: 15px; color: var(--sj-text-soft); }

/* SHIPPING */
.sj-shipping { background: var(--sj-ivory-2); }
.sj-complimentary { font-family: var(--sj-sans); font-size: 14px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--sj-gold); margin-top: 20px !important; }
.sj-stat { display: grid; grid-template-columns: repeat(3, 1fr); text-align: center; margin-bottom: 26px; border: 1px solid var(--sj-line); background: #ffffff; }
.sj-stat div { padding: 22px 12px; }
.sj-stat div + div { border-left: 1px solid var(--sj-line); }
.sj-stat strong { display: block; font-family: var(--sj-serif); font-size: 22px; font-weight: 600; color: var(--sj-text); }
.sj-stat span { font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--sj-text-soft); }
.sj-ship-grid, .sj-policy__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.sj-policy__grid { grid-template-columns: 1fr 1fr 1fr; }
.sj-box { background: #ffffff; border: 1px solid var(--sj-line); padding: 36px 34px; }
.sj-box h3 { font-size: 22px; margin-bottom: 14px; }
.sj-box p { font-size: 15px; color: var(--sj-text-soft); margin-bottom: 10px; }
.sj-box ul { margin: 0; padding-left: 18px; color: var(--sj-text-soft); font-size: 15px; }
.sj-box li { margin-bottom: 8px; }
.sj-note { font-size: 13px !important; color: #7a7e85 !important; font-style: italic; margin-top: 16px !important; }
.sj-policy .sj-box { background: var(--sj-ivory); }
.sj-policy { background: #ffffff; }
.sj-pay { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.sj-pay span { border: 1px solid var(--sj-line); background: #ffffff; font-size: 13px; padding: 6px 12px; color: var(--sj-text); }

/* COUNTRIES */
.sj-countries { background: var(--sj-ivory); }
.sj-regions { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.sj-region { background: #ffffff; border: 1px solid var(--sj-line); padding: 28px 30px; }
.sj-region h3 { font-size: 20px; margin-bottom: 8px; display: flex; justify-content: space-between; align-items: baseline; }
.sj-region h3 small { font-family: var(--sj-sans); font-size: 13px; font-weight: 500; color: var(--sj-gold); }
.sj-region p { font-size: 14px; color: var(--sj-text-soft); line-height: 1.9; }
.sj-customs { margin-top: 22px; text-align: center; font-size: 14px; color: var(--sj-text-soft); }
.sj-customs a { color: var(--sj-text); border-bottom: 1px solid var(--sj-gold); }

/* FAQ */
.sj-faq { background: var(--sj-ivory-2); }
.sj-faq__list { max-width: 820px; margin: 0 auto; }
.sj-faq details { border-bottom: 1px solid var(--sj-line); padding: 22px 4px; }
.sj-faq summary { cursor: pointer; list-style: none; font-family: var(--sj-serif); font-size: 20px; font-weight: 600; display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.sj-faq summary::-webkit-details-marker { display: none; }
.sj-faq summary::after { content: "+"; font-family: var(--sj-sans); font-size: 26px; color: var(--sj-gold); font-weight: 300; }
.sj-faq details[open] summary::after { content: "\2013"; }
.sj-faq details p { color: var(--sj-text-soft); margin-top: 14px; font-size: 15px; }

/* REPUTATION */
.sj-rep { background: var(--sj-black); color: #ffffff; padding: 110px 0; }
.sj-rep h2 { font-size: 40px; color: #ffffff; margin: 12px 0 46px; }
.sj-rep .sj-eyebrow { color: var(--sj-gold-light); }
.sj-score { display: inline-flex; align-items: center; gap: 54px; padding: 44px 66px; border: 1px solid rgba(230, 204, 146, 0.35); position: relative; }
.sj-score::before { content: ""; position: absolute; inset: 7px; border: 1px solid rgba(230, 204, 146, 0.12); }
.sj-score__big { font-family: var(--sj-serif); font-size: 100px; font-weight: 600; line-height: 1; color: #ffffff; }
.sj-score__big em { font-style: normal; font-size: 50px; color: var(--sj-gold-light); }
.sj-score__side { text-align: left; }
.sj-score__name { font-family: var(--sj-serif); font-size: 26px; color: var(--sj-gold-light); }
.sj-stars { color: var(--sj-gold-light); letter-spacing: 5px; font-size: 18px; margin: 8px 0 4px; }
.sj-score__side small { font-size: 14px; color: #a7aab2; }
.sj-quote { font-family: var(--sj-serif); font-style: italic; font-size: 21px; color: #a7aab2; margin: 36px 0 40px !important; }

/* RESPONSIVE */
@media screen and (max-width: 960px) {
  .sj-products { grid-template-columns: repeat(2, 1fr); gap: 40px 20px; }
  .sj-plat { grid-template-columns: repeat(2, 1fr); }
  .sj-trust__inner { grid-template-columns: 1fr 1fr; }
  .sj-trust__item:nth-child(2) { border-right: 0; }
  .sj-trust__item:nth-child(-n+2) { border-bottom: 1px solid var(--sj-line); }
  .sj-commit__grid { grid-template-columns: 1fr 1fr; }
  .sj-ship-grid, .sj-regions, .sj-policy__grid { grid-template-columns: 1fr; }
  .sj-hero__stats { grid-template-columns: 1fr; margin-top: 50px; }
  .sj-hero__stats div + div { border-left: 0; border-top: 1px solid rgba(230, 204, 146, 0.2); padding-top: 18px; margin-top: 18px; }
  .sj-score { flex-direction: column; gap: 22px; padding: 40px 30px; }
  .sj-score__side { text-align: center; }
  .sj-section { padding: 84px 0; }
}
@media screen and (max-width: 560px) {
  .sj-products { gap: 32px 14px; }
  .sj-product__title { font-size: 15px; }
  .sj-trust__inner { grid-template-columns: 1fr; }
  .sj-trust__item { border-right: 0; border-bottom: 1px solid var(--sj-line); }
  .sj-trust__item:last-child { border-bottom: 0; }
  .sj-commit__grid { grid-template-columns: 1fr; }
  .sj-stat { grid-template-columns: 1fr; }
  .sj-stat div + div { border-left: 0; border-top: 1px solid var(--sj-line); }
  .sj-head h2, .sj-rep h2 { font-size: 30px; }
  .sj-score__big { font-size: 76px; }
  .sj-plat { grid-template-columns: 1fr 1fr; gap: 12px; }
  .sj-plat__tile { padding: 24px 14px; }
}


/* ==========================================================================
   Fixes (round 2)
   ========================================================================== */

/* hero title colour: beat the generic .sj-top h1 rule */
.sj-top .sj-hero__title { color: #ffffff; }
.sj-top .sj-hero__brand {
  font-family: var(--sj-serif);
  font-size: 56px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #ffffff;
  line-height: 1.1;
  margin: 0 0 30px;
}

/* product images: show the whole 4:3 photo, no awkward cropping */
.sj-product__thumb img { object-fit: cover; }

/* mobile menu button: visible bars */
#js-menu-button.site_tool--menu { display: none; position: relative; width: 26px; height: 18px; padding: 0; margin: 0; }
#js-menu-button.site_tool--menu span {
  position: absolute; left: 0; display: block; width: 26px; height: 2px;
  background: #e8e6e1; border-radius: 1px;
}
#js-menu-button.site_tool--menu span:nth-child(1) { top: 0; }
#js-menu-button.site_tool--menu span:nth-child(2) { top: 8px; }
#js-menu-button.site_tool--menu span:nth-child(3) { top: 16px; }
@media screen and (max-width: 960px) {
  #js-menu-button.site_tool--menu { display: inline-block; }
}

/* footer logo: larger */
.site_footer__logo { font-size: 34px; margin-bottom: 18px; }

/* back-to-top button: match the palette instead of the default blue */
#return_top a { background: var(--sj-black) !important; color: var(--sj-gold-light) !important; }

@media screen and (max-width: 560px) {
  /* mobile footer: two columns, brand across the top */
  .site_footer__grid { grid-template-columns: 1fr 1fr; gap: 28px 16px; }
  .site_footer__brand { grid-column: 1 / -1; }
  .site_footer__logo { font-size: 28px; }
  #footer.site_footer { padding: 50px 0 24px; }
  .site_footer__bottom { margin-top: 40px; }
  .site_hero__brand, .sj-hero__brand { font-size: 40px; }
  .sj-hero__brand { font-size: 40px; margin-bottom: 22px; }
}

/* anchor targets from the header / footer menus: keep the section title clear of the sticky header */
.sj-top section[id] { scroll-margin-top: 90px; }
html { scroll-behavior: smooth; }

/* ==========================================================================
   Product page additions (Sakuragi JAPAN)
   ========================================================================== */
.sj-product-shipping {
  font-family: var(--sj-sans);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sj-gold);
  margin: 14px 0 0;
}
.sj-product-ebay { margin: 22px 0 0; padding-top: 22px; border-top: 1px solid var(--sj-line); }
.sj-product-ebay__text { font-size: 14px; color: var(--sj-text-soft); margin: 0 0 12px; }
.sj-product-ebay__btn { display: inline-block; }

/* ==========================================================================
   Product page: align with the top page design
   (class names taken from the parent product template; fine-tune on staging)
   ========================================================================== */
.single_product_title {
  font-family: var(--sj-serif) !important;
  font-size: 32px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.01em;
  color: var(--sj-text) !important;
}
.single_product_meta, .single_product_meta a {
  font-family: var(--sj-sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--sj-gold) !important;
}
.single_product_info .price,
.single_product_info p.price {
  font-family: var(--sj-sans);
  font-size: 18px;
  color: var(--sj-text);
  margin: 14px 0 0;
}
.single_product_info .price del {
  color: #7d8189;
  font-size: 15px;
  margin-right: 10px;
  opacity: 1;
}
.single_product_info .price ins {
  text-decoration: none;
  font-weight: 700;
  color: var(--sj-text);
  background: none;
}

/* add to cart: black button with gold on hover */
.single_product_cart .single_add_to_cart_button,
.single_product_cart button.button,
.single_product_cart .button {
  background: var(--sj-black) !important;
  color: #ffffff !important;
  border: 1px solid var(--sj-black) !important;
  border-radius: 0 !important;
  padding: 16px 34px !important;
  font-family: var(--sj-sans) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em;
  transition: all 0.3s ease;
}
.single_product_cart .single_add_to_cart_button:hover,
.single_product_cart button.button:hover,
.single_product_cart .button:hover {
  background: linear-gradient(120deg, #8c6d33 0%, #e6cd8e 42%, #b8975a 62%, #8c6d33 100%) !important;
  color: var(--sj-black) !important;
  border-color: transparent !important;
}

/* favourites button */
.single_product_like {
  border: 1px solid var(--sj-line) !important;
  border-radius: 0 !important;
  background: #ffffff !important;
  color: var(--sj-text) !important;
  font-family: var(--sj-sans);
  font-size: 14px;
  padding: 12px 24px;
}

/* description text */
.single_product_content { font-size: 16px; line-height: 1.9; color: var(--sj-text-soft); }
.single_product_content h2, .single_product_content h3 { font-family: var(--sj-serif); color: var(--sj-text); }

/* tabs (About this item / About Us) */
.woocommerce-tabs ul.tabs li a,
.woocommerce-tabs .tabs li a {
  font-family: var(--sj-sans);
  font-size: 14px;
  font-weight: 600;
  color: var(--sj-text-soft);
}
.woocommerce-tabs ul.tabs li.active a,
.woocommerce-tabs .tabs li.active a { color: var(--sj-text); }
.woocommerce-tabs ul.tabs li.active::after { background: var(--sj-gold) !important; }

/* related items: same card look as the top page */
.related .product .thumb,
.related .product .woocommerce-loop-product__link,
.related .product .product_thumbnail,
.related .product img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
}
.related h2, .related .related_title { font-family: var(--sj-serif); font-weight: 600; color: var(--sj-text); }

/* SALE badge everywhere: crimson, square */
.woocommerce span.onsale,
.onsale {
  background: #9b2a35 !important;
  color: #ffffff !important;
  border-radius: 0 !important;
  font-family: var(--sj-sans) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  min-height: 0 !important;
  min-width: 0 !important;
  line-height: 1 !important;
  padding: 6px 10px !important;
  top: 10px !important;
  left: 10px !important;
}

/* ==========================================================================
   Round 3: shared WooCommerce look (shop, product, cart, checkout, account)
   ========================================================================== */

/* ---------- sold out (top page cards) ---------- */
.sj-soldout {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 3;
  background: #7a1f28; color: #ffffff; text-align: center;
  font-family: var(--sj-sans); font-size: 13px; font-weight: 600; letter-spacing: 0.06em;
  padding: 11px 8px;
}
.sj-product--soldout .sj-product__thumb img { filter: grayscale(0.25) brightness(0.8); }

/* ---------- shop / archive (ALL ITEMS) ---------- */
.post-type-archive-product .woocommerce-products-header__title,
.tax-product_cat .woocommerce-products-header__title,
.woocommerce-page .page-title,
.post-type-archive-product h1.page_title,
.post-type-archive-product .page_title {
  font-family: var(--sj-serif) !important;
  font-size: 40px !important;
  font-weight: 600 !important;
  text-align: center;
  color: var(--sj-text) !important;
  margin: 40px 0 36px;
}
.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 48px 22px !important; margin: 0 !important; padding: 0 !important; list-style: none !important; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product { float: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; }
.woocommerce ul.products li.product img {
  aspect-ratio: 4 / 3; object-fit: cover; width: 100%; height: auto; margin: 0 !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--sj-serif) !important; font-size: 17px !important; font-weight: 600 !important;
  line-height: 1.35 !important; color: var(--sj-text) !important; margin: 10px 0 8px !important; padding: 0 !important;
}
.woocommerce ul.products li.product .price { font-family: var(--sj-sans); font-size: 16px; color: var(--sj-text); }
.woocommerce ul.products li.product .price del { color: #7d8189; font-size: 13px; margin-right: 8px; opacity: 1; }
.woocommerce ul.products li.product .price ins { text-decoration: none; font-weight: 700; background: none; }
.woocommerce ul.products li.product .price > .amount,
.woocommerce ul.products li.product .price .woocommerce-Price-amount { font-weight: 700; }
.woocommerce ul.products li.product .onsale { top: 10px !important; left: 10px !important; }
.woocommerce .woocommerce-ordering select,
.woocommerce .woocommerce-result-count { font-family: var(--sj-sans); font-size: 14px; }
.woocommerce .woocommerce-ordering select { height: 44px; border: 1px solid var(--sj-line); background: #ffffff; border-radius: 0; padding: 0 12px; }
.woocommerce nav.woocommerce-pagination ul { border: 0 !important; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span { border: 1px solid var(--sj-line) !important; border-radius: 0 !important; color: var(--sj-text) !important; background: #ffffff !important; }
.woocommerce nav.woocommerce-pagination ul li .current { background: var(--sj-black) !important; color: #ffffff !important; border-color: var(--sj-black) !important; }

/* "MORE ITEM" / load-more buttons */
.woocommerce .sj-load-more, .more_item_button, .p-load-more-button, .p-button--more {
  font-family: var(--sj-sans) !important; border-radius: 0 !important; border: 1px solid var(--sj-text) !important;
  background: transparent !important; color: var(--sj-text) !important; padding: 16px 40px !important;
}

/* ---------- product page ---------- */
.single_product_header { display: grid; grid-template-columns: 1.05fr 1fr; gap: 64px; align-items: start; }
.single_product_info { padding-top: 8px; }
.single_product_header .single_product_info > * + * { margin-top: 0; }
.single_product_cart .quantity input { height: 50px; border: 1px solid var(--sj-line); border-radius: 0; }
.single_product_content { margin-top: 60px; }
.woocommerce-tabs { margin-top: 70px; }
.woocommerce-tabs ul.tabs { border-bottom: 1px solid var(--sj-line) !important; }
.woocommerce-tabs ul.tabs li { border: 0 !important; background: transparent !important; }
.woocommerce-tabs ul.tabs li a { padding: 16px 24px !important; }
.woocommerce-tabs ul.tabs li.active { background: #ffffff !important; }
.woocommerce-tabs .panel, .woocommerce-tabs #tab-description, .woocommerce-tabs #tab-additional_information {
  background: #ffffff; border: 1px solid var(--sj-line); padding: 36px !important;
}
.woocommerce-tabs table, .woocommerce-tabs .shop_attributes { border: 0 !important; width: 100%; }
.woocommerce-tabs table th, .woocommerce-tabs table td { border-bottom: 1px solid var(--sj-line) !important; padding: 16px 12px !important; font-size: 15px; }
.woocommerce-tabs table th { font-weight: 600; width: 32%; color: var(--sj-text); }
.related.products, section.related { margin-top: 90px; }
.related h2, .up-sells h2, .related_products_title { font-family: var(--sj-serif) !important; font-size: 34px !important; font-weight: 600 !important; text-align: center; color: var(--sj-text) !important; margin-bottom: 40px; }
.related ul.products li.product .woocommerce-loop-product__title { font-size: 16px !important; }

/* ---------- forms, buttons, notices (cart / checkout / account) ---------- */
.woocommerce-cart, .woocommerce-checkout, .woocommerce-account { background: var(--sj-ivory); }
.woocommerce-cart h1, .woocommerce-checkout h1, .woocommerce-account h1,
.woocommerce-cart .page-title, .woocommerce-checkout .page-title, .woocommerce-account .page-title {
  font-family: var(--sj-serif) !important; font-size: 36px !important; font-weight: 600 !important; text-align: center; color: var(--sj-text) !important; margin: 40px 0 36px;
}
.woocommerce h2, .woocommerce h3 { font-family: var(--sj-serif); font-weight: 600; color: var(--sj-text); }
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce button[type="submit"]:not(.search_button) {
  background: var(--sj-black) !important; color: #ffffff !important; border: 1px solid var(--sj-black) !important;
  border-radius: 0 !important; padding: 15px 30px !important; font-family: var(--sj-sans) !important;
  font-size: 14px !important; font-weight: 600 !important; letter-spacing: 0.05em; box-shadow: none !important; transition: all 0.3s ease;
}
.woocommerce .button:hover, .woocommerce button.button:hover, .woocommerce a.button:hover, .woocommerce input.button:hover {
  background: linear-gradient(120deg, #8c6d33 0%, #e6cd8e 42%, #b8975a 62%, #8c6d33 100%) !important; color: var(--sj-black) !important; border-color: transparent !important;
}
.woocommerce a.checkout-button, .woocommerce .checkout-button, .woocommerce #place_order, .woocommerce .wc-proceed-to-checkout a.button {
  background: linear-gradient(120deg, #8c6d33 0%, #e6cd8e 42%, #b8975a 62%, #8c6d33 100%) !important; color: var(--sj-black) !important; border-color: transparent !important; width: 100%; text-align: center; padding: 18px 30px !important; font-size: 15px !important;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce form .woocommerce-input-wrapper input,
.woocommerce .woocommerce-Input,
.woocommerce form input[type="text"], .woocommerce form input[type="email"], .woocommerce form input[type="password"],
.woocommerce form input[type="tel"], .woocommerce form input[type="number"], .woocommerce form input[type="search"],
.woocommerce form input[type="url"] {
  height: 46px; padding: 0 14px; background: #ffffff; border: 1px solid #cfd3da; border-radius: 0; font-family: var(--sj-sans); font-size: 15px; color: var(--sj-text); box-shadow: none;
}
.woocommerce form .form-row textarea { height: auto; padding: 12px 14px; }
.woocommerce form .form-row label { font-size: 13px; font-weight: 600; letter-spacing: 0.04em; color: var(--sj-text-soft); }
.woocommerce form .form-row input:focus, .woocommerce form .form-row textarea:focus, .woocommerce form .form-row select:focus { outline: none; border-color: var(--sj-gold); }
.select2-container--default .select2-selection--single { height: 46px !important; border: 1px solid #cfd3da !important; border-radius: 0 !important; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 44px !important; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 44px !important; }

.woocommerce table.shop_table { border: 0 !important; border-collapse: collapse; background: #ffffff; border-top: 1px solid var(--sj-line) !important; }
.woocommerce table.shop_table th { font-family: var(--sj-sans); font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sj-gold); border-bottom: 1px solid var(--sj-line) !important; padding: 16px 14px !important; }
.woocommerce table.shop_table td { border-bottom: 1px solid var(--sj-line) !important; padding: 18px 14px !important; font-size: 15px; vertical-align: middle; }
.woocommerce table.shop_table img { width: 88px; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.woocommerce table.shop_table tfoot th, .woocommerce table.shop_table tfoot td { background: var(--sj-ivory); }
.woocommerce .cart-collaterals .cart_totals { background: #ffffff; border: 1px solid var(--sj-line); padding: 30px; }
.woocommerce .cart-collaterals .cart_totals h2 { font-size: 24px; }
.woocommerce .cart-collaterals .cart_totals .order-total .amount { font-size: 20px; font-weight: 700; }
.woocommerce .coupon input.input-text { height: 46px; border: 1px solid #cfd3da; border-radius: 0; }

.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews {
  background: #ffffff !important; border: 1px solid var(--sj-line) !important; border-top: 3px solid var(--sj-gold) !important;
  border-radius: 0 !important; padding: 18px 24px 18px 52px !important; color: var(--sj-text-soft) !important; box-shadow: none !important; font-size: 15px;
}
.woocommerce-error { border-top-color: var(--sj-sale) !important; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { color: var(--sj-gold) !important; }

/* checkout layout */
.woocommerce-checkout #order_review, .woocommerce-checkout #payment { background: #ffffff; border: 1px solid var(--sj-line); padding: 30px; }
.woocommerce-checkout #payment { background: #ffffff; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--sj-line); }
.woocommerce-checkout h3#order_review_heading, .woocommerce-checkout .col2-set h3 { font-size: 24px; }

/* account navigation and content */
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; border: 1px solid var(--sj-line); background: #ffffff; }
.woocommerce-MyAccount-navigation ul li { border-bottom: 1px solid var(--sj-line); margin: 0; }
.woocommerce-MyAccount-navigation ul li:last-child { border-bottom: 0; }
.woocommerce-MyAccount-navigation ul li a { display: block; padding: 16px 22px; font-size: 15px; color: var(--sj-text); }
.woocommerce-MyAccount-navigation ul li.is-active a, .woocommerce-MyAccount-navigation ul li a:hover { background: var(--sj-black); color: var(--sj-gold-light); }
.woocommerce-MyAccount-content { background: #ffffff; border: 1px solid var(--sj-line); padding: 36px; }
.woocommerce-MyAccount-content p { color: var(--sj-text-soft); }
.woocommerce-orders-table, .woocommerce-table--order-details { border: 0 !important; }

/* sold-out label on the built-in WooCommerce cards (shop page) */
.woocommerce ul.products li.product.outofstock img { filter: grayscale(0.2) brightness(0.8); }

/* ---------- mobile: menu button must be visible on the dark header ---------- */
#header_top #js-menu-button,
#js-menu-button.site_tool--menu {
  display: none;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  width: 26px !important;
  height: 18px !important;
  position: relative !important;
  cursor: pointer;
}
#header_top #js-menu-button span,
#js-menu-button.site_tool--menu span {
  display: block !important;
  position: absolute !important;
  left: 0 !important;
  width: 26px !important;
  height: 2px !important;
  background-color: #e8e6e1 !important;
  opacity: 1 !important;
  transform: none !important;
  border-radius: 1px;
  box-shadow: none !important;
}
#js-menu-button span:nth-child(1) { top: 0 !important; }
#js-menu-button span:nth-child(2) { top: 8px !important; }
#js-menu-button span:nth-child(3) { top: 16px !important; }
@media screen and (max-width: 960px) {
  #header_top #js-menu-button, #js-menu-button.site_tool--menu { display: inline-block !important; }
  .single_product_header { grid-template-columns: 1fr; gap: 36px; }
  .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; gap: 36px 16px !important; }
  .woocommerce-cart .cart-collaterals .cart_totals { padding: 22px; }
}
@media screen and (max-width: 560px) {
  .woocommerce ul.products { gap: 30px 12px !important; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 15px !important; }
  .woocommerce-MyAccount-content, .woocommerce-checkout #order_review, .woocommerce-checkout #payment { padding: 22px; }
  .woocommerce table.shop_table img { width: 64px; }
}

/* ==========================================================================
   Round 4: shop column count, button alignment, disabled state, payment box
   ========================================================================== */

/* shop: force 4 columns even when WooCommerce adds columns-3 */
body .woocommerce ul.products.columns-3,
body .woocommerce ul.products.columns-4,
body .woocommerce ul.products.columns-5 {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 48px 22px !important;
}
body .woocommerce ul.products li.product,
body .woocommerce ul.products.columns-3 li.product,
body .woocommerce ul.products.columns-4 li.product,
body .woocommerce ul.products.columns-5 li.product {
  float: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  clear: none !important;
}
body .woocommerce ul.products li.product:nth-child(n) { margin-right: 0 !important; }
@media screen and (max-width: 960px) {
  body .woocommerce ul.products.columns-3,
  body .woocommerce ul.products.columns-4,
  body .woocommerce ul.products.columns-5 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* buttons: centre the label vertically and horizontally */
body .woocommerce .button,
body .woocommerce button.button,
body .woocommerce a.button,
body .woocommerce input.button,
body .woocommerce #respond input#submit,
body .woocommerce button[type="submit"]:not(.search_button) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: auto !important;
  min-height: 50px !important;
  line-height: 1.2 !important;
  padding: 0 28px !important;
  text-align: center !important;
  vertical-align: middle;
}
body .woocommerce a.checkout-button,
body .woocommerce .checkout-button,
body .woocommerce #place_order,
body .woocommerce .wc-proceed-to-checkout a.button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 58px !important;
  height: 58px !important;
  line-height: 1 !important;
  padding: 0 30px !important;
  width: 100%;
  font-size: 15px !important;
  letter-spacing: 0.06em;
}

/* disabled buttons (e.g. Apply coupon before typing, Update cart before changing quantity) */
body .woocommerce button.button:disabled,
body .woocommerce button.button[disabled],
body .woocommerce button.button.disabled,
body .woocommerce input.button:disabled,
body .woocommerce input.button[disabled] {
  background: #d5d8de !important;
  border-color: #d5d8de !important;
  color: #5f646c !important;
  cursor: not-allowed;
  opacity: 1 !important;
}

/* cart: the coupon row and the update button sit on one line */
body .woocommerce table.cart td.actions { padding: 16px 14px !important; }
body .woocommerce table.cart td.actions .coupon { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
body .woocommerce table.cart td.actions .coupon input.input-text { height: 50px !important; min-width: 220px; padding: 0 14px; }
body .woocommerce table.cart td.actions button[name="update_cart"] { margin-left: auto; }

/* payment methods: plain white panels instead of the purple placeholder */
body .woocommerce-checkout #payment,
body .woocommerce-checkout #payment div.payment_box,
body .woocommerce-checkout .wc_payment_method .payment_box {
  background: #ffffff !important;
  color: var(--sj-text-soft);
  border-radius: 0 !important;
  box-shadow: none !important;
}
body .woocommerce-checkout #payment div.payment_box::before { border-bottom-color: #ffffff !important; }
body .woocommerce-checkout #payment ul.payment_methods li label { font-weight: 600; color: var(--sj-text); }
body .woocommerce-checkout #payment .place-order { padding-top: 18px; }

/* order review table: keep it in the same frame style as the cart */
body .woocommerce-checkout #order_review table.shop_table { border-top: 1px solid var(--sj-line) !important; }
body .woocommerce-checkout #order_review table.shop_table th { color: var(--sj-gold); }

/* cart totals: the proceed button should look like the checkout button */
body .woocommerce .cart_totals .wc-proceed-to-checkout { padding: 0 0 12px; }


/* ==========================================================================
   Round 5: account buttons, product page button system
   ========================================================================== */

/* account: login / register / save buttons were falling back to WooCommerce blue */
html body.woocommerce-account .woocommerce button.woocommerce-button,
html body.woocommerce-account .woocommerce button.button,
html body.woocommerce-account .woocommerce-form button[type="submit"],
html body.woocommerce-account .woocommerce-form-login__submit,
html body.woocommerce-account .woocommerce-form-register__submit,
html body.woocommerce-account .woocommerce-Button {
  background-color: #0c0d10 !important;
  background-image: none !important;
  border: 1px solid #0c0d10 !important;
  color: #ffffff !important;
  border-radius: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 50px !important;
  padding: 0 32px !important;
  font-family: var(--sj-sans) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em;
  width: auto;
}
html body.woocommerce-account .woocommerce button.woocommerce-button:hover,
html body.woocommerce-account .woocommerce button.button:hover,
html body.woocommerce-account .woocommerce-form-login__submit:hover,
html body.woocommerce-account .woocommerce-form-register__submit:hover {
  background: linear-gradient(120deg, #8c6d33 0%, #e6cd8e 42%, #b8975a 62%, #8c6d33 100%) !important;
  color: #0c0d10 !important;
  border-color: transparent !important;
}
/* login / register cards */
html body.woocommerce-account .u-columns .u-column1,
html body.woocommerce-account .u-columns .u-column2 { background: #ffffff; border: 1px solid var(--sj-line); padding: 36px; }
html body.woocommerce-account .u-columns h2 { text-align: center; font-size: 30px; margin-bottom: 28px; }
html body.woocommerce-account .woocommerce-form-login .lost_password a,
html body.woocommerce-account .woocommerce a.lost_password { color: var(--sj-text-soft); border-bottom: 1px solid var(--sj-gold); }
html body.woocommerce-account .woocommerce-form-login__rememberme { font-size: 14px; color: var(--sj-text-soft); }
html body.woocommerce-account .woocommerce-form-register .woocommerce-form-row, html body.woocommerce-account .woocommerce-form-login .woocommerce-form-row { margin-bottom: 18px; }

/* ---------- product page: one button system in the summary column ---------- */
.single_product_info { display: flex; flex-direction: column; gap: 0; }
.single_product_info > .single_product_cart,
.single_product_info > form.cart,
.single_product_cart { display: flex !important; flex-direction: column !important; gap: 12px !important; margin-top: 26px !important; }

/* quantity + add to cart on one row */
.single_product_cart form.cart { display: grid !important; grid-template-columns: 96px 1fr !important; gap: 12px !important; margin: 0 !important; }
.single_product_cart .quantity { margin: 0 !important; }
.single_product_cart .quantity input.qty { height: 52px !important; width: 96px !important; border: 1px solid #cfd3da !important; border-radius: 0 !important; text-align: center; font-size: 15px; }
.single_product_cart button.single_add_to_cart_button,
.single_product_cart .single_add_to_cart_button {
  width: 100% !important; height: 52px !important; min-height: 52px !important; margin: 0 !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  padding: 0 24px !important; font-size: 15px !important; line-height: 1 !important;
}

/* Apple Pay / Google Pay buttons (from the payment plugin): same width and height */
.single_product_cart [class*="payment-request"],
.single_product_cart [id*="payment-request"],
.single_product_cart [class*="pay-button"],
.single_product_cart [class*="gpay"],
.single_product_cart [class*="apple-pay"],
.single_product_cart [class*="google-pay"] {
  width: 100% !important; height: 52px !important; min-height: 52px !important; margin: 0 !important; border-radius: 0 !important; box-sizing: border-box;
}
.single_product_cart [class*="payment-request"] button,
.single_product_cart [class*="pay-button"] button { width: 100% !important; height: 52px !important; border-radius: 0 !important; }

/* favourites button: same full-width block */
.single_product_like {
  display: flex !important; align-items: center !important; justify-content: center !important;
  width: 100% !important; height: 52px !important; min-height: 52px !important; margin: 0 !important; box-sizing: border-box;
  padding: 0 24px !important; font-size: 15px !important; font-weight: 600 !important;
}

/* eBay block: same full-width button, tighter text spacing */
.sj-product-ebay { margin: 12px 0 0 !important; padding: 0 !important; border: 0 !important; display: flex; flex-direction: column; gap: 10px; }
.sj-product-ebay__text { margin: 0 !important; font-size: 13px !important; color: var(--sj-text-soft); }
.sj-product-ebay__btn {
  display: flex !important; align-items: center !important; justify-content: center !important;
  width: 100% !important; height: 52px !important; box-sizing: border-box; margin: 0 !important;
  padding: 0 24px !important; font-size: 15px !important; font-weight: 600 !important; letter-spacing: 0.06em;
  border: 1px solid var(--sj-black) !important; color: var(--sj-black) !important; background: #ffffff !important;
}
.sj-product-ebay__btn:hover { background: var(--sj-black) !important; color: #ffffff !important; }

/* keep the summary's text rhythm consistent */
.single_product_info .price { margin: 12px 0 0 !important; }
.sj-product-shipping { margin: 16px 0 0 !important; }


/* ==========================================================================
   Round 6: shop list layout, add-to-cart row, lightbox, order status page
   ========================================================================== */

/* shop list is outside .woocommerce, so target #product_archive directly */
#product_archive ul.products,
#product_archive ul.products.columns-3,
#product_archive ul.products.columns-4 {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 48px 22px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  float: none !important;
}
#product_archive ul.products::before, #product_archive ul.products::after { display: none !important; }
#product_archive ul.products li.product {
  float: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; list-style: none !important;
}
@media screen and (max-width: 960px) {
  #product_archive ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 36px 16px !important; }
}
@media screen and (max-width: 560px) {
  #product_archive ul.products { gap: 30px 12px !important; }
}

/* add to cart: quantity and button on one row, button fills the rest */
.single_product_cart form.cart {
  display: flex !important;
  align-items: stretch !important;
  gap: 12px !important;
  grid-template-columns: none !important;
}
.single_product_cart form.cart .quantity { flex: 0 0 96px !important; width: 96px !important; margin: 0 !important; }
.single_product_cart form.cart .quantity input.qty { width: 96px !important; height: 52px !important; }
.single_product_cart form.cart > div:not(.quantity) { flex: 1 1 auto !important; display: flex !important; }
.single_product_cart form.cart .single_add_to_cart_button,
.single_product_cart form.cart button.button,
.single_product_cart form.cart button[type="submit"] { flex: 1 1 auto !important; width: 100% !important; height: 52px !important; }

/* photo lightbox */
#sj-lightbox {
  position: fixed; inset: 0; z-index: 9999; background: rgba(8, 9, 11, 0.94);
  display: flex; align-items: center; justify-content: center; cursor: zoom-out; padding: 24px;
}
#sj-lightbox[hidden] { display: none !important; }
#sj-lightbox img { max-width: 92vw; max-height: 88vh; width: auto; height: auto; object-fit: contain; box-shadow: 0 20px 60px rgba(0,0,0,0.5); }
#sj-lightbox .sj-lightbox__close {
  position: absolute; top: 14px; right: 18px; background: none; border: 0; color: #e6cc92;
  font-size: 44px; line-height: 1; cursor: pointer; padding: 6px 12px;
}
.single_product_header img.wp-post-image { cursor: zoom-in; }

/* order status page (shortcode: [woocommerce_order_tracking]) */
.woocommerce-form-track-order { max-width: 560px; margin: 40px auto; background: #ffffff; border: 1px solid var(--sj-line); padding: 36px; }
.woocommerce-form-track-order p { color: var(--sj-text-soft); }
.woocommerce-form-track-order .form-row { margin-bottom: 16px; }
.woocommerce-form-track-order label { font-size: 13px; font-weight: 600; color: var(--sj-text-soft); display: block; margin-bottom: 6px; }
.woocommerce-form-track-order input[type="text"], .woocommerce-form-track-order input[type="email"] {
  width: 100%; height: 46px; padding: 0 14px; border: 1px solid #cfd3da; border-radius: 0; background: #fff; font-size: 15px;
}
.woocommerce-form-track-order button[type="submit"] { width: 100%; }


/* ==========================================================================
   Round 7
   ========================================================================== */

/* shop list: the theme wraps the cards in div.product_loop (not ul.products) */
#product_archive .product_loop {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 48px 22px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
#product_archive .product_loop > li,
#product_archive .product_loop > li.product {
  float: none !important; width: auto !important; max-width: none !important;
  margin: 0 !important; padding: 0 !important; list-style: none !important; display: block !important;
}
#product_archive .product_loop > li::before, #product_archive .product_loop > li::marker { content: none !important; }
@media screen and (max-width: 960px) {
  #product_archive .product_loop { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 36px 16px !important; }
}
@media screen and (max-width: 560px) {
  #product_archive .product_loop { gap: 30px 12px !important; }
}

/* mobile menu button (SVG icon) */
#js-menu-button.site_tool--menu { display: none; background: transparent; border: 0; padding: 0; width: 26px; height: 18px; align-items: center; justify-content: center; cursor: pointer; }
#js-menu-button.site_tool--menu svg { width: 24px; height: 18px; display: block; }
@media screen and (max-width: 960px) {
  #js-menu-button.site_tool--menu { display: inline-flex !important; }
}

/* header search: make the field and typed text clearly visible on the dark panel */
.site_header .header_search .input_area { display: block !important; width: auto !important; }
.site_header .header_search input[type="search"],
.site_header .header_search input[type="text"],
.site_header .header_search input.input-text,
.site_header .header_search .input_area input {
  display: block !important;
  width: 100% !important;
  height: 44px !important;
  padding: 0 14px !important;
  background: #151517 !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  border: 1px solid #3a3e47 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  opacity: 1 !important;
  font-size: 15px !important;
  font-family: var(--sj-sans) !important;
}
.site_header .header_search input::placeholder { color: #8a8e97 !important; opacity: 1; }
.site_header .header_search input:focus { outline: none !important; border-color: var(--sj-gold) !important; }

/* checkout: calmer, consistent form */
.woocommerce-checkout .col2-set, .woocommerce-checkout #customer_details { margin-top: 10px; }
.woocommerce-checkout h3 {
  font-family: var(--sj-serif) !important; font-size: 26px !important; font-weight: 600 !important;
  color: var(--sj-text) !important; padding-bottom: 14px; margin: 0 0 26px !important;
  border-bottom: 1px solid var(--sj-line);
}
.woocommerce-checkout #ship-to-different-address label,
.woocommerce-checkout #ship-to-different-address span {
  font-family: var(--sj-sans) !important; font-size: 15px !important; font-weight: 600 !important; color: var(--sj-text) !important;
  letter-spacing: 0; padding: 0; border: 0;
}
.woocommerce-checkout .form-row label {
  font-size: 12px !important; font-weight: 700 !important; letter-spacing: 0.1em !important; text-transform: uppercase;
  color: var(--sj-text-soft) !important; margin-bottom: 8px !important;
}
.woocommerce-checkout .form-row .required { color: var(--sj-sale) !important; text-decoration: none; }
.woocommerce-checkout .form-row { margin: 0 0 20px !important; padding: 0 !important; }
.woocommerce-checkout form .form-row input.input-text,
.woocommerce-checkout form .form-row select,
.woocommerce-checkout .select2-container--default .select2-selection--single {
  height: 50px !important; border: 1px solid #d5d9e0 !important; border-radius: 0 !important; background: #ffffff !important; font-size: 15px !important;
}
.woocommerce-checkout form .form-row textarea { border: 1px solid #d5d9e0 !important; border-radius: 0 !important; background: #ffffff !important; min-height: 120px; padding: 14px !important; }
.woocommerce-checkout form .form-row input.input-text:focus,
.woocommerce-checkout form .form-row textarea:focus { border-color: var(--sj-gold) !important; outline: none !important; box-shadow: none !important; }
.woocommerce-checkout .woocommerce-input-wrapper { display: block; }
.woocommerce-checkout #order_review { padding: 0 !important; border: 0 !important; background: transparent !important; }
.woocommerce-checkout #payment { padding: 26px !important; }
.woocommerce-checkout #payment ul.payment_methods li { padding: 4px 0 14px; }
.woocommerce-checkout #payment ul.payment_methods li label { font-size: 15px !important; font-weight: 600 !important; color: var(--sj-text) !important; text-transform: none !important; letter-spacing: 0 !important; margin: 0 !important; }
.woocommerce-checkout #payment div.payment_box { padding: 18px 20px !important; margin: 0 0 6px !important; background: #f7f8fa !important; border: 1px solid #e3e6eb !important; }
.woocommerce-checkout #payment div.payment_box p { font-size: 14px; color: var(--sj-text-soft); }
.woocommerce-checkout #payment div.payment_box::before { display: none !important; }
.woocommerce-checkout #payment .place-order { padding: 0 !important; border: 0 !important; }

/* order details page (after purchase / order status result) */
.woocommerce-order { max-width: 980px; margin: 0 auto; padding: 30px 0 60px; color: var(--sj-text); }
.woocommerce-order mark { background: transparent !important; color: var(--sj-text) !important; font-weight: 700; padding: 0 2px; }
.woocommerce-order h2 { font-family: var(--sj-serif) !important; font-size: 28px !important; font-weight: 600 !important; text-align: center; margin: 46px 0 22px; color: var(--sj-text) !important; }
.woocommerce-order ol, .woocommerce-order ul.order-updates { list-style: none !important; padding: 0 !important; margin: 0 0 10px !important; }
.woocommerce-order ol li, .woocommerce-order ul.order-updates li { background: #ffffff; border: 1px solid var(--sj-line); border-left: 3px solid var(--sj-gold); padding: 18px 22px; margin: 0 0 10px; font-size: 15px; color: var(--sj-text-soft); }
.woocommerce-order table { width: 100%; border-collapse: collapse; background: #ffffff; border: 1px solid var(--sj-line); }
.woocommerce-order table th, .woocommerce-order table td { padding: 16px 20px !important; border-bottom: 1px solid var(--sj-line) !important; font-size: 15px; vertical-align: middle; }
.woocommerce-order table thead th, .woocommerce-order table th { font-family: var(--sj-sans); font-size: 12px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sj-gold); }
.woocommerce-order table tfoot th { background: var(--sj-ivory); }
.woocommerce-order table td a { color: var(--sj-text); border-bottom: 1px solid var(--sj-gold); }
.woocommerce-order .woocommerce-order-details, .woocommerce-order .woocommerce-customer-details { margin-top: 10px; }
.woocommerce-order .woocommerce-column__title, .woocommerce-order .woocommerce-customer-details h2 { font-size: 22px !important; }
.woocommerce-order .button, .woocommerce-order .woocommerce-button { min-width: 180px; }

/* order status (track) form: match the card style and a proper black button */
.woocommerce-form-track-order button[type="submit"],
.woocommerce-form-track-order .button,
.woocommerce-form-track-order button.button {
  background: var(--sj-black) !important; color: #ffffff !important; border: 1px solid var(--sj-black) !important;
  border-radius: 0 !important; min-height: 50px !important; height: auto !important; width: 100% !important;
  display: flex !important; align-items: center !important; justify-content: center !important; font-weight: 600 !important; letter-spacing: 0.05em;
}
.woocommerce-form-track-order button[type="submit"]:disabled { background: #d5d8de !important; border-color: #d5d8de !important; color: #5f646c !important; }
.woocommerce-form-track-order input { font-size: 15px; }


/* ==========================================================================
   Round 8
   ========================================================================== */

/* pagination (numbered) */
.sj-pagination { margin: 60px 0 0; text-align: center; }
.sj-pagination ul { display: inline-flex; gap: 8px; list-style: none; margin: 0; padding: 0; flex-wrap: wrap; justify-content: center; }
.sj-pagination li { margin: 0; }
.sj-pagination a, .sj-pagination span {
  display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 14px;
  border: 1px solid var(--sj-line); background: #ffffff; color: var(--sj-text); font-family: var(--sj-sans); font-size: 14px; font-weight: 600;
  transition: all 0.25s ease;
}
.sj-pagination a:hover { border-color: var(--sj-gold); color: var(--sj-gold); }
.sj-pagination .current { background: var(--sj-black); border-color: var(--sj-black); color: #ffffff; }
.sj-pagination .prev, .sj-pagination .next { padding: 0 18px; }

/* hide the theme's "MORE ITEM" load button if it is still present */
.p-load-more-button, .p-button--more, .more_item_button, #js-load-more, .js-load-more { display: none !important; }

/* product photo: make the enlarge action visible */
.p-entry-product__mainimage { position: relative; cursor: zoom-in; }
.p-entry-product__mainimage::after {
  content: "Click to enlarge";
  position: absolute; right: 12px; bottom: 12px; z-index: 5; pointer-events: none;
  background: rgba(12, 13, 15, 0.8); color: var(--sj-gold-light);
  font-family: var(--sj-sans); font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
  padding: 8px 12px;
}

/* Stripe card fields: larger, clearer boxes */
.woocommerce-checkout #payment .payment_box .wc-stripe-elements-field,
.woocommerce-checkout #payment .payment_box .wc-stripe-card-element,
.woocommerce-checkout #payment .payment_box #stripe-card-element,
.woocommerce-checkout #payment .payment_box .stripe-card-group,
.woocommerce-checkout #payment .payment_box .wc-stripe-card-group {
  min-height: 58px !important;
  padding: 16px 18px !important;
  border: 1px solid #cfd3da !important;
  background: #ffffff !important;
  border-radius: 0 !important;
  display: flex !important;
  align-items: center !important;
  box-sizing: border-box;
}
.woocommerce-checkout #payment .payment_box .stripe-card-group { display: grid !important; grid-template-columns: 2fr 1fr 1fr !important; gap: 14px !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
.woocommerce-checkout #payment .payment_box .stripe-card-group > * { min-height: 58px; border: 1px solid #cfd3da; background: #ffffff; padding: 16px 18px; box-sizing: border-box; display: flex; align-items: center; }
.woocommerce-checkout #payment .payment_box label { font-size: 12px !important; letter-spacing: 0.1em !important; }
.woocommerce-checkout #payment .payment_box { padding: 24px 26px !important; }
.woocommerce-checkout #payment .payment_box iframe { min-height: 24px; }

/* order tracking: fields stacked vertically */
.woocommerce-form-track-order .form-row,
.woocommerce-form-track-order .form-row-first,
.woocommerce-form-track-order .form-row-last,
.woocommerce-form-track-order .form-row-wide {
  float: none !important; width: 100% !important; margin-right: 0 !important; clear: both !important;
}
.woocommerce-form-track-order .form-row { margin-bottom: 22px !important; }
.woocommerce-form-track-order .form-row label { font-size: 13px; font-weight: 700; letter-spacing: 0.06em; color: var(--sj-text); margin-bottom: 8px; display: block; }
.woocommerce-form-track-order input[type="text"], .woocommerce-form-track-order input[type="email"] { height: 50px; }
.woocommerce-form-track-order p { line-height: 1.9; }

/* order notes list: no numbers; order page highlights: plain gold text */
body ol.order-updates,
.woocommerce-order-tracking ol,
.woocommerce-order ol,
body.woocommerce-page ol.order-updates { list-style: none !important; padding-left: 0 !important; }
body ol.order-updates > li,
.woocommerce-order-tracking ol > li,
.woocommerce-order ol > li { list-style: none !important; }
body ol.order-updates > li::marker,
.woocommerce-order-tracking ol > li::marker,
.woocommerce-order ol > li::marker { content: "" !important; }
body.woocommerce-page mark,
body.woocommerce-account mark,
body.woocommerce-order-received mark,
body.woocommerce-view-order mark,
.woocommerce mark,
.woocommerce-order mark {
  background: transparent !important; color: var(--sj-text) !important; font-style: normal !important; font-weight: 700 !important; padding: 0 2px;
}


/* ==========================================================================
   Round 9
   ========================================================================== */

/* page numbers: clean boxes, same height, current page in black */
.sj-pagination ul.page-numbers { display: flex; gap: 8px; justify-content: center; align-items: center; list-style: none; margin: 0; padding: 0; flex-wrap: wrap; }
.sj-pagination li { margin: 0; padding: 0; }
.sj-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 46px; height: 46px; padding: 0 16px; box-sizing: border-box;
  border: 1px solid var(--sj-line); background: #ffffff; color: var(--sj-text);
  font-family: var(--sj-sans); font-size: 14px; font-weight: 600; letter-spacing: 0.04em; text-decoration: none; line-height: 1;
  transition: border-color 0.25s ease, color 0.25s ease, background 0.25s ease;
}
.sj-pagination a.page-numbers:hover { border-color: var(--sj-gold); color: var(--sj-gold); }
.sj-pagination .page-numbers.current { background: var(--sj-black) !important; border-color: var(--sj-black) !important; color: #ffffff !important; }
.sj-pagination .page-numbers.dots { border: 0; background: transparent; min-width: 24px; padding: 0 4px; color: var(--sj-text-soft); }
.sj-pagination .page-numbers.prev, .sj-pagination .page-numbers.next {
  min-width: 0; padding: 0 22px; background: var(--sj-black); border-color: var(--sj-black); color: #ffffff;
  font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase;
}
.sj-pagination a.page-numbers.prev:hover, .sj-pagination a.page-numbers.next:hover { background: linear-gradient(120deg, #8c6d33 0%, #e6cd8e 42%, #b8975a 62%, #8c6d33 100%); border-color: transparent; color: var(--sj-black); }

/* Favorites list: the theme uses div.wishlist_loop */
.wishlist_loop {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 48px 22px !important;
  margin: 0 !important; padding: 0 !important; list-style: none !important;
}
.wishlist_loop > li, .wishlist_loop > li.product {
  float: none !important; width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; list-style: none !important; display: block !important;
}
.wishlist_loop > li::marker { content: none !important; }
@media screen and (max-width: 960px) { .wishlist_loop { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 36px 16px !important; } }
@media screen and (max-width: 560px) { .wishlist_loop { gap: 30px 12px !important; } }

/* order notes: no list numbers, each note as a quiet card (same look as the rest of the site) */
ol { list-style: none !important; padding-left: 0 !important; margin: 0 0 12px !important; }
ol > li {
  list-style: none !important;
  background: #ffffff; border: 1px solid var(--sj-line); border-left: 3px solid var(--sj-gold);
  padding: 18px 22px; margin: 0 0 10px; color: var(--sj-text-soft); font-size: 15px; line-height: 1.8;
}
ol > li::marker { content: "" !important; }

/* highlighted text in order status: plain bold, no yellow */
mark { background: transparent !important; color: var(--sj-text) !important; font-style: normal !important; font-weight: 700 !important; padding: 0 2px; }

/* order photos on the order details page */
.sj-order-photos { margin: 50px 0 0; }
.sj-order-photos h2 { font-family: var(--sj-serif); font-size: 26px; font-weight: 600; text-align: center; margin: 0 0 26px; color: var(--sj-text); }
.sj-order-photos__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.sj-order-photos__item { display: block; background: #000; border: 1px solid var(--sj-line); }
.sj-order-photos__item img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; transition: opacity 0.3s ease; }
.sj-order-photos__item:hover img { opacity: 0.85; }
@media screen and (max-width: 560px) { .sj-order-photos__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }


/* ==========================================================================
   Round 10: pagination (stronger selectors so the theme cannot override them)
   ========================================================================== */
html body nav .page-numbers,
html body .woocommerce-pagination .page-numbers,
html body .sj-pagination .page-numbers {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  min-width: 46px !important; height: 46px !important; padding: 0 16px !important; box-sizing: border-box !important;
  border: 1px solid #dadde3 !important; background: #ffffff !important; color: #17181b !important;
  font-family: var(--sj-sans) !important; font-size: 14px !important; font-weight: 600 !important; line-height: 1 !important;
  text-decoration: none !important; border-radius: 0 !important; box-shadow: none !important;
}
html body nav ul.page-numbers, html body nav .pagination, html body .woocommerce-pagination ul {
  display: flex !important; gap: 8px !important; justify-content: center !important; align-items: center !important;
  list-style: none !important; margin: 0 !important; padding: 0 !important; flex-wrap: wrap !important;
}
html body nav ul.page-numbers li, html body .woocommerce-pagination li { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; list-style: none !important; }
html body nav .page-numbers.current, html body .woocommerce-pagination .page-numbers.current,
html body nav span.current, html body nav .pagination_item .current {
  background: #0c0d10 !important; border-color: #0c0d10 !important; color: #ffffff !important;
}
html body nav a.page-numbers:hover { border-color: #b8975a !important; color: #b8975a !important; }
html body nav .page-numbers.prev, html body nav .page-numbers.next,
html body nav a.next.page-numbers, html body nav a.prev.page-numbers {
  background: #0c0d10 !important; border-color: #0c0d10 !important; color: #ffffff !important;
  padding: 0 22px !important; font-size: 12px !important; letter-spacing: 0.12em !important; text-transform: uppercase !important;
}
html body nav a.page-numbers.next:hover, html body nav a.page-numbers.prev:hover {
  background: linear-gradient(120deg, #8c6d33 0%, #e6cd8e 42%, #b8975a 62%, #8c6d33 100%) !important; border-color: transparent !important; color: #0c0d10 !important;
}


/* ==========================================================================
   Round 11
   ========================================================================== */

/* checkout: Country / Region (select2) sits level with the other fields */
.woocommerce-checkout .form-row .select2-container { width: 100% !important; margin: 0 !important; vertical-align: top; display: block !important; }
.woocommerce-checkout .form-row .select2-container .select2-selection--single {
  height: 50px !important; border: 1px solid #d5d9e0 !important; border-radius: 0 !important; background: #ffffff !important;
  display: flex !important; align-items: center !important;
}
.woocommerce-checkout .form-row .select2-container .select2-selection--single .select2-selection__rendered {
  line-height: 1 !important; padding: 0 14px !important; color: #17181b !important; font-size: 15px !important; margin: 0 !important; width: 100%;
}
.woocommerce-checkout .form-row .select2-container .select2-selection--single .select2-selection__arrow {
  height: 100% !important; top: 0 !important; right: 10px !important; width: 20px !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
}
.woocommerce-checkout .form-row .select2-container--default .select2-selection--single .select2-selection__placeholder { color: #7a7e85 !important; }

/* pagination: remove leftover empty boxes (icon-font placeholders) and keep the boxes uniform */
nav .pagination_item:empty, nav li:empty, nav .page-numbers:empty,
html body nav .pagination_item { border: 0 !important; background: transparent !important; }
html body nav li:empty, html body nav .pagination_item:empty { display: none !important; }
html body nav ul.page-numbers, html body nav ul.pagination { gap: 6px !important; }
html body nav .page-numbers.prev, html body nav .page-numbers.next,
html body nav a.prev.page-numbers, html body nav a.next.page-numbers {
  background: #ffffff !important; color: #0c0d10 !important; border: 1px solid #0c0d10 !important;
  min-width: 110px !important; height: 46px !important;
}
html body nav a.page-numbers.prev:hover, html body nav a.page-numbers.next:hover {
  background: linear-gradient(120deg, #8c6d33 0%, #e6cd8e 42%, #b8975a 62%, #8c6d33 100%) !important;
  border-color: transparent !important; color: #0c0d10 !important;
}
html body nav .page-numbers.current { min-width: 46px !important; }


/* ==========================================================================
   Round 12
   ========================================================================== */

/* pagination: remove the outer frame and the empty icon placeholders at both ends */
html body nav, html body nav ul, html body nav .pagination {
  border: 0 !important; background: transparent !important; box-shadow: none !important; outline: 0 !important;
}
html body nav li:has(> a:empty), html body nav li:has(> span:empty), html body nav li:empty,
html body nav .pagination_item:has(> a:empty), html body nav .pagination_item:has(> span:empty),
html body nav a:empty, html body nav span:empty { display: none !important; }

/* country / region select: text centred vertically inside the same 50px box as the other fields */
.woocommerce-checkout .form-row .select2-container .select2-selection--single { display: block !important; height: 50px !important; }
.woocommerce-checkout .form-row .select2-container .select2-selection--single .select2-selection__rendered {
  line-height: 48px !important; height: 48px !important; padding: 0 14px !important; display: block !important;
}
.woocommerce-checkout .form-row .select2-container .select2-selection--single .select2-selection__arrow { height: 48px !important; top: 0 !important; }
.woocommerce-checkout .form-row .select2-container { margin-top: 0 !important; }

/* related items: even gaps between cards, titles do not touch the next card, arrows centred on the photos */
.related .swiper-slide, .related_loop > li, .related_loop .swiper-slide { box-sizing: border-box; padding: 0 12px; }
.related .swiper-wrapper, .related_loop { gap: 0; }
.related .swiper-slide:first-child, .related_loop > li:first-child { padding-left: 0; }
.related .swiper-slide:last-child, .related_loop > li:last-child { padding-right: 0; }
.related li.product, .related .product { margin: 0 !important; width: 100% !important; float: none !important; }
.related .product img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; height: auto; display: block; }
.related .woocommerce-loop-product__title, .related .product h3, .related .product h2 {
  font-family: var(--sj-serif) !important; font-size: 17px !important; font-weight: 600 !important; line-height: 1.4 !important;
  color: var(--sj-text) !important; margin: 12px 0 8px !important; min-height: 4.2em; padding: 0 !important;
}
.related .product .price { font-family: var(--sj-sans); font-size: 15px; margin: 0; }
.related .product .price del { color: #7d8189; font-size: 13px; margin-right: 8px; }
.related .product .price ins { text-decoration: none; font-weight: 700; background: none; }
.related .product .price .woocommerce-Price-amount { font-weight: 700; }
.related .product .onsale { top: 10px !important; left: 10px !important; }

/* arrows: centred on the photos and in the palette */
.related .swiper-button-prev, .related .swiper-button-next, .related .swiper-button-prev::after, .related .swiper-button-next::after {
  color: var(--sj-text) !important;
}
.related .swiper-button-prev, .related .swiper-button-next {
  top: 28% !important; margin-top: 0 !important; width: 40px; height: 40px;
}



/* ==========================================================================
   Round 14: recently viewed (spacing inside each card, slider width untouched)
   and pagination pseudo-element boxes
   ========================================================================== */
.recentry_viewed_products_loop li.product,
.recentry_viewed_products_loop .product { box-sizing: border-box; padding: 0 12px; margin: 0 !important; }
.recentry_viewed_products_loop .product img { aspect-ratio: 4 / 3; object-fit: cover; }
.recentry_viewed_products_loop .woocommerce-loop-product__title,
.recentry_viewed_products_loop .product h3 {
  font-family: var(--sj-serif) !important; font-size: 17px !important; font-weight: 600 !important; line-height: 1.4 !important;
  color: var(--sj-text) !important; margin: 12px 0 8px !important; min-height: 4.2em; padding: 0 !important;
}
.recentry_viewed_products_loop .product .price { font-family: var(--sj-sans); font-size: 15px; margin: 0; }

/* pagination: the empty boxes at both ends come from pseudo-elements on the list */
html body nav.woocommerce-pagination ul.page-numbers::before,
html body nav.woocommerce-pagination ul.page-numbers::after,
html body nav ul::before, html body nav ul::after,
html body nav .page-numbers::before, html body nav .page-numbers::after,
html body nav li::before, html body nav li::after {
  content: none !important; display: none !important; border: 0 !important; background: none !important;
}


/* ==========================================================================
   Round 15: fixed grids (no slider), pagination with its own class names
   ========================================================================== */

/* slider arrows are no longer used */
.swiper-button-prev, .swiper-button-next, .swiper-pagination { display: none !important; }

/* related items and recently viewed: one row of 4, equal widths */
.related .swiper-wrapper, .related_loop,
.recentry_viewed_products_loop, .recentry_viewed_products_loop.swiper-wrapper {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 0 22px !important;
  transform: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.related .swiper-slide, .related_loop > li, .recentry_viewed_products_loop > li,
.recentry_viewed_products_loop .swiper-slide {
  width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; transform: none !important; float: none !important; list-style: none !important;
}
.recentry_viewed_products_loop > li:nth-child(n+5) { display: none !important; }
.related .product, .recentry_viewed_products_loop .product { margin: 0 !important; width: 100% !important; float: none !important; }
@media screen and (max-width: 960px) {
  .related .swiper-wrapper, .related_loop, .recentry_viewed_products_loop, .recentry_viewed_products_loop.swiper-wrapper { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 36px 16px !important; }
  .recentry_viewed_products_loop > li:nth-child(n+3) { display: block !important; }
}
@media screen and (max-width: 560px) {
  .related .swiper-wrapper, .related_loop, .recentry_viewed_products_loop, .recentry_viewed_products_loop.swiper-wrapper { gap: 30px 12px !important; }
}

/* product list pagination (sj-pager) */
.sj-pager { margin: 60px 0 0; text-align: center; }
.sj-pager__list { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.sj-pager__li { margin: 0; padding: 0; border: 0; background: none; list-style: none; }
.sj-pager__item {
  display: inline-flex; align-items: center; justify-content: center; min-width: 46px; height: 46px; padding: 0 14px; box-sizing: border-box;
  border: 1px solid #cfd3da; background: #ffffff; color: #17181b; font-family: var(--sj-sans); font-size: 14px; font-weight: 600; line-height: 1;
  text-decoration: none; transition: border-color 0.25s ease, color 0.25s ease, background 0.25s ease;
}
a.sj-pager__item:hover { border-color: #b8975a; color: #b8975a; }
.sj-pager__item.current { background: #0c0d10 !important; border-color: #0c0d10 !important; color: #ffffff !important; }
.sj-pager__item.dots { border: 0; background: transparent; min-width: 24px; padding: 0 4px; }
.sj-pager__item.prev, .sj-pager__item.next {
  min-width: 0; padding: 0 22px; background: #0c0d10; border-color: #0c0d10; color: #ffffff;
  font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase;
}
a.sj-pager__item.prev:hover, a.sj-pager__item.next:hover {
  background: linear-gradient(120deg, #8c6d33 0%, #e6cd8e 42%, #b8975a 62%, #8c6d33 100%); border-color: transparent; color: #0c0d10;
}

/* ==========================================================================
   Round 16: header icons on one line (mobile search button was sitting lower)
   ========================================================================== */
.site_header .site_tools { align-items: center !important; height: 40px; }
.site_header .site_tools > * {
  position: relative !important; top: auto !important; bottom: auto !important; right: auto !important; left: auto !important;
  margin: 0 !important; transform: none !important; align-self: center !important;
}
#header_top #js-header-search.site_tool,
#header_top .header_search_toggle_button {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  width: 22px !important; height: 22px !important; min-width: 22px; padding: 0 !important; background: transparent !important; border: 0 !important; box-shadow: none !important;
}
#header_top #js-header-search svg { display: block; width: 20px; height: 20px; }
#header_top .site_tool svg { display: block; }


/* ==========================================================================
   Round 17: favourites removed (header heart, product button, wishlist list)
   ========================================================================== */
#js-single-product-like-button, .single_product_like, .site_tool--wishlist,
#js-header-wishlist-count, .wishlist_loop, #js-like-modal-message { display: none !important; }


/* ==========================================================================
   Round 18: favourites removed from the mobile product bar; cart button fills the bar
   ========================================================================== */
#js-product-footer-bar-like, .product_footer_like_button, .product_like_message_wrap, #js-like-modal-message { display: none !important; }
.product_footer_bar_inner { display: flex !important; }
.product_footer_bar_inner .product_footer_cart_button { flex: 1 1 auto !important; width: 100% !important; }

/* ==========================================================================
   Round 19: mini-cart popup sits under the cart icon (aligned to the header's inner width)
   ========================================================================== */
#header_top { position: sticky; }
#js-header-view-cart.p-header-view-cart,
.site_header #js-header-view-cart {
  position: absolute !important;
  top: 100% !important;
  left: auto !important;
  right: max(5%, calc((100% - 1180px) / 2)) !important;
  width: min(380px, 90vw) !important;
  margin: 0 !important;
  z-index: 200;
}
