/*
Theme Name: Restyle
Theme URI: https://www.restyle.id
Author: Restyle.id
Description: Tema WooCommerce elegan untuk Restyle.id — butik fashion, tas branded, dan aksesoris. Palet Modern Feminine (rose & gold) dengan tipografi serif klasik.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: restyle
Tags: e-commerce, woocommerce, custom-logo, custom-menu, translation-ready
*/

/* =========================================================
   1. Tokens & base
   ========================================================= */
:root {
  --rs-primary: #b9828c;
  --rs-primary-dark: #9c6470;
  --rs-bg: #faf7f3;
  --rs-bg-alt: #f3ece4;
  --rs-accent: #b89b5e;
  --rs-accent-dark: #9a7f45;
  --rs-secondary: #8a6f61;
  --rs-text: #2a211d;
  --rs-muted: #75655e;
  --rs-surface: #ffffff;
  --rs-border: rgba(42, 33, 29, .12);
  --rs-border-soft: rgba(42, 33, 29, .08);
  --rs-shadow: 0 18px 50px rgba(42, 34, 26, .10);
  --rs-shadow-soft: 0 8px 26px rgba(42, 34, 26, .07);
  --rs-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --rs-sans: "Inter", Avenir, "Helvetica Neue", Arial, sans-serif;
  --rs-radius: 6px;
  --rs-container: 1200px;
}

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

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--rs-bg);
  color: var(--rs-text);
  font-family: var(--rs-sans);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

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

h1, h2, h3, h4 {
  font-family: var(--rs-serif);
  font-weight: 500;
  line-height: 1.12;
  color: var(--rs-text);
  margin: 0 0 .5em;
}

h1 { font-size: clamp(34px, 5vw, 56px); letter-spacing: -.5px; }
h2 { font-size: clamp(28px, 3.6vw, 40px); }
h3 { font-size: clamp(21px, 2.4vw, 26px); }

p { margin: 0 0 1.2em; }

a { color: var(--rs-primary-dark); text-decoration: none; transition: color .18s ease; }
a:hover { color: var(--rs-accent-dark); }

.rs-container {
  max-width: var(--rs-container);
  margin: 0 auto;
  padding: 0 24px;
}

.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  word-wrap: normal !important;
}

/* Kicker / eyebrow label */
.rs-kicker {
  display: inline-block;
  margin: 0 0 14px;
  color: var(--rs-accent-dark);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
}

/* =========================================================
   2. Buttons & forms
   ========================================================= */
.rs-btn,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #place_order,
.woocommerce-page #place_order,
.wc-block-components-button,
button[type="submit"],
input[type="submit"] {
  display: inline-block;
  padding: 15px 30px;
  border: 1px solid var(--rs-text);
  border-radius: 0;
  background: var(--rs-text);
  color: #fff;
  font-family: var(--rs-sans);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 1.6px;
  line-height: 1.2;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
  text-decoration: none;
}

.rs-btn:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #place_order:hover,
button[type="submit"]:hover,
input[type="submit"]:hover {
  background: var(--rs-primary-dark);
  border-color: var(--rs-primary-dark);
  color: #fff;
}

.rs-btn--ghost {
  background: transparent;
  color: var(--rs-text);
}
.rs-btn--ghost:hover { background: var(--rs-text); color: #fff; }

.rs-btn--gold {
  background: var(--rs-accent);
  border-color: var(--rs-accent);
}
.rs-btn--gold:hover { background: var(--rs-accent-dark); border-color: var(--rs-accent-dark); }

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt {
  background: var(--rs-text);
  color: #fff;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
  background: var(--rs-primary-dark);
}

.woocommerce a.button.disabled,
.woocommerce button.button.disabled,
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled] {
  background: var(--rs-muted);
  border-color: var(--rs-muted);
  color: #fff;
  opacity: .55;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
textarea,
select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
  width: 100%;
  padding: 13px 16px;
  border: 1px solid var(--rs-border);
  border-radius: var(--rs-radius);
  background: #fff;
  color: var(--rs-text);
  font-family: var(--rs-sans);
  font-size: 15px;
  line-height: 1.4;
  outline: none;
  transition: border-color .18s ease, box-shadow .18s ease;
  -webkit-appearance: none;
  appearance: none;
}

select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2375655e' fill='none' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 40px;
}

input:focus, textarea:focus, select:focus,
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
  border-color: var(--rs-primary);
  box-shadow: 0 0 0 3px rgba(185, 130, 140, .18);
}

label { font-size: 14px; font-weight: 600; color: var(--rs-text); }

.select2-container--default .select2-selection--single {
  height: auto;
  padding: 9px 12px;
  border: 1px solid var(--rs-border);
  border-radius: var(--rs-radius);
}
.select2-container--default .select2-selection--single .select2-selection__arrow { top: 50%; transform: translateY(-50%); }
.select2-dropdown { border-color: var(--rs-border); }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--rs-primary); }

/* =========================================================
   3. Announcement bar + header
   ========================================================= */
.rs-topbar {
  background: var(--rs-text);
  color: #f6efe9;
  font-size: 12px;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  text-align: center;
  padding: 9px 16px;
}
.rs-topbar a { color: var(--rs-accent); }

