/* ============================================================
   ARCADE DIRECT — QUOTE BUILDER STYLES
   ============================================================ */

/* ============================================================
   QUOTE BUILDER WRAPPER
   ============================================================ */
.quote-builder {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: var(--space-8);
    align-items: start;
    position: relative;
}

/* ============================================================
   STEP INDICATOR
   ============================================================ */
.quote-builder__steps {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 0;
    background: var(--white);
    border: 1.5px solid var(--brand-grey-soft);
    border-radius: var(--radius-xl);
    overflow: hidden;
    margin-bottom: var(--space-6);
}

.quote-step {
    flex: 1;
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-5);
    cursor: pointer;
    transition: background-color var(--transition-fast);
    border-right: 1px solid var(--brand-grey-soft);
    position: relative;
}
.quote-step:last-child { border-right: none; }

.quote-step__num {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--brand-grey-soft);
    color: var(--brand-grey-mid);
    font-size: var(--text-sm);
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background-color var(--transition-fast), color var(--transition-fast);
}

.quote-step__label {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--brand-grey-mid);
    transition: color var(--transition-fast);
}

.quote-step--active .quote-step__num {
    background: var(--brand-teal);
    color: var(--white);
}
.quote-step--active .quote-step__label {
    color: var(--brand-navy-deep);
}

.quote-step--completed .quote-step__num {
    background: var(--brand-teal-dark);
    color: var(--white);
}
.quote-step--completed .quote-step__num::after {
    content: '✓';
}

/* ============================================================
   PANELS
   ============================================================ */
.quote-builder__panel {
    grid-column: 1;
    background: var(--white);
    border-radius: var(--radius-xl);
    border: 1.5px solid var(--brand-grey-soft);
    padding: var(--space-8);
}

.quote-builder__panel-header {
    margin-bottom: var(--space-6);
}
.quote-builder__panel-header h2 {
    margin-bottom: var(--space-2);
    font-size: var(--text-2xl);
}
.quote-builder__panel-header p {
    color: var(--brand-grey-mid);
    margin: 0;
}

/* ============================================================
   CATEGORY FILTER TABS
   ============================================================ */
.quote-filter-tabs {
    display: flex;
    gap: var(--space-2);
    flex-wrap: wrap;
    margin-bottom: var(--space-6);
}

.quote-filter-tab {
    padding: var(--space-2) var(--space-4);
    font-size: var(--text-sm);
    font-weight: 600;
    border: 1.5px solid var(--brand-grey-soft);
    border-radius: var(--radius-full);
    background: var(--white);
    color: var(--brand-grey-mid);
    cursor: pointer;
    transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
}
.quote-filter-tab:hover {
    border-color: var(--brand-teal);
    color: var(--brand-teal);
}
.quote-filter-tab--active {
    background: var(--brand-teal);
    border-color: var(--brand-teal);
    color: var(--white);
}

/* ============================================================
   PRODUCT GRID
   ============================================================ */
.quote-products-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-5);
    margin-bottom: var(--space-8);
}

.quote-product-card {
    border: 1.5px solid var(--brand-grey-soft);
    border-radius: var(--radius-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow var(--transition-base), transform var(--transition-base);
    background: var(--white);
}
.quote-product-card:hover {
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}
.quote-product-card--added {
    border-color: var(--brand-teal);
    box-shadow: 0 0 0 3px rgba(53, 187, 157, 0.15);
}

.quote-product-card__image {
    aspect-ratio: 4/3;
    overflow: hidden;
}
.quote-product-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-slow);
}
.quote-product-card:hover .quote-product-card__image img {
    transform: scale(1.04);
}

.quote-product-card__body {
    padding: var(--space-4);
    flex: 1;
}
.quote-product-card__title {
    font-size: var(--text-sm);
    font-weight: 700;
    margin-bottom: var(--space-2);
    line-height: 1.3;
}
.quote-product-card__title a {
    color: var(--brand-navy-deep);
    text-decoration: none;
}
.quote-product-card__title a:hover { color: var(--brand-teal); }
.quote-product-card__price {
    font-size: var(--text-xs);
    color: var(--brand-teal-dark);
    font-weight: 700;
    margin-bottom: var(--space-2);
}
.quote-product-card__excerpt {
    font-size: var(--text-xs);
    color: var(--brand-grey-mid);
    line-height: 1.5;
}

