/* ==========================================================================
   Korea Secret — WordPress / WooCommerce / YITH layer on top of main.css
   ========================================================================== */

[hidden] { display: none !important; }

/* ---------- header bits ---------- */
.header__burger .i-close, .header__catalog .i-close { display: none; }
.header__burger.is-active .i-open, .header__catalog.is-active .i-open { display: none; }
.header__burger.is-active .i-close, .header__catalog.is-active .i-close { display: block; }
.header__geo { color: var(--h-fg); }
.logo--custom .logo__img { height: 44px; width: auto; max-width: 240px; object-fit: contain; }
@media (max-width: 1023px) { .logo--custom .logo__img { height: 34px; max-width: 170px; } }

/* ---------- images inside storefront shapes ---------- */
.ks-cover, .pcard__art img, .cart-item__art img, .search-row__art img, .toast__art img, .co__item-art img {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.pcard__art img { object-fit: contain; mix-blend-mode: multiply; }
.cat-tile__icon img { width: 100%; height: 100%; object-fit: cover; }
.mega__promo-art img { width: 100%; height: 100%; object-fit: cover; }
.ks-ph { display: block; width: 100%; height: 100%; background: linear-gradient(130deg, #fdf0f6 0%, #f7d8e7 55%, #efc6dc 100%); }
.ks-ph--night { background: linear-gradient(120deg, #1d0f1c 0%, #3e1636 45%, #6b2156 75%, #a2346f 100%); }
.ks-ph--peach { background: linear-gradient(120deg, #fff8ee 0%, #ffeedd 45%, #ffe1cf 75%, #fcd2c2 100%); }
.ks-cat-ico { width: 100%; height: 100%; display: grid; place-items: center; color: var(--brand); }
.ks-cat-ico .i { width: 46%; height: 46%; stroke-width: 1.2; }

/* ---------- sliders: native scroll-snap ---------- */
.slider__viewport { overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.slider__viewport.is-dragging { scroll-snap-type: none; cursor: grabbing; }
.slider__viewport.is-dragging * { pointer-events: none; }
.slider--row > .slider__viewport > .slider__container { margin-left: 0; gap: var(--gap); }
.slider--row > .slider__viewport > .slider__container > .slider__slide { flex: 0 0 calc((100% - var(--gap) * (var(--per) - 1)) / var(--per)); padding-left: 0; scroll-snap-align: start; }
.slider .pcard { height: 100%; }
.section__nav .arrow-btn[disabled] { opacity: 1; }
/* ---------- buy controls ---------- */
.buy-ctl { display: inline-flex; }
.price-pill.is-busy { opacity: .6; pointer-events: none; }
a.price-pill { text-decoration: none; }
.price-pill--from.price-pill--sale { padding-right: 4px; }
.pcard__fav { background: transparent; }

/* ---------- page heroes, prose ---------- */
.page-hero--compact .page-hero__inner { min-height: 0; padding-bottom: 40px; }
.page-hero__sub p { margin: 0; }
.ks-page { padding-top: 40px; }
.ks-catalog { padding-top: 0; }
.ks-content > * + * { margin-top: 1em; }
.ks-prose { max-width: 820px; font-size: 16px; line-height: 1.65; color: var(--ink-2); }
.ks-prose h2, .ks-prose h3 { font-family: var(--serif); font-weight: 500; color: var(--ink); line-height: 1.15; margin-top: 1.4em; }
.ks-prose h2 { font-size: 32px; } .ks-prose h3 { font-size: 24px; }
.ks-prose a, .tab-panel a { color: var(--brand); text-decoration: underline; text-underline-offset: 3px; }
.ks-prose ul { list-style: disc; padding-left: 22px; } .ks-prose ol { list-style: decimal; padding-left: 22px; }
.ks-prose img { border-radius: var(--r-lg); height: auto; }
.ks-prose blockquote { margin: 1.4em 0; padding: 18px 24px; border-left: 3px solid var(--brand); background: var(--brand-50); border-radius: 0 var(--r) var(--r) 0; }
.ks-article-page .crumbs { margin-bottom: 28px; }
.ks-article .h2 { margin-bottom: 20px; }
.ks-card-excerpt { display: block; margin-top: 6px; font-size: 14px; }
.ks-blog-grid { margin-top: 0; }
.ks-searchform { max-width: 520px; width: 100%; }

/* ---------- loading ---------- */
.ks-loading { width: 34px; height: 34px; margin: 60px auto; border-radius: 50%; border: 3px solid var(--brand-100); border-top-color: var(--brand); animation: ksSpin .8s linear infinite; }
@keyframes ksSpin { to { transform: rotate(360deg); } }
.ks-drawer-link { display: block; text-align: center; margin-top: 12px; font-size: 14px; color: var(--muted); }
.ks-drawer-link:hover { color: var(--brand); }
.fav-item .cart-item__art { width: 92px; height: 92px; }
.fav-item .cart-item__art img { object-fit: contain; }
.cart-item__art img { object-fit: contain; }
.search-row__art img { object-fit: contain; }

/* ---------- catalog ---------- */
.ks-filter-toggle { cursor: pointer; }
.ks-filter-toggle .i { width: 18px; height: 18px; }
.filter__panel .check { padding: 7px 0; }
.sort__opt { color: var(--ink); }
.subcats .chip .muted { font-size: 12px; }
.filters--sheet { display: grid !important; gap: 14px; margin: 0; }
.filters--sheet .filter__btn[data-dropdown] { display: none; }
.filters--sheet .filter__panel { position: static; width: auto; max-height: none; opacity: 1; transform: none; pointer-events: auto; box-shadow: none; padding: 0; border-radius: 0; }
.filters--sheet .filter__foot { display: none; }
.filters--sheet .filter { border-bottom: 1px solid var(--line); padding-bottom: 14px; }
.catalog-grid { margin-top: 0; }
.woocommerce-no-products-found { display: none; }

/* ---------- notices ---------- */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 0 0 22px; padding: 16px 20px; border-radius: 18px; list-style: none;
  background: var(--brand-50); color: var(--ink); font-size: 15px; border: 0;
}
.woocommerce-message { background: #eef8ef; }
.woocommerce-error { background: #fdeceb; color: #9c2b22; }
.woocommerce-error li + li { margin-top: 4px; }
.woocommerce-message .button, .woocommerce-info .button { margin-left: auto; order: 2; }
.woocommerce-message a:not(.button), .woocommerce-info a:not(.button) { color: var(--brand); text-decoration: underline; }

/* ---------- WooCommerce buttons & fields ---------- */
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .woocommerce-page .button,
.wc-block-components-button:not(.is-link), .wp-element-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; padding: 0 26px;
  border: 0; border-radius: var(--r); background: var(--surface); color: var(--ink); font: inherit; font-size: 16px; font-weight: 500; line-height: 1.1;
  cursor: pointer; text-decoration: none; transition: background-color .2s, color .2s, box-shadow .2s;
}
.woocommerce .button:hover, .wc-block-components-button:not(.is-link):hover { background: var(--surface-2); }
.woocommerce .button.alt, .woocommerce button.button.alt, .woocommerce .checkout-button, .woocommerce #place_order, .single_add_to_cart_button,
.wc-block-components-checkout-place-order-button, .wc-block-cart__submit-button, .wc-block-components-button.contained {
  background: var(--brand) !important; color: #fff !important;
}
.woocommerce .button.alt:hover, .single_add_to_cart_button:hover, .woocommerce #place_order:hover, .woocommerce .checkout-button:hover { background: var(--brand-600) !important; box-shadow: 0 10px 26px rgba(221, 68, 135, .32); }
.woocommerce .button:disabled, .woocommerce .button.disabled { opacity: .45; cursor: not-allowed; }
.woocommerce form .form-row { display: grid; gap: 8px; margin: 0 0 14px; }
.woocommerce form .form-row label { font-size: 13px; color: var(--ink-2); font-weight: 500; }
.woocommerce form .form-row .required { color: var(--brand); text-decoration: none; }
.woocommerce form .input-text, .woocommerce form select, .woocommerce form textarea, .woocommerce-page form .input-text, .comment-form input[type=text], .comment-form input[type=email], .comment-form textarea, .select2-container .select2-selection--single {
  width: 100%; min-height: 52px; padding: 0 18px; border-radius: 14px; border: 1px solid transparent; background: var(--surface); font: inherit; font-size: 16px; color: var(--ink);
  transition: border-color .2s, background-color .2s, box-shadow .2s; -webkit-appearance: none; appearance: none;
}
.woocommerce form textarea, .comment-form textarea { padding: 14px 18px; min-height: 110px; }
.woocommerce form select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23161215' stroke-width='1.7'%3E%3Cpath d='m6 9.5 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 18px; padding-right: 42px; }
.woocommerce form .input-text:focus, .woocommerce form select:focus, .woocommerce form textarea:focus, .comment-form input:focus, .comment-form textarea:focus { outline: none; background-color: #fff; border-color: var(--brand); box-shadow: 0 0 0 4px var(--brand-100); }
.woocommerce form .form-row.woocommerce-invalid .input-text { border-color: #e0574c; }
.select2-container .select2-selection--single { display: flex; align-items: center; }
.select2-container--default .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 52px; color: var(--ink); }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 50px; right: 10px; }
.select2-dropdown { border: 0; border-radius: 14px; box-shadow: var(--shadow-lg); overflow: hidden; }
.select2-container--default .select2-results__option--highlighted[aria-selected], .select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--brand); }
.woocommerce form .form-row input[type=checkbox], .woocommerce form .form-row input[type=radio] { accent-color: var(--brand); width: 18px; height: 18px; margin-right: 8px; vertical-align: -3px; }
.woocommerce .col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 34px; }
.woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2 { width: auto; float: none; }
.form-row-first, .form-row-last { width: auto; }
.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper { display: grid; grid-template-columns: 1fr 1fr; column-gap: 12px; }
.woocommerce-billing-fields__field-wrapper .form-row-wide, .woocommerce-shipping-fields__field-wrapper .form-row-wide, .woocommerce-address-fields__field-wrapper .form-row-wide { grid-column: 1 / -1; }
.woocommerce h3, .woocommerce h2 { font-family: var(--serif); font-weight: 500; letter-spacing: -.01em; line-height: 1.15; }
.woocommerce h3 { font-size: 26px; margin: 0 0 18px; }
.woocommerce h2 { font-size: 32px; margin: 0 0 20px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.clear { clear: both; }

/* ---------- star rating (WooCommerce markup, no icon font needed) ---------- */
.star-rating { position: relative; display: inline-block; width: 5.6em; height: 1em; font-size: 15px; line-height: 1; overflow: hidden; vertical-align: middle; }
.star-rating::before, .star-rating span::before { content: "★★★★★"; position: absolute; top: 0; left: 0; letter-spacing: .12em; }
.star-rating::before { color: var(--surface-3); }
.star-rating span { position: absolute; top: 0; left: 0; height: 100%; overflow: hidden; padding-top: 1.5em; }
.star-rating span::before { color: var(--brand); }
.star-rating span strong, .star-rating span .rating { display: none; }
p.stars { margin: 4px 0 0; }
p.stars span { display: inline-flex; gap: 6px; }
p.stars a { position: relative; width: 30px; height: 30px; text-indent: -9999px; overflow: hidden; display: inline-block; }
p.stars a::before { content: "★"; position: absolute; inset: 0; text-indent: 0; font-size: 30px; line-height: 30px; color: var(--surface-3); transition: color .15s, transform .15s; }
p.stars:hover a::before, p.stars.selected a::before { color: var(--brand); }
p.stars a:hover ~ a::before, p.stars.selected a.active ~ a::before { color: var(--surface-3); }
p.stars.selected a.active::before { color: var(--brand); }
p.stars a:hover::before { transform: scale(1.12); }

/* ---------- product page ---------- */
.pp__crumbs .crumbs { margin: 0; }
.gallery__main-wrap { position: relative; }
.gallery__main-wrap > .pcard__badges { left: 26px; top: 26px; z-index: 5; }
.gallery__main-wrap .badge-sale { width: 52px; height: 52px; font-size: 14px; }
.gallery__main-wrap .tag { height: 28px; font-size: 13px; padding: 0 12px; }
.woocommerce-product-gallery { position: relative; opacity: 1 !important; }
.woocommerce-product-gallery .flex-viewport, .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:only-child {
  border-radius: var(--r-xl); overflow: hidden; background: var(--surface);
}
.woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce-product-gallery__image { background: var(--surface); }
.woocommerce-product-gallery__image a { display: block; }
.woocommerce-product-gallery__image img { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; mix-blend-mode: multiply; }
.woocommerce-product-gallery__trigger { position: absolute; right: 18px; top: 18px; z-index: 6; width: 44px; height: 44px; border-radius: 50%; background: rgba(255,255,255,.85); display: grid; place-items: center; font-size: 0; }
.woocommerce-product-gallery__trigger::before { content: ""; width: 18px; height: 18px; border: 2px solid var(--ink); border-radius: 50%; box-sizing: border-box; margin: -3px 0 0 -3px; }
.woocommerce-product-gallery__trigger::after { content: ""; position: absolute; width: 7px; height: 2px; background: var(--ink); transform: rotate(45deg); margin: 13px 0 0 13px; }
.woocommerce-product-gallery__trigger img { display: none !important; }
.flex-control-thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin: 14px 0 0; padding: 0; list-style: none; }
.flex-control-thumbs li { aspect-ratio: 1; border-radius: var(--r); background: var(--surface); overflow: hidden; }
.flex-control-thumbs img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; cursor: pointer; border: 2px solid transparent; border-radius: var(--r); opacity: .75; transition: border-color .2s, opacity .2s; }
.flex-control-thumbs img.flex-active, .flex-control-thumbs img:hover { border-color: var(--brand); opacity: 1; }
.pp__short p { margin: 0; }
.pp__short p + p { margin-top: 8px; }
.pp__brand-link .muted { font-size: 13px; }

.buy-card__prices .price, .buy-card__prices > .woocommerce-Price-amount, .buy-card__prices { font-size: 42px; font-weight: 700; letter-spacing: -.02em; line-height: 1; font-variant-numeric: tabular-nums; }
.buy-card__prices del { order: 2; font-size: 22px; color: var(--brand-300); font-weight: 500; text-decoration: line-through; }
.buy-card__prices ins { text-decoration: none; color: var(--brand); }
.buy-card__prices .woocommerce-price-suffix { font-size: 14px; font-weight: 400; color: var(--muted); }
.buy-card__off { font-size: 15px; letter-spacing: 0; }
.buy-card .stock { margin: 16px 0 0; font-size: 15px; color: var(--green); }
.buy-card .stock.out-of-stock { color: var(--muted); }
.buy-card .stock.available-on-backorder { color: #e39a2f; }
.buy-card form.cart { margin-top: 26px; }
.buy-card form.cart:not(.variations_form), .woocommerce-variation-add-to-cart { display: grid; grid-template-columns: auto 1fr 72px; gap: 12px; align-items: stretch; }
.buy-card form.cart:not(.variations_form) .quantity:has(input[type=hidden]), .woocommerce-variation-add-to-cart .quantity:has(input[type=hidden]) { display: none; }
.buy-card form.cart.grouped_form { display: block; }
.buy-card .single_add_to_cart_button { min-height: 72px; font-size: 18px; border-radius: 18px; width: 100%; }
.buy-card .single_add_to_cart_button.disabled { opacity: .45; }
.buy-card .quantity.qty { height: 72px; border-radius: 18px; }
.buy-card .quantity.qty .qty__btn { width: 48px; height: 72px; }
.buy-card .quantity input.qty { width: 44px; height: 72px; border: 0; background: none; text-align: center; font-size: 18px; font-weight: 600; -moz-appearance: textfield; padding: 0; }
.buy-card .quantity input.qty::-webkit-inner-spin-button, .buy-card .quantity input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.buy-card .quantity:not(.qty) input.qty { width: 90px; border-radius: 18px; background: var(--surface); }
.buy-card__fav { width: 72px; border: 0; cursor: pointer; }
.buy-card table.variations { width: 100%; border-collapse: collapse; margin: 22px 0 0; }
.buy-card table.variations tr { display: grid; gap: 10px; margin-bottom: 14px; }
.buy-card table.variations th, .buy-card table.variations td { padding: 0; text-align: left; }
.buy-card table.variations th label { font-size: 14px; color: var(--ink-2); font-weight: 500; }
.ks-hidden-select { position: absolute !important; opacity: 0 !important; pointer-events: none !important; width: 1px !important; height: 1px !important; }
.variant:disabled { opacity: .35; text-decoration: line-through; cursor: not-allowed; }
.reset_variations { display: inline-block; margin-top: 10px; font-size: 13px; color: var(--muted); text-decoration: underline; }
.woocommerce-variation-price .price { font-size: 26px; font-weight: 700; display: block; margin: 6px 0 14px; }
.woocommerce-variation-price del { color: var(--brand-300); font-size: 18px; font-weight: 500; }
.woocommerce-variation-price ins { text-decoration: none; color: var(--brand); }
.woocommerce-variation-description p { margin: 0 0 10px; color: var(--ink-2); }
.single_variation_wrap .woocommerce-variation-availability .stock { margin: 0 0 14px; }
.group_table { width: 100%; border-collapse: collapse; margin-bottom: 18px; }
.group_table td { padding: 10px 6px; border-bottom: 1px solid var(--line); }
.pp .tab-panel table.shop_attributes { width: 100%; border-collapse: collapse; }
.shop_attributes th, .shop_attributes td { padding: 11px 0; border-bottom: 1px solid var(--line); text-align: left; font-weight: 400; vertical-align: top; }
.shop_attributes th { color: var(--muted); width: 200px; }
.shop_attributes td p { margin: 0; }
.ks-about { grid-template-columns: minmax(0, 1fr); max-width: 980px; }
.ks-about > div:empty { display: none; }

/* reviews */
#reviews-section .section__head { margin-bottom: 40px; }
.commentlist { list-style: none; margin: 0; padding: 0; }
.commentlist > li { padding: 22px 0; border-bottom: 1px solid var(--line); }
.commentlist > li:first-child { padding-top: 0; }
.commentlist .comment_container { display: grid; grid-template-columns: 48px 1fr; gap: 16px; }
.commentlist .avatar { width: 48px; height: 48px; border-radius: 50%; }
.commentlist .comment-text { display: grid; gap: 6px; }
.commentlist .comment-text .star-rating { order: 2; }
.commentlist .meta { order: 1; margin: 0; font-size: 13px; color: var(--muted); }
.commentlist .woocommerce-review__author { font-weight: 600; font-size: 16px; color: var(--ink); margin-right: 6px; }
.commentlist .woocommerce-review__verified { color: var(--green); font-style: normal; }
.commentlist .woocommerce-review__dash { display: none; }
.commentlist .description { order: 3; font-size: 15px; color: var(--ink-2); line-height: 1.55; }
.commentlist .description p { margin: 0; }
.commentlist .children { list-style: none; margin: 14px 0 0 64px; padding: 0; }
.ks-review-form { margin-top: 34px; padding: 30px; border-radius: var(--r-xl); background: var(--surface); }
.ks-review-form .comment-reply-title { display: block; font-size: 28px; }
.ks-review-form .comment-form { display: grid; gap: 14px; margin-top: 16px; }
.ks-review-form .input { background: #fff; }
.ks-review-form .comment-form-cookies-consent { display: flex; gap: 10px; align-items: center; font-size: 13px; color: var(--muted); }
.ks-review-form .form-submit { margin: 4px 0 0; }
.ks-review-form #rating { display: none; }
.ks-review-form .comment-notes { font-size: 13px; color: var(--muted); }

/* ---------- cart page (classic) ---------- */
.ks-page--woo { padding-top: 34px; }
.woocommerce-cart-form { margin-bottom: 34px; }
table.shop_table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--line); border-radius: var(--r-xl); overflow: hidden; font-size: 15px; background: #fff; }
table.shop_table th, table.shop_table td { padding: 16px 18px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: middle; }
table.shop_table thead th { font-size: 13px; color: var(--muted); font-weight: 500; background: var(--surface); }
table.shop_table tr:last-child > * { border-bottom: 0; }
table.shop_table .product-thumbnail img { width: 80px; height: 80px; object-fit: contain; border-radius: 14px; background: var(--surface); }
table.shop_table .product-name a { font-weight: 500; }
table.shop_table .product-name a:hover { color: var(--brand); }
table.shop_table .product-remove a.remove { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; font-size: 22px; color: var(--muted) !important; text-decoration: none; }
table.shop_table .product-remove a.remove:hover { background: var(--brand-50); color: var(--brand) !important; }
table.shop_table .quantity input.qty { width: 74px; min-height: 44px; border-radius: 12px; background: var(--surface); border: 0; text-align: center; font: inherit; font-weight: 600; }
table.shop_table td.actions { background: var(--surface); }
table.shop_table td.actions .coupon { display: inline-flex; gap: 8px; align-items: center; }
table.shop_table td.actions .coupon .input-text { width: 200px; min-height: 46px; background: #fff; }
table.shop_table td.actions .button { min-height: 46px; }
table.shop_table td.actions > .button { float: right; }
.cart-collaterals { display: grid; grid-template-columns: 1fr minmax(320px, 440px); gap: 34px; }
.cart-collaterals .cross-sells { grid-column: 1; }
.cart_totals { grid-column: 2; padding: 26px; border-radius: var(--r-xl); background: var(--surface); }
.cart_totals table.shop_table { border: 0; background: transparent; }
.cart_totals table.shop_table th, .cart_totals table.shop_table td { padding: 10px 0; background: transparent; }
.cart_totals .order-total td, .cart_totals .order-total th { font-size: 20px; font-weight: 700; }
.wc-proceed-to-checkout .checkout-button { width: 100%; min-height: 64px; font-size: 18px; border-radius: 18px; margin-top: 10px; }
.woocommerce-shipping-methods { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.cart-empty { font-size: 18px; }
.return-to-shop .button { margin-top: 12px; background: var(--brand); color: #fff; }

/* ---------- checkout (classic) ---------- */
form.checkout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(320px, 1fr); gap: 34px; align-items: start; }
form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
form.checkout #customer_details { grid-column: 1; }
form.checkout #customer_details .col2-set, form.checkout .col2-set { grid-template-columns: 1fr; gap: 20px; }
form.checkout #order_review_heading, form.checkout #order_review { grid-column: 2; }
form.checkout #order_review_heading { grid-row: 1; margin: 0; }
form.checkout #order_review { grid-row: 1 / span 2; margin-top: 54px; padding: 24px; border-radius: 24px; background: var(--surface); position: sticky; top: 110px; }
form.checkout #order_review table.shop_table { border: 0; background: transparent; }
form.checkout #order_review table.shop_table th, form.checkout #order_review table.shop_table td { padding: 10px 0; background: transparent; }
form.checkout .order-total { font-size: 20px; font-weight: 700; }
#payment .wc_payment_methods { list-style: none; padding: 0; margin: 16px 0; display: grid; gap: 10px; }
#payment .wc_payment_method { padding: 14px 16px; border-radius: 16px; border: 1.5px solid var(--line); background: #fff; }
#payment .wc_payment_method:has(input:checked) { border-color: var(--brand); background: var(--brand-50); }
#payment .wc_payment_method > label { font-weight: 600; cursor: pointer; }
#payment .payment_box { margin-top: 8px; font-size: 14px; color: var(--ink-2); }
#payment .payment_box p { margin: 0; }
#payment #place_order { width: 100%; min-height: 64px; font-size: 18px; border-radius: 18px; margin-top: 14px; }
.woocommerce-terms-and-conditions-wrapper { font-size: 13px; color: var(--muted); }
.woocommerce-form-coupon-toggle .woocommerce-info, .woocommerce-form-login-toggle .woocommerce-info { background: var(--surface); }
.checkout_coupon, .woocommerce-form-login { display: grid; gap: 12px; padding: 22px; border-radius: 20px; background: var(--surface); margin-bottom: 22px; }
.woocommerce-order { display: grid; gap: 22px; }
.woocommerce-order-overview { list-style: none; padding: 22px; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; border-radius: 20px; background: var(--brand-50); }
.woocommerce-order-overview li { font-size: 13px; color: var(--muted); }
.woocommerce-order-overview strong { display: block; margin-top: 4px; font-size: 16px; color: var(--ink); }
.woocommerce-thankyou-order-received { font-family: var(--serif); font-size: 30px; color: var(--brand); }

/* ---------- my account ---------- */
.woocommerce-account .ks-woo > .woocommerce { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 40px; align-items: start; }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 10px; margin: 0; border-radius: 22px; background: var(--surface); display: grid; gap: 2px; }
.woocommerce-MyAccount-navigation a { display: block; padding: 12px 16px; border-radius: 14px; font-size: 16px; transition: background-color .2s, color .2s; }
.woocommerce-MyAccount-navigation a:hover { background: #fff; }
.woocommerce-MyAccount-navigation .is-active a { background: #fff; color: var(--brand); font-weight: 500; }
.woocommerce-MyAccount-content > p:first-child { font-size: 17px; }
.woocommerce-MyAccount-content a:not(.button) { color: var(--brand); }
.woocommerce-account:not(.logged-in) .ks-woo > .woocommerce { display: block; max-width: 980px; }
.woocommerce-account:not(.logged-in) .u-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.woocommerce-form-login, .woocommerce-form-register { padding: 28px; border-radius: var(--r-xl); background: var(--surface); }
.woocommerce-form-login .input-text, .woocommerce-form-register .input-text { background: #fff !important; }
.woocommerce-LostPassword a { color: var(--muted); font-size: 14px; }
.woocommerce-Addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.woocommerce-Address { padding: 22px; border-radius: 20px; background: var(--surface); }
.woocommerce-Address address { font-style: normal; line-height: 1.6; }
.woocommerce-orders-table .button { min-height: 40px; padding: 0 14px; font-size: 14px; margin: 2px; }

/* ---------- WooCommerce Blocks (cart / checkout pages built with blocks) ---------- */
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { font-family: var(--font); }
.wp-block-woocommerce-checkout-order-summary-block, .wp-block-woocommerce-cart-order-summary-block { border-radius: 24px !important; border-color: var(--line) !important; overflow: hidden; }
.wc-block-cart .wc-block-cart__totals-title { font-size: 13px; color: var(--muted); }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input, .wc-blocks-components-select__select, .wc-block-components-textarea {
  border-radius: 14px !important; border-color: transparent !important; background-color: var(--surface) !important;
}
.wc-block-components-text-input.is-active input:focus, .wc-block-components-text-input input:focus { border-color: var(--brand) !important; box-shadow: 0 0 0 4px var(--brand-100) !important; }
.wc-block-components-button:not(.is-link) { border-radius: 18px !important; min-height: 56px; }
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option { border-radius: 16px !important; }
.wc-block-components-product-name { font-weight: 500; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { color: var(--brand); }
.wc-block-cart-item__image img, .wc-block-components-order-summary-item__image img { border-radius: 12px; background: var(--surface); }
.wc-block-components-checkbox .wc-block-components-checkbox__input:checked { background: var(--brand); border-color: var(--brand); }
.wp-block-woocommerce-empty-cart-block .wp-block-heading { font-family: var(--serif); }

/* ---------- YITH wishlist page ---------- */
.wishlist_table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--line); border-radius: var(--r-xl); overflow: hidden; }
.wishlist_table th, .wishlist_table td { padding: 16px 18px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.wishlist_table thead th { font-size: 13px; color: var(--muted); font-weight: 500; background: var(--surface); }
.wishlist_table .product-thumbnail img { width: 80px; height: 80px; object-fit: contain; border-radius: 14px; background: var(--surface); }
.wishlist_table .product-name a { font-weight: 500; }
.wishlist_table .product-name a:hover { color: var(--brand); }
.wishlist_table .product-add-to-cart a.button { background: var(--brand); color: #fff; min-height: 44px; font-size: 14px; }
.wishlist_table .product-remove a.remove { color: var(--muted) !important; font-size: 22px; text-decoration: none; }
.wishlist_table .wishlist-in-stock { color: var(--green); }
.wishlist_table .wishlist-out-of-stock { color: var(--muted); }
.wishlist-title h2 { font-family: var(--serif); font-weight: 500; }
.yith-wcwl-share { margin-top: 24px; }
.yith-wcwl-share ul { display: flex; gap: 8px; list-style: none; padding: 0; }
.yith-wcwl-share a { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: var(--surface); }
#yith-wcwl-popup-message { display: none !important; } /* the theme shows its own toast */

/* ---------- responsive ---------- */
@media (max-width: 1023px) {
  .cart-collaterals { grid-template-columns: 1fr; }
  .cart_totals { grid-column: 1; }
  form.checkout { grid-template-columns: 1fr; }
  form.checkout #order_review_heading, form.checkout #order_review { grid-column: 1; grid-row: auto; margin-top: 0; position: static; }
  .woocommerce-account .ks-woo > .woocommerce { grid-template-columns: 1fr; gap: 22px; }
  .woocommerce-MyAccount-navigation ul { display: flex; overflow-x: auto; }
  .woocommerce-MyAccount-navigation a { white-space: nowrap; }
}
@media (max-width: 760px) {
  table.shop_table_responsive thead { display: none; }
  table.shop_table_responsive tr { display: grid; grid-template-columns: 1fr; padding: 12px 0; border-bottom: 1px solid var(--line); }
  table.shop_table_responsive td { display: flex; justify-content: space-between; gap: 10px; border: 0; padding: 8px 16px; text-align: right; }
  table.shop_table_responsive td::before { content: attr(data-title); color: var(--muted); font-size: 13px; text-align: left; }
  table.shop_table_responsive td.product-thumbnail::before, table.shop_table_responsive td.product-remove::before, table.shop_table_responsive td.actions::before { display: none; }
  table.shop_table td.actions { display: grid; gap: 10px; }
  table.shop_table td.actions .coupon { display: grid; grid-template-columns: 1fr auto; }
  table.shop_table td.actions .coupon .input-text { width: 100%; }
  table.shop_table td.actions > .button { float: none; width: 100%; }
  .woocommerce .col2-set, .woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper,
  .woocommerce-account:not(.logged-in) .u-columns, .woocommerce-Addresses { grid-template-columns: 1fr; }
  .buy-card form.cart:not(.variations_form), .woocommerce-variation-add-to-cart { grid-template-columns: auto 1fr 64px; }
  .buy-card .single_add_to_cart_button, .buy-card__fav, .buy-card .quantity.qty, .buy-card .quantity.qty .qty__btn, .buy-card .quantity input.qty { min-height: 60px; height: 60px; }
  .buy-card__fav { width: 64px; }
  .buy-card .quantity.qty .qty__btn { width: 38px; }
  .buy-card .quantity input.qty { width: 30px; }
  .buy-card__prices { font-size: 34px; }
  .flex-control-thumbs { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
  .ks-review-form { padding: 20px; }
  .shop_attributes th { width: 130px; }
}


@media (min-width: 1181px) { .footer__top { display: flex; gap: 56px; } .footer__contact { margin-left: auto; } }

/* ==========================================================================
   Honest UI layer: solid surfaces, flat brand colours, one type scale,
   real states. Overrides the storefront base above.
   ========================================================================== */

/* ---------- motion: only as feedback to an action ---------- */
.reveal { opacity: 1 !important; transform: none !important; }
.float-a, .float-b, .float-c, .flap { animation: none !important; }
.pcard:hover .pcard__art { transform: none; }

/* ---------- links vs buttons ---------- */
.link-arrow { display: inline-flex; align-items: center; gap: 6px; color: var(--brand); font-size: 16px; font-weight: 600; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; transition: text-decoration-color .15s; white-space: nowrap; }
.link-arrow .i { width: 18px; height: 18px; transition: transform .2s var(--ease); }
.link-arrow:hover { text-decoration-color: currentColor; }
.link-arrow:hover .i { transform: translateX(3px); }
.link-btn { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; color: var(--brand); font-size: 16px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.link-btn .i { width: 18px; height: 18px; transition: transform .25s var(--ease); }
[data-seo].is-open .link-btn .i { transform: rotate(180deg); }
:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; border-radius: 4px; }

.btn { --h: 48px; border-radius: 8px; font-size: 16px; font-weight: 600; }
.btn--primary:hover { box-shadow: none; background: var(--brand-600); }
.btn--primary:active { background: var(--brand-700); }
.btn--white:hover { box-shadow: none; }
.btn--lg { --h: 56px; border-radius: 10px; font-size: 16px; }
.btn--sm { --h: 36px; border-radius: 8px; font-size: 14px; }
.btn[disabled], .btn.is-disabled { opacity: 1; background: var(--surface-2) !important; color: var(--muted) !important; border-color: transparent !important; cursor: not-allowed; pointer-events: none; }
.btn .i { width: 20px; height: 20px; }
[data-tone="dark"] .btn--on-color { background: #fff; color: var(--ink); }
[data-tone="dark"] .btn--on-color:hover { background: #f4ede6; }
[data-tone="light"] .btn--on-color { background: var(--brand); color: #fff; }
[data-tone="light"] .btn--on-color:hover { background: var(--brand-600); }
.gift2 .btn--on-color { background: #fff; color: var(--ink); }
.gift2 .btn--on-color:hover { background: #f4ede6; }
.arrow-btn { width: 40px; height: 40px; border-radius: 8px; background: #fff; color: var(--ink); border: 1px solid var(--line-2); }
.arrow-btn:hover { background: #fff; border-color: var(--ink); }
.arrow-btn:active { background: var(--surface); }
.arrow-btn[disabled] { background: var(--surface); color: var(--muted-2); border-color: transparent; }
.arrow-btn--sm { width: 36px; height: 36px; }
.chip { height: 36px; font-size: 14px; }
.chip:hover { background: var(--surface-3); }
.icon-btn:active, .header__action:active { transform: scale(.94); }

/* ---------- header: solid, sticky, hairline ---------- */
.header-wrap { position: sticky; top: 0; z-index: 50; height: auto; background: #fff; }
.admin-bar .header-wrap { top: 32px; }
@media (max-width: 782px) { .admin-bar .header-wrap { top: 46px; } }
@media (max-width: 600px) { .admin-bar .header-wrap { top: 0; } }
.header { position: relative; top: auto; left: auto; right: auto; display: block; background: #fff; color: var(--ink); border-bottom: 1px solid var(--line); transition: box-shadow .2s var(--ease); --h-fg: var(--ink); --h-rule: var(--line); --h-hover: var(--surface); }
.header.is-compact { transform: none; box-shadow: 0 2px 8px rgba(22, 18, 21, .06); }
.header__top { padding: 0; height: 68px; }
.header .logo, .footer__brand { color: var(--logo); }
.header__geo { padding: 0 20px 0 0; color: var(--ink-2); font-size: 14px; }
.header__geo .i { color: var(--brand); }
.header__catalog-wrap { padding-left: 20px; }
.header__catalog { height: 40px; padding: 0 16px 0 12px; border-radius: 8px; background: var(--brand); color: #fff; font-size: 14px; font-weight: 600; }
.header__catalog:hover { background: var(--brand-600); }
.header__action, .header__burger { color: var(--ink); border-radius: 8px; }
.header__action:hover, .header__burger:hover { background: var(--surface); }
.header__badge { background: var(--brand); color: #fff; font-size: 12px; }
.header__nav { height: 48px; justify-content: flex-start; gap: 4px; margin-left: -10px; }
.header__nav a { font-size: 14px; color: var(--ink-2); border-radius: 6px; }
.header__nav a:hover { color: var(--ink); background: var(--surface); }
.header__nav a.is-accent { color: var(--brand); font-weight: 600; }
.header__bottom { border-top: 1px solid var(--line); }
.mega__panel, .search__panel { border-radius: 0 0 16px 16px; padding-top: calc(var(--mega-top, 120px) + 32px); }
.search__panel { padding-top: calc(var(--search-top, 120px) + 32px); }
.mega__title { font-size: var(--fs-h2); margin-bottom: 24px; }
.mega__side-item { font-size: 16px; border-radius: 8px; padding: 10px 12px; }
.mega__side-item .i { width: 22px; height: 22px; }
.mega__group-title { font-size: 14px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.mega__link { font-size: 16px; padding: 6px 0; }
.search__input { font-size: var(--fs-h2); font-weight: 600; }
.promo-bar { background: var(--plum-700); }
.promo-bar__msg { font-size: 14px; font-weight: 500; }

/* ---------- section heads ---------- */
.section__head { margin-bottom: 28px; min-height: 0; align-items: flex-end; }
.section__title { font-size: var(--fs-h2); line-height: 1.1; text-box: normal; transform: none; }
.section__tools { margin-left: auto; display: flex; align-items: center; gap: 24px; }
.section__nav { margin-left: 0; }
.section { margin-top: var(--section-gap); }

/* ---------- hero: flat colour + product shelf, asymmetric ---------- */
.hero2 { padding-top: 24px; }
.hero2__frame { position: relative; display: grid; min-height: 480px; border-radius: 16px; overflow: hidden; background: var(--surface); }
.hero2__slide { grid-area: 1 / 1; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); opacity: 0; visibility: hidden; transition: opacity .45s var(--ease), visibility 0s linear .45s; }
.hero2__slide.is-active { opacity: 1; visibility: visible; transition: opacity .45s var(--ease), visibility 0s; z-index: 1; }
.hero2__text { display: flex; flex-direction: column; justify-content: center; padding: 56px 56px 104px; background: var(--slide-bg); }
.hero2__slide[data-tone="dark"] .hero2__text { color: #fff; }
.hero2__slide[data-tone="light"] .hero2__text { color: var(--ink); }
.hero2__kicker { font-size: 14px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 16px; }
.hero2__slide[data-tone="light"] .hero2__kicker { color: var(--brand); }
.hero2__title { font-family: var(--serif); font-weight: 500; font-size: var(--fs-h1); line-height: 1.08; letter-spacing: -.02em; max-width: 15ch; }
.hero2__title em { font-style: italic; }
.hero2__lead { margin-top: 16px; font-size: 20px; line-height: 1.4; max-width: 34ch; }
.hero2__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 32px; }
.hero2__code { font-size: 14px; }
.hero2__code b { margin-left: 4px; padding: 4px 8px; border: 1px dashed currentColor; border-radius: 6px; letter-spacing: .08em; }
.hero2__media { position: relative; background: #fff; }
.hero2__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero2__controls { position: absolute; left: 56px; bottom: 32px; z-index: 3; display: flex; align-items: center; gap: 8px; }
.hero2__nav { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 8px; border: 1px solid currentColor; color: inherit; opacity: .9; transition: background-color .15s, opacity .15s; }
.hero2__nav:hover { opacity: 1; background: rgba(255, 255, 255, .14); }
.hero2__nav .i { width: 18px; height: 18px; }
.hero2__count { min-width: 52px; text-align: center; font-size: 14px; font-variant-numeric: tabular-nums; }
.hero2__pause { margin-left: 8px; }
.hero2__frame:has(.hero2__slide.is-active[data-tone="dark"]) .hero2__controls { color: #fff; }
.hero2__frame:has(.hero2__slide.is-active[data-tone="light"]) .hero2__controls { color: var(--ink); }
.hero2__frame:has(.hero2__slide.is-active[data-tone="light"]) .hero2__nav:hover { background: rgba(22, 18, 21, .06); }

/* still life of up to three products */
.trio { position: absolute; inset: 24px 16px 12px; display: grid; align-items: end; justify-items: center; }
.trio--3 { grid-template-columns: 1fr 1.35fr 1fr; }
.trio--2 { grid-template-columns: 1fr 1fr; }
.trio--1 { grid-template-columns: 1fr; }
.trio__item { display: block; width: 100%; height: 100%; position: relative; }
.trio__item img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center bottom; mix-blend-mode: multiply; }
.trio--3 .trio__item--1 { order: 2; height: 100%; z-index: 2; }
.trio--3 .trio__item--2 { order: 1; height: 78%; margin-right: -18%; }
.trio--3 .trio__item--3 { order: 3; height: 70%; margin-left: -18%; }
.trio--2 .trio__item--2 { height: 80%; margin-left: -12%; }

/* ---------- categories: a plain row of labelled links ---------- */
.catrow { margin-top: 24px; }
.catrow__list { display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x proximity; padding-bottom: 2px; }
.catrow__list li { flex: 0 0 auto; scroll-snap-align: start; }
.catrow__item { display: flex; align-items: center; gap: 12px; height: 64px; padding: 0 18px 0 10px; border: 1px solid var(--line); border-radius: 10px; background: #fff; transition: border-color .15s, background-color .15s; }
.catrow__item:hover { border-color: var(--ink); }
.catrow__icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 8px; background: var(--surface); color: var(--brand); overflow: hidden; flex: none; }
.catrow__icon .i { width: 24px; height: 24px; stroke-width: 1.5; }
.catrow__icon img { width: 100%; height: 100%; object-fit: cover; }
.catrow__label { display: grid; font-size: 14px; font-weight: 600; line-height: 1.25; white-space: nowrap; }
.catrow__label small { font-size: 12px; font-weight: 400; color: var(--muted); }
.catrow__item--sale .catrow__icon { background: var(--brand); color: #fff; }

/* ---------- product card ---------- */
.pcard__media { border-radius: 12px; background: var(--surface); }
.pcard__art img { padding: 6%; }
.pcard__badges { left: 10px; top: 10px; gap: 4px; }
.badge-sale { width: auto; height: 24px; padding: 0 8px; border-radius: 6px; font-size: 12px; letter-spacing: 0; }
.tag { height: 24px; padding: 0 8px; border-radius: 6px; font-size: 12px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.tag--hit { background: var(--plum-700); }
.pcard__fav { right: 8px; top: 8px; width: 36px; height: 36px; background: #fff; color: var(--ink-2); box-shadow: var(--shadow-sm); }
.pcard__fav:hover { background: #fff; color: var(--brand); }
.pcard__fav .i { width: 20px; height: 20px; }
.pcard__variants { height: 24px; border-radius: 6px; font-size: 12px; }
.pcard__body { padding-top: 14px; }
.pcard__type { font-size: 14px; color: var(--muted); margin-bottom: 4px; }
.pcard__title { font-size: 16px; font-weight: 500; line-height: 1.35; min-height: 2.7em; }
.pcard__rating { font-size: 14px; color: var(--muted); margin-top: 6px; }
.pcard__rating b { color: var(--ink); font-weight: 600; }
.pcard__rating .i { color: #d18a1a; }
.pcard__buy { display: grid; gap: 10px; min-height: 0; padding-top: 12px; }
.pcard__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.pcard__price b { font-size: 20px; font-weight: 700; font-variant-numeric: tabular-nums; }
.pcard__price.is-sale b { color: var(--brand); }
.pcard__price s { font-size: 14px; color: var(--muted); }
.pcard__off { font-size: 12px; font-weight: 700; color: var(--brand-700); background: var(--brand-50); border-radius: 4px; padding: 2px 6px; }
.pcard__nophoto { display: grid; justify-items: center; gap: 8px; color: var(--muted); font-size: 12px; text-align: center; padding: 16px; }
.pcard__nophoto .i { width: 32px; height: 32px; stroke-width: 1.3; }
.buy-ctl { display: block; width: 100%; }
.btn--cart { --h: 40px; width: 100%; padding: 0 12px; border-radius: 8px; border: 1px solid var(--brand); background: #fff; color: var(--brand); font-size: 14px; font-weight: 600; gap: 8px; }
.btn--cart:hover { background: var(--brand); color: #fff; }
.btn--cart:active { background: var(--brand-700); border-color: var(--brand-700); color: #fff; }
.btn--cart .i { width: 18px; height: 18px; }
.btn--cart.is-busy { cursor: progress; opacity: .7; }
.btn--cart.is-done, .btn--cart.is-done[disabled] { background: var(--green) !important; border-color: var(--green) !important; color: #fff !important; opacity: 1; }
.btn--cart-ghost { border-color: var(--line-2); color: var(--ink); }
.btn--cart-ghost:hover { background: #fff; border-color: var(--ink); color: var(--ink); }
.buy-ctl .stepper { width: 100%; height: 40px; border-radius: 8px; justify-content: space-between; animation: none; }
.stepper__btn { width: 40px; height: 40px; border-radius: 8px; }
.stepper__btn:hover { background: rgba(255, 255, 255, .18); }
.stepper__val { font-size: 14px; }
.stepper__val small { font-size: 12px; opacity: .9; }
.product-grid { gap: 40px var(--gap); }

/* ---------- promos: asymmetric grid ---------- */
.promo-grid { display: grid; gap: var(--gap); }
.promo-grid--3 { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); grid-template-rows: 1fr 1fr; }
.promo-grid--3 .promo2--lead { grid-row: 1 / span 2; }
.promo-grid--2 { grid-template-columns: 1fr 1fr; }
.promo2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 228px; border-radius: 12px; overflow: hidden; background: var(--slide-bg); }
.promo2[data-tone="dark"] { color: #fff; }
.promo2__text { display: flex; flex-direction: column; gap: 8px; padding: 28px; }
.promo2__title { font-family: var(--serif); font-size: var(--fs-h3); font-weight: 500; line-height: 1.15; letter-spacing: -.01em; }
.promo2__date { font-size: 14px; opacity: .9; }
.promo2__more { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 16px; font-size: 14px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: transparent; transition: text-decoration-color .15s; }
.promo2__more .i { width: 16px; height: 16px; }
.promo2:hover .promo2__more { text-decoration-color: currentColor; }
.promo2__media { position: relative; background: rgba(255, 255, 255, .92); }
.promo2--lead { grid-template-columns: 1fr; grid-template-rows: auto minmax(260px, 1fr); }
.promo2--lead .promo2__title { font-size: var(--fs-h2); }

/* ---------- band: full-width, different container type ---------- */
.band { margin-top: var(--section-gap); background: #fbe9f0; }
.band__inner { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: 40px; min-height: 340px; }
.band__text { padding: 48px 0; }
.band__title { font-family: var(--serif); font-size: var(--fs-h2); font-weight: 500; line-height: 1.12; letter-spacing: -.01em; }
.band__lead { margin: 12px 0 24px; font-size: 16px; color: var(--ink-2); max-width: 44ch; }
.band__media { position: relative; height: 300px; align-self: end; }
.band__media .trio { inset: 0; }

/* ---------- journal ---------- */
.journal2 { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px; align-items: start; }
.journal2__lead { display: grid; gap: 10px; }
.journal2__img { display: block; aspect-ratio: 16 / 10; border-radius: 12px; overflow: hidden; background: var(--surface); }
.journal2__meta { display: block; font-size: 14px; color: var(--muted); }
.journal2__title { font-family: var(--serif); font-size: var(--fs-h3); font-weight: 500; line-height: 1.2; }
.journal2__lead:hover .journal2__title, .journal2__row:hover .journal2__row-title { text-decoration: underline; text-underline-offset: 4px; }
.journal2__excerpt { font-size: 16px; color: var(--ink-2); }
.journal2__list li + li { border-top: 1px solid var(--line); }
.journal2__row { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 16px; align-items: center; padding: 16px 0; }
.journal2__list li:first-child .journal2__row { padding-top: 0; }
.journal2__thumb { display: block; aspect-ratio: 1; border-radius: 8px; overflow: hidden; background: var(--surface); }
.journal2__row-title { display: block; margin-top: 4px; font-size: 16px; font-weight: 600; line-height: 1.35; }

/* ---------- brand spotlight ---------- */
.spot2 { background: #f4ede6; padding: 56px 0; }
.spot2__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 40px; align-items: start; }
.spot2__kicker { font-size: 14px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--brand); }
.spot2__brand { margin-top: 8px; font-family: var(--serif); font-size: var(--fs-h2); font-weight: 500; line-height: 1.1; }
.spot2__text { margin: 16px 0 20px; font-size: 16px; color: var(--ink-2); }
.spot2__products { position: relative; }
.spot2__nav { position: absolute; right: 0; top: -52px; display: flex; gap: 8px; }
.spot2__slider { --per: 3; }
.spot2 .pcard__media { background: #fff; }
.spot2 .btn--cart { background: transparent; }

/* ---------- stores ---------- */
.store-card__media { border-radius: 12px; }
.store-card__toggle { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 12px; border-radius: 8px; background: #fff; color: var(--ink); font-size: 14px; font-weight: 600; text-shadow: none; box-shadow: var(--shadow-sm); }
.store-card__toggle:hover { color: var(--brand); }
.store-card__toggle .i { width: 18px; height: 18px; }
.store-card__note { border-radius: 6px; height: 28px; font-size: 12px; color: var(--brand-700); }
.store-card__city { font-size: 20px; }
.store-card__hours .i { width: 16px; height: 16px; color: var(--green); }
.store-card__row .link-arrow { font-size: 14px; }

/* ---------- gift cards ---------- */
.gift2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px; align-items: center; padding: 48px; border-radius: 16px; background: var(--brand); color: #fff; }
.gift2__title { font-family: var(--serif); font-size: var(--fs-h2); font-weight: 500; line-height: 1.1; }
.gift2__lead { margin: 12px 0 24px; font-size: 16px; max-width: 40ch; }
.gift2__card { justify-self: center; position: relative; width: min(100%, 380px); aspect-ratio: 1.586; padding: 24px; border-radius: 12px; background: #fff; color: var(--ink); box-shadow: 0 10px 24px rgba(60, 10, 40, .25), 0 2px 4px rgba(60, 10, 40, .15); transform: rotate(-3deg); }
.gift2__brand { display: flex; align-items: center; gap: 10px; font-family: var(--serif); font-size: 20px; color: var(--logo); }
.gift2__mark { height: 28px; width: auto; fill: currentColor; }
.gift2__sum { position: absolute; left: 24px; bottom: 44px; font-size: var(--fs-h2); font-weight: 700; font-variant-numeric: tabular-nums; }
.gift2__num { position: absolute; left: 24px; bottom: 20px; font-size: 12px; color: var(--muted); letter-spacing: .08em; font-variant-numeric: tabular-nums; }

/* ---------- brands: a table, not tiles ---------- */
.brandlist { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.brandlist__item { display: flex; align-items: center; justify-content: space-between; gap: 10px; height: 64px; padding: 0 16px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background-color .15s; }
.brandlist__item:hover { background: var(--surface); }
.brandlist__name { font-size: 16px; font-weight: 600; }
.brandlist__logo { max-height: 32px; max-width: 120px; object-fit: contain; }
.brandlist__count { font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }

/* ---------- SEO ---------- */
.seo2 { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 40px; padding-top: 40px; border-top: 1px solid var(--line); }
.seo2__title { font-family: var(--serif); font-size: var(--fs-h3); font-weight: 500; line-height: 1.2; }
.seo2__text { position: relative; max-height: 168px; overflow: hidden; font-size: 16px; line-height: 1.65; color: var(--ink-2); }
.seo2__text p + p, .seo2__text p + h3, .seo2__text h3 + p { margin-top: 12px; }
.seo2__text h3 { font-size: 16px; font-weight: 700; color: var(--ink); }
.seo2__text::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 72px; background: linear-gradient(rgba(255, 255, 255, 0), #fff); }
[data-seo].is-open .seo2__text { max-height: none; }
[data-seo].is-open .seo2__text::after { display: none; }

/* ---------- inner pages ---------- */
.page-hero { margin-top: 0; padding-top: 0; border-radius: 0; background: transparent; overflow: visible; }
.page-hero__inner { min-height: 0; padding-top: 28px; padding-bottom: 8px; }
.page-hero__title { margin-top: 12px; max-width: none; font-size: var(--fs-h1); }
.page-hero__sub { font-size: 16px; color: var(--ink-2); max-width: 60ch; }
.crumbs { font-size: 14px; }
.subcats { margin-top: 24px; }
.filter__btn { height: 44px; font-size: 16px; padding: 0 16px; }
.filters__stock { height: 44px; font-size: 16px; }
.results-bar__count, .sort__btn { font-size: 16px; }
.pager__item, .pager__next, .pager__info { font-size: 16px; }
.pager__item { border-radius: 8px; }

/* ---------- product page ---------- */
.pp__title { font-size: var(--fs-h2); line-height: 1.15; }
.buy-card { box-shadow: none; border: 1px solid var(--line-2); border-radius: 12px; }
.buy-card__prices, .buy-card__prices .price { font-size: var(--fs-h2); }
.buy-card__prices del { font-size: 20px; color: var(--muted); }
.buy-card .single_add_to_cart_button { border-radius: 10px; min-height: 56px; font-size: 16px; }
.buy-card .quantity.qty, .buy-card .quantity.qty .qty__btn, .buy-card .quantity input.qty { height: 56px; }
.buy-card .quantity.qty { border-radius: 10px; }
.buy-card__fav { height: 56px; border-radius: 10px; }
.buy-card form.cart:not(.variations_form), .woocommerce-variation-add-to-cart { grid-template-columns: auto 1fr 56px; }
.buy-card__fav { width: 56px; }
.variant { border-radius: 8px; }
.perk { border-radius: 10px; font-size: 14px; }
.perk b { font-size: 14px; }
.rating-summary, .ks-review-form { border-radius: 12px; }
.tab { border-radius: 8px; }
.deliv { margin-top: 16px; padding: 16px 20px; border: 1px solid var(--line-2); border-radius: 12px; }
.deliv__head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.deliv__label { display: inline-flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 600; }
.deliv__label .i { color: var(--brand); }
.deliv__select { height: 40px; padding: 0 36px 0 12px; border: 1px solid var(--line-2); border-radius: 8px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23161215' stroke-width='1.7'%3E%3Cpath d='m6 9.5 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center / 16px; font: inherit; font-size: 16px; -webkit-appearance: none; appearance: none; cursor: pointer; }
.deliv__select:hover { border-color: var(--ink); }
.deliv__out { margin-top: 10px; font-size: 16px; }
.deliv__free { color: var(--green); font-weight: 600; }
.deliv__hint { display: block; margin-top: 4px; font-size: 14px; color: var(--muted); }
.deliv__pickup { display: flex; align-items: center; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); font-size: 14px; color: var(--ink-2); }
.deliv__pickup .i { width: 16px; height: 16px; color: var(--brand); }

/* ---------- form states ---------- */
.input.is-invalid, .woocommerce form .form-row.woocommerce-invalid .input-text, .woocommerce form .form-row.woocommerce-invalid select { border-color: var(--danger) !important; background-color: #fff; }
.input.is-invalid:focus { box-shadow: 0 0 0 4px rgba(179, 38, 30, .12); }
.input.is-valid, .woocommerce form .form-row.woocommerce-validated .input-text { border-color: var(--green); }
.field__msg { font-size: 14px; margin-top: 6px; }
.field__msg:empty { display: none; }
.field__msg.is-error { color: var(--danger); }
.field__msg.is-ok { color: var(--green); }
.footer__sub .field__msg { text-align: right; }
.woocommerce form .form-row .woocommerce-error, .woocommerce-input-wrapper .checkout-inline-error-message { margin: 6px 0 0; padding: 0; background: none; color: var(--danger); font-size: 14px; }

/* ---------- drawers, overlays, misc ---------- */
.drawer__panel { border-radius: 16px; }
.drawer__title, .sheet__title, .modal__title { font-size: var(--fs-h3); }
.drawer__close, .modal__close { border-radius: 8px; }
.cart-item__art, .fav-item .cart-item__art { border-radius: 10px; }
.free-ship { border-radius: 10px; }
.toast { border-radius: 10px; }
.empty-state__art, .no-results__art { width: 64px; height: 64px; color: var(--muted-2); }
.empty-state__art .i, .no-results__art .i { width: 100%; height: 100%; stroke-width: 1.2; }
.empty-state__title, .no-results h3 { font-size: var(--fs-h3); }
.footer { border-radius: 0; border-top: 1px solid var(--line); }
.footer__phone { font-size: var(--fs-h2); }
.footer__title { font-size: 16px; }
.social { border-radius: 8px; border: 1px solid var(--line); }
.chat-fab { height: 48px; padding: 0 18px 0 14px; border-radius: 10px; background: var(--brand); box-shadow: var(--shadow); font-size: 14px; font-weight: 600; }
.chat-fab:hover { background: var(--brand-600); }
.chat-panel { border-radius: 12px; }
.chat-panel__head { background: var(--plum-700); }
.chat-panel__avatar svg { width: 24px; height: auto; fill: #fff; }
.chat-panel__link { border-radius: 8px; }
.nf__code { font-size: 48px; }

/* ---------- phones ---------- */
@media (max-width: 1023px) {
  .header__top { height: 60px; }
  .tabbar { display: grid; grid-template-columns: repeat(5, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 75; height: calc(60px + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); background: #fff; border-top: 1px solid var(--line); }
  .tabbar__inner { display: contents; }
  .tabbar__item { position: relative; display: grid; justify-items: center; align-content: center; gap: 2px; font-size: 12px; color: var(--muted); }
  .tabbar__item .i { width: 24px; height: 24px; }
  .tabbar__item.is-active { color: var(--brand); }
  .tabbar__item .header__badge { top: 4px; right: calc(50% - 22px); }
  .chat-fab { bottom: 72px; right: 12px; width: 48px; padding: 0; justify-content: center; }
  .chat-fab span { display: none; }
  .chat-panel { bottom: 128px; }
  .footer { padding-bottom: 84px; }
  .hero2 { padding-top: 12px; }
  .hero2__frame { min-height: 0; }
  .hero2__slide { grid-template-columns: 1fr; grid-template-rows: 220px auto; }
  .hero2__media { order: -1; }
  .hero2__text { padding: 24px 24px 88px; }
  .hero2__title { font-size: var(--fs-h2); }
  .hero2__lead { font-size: 16px; }
  .hero2__actions { margin-top: 20px; }
  .hero2__controls { left: 24px; bottom: 24px; }
  .promo-grid--3, .promo-grid--2 { grid-template-columns: 1fr; grid-template-rows: none; }
  .promo-grid--3 .promo2--lead { grid-row: auto; }
  .promo2--lead { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: none; }
  .promo2--lead .promo2__title { font-size: var(--fs-h3); }
  .band__inner { grid-template-columns: 1fr; gap: 0; }
  .band__text { padding: 40px 0 8px; }
  .band__media { height: 240px; }
  .journal2, .spot2__grid, .seo2, .gift2 { grid-template-columns: 1fr; gap: 24px; }
  .spot2 { padding: 40px 0; }
  .spot2__nav { display: none; }
  .spot2__slider { --per: 2.2; }
  .gift2 { padding: 32px 24px; }
  .gift2__card { width: min(100%, 320px); }
  .section__nav { display: none; }
}
@media (max-width: 640px) {
  :root { --fs-h1: 32px; --fs-h2: 24px; --fs-h3: 20px; }
  .hero2__slide { grid-template-rows: 180px auto; }
  .promo2 { min-height: 200px; }
  .promo2__text { padding: 20px; }
  .spot2__slider { --per: 1.6; }
  .catrow__item { height: 56px; padding-right: 14px; }
  .catrow__icon { width: 36px; height: 36px; }
  .pcard__title { font-size: 14px; }
  .pcard__price b { font-size: 16px; }
  .pcard__price s { font-size: 12px; }
  .btn--cart { --h: 36px; font-size: 14px; padding: 0 8px; }
  .btn--cart .i { display: none; }
  .buy-ctl .stepper, .stepper__btn { height: 36px; }
  .stepper__btn { width: 36px; }
  .journal2__row { grid-template-columns: 88px minmax(0, 1fr); }
  .brandlist { grid-template-columns: repeat(2, 1fr); }
  .section__tools .link-arrow { font-size: 14px; }
  .footer__phone { font-size: var(--fs-h3); }
}
@media (min-width: 1024px) { .tabbar { display: none; } }

/* packshots carry air around the pack: scale them up from the bottom edge so the still life fills its shelf */
.trio { overflow: visible; }
.trio__item img { transform: scale(var(--s, 1.45)); transform-origin: 50% 96%; }
.trio--3 .trio__item--1 { --s: 1.7; }
.trio--1 .trio__item img { --s: 1.15; }
.hero2__media, .promo2__media, .band__media { overflow: hidden; }
.band__media { overflow: visible; }
.tab-panel h3 { font-family: var(--font); font-size: 16px; font-weight: 700; color: var(--ink); margin: 20px 0 8px; letter-spacing: 0; }
.tab-panel ul { list-style: disc; padding-left: 20px; display: grid; gap: 6px; }
.tab-panel p { margin: 0 0 10px; }
.buy-card .single_add_to_cart_button.disabled, .buy-card .single_add_to_cart_button:disabled { background: var(--surface-2) !important; color: var(--muted) !important; opacity: 1; box-shadow: none !important; cursor: not-allowed; }