.rs-header {
  position: sticky;
  top: 0;
  z-index: 90;
  background: rgba(250, 247, 243, .92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--rs-border-soft);
  transition: box-shadow .25s ease;
}
.rs-header.is-scrolled { box-shadow: var(--rs-shadow-soft); }

.rs-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 78px;
}

.rs-brand { display: flex; align-items: center; gap: 12px; }
.rs-brand img { max-height: 46px; width: auto; }
.rs-brand__text {
  font-family: var(--rs-serif);
  font-size: 38px;
  font-weight: 500;
  line-height: 1;
  color: var(--rs-primary);
  letter-spacing: .5px;
}
.rs-brand:hover .rs-brand__text { color: var(--rs-primary-dark); }

.rs-nav { display: flex; align-items: center; }
.rs-nav ul { display: flex; gap: 30px; list-style: none; margin: 0; padding: 0; }
.rs-nav a {
  position: relative;
  color: var(--rs-text);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  padding: 6px 0;
}
.rs-nav a::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 100%; height: 1px;
  background: var(--rs-accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .22s ease;
}
.rs-nav a:hover::after,
.rs-nav .current-menu-item > a::after { transform: scaleX(1); }

.rs-nav .sub-menu {
  position: absolute;
  display: block;
  min-width: 210px;
  padding: 10px 0;
  margin-top: 8px;
  background: #fff;
  border: 1px solid var(--rs-border-soft);
  box-shadow: var(--rs-shadow);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: all .2s ease;
  z-index: 99;
}
.rs-nav li { position: relative; }
.rs-nav li:hover > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.rs-nav .sub-menu li { display: block; }
.rs-nav .sub-menu a { display: block; padding: 9px 20px; text-transform: none; letter-spacing: .3px; font-size: 14px; }
.rs-nav .sub-menu a::after { display: none; }
.rs-nav .sub-menu a:hover { background: var(--rs-bg); color: var(--rs-primary-dark); }

.rs-header__actions { display: flex; align-items: center; gap: 14px; }

.rs-cart-link {
  position: relative;
  display: grid;
  place-items: center;
  width: 42px; height: 42px;
  border: 1px solid var(--rs-accent);
  border-radius: 50%;
  color: var(--rs-text);
  transition: background .2s ease, color .2s ease;
}
.rs-cart-link:hover { background: var(--rs-text); color: #fff; border-color: var(--rs-text); }
.rs-cart-link svg { width: 18px; height: 18px; }
.rs-cart-count {
  position: absolute;
  top: -5px; right: -5px;
  min-width: 19px; height: 19px;
  padding: 0 5px;
  display: grid;
  place-items: center;
  background: var(--rs-primary);
  color: #fff;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
}

.rs-account-link {
  display: grid;
  place-items: center;
  width: 42px; height: 42px;
  border-radius: 50%;
  color: var(--rs-text);
  transition: background .2s ease;
}
.rs-account-link:hover { background: var(--rs-bg-alt); color: var(--rs-primary-dark); }
.rs-account-link svg { width: 19px; height: 19px; }

.rs-burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 42px; height: 42px;
  padding: 10px;
  background: none;
  border: 1px solid var(--rs-border);
  border-radius: 50%;
  cursor: pointer;
}
.rs-burger span {
  display: block;
  height: 1.6px;
  background: var(--rs-text);
  transition: transform .25s ease, opacity .2s ease;
}
.rs-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.rs-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.rs-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* =========================================================
   4. Hero (front page)
   ========================================================= */
.rs-hero {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 12% 8%, rgba(184, 155, 94, .13), transparent 30%),
    linear-gradient(180deg, #fdfbf8 0%, var(--rs-bg) 100%);
}
.rs-hero__inner {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 48px;
  align-items: center;
  padding: 72px 0 84px;
}
.rs-hero h1 {
  max-width: 520px;
  margin: 0 0 22px;
  font-size: clamp(42px, 6vw, 76px);
  font-weight: 400;
  line-height: .95;
  letter-spacing: -1px;
}
.rs-hero__copy {
  max-width: 440px;
  margin: 0 0 34px;
  color: var(--rs-muted);
  font-size: 17px;
  line-height: 1.6;
}
.rs-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }

.rs-hero__visual {
  position: relative;
  min-height: 420px;
  border-radius: 220px 220px 10px 10px;
  overflow: hidden;
  box-shadow: var(--rs-shadow);
  background: linear-gradient(160deg, #e9d3c9, #cfa5ab);
}
.rs-hero__visual img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.rs-hero__badge {
  position: absolute;
  left: 26px; bottom: 26px;
  padding: 12px 20px;
  background: rgba(255, 255, 255, .9);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(184, 155, 94, .4);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--rs-text);
}

/* =========================================================
   5. Front page sections
   ========================================================= */
.rs-section { padding: 64px 0; }
.rs-section--alt { background: var(--rs-bg-alt); }

.rs-section__head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 34px;
}
.rs-section__head h2 { margin: 0; font-weight: 500; }
.rs-section__link {
  color: var(--rs-accent-dark);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  white-space: nowrap;
}

