/* ==========================================================================
   Flairedrip — WooCommerce styles
   (WooCommerce's own general/layout CSS is switched off in inc/woocommerce.php)
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. COMMON: notices, stars, prices, forms, buttons, quantity
   -------------------------------------------------------------------------- */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message:focus, .woocommerce-info:focus, .woocommerce-error:focus, .woocommerce-notices-wrapper:focus { outline: 0; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
  position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 20px;
  list-style: none; margin: 0 0 26px !important; padding: 16px 20px !important;
  background: var(--fd-soft); border: 1px solid var(--fd-line); border-left: 3px solid var(--fd-text); color: var(--fd-text); font-size: 16px;
}
.woocommerce-error { border-left-color: var(--fd-save); flex-direction: column; align-items: flex-start; }
.woocommerce-error li { margin: 0; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { content: none; }
.woocommerce-message .button, .woocommerce-info .button, .woocommerce-message a.button, .woocommerce-info a.button {
  order: 2; margin: 0 !important; padding: 0 !important; background: none !important; color: var(--fd-text) !important; min-height: 0 !important;
  font-size: 13px !important; letter-spacing: .2em !important; text-transform: uppercase !important; text-decoration: underline !important; text-underline-offset: 4px;
}
.woocommerce-message .button::before, .woocommerce-message .button::after, .woocommerce-info .button::before, .woocommerce-info .button::after { content: none !important; }
.woocommerce-info a:not(.button), .woocommerce-message a:not(.button) { text-decoration: underline; }

/* Star ratings (own, no icon font) */
.star-rating { position: relative; display: inline-block; width: 5.6em; height: 1.1em; line-height: 1; font-size: 15px; letter-spacing: .12em; overflow: hidden; vertical-align: middle; font-family: Arial, sans-serif; }
.star-rating::before { content: "★★★★★"; position: absolute; top: 0; left: 0; color: var(--fd-line); }
.star-rating span { position: absolute; top: 0; left: 0; height: 100%; overflow: hidden; padding-top: 1.5em; }
.star-rating span::before { content: "★★★★★"; position: absolute; top: 0; left: 0; color: var(--fd-text); }
.star-rating strong, .star-rating .rating { display: none; }
p.stars { margin: 0 0 16px; }
p.stars span { display: inline-flex; gap: 4px; }
p.stars a { position: relative; display: inline-block; width: 1.3em; height: 1.3em; font-size: 22px; line-height: 1; text-indent: -999em; overflow: hidden; text-decoration: none; }
p.stars a::before { content: "★"; position: absolute; inset: 0; text-indent: 0; color: var(--fd-line); }
p.stars:hover a::before, p.stars.selected a::before { color: var(--fd-text); }
p.stars a:hover ~ a::before, p.stars.selected a.active ~ a::before { color: var(--fd-line); }

/* Prices */
.price { color: var(--fd-text); }
.price del { opacity: .6; margin-right: 6px; }
.price ins { text-decoration: none; background: none; }
.woocommerce-Price-amount { white-space: nowrap; }

/* Generic WooCommerce buttons */
.fd-theme .button, .fd-theme a.button, .fd-theme button.button, .fd-theme input.button, .fd-theme .wc-forward,
.fd-theme .woocommerce-button, .fd-theme .wc-block-components-button:not(.is-link) {
  display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 11px 22px; margin: 0;
  border: 1px solid var(--fd-text); border-radius: var(--fd-radius); background: transparent; color: var(--fd-text);
  font-family: var(--fd-body); font-size: 13px; font-weight: 700; letter-spacing: .25em; text-transform: uppercase; line-height: 1.4; text-decoration: none;
  cursor: pointer; box-shadow: none; transition: background .2s, color .2s, opacity .2s;
}
.fd-theme .button:hover, .fd-theme a.button:hover, .fd-theme button.button:hover { background: var(--fd-text); color: #fff; }
.fd-theme .button.alt, .fd-theme .checkout-button, .fd-theme #place_order, .fd-theme .single_add_to_cart_button,
.fd-theme .wc-block-components-button.contained, .fd-theme .wc-block-cart__submit-button, .fd-theme .wc-block-components-checkout-place-order-button {
  background: var(--fd-btn) !important; border-color: var(--fd-btn) !important; color: var(--fd-btn-text) !important; font-size: 14px; letter-spacing: .3em;
}
.fd-theme .button.alt:hover, .fd-theme .checkout-button:hover, .fd-theme #place_order:hover, .fd-theme .single_add_to_cart_button:hover { opacity: .88; }
.fd-theme .button:disabled, .fd-theme .button.disabled { opacity: .5; cursor: not-allowed; }
.fd-theme .button.loading { opacity: .6; pointer-events: none; }

/* Forms */
.woocommerce form .form-row { margin: 0 0 16px; padding: 0; }
.woocommerce form .form-row label { display: block; margin-bottom: 6px; font-size: 13px; letter-spacing: .15em; text-transform: uppercase; }
.woocommerce form .form-row label.checkbox, .woocommerce form .form-row label.woocommerce-form__label-for-checkbox { display: inline-flex; align-items: center; gap: 8px; text-transform: none; letter-spacing: .01em; font-size: 15px; }
.woocommerce form .form-row .required { color: var(--fd-save); text-decoration: none; border: 0; }
.woocommerce form .form-row .optional { color: #6f6f6f; font-size: 12px; text-transform: none; letter-spacing: 0; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select { width: 100%; }
.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; }
.woocommerce form .form-row-wide { clear: both; width: 100%; }
.woocommerce form .form-row.woocommerce-invalid input.input-text, .woocommerce form .form-row.woocommerce-invalid select { border-color: var(--fd-save); }
.woocommerce-input-wrapper { display: block; }
.select2-container .select2-selection--single { height: 44px; border: 1px solid var(--fd-line); border-radius: 0; }
.select2-container .select2-selection--single .select2-selection__rendered { line-height: 44px; padding-left: 12px; }
.select2-container .select2-selection--single .select2-selection__arrow { height: 42px; }
.select2-dropdown { border-color: var(--fd-line); border-radius: 0; }
.select2-results__option--highlighted[aria-selected], .select2-results__option--highlighted[data-selected] { background: var(--fd-text) !important; }
@media (max-width: 549px) { .woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100%; margin-right: 0; } }

/* Quantity with +/- (buttons added by impulse.js) */
.quantity { display: inline-flex; align-items: stretch; vertical-align: middle; }
.quantity .qty { width: 64px; min-height: 48px; height: 48px; text-align: center; padding: 0 4px !important; margin: 0 !important; -moz-appearance: textfield; border-color: var(--fd-line); }
.quantity .qty::-webkit-outer-spin-button, .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.quantity.fd-has-steps { border: 1px solid var(--fd-line); }
.quantity.fd-has-steps .qty { border: 0 !important; width: 44px; }
.fd-theme .fd-step { width: 40px; display: flex; align-items: center; justify-content: center; border: 0; background: none; color: var(--fd-text); padding: 0 !important; margin: 0 !important; min-height: 0 !important; }
.fd-step .fd-icon { width: 13px; height: 13px; }
.quantity.hidden { display: none; }

/* Tables */
.shop_table { width: 100%; border: 0; margin-bottom: 30px; }
.shop_table th { font-size: 13px; font-weight: 400; letter-spacing: .2em; text-transform: uppercase; }
.shop_table th, .shop_table td { padding: 16px 10px; border-bottom: 1px solid var(--fd-line); }
.shop_table tfoot th { text-align: left; }

/* --------------------------------------------------------------------------
   2. SHOP / CATEGORY PAGES
   -------------------------------------------------------------------------- */
.fd-shop { padding-top: 0; }
.fd-collection-header { text-align: center; padding: 50px 0 30px; }
.fd-collection-header__title { font-size: 36px; margin: 0; }
.fd-collection-header__desc { max-width: 680px; margin: 14px auto 0; font-size: 17px; }
.fd-collection-header__desc p:last-child { margin-bottom: 0; }
.fd-collection-header--image {
  position: relative; margin: 0 calc(-1 * var(--fd-gutter)) 30px; padding: 0 var(--fd-gutter); min-height: 340px;
  display: flex; align-items: center; justify-content: center; background-size: cover; background-position: center; color: #fff;
}
.fd-collection-header--image::before { content: ""; position: absolute; inset: 0; background: #000; opacity: .3; }
.fd-collection-header--image .fd-collection-header__inner { position: relative; }
.fd-collection-header--image .fd-collection-header__title, .fd-collection-header--image .fd-collection-header__desc { color: #fff; }
@media (min-width: 1500px) { .fd-collection-header--image { margin-left: calc((var(--fd-page) - 100vw) / 2 - var(--fd-gutter) + var(--fd-gutter)); margin-right: calc((var(--fd-page) - 100vw) / 2); } }

.fd-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 0; margin-bottom: 30px; border-top: 1px solid var(--fd-line); border-bottom: 1px solid var(--fd-line); }
.fd-toolbar__left, .fd-toolbar__right { display: flex; align-items: center; gap: 24px; }
.fd-theme .fd-toolbar__filter {
  display: inline-flex; align-items: center; gap: 10px; padding: 0 !important; margin: 0 !important; min-height: 0 !important; border: 0; background: none;
  font-size: 14px; font-weight: 400; letter-spacing: .25em; text-transform: uppercase; color: var(--fd-text); cursor: pointer;
}
.fd-toolbar__filter .fd-icon { width: 20px; height: 20px; }
.fd-toolbar__badge { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; background: var(--fd-text); color: #fff; font-size: 11px; letter-spacing: 0; }
.fd-toolbar__count { margin: 0; font-size: 15px; color: #6f6f6f; }
.fd-toolbar .woocommerce-ordering { margin: 0; }
.fd-theme .fd-toolbar .woocommerce-ordering select { min-height: 40px; border: 0; padding: 0 28px 0 0; font-size: 14px; letter-spacing: .15em; text-transform: uppercase; background-position: right 0 center; background-color: transparent; cursor: pointer; }
@media (max-width: 549px) {
  .fd-toolbar { flex-wrap: wrap; }
  .fd-toolbar__count { display: none; }
  .fd-theme .fd-toolbar .woocommerce-ordering select { font-size: 12px; letter-spacing: .1em; }
}

.fd-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: -14px 0 26px; }
.fd-chips__list ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.fd-chips__list li { margin: 0; }
.fd-chips__list a { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border: 1px solid var(--fd-line); font-size: 14px; text-decoration: none; }
.fd-chips__list a::after { content: "×"; font-size: 16px; line-height: 1; }
.fd-chips__list a:hover { border-color: var(--fd-text); }
.fd-chips__clear { font-size: 13px; letter-spacing: .15em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 3px; }

/* Grid (cards themselves are styled in style.css) */
.fd-theme ul.products { list-style: none; margin: 0; padding: 0; }
.fd-theme ul.products::before, .fd-theme ul.products::after { content: none; }
.fd-theme ul.products li.fd-cat-tile { list-style: none; margin: 0; }
.fd-theme ul.products:has(> .fd-cat-tile) { display: grid; grid-template-columns: repeat(var(--fd-cols, 3), minmax(0, 1fr)); gap: 22px; margin-bottom: 40px; }
.fd-theme ul.products.columns-4:has(> .fd-cat-tile) { --fd-cols: 4; }
@media (max-width: 849px) { .fd-theme ul.products:has(> .fd-cat-tile) { --fd-cols: 2; gap: 12px; } }
.woocommerce-no-products-found .woocommerce-info { justify-content: center; text-align: center; border-left-width: 1px; }

/* Filter drawer */
.fd-filters { flex: 1; overflow-y: auto; padding: 10px 30px 30px; }
.fd-filter { padding: 22px 0; border-bottom: 1px solid var(--fd-line); margin: 0; }
.fd-filter:last-child { border-bottom: 0; }
.fd-filter__title, .fd-filter .wp-block-heading, .fd-filter h2, .fd-filter h3 { margin: 0 0 16px; font-family: var(--fd-body); font-size: 14px; font-weight: 400; letter-spacing: .3em; text-transform: uppercase; }
.fd-filter ul { list-style: none; margin: 0; padding: 0; }
.fd-filter li { margin: 0 0 10px; }
.fd-filter li ul { margin: 10px 0 0 14px; }
.fd-filter li a { display: inline-flex; align-items: center; gap: 8px; font-size: 16px; text-decoration: none; color: var(--fd-text); }
.fd-filter li a:hover { text-decoration: underline; text-underline-offset: 3px; }
.fd-filter li.is-current > a, .fd-filter li.chosen > a, .fd-filter li.current-cat > a { font-weight: 600; }
.fd-filter .count { color: #6f6f6f; font-size: 13px; }
.fd-filter .woocommerce-widget-layered-nav-list__item a::before {
  content: ""; width: 16px; height: 16px; border: 1px solid var(--fd-text); flex: 0 0 16px;
}
.fd-filter .woocommerce-widget-layered-nav-list__item.chosen a::before {
  background: var(--fd-text) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 12px no-repeat;
}
.fd-filter .woocommerce-widget-layered-nav-dropdown, .fd-filter select { width: 100%; }
/* Price slider */
.fd-filter .price_slider_wrapper { padding-top: 6px; }
.fd-filter .price_slider { position: relative; height: 2px; margin: 10px 8px 22px; background: var(--fd-line); }
.fd-filter .ui-slider-range { position: absolute; top: 0; height: 100%; background: var(--fd-text); }
.fd-filter .ui-slider-handle { position: absolute; top: -8px; width: 18px; height: 18px; margin-left: -9px; border-radius: 50%; background: #fff; border: 2px solid var(--fd-text); cursor: ew-resize; outline: 0; }
.fd-filter .price_slider_amount { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; font-size: 15px; }
.fd-filter .price_slider_amount input { display: none; }
.fd-filter .price_slider_amount .button { order: 2; min-height: 38px; padding: 6px 16px; font-size: 12px; }
.fd-filter .price_slider_amount .clear { display: none; }
/* Block filter widgets */
.fd-filter .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox] { border-radius: 0; border-color: var(--fd-text); }
.fd-filter .wc-block-components-price-slider__range-input-progress { --range-color: var(--fd-text); }

/* --------------------------------------------------------------------------
   3. PRODUCT PAGE
   -------------------------------------------------------------------------- */
.fd-product-page { padding-top: 40px; }
.fd-product-page .fd-breadcrumbs { margin-bottom: 24px; }
.fd-pdp-main { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); column-gap: 60px; align-items: start; }
.fd-pdp-main > * { min-width: 0; }
.fd-pdp-main > .woocommerce-product-gallery { grid-column: 1; }
.fd-pdp-main > .summary { grid-column: 2; }
.fd-pdp-main > :not(.woocommerce-product-gallery):not(.summary) { grid-column: 1 / -1; }
.single-product div.product .onsale { display: none; }
@media (min-width: 850px) {
  .fd-pdp-main > .woocommerce-product-gallery { position: sticky; top: 110px; }
}
@media (max-width: 849px) {
  .fd-product-page { padding-top: 0; }
  .fd-product-page > .fd-wrap { padding-left: 0; padding-right: 0; }
  .fd-pdp-main { grid-template-columns: 1fr; }
  .fd-pdp-main > .woocommerce-product-gallery, .fd-pdp-main > .summary { grid-column: 1; }
  .fd-pdp-main > .summary, .single-product div.product > section, .fd-product-page .fd-breadcrumbs { padding-left: var(--fd-gutter); padding-right: var(--fd-gutter); }
}

/* Gallery */
.woocommerce-product-gallery { position: relative; margin: 0 0 30px; }
.woocommerce-product-gallery figure { margin: 0; }
.woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce-product-gallery__image img { display: block; width: 100%; height: auto; }
.woocommerce-product-gallery .flex-viewport { background: #fff; }
.woocommerce-product-gallery:has(.flex-control-thumbs) { display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 22px; align-items: start; }
.woocommerce-product-gallery:has(.flex-control-thumbs) .flex-viewport { grid-column: 2; grid-row: 1; }
.woocommerce-product-gallery .flex-control-thumbs { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; gap: 14px; list-style: none; margin: 0; padding: 0; max-height: 640px; overflow-y: auto; scrollbar-width: none; }
.woocommerce-product-gallery .flex-control-thumbs::-webkit-scrollbar { display: none; }
.woocommerce-product-gallery .flex-control-thumbs li { margin: 0; flex: 0 0 auto; }
.woocommerce-product-gallery .flex-control-thumbs img { display: block; width: 100%; height: auto; cursor: pointer; opacity: 1; padding: 3px; border: 2px solid transparent; transition: border-color .2s; background: #fff; }
.woocommerce-product-gallery .flex-control-thumbs img.flex-active, .woocommerce-product-gallery .flex-control-thumbs img:hover { border-color: var(--fd-text); }
.woocommerce-product-gallery__trigger {
  position: absolute; top: 14px; right: 14px; z-index: 5; width: 40px; height: 40px; border-radius: 50%;
  background: #fff; box-shadow: 0 0 0 1px var(--fd-line); text-indent: -9999px; overflow: hidden;
}
.woocommerce-product-gallery__trigger::before { content: ""; position: absolute; left: 12px; top: 11px; width: 12px; height: 12px; border: 1.5px solid var(--fd-text); border-radius: 50%; }
.woocommerce-product-gallery__trigger::after { content: ""; position: absolute; left: 24px; top: 23px; width: 6px; height: 1.5px; background: var(--fd-text); transform: rotate(45deg); }
.woocommerce-product-gallery__trigger span { display: none; }
@media (max-width: 849px) {
  .woocommerce-product-gallery { margin-bottom: 20px; }
  .woocommerce-product-gallery:has(.flex-control-thumbs) { display: block; }
  .woocommerce-product-gallery .flex-control-thumbs { flex-direction: row; overflow-x: auto; max-height: none; padding: 10px var(--fd-gutter) 0; gap: 8px; }
  .woocommerce-product-gallery .flex-control-thumbs li { width: 64px; }
}

/* Summary */
.single-product .summary { padding-top: 6px; }
.fd-rating { display: inline-flex; align-items: center; gap: 7px; margin: 0 0 10px; font-size: 15px; color: var(--fd-text) !important; text-decoration: none; }
.fd-rating__star { color: var(--fd-star, #1aa772); font-size: 19px; line-height: 1; font-family: Arial, sans-serif; }
.fd-rating__text strong { font-weight: 600; }
.fd-rating:hover .fd-rating__text { text-decoration: underline; text-underline-offset: 3px; }
.fd-theme.single-product .summary .product_title { font-size: 30.6px; line-height: 1.15; margin: 0 0 20px; }
.fd-title-line.single-product .summary .product_title { padding-bottom: 22px; margin-bottom: 22px; border-bottom: 1px solid var(--fd-line); }
.single-product .summary > .price { font-size: 20px; margin: 0 0 6px; }
.single-product .summary > .price del { margin-right: 12px; }
.single-product .summary .fd-save { font-size: 18px; margin-left: 10px; }
.single-product .summary .woocommerce-product-details__short-description { font-size: 16px; margin-bottom: 20px; }
.single-product .summary .stock { font-size: 15px; }
.single-product .summary .stock.out-of-stock { color: var(--fd-save); font-weight: 400; }
.fd-has-stock-line .summary .stock.in-stock, .fd-has-stock-line .summary .stock.available-on-backorder { display: none; }
.fd-tax-note { font-size: 15px; color: #6f6f6f; margin: 4px 0 24px; }
.fd-tax-note:empty { display: none; }
@media (max-width: 849px) {
  .fd-theme.single-product .summary .product_title { font-size: 26.3px; }
  .fd-title-line.single-product .summary .product_title { padding-bottom: 18px; margin-bottom: 18px; }
  .single-product .summary > .price { font-size: 20px; }
  .single-product .summary .fd-save { font-size: 16.6px; }
}

/* Variations + size buttons */
.single-product table.variations { border: 0; margin: 0 0 6px; }
.single-product table.variations tbody, .single-product table.variations tr { display: block; }
.single-product table.variations tr { margin-bottom: 22px; }
.single-product table.variations td, .single-product table.variations th { display: block; padding: 0; border: 0; line-height: 1.4; text-align: left; }
.single-product table.variations .label label, .single-product table.variations th label {
  display: block; margin-bottom: 10px; font-size: 14.4px; font-weight: 300; letter-spacing: .3em; text-transform: uppercase; color: var(--fd-text);
}
.single-product table.variations { margin-top: 24px; }
@media (max-width: 849px) { .single-product table.variations .label label, .single-product table.variations th label { font-size: 13.2px; } }
.single-product table.variations select { min-width: 220px; }
.reset_variations[style*="hidden"] { display: none !important; }
.single-product .single_variation_wrap .woocommerce-variation:empty, .single-product .woocommerce-variation.single_variation[style*="none"] { display: none !important; }
.single-product table.variations tr:last-child { margin-bottom: 8px; }
.reset_variations { display: inline-block; margin-top: 10px; font-size: 13px; letter-spacing: .2em; text-transform: uppercase; color: #6f6f6f; }
.fd-swatches { display: flex; flex-wrap: wrap; gap: 8px; padding: 1px; }
.fd-swatches { gap: 8px; }
.fd-theme .fd-swatch {
  min-width: 41px; height: 39px; padding: 0 15px !important; border: 0; border-radius: 0; box-shadow: 0 0 0 1px var(--fd-line) !important; background: #fff; color: var(--fd-text);
  font-size: 18px; font-weight: 400; cursor: pointer; transition: box-shadow .15s;
}
@media (max-width: 849px) { .fd-theme .fd-swatch { min-width: 40px; height: 37px; font-size: 16.6px; padding: 0 14px !important; } }
.fd-theme .fd-swatch:hover { box-shadow: 0 0 0 1px var(--fd-text) !important; }
.fd-theme .fd-swatch.is-selected { box-shadow: 0 0 0 2px var(--fd-text) !important; }
.fd-theme .fd-swatch.is-disabled { color: #b8b8b8; background-image: linear-gradient(to top left, transparent calc(50% - .5px), var(--fd-line), transparent calc(50% + .5px)); }
.fd-swatch-select { position: absolute !important; opacity: 0 !important; pointer-events: none !important; width: 1px !important; height: 1px !important; }

/* Sales points */
.fd-sales-points { list-style: none; margin: 8px 0 24px !important; padding: 0; display: grid; gap: 8px; }
.fd-sales-points li { display: flex; align-items: center; gap: 12px; margin: 0 !important; font-size: 18px; }
.fd-sales-points .fd-icon { width: 25px; height: 25px; }
.fd-dot { position: relative; width: 9px; height: 9px; border-radius: 50%; background: var(--fd-ok); margin: 0 6.5px; flex: 0 0 9px; }
.fd-dot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: inherit; animation: fdPulse 2s linear infinite; }
.fd-dot--low { background: #e8a33a; }
@keyframes fdPulse { 0% { transform: scale(1); opacity: .6; } 70%, 100% { transform: scale(2.6); opacity: 0; } }
@media (max-width: 849px) { .fd-sales-points li { font-size: 16.6px; } }

/* Add to cart */
.single-product form.cart { margin: 0 0 10px; }
.single-product form.cart:not(.variations_form):not(.grouped_form) { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; }
.single-product form.cart .fd-sales-points { flex: 1 1 100%; width: 100%; }
.single-product form.cart .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 12px; width: 100%; }
.single-product form.cart .single_add_to_cart_button { flex: 1 1 100%; min-height: 46px; }
.single-product .woocommerce-variation-price { margin-bottom: 10px; }
.single-product .woocommerce-variation-price .price { font-size: 20px; }
.single-product .woocommerce-variation-availability { display: none; }
.single-product .woocommerce-variation-description { font-size: 15px; margin-bottom: 10px; }
.single-product form.grouped_form table { margin-bottom: 16px; }

/* Quantity hidden (Impulse style) — still submits 1 */
.fd-no-qty .summary form.cart .quantity { display: none !important; }
.fd-theme.single-product form.cart .single_add_to_cart_button { min-height: 46px; font-size: 14px !important; letter-spacing: .3em !important; }
@media (max-width: 849px) { .fd-theme.single-product form.cart .single_add_to_cart_button { font-size: 13px !important; } }

/* Secure checkout badges under Add to cart */
.fd-pdp-trust { text-align: center; margin: 14px 0 6px; }
.fd-pdp-trust__title { margin: 0 0 10px; font-size: 18px; }
@media (max-width: 849px) { .fd-pdp-trust__title { font-size: 16.6px; } }
.fd-pay--pdp { justify-content: center; gap: 8px; margin: 0 !important; }
.fd-pay--pdp .fd-pay__icon { width: 38px; height: 24px; }

/* Description + collapsibles */
.fd-pdp-desc { margin-top: 26px; font-size: 15.3px; line-height: 1.5; }
.fd-pdp-desc > h2:first-child { display: none; }
.fd-collapsibles { margin-top: 30px; border: 1px solid var(--fd-line); }
.fd-collapsibles details { border-top: 1px solid var(--fd-line); }
.fd-collapsibles details:first-child { border-top: 0; }
.fd-collapsibles summary {
  position: relative; list-style: none; cursor: pointer; padding: 15px 50px; display: block; text-align: center;
  font-size: 14.4px; font-weight: 400; letter-spacing: .3em; text-transform: uppercase; color: var(--fd-text);
}
.fd-collapsibles summary::-webkit-details-marker { display: none; }
.fd-collapsibles summary .fd-icon { position: absolute; right: 18px; top: 50%; width: 14px; height: 14px; margin-top: -7px; stroke-width: 1.3; transition: transform .3s var(--fd-ease); }
.fd-collapsibles details[open] summary .fd-icon { transform: rotate(180deg); }
.fd-collapsibles details[open] summary { padding-bottom: 10px; }
.fd-collapsibles__body { padding: 0 20px 20px; font-size: 16.6px; line-height: 1.5; }
.fd-collapsibles__body p { margin: 0 0 1.2em; }
.fd-collapsibles__body p:last-child { margin-bottom: 0; }
.fd-collapsibles__body a { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--fd-line); }
.fd-collapsibles__body > h2:first-child { display: none; }
@media (max-width: 849px) {
  .fd-collapsibles summary { padding: 15px 40px; font-size: 13.2px; letter-spacing: .25em; }
  .fd-collapsibles summary .fd-icon { right: 14px; }
  .fd-collapsibles__body { padding: 0 16px 18px; font-size: 16.6px; }
}
.fd-collapsibles__body table.shop_attributes { margin: 0; }
.fd-collapsibles__body table.shop_attributes th, .fd-collapsibles__body table.shop_attributes td { font-size: 15px; padding: 10px 0; }
.fd-collapsibles__body table.shop_attributes th { width: 40%; font-weight: 600; text-transform: none; letter-spacing: 0; }
.fd-collapsibles__body table.shop_attributes td p { margin: 0; }
.single-product .woocommerce-tabs { display: none; }

/* Reviews */
#reviews .woocommerce-Reviews-title { font-size: 18px; margin-bottom: 20px; }
#reviews ol.commentlist { list-style: none; margin: 0 0 30px; padding: 0; }
#reviews ol.commentlist li { margin: 0 0 20px; padding: 0 0 20px; border-bottom: 1px solid var(--fd-line); }
#reviews ol.commentlist li .comment_container { display: flex; gap: 14px; }
#reviews ol.commentlist li img.avatar { width: 44px; height: 44px; border-radius: 50%; }
#reviews ol.commentlist li .comment-text { flex: 1; }
#reviews ol.commentlist li .meta { font-size: 14px; color: #6f6f6f; margin: 6px 0; }
#reviews ol.commentlist li .meta strong { color: var(--fd-text); }
#reviews .comment-reply-title { display: block; font-family: var(--fd-head); font-size: 18px; text-transform: uppercase; margin-bottom: 14px; }
#review_form .comment-form-rating label, #review_form .comment-form label { display: block; font-size: 13px; letter-spacing: .15em; text-transform: uppercase; margin-bottom: 6px; }
#review_form input[type="text"], #review_form input[type="email"], #review_form textarea { width: 100%; }
#review_form .comment-form-cookies-consent { display: flex; align-items: flex-start; gap: 8px; }
#review_form .comment-form-cookies-consent label { display: inline; text-transform: none; letter-spacing: 0; font-size: 14px; }
#review_form .form-submit input { background: var(--fd-btn); color: var(--fd-btn-text); border: 0; min-height: 46px; padding: 0 22px; text-transform: uppercase; letter-spacing: .25em; font-weight: 700; font-size: 13px; cursor: pointer; }

/* Related / upsells */
.single-product .related, .single-product .up-sells { margin-top: 70px; }
.single-product .related > h2, .single-product .up-sells > h2 { text-align: center; font-size: 30px; margin: 0 0 36px; }
@media (max-width: 849px) { .single-product .related > h2, .single-product .up-sells > h2 { font-size: 24px; } .single-product .related { margin-top: 50px; } }

/* Mobile sticky add to cart */
.fd-sticky-atc {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; background: #fff; border-top: 1px solid var(--fd-line);
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 12px;
  transform: translateY(110%); transition: transform .35s var(--fd-ease);
}
.fd-sticky-atc.is-visible { transform: none; }
.fd-sticky-atc__info { flex: 1; min-width: 0; }
.fd-sticky-atc__title { font-family: var(--fd-head); font-size: 14px; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fd-sticky-atc__price { font-size: 14px; }
.fd-sticky-atc__price .fd-save { display: none; }
.fd-sticky-atc .fd-btn { min-height: 42px; padding: 8px 16px !important; font-size: 12px !important; letter-spacing: .2em !important; }
@media (min-width: 850px) { .fd-sticky-atc { display: none; } }

/* Photoswipe (lightbox) */
.pswp__bg { background: #fff !important; }
.pswp__button { filter: invert(1); }
.pswp__counter, .pswp__caption__center { color: var(--fd-text); }

/* --------------------------------------------------------------------------
   4. CART PAGE (classic)
   -------------------------------------------------------------------------- */
.fd-wc-page { max-width: 1200px; margin: 0 auto; }
.fd-wc-content { font-size: 16px; }
.woocommerce-cart-form { margin-bottom: 40px; }
.woocommerce-cart-form .shop_table thead th { padding-top: 0; }
.woocommerce-cart-form .product-remove { width: 30px; }
.woocommerce-cart-form a.remove { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; font-size: 20px; line-height: 1; text-decoration: none; color: #6f6f6f !important; border-radius: 50%; }
.woocommerce-cart-form a.remove:hover { background: var(--fd-text); color: #fff !important; }
.woocommerce-cart-form .product-thumbnail { width: 110px; }
.woocommerce-cart-form .product-thumbnail img { width: 90px; height: auto; display: block; }
.woocommerce-cart-form .product-name a { font-size: 15px; letter-spacing: .15em; text-transform: uppercase; text-decoration: none; }
.woocommerce-cart-form .product-name .variation { font-size: 14px; color: #6f6f6f; margin: 6px 0 0; }
.woocommerce-cart-form .product-name .variation dt, .woocommerce-cart-form .product-name .variation dd { display: inline; margin: 0; font-weight: 300; }
.woocommerce-cart-form .product-name .variation dd p { display: inline; margin: 0; }
.woocommerce-cart-form td.actions { padding-top: 22px; }
.woocommerce-cart-form .coupon { display: inline-flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.woocommerce-cart-form .coupon label { display: none; }
.woocommerce-cart-form .coupon .input-text { width: 200px; min-height: 46px; margin: 0; }
.woocommerce-cart-form button[name="update_cart"] { float: right; }
.cart-collaterals { display: flex; justify-content: flex-end; }
.cart_totals { width: 100%; max-width: 440px; padding: 30px; border: 1px solid var(--fd-line); }
.cart_totals h2 { font-size: 20px; margin: 0 0 16px; }
.cart_totals table { margin: 0 0 20px; }
.cart_totals th { width: 40%; }
.cart_totals .order-total th, .cart_totals .order-total td { font-size: 18px; font-weight: 600; border-bottom: 0; }
.cart_totals .woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; }
.wc-proceed-to-checkout .checkout-button { width: 100%; }
.fd-btn-angled .wc-proceed-to-checkout .checkout-button { width: calc(100% - 20px); }
.cart-empty.woocommerce-info { justify-content: center; border-left-width: 1px; font-size: 18px; }
.return-to-shop { text-align: center; margin-top: 20px; }
@media (max-width: 549px) {
  .fd-theme .button.alt.checkout-button, .fd-theme .button.alt#place_order, .fd-theme #place_order, .fd-theme .button.alt.single_add_to_cart_button, .fd-theme .single_add_to_cart_button.button { letter-spacing: .16em !important; font-size: 13px !important; padding-left: 12px !important; padding-right: 12px !important; white-space: nowrap; }
}
@media (max-width: 849px) {
  .shop_table_responsive thead { display: none; }
  .shop_table_responsive tbody tr { display: grid; grid-template-columns: 80px 1fr; gap: 4px 16px; padding: 18px 0; border-bottom: 1px solid var(--fd-line); position: relative; }
  .shop_table_responsive tbody td { display: block; padding: 0; border: 0; text-align: left !important; }
  .shop_table_responsive tbody td::before { content: none; }
  .woocommerce-cart-form .product-thumbnail { grid-row: 1 / span 4; width: auto; }
  .woocommerce-cart-form .product-thumbnail img { width: 80px; }
  .woocommerce-cart-form .product-remove { position: absolute; right: 0; top: 14px; width: auto; }
  .woocommerce-cart-form .product-name { padding-right: 30px; }
  .woocommerce-cart-form .product-price { display: none; }
  .woocommerce-cart-form td.actions { grid-column: 1 / -1; }
  .woocommerce-cart-form .coupon { display: flex; width: 100%; margin-bottom: 12px; }
  .woocommerce-cart-form .coupon .input-text { flex: 1; width: auto; }
  .woocommerce-cart-form button[name="update_cart"] { float: none; width: 100%; }
  .cart_totals { max-width: none; padding: 22px; }
  .cart_totals .shop_table_responsive tr { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; grid-template-columns: none; padding: 12px 0; border-bottom: 1px solid var(--fd-line); }
  .cart_totals .shop_table_responsive tr:last-child { border-bottom: 0; }
  .cart_totals .shop_table_responsive th, .cart_totals .shop_table_responsive td { display: block; padding: 0; border: 0; width: auto; }
  .cart_totals .shop_table_responsive td { text-align: right !important; }
  .cart_totals .shop_table_responsive td::before { content: none; }
}

/* --------------------------------------------------------------------------
   5. CHECKOUT (classic)
   -------------------------------------------------------------------------- */
form.checkout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); column-gap: 60px; align-items: start; }
form.checkout { grid-template-rows: auto 1fr; }
form.checkout > * { grid-column: 1; }
form.checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; }
form.checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0 0 18px; font-size: 20px; align-self: end; }
form.checkout #order_review { grid-column: 2; grid-row: 2; align-self: start; padding: 30px; background: var(--fd-soft); border: 1px solid var(--fd-line); position: sticky; top: 110px; }
form.checkout .col2-set .col-1, form.checkout .col2-set .col-2 { width: 100%; float: none; }
form.checkout h3 { font-size: 20px; margin: 0 0 18px; }
form.checkout .woocommerce-additional-fields { margin-top: 20px; }
#order_review .shop_table { background: transparent; }
#order_review .shop_table td, #order_review .shop_table th { padding: 12px 0; }
#order_review .order-total th, #order_review .order-total td { font-size: 18px; font-weight: 600; }
#payment { margin-top: 20px; }
#payment .wc_payment_methods { list-style: none; margin: 0 0 20px; padding: 0; border-top: 1px solid var(--fd-line); }
#payment .wc_payment_method { padding: 14px 0; border-bottom: 1px solid var(--fd-line); margin: 0; }
#payment .wc_payment_method > label { display: inline; font-size: 16px; text-transform: none; letter-spacing: 0; }
#payment .wc_payment_method img { max-height: 24px; width: auto; margin-left: 6px; vertical-align: middle; }
#payment .payment_box { margin-top: 10px; padding: 14px; background: #fff; font-size: 15px; }
#payment .payment_box p:last-child { margin: 0; }
#payment .woocommerce-privacy-policy-text { font-size: 13px; color: #6f6f6f; }
#payment #place_order { width: 100%; min-height: 52px; }
.fd-btn-angled #payment #place_order { width: calc(100% - 20px); }
.woocommerce-form-coupon-toggle .woocommerce-info, .woocommerce-form-login-toggle .woocommerce-info { border-left-width: 1px; }
form.checkout_coupon, form.woocommerce-form-login { padding: 20px; border: 1px solid var(--fd-line); margin-bottom: 26px; }
@media (max-width: 849px) {
  form.checkout { grid-template-columns: 1fr; grid-template-rows: none; }
  form.checkout #customer_details, form.checkout #order_review_heading, form.checkout #order_review { grid-column: 1; grid-row: auto; position: static; }
  form.checkout #order_review { padding: 20px; }
}

/* Order received */
.woocommerce-order { max-width: 860px; margin: 0 auto; }
.woocommerce-thankyou-order-received { font-family: var(--fd-head); font-size: 26px; text-transform: uppercase; text-align: center; margin-bottom: 30px; }
ul.woocommerce-order-overview { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; list-style: none; margin: 0 0 40px; padding: 20px; border: 1px solid var(--fd-line); }
ul.woocommerce-order-overview li { margin: 0; font-size: 13px; letter-spacing: .15em; text-transform: uppercase; }
ul.woocommerce-order-overview li strong { display: block; margin-top: 6px; font-size: 16px; letter-spacing: 0; text-transform: none; }
.woocommerce-customer-details address { padding: 20px; border: 1px solid var(--fd-line); font-style: normal; line-height: 1.7; }
.woocommerce-columns--addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
@media (max-width: 549px) { .woocommerce-columns--addresses { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   6. MY ACCOUNT
   -------------------------------------------------------------------------- */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 50px; align-items: start; }
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-account:not(.logged-in) .woocommerce { display: block; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--fd-line); }
.woocommerce-MyAccount-navigation li { margin: 0; border-bottom: 1px solid var(--fd-line); }
.woocommerce-MyAccount-navigation a { display: block; padding: 14px 0; font-size: 14px; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; }
.woocommerce-MyAccount-navigation li.is-active a { font-weight: 600; }
.woocommerce-MyAccount-content { font-size: 16px; }
.woocommerce-MyAccount-content > p:first-child { margin-top: 0; }
.woocommerce-MyAccount-content mark { background: none; font-weight: 600; color: inherit; }
.woocommerce-Addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.woocommerce-Address address { font-style: normal; line-height: 1.7; }
.woocommerce-Address-title { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.woocommerce-Address-title h2 { font-size: 18px; }
.woocommerce-orders-table .button { min-height: 36px; padding: 6px 12px; font-size: 11px; margin: 2px; }
#customer_login { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; max-width: 980px; margin: 0 auto; }
#customer_login .u-column1, #customer_login .u-column2 { width: auto; float: none; }
#customer_login h2 { font-size: 22px; margin-bottom: 20px; }
.woocommerce-form-login .button, .woocommerce-form-register .button { width: 100%; margin-top: 6px; }
.password-input { position: relative; display: block; }
.password-input input { padding-right: 46px !important; }
.fd-theme .show-password-input { position: absolute; right: 0; top: 0; width: 44px; height: 100%; min-height: 0 !important; margin: 0 !important; padding: 0 !important; border: 0; background: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.4'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / 18px no-repeat; cursor: pointer; }
.fd-theme .show-password-input.display-password { opacity: .5; }
.woocommerce-form-login__rememberme { display: flex !important; align-items: center; gap: 8px; margin: 6px 0 14px !important; text-transform: none !important; letter-spacing: 0 !important; font-size: 15px !important; }
.woocommerce-LostPassword { font-size: 14px; }
.woocommerce-ResetPassword, .woocommerce-account .woocommerce > .woocommerce-form-login:only-child { max-width: 480px; margin: 0 auto; }
@media (max-width: 849px) {
  .woocommerce-account .woocommerce { grid-template-columns: 1fr; gap: 30px; }
  .woocommerce-Addresses, #customer_login { grid-template-columns: 1fr; gap: 40px; }
  .woocommerce-orders-table.shop_table_responsive tbody tr { display: block; padding: 14px 0; }
  .woocommerce-orders-table.shop_table_responsive tbody td { display: flex; justify-content: space-between; gap: 10px; padding: 4px 0; }
  .woocommerce-orders-table.shop_table_responsive tbody td::before { content: attr(data-title); font-size: 12px; letter-spacing: .15em; text-transform: uppercase; color: #6f6f6f; }
}

/* --------------------------------------------------------------------------
   7. BLOCK CART & CHECKOUT (WooCommerce blocks)
   -------------------------------------------------------------------------- */
.fd-theme .wp-block-woocommerce-cart, .fd-theme .wp-block-woocommerce-checkout { font-family: var(--fd-body); }
.fd-theme .wc-block-components-title, .fd-theme .wc-block-cart__totals-title, .fd-theme .wc-block-components-checkout-step__title {
  font-family: var(--fd-head) !important; font-weight: 400 !important; text-transform: uppercase !important; letter-spacing: 0 !important;
}
.fd-theme .wc-block-components-product-name { font-size: 15px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; }
.fd-theme .wc-block-components-text-input input, .fd-theme .wc-block-components-combobox .wc-block-components-combobox-control input,
.fd-theme .wc-blocks-components-select .wc-blocks-components-select__select, .fd-theme .wc-block-components-textarea { border-radius: 0 !important; border-color: var(--fd-line) !important; }
.fd-theme .wc-block-components-text-input.is-active input, .fd-theme .wc-block-components-text-input input:focus { border-color: var(--fd-text) !important; box-shadow: none !important; }
.fd-theme .wc-block-components-button:not(.is-link) { border-radius: var(--fd-radius) !important; min-height: 50px; }
.fd-theme .wc-block-components-radio-control__input:checked { border-color: var(--fd-text); }
.fd-theme .wc-block-components-radio-control__input:checked::before { background: var(--fd-text); border-radius: 50%; }
.fd-theme .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox] { border-radius: 0; }
.fd-theme .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked { background: var(--fd-text); border-color: var(--fd-text); }
.fd-theme .wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: #fff; }
.fd-theme .wc-block-components-quantity-selector { border-radius: 0; }
.fd-theme .wc-block-components-quantity-selector::after { border-radius: 0 !important; border-color: var(--fd-line) !important; }
.fd-theme .wc-block-components-sale-badge { border-radius: 0; border-color: var(--fd-save); color: var(--fd-save); }
.fd-theme .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.fd-theme .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-weight: 600; }
.fd-theme .wc-block-cart .wc-block-cart__submit-container { margin-top: 10px; }
.fd-theme .wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title { font-family: var(--fd-head); text-transform: uppercase; }

/* --------------------------------------------------------------------------
   8. FOCUSED CHECKOUT (Shopify / Impulse style)
   body.fd-checkout         → minimal header/footer, Shopify form styling
   body.fd-checkout--split  → white form left, grey summary right (desktop)
   -------------------------------------------------------------------------- */
body.fd-checkout { --fd-co-max: 1150px; --fd-co-gap-l: 56px; --fd-co-gap-r: 46px; --fd-co-border: #dedede; --fd-co-muted: #707070; font-size: 15px; letter-spacing: 0; }
body.fd-checkout #wrapper { min-height: 100vh; display: flex; flex-direction: column; }
body.fd-checkout .fd-co-main { flex: 1; }

/* Header */
.fd-co-header { border-bottom: 1px solid var(--fd-co-border); background: #fff; }
.fd-co-header__inner { max-width: var(--fd-co-max); margin: 0 auto; padding: 18px var(--fd-gutter); display: flex; align-items: center; justify-content: space-between; min-height: 84px; }
.fd-co-header .fd-logo { text-align: left; }
.fd-co-header .fd-logo__img { max-height: 48px !important; max-width: 200px !important; margin: 0; }
.fd-co-header .fd-logo__text { font-size: 26px; }
.fd-co-header__cart { display: inline-flex; color: var(--fd-co-accent) !important; }
.fd-co-header__cart .fd-icon { width: 26px; height: 26px; }

/* Footer */
.fd-co-footer { border-top: 1px solid var(--fd-co-border); }
.fd-co-footer__inner { max-width: var(--fd-co-max); margin: 0 auto; padding: 18px var(--fd-gutter); display: flex; flex-wrap: wrap; gap: 6px 22px; }
.fd-co-footer a { font-size: 13px; color: var(--fd-co-accent) !important; text-decoration: underline; text-underline-offset: 2px; }
body.fd-checkout--split .fd-co-footer { background: #fff; }

/* Page container */
body.fd-checkout .fd-co-page { padding: 0; }
body.fd-checkout .fd-co-page > .fd-wrap { max-width: var(--fd-co-max); padding: 0 var(--fd-gutter); }
body.fd-checkout .fd-wc-page { max-width: none; }
body.fd-checkout:not(.fd-checkout--split) .fd-co-page { padding: 40px 0 70px; }

/* Typography: sentence case, bold headings like Shopify */
body.fd-checkout h2, body.fd-checkout h3,
body.fd-checkout .wc-block-components-title.wc-block-components-title,
body.fd-checkout .wc-block-components-checkout-step__title,
body.fd-checkout #order_review_heading {
  font-family: var(--fd-body) !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important;
  font-size: 21px !important; line-height: 1.3 !important; color: var(--fd-text);
}
body.fd-checkout a:not(.fd-logo__link):not(.button) { color: var(--fd-co-accent); }
body.fd-checkout .wc-block-components-order-summary-item h3,
body.fd-checkout .wc-block-components-order-summary-item .wc-block-components-product-name {
  font-family: var(--fd-body) !important; font-size: 14px !important; font-weight: 500 !important; line-height: 1.4 !important; margin: 0 0 2px !important; text-transform: none !important; letter-spacing: 0 !important;
}
body.fd-checkout .wc-block-components-product-name, body.fd-checkout .fd-co-item__name { font-size: 14px; letter-spacing: 0; text-transform: none; font-weight: 400; color: var(--fd-text) !important; }

/* Inputs */
body.fd-checkout .wc-block-components-text-input input,
body.fd-checkout .wc-block-components-combobox .wc-block-components-combobox-control input,
body.fd-checkout .wc-blocks-components-select .wc-blocks-components-select__select,
body.fd-checkout .wc-block-components-textarea,
body.fd-checkout .woocommerce form .form-row input.input-text,
body.fd-checkout .woocommerce form .form-row textarea,
body.fd-checkout .woocommerce form .form-row select,
body.fd-checkout .select2-container .select2-selection--single,
body.fd-checkout form.checkout_coupon .input-text {
  border: 1px solid var(--fd-co-border) !important; border-radius: 5px !important; background-color: #fff !important; box-shadow: none !important; font-size: 15px !important; letter-spacing: 0;
}
body.fd-checkout .woocommerce form .form-row input.input-text, body.fd-checkout .woocommerce form .form-row select, body.fd-checkout .select2-container .select2-selection--single, body.fd-checkout form.checkout_coupon .input-text { min-height: 50px; height: 50px; padding: 0 13px; }
body.fd-checkout .select2-container .select2-selection--single .select2-selection__rendered { line-height: 48px; }
body.fd-checkout .select2-container .select2-selection--single .select2-selection__arrow { height: 48px; }
body.fd-checkout .wc-block-components-text-input input:focus, body.fd-checkout .wc-block-components-text-input.is-active input:focus,
body.fd-checkout .woocommerce form .form-row input.input-text:focus, body.fd-checkout .woocommerce form .form-row textarea:focus, body.fd-checkout .woocommerce form .form-row select:focus,
body.fd-checkout .wc-blocks-components-select .wc-blocks-components-select__select:focus, body.fd-checkout .wc-block-components-textarea:focus {
  border-color: var(--fd-co-accent) !important; box-shadow: 0 0 0 1px var(--fd-co-accent) !important; outline: 0;
}
body.fd-checkout .woocommerce form .form-row label { font-size: 13px; letter-spacing: 0; text-transform: none; color: var(--fd-co-muted); margin-bottom: 4px; }
body.fd-checkout .woocommerce form .form-row { margin-bottom: 14px; }
body.fd-checkout .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox] { border-radius: 4px; border-color: var(--fd-co-border); }
body.fd-checkout .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked { background: var(--fd-co-accent); border-color: var(--fd-co-accent); }
body.fd-checkout input[type="checkbox"]:not([class*="wc-block"]), body.fd-checkout input[type="radio"]:not([class*="wc-block"]) { accent-color: var(--fd-co-accent); }

/* Payment methods */
body.fd-checkout .wc-block-components-radio-control--highlight-checked { border-radius: 5px; }
body.fd-checkout .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
body.fd-checkout .wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted { box-shadow: inset 0 0 0 1px var(--fd-co-accent); border-radius: 5px; }
body.fd-checkout .wc-block-components-radio-control__input:checked { border-color: var(--fd-co-accent); }
body.fd-checkout .wc-block-components-radio-control__input:checked::before { background: var(--fd-co-accent); }
body.fd-checkout #payment .wc_payment_methods { border: 1px solid var(--fd-co-border); border-radius: 5px; overflow: hidden; background: #fff; }
body.fd-checkout #payment .wc_payment_method { padding: 16px; border-bottom: 1px solid var(--fd-co-border); }
body.fd-checkout #payment .wc_payment_method:last-child { border-bottom: 0; }
body.fd-checkout #payment .payment_box { background: var(--fd-co-side); margin: 12px -16px -16px; padding: 16px; border-top: 1px solid var(--fd-co-border); }

/* Pay now button */
body.fd-checkout #place_order, body.fd-checkout .wc-block-components-checkout-place-order-button {
  width: 100% !important; min-height: 56px !important; margin: 0 !important; padding: 14px 20px !important; border-radius: 5px !important;
  font-size: 18px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important;
}
body.fd-checkout #place_order::before, body.fd-checkout #place_order::after { content: none !important; }
body.fd-checkout .wc-block-checkout__actions_row { flex-direction: column-reverse; align-items: stretch; gap: 18px; }
body.fd-checkout .wc-block-components-checkout-return-to-cart-button { text-align: center; color: var(--fd-co-accent); }
body.fd-checkout .woocommerce-privacy-policy-text, body.fd-checkout .wc-block-checkout__terms { font-size: 13px; color: var(--fd-co-muted); }

/* Coupon / login toggles */
body.fd-checkout .woocommerce-form-coupon-toggle .woocommerce-info, body.fd-checkout .woocommerce-form-login-toggle .woocommerce-info {
  background: none; border: 0; padding: 0 !important; margin: 0 0 14px !important; font-size: 14px; display: block;
}
body.fd-checkout form.checkout_coupon, body.fd-checkout form.woocommerce-form-login { border-radius: 5px; border-color: var(--fd-co-border); }
body.fd-checkout form.checkout_coupon .button { border-radius: 5px; min-height: 50px; }

/* Order summary: items with thumbnail + quantity badge */
.fd-co-item { display: flex; align-items: center; gap: 14px; }
.fd-co-item__thumb { position: relative; flex: 0 0 64px; width: 64px; height: 64px; border: 1px solid rgba(0,0,0,.1); border-radius: 8px; background: #fff; }
.fd-co-item__thumb img { width: 100%; height: 100%; object-fit: cover; border-radius: 7px; display: block; }
.fd-co-item__qty, body.fd-checkout .wc-block-components-order-summary-item__quantity {
  position: absolute; top: -9px; right: -9px; min-width: 21px; height: 21px; padding: 0 6px; border-radius: 11px; border: 0 !important; box-shadow: none !important;
  background: rgba(0,0,0,.72) !important; color: #fff !important; font-size: 12px; font-weight: 600; line-height: 21px; text-align: center;
}
body.fd-checkout .wc-block-components-order-summary-item__image { width: 64px; padding-bottom: 0; }
body.fd-checkout .wc-block-components-order-summary-item__image img { width: 64px; height: 64px; object-fit: cover; border: 1px solid rgba(0,0,0,.1); border-radius: 8px; background: #fff; max-width: none; }
body.fd-checkout .wc-block-components-order-summary-item__quantity { transform: none; }
body.fd-checkout .wc-block-components-order-summary .wc-block-components-order-summary-item { border: 0; padding-top: 12px; }
body.fd-checkout .wc-block-components-order-summary-item__description { padding-left: 14px; }
body.fd-checkout .wc-block-components-order-summary-item__individual-prices, body.fd-checkout .wc-block-components-product-metadata__description { display: none; }
body.fd-checkout .wc-block-components-order-summary-item__total-price { font-weight: 400; }
body.fd-checkout .wc-block-components-product-details { font-size: 12px; color: var(--fd-co-muted); }

/* Totals */
body.fd-checkout .wc-block-components-totals-wrapper { border-top: 0 !important; padding-top: 6px; padding-bottom: 6px; }
body.fd-checkout .wc-block-components-totals-item { font-size: 14px; }
body.fd-checkout .wc-block-components-totals-footer-item { padding-top: 10px; }
body.fd-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-size: 19px; font-weight: 600; }
body.fd-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 21px; font-weight: 600; }
body.fd-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value::before,
body.fd-checkout #order_review .order-total td strong::before {
  content: var(--fd-cur, ""); margin-right: 8px; font-size: 12px; font-weight: 400; color: var(--fd-co-muted); vertical-align: 2px;
}
body.fd-checkout .wc-block-components-totals-coupon .wc-block-components-panel__button { font-size: 14px; }

/* Classic order review table */
body.fd-checkout #order_review .shop_table { border: 0; margin-bottom: 18px; }
body.fd-checkout #order_review .shop_table thead { display: none; }
body.fd-checkout #order_review .shop_table td, body.fd-checkout #order_review .shop_table th { border: 0; padding: 8px 0; font-size: 14px; font-weight: 400; letter-spacing: 0; text-transform: none; }
body.fd-checkout #order_review .shop_table tbody td { padding: 10px 0; }
body.fd-checkout #order_review .shop_table .product-total { text-align: right; vertical-align: middle; }
body.fd-checkout #order_review .shop_table tfoot td { text-align: right; }
body.fd-checkout #order_review .shop_table tbody tr:last-child td { padding-bottom: 22px; }
body.fd-checkout #order_review .order-total th { font-size: 19px !important; font-weight: 600 !important; }
body.fd-checkout #order_review .order-total td { font-size: 21px !important; font-weight: 600; }
body.fd-checkout #order_review .woocommerce-shipping-totals td { text-align: right; }

/* ---- Split layout (desktop) ---- */
@media (min-width: 1000px) {
  body.fd-checkout--split.fd-theme #main.fd-co-main {
    background: linear-gradient(to right, #fff calc(50% - .5px), var(--fd-co-border) calc(50% - .5px), var(--fd-co-border) calc(50% + .5px), var(--fd-co-side) calc(50% + .5px));
  }
  body.fd-checkout--split .fd-co-header__inner, body.fd-checkout--split .fd-co-footer__inner { padding-left: var(--fd-gutter); padding-right: var(--fd-gutter); }

  /* Block checkout */
  body.fd-checkout--split .wc-block-components-sidebar-layout.wc-block-checkout { display: grid !important; grid-template-columns: 1fr 1fr; margin: 0 !important; align-items: start; }
  body.fd-checkout--split .wc-block-components-sidebar-layout.wc-block-checkout > * { grid-column: 1 / -1; }
  body.fd-checkout--split .wc-block-checkout__main { grid-column: 1 !important; grid-row: 2; width: auto !important; padding: 38px var(--fd-co-gap-l) 70px 0 !important; margin: 0 !important; }
  body.fd-checkout--split .wc-block-checkout__sidebar { grid-column: 2 !important; grid-row: 2; width: auto !important; padding: 38px 0 40px var(--fd-co-gap-r) !important; margin: 0 !important; top: 20px; }
  body.fd-checkout--split .wp-block-woocommerce-checkout-order-summary-block { border: 0 !important; background: transparent !important; border-radius: 0; }
  body.fd-checkout--split .wc-block-components-checkout-order-summary__title { display: none; }
  body.fd-checkout--split .wc-block-components-checkout-order-summary__content { padding: 0 !important; }
  body.fd-checkout--split .wc-block-components-totals-wrapper, body.fd-checkout--split .wc-block-components-order-summary { padding-left: 0 !important; padding-right: 0 !important; }

  /* Classic checkout */
  body.fd-checkout--split .fd-wc-content > .woocommerce { padding-top: 38px; }
  body.fd-checkout--split form.checkout { grid-template-columns: 1fr 1fr; column-gap: 0; }
  body.fd-checkout--split form.checkout #customer_details { padding-right: var(--fd-co-gap-l); padding-bottom: 70px; }
  body.fd-checkout--split form.checkout #order_review_heading { padding-left: var(--fd-co-gap-r); align-self: start; }
  body.fd-checkout--split form.checkout #order_review { padding: 0 0 40px var(--fd-co-gap-r); background: transparent; border: 0; top: 20px; }
  body.fd-checkout--split .woocommerce-form-coupon-toggle, body.fd-checkout--split .woocommerce-form-login-toggle,
  body.fd-checkout--split form.checkout_coupon, body.fd-checkout--split form.woocommerce-form-login,
  body.fd-checkout--split .woocommerce-NoticeGroup, body.fd-checkout--split .fd-wc-content > .woocommerce > .woocommerce-notices-wrapper { width: calc(50% - var(--fd-co-gap-l)); }
}

/* ---- Tablet / mobile ---- */
@media (max-width: 999px) {
  body.fd-checkout .fd-co-page > .fd-wrap { max-width: 640px; }
  body.fd-checkout .wc-block-components-sidebar-layout.wc-block-checkout { margin: 0; }
  body.fd-checkout .wc-block-checkout__sidebar { width: calc(100% + 2 * var(--fd-gutter)) !important; max-width: none !important; margin: 0 calc(-1 * var(--fd-gutter)) 20px !important; padding: 0 !important; background: var(--fd-co-side); border-bottom: 1px solid var(--fd-co-border); }
  body.fd-checkout .wp-block-woocommerce-checkout-order-summary-block { border: 0 !important; border-radius: 0; background: transparent; }
  body.fd-checkout .wc-block-components-checkout-order-summary__title { padding: 16px var(--fd-gutter) !important; color: var(--fd-co-accent); }
  body.fd-checkout .wc-block-components-checkout-order-summary__title-text { font-size: 15px !important; font-family: var(--fd-body) !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--fd-co-accent); }
  body.fd-checkout .wc-block-components-checkout-order-summary__title-price { color: var(--fd-text); font-weight: 600; font-size: 17px; }
  body.fd-checkout .wc-block-components-checkout-order-summary__content { padding: 0 var(--fd-gutter) 14px !important; }
  body.fd-checkout .fd-wc-content > .woocommerce { padding-top: 24px; }
  body.fd-checkout form.checkout #order_review { background: var(--fd-co-side); border: 0; border-radius: 0; margin: 0 calc(-1 * var(--fd-gutter)); padding: 20px var(--fd-gutter); }
  body.fd-checkout form.checkout #order_review_heading { margin-top: 26px; }
}