.quote-product-card__footer {
    padding: var(--space-3) var(--space-4);
    border-top: 1px solid var(--brand-grey-soft);
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

/* Qty controls */
.quote-product-card__qty {
    display: flex;
    align-items: center;
    gap: var(--space-1);
}
.qty-btn {
    width: 28px;
    height: 28px;
    border: 1.5px solid var(--brand-grey-soft);
    border-radius: var(--radius-sm);
    background: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background-color var(--transition-fast), border-color var(--transition-fast);
    flex-shrink: 0;
}
.qty-btn svg { width: 14px; height: 14px; fill: var(--brand-navy-deep); }
.qty-btn:hover { background: var(--brand-teal-light); border-color: var(--brand-teal); }
.qty-input {
    width: 36px;
    text-align: center;
    font-size: var(--text-sm);
    font-weight: 700;
    border: 1.5px solid var(--brand-grey-soft);
    border-radius: var(--radius-sm);
    padding: var(--space-1);
    -moz-appearance: textfield;
}
.qty-input::-webkit-outer-spin-button,
.qty-input::-webkit-inner-spin-button { -webkit-appearance: none; }

/* ============================================================
   UPSELLS
   ============================================================ */
.quote-upsells {
    background: linear-gradient(135deg, var(--brand-teal-light) 0%, #f0faf7 100%);
    border: 1.5px solid var(--brand-teal);
    border-radius: var(--radius-xl);
    padding: var(--space-6);
    margin-bottom: var(--space-6);
}
.quote-upsells__title {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: var(--text-base);
    margin-bottom: var(--space-4);
    color: var(--brand-teal-dark);
}
.quote-upsells__title svg { width: 20px; height: 20px; fill: var(--brand-teal); }
.quote-upsells__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-4);
}
.upsell-card {
    background: var(--white);
    border-radius: var(--radius-lg);
    overflow: hidden;
    border: 1.5px solid var(--brand-grey-soft);
    cursor: pointer;
    transition: box-shadow var(--transition-fast), border-color var(--transition-fast);
}
.upsell-card:hover { box-shadow: var(--shadow-sm); border-color: var(--brand-teal); }
.upsell-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.upsell-card__body { padding: var(--space-3); }
.upsell-card__name { font-size: var(--text-xs); font-weight: 700; color: var(--brand-navy-deep); margin-bottom: var(--space-1); }
.upsell-card__price { font-size: var(--text-xs); color: var(--brand-teal-dark); }
.upsell-card__add {
    width: 100%;
    padding: var(--space-2);
    background: var(--brand-teal);
    color: var(--white);
    font-size: var(--text-xs);
    font-weight: 700;
    border: none;
    cursor: pointer;
    transition: background-color var(--transition-fast);
}
.upsell-card__add:hover { background: var(--brand-teal-dark); }

/* ============================================================
   STEP NAV
   ============================================================ */
.quote-builder__step-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    margin-top: var(--space-8);
    padding-top: var(--space-6);
    border-top: 1px solid var(--brand-grey-soft);
}
.quote-summary-bar {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--brand-grey-mid);
}

/* ============================================================
   QUOTE REVIEW (STEP 2)
   ============================================================ */
.quote-items-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}
.quote-item {
    display: grid;
    grid-template-columns: 72px 1fr auto;
    gap: var(--space-4);
    align-items: center;
    padding: var(--space-4);
    border: 1.5px solid var(--brand-grey-soft);
    border-radius: var(--radius-lg);
    background: var(--white);
}
.quote-item__image {
    width: 72px;
    height: 72px;
    border-radius: var(--radius-md);
    overflow: hidden;
    flex-shrink: 0;
}
.quote-item__image img { width: 100%; height: 100%; object-fit: cover; }
.quote-item__name { font-weight: 700; font-size: var(--text-sm); color: var(--brand-navy-deep); margin-bottom: var(--space-1); }
.quote-item__price { font-size: var(--text-xs); color: var(--brand-teal-dark); }
.quote-item__controls {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}
.quote-item__remove {
    background: none;
    border: none;
    cursor: pointer;
    color: var(--brand-grey-mid);
    padding: var(--space-1);
    transition: color var(--transition-fast);
}
.quote-item__remove:hover { color: var(--brand-red); }
.quote-item__remove svg { width: 18px; height: 18px; fill: currentColor; }

.quote-review__empty {
    text-align: center;
    padding: var(--space-12);
    color: var(--brand-grey-mid);
}
.quote-review__empty svg { width: 48px; height: 48px; fill: var(--brand-grey-soft); margin-bottom: var(--space-4); }

/* ============================================================
   QUOTE FORM (STEP 3)
   ============================================================ */
.quote-form__grid {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
}
.quote-form__fieldset {
    border: 1.5px solid var(--brand-grey-soft);
    border-radius: var(--radius-lg);
    padding: var(--space-6);
}
.quote-form__legend {
    font-weight: 800;
    font-size: var(--text-base);
    color: var(--brand-navy-deep);
    padding: 0 var(--space-2);
}
.form-row { display: grid; gap: var(--space-4); }
.form-row--half { grid-template-columns: 1fr 1fr; }
.form-field { display: flex; flex-direction: column; gap: var(--space-2); }
.form-label {
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--brand-navy-deep);
}
.form-label .required { color: var(--brand-red); margin-left: 2px; }
.form-input,
.form-select,
.form-textarea {
    padding: var(--space-3) var(--space-4);
    border: 1.5px solid var(--brand-grey-soft);
    border-radius: var(--radius-md);
    font-family: var(--font-main);
    font-size: var(--text-base);
    color: var(--brand-navy-deep);
    background: var(--white);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}
.form-input:focus,
.form-select:focus,
.form-textarea:focus {
    outline: none;
    border-color: var(--brand-teal);
    box-shadow: 0 0 0 3px rgba(53, 187, 157, 0.15);
}
.form-input:invalid:not(:placeholder-shown),
.form-input[aria-invalid="true"] {
    border-color: var(--brand-red);
}
.form-textarea { resize: vertical; min-height: 100px; }

.quote-form__errors {
    background: #fef2f2;
    border: 1.5px solid var(--brand-red);
    border-radius: var(--radius-md);
    padding: var(--space-4);
    color: var(--brand-red-dark);
    font-size: var(--text-sm);
    font-weight: 600;
    margin-top: var(--space-4);
}

/* ============================================================
   CONFIRMATION (STEP 4)
   ============================================================ */
.quote-confirmation {
    text-align: center;
    padding: var(--space-12) var(--space-8);
}
.quote-confirmation__icon {
    width: 80px;
    height: 80px;
    background: var(--brand-teal-light);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto var(--space-6);
}
.quote-confirmation__icon svg { width: 40px; height: 40px; fill: var(--brand-teal); }
.quote-confirmation__title { font-size: var(--text-3xl); margin-bottom: var(--space-4); }
.quote-confirmation__message { color: var(--brand-grey-mid); font-size: var(--text-lg); max-width: 500px; margin: 0 auto var(--space-8); }
.quote-confirmation__actions { display: flex; gap: var(--space-4); justify-content: center; flex-wrap: wrap; }