/* Category tiles */
.rs-cats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.rs-cat {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 120px 120px 8px 8px;
  aspect-ratio: 3 / 4;
  box-shadow: var(--rs-shadow-soft);
}
.rs-cat img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}
.rs-cat:hover img { transform: scale(1.05); }
.rs-cat__label {
  position: absolute;
  left: 14px; right: 14px; bottom: 14px;
  padding: 12px 10px;
  background: rgba(255, 255, 255, .92);
  color: var(--rs-text);
  font-family: var(--rs-serif);
  font-size: 21px;
  text-align: center;
  transition: background .2s ease, color .2s ease;
}
.rs-cat:hover .rs-cat__label { background: var(--rs-text); color: #fff; }

/* Value props */
.rs-values {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.rs-value {
  padding: 28px 24px;
  background: var(--rs-surface);
  border: 1px solid var(--rs-border-soft);
  text-align: center;
}
.rs-value svg { width: 30px; height: 30px; color: var(--rs-accent-dark); margin-bottom: 12px; }
.rs-value h3 { font-family: var(--rs-sans); font-size: 15px; font-weight: 700; margin-bottom: 6px; }
.rs-value p { margin: 0; color: var(--rs-muted); font-size: 13.5px; line-height: 1.5; }

/* CTA banner */
.rs-cta {
  padding: 76px 0;
  background:
    radial-gradient(circle at 85% 20%, rgba(184, 155, 94, .25), transparent 45%),
    linear-gradient(120deg, #2a211d 0%, #4a3238 100%);
  color: #f4ece5;
  text-align: center;
}
.rs-cta .rs-kicker { color: var(--rs-accent); }
.rs-cta h2 { color: #fff; font-weight: 400; max-width: 620px; margin: 0 auto 16px; }
.rs-cta p { max-width: 520px; margin: 0 auto 30px; color: rgba(244, 236, 229, .75); }
.rs-cta .rs-btn { background: var(--rs-accent); border-color: var(--rs-accent); }
.rs-cta .rs-btn:hover { background: #fff; border-color: #fff; color: var(--rs-text); }

/* =========================================================
   6. WooCommerce — layout & loop
   ========================================================= */
.rs-main { padding: 48px 0 72px; min-height: 50vh; }

.woocommerce-breadcrumb,
.woocommerce .woocommerce-breadcrumb {
  margin-bottom: 26px;
  color: var(--rs-muted);
  font-size: 12.5px;
  letter-spacing: .6px;
  text-transform: uppercase;
}
.woocommerce .woocommerce-breadcrumb a { color: var(--rs-secondary); }

.woocommerce-products-header { margin-bottom: 30px; }
.woocommerce-products-header__title { margin: 0 0 6px; font-weight: 400; }
.woocommerce .term-description { color: var(--rs-muted); max-width: 640px; }

.woocommerce .woocommerce-result-count { color: var(--rs-muted); font-size: 14px; margin-top: 10px; }
.woocommerce .woocommerce-ordering select {
  width: auto;
  padding: 10px 40px 10px 14px;
  font-size: 13.5px;
}

/* Product grid */
.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 26px 22px;
  margin: 0 0 40px !important;
  padding: 0;
  list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product {
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0;
  background: var(--rs-surface);
  border: 1px solid var(--rs-border-soft);
  text-align: left;
  transition: box-shadow .25s ease, transform .25s ease;
  display: flex;
  flex-direction: column;
}
.woocommerce ul.products li.product:hover {
  box-shadow: var(--rs-shadow);
  transform: translateY(-3px);
}
.woocommerce ul.products li.product a img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  margin: 0 !important;
  display: block;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 {
  padding: 14px 16px 2px !important;
  font-family: var(--rs-sans);
  font-size: 14.5px !important;
  font-weight: 600;
  color: var(--rs-text);
  line-height: 1.4;
}
.woocommerce ul.products li.product .woocommerce-loop-category__title {
  padding: 14px 16px 12px !important;
  font-family: var(--rs-serif);
  font-size: 19px !important;
}
.woocommerce ul.products li.product .price {
  padding: 0 16px;
  color: var(--rs-text) !important;
  font-size: 15px !important;
  font-weight: 600;
}
.woocommerce ul.products li.product .price del {
  color: var(--rs-muted);
  font-weight: 400;
  opacity: .75;
  margin-right: 6px;
}
.woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--rs-primary-dark); }
.woocommerce ul.products li.product .star-rating { margin: 6px 16px 0; font-size: 12px; }
.woocommerce ul.products li.product .button {
  margin: 14px 16px 18px !important;
  padding: 12px 16px;
  font-size: 11.5px;
  text-align: center;
  background: transparent;
  color: var(--rs-text);
  border: 1px solid var(--rs-text);
  margin-top: auto !important;
}
.woocommerce ul.products li.product .button:hover {
  background: var(--rs-text);
  color: #fff;
}
.woocommerce ul.products li.product .added_to_cart {
  margin: -8px 16px 16px;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--rs-accent-dark);
}

/* Sale badge */
.woocommerce span.onsale {
  position: absolute;
  top: 14px; left: 14px;
  min-width: 0; min-height: 0;
  margin: 0 !important;
  padding: 6px 12px;
  background: var(--rs-primary);
  color: #fff;
  border-radius: 0;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  line-height: 1.4;
  z-index: 5;
}
.woocommerce ul.products li.product { position: relative; }

/* Pagination */
.woocommerce nav.woocommerce-pagination ul {
  border: none;
  display: flex;
  justify-content: center;
  gap: 8px;
}
.woocommerce nav.woocommerce-pagination ul li {
  border: none;
  overflow: visible;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  display: grid;
  place-items: center;
  min-width: 42px; height: 42px;
  padding: 0 8px;
  border: 1px solid var(--rs-border);
  background: #fff;
  color: var(--rs-text);
  font-weight: 600;
}
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
  background: var(--rs-text);
  border-color: var(--rs-text);
  color: #fff;
}

/* Star ratings */
.woocommerce .star-rating span::before,
.woocommerce p.stars a { color: var(--rs-accent); }

/* =========================================================
   7. Single product
   ========================================================= */
.woocommerce div.product { position: relative; }
.woocommerce div.product div.images { margin-bottom: 2em; }
.woocommerce div.product div.images img {
  border-radius: 8px;
  border: 1px solid var(--rs-border-soft);
}
.woocommerce div.product div.images .flex-control-thumbs { margin-top: 12px; display: flex; gap: 10px; }
.woocommerce div.product div.images .flex-control-thumbs li {
  width: calc(25% - 8px);
  float: none;
}
.woocommerce div.product div.images .flex-control-thumbs img {
  border: 1px solid var(--rs-border);
  opacity: .6;
  transition: opacity .2s ease;
}
.woocommerce div.product div.images .flex-control-thumbs img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs img:hover { opacity: 1; border-color: var(--rs-accent); }

.woocommerce div.product .product_title {
  font-size: clamp(30px, 4vw, 44px);
  font-weight: 400;
  margin-bottom: 10px;
}
.woocommerce div.product .summary .price {
  margin: 6px 0 18px;
  color: var(--rs-text);
  font-size: 26px;
  font-weight: 600;
  font-family: var(--rs-sans);
}
.woocommerce div.product .summary .price del { color: var(--rs-muted); opacity: .7; font-weight: 400; font-size: 20px; }
.woocommerce div.product .summary .price ins { text-decoration: none; color: var(--rs-primary-dark); }
.woocommerce div.product .woocommerce-product-details__short-description {
  color: var(--rs-muted);
  font-size: 15.5px;
  margin-bottom: 10px;
}

.woocommerce div.product form.cart { margin: 24px 0 !important; }
.woocommerce div.product form.cart div.quantity { margin-right: 12px; }

/* Quantity stepper */
.woocommerce .quantity { position: relative; display: inline-flex; align-items: stretch; }
.woocommerce .quantity .qty {
  width: 110px;
  padding: 13px 34px;
  text-align: center;
  -moz-appearance: textfield;
}
.woocommerce .quantity .qty::-webkit-outer-spin-button,
.woocommerce .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.rs-qty-btn {
  position: absolute;
  top: 1px; bottom: 1px;
  width: 32px;
  display: grid;
  place-items: center;
  background: transparent;
  border: none;
  color: var(--rs-muted);
  font-size: 17px;
  cursor: pointer;
  z-index: 2;
}
.rs-qty-btn:hover { color: var(--rs-primary-dark); }
.rs-qty-btn--minus { left: 1px; }
.rs-qty-btn--plus { right: 1px; }

.woocommerce div.product form.cart .button { padding: 15px 36px; }

/* Variations */
.woocommerce div.product form.cart .variations { margin-bottom: 14px; }
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th { padding: 6px 0; vertical-align: middle; }
.woocommerce div.product form.cart .variations label { font-weight: 600; font-size: 14px; }
.woocommerce div.product form.cart .variations select { width: auto; min-width: 190px; }
.woocommerce div.product form.cart .reset_variations { font-size: 13px; color: var(--rs-muted); }

.product_meta {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--rs-border-soft);
  color: var(--rs-muted);
  font-size: 13.5px;
}
.product_meta > span { display: block; margin-bottom: 4px; }
.product_meta a { color: var(--rs-secondary); }

