/* =====================================================================
   FASHION SEASONS · SHOP
   Header icons, the bag drawer, and the WooCommerce screens (bag page,
   checkout, account, order tracking, product pages) in the house style.
   ===================================================================== */

/* ---------- Header: account + bag ---------- */
.nav__tools { display: flex; align-items: center; gap: 4px; margin-left: clamp(8px, 1.6vw, 22px); }
.nav__icon {
  position: relative; display: inline-grid; place-items: center; width: 44px; height: 44px;
  color: var(--ivory-2); text-decoration: none; border-radius: 50%;
  transition: color 200ms ease, background-color 200ms ease, transform 160ms var(--ease-out);
}
.nav__icon:active { transform: scale(0.94); }
.nav__icon[aria-current="page"] { color: var(--gold-2); }
@media (hover: hover) and (pointer: fine) { .nav__icon:hover { color: var(--gold-2); background: rgba(216, 182, 94, 0.08); } }
.nav__dot { position: absolute; right: 9px; bottom: 10px; width: 7px; height: 7px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 2px var(--ink); }
.nav__count {
  position: absolute; top: 4px; right: 1px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 10px;
  background-color: var(--gold); background-image: var(--gold-shine); color: var(--ink);
  font-size: 11px; font-weight: 600; line-height: 19px; text-align: center; letter-spacing: 0;
  box-shadow: 0 0 0 2px var(--ink), 0 2px 10px -2px rgba(216, 182, 94, 0.7);
}
.nav__count.is-bump { animation: bag-bump 520ms var(--ease-out); }
@keyframes bag-bump { 0% { transform: scale(1); } 30% { transform: scale(1.35); } 100% { transform: scale(1); } }
.nav__links-account { display: none; }
.nav nav { margin-left: auto; }
@media (max-width: 1180px) {
  .nav__inner { gap: 6px; }
  .nav nav { order: 3; margin-left: 0; }
  .nav__tools { order: 2; margin-left: auto; }
  .nav__links-account { display: block; }
}

/* ---------- Bag drawer ---------- */
.bag { position: fixed; inset: 0; z-index: 1100; }
.bag[hidden] { display: none; }
.bag__backdrop { position: absolute; inset: 0; background: rgba(5, 4, 3, 0.7); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); opacity: 0; transition: opacity 320ms var(--ease-out); }
.bag__panel {
  position: absolute; top: 0; right: 0; bottom: 0; width: min(460px, 100vw);
  background: linear-gradient(180deg, #16120e 0%, #0e0b09 100%);
  border-left: 1px solid rgba(216, 182, 94, 0.25);
  box-shadow: -30px 0 80px -30px rgba(0, 0, 0, 0.8);
  display: flex; flex-direction: column;
  transform: translateX(100%); transition: transform 420ms var(--ease-drawer);
  padding-top: env(safe-area-inset-top, 0px);
}
.bag.is-open .bag__backdrop { opacity: 1; }
.bag.is-open .bag__panel { transform: none; }
@media (prefers-reduced-motion: reduce) { .bag__panel, .bag__backdrop { transition: none; } }
.bag__head { display: flex; align-items: center; justify-content: space-between; padding: 22px 26px; border-bottom: 1px solid var(--line); }
.bag__head h2 { font-size: 30px; margin: 0; }
.bag__n { font-family: var(--body); font-size: 15px; color: var(--muted); letter-spacing: 0.04em; }
.bag__close { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line-2); background: transparent; color: var(--ivory); cursor: pointer; display: grid; place-items: center; transition: border-color 200ms ease, transform 160ms var(--ease-out); }
.bag__close:active { transform: scale(0.94); }
@media (hover: hover) { .bag__close:hover { border-color: var(--gold); } }
.bag__body { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 8px 26px; }
.bag__loading, .bag__empty { padding: 40px 0; color: var(--ivory-2); }
.bag__empty p:first-child { font-family: var(--display); font-size: 26px; color: var(--ivory); margin-bottom: 6px; }
.bag__links { display: grid; gap: 10px; margin-top: 18px; }
.bag__links a { display: flex; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid var(--line); text-decoration: none; font-family: var(--display); font-size: 22px; }
.bag__links a::after { content: "\2192"; font-family: var(--body); color: var(--gold); }
.bag__items { list-style: none; margin: 0; padding: 0; }
.bag__item { display: grid; grid-template-columns: 78px 1fr auto; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--line); transition: opacity 200ms ease; }
.bag__item.is-busy { opacity: 0.45; pointer-events: none; }
.bag.just-added .bag__item:first-child { animation: bag-in 700ms var(--ease-out); }
@keyframes bag-in { from { background: rgba(216, 182, 94, 0.12); } to { background: transparent; } }
.bag__img { display: block; aspect-ratio: 3 / 4; background: var(--ink-3); overflow: hidden; }
.bag__img img { width: 100%; height: 100%; object-fit: cover; }
.bag__info { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.bag__name { font-family: var(--display); font-size: 19px; line-height: 1.25; text-decoration: none; }
.bag__meta { font-size: 13px; color: var(--muted); letter-spacing: 0.04em; }
.bag__qty { display: inline-flex; align-items: center; margin-top: auto; border: 1px solid var(--line-2); border-radius: 40px; width: max-content; }
.bag__qty button { width: 36px; height: 34px; background: none; border: 0; color: var(--ivory); cursor: pointer; font-size: 16px; }
.bag__qty button[disabled] { opacity: 0.3; cursor: default; }
.bag__qty span { min-width: 22px; text-align: center; font-size: 14px; }
.bag__right { display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; }
.bag__price { font-family: var(--display); font-size: 18px; white-space: nowrap; }
.bag__remove { background: none; border: 0; padding: 4px 0; color: var(--muted); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
@media (hover: hover) { .bag__remove:hover { color: var(--ivory); } }
.bag__error { color: #ffb4a8; font-size: 14px; padding: 10px 0; margin: 0; }
.bag__foot { padding: 20px 26px calc(22px + env(safe-area-inset-bottom, 0px)); border-top: 1px solid rgba(216, 182, 94, 0.22); background: rgba(10, 8, 6, 0.6); }
.bag__row { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 6px; }
.bag__row strong { font-family: var(--display); font-weight: 400; font-size: 24px; }
.bag__row--muted { font-size: 13px; color: var(--muted); }
.bag__vat { font-size: 12px; color: var(--muted); margin: 8px 0 16px; }
.bag__checkout { width: 100%; }
.bag__view { display: block; text-align: center; margin-top: 14px; font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ivory-2); }

/* ---------- Product window: sizes + add to bag ---------- */
.size.is-soldout span { opacity: 0.35; text-decoration: line-through; cursor: not-allowed; }
#pm-add.is-busy { pointer-events: none; }
#pm-add[disabled] { opacity: 0.5; cursor: not-allowed; }

/* ---------- Shop pages ---------- */
.shop-main { padding-top: calc(var(--nav-h) + env(safe-area-inset-top, 0px)); min-height: 70vh; }
.shop-intro { padding: clamp(48px, 7vw, 96px) 0 clamp(24px, 3vw, 40px); position: relative; }
.shop-intro::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse 60% 100% at 50% 0%, rgba(216, 182, 94, 0.10), transparent 70%); pointer-events: none; }
.shop-intro h1 { font-size: clamp(42px, 5.6vw, 82px); margin: 0; }
.shop-content { padding-bottom: clamp(80px, 10vw, 140px); }
.shop-main--product .shop-content { padding-top: clamp(30px, 4vw, 60px); }

