/* ==================================================================
   buonviaggio theme overrides — extracted inline <style> blocks
   ================================================================== */

/* ---------- GLOBAL ---------- */
.material-symbols-outlined {
    font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24;
}
/* Remove default WP margins */
body { margin: 0; }

/* Search overlay input — strip browser focus ring and search-type chrome */
#buonviaggio-search-input {
    appearance: none;
    -webkit-appearance: none;
    outline: none !important;
    box-shadow: none !important;
    border: 0;
}
#buonviaggio-search-input:focus,
#buonviaggio-search-input:focus-visible {
    outline: none !important;
    box-shadow: none !important;
    border: 0;
}
#buonviaggio-search-input::-webkit-search-decoration,
#buonviaggio-search-input::-webkit-search-cancel-button,
#buonviaggio-search-input::-webkit-search-results-button,
#buonviaggio-search-input::-webkit-search-results-decoration { display: none; }
html { scroll-behavior: smooth; }
/* Floating cart — hide scrollbar */
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* ---------- CHECKOUT ---------- */
/* ── WC field base styles ── */
.woocommerce-checkout .form-row { margin-bottom: 0; }
.woocommerce-checkout .form-row label {
  display: block; font-size: 0.6875rem; font-family: inherit;
  font-weight: 400; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--md-sys-color-outline, #76786c); margin-bottom: 0.5rem;
}
.woocommerce-checkout .form-row abbr { color: var(--md-sys-color-error, #ba1a1a); text-decoration: none; }
.woocommerce-checkout .form-row input[type="text"],
.woocommerce-checkout .form-row input[type="email"],
.woocommerce-checkout .form-row input[type="tel"],
.woocommerce-checkout .form-row input[type="number"],
.woocommerce-checkout .form-row input[type="password"],
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
  width: 100%; background: transparent; border: 0;
  border-bottom: 1px solid var(--md-sys-color-outline-variant, #c6c8ba); border-radius: 0; padding: 0.75rem 0;
  font-family: inherit; font-size: 0.95rem; color: var(--md-sys-color-on-background, #1b1c19);
  outline: none; box-shadow: none !important; transition: border-color 0.2s;
}
.woocommerce-checkout .form-row input:focus,
.woocommerce-checkout .form-row select:focus,
.woocommerce-checkout .form-row textarea:focus { border-bottom-color: var(--md-sys-color-on-background, #1b1c19); }
.woocommerce-checkout .woocommerce-invalid input,
.woocommerce-checkout .woocommerce-invalid select { border-bottom-color: var(--md-sys-color-error, #ba1a1a) !important; }
.woocommerce-checkout .woocommerce-validated input { border-bottom-color: var(--md-sys-color-on-background, #1b1c19) !important; }
#payment .payment_methods { list-style: none; padding: 0; margin: 0; }
#payment .payment_box { background: var(--md-sys-color-surface-container-low, #efeeeb); padding: 1rem 1.5rem; border-radius: 0; margin-top: 0.5rem; border: 1px solid var(--md-sys-color-outline-variant, #c6c8ba); border-top: 0; }

/* ── Progress bar (editorial) ── */
.buonviaggio-step-dot {
  width: 2.25rem; height: 2.25rem; border-radius: 0;
  display: flex; align-items: center; justify-content: center;
  font-weight: 500; font-size: 0.8rem; font-family: inherit;
  letter-spacing: 0;
  transition: background-color 0.35s ease, color 0.35s ease, border-color 0.35s ease;
  flex-shrink: 0; position: relative; z-index: 1;
  border: 1px solid var(--md-sys-color-outline-variant, #c6c8ba);
}
.buonviaggio-step-dot.is-active  { background: var(--md-sys-color-on-background, #1b1c19); color: var(--md-sys-color-background, #faf9f4); border-color: var(--md-sys-color-on-background, #1b1c19); }
.buonviaggio-step-dot.is-done    { background: var(--md-sys-color-primary, #885203); color: var(--md-sys-color-on-primary, #fff); border-color: var(--md-sys-color-primary, #885203); }
.buonviaggio-step-dot.is-future  { background: transparent; color: var(--md-sys-color-outline, #76786c); }
.buonviaggio-step-line {
  flex: 1; height: 1px; background: var(--md-sys-color-outline-variant, #c6c8ba);
  transition: background-color 0.35s ease;
}
.buonviaggio-step-line.is-done { background: var(--md-sys-color-on-background, #1b1c19); }
.buonviaggio-step-label {
  font-size: 0.6875rem; font-weight: 400; text-transform: uppercase;
  letter-spacing: 0.18em; font-family: inherit;
  margin-top: 0.6rem; white-space: nowrap;
  transition: color 0.3s;
}
.buonviaggio-step-label.is-active  { color: var(--md-sys-color-on-background, #1b1c19); }
.buonviaggio-step-label.is-done    { color: var(--md-sys-color-on-background, #1b1c19); }
.buonviaggio-step-label.is-future  { color: var(--md-sys-color-outline, #76786c); }

/* ── Step panels ── */
.buonviaggio-step {
  display: none;
  animation: stepIn 0.3s ease forwards;
}
.buonviaggio-step.is-active { display: block; }
@keyframes stepIn {
  from { opacity: 0; transform: translateX(20px); }
  to   { opacity: 1; transform: translateX(0); }
}

/* ── Mobile: sticky bottom summary bar ── */
@media (max-width: 1023px) {
  .buonviaggio-sticky-bar {
    position: fixed; bottom: 0; left: 0; right: 0;
    background: var(--md-sys-color-background, #faf9f4); border-top: 1px solid var(--md-sys-color-outline-variant, #c6c8ba);
    padding: 0.875rem 1.25rem; z-index: 40;
    display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  }
  .buonviaggio-checkout-wrap { padding-bottom: 6rem; }
  .buonviaggio-sidebar-sheet {
    position: fixed; inset: 0; z-index: 50;
    background: rgba(26,28,26,0.4);
    opacity: 0; pointer-events: none; transition: opacity 0.3s ease;
  }
  .buonviaggio-sidebar-sheet.is-open { opacity: 1; pointer-events: auto; }
  .buonviaggio-sidebar-inner {
    position: absolute; bottom: 0; left: 0; right: 0;
    background: var(--md-sys-color-background, #faf9f4); border-radius: 0;
    padding: 1.5rem 1.5rem calc(2.5rem + env(safe-area-inset-bottom, 0px));
    max-height: 80vh; overflow-y: auto; overscroll-behavior: contain;
    transform: translateY(100%); transition: transform 0.35s cubic-bezier(0.32,0.72,0,1);
  }
  @supports (height: 100dvh) {
    .buonviaggio-sidebar-inner { max-height: 80dvh; }
  }
  .buonviaggio-sidebar-sheet.is-open .buonviaggio-sidebar-inner { transform: translateY(0); }
  .buonviaggio-desktop-aside { display: none !important; }
}
@media (min-width: 1024px) {
  .buonviaggio-sticky-bar { display: none !important; }
  .buonviaggio-sidebar-sheet { display: none !important; }
}

/* ---------- MY ACCOUNT (editorial) ---------- */
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; }
.woocommerce-MyAccount-navigation-link a {
  display: block; padding: 0.75rem 0; border-radius: 0;
  border-bottom: 1px solid var(--md-sys-color-outline-variant, #c6c8ba);
  font-family: inherit; font-size: 0.875rem; font-weight: 400;
  letter-spacing: 0; text-transform: none; color: var(--md-sys-color-on-surface-variant, #46483d);
  text-decoration: none; transition: color 0.15s, border-color 0.15s;
}
.woocommerce-MyAccount-navigation-link a:hover { color: var(--md-sys-color-on-background, #1b1c19); border-bottom-color: var(--md-sys-color-on-background, #1b1c19); }
.woocommerce-MyAccount-navigation-link.is-active a { color: var(--md-sys-color-on-background, #1b1c19); border-bottom-color: var(--md-sys-color-on-background, #1b1c19); background: transparent; }

.woocommerce-MyAccount-content h2 {
  font-family: inherit; color: var(--md-sys-color-on-background, #1b1c19);
  font-size: 1.5rem; font-weight: 500; letter-spacing: -0.01em; line-height: 1.2;
  margin-bottom: 1.5rem;
}
.woocommerce-MyAccount-content p { color: var(--md-sys-color-on-surface-variant, #46483d); line-height: 1.7; }
.woocommerce-MyAccount-content a:not(.button) { color: var(--md-sys-color-on-background, #1b1c19); border-bottom: 1px solid var(--md-sys-color-on-background, #1b1c19); padding-bottom: 1px; text-decoration: none; transition: color 0.15s, border-color 0.15s; }
.woocommerce-MyAccount-content a:not(.button):hover { color: var(--md-sys-color-primary, #885203); border-bottom-color: var(--md-sys-color-primary, #885203); }

.woocommerce-MyAccount-content table { width: 100%; border-collapse: collapse; font-family: inherit; font-size: 0.9rem; }
.woocommerce-MyAccount-content table th { text-align: left; padding: 0.75rem 0.75rem 0.75rem 0; border-bottom: 1px solid var(--md-sys-color-on-background, #1b1c19); color: var(--md-sys-color-outline, #76786c); font-weight: 400; font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.18em; }
.woocommerce-MyAccount-content table td { padding: 1rem 0.75rem 1rem 0; border-bottom: 1px solid var(--md-sys-color-outline-variant, #c6c8ba); color: var(--md-sys-color-on-background, #1b1c19); vertical-align: middle; }
.woocommerce-MyAccount-content table tr:last-child td { border-bottom: 0; }

.woocommerce-MyAccount-content .woocommerce-Button,
.woocommerce-MyAccount-content .button,
.woocommerce-MyAccount-content button[type="submit"] {
  background: var(--md-sys-color-on-background, #1b1c19); color: var(--md-sys-color-background, #faf9f4);
  padding: 0.85rem 1.75rem; border-radius: 0;
  font-family: inherit; font-size: 0.875rem; font-weight: 400;
  letter-spacing: 0; text-transform: none; text-decoration: none;
  display: inline-flex; align-items: center; gap: 0.5rem;
  border: none; cursor: pointer; transition: background-color 0.15s; min-height: 44px;
}
.woocommerce-MyAccount-content .woocommerce-Button:hover,
.woocommerce-MyAccount-content .button:hover,
.woocommerce-MyAccount-content button[type="submit"]:hover { background: var(--md-sys-color-primary, #885203); opacity: 1; }

.woocommerce-MyAccount-content .form-row { margin-bottom: 1.5rem; }
.woocommerce-MyAccount-content .form-row label { display: block; font-size: 0.6875rem; font-family: inherit; font-weight: 400; letter-spacing: 0.18em; text-transform: uppercase; color: var(--md-sys-color-outline, #76786c); margin-bottom: 0.5rem; }
.woocommerce-MyAccount-content .form-row input,
.woocommerce-MyAccount-content .form-row select,
.woocommerce-MyAccount-content .form-row textarea { width: 100%; background: transparent; border: 0; border-bottom: 1px solid var(--md-sys-color-outline-variant, #c6c8ba); padding: 0.75rem 0; font-family: inherit; font-size: 0.95rem; color: var(--md-sys-color-on-background, #1b1c19); outline: none; box-shadow: none !important; border-radius: 0; transition: border-color 0.2s; }
.woocommerce-MyAccount-content .form-row input:focus,
.woocommerce-MyAccount-content .form-row select:focus,
.woocommerce-MyAccount-content .form-row textarea:focus { border-bottom-color: var(--md-sys-color-on-background, #1b1c19); }

.woocommerce-MyAccount-content .woocommerce-message,
.woocommerce-MyAccount-content .woocommerce-info,
.woocommerce-MyAccount-content .woocommerce-error { padding: 1rem 1.25rem; border-radius: 0; margin-bottom: 1.5rem; font-family: inherit; font-size: 0.875rem; list-style: none; border-left: 2px solid; }
.woocommerce-MyAccount-content .woocommerce-message,
.woocommerce-MyAccount-content .woocommerce-info { background: var(--md-sys-color-surface-container-low, #efeeeb); color: var(--md-sys-color-on-background, #1b1c19); border-left-color: var(--md-sys-color-on-background, #1b1c19); }
.woocommerce-MyAccount-content .woocommerce-error { background: var(--md-sys-color-surface-container-low, #efeeeb); color: var(--md-sys-color-error, #ba1a1a); border-left-color: var(--md-sys-color-error, #ba1a1a); }

/* ---------- LOGIN ---------- */
.buonviaggio-auth-input { width: 100%; background: transparent; border: 0; border-bottom: 1px solid var(--md-sys-color-outline-variant, #c6c8ba); padding: 0.75rem 0; font-family: inherit; font-size: 0.95rem; color: var(--md-sys-color-on-background, #1b1c19); outline: none; box-shadow: none !important; transition: border-color 0.2s; }
.buonviaggio-auth-input:focus { border-bottom-color: var(--md-sys-color-on-background, #1b1c19); }

/* ---------- EDITORIAL REDESIGN — 2026-04-21 ----------
   Normalize WooCommerce default chrome to match the editorial system.
*/

/* Keep prose descriptions upright — the new system has no italic serif */
.prose em, .prose i, .prose cite { font-style: normal; }

/* WC catalog ordering <select> — strip browser default */
.woocommerce-ordering select {
    appearance: none;
    -webkit-appearance: none;
    background: transparent;
    border: 1px solid var(--md-outline-variant);
    border-radius: 0;
    padding: 0.375rem 2rem 0.375rem 0.75rem;
    font: inherit;
    font-size: 0.875rem;
    color: var(--md-on-background);
    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' fill='none'><path d='M1 1.5L6 6.5L11 1.5' stroke='%231b1c19' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    cursor: pointer;
}
.woocommerce-ordering select:focus { outline: none; border-color: var(--md-on-background); }

/* WC pagination — flatten rounded buttons */
.woocommerce-pagination ul.page-numbers {
    display: inline-flex; gap: 0.25rem; list-style: none; padding: 0; margin: 0;
    border: 0;
}
.woocommerce-pagination ul.page-numbers li { border: 0; }
.woocommerce-pagination ul.page-numbers a,
.woocommerce-pagination ul.page-numbers span {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 36px; height: 36px; padding: 0 0.5rem;
    border: 1px solid var(--md-outline-variant); border-radius: 0;
    color: var(--md-on-background); text-decoration: none; font-size: 0.875rem;
    background: transparent; transition: border-color 0.15s, background-color 0.15s, color 0.15s;
}
.woocommerce-pagination ul.page-numbers a:hover { border-color: var(--md-on-background); }
.woocommerce-pagination ul.page-numbers .current {
    background: var(--md-on-background); color: var(--md-background); border-color: var(--md-on-background);
}

/* WC star rating — flatten, no serif fallback */
.woocommerce .star-rating { font-family: 'Inter', sans-serif; }
.woocommerce .star-rating::before,
.woocommerce .star-rating span::before {
    color: var(--md-on-background);
    letter-spacing: 0.1em;
}

/* Gutenberg details marker — hide default arrow on <summary> */
details > summary::-webkit-details-marker { display: none; }
details > summary { list-style: none; }

/* ---------- bv-section — editorial product-page sections ---------- */
.bv-section {
    --bv-accent: var(--md-primary);
}
details.bv-section { /* override default disclosure marker */ }
details.bv-section > summary { list-style: none; cursor: pointer; }
details.bv-section > summary::-webkit-details-marker { display: none; }
.bv-section__header {
    display: grid;
    grid-template-columns: auto auto 1fr auto;
    align-items: end;
    column-gap: 0.875rem;
    row-gap: 0.25rem;
    padding-bottom: 1rem;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid color-mix(in srgb, var(--md-on-background) 12%, transparent);
    transition: color 0.15s ease;
}
details.bv-section > summary.bv-section__header:hover { color: var(--bv-accent); }
.bv-section__chev {
    grid-column: -1;
    grid-row: 1 / span 2;
    align-self: center;
    width: 10px;
    height: 10px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.2s ease;
    margin-bottom: 2px;
}
details.bv-section[open] > summary > .bv-section__chev {
    transform: rotate(-135deg);
    margin-bottom: -4px;
}
.bv-section__num {
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.18em;
    color: var(--bv-accent);
    font-variant-numeric: tabular-nums;
    align-self: center;
    grid-row: 1 / span 2;
    padding-right: 0.625rem;
    border-right: 1px solid color-mix(in srgb, var(--md-on-background) 18%, transparent);
}
.bv-section__eyebrow {
    grid-column: 2;
    grid-row: 1;
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--md-outline);
}
.bv-section__title {
    grid-column: 2 / -1;
    grid-row: 2;
    font-size: 1.625rem;
    line-height: 1.15;
    font-weight: 500;
    letter-spacing: -0.01em;
    color: var(--md-on-background);
    margin: 0;
}
@media (min-width: 768px) {
    .bv-section__title { font-size: 1.875rem; }
}
.bv-section__rule { display: none; }

.bv-section__header--centered {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
    padding-bottom: 1.5rem;
    margin-bottom: 2rem;
    border-bottom: 0;
}
.bv-section__header--centered .bv-section__eyebrow,
.bv-section__header--centered .bv-section__title {
    grid-column: 1;
}
.bv-section__rule--centered {
    display: block;
    width: 56px;
    height: 1px;
    background: color-mix(in srgb, var(--md-on-background) 28%, transparent);
    margin-top: 1rem;
}

/* Specs — striped editorial table */
.bv-specs-table {
    margin: 0;
    border-top: 1px solid color-mix(in srgb, var(--md-on-background) 8%, transparent);
}
.bv-specs-table__row {
    display: grid;
    grid-template-columns: minmax(7rem, max-content) 1fr;
    gap: 1.5rem;
    padding: 0.75rem 0.875rem;
    border-bottom: 1px solid color-mix(in srgb, var(--md-on-background) 8%, transparent);
    font-size: 0.875rem;
}
.bv-specs-table__row:nth-child(even) {
    background: color-mix(in srgb, var(--md-on-background) 3%, transparent);
}
.bv-specs-table__row dt {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--md-outline);
    margin: 0;
    padding-top: 0.125rem;
}
.bv-specs-table__row dd {
    margin: 0;
    color: var(--md-on-background);
    font-variant-numeric: tabular-nums;
}

/* Shipping — icon list */
.bv-shipping-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.bv-shipping-list > li {
    display: flex;
    gap: 1rem;
    padding: 1rem 1.125rem;
    background: color-mix(in srgb, var(--md-on-background) 3%, transparent);
    border: 1px solid color-mix(in srgb, var(--md-on-background) 8%, transparent);
}
.bv-shipping-list .material-symbols-outlined {
    color: var(--bv-accent);
    font-size: 1.5rem;
    flex-shrink: 0;
    line-height: 1.4;
}
.bv-shipping-list__title {
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--md-on-background);
    margin: 0 0 0.25rem;
}
.bv-shipping-list__desc {
    font-size: 0.8125rem;
    color: var(--md-on-surface-variant);
    margin: 0;
    line-height: 1.55;
}

/* FAQ — centered accordion */
.bv-faq {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid color-mix(in srgb, var(--md-on-background) 12%, transparent);
}
.bv-faq__item {
    border-bottom: 1px solid color-mix(in srgb, var(--md-on-background) 12%, transparent);
}
.bv-faq__item > details > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.125rem 0.25rem;
    cursor: pointer;
    transition: color 0.15s ease;
}
.bv-faq__item > details > summary:hover { color: var(--bv-accent); }
.bv-faq__q {
    font-size: 1rem;
    font-weight: 500;
    color: var(--md-on-background);
    line-height: 1.4;
}
.bv-faq__icon {
    width: 14px;
    height: 14px;
    position: relative;
    flex-shrink: 0;
}
.bv-faq__icon::before,
.bv-faq__icon::after {
    content: "";
    position: absolute;
    background: currentColor;
    transition: transform 0.2s ease, opacity 0.2s ease;
}
.bv-faq__icon::before { top: 6px; left: 0; right: 0; height: 1.5px; }
.bv-faq__icon::after  { left: 6px; top: 0; bottom: 0; width: 1.5px; }
.bv-faq__item > details[open] > summary .bv-faq__icon::after { opacity: 0; }
.bv-faq__a {
    padding: 0 0.25rem 1.25rem;
    color: var(--md-on-surface-variant);
    line-height: 1.65;
    font-size: 0.9375rem;
}

/* ---------- bv-carousel — horizontal snap carousel (related products) ---------- */
.bv-carousel { position: relative; }
.bv-carousel__track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 1 * 0.75rem) / 2);
    gap: 0.75rem;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-padding-left: 0;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding-bottom: 0.5rem;
}
.bv-carousel__track::-webkit-scrollbar { display: none; }
.bv-carousel__slide { scroll-snap-align: start; min-width: 0; }
@media (min-width: 768px) {
    .bv-carousel__track {
        grid-auto-columns: calc((100% - 3 * 1.5rem) / 4);
        gap: 1.5rem;
    }
}
.bv-carousel__nav {
    display: flex;
    gap: 0.5rem;
}
.bv-carousel__btn {
    width: 40px; height: 40px;
    display: inline-flex; align-items: center; justify-content: center;
    background: transparent;
    color: var(--md-on-background);
    border: 1px solid var(--md-outline-variant);
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, opacity 0.15s ease;
}
.bv-carousel__btn:hover:not(:disabled) {
    background: var(--md-on-background);
    color: var(--md-background);
    border-color: var(--md-on-background);
}
.bv-carousel__btn:disabled { opacity: 0.3; cursor: not-allowed; }
.bv-carousel__btn .material-symbols-outlined { font-size: 22px; }

/* ---------- bv-pill — hero spec chips ---------- */
.bv-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.3rem 0.75rem;
    font-size: 0.75rem;
    line-height: 1.4;
    color: var(--md-on-background);
    background: var(--md-surface-container);
    border: 1px solid color-mix(in srgb, var(--md-outline-variant) 70%, transparent);
    border-radius: 9999px;
}
.bv-pill__label {
    font-size: 0.625rem;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--md-outline);
}
.bv-pill__value { font-variant-numeric: tabular-nums; }

.bv-pill--color { padding-left: 0.4rem; }
.bv-pill__swatch {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--md-on-background) 18%, transparent);
    flex-shrink: 0;
}
.bv-pill__swatches {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}
.bv-pill--color-multi .bv-pill__swatch {
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.bv-pill--color-multi .bv-pill__swatch:hover { transform: scale(1.12); }
.bv-pill--color-multi .bv-pill__swatch.is-active {
    box-shadow:
        inset 0 0 0 1px color-mix(in srgb, var(--md-on-background) 18%, transparent),
        0 0 0 1.5px var(--md-background),
        0 0 0 2.5px var(--md-on-background);
}
.bv-pill__swatch--unknown {
    background: repeating-linear-gradient(
        45deg,
        var(--md-surface-container-low) 0 4px,
        var(--md-outline-variant) 4px 5px
    ) !important;
}

/* Expandable "N modelos" pill */
details.bv-pill--expand { padding: 0; border: 0; background: transparent; border-radius: 0; }
details.bv-pill--expand > summary {
    list-style: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.3rem 0.75rem;
    background: var(--md-surface-container);
    border: 1px solid color-mix(in srgb, var(--md-outline-variant) 70%, transparent);
    border-radius: 9999px;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}
details.bv-pill--expand > summary::-webkit-details-marker { display: none; }
details.bv-pill--expand > summary:hover {
    background: var(--md-surface-container-high);
    border-color: var(--md-on-background);
}
details.bv-pill--expand[open] > summary {
    background: var(--md-on-background);
    color: var(--md-background);
    border-color: var(--md-on-background);
}
details.bv-pill--expand[open] > summary .bv-pill__label { color: inherit; opacity: 0.7; }
.bv-pill__chev {
    width: 7px; height: 7px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.2s ease;
    margin-left: 0.125rem;
}
details.bv-pill--expand[open] > summary .bv-pill__chev { transform: rotate(-135deg); }
.bv-pill__panel {
    flex-basis: 100%;
    margin-top: 0.625rem;
    padding: 0.75rem 0.875rem;
    background: var(--md-surface-container-low);
    border: 1px solid var(--md-outline-variant);
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
}
.bv-pill__model {
    display: inline-flex;
    padding: 0.2rem 0.55rem;
    font-size: 0.6875rem;
    line-height: 1.3;
    color: var(--md-on-background);
    background: var(--md-background);
    border: 1px solid var(--md-outline-variant);
    border-radius: 4px;
}

/* ---------- bv-compat — compatibility callout below description ---------- */
.bv-compat {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    margin-top: 1.5rem;
    padding: 1rem 1.125rem;
    background: color-mix(in srgb, var(--md-on-background) 3%, transparent);
    border-left: 2px solid var(--md-primary);
}
.bv-compat__eyebrow {
    font-size: 0.625rem;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--md-outline);
    margin-bottom: 0.25rem;
}
.bv-compat__row {
    display: flex;
    gap: 0.625rem;
    align-items: flex-start;
    color: var(--md-on-background);
    font-size: 0.875rem;
    line-height: 1.6;
}
.bv-compat__row p { margin: 0; }
.bv-compat__row .material-symbols-outlined {
    font-size: 1.125rem;
    line-height: 1.4;
    flex-shrink: 0;
}
.bv-compat__row--ok .material-symbols-outlined { color: var(--md-primary); }
.bv-compat__row--no  { color: var(--md-on-surface-variant); }
.bv-compat__row--no .material-symbols-outlined { color: var(--md-outline); }
.bv-compat__label {
    font-weight: 500;
    color: var(--md-on-background);
}

/* ---------- bv-details — expandable sections on product page ---------- */
.bv-details {
    border-top: 1px solid color-mix(in srgb, var(--md-outline-variant) 50%, transparent);
}
.bv-details__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 0;
    cursor: pointer;
    user-select: none;
    transition: color 0.15s ease;
}
.bv-details__summary:hover { color: var(--md-primary); }
.bv-details__summary:focus-visible {
    outline: 2px solid var(--md-primary);
    outline-offset: 4px;
}
.bv-details__summary::after {
    content: "";
    flex-shrink: 0;
    width: 12px;
    height: 12px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
    transition: transform 0.2s ease;
    margin-right: 4px;
    margin-bottom: 2px;
}
.bv-details[open] > .bv-details__summary::after {
    transform: rotate(-135deg);
    margin-bottom: -4px;
}
.bv-details__body {
    padding-bottom: 1.25rem;
}

/* ---------- PRODUCT PAGE — add-to-cart (simple + variable) ----------
   WC outputs its default simple/variable templates via
   do_action('woocommerce_' . $type . '_add_to_cart'); these styles
   normalize that markup to the editorial system.
*/

/* Hide native browser number input spinners (Chrome / Firefox) */
.buonviaggio-add-to-cart-wrap input[type="number"]::-webkit-inner-spin-button,
.buonviaggio-add-to-cart-wrap input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none; margin: 0;
}
.buonviaggio-add-to-cart-wrap input[type="number"] { -moz-appearance: textfield; }

/* Cart form layout */
.buonviaggio-add-to-cart-wrap form.cart { display: flex; flex-direction: column; gap: 1.25rem; }

/* Quantity stepper — wrap <input> + ± buttons */
.buonviaggio-add-to-cart-wrap .quantity {
    display: inline-flex; align-items: stretch;
    border: 1px solid var(--md-outline-variant);
    width: fit-content;
}
.buonviaggio-add-to-cart-wrap .quantity .buonviaggio-qty-step {
    display: flex; align-items: center; justify-content: center;
    width: 44px; cursor: pointer; user-select: none;
    background: transparent; border: 0;
    color: var(--md-on-background); font-size: 1.125rem; line-height: 1;
    transition: background-color 0.15s;
}
.buonviaggio-add-to-cart-wrap .quantity .buonviaggio-qty-step:first-child { border-right: 1px solid var(--md-outline-variant); }
.buonviaggio-add-to-cart-wrap .quantity .buonviaggio-qty-step:last-child  { border-left:  1px solid var(--md-outline-variant); }
.buonviaggio-add-to-cart-wrap .quantity .buonviaggio-qty-step:hover { background: var(--md-surface-container-low); }
.buonviaggio-add-to-cart-wrap .quantity label { display: none; }
.buonviaggio-add-to-cart-wrap .quantity input[type="number"].qty {
    width: 56px; text-align: center; padding: 0.75rem 0;
    background: transparent; border: 0; outline: none;
    color: var(--md-on-background); font: inherit; font-size: 0.95rem;
}

/* Add-to-cart button */
.buonviaggio-add-to-cart-wrap button.single_add_to_cart_button,
.buonviaggio-add-to-cart-wrap .single_add_to_cart_button {
    width: 100%; background: var(--md-on-background); color: var(--md-background);
    border: 0; border-radius: 0; padding: 1rem 2rem;
    font: inherit; font-size: 0.875rem; text-transform: none; letter-spacing: normal;
    min-height: 44px; cursor: pointer; transition: background-color 0.15s;
}
.buonviaggio-add-to-cart-wrap button.single_add_to_cart_button:hover,
.buonviaggio-add-to-cart-wrap .single_add_to_cart_button:hover { background: var(--md-primary); }
.buonviaggio-add-to-cart-wrap button.single_add_to_cart_button:disabled,
.buonviaggio-add-to-cart-wrap .single_add_to_cart_button.disabled { opacity: 0.4; cursor: not-allowed; }

/* Variations table (Color, Model, etc.) */
.buonviaggio-add-to-cart-wrap table.variations {
    width: 100%; border-collapse: collapse; margin: 0;
}
.buonviaggio-add-to-cart-wrap table.variations tr {
    display: flex; flex-direction: column; gap: 0.5rem; margin-bottom: 1rem;
}
.buonviaggio-add-to-cart-wrap table.variations th,
.buonviaggio-add-to-cart-wrap table.variations td {
    padding: 0; border: 0; background: transparent; text-align: left;
}
.buonviaggio-add-to-cart-wrap table.variations th {
    font: inherit; font-size: 0.6875rem; font-weight: 500;
    letter-spacing: 0.18em; text-transform: uppercase; color: var(--md-outline);
}
.buonviaggio-add-to-cart-wrap table.variations select {
    appearance: none; -webkit-appearance: none;
    width: 100%; background: transparent;
    border: 1px solid var(--md-outline-variant); border-radius: 0;
    padding: 0.75rem 2.5rem 0.75rem 1rem;
    font: inherit; font-size: 0.9375rem; color: var(--md-on-background);
    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' fill='none'><path d='M1 1.5L6 6.5L11 1.5' stroke='%231b1c19' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    background-repeat: no-repeat; background-position: right 1rem center;
    cursor: pointer; transition: border-color 0.15s;
}
.buonviaggio-add-to-cart-wrap table.variations select:focus { outline: none; border-color: var(--md-on-background); }
.buonviaggio-add-to-cart-wrap .reset_variations {
    display: inline-block !important; margin-top: 0.5rem; font-size: 0.75rem;
    color: var(--md-outline); text-decoration: underline; text-underline-offset: 3px;
}
.buonviaggio-add-to-cart-wrap .reset_variations:hover { color: var(--md-on-background); }

/* Variation info row (price + stock shown after selection) */
.buonviaggio-add-to-cart-wrap .single_variation_wrap .woocommerce-variation {
    margin: 1rem 0;
}
.buonviaggio-add-to-cart-wrap .woocommerce-variation-price .price {
    font-size: 1.25rem; color: var(--md-on-background);
}
.buonviaggio-add-to-cart-wrap .woocommerce-variation-availability {
    font-size: 0.875rem; color: var(--md-on-surface-variant); margin-top: 0.25rem;
}
.buonviaggio-add-to-cart-wrap .woocommerce-variation-description {
    font-size: 0.875rem; color: var(--md-on-surface-variant); line-height: 1.6;
    margin-top: 0.5rem;
}

/* Single-variation add-to-cart row layout */
.buonviaggio-add-to-cart-wrap .woocommerce-variation-add-to-cart {
    display: flex; flex-direction: column; gap: 1rem; margin-top: 1rem;
}
.buonviaggio-add-to-cart-wrap .woocommerce-variation-add-to-cart .quantity { align-self: flex-start; }

/* ==================================================================
   Correo Argentino (paqAR) — frontend styling override
   Plugin: correoargentino-3.0.3rc-241028-5
   Scope: shipping rate rows on cart/checkout where paqAR injects
   province + branch selects via woocommerce_after_shipping_rate.
   Visual contract: match buonviaggio editorial checkout — flat,
   underline-only inputs, Manrope, no rounded corners.
   ================================================================== */

/* Container list items injected after a paqAR shipping rate */
.woocommerce-shipping-methods li > #ca_container_select_provinces,
.woocommerce-shipping-methods li > [id^="ca_container_select_"],
#buonviaggio-shipping-methods-wrap #ca_container_select_provinces,
#buonviaggio-shipping-methods-wrap [id^="ca_container_select_"] {
    margin-top: 0.75rem;
}

.woocommerce-shipping-methods li:has(> #ca_container_select_provinces),
.woocommerce-shipping-methods li:has(> [id^="ca_container_select_"]) {
    list-style: none;
    padding-left: 0;
    margin-left: 0;
}

/* Native province / branch selects — match checkout form selects */
.correoargentino_province_select,
.correoargentino_branch_select {
    width: 100%;
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--md-sys-color-outline-variant, #c6c8ba);
    border-radius: 0;
    padding: 0.75rem 0;
    font-family: inherit;
    font-size: 0.95rem;
    color: var(--md-sys-color-on-background, #1b1c19);
    outline: none;
    box-shadow: none !important;
    transition: border-color 0.2s;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3e%3cpath d='M1 1.5l5 5 5-5' stroke='%2376786c' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 0.25rem center;
    padding-right: 1.5rem;
}
.correoargentino_province_select:focus,
.correoargentino_branch_select:focus {
    border-bottom-color: var(--md-sys-color-on-background, #1b1c19);
}
.correoargentino_branch_select[disabled] {
    color: var(--md-sys-color-outline, #9a9c92);
    cursor: not-allowed;
    opacity: 0.7;
}

/* Container spacing for the province selector wrapper */
#ca_container_select_provinces {
    display: block;
    margin-bottom: 0.5rem;
}
#ca_container_select_provinces::before {
    content: "Provincia";
    display: block;
    font-size: 0.6875rem;
    font-family: inherit;
    font-weight: 400;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--md-sys-color-outline, #76786c);
    margin-bottom: 0.5rem;
}
[id^="ca_container_select_"]:not(#ca_container_select_provinces)::before {
    content: "Sucursal de retiro";
    display: block;
    font-size: 0.6875rem;
    font-family: inherit;
    font-weight: 400;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--md-sys-color-outline, #76786c);
    margin-bottom: 0.5rem;
}

/* Select2 override — paqAR hard-loads select2 for state selector on
   its own settings page and may leak into frontend if other plugins
   trigger it. Keep it flat and square when it does render. */
.woocommerce-checkout .select2-container--default .select2-selection--single,
#buonviaggio-shipping-methods-wrap .select2-container--default .select2-selection--single {
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--md-sys-color-outline-variant, #c6c8ba);
    border-radius: 0;
    height: auto;
    padding: 0.5rem 0;
    font-family: inherit;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered,
#buonviaggio-shipping-methods-wrap .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding-left: 0;
    line-height: 1.5;
    color: var(--md-sys-color-on-background, #1b1c19);
    font-size: 0.95rem;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow,
#buonviaggio-shipping-methods-wrap .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 100%;
    top: 0;
    right: 0.25rem;
}
.select2-dropdown {
    border: 1px solid var(--md-sys-color-outline-variant, #c6c8ba);
    border-radius: 0;
    font-family: inherit;
    font-size: 0.95rem;
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: var(--md-sys-color-on-background, #1b1c19);
    color: var(--md-sys-color-background, #faf9f4);
}

/* paqAR tracking/branch info rendered on thankyou via plugin hook */
.woocommerce-order .ca-tracking,
.woocommerce-order [class*="correoargentino"] {
    font-family: inherit;
    font-size: 0.95rem;
    color: var(--md-sys-color-on-background, #1b1c19);
}