/* Tabs */
.woocommerce div.product .woocommerce-tabs { margin-top: 46px; }
.woocommerce div.product .woocommerce-tabs ul.tabs {
  margin: 0 0 0 !important;
  padding: 0 !important;
  display: flex;
  gap: 6px;
  border-bottom: 1px solid var(--rs-border);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  border-radius: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  padding: 14px 22px;
  display: inline-block;
  color: var(--rs-muted);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  border-bottom: 2px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--rs-text);
  border-bottom-color: var(--rs-accent);
}
.woocommerce div.product .woocommerce-tabs .panel {
  margin-top: 26px;
  color: var(--rs-muted);
}
.woocommerce div.product .woocommerce-tabs .panel h2 {
  font-size: 24px;
  margin-bottom: 14px;
  color: var(--rs-text);
}

.woocommerce table.shop_attributes {
  border: 1px solid var(--rs-border-soft);
}
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
  padding: 12px 16px;
  border-bottom: 1px solid var(--rs-border-soft);
  font-style: normal;
}
.woocommerce table.shop_attributes th { background: var(--rs-bg-alt); color: var(--rs-text); }

/* Reviews */
.woocommerce #reviews #comments ol.commentlist { padding: 0; }
.woocommerce #reviews #comments ol.commentlist li .comment-text {
  border: 1px solid var(--rs-border-soft);
  background: #fff;
  border-radius: var(--rs-radius);
}
.woocommerce #reviews #comments ol.commentlist li img.avatar {
  border: none;
  background: var(--rs-bg-alt);
  border-radius: 50%;
  padding: 0;
  width: 44px;
}
.woocommerce #review_form #respond .form-submit input { width: auto; }

