/* Catalogo: larghezza contenuta, griglia stabile, controlli ridisegnati. */

.fdp-catalog-page {
  padding-top: 36px;
}

.fdp-catalog-page .woocommerce-breadcrumb {
  margin: 0 0 22px;
  color: var(--fdp-muted);
  font-size: 0.92rem;
}

.fdp-catalog-page .woocommerce-breadcrumb a {
  color: inherit;
  text-decoration: none;
}

.fdp-catalog-page .page-title,
.fdp-catalog-page .product_title {
  font-family: var(--fdp-serif);
  font-weight: 500;
  letter-spacing: -0.03em;
  line-height: 1.05;
  margin: 0 0 18px;
}

.fdp-catalog-page .page-title { font-size: clamp(2.2rem, 4vw, 3.4rem); }
.fdp-catalog-page .product_title { font-size: clamp(2rem, 4vw, 3rem); }

.fdp-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px 22px;
  margin: 8px 0 28px;
  padding: 16px 18px 18px;
  background: var(--fdp-sheet);
  border: 1px solid var(--fdp-line);
}

.fdp-tools .woocommerce-result-count,
.fdp-tools .woocommerce-ordering,
.fdp-tools .fdp-filter {
  float: none;
  margin: 0;
}

.fdp-tools .woocommerce-ordering { margin-left: auto; }

.fdp-tools .woocommerce-result-count {
  color: var(--fdp-muted);
  padding-bottom: 10px;
}

.fdp-widget-filters {
  flex: 1 0 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 16px 28px;
  padding-bottom: 8px;
}

.fdp-widget-filters .fdp-widget { min-width: min(100%, 200px); margin: 0; }

.fdp-filter label,
.fdp-catalog-page table.variations .label label {
  display: block;
  margin: 0 0 8px;
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--fdp-muted);
}

.fdp-catalog-page select,
.fdp-catalog-page .woocommerce-ordering select,
.fdp-widget-filters select,
.woocommerce-cart select,
.woocommerce-checkout select,
.woocommerce-account select {
  appearance: none;
  -webkit-appearance: none;
  background-color: var(--fdp-white);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='none' stroke='%231c1916' stroke-width='1.4' d='M1 1.2 6 6.2 11 1.2'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
  border: 1px solid var(--fdp-ink);
  border-radius: 0;
  padding: 12px 42px 12px 14px;
  min-width: min(100%, 220px);
  line-height: 1.3;
  cursor: pointer;
  margin: 0;
}

.fdp-catalog-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px 22px;
  list-style: none;
  margin: 0;
  padding: 0;
  clear: both;
  width: 100%;
}

.fdp-catalog-page ul.products::before,
.fdp-catalog-page ul.products::after { content: none; display: none; }

.fdp-catalog-page ul.products li.product,
.fdp-catalog-page ul.products li.product.first,
.fdp-catalog-page ul.products li.product.last {
  float: none !important;
  clear: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0;
  position: relative;
}

.fdp-catalog-page ul.products li.product a img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 0 14px;
  padding: 16px;
  background: var(--fdp-white);
  border: 1px solid var(--fdp-line);
  box-sizing: border-box;
}

.fdp-catalog-page ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--fdp-serif);
  font-size: 1.35rem;
  font-weight: 500;
  padding: 0 2px;
  margin: 0 0 6px;
}

.fdp-catalog-page ul.products li.product .price {
  display: block;
  margin: 0 0 12px;
  padding: 0 2px;
  color: var(--fdp-ink);
}

.fdp-catalog-page ul.products li.product .button,
.fdp-catalog-page ul.products li.product .added_to_cart {
  margin: 4px 2px 0;
}