.woocommerce h2, .woocommerce h3 { font-size: clamp(26px, 2.4vw, 34px); margin-top: 0; }
.woocommerce a:not(.button):not(.btn) { color: var(--gold-2); text-underline-offset: 3px; }
.woocommerce .clear { clear: both; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Notices */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews, .wc-block-components-notice-banner {
  list-style: none; margin: 0 0 28px; padding: 18px 22px; border: 1px solid var(--line-2); border-left: 2px solid var(--gold);
  background: var(--ink-2); color: var(--ivory-2); display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; justify-content: space-between;
}
.woocommerce-error { border-left-color: #e0796a; }
.woocommerce-error li { margin: 0; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; }

/* Buttons */
.woocommerce .button, .woocommerce button.button, .woocommerce input.button, .woocommerce a.button, #place_order, .woocommerce .checkout-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 0 26px;
  border: 1px solid var(--gold); background: transparent; color: var(--ivory); border-radius: var(--radius);
  font-family: var(--body); font-size: 12px; font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; text-decoration: none;
  cursor: pointer; transition: background-color 200ms ease, color 200ms ease, border-color 200ms ease, transform 160ms var(--ease-out), background-position 600ms var(--ease-out);
  touch-action: manipulation;
}
.woocommerce .button:active, #place_order:active { transform: scale(0.97); }
.woocommerce .button.alt, .woocommerce .checkout-button, #place_order, .woocommerce .single_add_to_cart_button, .woocommerce-form-login__submit, .woocommerce-form-register__submit, .woocommerce-form-track-order .button, .woocommerce-Button.button {
  background-color: var(--gold); background-image: var(--gold-shine); background-size: 200% 100%; color: var(--ink); border-color: #d9b75f;
  box-shadow: inset 0 1px 0 rgba(255, 250, 225, 0.55), 0 6px 22px -10px rgba(216, 182, 94, 0.55);
}
@media (hover: hover) and (pointer: fine) {
  .woocommerce .button:hover { background-color: var(--gold); color: var(--ink); }
  .woocommerce .button.alt:hover, .woocommerce .checkout-button:hover, #place_order:hover, .woocommerce .single_add_to_cart_button:hover { background-position: 100% 50%; }
}
.woocommerce .button:disabled, .woocommerce .button.disabled, .woocommerce .button[disabled] { opacity: 0.45; cursor: not-allowed; }
#place_order { width: 100%; min-height: 58px; font-size: 13px; margin-top: 18px; }

/* Forms */
.woocommerce form .form-row { margin: 0 0 18px; padding: 0; }
.woocommerce form .form-row label, .woocommerce form label { display: block; font-size: 13px; letter-spacing: 0.06em; color: var(--ivory-2); margin-bottom: 8px; }
.woocommerce form .form-row .required { color: var(--gold); text-decoration: none; border: 0; }
.woocommerce form .form-row .optional { color: var(--muted); }
.woocommerce input.input-text, .woocommerce textarea, .woocommerce select, .woocommerce input[type="email"], .woocommerce input[type="password"], .woocommerce input[type="text"], .woocommerce input[type="tel"], .woocommerce input[type="number"] {
  width: 100%; min-height: 50px; padding: 12px 14px; background: var(--ink-2); border: 1px solid var(--line-2); border-radius: var(--radius);
  color: var(--ivory); font-size: 16px; transition: border-color 200ms ease, box-shadow 200ms ease;
}
.woocommerce select { appearance: none; padding-right: 38px; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0l5 6 5-6' fill='none' stroke='%23d8b65e'/></svg>"); background-repeat: no-repeat; background-position: right 14px center; }
.woocommerce select option { background: var(--ink-2); }
.woocommerce input:focus, .woocommerce textarea:focus, .woocommerce select:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(216, 182, 94, 0.18); }
.woocommerce form .form-row.woocommerce-invalid input.input-text, .woocommerce form .form-row.woocommerce-invalid select { border-color: #e0796a; }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: calc(50% - 8px); display: inline-block; vertical-align: top; }
.woocommerce form .form-row-first { margin-right: 12px; }
@media (max-width: 600px) { .woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100%; margin-right: 0; } }
.woocommerce input[type="checkbox"], .woocommerce input[type="radio"] { accent-color: var(--gold); width: 18px; height: 18px; vertical-align: -3px; margin: 0 10px 0 0; }
.woocommerce-form__label-for-checkbox { display: flex !important; gap: 4px; align-items: flex-start; cursor: pointer; }
.password-input { position: relative; display: block; }
.show-password-input { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; border: 0; background: none; cursor: pointer; color: var(--muted); }
.show-password-input::after { content: "Show"; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; }
.show-password-input.display-password::after { content: "Hide"; }
.woocommerce-password-strength { margin-top: 8px; padding: 8px 12px; font-size: 13px; border: 1px solid var(--line-2); }
.woocommerce-password-strength.strong { border-color: #8fcf9a; color: #b9e6c1; }
.woocommerce-password-strength.short, .woocommerce-password-strength.bad { border-color: #e0796a; color: #ffb4a8; }
.woocommerce-password-strength.good { border-color: var(--gold); color: var(--gold-2); }
.woocommerce-password-hint { display: block; font-size: 13px; color: var(--muted); margin-top: 6px; }

/* Tables */
.woocommerce table.shop_table { width: 100%; border-collapse: collapse; margin: 0 0 30px; font-size: 15px; }
.woocommerce table.shop_table th { text-align: left; font-weight: 500; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); padding: 14px 12px; border-bottom: 1px solid var(--line-2); }
.woocommerce table.shop_table td { padding: 18px 12px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.woocommerce table.shop_table tfoot th, .woocommerce table.shop_table tfoot td { font-size: 15px; letter-spacing: 0; text-transform: none; color: var(--ivory-2); }
.woocommerce table.shop_table .order-total th, .woocommerce table.shop_table .order-total td { color: var(--ivory); font-family: var(--display); font-size: 22px; font-weight: 400; }
.woocommerce table.shop_table .order-total small, .includes_tax { font-family: var(--body); font-size: 12px; color: var(--muted); display: block; }
.woocommerce .woocommerce-Price-amount { white-space: nowrap; }

/* Bag page */
.woocommerce-cart-form .product-thumbnail img { width: 72px; height: 96px; object-fit: cover; }
.woocommerce-cart-form .product-name a { font-family: var(--display); font-size: 20px; text-decoration: none; color: var(--ivory) !important; }
.woocommerce-cart-form .product-name .variation { display: grid; grid-template-columns: auto 1fr; gap: 2px 8px; margin: 6px 0 0; font-size: 13px; color: var(--muted); }
.woocommerce-cart-form .product-name .variation dd { margin: 0; }
.woocommerce-cart-form .product-name .variation p { margin: 0; }
.woocommerce a.remove { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--line-2); color: var(--muted) !important; text-decoration: none; font-size: 20px; line-height: 1; }
.woocommerce .quantity .qty { width: 76px; min-height: 44px; text-align: center; }
.woocommerce-cart-form td.actions { padding-top: 24px; }
.woocommerce-cart-form td.actions .coupon { display: inline-flex; gap: 10px; margin-right: 12px; }
.woocommerce-cart-form td.actions .coupon .input-text { width: 200px; }
.cart-collaterals { display: flex; justify-content: flex-end; margin-top: 20px; }
.cart_totals { width: min(100%, 440px); border: 1px solid rgba(216, 182, 94, 0.25); padding: 28px; background: var(--ink-2); }
.cart_totals .shop_table th { width: 40%; }
.wc-proceed-to-checkout .checkout-button { width: 100%; min-height: 56px; }
.woocommerce-shipping-methods { list-style: none; padding: 0; margin: 0; }
@media (max-width: 760px) {
  .woocommerce table.shop_table_responsive thead { display: none; }
  .woocommerce table.shop_table_responsive tr { display: block; padding: 14px 0; border-bottom: 1px solid var(--line); }
  .woocommerce table.shop_table_responsive td { display: flex; justify-content: space-between; align-items: center; gap: 16px; border: 0; padding: 8px 0; text-align: right; }
  .woocommerce table.shop_table_responsive td::before { content: attr(data-title); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); text-align: left; }
  .woocommerce table.shop_table_responsive td.product-remove::before, .woocommerce table.shop_table_responsive td.product-thumbnail::before, .woocommerce table.shop_table_responsive td.actions::before { display: none; }
  .woocommerce-cart-form td.actions { display: block !important; }
  .woocommerce-cart-form td.actions .coupon { display: grid; grid-template-columns: 1fr auto; margin: 0 0 12px; }
  .woocommerce-cart-form td.actions .coupon .input-text { width: 100%; }
  .woocommerce-cart-form td.actions > .button { width: 100%; }
}