/* Related / upsells */
.woocommerce .related.products,
.woocommerce .upsells.products {
  margin-top: 64px;
  padding-top: 42px;
  border-top: 1px solid var(--rs-border-soft);
}
.woocommerce .related.products > h2,
.woocommerce .upsells.products > h2 {
  font-size: 30px;
  font-weight: 400;
  margin-bottom: 26px;
}

/* =========================================================
   8. Notices
   ========================================================= */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews,
p.no-comments {
  background: #fff !important;
  border-top: 3px solid var(--rs-accent);
  color: var(--rs-text);
  box-shadow: var(--rs-shadow-soft);
  padding: 16px 24px 16px 52px !important;
  margin-bottom: 28px !important;
}
.woocommerce-message { border-top-color: #7d9a6f; }
.woocommerce-message::before { color: #7d9a6f; }
.woocommerce-info { border-top-color: var(--rs-accent); }
.woocommerce-info::before { color: var(--rs-accent-dark); }
.woocommerce-error { border-top-color: #b3573f; }
.woocommerce-error::before { color: #b3573f; }
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
  padding: 9px 16px;
  font-size: 11px;
}

/* =========================================================
   9. Cart
   ========================================================= */
.rs-page-title {
  margin: 0 0 30px;
  font-weight: 400;
}

.woocommerce table.shop_table {
  border: 1px solid var(--rs-border-soft);
  border-radius: var(--rs-radius);
  border-collapse: separate;
  background: #fff;
}
.woocommerce table.shop_table th {
  padding: 15px 16px;
  background: var(--rs-bg-alt);
  color: var(--rs-text);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 1.4px;
  text-transform: uppercase;
}
.woocommerce table.shop_table td {
  padding: 16px;
  border-top: 1px solid var(--rs-border-soft);
  color: var(--rs-text);
}
.woocommerce table.shop_table td.product-name a {
  color: var(--rs-text);
  font-weight: 600;
}
.woocommerce table.shop_table td.product-name a:hover { color: var(--rs-primary-dark); }
.woocommerce table.cart img { width: 74px; border-radius: 4px; }
.woocommerce table.cart td.actions { padding: 16px; }
.woocommerce table.cart td.actions .coupon { display: flex; gap: 10px; float: left; }
.woocommerce table.cart td.actions .coupon .input-text {
  width: 200px !important;
  padding: 12px 14px !important;
  margin: 0 !important;
}
.woocommerce a.remove {
  width: 26px; height: 26px;
  line-height: 24px;
  color: var(--rs-muted) !important;
  border: 1px solid var(--rs-border);
  border-radius: 50%;
  font-weight: 400;
}
.woocommerce a.remove:hover {
  background: #b3573f;
  border-color: #b3573f;
  color: #fff !important;
}

.cart-collaterals { margin-top: 34px; }
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals {
  float: right;
  width: 44%;
  padding: 28px;
  background: #fff;
  border: 1px solid var(--rs-border-soft);
  box-shadow: var(--rs-shadow-soft);
}
.cart_totals h2 {
  margin: 0 0 18px;
  font-size: 26px;
  font-weight: 500;
}
.woocommerce .cart_totals table.shop_table { border: none; }
.woocommerce .cart_totals table.shop_table th,
.woocommerce .cart_totals table.shop_table td {
  background: transparent;
  padding: 12px 4px;
  border-top: 1px solid var(--rs-border-soft);
}
.woocommerce .cart_totals table.shop_table th {
  font-family: var(--rs-sans);
  text-transform: none;
  letter-spacing: 0;
  font-size: 14.5px;
}
.woocommerce .cart_totals .order-total td,
.woocommerce .cart_totals .order-total th {
  font-size: 17px;
  font-weight: 700;
}
.wc-proceed-to-checkout a.checkout-button {
  display: block;
  text-align: center;
  font-size: 13.5px !important;
  padding: 17px 24px !important;
}
.woocommerce-shipping-calculator .button { width: auto; }

/* Cross-sells */
.woocommerce .cross-sells { float: left; width: 50%; }
.woocommerce .cross-sells > h2 { font-size: 26px; font-weight: 500; margin-bottom: 20px; }
.woocommerce .cross-sells ul.products { grid-template-columns: repeat(2, 1fr); }

/* Empty cart */
.cart-empty.woocommerce-info { text-align: left; }
.woocommerce .return-to-shop { margin-top: 10px; }

/* =========================================================
   10. Checkout
   ========================================================= */
.woocommerce form.checkout { display: block; }

.woocommerce-form-coupon-toggle .woocommerce-info { margin-bottom: 20px !important; }
.woocommerce form.checkout_coupon {
  border: 1px solid var(--rs-border-soft) !important;
  background: #fff;
  padding: 22px !important;
  border-radius: var(--rs-radius);
}

.col2-set .col-1, .col2-set .col-2 { width: 100% !important; float: none !important; }

.rs-checkout-grid,
.woocommerce-checkout .rs-checkout-wrap form.checkout {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  grid-template-rows: auto 1fr;
  gap: 0 40px;
  align-items: start;
}
#customer_details { grid-column: 1; grid-row: 1 / 3; }
.woocommerce-checkout #order_review_heading { grid-column: 2; grid-row: 1; }
.woocommerce-checkout #order_review { grid-column: 2; grid-row: 2; align-self: start; }
.woocommerce-checkout #order_review_heading {
  margin: 0;
  padding: 26px 28px 0;
  background: #fff;
  border: 1px solid var(--rs-border-soft);
  border-bottom: 0;
  font-size: 25px;
  font-weight: 500;
  box-shadow: var(--rs-shadow-soft);
}
.woocommerce-checkout #order_review {
  padding: 14px 28px 28px;
  background: #fff;
  border: 1px solid var(--rs-border-soft);
  border-top: 0;
  box-shadow: var(--rs-shadow-soft);
  position: sticky;
  top: 100px;
}
.woocommerce-checkout #order_review table.shop_table { border: none; }
.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td {
  background: transparent;
  padding: 11px 4px;
  border-top: 1px solid var(--rs-border-soft);
  font-size: 14.5px;
}
.woocommerce-checkout #order_review table.shop_table thead th {
  border-top: 0;
  padding-top: 0;
}
.woocommerce-checkout #order_review .order-total th,
.woocommerce-checkout #order_review .order-total td {
  font-size: 17px;
  font-weight: 700;
}