/* ============================================================
   FLOATING SUMMARY (STICKY SIDEBAR)
   ============================================================ */
.quote-floating-summary {
    grid-column: 2;
    grid-row: 2 / 10;
    position: sticky;
    top: calc(var(--space-4) + 80px);
    background: var(--white);
    border: 1.5px solid var(--brand-grey-soft);
    border-radius: var(--radius-xl);
    padding: var(--space-5);
    max-height: calc(100vh - 120px);
    overflow-y: auto;
}
.quote-floating-summary__header {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-4);
    padding-bottom: var(--space-4);
    border-bottom: 1px solid var(--brand-grey-soft);
}
.quote-floating-summary__header svg { width: 20px; height: 20px; fill: var(--brand-teal); }
.quote-floating-summary__title { font-weight: 800; font-size: var(--text-base); flex: 1; }
.quote-floating-summary__items {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    min-height: 60px;
}
.floating-item {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    font-size: var(--text-sm);
}
.floating-item img { width: 44px; height: 44px; object-fit: cover; border-radius: var(--radius-sm); flex-shrink: 0; }
.floating-item__name { font-weight: 600; color: var(--brand-navy-deep); flex: 1; line-height: 1.3; }
.floating-item__qty { font-size: var(--text-xs); color: var(--brand-grey-mid); }
.floating-empty { font-size: var(--text-sm); color: var(--brand-grey-mid); text-align: center; padding: var(--space-4) 0; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
    .quote-builder { grid-template-columns: 1fr; }
    .quote-floating-summary { grid-column: 1; grid-row: auto; position: static; }
    .quote-products-grid { grid-template-columns: repeat(2, 1fr); }
    .quote-upsells__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .quote-builder__steps { flex-wrap: wrap; }
    .quote-step { flex: 0 0 50%; border-bottom: 1px solid var(--brand-grey-soft); }
    .quote-builder__panel { padding: var(--space-5); }
    .form-row--half { grid-template-columns: 1fr; }
    .quote-item { grid-template-columns: 56px 1fr; }
    .quote-item__controls { grid-column: 1 / -1; justify-content: flex-end; }
}

@media (max-width: 480px) {
    .quote-products-grid { grid-template-columns: 1fr; }
    .quote-upsells__grid { grid-template-columns: 1fr; }
    .quote-builder__step-nav { flex-direction: column; }
    .quote-builder__step-nav .btn { width: 100%; }
}