/* Checkout */
form.checkout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 20px clamp(30px, 5vw, 80px); align-items: start; }
form.checkout > .woocommerce-NoticeGroup, form.checkout > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
form.checkout #customer_details { grid-column: 1; }
form.checkout #order_review_heading, form.checkout #order_review { grid-column: 2; }
form.checkout #order_review_heading { grid-row: 1; margin: 0 0 -6px; }
form.checkout #order_review { grid-row: 2 / span 4; position: sticky; top: calc(var(--nav-h) + 20px); border: 1px solid rgba(216, 182, 94, 0.25); background: var(--ink-2); padding: 26px; }
form.checkout #customer_details { grid-row: 1 / span 5; }
#customer_details .col-1, #customer_details .col-2 { width: 100%; }
#customer_details h3 { margin: 0 0 22px; }
#customer_details .col-2 { margin-top: 30px; }
#ship-to-different-address label { display: flex; align-items: center; font-family: var(--display); font-size: 24px; color: var(--ivory); }
.woocommerce-checkout-review-order-table .product-name { font-size: 15px; }
.woocommerce-checkout-review-order-table .product-quantity { color: var(--muted); }
#payment { margin-top: 10px; }
#payment ul.payment_methods { list-style: none; margin: 0 0 18px; padding: 0; border-top: 1px solid var(--line); }
#payment ul.payment_methods li { padding: 14px 0; border-bottom: 1px solid var(--line); }
#payment ul.payment_methods li label { display: inline-flex; align-items: center; gap: 10px; color: var(--ivory); font-size: 15px; letter-spacing: 0; margin: 0; cursor: pointer; }
#payment ul.payment_methods li img { max-height: 24px; width: auto; display: inline-block; margin-left: 6px; vertical-align: middle; }
#payment .payment_box { margin: 10px 0 0 28px; font-size: 14px; color: var(--muted); }
#payment .payment_box p { margin: 0; }
.woocommerce-terms-and-conditions-wrapper { margin-top: 14px; font-size: 14px; color: var(--ivory-2); }
.woocommerce-privacy-policy-text p { font-size: 13px; color: var(--muted); }
.validate-required .woocommerce-terms-and-conditions-checkbox-text { color: var(--ivory); }
.woocommerce-form-login-toggle .woocommerce-info, .woocommerce-form-coupon-toggle .woocommerce-info { justify-content: flex-start; }
form.checkout_coupon, form.woocommerce-form-login.login { border: 1px solid var(--line-2); padding: 24px; margin-bottom: 30px; }
.blockUI.blockOverlay { background: rgba(12, 10, 8, 0.6) !important; }
@media (max-width: 900px) {
  form.checkout { grid-template-columns: 1fr; }
  form.checkout #customer_details, form.checkout #order_review_heading, form.checkout #order_review { grid-column: 1; grid-row: auto; position: static; }
}

/* Order received */
.woocommerce-thankyou-order-received { font-family: var(--display); font-size: clamp(24px, 2.4vw, 32px); color: var(--ivory); }
ul.woocommerce-order-overview { list-style: none; padding: 0; margin: 0 0 40px; display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }
ul.woocommerce-order-overview li { background: var(--ink); padding: 18px 20px; font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); }
ul.woocommerce-order-overview li strong { display: block; margin-top: 6px; font-family: var(--display); font-size: 20px; letter-spacing: 0; text-transform: none; color: var(--ivory); font-weight: 400; }
.woocommerce-customer-details address { font-style: normal; border: 1px solid var(--line); padding: 20px; line-height: 1.8; color: var(--ivory-2); }
.woocommerce-columns--addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; }