.woocommerce-billing-fields > h3,
.woocommerce-shipping-fields h3,
#ship-to-different-address {
  font-size: 25px;
  font-weight: 500;
  margin: 0 0 18px;
}
#ship-to-different-address label { font-family: var(--rs-serif); font-weight: 500; }

.woocommerce form .form-row { margin-bottom: 14px; }
.woocommerce form .form-row label { margin-bottom: 5px; display: inline-block; }
.woocommerce form .form-row .required { color: var(--rs-primary-dark); }

/* Payment box */
.woocommerce-checkout #payment {
  background: var(--rs-bg);
  border-radius: var(--rs-radius);
  border: 1px solid var(--rs-border-soft);
  margin-top: 18px;
}
.woocommerce-checkout #payment ul.payment_methods {
  padding: 18px;
  border-bottom: 1px solid var(--rs-border-soft);
}
.woocommerce-checkout #payment ul.payment_methods li {
  padding: 10px 0;
}
.woocommerce-checkout #payment ul.payment_methods label {
  font-weight: 600;
  font-size: 15px;
}
.woocommerce-checkout #payment div.payment_box {
  background: #fff;
  border: 1px solid var(--rs-border-soft);
  color: var(--rs-muted);
  font-size: 13.5px;
}
.woocommerce-checkout #payment div.payment_box::before {
  border-bottom-color: var(--rs-border-soft);
}
.woocommerce-checkout #payment div.form-row.place-order { padding: 18px; }
#place_order { width: 100%; font-size: 13.5px !important; padding: 17px 24px !important; }
.woocommerce-privacy-policy-text { font-size: 12.5px; color: var(--rs-muted); }

input[type="checkbox"], input[type="radio"] {
  width: 16px; height: 16px;
  accent-color: var(--rs-primary);
  padding: 0;
}

/* =========================================================
   11. Order received / thank you
   ========================================================= */
.woocommerce-order { max-width: 860px; margin: 0 auto; }
.woocommerce-thankyou-order-received {
  padding: 30px 34px;
  margin-bottom: 30px !important;
  background: #fff;
  border-top: 3px solid #7d9a6f;
  box-shadow: var(--rs-shadow-soft);
  font-family: var(--rs-serif);
  font-size: 27px !important;
  color: var(--rs-text);
  text-align: center;
}
ul.woocommerce-order-overview {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px;
  margin: 0 0 34px !important;
  padding: 0 !important;
  list-style: none;
}
ul.woocommerce-order-overview li {
  margin: 0 !important;
  padding: 18px !important;
  border: 1px solid var(--rs-border-soft) !important;
  background: #fff;
  float: none !important;
  width: auto !important;
  color: var(--rs-muted);
  font-size: 11.5px !important;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}
ul.woocommerce-order-overview li strong {
  display: block;
  margin-top: 6px;
  color: var(--rs-text);
  font-size: 15px;
  letter-spacing: 0;
  text-transform: none;
  font-weight: 700;
}
.woocommerce-order-details,
.woocommerce-customer-details {
  margin-bottom: 34px;
}
.woocommerce-order-details__title,
.woocommerce-customer-details h2,
.woocommerce-column__title {
  font-size: 26px;
  font-weight: 500;
  margin-bottom: 16px;
}
.woocommerce-customer-details address {
  padding: 22px 26px !important;
  border: 1px solid var(--rs-border-soft) !important;
  border-radius: var(--rs-radius);
  background: #fff;
  font-style: normal;
  line-height: 1.8;
}
.woocommerce-customer-details .woocommerce-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.woocommerce-customer-details .woocommerce-columns .col-1,
.woocommerce-customer-details .woocommerce-columns .col-2 { width: auto !important; float: none !important; }
.woocommerce table.order_details { border: 1px solid var(--rs-border-soft); }
.woocommerce table.order_details tfoot th,
.woocommerce table.order_details tfoot td { font-size: 14.5px; }
.woocommerce table.order_details tfoot tr:last-child th,
.woocommerce table.order_details tfoot tr:last-child td { font-size: 16.5px; }