.fdp-catalog-page .onsale {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  background: var(--fdp-white);
  color: var(--fdp-red);
  border: 1px solid var(--fdp-red);
  border-radius: 0;
  padding: 4px 8px;
  min-height: 0;
  min-width: 0;
  line-height: 1.3;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.fdp-catalog-page div.product {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
  column-gap: 56px;
  row-gap: 8px;
  align-items: start;
}

.fdp-catalog-page div.product > .woocommerce-product-gallery,
.fdp-catalog-page div.product > .images,
.fdp-catalog-page div.product > .summary {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  max-width: none;
}

.fdp-catalog-page div.product > .woocommerce-product-gallery,
.fdp-catalog-page div.product > .images { grid-column: 1; grid-row: 1; }

.fdp-catalog-page div.product > .summary { grid-column: 2; grid-row: 1; padding-top: 6px; }

.fdp-catalog-page div.product > .woocommerce-tabs,
.fdp-catalog-page div.product > .related,
.fdp-catalog-page div.product > .upsells,
.fdp-catalog-page div.product > section.related,
.fdp-catalog-page div.product > section.upsells {
  grid-column: 1 / -1;
  width: 100%;
  float: none;
  clear: both;
  margin-top: 36px;
}

.fdp-catalog-page div.product div.images img,
.fdp-catalog-page .woocommerce-product-gallery__image img {
  border: 1px solid var(--fdp-line);
  background: var(--fdp-white);
  padding: 12px;
}

.fdp-catalog-page .woocommerce-product-gallery { margin-bottom: 12px; }

.fdp-catalog-page .summary .price {
  font-family: var(--fdp-serif);
  font-size: 1.6rem;
  margin: 8px 0 12px;
}

.fdp-rx {
  margin: 16px 0;
  padding: 12px 14px;
  border-left: 2px solid var(--fdp-green);
  color: var(--fdp-muted);
  background: transparent;
}

.fdp-catalog-page table.variations { width: 100%; margin: 8px 0 4px; border: 0; }
.fdp-catalog-page table.variations td,
.fdp-catalog-page table.variations th {
  display: block;
  padding: 0 0 14px;
  text-align: left;
  border: 0;
  background: transparent;
}
.fdp-catalog-page table.variations select { width: 100%; max-width: 360px; }
.fdp-catalog-page a.reset_variations { display: inline-block; margin: 8px 0 0; font-size: 0.9rem; }

.fdp-catalog-page form.cart,
.fdp-catalog-page .woocommerce-variation-add-to-cart {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  margin-top: 8px;
  padding-top: 16px;
}

.fdp-catalog-page div.product form.cart { border-top: 1px solid var(--fdp-line); }

.quantity,
.fdp-catalog-page .quantity {
  display: inline-flex;
  align-items: stretch;
  margin: 6px 8px 6px 0;
  border: 1px solid var(--fdp-ink);
  background: var(--fdp-white);
}

.quantity .qty,
.fdp-catalog-page .quantity .qty {
  width: 52px;
  height: 46px;
  margin: 0;
  padding: 0;
  border: 0;
  border-left: 1px solid var(--fdp-line);
  border-right: 1px solid var(--fdp-line);
  background: transparent;
  text-align: center;
  box-shadow: none;
  -moz-appearance: textfield;
  appearance: textfield;
}

.quantity input[type="number"]::-webkit-outer-spin-button,
.quantity input[type="number"]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.fdp-qty-btn {
  width: 42px;
  border: 0;
  background: transparent;
  cursor: pointer;
  color: var(--fdp-ink);
}

.fdp-qty-btn:hover { background: #e7f0f8; }

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.fdp-catalog-page .button,
#place_order {
  background: transparent;
  color: var(--fdp-green-dark);
  border: 1px solid var(--fdp-green);
  border-radius: 0;
  padding: 12px 18px;
  font-weight: 500;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
  background: #e7f0f8;
  color: var(--fdp-green-dark);
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce button.checkout-button,
#place_order,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wc-block-components-button:not(.is-link):not(.outlined-button) {
  background-color: #0f4c81 !important;
  border-color: #0f4c81 !important;
  color: #ffffff !important;
  border-radius: 0 !important;
  padding: 14px 20px !important;
  text-decoration: none;
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
#place_order:hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
  background-color: #0b3a63 !important;
  border-color: #0b3a63 !important;
  color: #ffffff !important;
}

.woocommerce-cart table.cart,
.woocommerce-checkout table,
.woocommerce table.shop_table {
  width: 100%;
  border-collapse: collapse;
  margin: 0 0 12px;
  background: transparent;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  padding: 14px 12px;
  border-top: 0;
  border-left: 0;
  border-right: 0;
  border-bottom: 1px solid var(--fdp-line);
  text-align: left;
  background: transparent;
}

.woocommerce table.shop_table .product-remove { width: 42px; padding-left: 0; }

.woocommerce a.remove {
  color: var(--fdp-red) !important;
  font-weight: 400;
}

.woocommerce-cart .cart-collaterals {
  display: flex;
  justify-content: flex-end;
  margin-top: 28px;
}

.woocommerce-cart .cart_totals {
  width: min(420px, 100%);
  float: none;
  padding: 22px 22px 26px;
  background: var(--fdp-sheet);
  border: 1px solid var(--fdp-line);
}

.woocommerce-cart .cart_totals h2 {
  font-family: var(--fdp-serif);
  font-size: 1.7rem;
  margin: 0 0 12px;
}

.woocommerce-cart .wc-proceed-to-checkout {
  padding: 16px 0 0;
  margin: 0;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  display: block;
  width: 100%;
  margin: 8px 0 0;
  text-align: center;
  box-sizing: border-box;
}

.woocommerce-cart .coupon {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  padding: 8px 0 4px;
}

.woocommerce-cart .coupon .input-text {
  min-width: 180px;
  padding: 12px 14px;
  border: 1px solid var(--fdp-ink);
  background: var(--fdp-white);
}

.woocommerce-cart td.actions { padding-top: 18px; padding-bottom: 8px; }

.cross-sells { margin-top: 36px; clear: both; width: 100%; }

.fdp-catalog-page .cross-sells ul.products,
.woocommerce-cart .cross-sells ul.products {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.woocommerce-tabs { margin-top: 12px; }

.woocommerce-tabs ul.tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
  list-style: none;
  margin: 28px 0 0;
  padding: 0;
  border-bottom: 1px solid var(--fdp-line);
}

.woocommerce-tabs ul.tabs::before,
.woocommerce-tabs ul.tabs::after,
.woocommerce-tabs ul.tabs li::before,
.woocommerce-tabs ul.tabs li::after { content: none !important; display: none !important; }

.woocommerce-tabs ul.tabs li {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  border-radius: 0;
}

.woocommerce-tabs ul.tabs li a {
  display: inline-block;
  padding: 10px 2px 12px;
  color: var(--fdp-muted);
  text-decoration: none;
}

.woocommerce-tabs ul.tabs li.active a {
  color: var(--fdp-ink);
  box-shadow: inset 0 -2px 0 var(--fdp-green);
}

.woocommerce-Tabs-panel {
  padding: 20px 2px 8px;
  margin: 0;
}

.woocommerce-Tabs-panel h2 { font-size: 1.4rem; margin-bottom: 10px; }

.related.products > h2,
.upsells.products > h2 {
  font-family: var(--fdp-serif);
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  font-weight: 500;
  margin: 0 0 18px;
}

.star-rating {
  width: auto;
  height: auto;
  overflow: visible;
  font-family: var(--fdp-sans);
  letter-spacing: 0;
  color: var(--fdp-muted);
  font-size: 0.85rem;
}

.star-rating::before,
.star-rating span::before { content: none !important; }

.star-rating span {
  position: static;
  text-indent: 0;
  overflow: visible;
  padding-top: 0;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  list-style: none;
  margin: 0 0 18px;
  padding: 12px 14px;
  background: var(--fdp-sheet);
  border: 1px solid var(--fdp-line);
  border-left: 2px solid var(--fdp-green);
}

.woocommerce-error { border-left-color: var(--fdp-red); }
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { content: none; }

.woocommerce form .form-row { margin: 0 0 16px; padding: 0; }
.woocommerce form .form-row label { display: block; margin-bottom: 6px; }

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
  width: 100%;
  background: var(--fdp-white);
  border: 1px solid var(--fdp-ink);
  padding: 12px 14px;
  border-radius: 0;
}