/* Account */
.woocommerce-account .shop-content > .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: clamp(30px, 5vw, 80px); align-items: start; }
.woocommerce-account:not(.logged-in) .shop-content > .woocommerce { display: block; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); position: sticky; top: calc(var(--nav-h) + 20px); }
.woocommerce-MyAccount-navigation li a { display: block; padding: 15px 0; border-bottom: 1px solid var(--line); text-decoration: none; color: var(--ivory-2) !important; font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; transition: color 200ms ease, padding 250ms var(--ease-out); }
.woocommerce-MyAccount-navigation li.is-active a { color: var(--gold-2) !important; padding-left: 12px; border-left: 1px solid var(--gold); }
@media (hover: hover) { .woocommerce-MyAccount-navigation li a:hover { color: var(--ivory) !important; padding-left: 8px; } }
.woocommerce-MyAccount-content > p:first-child { color: var(--ivory-2); }
.woocommerce-orders-table__cell-order-actions .button { min-height: 40px; padding: 0 16px; margin: 3px 6px 3px 0; font-size: 11px; }
.woocommerce-orders-table__cell-order-actions .fs-withdraw { border-color: var(--line-2); }
.woocommerce-orders-table mark, .woocommerce-MyAccount-content mark { background: none; color: var(--gold-2); }
.woocommerce-Addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; }
.woocommerce-Address-title { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.woocommerce-pagination { display: flex; gap: 10px; }
@media (max-width: 860px) {
  .woocommerce-account .shop-content > .woocommerce { grid-template-columns: 1fr; }
  .woocommerce-MyAccount-navigation ul { position: static; display: flex; overflow-x: auto; gap: 18px; border: 0; border-bottom: 1px solid var(--line); scrollbar-width: none; }
  .woocommerce-MyAccount-navigation li a { white-space: nowrap; border: 0; padding: 12px 0; }
  .woocommerce-MyAccount-navigation li.is-active a { padding-left: 0; border-left: 0; box-shadow: inset 0 -1px 0 var(--gold); }
}

/* Sign in / register */
#customer_login { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 5vw, 70px); }
#customer_login > div { border: 1px solid var(--line-2); padding: clamp(24px, 3vw, 40px); background: var(--ink-2); }
#customer_login .u-column1 { border-color: rgba(216, 182, 94, 0.3); }
@media (max-width: 820px) { #customer_login { grid-template-columns: 1fr; } }
.woocommerce-form-login__rememberme { margin: 4px 0 16px !important; }
.woocommerce-LostPassword { margin-top: 14px; font-size: 14px; }
.fs-login-note { font-size: 13px; color: var(--muted); margin-top: 18px; }
/* Google button (Nextend Social Login) */
div.nsl-container { margin: 0 0 22px !important; }
div.nsl-container .nsl-container-buttons a { border-radius: var(--radius) !important; }
.fs-or { display: flex; align-items: center; gap: 14px; margin: 0 0 22px; font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--muted); }
.fs-or::before, .fs-or::after { content: ""; flex: 1; height: 1px; background: var(--line-2); }

/* Order timeline (live) */
.timeline { border: 1px solid rgba(216, 182, 94, 0.28); background: linear-gradient(180deg, rgba(216, 182, 94, 0.06), transparent 60%), var(--ink-2); padding: clamp(22px, 3vw, 34px); margin: 0 0 34px; }
.timeline__status { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 0 0 22px; font-size: 13px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.timeline__status strong { font-family: var(--display); font-size: 26px; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--gold-2); }
.timeline__live { display: inline-flex; align-items: center; gap: 7px; font-size: 10px; letter-spacing: 0.24em; color: var(--ivory-2); border: 1px solid var(--line-2); border-radius: 20px; padding: 4px 10px; }
.timeline__live i { width: 7px; height: 7px; border-radius: 50%; background: #8fcf9a; box-shadow: 0 0 0 0 rgba(143, 207, 154, 0.6); animation: live 2s infinite; }
@keyframes live { 0% { box-shadow: 0 0 0 0 rgba(143, 207, 154, 0.55); } 70% { box-shadow: 0 0 0 8px rgba(143, 207, 154, 0); } 100% { box-shadow: 0 0 0 0 rgba(143, 207, 154, 0); } }
@media (prefers-reduced-motion: reduce) { .timeline__live i { animation: none; } }
.timeline__special { color: #ffb4a8; }
.timeline__steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; position: relative; }
.timeline__steps li { position: relative; padding: 28px 12px 0 0; font-size: 14px; color: var(--muted); }
.timeline__steps li::before { content: ""; position: absolute; top: 7px; left: 0; right: 0; height: 1px; background: var(--line-2); }
.timeline__steps li.is-done::before { background: linear-gradient(90deg, #f1dc98, var(--gold)); }
.timeline__steps li.is-current::before { background: linear-gradient(90deg, var(--gold) 0%, var(--line-2) 100%); }
.timeline__dot { position: absolute; top: 0; left: 0; width: 15px; height: 15px; border-radius: 50%; border: 1px solid var(--line-2); background: var(--ink); }
.timeline__steps li.is-done .timeline__dot { background-color: var(--gold); background-image: var(--gold-shine); border-color: #f1dc98; }
.timeline__steps li.is-current .timeline__dot { border-color: var(--gold); box-shadow: 0 0 0 4px rgba(216, 182, 94, 0.18); background: radial-gradient(circle, var(--gold) 0 3px, var(--ink) 4px); }
.timeline__steps strong { display: block; font-weight: 500; color: var(--ivory); margin-bottom: 2px; }
.timeline__steps li.is-todo strong { color: var(--muted); font-weight: 400; }
.timeline__date, .timeline__note { display: block; font-size: 13px; }
.timeline__note { color: var(--gold-2); }
.timeline__track { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; }
.timeline__track span { font-size: 15px; letter-spacing: 0.06em; }
.timeline__hint { margin: 16px 0 0; font-size: 12px; color: var(--muted); }
.timeline--compact { margin-bottom: 20px; }
@media (max-width: 640px) {
  .timeline__steps { grid-template-columns: 1fr; gap: 0; }
  .timeline__steps li { padding: 0 0 22px 32px; }
  .timeline__steps li::before { top: 15px; bottom: 0; left: 7px; right: auto; width: 1px; height: auto; }
  .timeline__steps li:last-child::before { display: none; }
  .timeline__steps li.is-done::before { background: var(--gold); }
}
.fs-dash__title { margin-bottom: 18px; }

/* Track your order (guests) */
.woocommerce-form-track-order { max-width: 560px; border: 1px solid var(--line-2); padding: clamp(24px, 3vw, 40px); background: var(--ink-2); }
.woocommerce-form-track-order .form-row-first, .woocommerce-form-track-order .form-row-last { width: 100%; display: block; margin-right: 0; }

/* Product page */
.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(30px, 5vw, 80px); align-items: start; }
.woocommerce div.product > .woocommerce-tabs, .woocommerce div.product > .related, .woocommerce div.product > .up-sells { grid-column: 1 / -1; }
.woocommerce-product-gallery { position: relative; }
.woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce-product-gallery__image img { width: 100%; height: auto; }
.woocommerce-product-gallery .flex-control-thumbs { list-style: none; display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; padding: 0; margin: 8px 0 0; }
.woocommerce-product-gallery .flex-control-thumbs img { cursor: pointer; opacity: 0.6; }
.woocommerce-product-gallery .flex-control-thumbs img.flex-active { opacity: 1; }
.woocommerce-product-gallery__trigger { position: absolute; top: 12px; right: 12px; z-index: 2; width: 40px; height: 40px; border-radius: 50%; background: rgba(10, 9, 8, 0.7); font-size: 0; }
.woocommerce-product-gallery__trigger::after { content: "+"; font-size: 20px; color: var(--ivory); display: grid; place-items: center; height: 100%; }
.summary .product_title { font-size: clamp(36px, 3.6vw, 56px); }
.summary .price { font-family: var(--display); font-size: 30px; color: var(--ivory); margin: 0 0 18px; }
.summary .woocommerce-product-details__short-description { color: var(--ivory-2); }
table.variations { border-collapse: collapse; width: 100%; margin-bottom: 14px; }
table.variations th, table.variations td { display: block; text-align: left; padding: 0; }
table.variations th label { font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); }
table.variations td { margin: 8px 0 14px; }
.reset_variations { font-size: 12px; margin-left: 10px; }
.single_variation_wrap .woocommerce-variation-price { margin-bottom: 12px; }
form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 10px 0 26px; }
form.variations_form { display: block; }
.woocommerce-variation-add-to-cart { display: flex; gap: 12px; align-items: center; }
.single_add_to_cart_button { flex: 1; min-height: 54px !important; }
.product_meta { font-size: 13px; color: var(--muted); display: grid; gap: 4px; }
.woocommerce-tabs ul.tabs { list-style: none; display: flex; gap: 26px; padding: 0; margin: 50px 0 20px; border-bottom: 1px solid var(--line); }
.woocommerce-tabs ul.tabs li a { display: block; padding: 12px 0; text-decoration: none; color: var(--ivory-2) !important; font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; }
.woocommerce-tabs ul.tabs li.active a { color: var(--gold-2) !important; box-shadow: inset 0 -1px 0 var(--gold); }
.woocommerce-tabs .panel h2:first-child { display: none; }
ul.products { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 34px 20px; }
ul.products li.product a { text-decoration: none; color: var(--ivory) !important; }
ul.products li.product img { aspect-ratio: 3 / 4; object-fit: cover; width: 100%; height: auto; margin-bottom: 12px; }
ul.products li.product .woocommerce-loop-product__title { font-size: 20px; margin: 0 0 4px; }
ul.products li.product .price { color: var(--ivory-2); display: block; margin-bottom: 12px; }
.woocommerce-result-count, .woocommerce-ordering { margin-bottom: 26px; color: var(--muted); font-size: 14px; }
.woocommerce-ordering select { width: auto; min-height: 42px; }
.onsale { position: absolute; top: 12px; left: 12px; z-index: 2; background-color: var(--gold); background-image: var(--gold-shine); color: var(--ink); font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; padding: 6px 10px; }
.stock.out-of-stock { color: #ffb4a8; }
.stock.in-stock { color: #b9e6c1; font-size: 14px; }
@media (max-width: 860px) { .woocommerce div.product { grid-template-columns: 1fr; } }

/* Footer: payment methods line */
.footer__pay { font-size: 12px; letter-spacing: 0.12em; color: var(--muted); margin-top: 18px; }

/* ---------- Contact & requests ---------- */
.page-head--contact { min-height: 56vh; min-height: 56svh; }
.contact-grid { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(36px, 6vw, 100px); align-items: start; }
.contact-list { list-style: none; padding: 0; margin: 30px 0; border-top: 1px solid var(--line); }
.contact-list li { display: grid; grid-template-columns: 130px 1fr; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--line); color: var(--ivory-2); }
.contact-list span { font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--muted); padding-top: 4px; }
.contact-list a { color: var(--gold-2); text-decoration: none; font-family: var(--display); font-size: 22px; }
.contact-links { display: flex; flex-wrap: wrap; gap: 10px; }
.contact-links a { font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; text-decoration: none; color: var(--ivory-2); border: 1px solid var(--line-2); border-radius: 40px; padding: 10px 16px; transition: border-color 200ms ease, color 200ms ease; }
@media (hover: hover) { .contact-links a:hover { border-color: var(--gold); color: var(--ivory); } }
.contact-form-wrap { border: 1px solid rgba(216, 182, 94, 0.25); background: linear-gradient(180deg, rgba(216, 182, 94, 0.05), transparent 50%), var(--ink-2); padding: clamp(24px, 3.4vw, 48px); }
.contact-form-wrap--wide { max-width: 860px; }
.contact-form { max-width: none; }
.contact-form__title { font-size: clamp(28px, 2.6vw, 38px); margin: 0 0 4px; }
.form input[type="tel"], .form select.form-select {
  display: block; width: 100%; min-height: 52px; margin-top: 8px; padding: 12px 16px; background: var(--ink); border: 1px solid var(--line-2); border-radius: var(--radius); color: var(--ivory); font-size: 16px;
}
.form select.form-select { appearance: none; padding-right: 40px; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0l5 6 5-6' fill='none' stroke='%23d8b65e'/></svg>"); background-repeat: no-repeat; background-position: right 16px center; }
.contact-form input[type="text"], .contact-form input[type="email"], .contact-form textarea { background: var(--ink); }
.form input[type="tel"]:focus, .form select.form-select:focus { border-color: var(--gold); outline: none; }
.form-note { font-size: 13px; color: var(--muted); margin: 0; }
.form-note a { color: var(--ivory-2); }
.form-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.topic-choice { border: 0; padding: 0; margin: 0 0 4px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.topic-choice legend { font-size: 13px; letter-spacing: 0.08em; color: var(--ivory-2); margin-bottom: 12px; padding: 0; }
.topic { position: relative; cursor: pointer; }
.form label.topic { letter-spacing: 0; }
.topic input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.topic span { display: block; height: 100%; padding: 16px 18px; border: 1px solid var(--line-2); background: var(--ink); transition: border-color 200ms ease, background-color 200ms ease; }
.topic strong { display: block; font-weight: 500; color: var(--ivory); font-size: 15px; margin-bottom: 3px; }
.topic small { display: block; font-size: 13px; color: var(--muted); line-height: 1.45; }
.topic input:checked + span { border-color: var(--gold); background: rgba(216, 182, 94, 0.08); box-shadow: inset 0 0 0 1px var(--gold); }
.topic input:focus-visible + span { outline: 2px solid var(--gold); outline-offset: 2px; }
#form-notice { margin-bottom: 24px; }
@media (max-width: 860px) { .contact-grid, .form-row-2 { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .topic-choice { grid-template-columns: 1fr; } .contact-list li { grid-template-columns: 1fr; gap: 4px; } }

/* Tiny footer link for special requests */
.footer__help { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; color: var(--muted); text-decoration: none; border: 1px solid var(--line); border-radius: 30px; padding: 6px 12px; transition: color 200ms ease, border-color 200ms ease; }
.footer__help::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--gold); }
@media (hover: hover) { .footer__help:hover { color: var(--ivory); border-color: var(--gold); } }
.footer__tagline { font-size: 11px; letter-spacing: 0.4em; text-transform: uppercase; color: var(--gold-2); margin: -6px 0 18px; }

/* Buttons to all collections (empty orders) */
.fs-collections { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 0; }
.fs-collections .btn { margin: 0; }

/* Security check on "Create an account" */
.fs-captcha__row { display: flex; align-items: center; gap: 14px; margin: 6px 0 10px; flex-wrap: wrap; }
.fs-captcha img { border: 1px solid var(--line-2); border-radius: 6px; display: block; }
.fs-captcha__new { font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold-2); }
.fs-captcha input { letter-spacing: 0.3em; text-transform: uppercase; max-width: 220px; }

/* ---------- Reviews (/review/) ---------- */
.rv-intro h1 em { color: var(--gold-2, #e6c878); }
.rv-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: clamp(28px, 4vw, 64px); align-items: start; }
.rv-form__title, .rv-list__title { font-size: clamp(26px, 2.4vw, 34px); margin: 0 0 18px; }
.rv-rate { border: 0; padding: 0; margin: 0 0 6px; }
.rv-rate legend { font-size: 13px; letter-spacing: 0.08em; color: var(--ivory-2); margin-bottom: 10px; padding: 0; }
.rv-rate__stars { display: inline-flex; flex-direction: row-reverse; gap: 6px; }
.rv-rate__stars input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.rv-rate__stars label { cursor: pointer; line-height: 0; padding: 2px; }
.rv-rate__stars svg { width: 38px; height: 38px; fill: transparent; stroke: #d8b65e; stroke-width: 1.2; transition: fill 160ms ease, transform 160ms ease, filter 160ms ease; }
.rv-rate__stars input:checked ~ label svg,
.rv-rate__stars label:hover svg, .rv-rate__stars label:hover ~ label svg { fill: #e3c36f; filter: drop-shadow(0 0 8px rgba(232, 196, 104, 0.45)); }
.rv-rate__stars label:hover svg { transform: scale(1.08); }
.rv-rate__stars input:focus-visible + label { outline: 1px solid #f1dc98; outline-offset: 2px; }
.form label.rv-consent { display: flex; align-items: center; gap: 10px; letter-spacing: 0; font-size: 14px; }
.rv-consent input { width: 18px; height: 18px; accent-color: #d8b65e; margin: 0; }
.rv-stars { display: inline-flex; gap: 3px; vertical-align: -3px; }
.rv-stars svg { width: 17px; height: 17px; fill: rgba(216, 182, 94, 0.18); }
.rv-stars svg.on { fill: #e3c36f; }
.rv-summary { margin: 0 0 22px; color: var(--ivory-2); font-size: 15px; }
.rv-summary strong { color: var(--ivory); font-weight: 600; margin-left: 6px; }
.rv-card { border: 1px solid rgba(216, 182, 94, 0.22); background: linear-gradient(180deg, rgba(216, 182, 94, 0.05), transparent 60%), var(--ink-2); padding: 24px 26px; margin-bottom: 16px; }
.rv-card h3 { font-size: 21px; margin: 12px 0 8px; }
.rv-card p { margin: 0 0 14px; color: var(--ivory-2); line-height: 1.7; }
.rv-card footer { font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.rv-empty { color: var(--ivory-2); border: 1px dashed rgba(216, 182, 94, 0.3); padding: 26px; font-family: var(--display); font-size: 20px; line-height: 1.55; }
@media (max-width: 900px) {
  .rv-layout { grid-template-columns: 1fr; }
  .rv-rate__stars svg { width: 42px; height: 42px; }
}

/* ---------- Virtual fitting room ---------- */
.fitroom { padding-top: clamp(30px, 5vw, 70px); }
.fitroom__head { max-width: 760px; margin-bottom: clamp(26px, 3.5vw, 44px); }
.fitroom__head h2 em { color: var(--fr-tint); }
.fitroom__lead { color: var(--ivory-2); max-width: 62ch; margin: 14px 0 0; line-height: 1.7; }
.fitroom__grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr); gap: clamp(20px, 3vw, 44px); align-items: start; }
.fitroom__stage {
  position: sticky; top: calc(var(--nav-h, 72px) + 16px);
  aspect-ratio: 4 / 5; border-radius: 18px; overflow: hidden; isolation: isolate;
  background: radial-gradient(ellipse at 50% 30%, #17130f 0%, #060505 70%);
  border: 1px solid rgba(216, 182, 94, 0.22);
  box-shadow: 0 30px 80px -40px rgba(0, 0, 0, 0.9), inset 0 1px 0 rgba(255, 240, 210, 0.06);
}
.fitroom__canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; cursor: grab; touch-action: pan-y; outline: none; }
.fitroom__stage.is-dragging .fitroom__canvas { cursor: grabbing; }
.fitroom__canvas:focus-visible { box-shadow: inset 0 0 0 2px #f1dc98; }
.fitroom__labels { position: absolute; inset: 0; pointer-events: none; }
.fr-pin {
  position: absolute; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
  font-size: 11px; letter-spacing: 0.06em; color: #f4ecdd; padding: 5px 10px 5px 8px; border-radius: 999px;
  background: rgba(10, 9, 8, 0.72); border: 1px solid rgba(240, 216, 145, 0.28); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  transform: translate(10px, -50%); transition: opacity 200ms ease;
}
.fr-pin--l { transform: translate(calc(-100% - 10px), -50%); flex-direction: row-reverse; padding: 5px 8px 5px 10px; }
.fr-pin b { font-weight: 600; color: #f0d891; letter-spacing: 0.1em; text-transform: uppercase; font-size: 10px; }
.fr-pin i { width: 7px; height: 7px; border-radius: 50%; background: #5fcf86; box-shadow: 0 0 0 3px rgba(95, 207, 134, 0.18); flex: none; }
.fr-pin.is-tight i { background: #e0503f; box-shadow: 0 0 0 3px rgba(224, 80, 63, 0.2); }
.fr-pin.is-loose i { background: #4aa6e0; box-shadow: 0 0 0 3px rgba(74, 166, 224, 0.2); }
.fr-pin.is-back { opacity: 0.25; }
.fr-pin::before { content: ""; position: absolute; top: 50%; width: 10px; height: 1px; background: rgba(240, 216, 145, 0.5); left: -10px; }
.fr-pin--l::before { left: auto; right: -10px; }
.fitroom__badge { position: absolute; top: 16px; left: 16px; display: flex; align-items: baseline; gap: 10px; font-family: var(--display); color: #f0d891; pointer-events: none; }
.fitroom__badge b { font-size: 30px; font-weight: 500; line-height: 1; }
.fitroom__badge span { font-family: var(--body); font-size: 11px; letter-spacing: 0.18em; color: var(--ivory-2); }
.fitroom__badge span::after { content: " / 100"; opacity: 0.6; }
.fitroom__tools {
  position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); display: flex; align-items: center; gap: 4px;
  padding: 5px; border-radius: 999px; background: rgba(10, 9, 8, 0.7); border: 1px solid rgba(240, 216, 145, 0.2);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); max-width: calc(100% - 20px); overflow-x: auto; scrollbar-width: none;
}
.fitroom__tools::-webkit-scrollbar { display: none; }
.fitroom__tools button {
  border: 0; background: transparent; color: var(--ivory-2); font: 500 11px/1 var(--body); letter-spacing: 0.12em; text-transform: uppercase;
  padding: 9px 12px; border-radius: 999px; cursor: pointer; white-space: nowrap; transition: background-color 200ms ease, color 200ms ease;
}
.fitroom__tools button:hover { color: #fff; }
.fitroom__tools button[aria-pressed="true"] { background: linear-gradient(135deg, #f7e8b4, #d3b058); color: #17120a; }
.fitroom__sep { width: 1px; height: 18px; background: rgba(240, 216, 145, 0.25); margin: 0 4px; flex: none; }
.fitroom__legend { position: absolute; top: 18px; right: 16px; display: flex; align-items: center; gap: 6px; font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ivory-2); }
.fitroom__legend[hidden] { display: none; }
.fitroom__legend i { width: 38px; height: 6px; border-radius: 3px; background: linear-gradient(90deg, #d62f27, #f29b2e, #52cc78); }
.fitroom__legend i + span + i { background: linear-gradient(90deg, #52cc78, #36a8dc, #545ae6); }
.fitroom__hint { position: absolute; top: 20px; right: 16px; margin: 0; display: flex; align-items: center; gap: 6px; font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(244, 236, 221, 0.6); pointer-events: none; }
.fitroom__stage.is-fitmap .fitroom__hint { display: none; }
.fitroom__nogl { display: none; position: absolute; inset: auto 24px 50% 24px; text-align: center; color: var(--ivory-2); }
.fitroom__stage.is-nogl .fitroom__nogl { display: block; }
.fitroom__stage.is-nogl .fitroom__tools, .fitroom__stage.is-nogl .fitroom__hint { display: none; }

.fitroom__panel { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; min-width: 0; }
.fr-block { min-width: 0; }
.fr-block { border: 1px solid rgba(216, 182, 94, 0.2); background: linear-gradient(180deg, rgba(216, 182, 94, 0.045), transparent 60%), var(--ink-2); border-radius: 14px; padding: clamp(18px, 2vw, 26px); }
.fr-step { display: flex; align-items: center; gap: 12px; font-size: 22px; margin: 0 0 16px; }
.fr-step span { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font: 600 13px/1 var(--body); color: #17120a; background: linear-gradient(135deg, #f7e8b4, #d3b058); flex: none; }
.fr-seg { display: inline-flex; padding: 4px; border-radius: 999px; border: 1px solid var(--line-2); margin-bottom: 14px; }
.fr-seg button { border: 0; background: transparent; color: var(--ivory-2); font: 500 12px/1 var(--body); letter-spacing: 0.14em; text-transform: uppercase; padding: 10px 16px; border-radius: 999px; cursor: pointer; }
.fr-seg button[aria-checked="true"] { background: linear-gradient(135deg, #f7e8b4, #d3b058); color: #17120a; }
.fr-seg--small { margin: 4px 0 0; }
.fr-seg--small button { padding: 8px 12px; font-size: 11px; }
.fr-fields { display: grid; gap: 14px; }
.fr-field__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; font-size: 14px; color: var(--ivory); }
.fr-field__top em { display: block; font-style: normal; font-size: 12px; color: var(--muted); margin-top: 2px; line-height: 1.45; }
.fr-field__num { display: inline-flex; align-items: center; gap: 4px; flex: none; }
.fr-field__num input { width: 64px; padding: 6px 8px; text-align: right; background: var(--ink); color: var(--ivory); border: 1px solid var(--line-2); border-radius: 8px; font: 500 14px/1.2 var(--body); -moz-appearance: textfield; }
.fr-field__num input::-webkit-outer-spin-button, .fr-field__num input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.fr-field__num input:focus { outline: none; border-color: #d8b65e; }
.fr-field__num small { font-size: 12px; color: var(--muted); width: 20px; }
.fr-reset { border: 0; background: none; color: #d8b65e; cursor: pointer; font-size: 15px; padding: 2px 4px; }
.fr-range { -webkit-appearance: none; appearance: none; width: 100%; height: 22px; background: transparent; margin: 6px 0 0; cursor: pointer; }
.fr-range::-webkit-slider-runnable-track { height: 3px; border-radius: 3px; background: linear-gradient(90deg, rgba(216, 182, 94, 0.75), rgba(216, 182, 94, 0.18)); }
.fr-range::-moz-range-track { height: 3px; border-radius: 3px; background: rgba(216, 182, 94, 0.35); }
.fr-range::-webkit-slider-thumb { -webkit-appearance: none; width: 18px; height: 18px; border-radius: 50%; margin-top: -7.5px; background: linear-gradient(135deg, #f7e8b4, #c9a243); border: 2px solid #17120a; box-shadow: 0 0 0 1px rgba(240, 216, 145, 0.6), 0 4px 12px rgba(0, 0, 0, 0.5); }
.fr-range::-moz-range-thumb { width: 16px; height: 16px; border-radius: 50%; background: linear-gradient(135deg, #f7e8b4, #c9a243); border: 2px solid #17120a; }
.fr-range:focus-visible { outline: none; }
.fr-range:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 3px rgba(240, 216, 145, 0.5); }
.fr-hint { font-size: 12.5px; color: var(--muted); margin: 2px 0 0; line-height: 1.55; }
.fr-more { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 12px; }
.fr-more summary { cursor: pointer; font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: #e6c878; list-style: none; }
.fr-more summary::-webkit-details-marker { display: none; }
.fr-more summary::after { content: " +"; }
.fr-more[open] summary::after { content: " −"; }
.fr-more .fr-fields { margin-top: 14px; }
.fr-pieces { display: flex; gap: 10px; overflow-x: auto; padding: 2px 2px 10px; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: rgba(216, 182, 94, 0.4) transparent; }
.fr-piece { flex: 0 0 116px; scroll-snap-align: start; text-align: left; border: 1px solid var(--line-2); background: var(--ink); border-radius: 12px; padding: 6px 6px 10px; cursor: pointer; color: var(--ivory); transition: border-color 200ms ease, transform 200ms ease; }
.fr-piece:hover { transform: translateY(-2px); }
.fr-piece.is-on { border-color: #e3c36f; box-shadow: 0 0 0 1px #e3c36f, 0 10px 24px -14px rgba(232, 196, 104, 0.6); }
.fr-piece__img { display: block; aspect-ratio: 4 / 5; border-radius: 8px; overflow: hidden; background: #0b0a09; margin-bottom: 8px; }
.fr-piece__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fr-piece__name { display: block; font-size: 12px; line-height: 1.35; margin: 0 2px; }
.fr-piece__col { display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--muted); margin: 4px 2px 0; }
.fr-piece__col i { width: 9px; height: 9px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, 0.25); }
.fr-sizes { margin-top: 12px; }
.fr-sizes__label { font-size: 13px; color: var(--ivory-2); margin: 0 0 10px; display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.fr-rec { color: #e6c878; }
.fr-rec b { color: #f0d891; }
.fr-sizes__row { display: flex; flex-wrap: wrap; gap: 8px; }
.fr-size { position: relative; min-width: 48px; height: 44px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--line-2); background: var(--ink); color: var(--ivory); font: 500 14px/1 var(--body); cursor: pointer; transition: border-color 200ms ease, background-color 200ms ease; }
.fr-size.is-rec::after { content: ""; position: absolute; top: -4px; right: -4px; width: 10px; height: 10px; border-radius: 50%; background: #e3c36f; box-shadow: 0 0 0 3px var(--ink-2); }
.fr-size.is-on { background: linear-gradient(135deg, #f7e8b4, #d3b058); color: #17120a; border-color: #f1dc98; }
.fr-size.is-out { color: var(--muted); text-decoration: line-through; }
.fr-verdict { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }
.fr-ring { position: relative; width: 64px; height: 64px; flex: none; }
.fr-ring svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.fr-ring circle { fill: none; stroke: rgba(216, 182, 94, 0.15); stroke-width: 3.2; }
.fr-ring .fr-ring__val { stroke: url(#none); stroke: #e3c36f; stroke-linecap: round; transition: stroke-dasharray 600ms var(--ease-out, ease); }
.fr-ring span { position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--display); font-size: 22px; color: #f0d891; }
.fr-verdict__size { margin: 0; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.fr-verdict__text { margin: 4px 0 0; font-family: var(--display); font-size: clamp(22px, 2vw, 27px); line-height: 1.2; color: var(--ivory); }
.fr-scale { display: grid; grid-template-columns: 1fr 1fr 1fr; font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); margin: 0 0 6px calc(34% + 10px); max-width: 33%; }
.fr-scale span:nth-child(2) { text-align: center; }
.fr-scale span:nth-child(3) { text-align: right; }
.fr-zones { list-style: none; margin: 0; padding: 0; display: grid; gap: 11px; }
.fr-zone { display: grid; grid-template-columns: 34% 33% 1fr; align-items: center; gap: 10px; font-size: 13px; }
.fr-zone__name { color: var(--ivory); }
.fr-meter { position: relative; height: 6px; border-radius: 3px; background: linear-gradient(90deg, #8c2620 0%, #c47a25 25%, #3f9b5d 42%, #3f9b5d 58%, #2a7fa8 75%, #3b3fa8 100%); opacity: 0.85; }
.fr-meter i { position: absolute; top: 50%; width: 12px; height: 12px; border-radius: 50%; background: #fff7e4; border: 2px solid #17120a; transform: translate(-50%, -50%); box-shadow: 0 0 0 1px rgba(255, 247, 228, 0.6); transition: left 500ms var(--ease-out, ease); }
.fr-zone__val { color: var(--ivory-2); font-size: 12px; text-align: right; }
.fr-zone__val b { font-weight: 600; color: var(--ivory); margin-right: 4px; }
.fr-zone.is-tight .fr-zone__val b { color: #f08a7a; }
.fr-zone.is-loose .fr-zone__val b { color: #7fc3ec; }
.fr-zone.is-good .fr-zone__val b { color: #8fdca8; }
.fr-advice { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid var(--line); font-size: 13px; color: var(--ivory-2); line-height: 1.6; }
.fr-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.fr-actions .btn { flex: 1 1 200px; margin: 0; }
.fr-privacy { font-size: 12px; color: var(--muted); margin: 0; text-align: center; }
@media (max-width: 980px) {
  .fitroom__grid { grid-template-columns: 1fr; }
  .fitroom__stage { position: relative; top: 0; aspect-ratio: 4 / 5; max-height: 78svh; margin: 0 auto; width: 100%; }
  .fr-zone { grid-template-columns: 30% 30% 1fr; }
  .fr-scale { margin-left: calc(30% + 10px); max-width: 30%; }
}
@media (max-width: 560px) {
  .fitroom__stage { aspect-ratio: 3 / 4; border-radius: 14px; }
  .fr-pin { font-size: 10px; padding: 4px 8px 4px 6px; }
  .fr-pin b { font-size: 9px; }
  .fitroom__badge b { font-size: 24px; }
  .fr-zone { grid-template-columns: 1fr 1fr; }
  .fr-zone__val { grid-column: 1 / -1; text-align: left; margin-top: -4px; }
  .fr-scale { display: none; }
}
.fitroom__stage.is-loading::after {
  content: "Preparing your fitting room"; position: absolute; inset: 0; display: grid; place-items: center;
  font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(240, 216, 145, 0.75);
  background: linear-gradient(100deg, transparent 30%, rgba(240, 216, 145, 0.06) 50%, transparent 70%) 0 0 / 200% 100%;
  animation: fr-shimmer 1.6s linear infinite;
}
@keyframes fr-shimmer { to { background-position: -200% 0; } }
.fitroom__stage.is-loading .fitroom__tools, .fitroom__stage.is-loading .fitroom__hint { opacity: 0; }