.woocommerce-bacs-bank-details {
  padding: 24px 28px;
  background: #fff;
  border: 1px solid var(--rs-border-soft);
  box-shadow: var(--rs-shadow-soft);
  margin-bottom: 34px;
}
.woocommerce-bacs-bank-details h2, .wc-bacs-bank-details-heading { font-size: 24px; }
.wc-bacs-bank-details { list-style: none; padding: 0; }

/* =========================================================
   12. My Account
   ========================================================= */
.woocommerce-account.logged-in .woocommerce {
  display: grid;
  grid-template-columns: 250px 1fr;
  gap: 40px;
  align-items: start;
}
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-account .woocommerce > #customer_login,
.woocommerce-account .woocommerce > .woocommerce-form-login,
.woocommerce-account .woocommerce > .woocommerce-ResetPassword { grid-column: 1 / -1; }
.woocommerce-MyAccount-navigation {
  float: none !important;
  width: 100% !important;
  background: #fff;
  border: 1px solid var(--rs-border-soft);
}
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 8px 0; }
.woocommerce-MyAccount-navigation li a {
  display: block;
  padding: 12px 22px;
  color: var(--rs-muted);
  font-size: 14px;
  font-weight: 600;
  border-left: 2px solid transparent;
}
.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation li a:hover {
  color: var(--rs-text);
  border-left-color: var(--rs-accent);
  background: var(--rs-bg);
}
.woocommerce-MyAccount-content {
  float: none !important;
  width: 100% !important;
}
.woocommerce-MyAccount-content .woocommerce-Button { width: auto; }

/* Login/register cards */
.woocommerce #customer_login { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.woocommerce #customer_login .col-1 { grid-area: 1 / 1; }
.woocommerce #customer_login .col-2 { grid-area: 1 / 2; }
.woocommerce #customer_login .col-1, .woocommerce #customer_login .col-2 { width: 100% !important; float: none; }
.woocommerce form.login, .woocommerce form.register,
.woocommerce-ResetPassword.lost_reset_password {
  padding: 30px !important;
  border: 1px solid var(--rs-border-soft) !important;
  border-radius: var(--rs-radius) !important;
  background: #fff;
  box-shadow: var(--rs-shadow-soft);
}
.woocommerce-account h2 { font-size: 27px; font-weight: 500; }

/* Orders table buttons */
.woocommerce-orders-table__cell-order-actions .button { margin: 2px; padding: 9px 14px; font-size: 11px; }

/* =========================================================
   13. Content pages & footer
   ========================================================= */
.rs-page-content { max-width: 820px; }
.rs-page-content h2 { margin-top: 1.4em; }

