/* Catalog toolbar and drawer */
.catalog-section { padding: 34px clamp(20px, 7.5vw, 120px) 120px; }
.catalog-toolbar { max-width: var(--max); margin: 0 auto 42px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 58px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.catalog-filter-open { justify-self: start; display: inline-flex; align-items: center; gap: 12px; border: 0; background: transparent; padding: 18px 0; color: var(--ink); cursor: pointer; font-size: 12px; letter-spacing: .12em; }
.catalog-filter-open b { display: inline-grid; place-items: center; min-width: 20px; height: 20px; border-radius: 50%; background: var(--ink); color: white; font-size: 9px; font-weight: 400; }
.catalog-filter-open i { font-style: normal; font-size: 17px; font-weight: 200; }
.catalog-count { margin: 0; color: var(--muted); font-size: 11px; }
.catalog-sort { justify-self: end; display: flex; align-items: center; gap: 16px; }
.catalog-sort label { color: var(--muted); font-size: 10px; letter-spacing: .12em; }
.catalog-sort select { min-width: 170px; border: 0; background: transparent; padding: 18px 24px 18px 0; color: var(--ink); font-size: 11px; cursor: pointer; }
.catalog-drawer-overlay { position: fixed; z-index: 80; inset: 0; background: rgba(16,16,15,.48); opacity: 0; visibility: hidden; transition: opacity .35s, visibility .35s; }
.catalog-filter-drawer { position: fixed; z-index: 90; left: 0; top: 0; bottom: 0; width: min(520px, 92vw); background: #fff; transform: translateX(-102%); transition: transform .42s cubic-bezier(.22,.61,.36,1); }
.catalog-filter-drawer.is-open { transform: translateX(0); }
.catalog-filter-drawer.is-open + * { pointer-events: auto; }
body.filter-drawer-open { overflow: hidden; }
body.filter-drawer-open .catalog-drawer-overlay { opacity: 1; visibility: visible; }
.catalog-filter-drawer form { height: 100%; display: grid; grid-template-rows: auto 1fr auto; }
.catalog-filter-drawer header { height: 82px; display: flex; align-items: center; justify-content: space-between; padding: 0 34px; border-bottom: 1px solid var(--line); }
.catalog-filter-drawer h2 { margin: 0; font-family: Georgia, "Yu Mincho", serif; font-size: 22px; font-weight: 400; }
.catalog-filter-close { border: 0; background: none; padding: 8px; font-size: 30px; font-weight: 200; cursor: pointer; }
.catalog-filter-scroll { overflow-y: auto; padding: 12px 34px 40px; }
.catalog-filter-scroll details { border-bottom: 1px solid var(--line); }
.catalog-filter-scroll summary { display: flex; justify-content: space-between; padding: 24px 0; cursor: pointer; list-style: none; font-family: Georgia, "Yu Mincho", serif; font-size: 15px; }
.catalog-filter-scroll summary::-webkit-details-marker { display: none; }
.catalog-filter-scroll details[open] summary span { transform: rotate(180deg); }
.filter-options { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; padding: 0 0 24px; }
.filter-options label { display: flex; align-items: center; gap: 10px; padding: 10px 0; color: var(--muted); cursor: pointer; font-size: 12px; }
.filter-options input { appearance: none; width: 15px; height: 15px; margin: 0; border: 1px solid #aaa69e; border-radius: 50%; }
.filter-options input:checked { border: 4px solid var(--ink); }
.filter-clear { display: inline-block; margin-top: 28px; padding-bottom: 5px; border-bottom: 1px solid var(--ink); font-size: 11px; }
.catalog-filter-drawer footer { padding: 20px; border-top: 1px solid var(--line); }
.catalog-filter-drawer footer button { width: 100%; border: 0; background: var(--ink); color: #fff; padding: 19px; cursor: pointer; letter-spacing: .12em; }

/* Global product-page alignment */
body.single-product .woocommerce-breadcrumb { box-sizing: border-box; width: 100%; max-width: var(--max); margin: 0 auto !important; padding: 26px clamp(20px, 7.5vw, 120px) 0; color: var(--muted); font-size: 10px; }
body.single-product .woocommerce div.product { box-sizing: border-box; width: 100%; max-width: var(--max); }
.woocommerce div.product .product-editorial, .woocommerce div.product .woocommerce-tabs, .woocommerce div.product .related { box-sizing: border-box; width: 100%; }

/* Gallery thumbnails: remove numeric markers and improve selection */
.woocommerce div.product .flex-control-thumbs { list-style: none !important; padding: 0 !important; margin: 12px 0 0 !important; }
.woocommerce div.product .flex-control-thumbs li { list-style: none !important; }
.woocommerce div.product .flex-control-thumbs li::marker { content: none; display: none; }
.woocommerce div.product .flex-control-thumbs img { box-sizing: border-box; border: 1px solid transparent; opacity: .58; transition: opacity .25s, border-color .25s; cursor: pointer; }
.woocommerce div.product .flex-control-thumbs img:hover, .woocommerce div.product .flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--ink); }

/* Reviews */
.woocommerce div.product .woocommerce-tabs { margin: 90px 0 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: none !important; }
.woocommerce div.product .woocommerce-Tabs-panel { margin: 0 !important; }
.woocommerce #reviews { display: grid; grid-template-columns: minmax(230px,.72fr) minmax(0,1.28fr); gap: clamp(45px,7vw,100px); padding: clamp(48px,7vw,92px); background: var(--paper); }
.woocommerce #reviews #comments, .woocommerce #reviews #review_form_wrapper { min-width: 0; }
.woocommerce #reviews h2 { margin: 0 0 28px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(26px,3vw,40px); font-weight: 400; line-height: 1.4; }
.woocommerce #reviews h3 { margin: 0 0 26px; font-family: Georgia, "Yu Mincho", serif; font-size: 22px; font-weight: 400; line-height: 1.6; }
.woocommerce #reviews .commentlist { list-style: none; padding: 0; margin: 0; }
.woocommerce #reviews .commentlist li { list-style: none; padding: 24px 0; border-top: 1px solid var(--line); }
.woocommerce #reviews .commentlist li::marker { content: none; }
.woocommerce #reviews .comment-notes { color: var(--muted); font-size: 11px; line-height: 1.8; }
.woocommerce #review_form label { display: block; margin-bottom: 9px; font-size: 11px; letter-spacing: .08em; }
.woocommerce #review_form textarea, .woocommerce #review_form input[type="text"], .woocommerce #review_form input[type="email"] { width: 100%; border: 0; border-bottom: 1px solid var(--line); background: transparent; padding: 12px 0; border-radius: 0; }
.woocommerce #review_form textarea { min-height: 120px; resize: vertical; }
.woocommerce #review_form .comment-form-author, .woocommerce #review_form .comment-form-email { width: calc(50% - 10px); display: inline-block; vertical-align: top; }
.woocommerce #review_form .comment-form-author { margin-right: 16px; }
.woocommerce #review_form .comment-form-cookies-consent { display: flex; align-items: flex-start; gap: 9px; clear: both; color: var(--muted); font-size: 10px; line-height: 1.7; }
.woocommerce #review_form .comment-form-cookies-consent label { margin: 0; letter-spacing: 0; }
.woocommerce #review_form .form-submit input { min-width: 170px; margin-top: 12px; }
.woocommerce #reviews .comment-form-rating { padding: 16px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.woocommerce .related.products { margin-top: 100px; padding-top: 75px; border-top: 1px solid var(--line); }
.woocommerce .related.products > h2 { margin: 0 0 42px; font-family: Georgia, "Yu Mincho", serif; font-size: clamp(28px,3vw,42px); font-weight: 400; }

@media (max-width: 880px) {
  .catalog-section { padding-left: 14px; padding-right: 14px; }
  .catalog-toolbar { grid-template-columns: 1fr auto; }
  .catalog-count { display: none; }
  .catalog-sort { gap: 4px; }
  .catalog-sort label { display: none; }
  .catalog-sort select { min-width: 145px; max-width: 160px; }
  .catalog-filter-drawer header { height: 72px; padding: 0 22px; }
  .catalog-filter-scroll { padding-left: 22px; padding-right: 22px; }
  body.single-product .woocommerce-breadcrumb { padding-left: 14px; padding-right: 14px; }
  .woocommerce #reviews { grid-template-columns: 1fr; padding: 42px 24px; }
  .woocommerce #review_form .comment-form-author, .woocommerce #review_form .comment-form-email { width: 100%; display: block; margin-right: 0; }
  .woocommerce div.product .flex-control-thumbs { grid-template-columns: repeat(5, 1fr); }
}

@media (max-width: 520px) {
  .filter-options { grid-template-columns: 1fr; }
  .woocommerce div.product .flex-control-thumbs { grid-template-columns: repeat(4, 1fr); }
}