.woocommerce form .form-row select { padding-right: 42px; }

.woocommerce form .form-row textarea { min-height: 110px; }

.woocommerce-checkout .col2-set {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 28px;
  width: auto;
  float: none;
}

.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 { width: auto; float: none; }

.woocommerce-checkout #order_review,
.woocommerce-checkout #customer_details { margin-top: 8px; }

.woocommerce-checkout #place_order { margin-top: 16px; }

.woocommerce-MyAccount-navigation { margin-bottom: 22px; }

.woocommerce-MyAccount-navigation ul {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin: 0;
  padding: 0 0 12px;
  border-bottom: 1px solid var(--fdp-line);
}

.woocommerce-MyAccount-navigation a { color: var(--fdp-ink); text-decoration: none; }
.woocommerce-MyAccount-navigation .is-active a { color: var(--fdp-green); }

.woocommerce nav.woocommerce-pagination { margin-top: 28px; }
.woocommerce nav.woocommerce-pagination ul {
  display: flex;
  gap: 12px;
  list-style: none;
  border: 0;
  margin: 0;
  padding: 0;
}
.woocommerce nav.woocommerce-pagination ul li {
  border: 0;
  float: none;
  margin: 0;
  overflow: visible;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  padding: 4px 2px;
  color: var(--fdp-ink);
  background: transparent;
}
.woocommerce nav.woocommerce-pagination ul li span.current { color: var(--fdp-green); }

.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
  max-width: 100%;
  margin-inline: auto;
}

.wc-block-components-quantity-selector {
  margin: 8px 12px 8px 0;
  border: 1px solid var(--fdp-ink) !important;
  border-radius: 0 !important;
}

.wc-block-components-quantity-selector input {
  min-height: 44px;
}

.wc-block-cart__submit-container { padding-top: 12px; }

@media (max-width: 800px) {
  .fdp-catalog-page ul.products,
  .fdp-catalog-page .cross-sells ul.products,
  .woocommerce-cart .cross-sells ul.products,
  .fdp-catalog-page div.product,
  .woocommerce-checkout .col2-set { grid-template-columns: 1fr; }
  .fdp-catalog-page div.product > .summary,
  .fdp-catalog-page div.product > .woocommerce-product-gallery,
  .fdp-catalog-page div.product > .images { grid-column: 1; grid-row: auto; }
  .fdp-tools .woocommerce-ordering { margin-left: 0; }
  .woocommerce-cart .cart-collaterals { display: block; }
  .woocommerce table.shop_table td,
  .woocommerce table.shop_table th { padding: 12px 8px; }
}