.rs-footer {
  margin-top: 0;
  background: #241b17;
  color: #cfc4bb;
}
.rs-footer a { color: #cfc4bb; }
.rs-footer a:hover { color: var(--rs-accent); }
.rs-footer__grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr 1.2fr;
  gap: 44px;
  padding: 60px 0 44px;
}
.rs-footer__brand {
  font-family: var(--rs-serif);
  font-size: 34px;
  color: #fff;
  line-height: 1;
  margin-bottom: 14px;
  display: inline-block;
}
.rs-footer__brand img { max-height: 44px; width: auto; }
.rs-footer p { font-size: 14px; line-height: 1.7; color: #a99d93; }
.rs-footer h4 {
  color: #fff;
  font-family: var(--rs-sans);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 18px;
}
.rs-footer ul { list-style: none; margin: 0; padding: 0; }
.rs-footer li { margin-bottom: 10px; font-size: 14px; }
.rs-footer address { font-style: normal; font-size: 14px; line-height: 1.8; color: #a99d93; }
.rs-footer__contact-item { display: flex; gap: 10px; align-items: baseline; margin-bottom: 8px; }
.rs-footer__bottom {
  padding: 20px 0;
  border-top: 1px solid rgba(255, 255, 255, .08);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 12.5px;
  color: #8d8178;
}

/* =========================================================
   14. Responsive
   ========================================================= */
@media (max-width: 1024px) {
  .woocommerce ul.products { grid-template-columns: repeat(3, 1fr); }
  .rs-cats { grid-template-columns: repeat(2, 1fr); }
  .rs-values { grid-template-columns: repeat(2, 1fr); }
  .rs-footer__grid { grid-template-columns: 1fr 1fr; gap: 34px; }
  .rs-hero__inner { gap: 32px; }
  .woocommerce-checkout .rs-checkout-wrap form.checkout { grid-template-columns: 1fr; grid-template-rows: none; }
  #customer_details { grid-row: auto; }
  .woocommerce-checkout #order_review_heading { grid-column: 1; grid-row: auto; margin-top: 30px; }
  .woocommerce-checkout #order_review { grid-column: 1; grid-row: auto; position: static; }
  .woocommerce .cart-collaterals .cart_totals { width: 52%; }
}

@media (max-width: 782px) {
  .rs-nav {
    position: fixed;
    top: 0; right: 0; bottom: 0;
    width: min(340px, 86vw);
    background: #fff;
    box-shadow: -20px 0 60px rgba(0, 0, 0, .18);
    transform: translateX(105%);
    transition: transform .3s ease;
    z-index: 200;
    padding: 84px 30px 30px;
    overflow-y: auto;
  }
  .rs-nav.is-open { transform: translateX(0); }
  .rs-nav ul { flex-direction: column; gap: 4px; }
  .rs-nav a { display: block; padding: 12px 0; font-size: 15px; border-bottom: 1px solid var(--rs-border-soft); }
  .rs-nav a::after { display: none; }
  .rs-nav .sub-menu {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    border: none;
    padding: 0 0 0 16px;
    margin: 0;
  }
  .rs-burger { display: flex; z-index: 210; position: relative; }
  body.rs-nav-open { overflow: hidden; }
  .rs-nav-overlay {
    position: fixed;
    inset: 0;
    background: rgba(36, 27, 23, .45);
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s ease;
    z-index: 150;
  }
  body.rs-nav-open .rs-nav-overlay { opacity: 1; visibility: visible; }

  .rs-hero__inner { grid-template-columns: 1fr; padding: 46px 0 56px; }
  .rs-hero__visual { min-height: 340px; border-radius: 150px 150px 8px 8px; }
  .rs-section { padding: 46px 0; }
  .rs-section__head { flex-direction: column; align-items: flex-start; gap: 6px; margin-bottom: 24px; }

  .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); gap: 16px 12px; }

  .woocommerce div.product div.images,
  .woocommerce div.product div.summary {
    float: none !important;
    width: 100% !important;
  }

  .woocommerce .cart-collaterals .cart_totals { float: none; width: 100%; }
  .woocommerce .cross-sells { float: none; width: 100%; margin-bottom: 30px; }
  .woocommerce table.cart td.actions .coupon { float: none; margin-bottom: 12px; }
  .woocommerce table.cart td.actions .coupon .input-text { width: 100% !important; }
  .woocommerce table.cart td.actions .coupon { flex-direction: column; }
  .woocommerce table.cart td.actions > .button { width: 100%; }

  /* Responsive cart table -> stacked rows */
  .woocommerce table.shop_table_responsive tr,
  .woocommerce-page table.shop_table_responsive tr { display: block; border-bottom: 1px solid var(--rs-border-soft); }
  .woocommerce table.shop_table_responsive tr td,
  .woocommerce-page table.shop_table_responsive tr td {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    text-align: right !important;
    border-top: none;
  }
  .woocommerce table.shop_table_responsive tr td::before,
  .woocommerce-page table.shop_table_responsive tr td::before {
    content: attr(data-title);
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--rs-muted);
  }
  .woocommerce table.shop_table_responsive tr td.product-remove::before,
  .woocommerce table.shop_table_responsive tr td.actions::before,
  .woocommerce table.shop_table_responsive tr td.product-name::before { display: none; }

  .woocommerce-account.logged-in .woocommerce { grid-template-columns: 1fr; gap: 24px; }
  .woocommerce #customer_login { grid-template-columns: 1fr; }
  .woocommerce-customer-details .woocommerce-columns { grid-template-columns: 1fr; }

  .rs-cta { padding: 54px 0; }
  .rs-footer__bottom { flex-direction: column; text-align: center; }
}

@media (max-width: 520px) {
  .rs-brand__text { font-size: 30px; }
  .rs-header__inner { min-height: 66px; }
  .rs-values { grid-template-columns: 1fr; }
  .rs-cats { grid-template-columns: 1fr 1fr; gap: 12px; }
  .rs-cat { border-radius: 80px 80px 6px 6px; }
  .rs-footer__grid { grid-template-columns: 1fr; gap: 28px; padding: 44px 0 30px; }
  .woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 12px; }
  .woocommerce div.product form.cart .button { flex: 1; padding: 15px 20px; }
  .woocommerce div.product form.cart div.quantity { margin-right: 0; }
  ul.woocommerce-order-overview { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 420px) {
  .woocommerce ul.products { grid-template-columns: 1fr; }
}

/* Mobile refinements: cart actions & totals (override responsive-table flex) */
@media (max-width: 782px) {
  .woocommerce table.cart td.actions { display: block; }
  .woocommerce table.cart td.actions .coupon .button { width: 100%; }
  .woocommerce table.cart td.actions > .button { display: block; width: 100%; }

  .woocommerce .cart-collaterals .cart_totals table tr td { flex-wrap: wrap; min-width: 0; }
  .woocommerce .cart-collaterals .cart_totals table tr.shipping td {
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
  }
  .woocommerce .cart-collaterals .cart_totals table tr.shipping td::before { align-self: flex-start; }
  .woocommerce .cart-collaterals .cart_totals table tr.shipping td p { margin: 0; font-size: 13.5px; }
  .woocommerce .cart-collaterals .cart_totals table tr td.shipping p,
  .woocommerce .cart-collaterals .cart_totals table tr td.shipping form { font-size: 13.5px; }
}