/* Arcade Direct quote architecture: navy/teal, mobile-first, one shared hire shortlist. */
.ad-quote-builder { background: var(--brand-grey-soft, #d3e3e3); color: var(--brand-navy-deep, #081224); padding: 3rem 0; }
.ad-quote-builder__intro { max-width: 52rem; margin: 0 0 1.75rem; }
.ad-quote-builder__intro h1 { margin: .35rem 0 .75rem; color: var(--brand-navy-deep, #081224); }
.ad-quote-builder__intro p:last-child { color: var(--brand-grey-mid, #52606f); max-width: 46rem; }
.ad-quote-tabs, .ad-quote-lanes { display: flex; gap: .5rem; flex-wrap: wrap; }
.ad-quote-tabs { border-bottom: 2px solid rgba(8,18,36,.16); margin-bottom: 1.25rem; }
.ad-quote-tab, .ad-quote-lane { appearance: none; background: transparent; border: 0; border-bottom: 3px solid transparent; color: var(--brand-navy-deep, #081224); cursor: pointer; font: inherit; font-weight: 700; min-height: 48px; padding: .65rem 1rem; }
.ad-quote-tab[aria-selected="true"] { border-bottom-color: var(--brand-teal, #35BB9D); color: var(--brand-teal-dark, #26927A); }
.ad-quote-lanes { margin: 0 0 1rem; }
.ad-quote-lane { background: #fff; border: 1px solid rgba(8,18,36,.17); border-radius: 999px; min-height: 44px; padding: .5rem .9rem; }
.ad-quote-lane.is-active { background: var(--brand-teal, #35BB9D); border-color: var(--brand-teal, #35BB9D); color: #fff; }
.ad-quote-tab:focus-visible, .ad-quote-lane:focus-visible, .ad-quote-card a:focus-visible, .ad-quote-item a:focus-visible, .ad-quote-quantity:focus-visible, .ad-quote-remove:focus-visible { outline: 3px solid var(--brand-teal, #35BB9D); outline-offset: 3px; }
.ad-quote-panel { background: #fff; border: 1px solid rgba(8,18,36,.13); padding: 1rem; }
.ad-quote-panel__note, .ad-quote-summary__note { color: var(--brand-grey-mid, #52606f); font-size: .9375rem; line-height: 1.5; }
.ad-quote-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); list-style: none; margin: 0; padding: 0; }
.ad-quote-card { border: 1px solid rgba(8,18,36,.15); display: flex; flex-direction: column; min-width: 0; }
.ad-quote-card__image { background: #fff; display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.ad-quote-card__image img { height: 100%; object-fit: cover; width: 100%; }
.ad-quote-card__body { flex: 1; padding: .9rem; }
.ad-quote-card__body h3 { font-size: 1rem; line-height: 1.28; margin: 0; }
.ad-quote-card__body h3 a, .ad-quote-item a { color: var(--brand-navy-deep, #081224); text-decoration: none; }
.ad-quote-card__lane { color: var(--brand-teal-dark, #26927A); font-size: .75rem; font-weight: 800; letter-spacing: .06em; margin: 0 0 .35rem; text-transform: uppercase; }
.ad-quote-card__rate { color: var(--brand-grey-mid, #52606f); font-size: .875rem; line-height: 1.45; margin: .65rem 0 0; }
.ad-quote-card__action { border-top: 1px solid rgba(8,18,36,.12); padding: .75rem; }
.ad-quote-card__action .ad-button { width: 100%; }
.ad-quote-card.is-in-quote, .ad-product-card.is-in-quote { border-color: var(--brand-teal, #35BB9D); box-shadow: inset 0 0 0 2px rgba(53,187,157,.2); }
.ad-quote-card .js-add-to-quote[aria-pressed="true"], .ad-product-card .js-add-to-quote[aria-pressed="true"] { background: var(--brand-navy-deep, #081224); border-color: var(--brand-navy-deep, #081224); color: #fff; }
.ad-quote-card .js-add-to-quote:disabled, .ad-product-card .js-add-to-quote:disabled { cursor: default; opacity: 1; }
.ad-quote-card__selected { color: var(--brand-teal-dark, #26927A); font-size: .78rem; font-weight: 700; margin: .55rem 0 0; text-align: center; }
.ad-quote-summary { background: var(--brand-navy-deep, #081224); color: #fff; margin-top: 1.25rem; padding: 1.25rem; }
.ad-quote-summary h2 { color: #fff; font-size: 1.35rem; margin: .25rem 0 1rem; }
.ad-quote-summary .ad-label, .ad-quote-summary__note { color: #d3e3e3; }
.ad-quote-summary-group { border-top: 1px solid rgba(211,227,227,.35); padding-top: .8rem; }
.ad-quote-summary-group + .ad-quote-summary-group { margin-top: .9rem; }
.ad-quote-summary-group h3 { color: #d3e3e3; font-size: .75rem; letter-spacing: .08em; margin: 0 0 .55rem; text-transform: uppercase; }
.ad-quote-item { align-items: center; display: grid; gap: .65rem; grid-template-columns: 48px minmax(0,1fr); padding: .55rem 0; }
.ad-quote-item img { height: 48px; object-fit: cover; width: 48px; }
.ad-quote-item a { color: #fff; font-size: .92rem; font-weight: 700; }
.ad-quote-item p { color: #d3e3e3; font-size: .78rem; line-height: 1.35; margin: .2rem 0 0; }
.ad-quote-item__actions { display: flex; gap: .35rem; grid-column: 1 / -1; justify-content: flex-end; }
.ad-quote-quantity, .ad-quote-quantity-input, .ad-quote-remove { min-height: 44px; }
.ad-quote-quantity, .ad-quote-remove { border: 1px solid rgba(211,227,227,.55); background: transparent; color: #fff; cursor: pointer; font: inherit; padding: 0 .65rem; }
.ad-quote-quantity-input { border: 1px solid rgba(211,227,227,.55); background: #fff; color: var(--brand-navy-deep, #081224); max-width: 3.5rem; padding: .2rem; text-align: center; }
.ad-quote-remove { color: #fff; font-size: .8rem; margin-left: .25rem; }
.ad-quote-item__single { color: #d3e3e3; font-size: .8rem; padding: .75rem .25rem; }
.ad-quote-empty { color: inherit; line-height: 1.5; margin: 0; padding: 1rem 0; }
.ad-quote-enquiry { background: #fff; border-left: 4px solid var(--brand-teal, #35BB9D); margin-top: 1.25rem; padding: 1.25rem; }
.ad-quote-enquiry h2 { margin-top: 0; }
.ad-quote-enquiry > p { color: var(--brand-grey-mid, #52606f); max-width: 48rem; }
.ad-button--teal { background: var(--brand-teal, #35BB9D); border-color: var(--brand-teal, #35BB9D); color: #081224; }
.ad-button--teal:hover { background: var(--brand-teal-dark, #26927A); border-color: var(--brand-teal-dark, #26927A); color: #fff; }
.js-quote-enquiry-link.is-disabled { cursor: not-allowed; opacity: .55; pointer-events: auto; }
.ad-product-card { display: flex; flex-direction: column; min-width: 0; }
.ad-product-card__image { display: block; position: relative; }
.ad-product-card__image img { display: block; height: auto; width: 100%; }
.ad-product-card__availability { background: #081224; bottom: .75rem; color: #fff; font-size: .8rem; left: .75rem; padding: .35rem .5rem; position: absolute; }
.ad-product-card__body { flex: 1; padding: 1rem; }
.ad-product-card__eyebrow, .ad-product-card__rate { color: var(--brand-teal-dark, #26927A); font-size: .8rem; font-weight: 700; margin: 0 0 .35rem; }
.ad-product-card__rate { color: var(--brand-grey-mid, #52606f); font-weight: 600; margin-top: .55rem; }
.ad-product-card__action { margin-top: auto; padding: 0 1rem 1rem; }
.ad-product-card__action .ad-button { width: 100%; }

/*
 * ARCADE DIRECT — SHARED PRODUCT CARD SYSTEM
 * Design direction: restrained Manrope titles, quiet factual rate labels and
 * clear monetary values. Commerce rules remain the source of every price,
 * guide label and action.
 */
.ad-package-card__body,
.ad-product-card__body,
.ad-quote-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.ad-card-title,
.ad-home-machines .ad-product-card__title.ad-card-title,
.ad-home-machines .woocommerce-loop-product__title.ad-card-title,
.ad-package-card__body .ad-card-title,
.ad-quote-card__body .ad-card-title {
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    color: var(--brand-navy-deep, #081224);
    display: -webkit-box;
    font-family: var(--font-main, sans-serif) !important;
    font-size: clamp(1.05rem, 1.2vw, 1.24rem) !important;
    font-style: normal;
    font-weight: 800;
    letter-spacing: -.032em;
    line-height: 1.16 !important;
    margin: 0 !important;
    min-height: 3.48em;
    overflow: hidden;
    text-transform: none !important;
}

.ad-card-title a,
.ad-product-card .woocommerce-loop-product__title a,
.ad-quote-card__body h3 a {
    color: inherit;
    text-decoration: none;
}

.ad-card-title a:hover,
.ad-card-title a:focus-visible,
.ad-product-card .woocommerce-loop-product__title a:hover,
.ad-product-card .woocommerce-loop-product__title a:focus-visible,
.ad-quote-card__body h3 a:hover,
.ad-quote-card__body h3 a:focus-visible {
    color: var(--brand-teal-dark, #26927A);
    text-decoration: underline;
    text-decoration-color: var(--brand-teal, #35BB9D);
    text-decoration-thickness: .11em;
    text-underline-offset: .12em;
}

.ad-card-price,
.ad-product-card__rate.ad-card-price,
.ad-quote-card__rate.ad-card-price {
    align-items: baseline;
    color: var(--brand-navy-deep, #081224);
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .55rem;
    margin: 1rem 0 0 !important;
}

.ad-card-price__label {
    color: var(--brand-grey-mid, #52606f);
    font-family: var(--font-mono, monospace);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .055em;
    line-height: 1.3;
    text-transform: uppercase;
}

.ad-card-price__value,
.ad-card-price__value .price,
.ad-card-price__value .amount,
.ad-card-price__value bdi {
    color: var(--brand-navy-deep, #081224);
    font-family: var(--font-main, sans-serif) !important;
    font-size: 1.08rem;
    font-style: normal;
    font-weight: 800;
    letter-spacing: -.025em;
    line-height: 1.2;
}

.ad-card-price__value .price {
    display: inline;
}

.ad-card-action,
.ad-package-card__body .ad-card-action {
    color: var(--brand-teal-dark, #26927A);
    font-family: var(--font-mono, monospace);
    font-size: .71rem;
    font-style: normal;
    font-weight: 600;
    letter-spacing: .055em;
    line-height: 1.3;
    margin-top: auto;
    padding-top: 1.35rem;
    text-transform: uppercase;
}

.ad-product-card__action,
.ad-quote-card__action {
    margin-top: auto;
    padding-top: 1.15rem;
}

.ad-product-card__action .ad-button,
.ad-quote-card__action .ad-button {
    min-height: 3rem;
}

@media (min-width: 900px) { .ad-quote-builder .ad-container { display: grid; grid-template-columns: minmax(0, 1fr) 20rem; column-gap: 1.5rem; } .ad-quote-builder__intro, .ad-quote-tabs, .ad-quote-panel, .ad-quote-enquiry { grid-column: 1; } .ad-quote-summary { grid-column: 2; grid-row: 2 / span 3; align-self: start; margin-top: 0; position: sticky; top: 1rem; } }

/*
 * ARCADE DIRECT — SINGLE PRODUCT PAGE REPAIR
 * One coherent sequence: summary, canonical product tabs, explicit packages,
 * then related products. Cards use the established Manrope/mono hierarchy.
 */
.single-product div.product {
    clear: both;
    display: grid;
    gap: clamp(2.5rem, 5vw, 5.5rem);
    margin: 0 auto;
    max-width: 90rem;
    padding: clamp(2rem, 4vw, 4.5rem) clamp(1.25rem, 3vw, 2.5rem) 0;
}

.single-product div.product .woocommerce-product-gallery,
.single-product div.product .summary {
    float: none !important;
    margin: 0 !important;
    width: auto !important;
}

.single-product div.product .woocommerce-product-gallery {
    align-self: start;
}

.single-product div.product .woocommerce-product-gallery__image:first-child {
    align-items: center;
    aspect-ratio: 4 / 5;
    background: #fff;
    border: 1px solid rgba(8, 18, 36, .13);
    display: flex;
    justify-content: center;
    overflow: hidden;
}

.single-product div.product .woocommerce-product-gallery__image:first-child img {
    height: 100%;
    object-fit: contain;
    width: 100%;
}

.single-product div.product .summary {
    align-self: start;
    max-width: 38rem;
}

.single-product div.product .product_title {
    color: var(--brand-navy-deep, #081224);
    font-family: var(--font-display, sans-serif) !important;
    font-size: clamp(2.4rem, 4.2vw, 4.7rem) !important;
    font-weight: 700;
    letter-spacing: -.035em;
    line-height: .93 !important;
    margin: 0 0 1.35rem !important;
    text-transform: none !important;
}

.single-product div.product .woocommerce-product-details__short-description {
    color: #52606f;
    font-size: 1rem;
    line-height: 1.65;
    margin: 0 0 1.5rem;
    max-width: 38rem;
}

.single-product div.product .summary .price,
.single-product div.product .summary .price .amount,
.single-product div.product .summary .price bdi,
.single-product div.product .summary .price ins,
.single-product div.product .summary .price del {
    color: var(--brand-navy-deep, #081224) !important;
    font-family: var(--font-main, sans-serif) !important;
    font-size: clamp(1.45rem, 2vw, 2rem) !important;
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: 1.1;
}

.single-product div.product .summary .price del {
    color: #52606f !important;
    font-size: .95rem !important;
    font-weight: 600;
}

.single-product div.product .summary form.cart {
    border-top: 1px solid rgba(8, 18, 36, .14);
    margin: 1.5rem 0 1rem;
    padding-top: 1.5rem;
}

.single-product div.product .summary .single_add_to_cart_button,
.single-product div.product .summary .ad-button {
    min-height: 3.25rem;
}

.single-product div.product .product_meta {
    border-top: 1px solid rgba(8, 18, 36, .12);
    color: #52606f;
    font-size: .82rem;
    line-height: 1.55;
    margin-top: 1.25rem;
    padding-top: 1rem;
}

.single-product div.product .product_meta a {
    color: var(--brand-teal-dark, #26927A);
}

.single-product div.product .woocommerce-tabs,
.single-product div.product .ad-package-upsell,
.single-product div.product .related.products {
    grid-column: 1 / -1;
    margin: 0;
}

.single-product div.product .woocommerce-tabs {
    border-top: 1px solid rgba(8, 18, 36, .18);
    padding-top: clamp(2.25rem, 4vw, 4rem);
}

.single-product div.product .woocommerce-tabs ul.tabs {
    border: 0;
    display: flex;
    flex-wrap: wrap;
    gap: .35rem 1.25rem;
    margin: 0 0 1.75rem;
    padding: 0;
}

.single-product div.product .woocommerce-tabs ul.tabs::before,
.single-product div.product .woocommerce-tabs ul.tabs li::before,
.single-product div.product .woocommerce-tabs ul.tabs li::after {
    display: none;
}

.single-product div.product .woocommerce-tabs ul.tabs li {
    background: transparent;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    margin: 0;
    padding: 0 0 .45rem;
}

.single-product div.product .woocommerce-tabs ul.tabs li.active {
    border-bottom-color: var(--brand-teal, #35BB9D);
}

.single-product div.product .woocommerce-tabs ul.tabs li a {
    color: var(--brand-navy-deep, #081224);
    font-family: var(--font-mono, monospace);
    font-size: .74rem;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.single-product div.product .woocommerce-Tabs-panel {
    color: #354052;
    line-height: 1.7;
    margin: 0;
    max-width: 70rem;
    padding: 0;
}

.single-product div.product .woocommerce-Tabs-panel > h2:first-child {
    color: var(--brand-navy-deep, #081224);
    font-family: var(--font-display, sans-serif);
    font-size: clamp(2rem, 3vw, 3.4rem);
    line-height: .95;
    margin: 0 0 1rem;
}

.single-product div.product .ad-package-upsell {
    background: #d3e3e3;
    padding: clamp(1.5rem, 3vw, 3rem);
}

.single-product div.product .ad-package-upsell__heading {
    align-items: end;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 2rem;
    justify-content: space-between;
    margin: 0 0 1.5rem;
}

.single-product div.product .ad-package-upsell h2,
.single-product div.product .related.products > h2 {
    color: var(--brand-navy-deep, #081224);
    font-family: var(--font-display, sans-serif);
    font-size: clamp(2.1rem, 3.1vw, 3.6rem);
    line-height: .92;
    margin: .3rem 0 .65rem;
}

.single-product div.product .ad-package-upsell__heading > div > p:last-child {
    color: #354052;
    margin: 0;
    max-width: 38rem;
}

.single-product div.product .related.products {
    padding: clamp(2.5rem, 4vw, 4.5rem) 0 0;
}

.single-product div.product .related.products > h2 {
    margin-bottom: 1.5rem;
}

.single-product div.product .ad-package-upsell .products,
.single-product div.product .related.products .products {
    display: grid !important;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr);
    list-style: none;
    margin: 0 !important;
    padding: 0;
}

.single-product div.product .ad-package-upsell .ad-product-card,
.single-product div.product .related.products .ad-product-card {
    background: #fff;
    border: 1px solid rgba(8, 18, 36, .14);
    border-radius: 0;
    display: flex !important;
    float: none !important;
    margin: 0 !important;
    min-height: 0 !important;
    overflow: hidden;
    width: auto !important;
}

.single-product div.product .ad-package-upsell .ad-product-card__image,
.single-product div.product .related.products .ad-product-card__image {
    align-items: center;
    aspect-ratio: 4 / 3;
    background: #fff;
    display: flex;
    justify-content: center;
    overflow: hidden;
}

.single-product div.product .ad-package-upsell .ad-product-card__image img,
.single-product div.product .related.products .ad-product-card__image img {
    height: 100% !important;
    object-fit: contain;
    width: 100% !important;
}

.single-product div.product .ad-package-upsell .ad-product-card__body,
.single-product div.product .related.products .ad-product-card__body {
    flex: 0 0 auto;
    padding: 1rem;
}

.single-product div.product .ad-package-upsell .ad-card-title,
.single-product div.product .related.products .ad-card-title {
    font-size: 1.05rem !important;
    min-height: 0;
}

.single-product div.product .ad-package-upsell .ad-product-card__action,
.single-product div.product .related.products .ad-product-card__action {
    padding: 0 1rem 1rem;
}

.single-product div.product .ad-package-upsell .ad-product-card__action .ad-button,
.single-product div.product .related.products .ad-product-card__action .ad-button {
    min-height: 2.8rem;
}

@media (min-width: 700px) {
    .single-product div.product .ad-package-upsell .products,
    .single-product div.product .related.products .products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 980px) {
    .single-product div.product {
        grid-template-columns: minmax(0, .85fr) minmax(23rem, 1fr);
    }

    .single-product div.product .ad-package-upsell .products,
    .single-product div.product .related.products .products {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* Central commercial truth on individual product pages. */
.single-product div.product .ad-product-commercial__rate {
    border-bottom: 1px solid rgba(8, 18, 36, .14);
    border-top: 1px solid rgba(8, 18, 36, .14);
    display: grid;
    gap: .25rem;
    margin: 1.35rem 0 0;
    padding: 1rem 0;
}

.single-product div.product .ad-product-commercial__label {
    color: #52606f;
    font-family: var(--font-mono, monospace);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .06em;
    line-height: 1.3;
    text-transform: uppercase;
}

.single-product div.product .ad-product-commercial__rate strong,
.single-product div.product .ad-product-commercial__sale-guide strong {
    color: var(--brand-navy-deep, #081224);
    font-family: var(--font-main, sans-serif);
    font-size: clamp(1.45rem, 2vw, 2rem);
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: 1.1;
}

.single-product div.product .ad-product-commercial {
    display: grid;
    gap: 1rem;
    margin-top: 1.25rem;
}

.single-product div.product .ad-product-commercial > .ad-button {
    min-height: 3.25rem;
    width: 100%;
}

.single-product div.product .ad-product-commercial__sale-guide {
    border-left: 3px solid var(--brand-teal, #35BB9D);
    display: grid;
    gap: .45rem;
    margin-top: .25rem;
    padding: .9rem 0 .9rem 1rem;
}

.single-product div.product .ad-product-commercial__sale-guide strong {
    font-size: 1.18rem;
}

.single-product div.product .ad-product-commercial__sale-guide .ad-button {
    justify-self: start;
    margin-top: .35rem;
    min-height: 2.8rem;
}

.single-product div.product .ad-product-commercial__unavailable {
    border-top: 1px solid rgba(8, 18, 36, .14);
    color: #52606f;
    font-weight: 700;
    margin: 1.5rem 0 0;
    padding-top: 1rem;
}

/* Hire delivery guidance: one transparent regional reference beside the commercial decision. */
.single-product div.product .ad-hire-delivery {
    border: 1px solid rgba(8, 18, 36, .15);
    border-radius: 0;
    margin-top: 1.5rem;
    overflow: hidden;
}

.single-product div.product .ad-hire-delivery__intro {
    padding: 1.25rem 1.25rem 1rem;
}

.single-product div.product .ad-hire-delivery h2 {
    color: var(--brand-navy-deep, #081224);
    font-family: var(--font-main, sans-serif);
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.15;
    margin: 0 0 .45rem;
}

.single-product div.product .ad-hire-delivery p {
    color: #52606f;
    font-size: .9rem;
    line-height: 1.5;
    margin: 0;
}

.single-product div.product .ad-hire-delivery__table {
    border-collapse: collapse;
    border-top: 1px solid rgba(8, 18, 36, .15);
    margin: 0;
    width: 100%;
}

.single-product div.product .ad-hire-delivery__table th,
.single-product div.product .ad-hire-delivery__table td {
    border-bottom: 1px solid rgba(8, 18, 36, .12);
    padding: .8rem 1rem;
    text-align: left;
    vertical-align: middle;
}

.single-product div.product .ad-hire-delivery__table tr:last-child th,
.single-product div.product .ad-hire-delivery__table tr:last-child td { border-bottom: 0; }

.single-product div.product .ad-hire-delivery__table th {
    color: var(--brand-navy-deep, #081224);
    font-family: var(--font-main, sans-serif);
    font-size: .88rem;
    font-weight: 800;
}

.single-product div.product .ad-hire-delivery__table td {
    color: #52606f;
    font-family: var(--font-mono, monospace);
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .035em;
    text-align: right;
    text-transform: uppercase;
    white-space: nowrap;
}

.single-product div.product .ad-hire-delivery__table strong {
    color: var(--brand-navy-deep, #081224);
    font-family: var(--font-main, sans-serif);
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: -.02em;
}

/* Custom counterpart: an intentional direct route, separate from package merchandising. */
.single-product div.product .ad-custom-counterpart {
    border-left: 3px solid var(--brand-teal, #35BB9D);
    display: grid;
    gap: .55rem;
    margin-top: 1.25rem;
    padding: 1rem 0 1rem 1rem;
}

.single-product div.product .ad-custom-counterpart__eyebrow {
    color: var(--brand-teal-dark, #26927A);
    font-family: var(--font-mono, monospace);
    font-size: .67rem;
    font-weight: 600;
    letter-spacing: .065em;
    margin: 0;
    text-transform: uppercase;
}

.single-product div.product .ad-custom-counterpart h2 {
    color: var(--brand-navy-deep, #081224);
    font-family: var(--font-main, sans-serif);
    font-size: 1.18rem;
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.15;
    margin: 0;
}

.single-product div.product .ad-custom-counterpart > p:not(.ad-custom-counterpart__eyebrow) {
    color: #52606f;
    font-size: .92rem;
    line-height: 1.5;
    margin: 0;
    max-width: 38rem;
}

.single-product div.product .ad-custom-counterpart .ad-text-link {
    justify-self: start;
    margin-top: .15rem;
}

/* Hire process: short operational clarity in the product decision flow, never a duplicate category-page feature. */
.single-product div.product .ad-hire-process {
    border-top: 1px solid rgba(8, 18, 36, .16);
    margin-top: 1.75rem;
    padding-top: 1.5rem;
}

.single-product div.product .ad-hire-process__heading {
    display: grid;
    gap: .3rem;
    margin-bottom: 1.1rem;
}

.single-product div.product .ad-hire-process__eyebrow {
    color: var(--brand-teal-dark, #26927A);
    font-family: var(--font-mono, monospace);
    font-size: .67rem;
    font-weight: 600;
    letter-spacing: .065em;
    margin: 0;
    text-transform: uppercase;
}

.single-product div.product .ad-hire-process h2 {
    color: var(--brand-navy-deep, #081224);
    font-family: var(--font-main, sans-serif);
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.15;
    margin: 0;
}

.single-product div.product .ad-hire-process__steps {
    display: grid;
    gap: .75rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.single-product div.product .ad-hire-process__steps li {
    align-items: start;
    border-top: 1px solid rgba(8, 18, 36, .1);
    display: grid;
    gap: .75rem;
    grid-template-columns: 2rem minmax(0, 1fr);
    padding-top: .75rem;
}

.single-product div.product .ad-hire-process__number {
    color: var(--brand-teal-dark, #26927A);
    font-family: var(--font-mono, monospace);
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .05em;
    line-height: 1.5;
}

.single-product div.product .ad-hire-process h3 {
    color: var(--brand-navy-deep, #081224);
    font-family: var(--font-main, sans-serif);
    font-size: .95rem;
    font-weight: 800;
    line-height: 1.25;
    margin: 0 0 .22rem;
}

.single-product div.product .ad-hire-process__steps p {
    color: #52606f;
    font-size: .86rem;
    line-height: 1.5;
    margin: 0;
}

/* Event services route: a concise secondary conversion path for higher-complexity hire enquiries. */
.single-product div.product .ad-event-services-route {
    background: var(--brand-navy-deep, #081224);
    color: #fff;
    display: grid;
    gap: .65rem;
    margin-top: 1.5rem;
    padding: 1.25rem;
}

.single-product div.product .ad-event-services-route__eyebrow {
    color: var(--brand-teal, #35BB9D);
    font-family: var(--font-mono, monospace);
    font-size: .67rem;
    font-weight: 600;
    letter-spacing: .065em;
    margin: 0;
    text-transform: uppercase;
}

.single-product div.product .ad-event-services-route h2 {
    color: #fff;
    font-family: var(--font-main, sans-serif);
    font-size: 1.22rem;
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.15;
    margin: 0;
}

.single-product div.product .ad-event-services-route > p:not(.ad-event-services-route__eyebrow) {
    color: rgba(255, 255, 255, .78);
    font-size: .9rem;
    line-height: 1.5;
    margin: 0;
}

.single-product div.product .ad-event-services-route__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1rem;
    margin-top: .3rem;
}

.single-product div.product .ad-event-services-route__actions a {
    color: var(--brand-teal, #35BB9D);
    font-family: var(--font-mono, monospace);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .045em;
    min-height: 2.75rem;
    padding: .6rem 0;
    text-decoration: underline;
    text-underline-offset: .2em;
    text-transform: uppercase;
}

.single-product div.product .ad-event-services-route__actions a:hover,
.single-product div.product .ad-event-services-route__actions a:focus-visible { color: #fff; }

@media (max-width: 430px) {
    .single-product div.product .ad-hire-delivery__table th,
    .single-product div.product .ad-hire-delivery__table td { padding: .72rem .8rem; }
    .single-product div.product .ad-hire-delivery__table th { font-size: .8rem; }
    .single-product div.product .ad-hire-delivery__table td { font-size: .62rem; }
    .single-product div.product .ad-hire-delivery__table strong { font-size: .88rem; }
}

/* Quote selection feedback: server-backed count, reversible card action, and one light confirmation movement. */
.js-quote-count[hidden] { display: none !important; }

.ad-product-card__action .ad-card-quote-remove,
.ad-quote-card__action .ad-card-quote-remove {
    background: transparent;
    border: 0;
    color: var(--brand-navy-deep, #081224);
    cursor: pointer;
    font-family: var(--font-mono, monospace);
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .055em;
    margin-top: .1rem;
    min-height: 2.5rem;
    padding: .35rem .2rem;
    text-align: left;
    text-decoration: underline;
    text-underline-offset: .18em;
    text-transform: uppercase;
}

.ad-product-card__action .ad-card-quote-remove:hover,
.ad-product-card__action .ad-card-quote-remove:focus-visible,
.ad-quote-card__action .ad-card-quote-remove:hover,
.ad-quote-card__action .ad-card-quote-remove:focus-visible {
    color: var(--brand-teal-dark, #26927A);
}

.ad-card-quote-remove[hidden] { display: none; }

.ad-product-card__action .js-add-to-quote[data-quote-mode="remove"],
.ad-quote-card__action .js-add-to-quote[data-quote-mode="remove"] {
    background: var(--brand-navy-deep, #081224);
    border-color: var(--brand-navy-deep, #081224);
    color: #fff;
}

.ad-quote-fly-token {
    background: var(--brand-teal, #35BB9D);
    border-radius: 50%;
    height: .75rem;
    left: 0;
    opacity: 1;
    pointer-events: none;
    position: fixed;
    top: 0;
    transform: translate3d(-50%, -50%, 0) scale(1);
    width: .75rem;
    z-index: 999;
}

.ad-quote-fly-token.is-moving {
    opacity: .15;
    transform: translate3d(calc(-50% + var(--ad-quote-fly-x)), calc(-50% + var(--ad-quote-fly-y)), 0) scale(.55);
    transition: transform 420ms cubic-bezier(.23, 1, .32, 1), opacity 420ms cubic-bezier(.23, 1, .32, 1);
}

.header-action-btn--quote.is-quote-updated {
    animation: ad-quote-badge-pulse 520ms cubic-bezier(.23, 1, .32, 1);
}

@keyframes ad-quote-badge-pulse {
    0% { transform: scale(1); }
    40% { transform: scale(1.045); }
    100% { transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
    .header-action-btn--quote.is-quote-updated { animation: none; }
    .ad-quote-fly-token { display: none; }
}
