/**
 * IWS — Combined Stylesheet
 *
 * Single file containing all IWS design tokens and component styles.
 * To rebrand for a specific customer, override the :root variables
 * in a child theme or a custom stylesheet loaded after this one.
 *
 * The `.iws-dark` class flips the palette for light-on-dark usage.
 *
 * @package IWS
 * @since   2.1
 */


/* ==========================================================================
   1. DESIGN TOKENS  —  Light scheme (default)
   ========================================================================== */

:root {

    /* -- Brand ------------------------------------------------------------ */
    --iws-primary:             #2c5282;
    --iws-primary-hover:       #1a365d;
    --iws-primary-light:       #ebf4ff;
    --iws-secondary:           #2e7d32;
    --iws-secondary-hover:     #1b5e20;
    --iws-secondary-light:     #e8f5e9;

    /* -- Semantic (status) ------------------------------------------------ */
    --iws-success:             #38a169;
    --iws-success-bg:          #d4edda;
    --iws-success-border:      #c3e6cb;
    --iws-success-text:        #155724;

    --iws-error:               #e53e3e;
    --iws-error-bg:            #f8d7da;
    --iws-error-border:        #f5c6cb;
    --iws-error-text:          #721c24;

    --iws-warning:             #dd6b20;
    --iws-warning-bg:          #fff3cd;
    --iws-warning-border:      #ffc107;
    --iws-warning-text:        #856404;

    --iws-info:                #1565c0;
    --iws-info-bg:             #e3f2fd;
    --iws-info-border:         #90caf9;
    --iws-info-text:           #1565c0;

    /* -- Text ------------------------------------------------------------- */
    --iws-text:                #333333;
    --iws-text-light:          #666666;
    --iws-text-muted:          #999999;
    --iws-text-on-primary:     #ffffff;
    --iws-text-on-secondary:   #ffffff;

    /* -- Backgrounds ------------------------------------------------------ */
    --iws-bg:                  #ffffff;
    --iws-bg-alt:              #f8f8f8;
    --iws-bg-input:            #f7fafc;

    /* -- Borders ---------------------------------------------------------- */
    --iws-border:              #e0e0e0;
    --iws-border-light:        #f0f0f0;
    --iws-border-input:        #cccccc;

    /* -- Typography ------------------------------------------------------- */
    --iws-font-family:         -apple-system, BlinkMacSystemFont, "Segoe UI",
                               Roboto, "Helvetica Neue", Arial, sans-serif;
    --iws-font-family-heading: var(--iws-font-family);

    --iws-font-size-xs:        0.75rem;   /* 12px */
    --iws-font-size-sm:        0.875rem;  /* 14px */
    --iws-font-size-base:      1rem;      /* 16px */
    --iws-font-size-lg:        1.125rem;  /* 18px */
    --iws-font-size-xl:        1.5rem;    /* 24px */
    --iws-font-size-2xl:       2rem;      /* 32px */

    --iws-font-weight-normal:  400;
    --iws-font-weight-medium:  500;
    --iws-font-weight-semibold:600;
    --iws-font-weight-bold:    700;

    --iws-line-height:         1.6;
    --iws-line-height-tight:   1.3;

    /* -- Spacing ---------------------------------------------------------- */
    --iws-spacing-xs:          0.25rem;   /* 4px  */
    --iws-spacing-sm:          0.5rem;    /* 8px  */
    --iws-spacing-md:          1rem;      /* 16px */
    --iws-spacing-lg:          1.5rem;    /* 24px */
    --iws-spacing-xl:          2rem;      /* 32px */
    --iws-spacing-2xl:         3rem;      /* 48px */

    /* -- Radii ------------------------------------------------------------ */
    --iws-radius:              4px;
    --iws-radius-lg:           8px;

    /* -- Shadows ---------------------------------------------------------- */
    --iws-shadow:              0 2px 4px rgba(0, 0, 0, 0.1);
    --iws-shadow-lg:           0 4px 12px rgba(0, 0, 0, 0.15);

    /* -- Transition ------------------------------------------------------- */
    --iws-transition:          0.2s ease;

    /* -- Layout ----------------------------------------------------------- */
    --iws-container-max:       1200px;
    --iws-form-max-width:      480px;
    --iws-header-height:       var(--header-height, 0);
}


/* ==========================================================================
   1b. DESIGN TOKENS  —  Dark scheme
   Apply .iws-dark on a wrapper to flip the palette
   ========================================================================== */

.iws-dark {
    --iws-text:                #e8e8e8;
    --iws-text-light:          #b0b0b0;
    --iws-text-muted:          #808080;

    --iws-bg:                  #1a1a2e;
    --iws-bg-alt:              #16213e;
    --iws-bg-input:            #1e1e3a;

    --iws-border:              #333355;
    --iws-border-light:        #2a2a4a;
    --iws-border-input:        #444466;

    --iws-primary-light:       rgba(44, 82, 130, 0.25);
    --iws-secondary-light:     rgba(46, 125, 50, 0.25);

    --iws-success-bg:          rgba(56, 161, 105, 0.15);
    --iws-success-border:      rgba(56, 161, 105, 0.3);
    --iws-success-text:        #68d391;

    --iws-error-bg:            rgba(229, 62, 62, 0.15);
    --iws-error-border:        rgba(229, 62, 62, 0.3);
    --iws-error-text:          #fc8181;

    --iws-warning-bg:          rgba(221, 107, 32, 0.15);
    --iws-warning-border:      rgba(221, 107, 32, 0.3);
    --iws-warning-text:        #fbd38d;

    --iws-info-bg:             rgba(21, 101, 192, 0.15);
    --iws-info-border:         rgba(21, 101, 192, 0.3);
    --iws-info-text:           #90cdf4;
}


/* ==========================================================================
   2. POSTCODE CHECKER
   ========================================================================== */

.iws-postcode-checker {
    margin: var(--iws-spacing-lg) 0;
    padding: var(--iws-spacing-md);
    background: var(--iws-bg-alt);
    border: 1px solid var(--iws-border);
    border-radius: var(--iws-radius);
}

.iws-postcode-checker__label {
    display: block;
    margin-bottom: var(--iws-spacing-sm);
    font-weight: var(--iws-font-weight-semibold);
}

.iws-postcode-checker__input-group {
    display: flex;
    gap: var(--iws-spacing-sm);
    flex-wrap: wrap;
}

.iws-postcode-checker__input {
    flex: 1;
    min-width: 150px;
    max-width: 200px;
    padding: var(--iws-spacing-sm) 0.75em;
    border: 1px solid var(--iws-border-input);
    border-radius: var(--iws-radius);
    font-family: inherit;
    font-size: inherit;
    color: var(--iws-text);
    background: var(--iws-bg);
    text-transform: uppercase;
}

.iws-postcode-checker__input:focus {
    outline: none;
    border-color: var(--iws-primary);
    box-shadow: 0 0 0 1px var(--iws-primary);
}

.iws-postcode-checker__button {
    padding: var(--iws-spacing-sm) var(--iws-spacing-lg);
    background: var(--iws-primary);
    color: var(--iws-text-on-primary);
    border: none;
    border-radius: var(--iws-radius);
    font-family: inherit;
    font-size: inherit;
    cursor: pointer;
    transition: background-color var(--iws-transition);
}

.iws-postcode-checker__button:hover {
    background: var(--iws-primary-hover);
}

.iws-postcode-checker__button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.iws-postcode-checker__result {
    margin-top: var(--iws-spacing-md);
    padding: 0.75em var(--iws-spacing-md);
    border-radius: var(--iws-radius);
}

.iws-postcode-checker__result p {
    margin: 0;
}

.iws-postcode-checker__result--success {
    background: var(--iws-success-bg);
    border: 1px solid var(--iws-success-border);
    color: var(--iws-success-text);
}

.iws-postcode-checker__result--error {
    background: var(--iws-error-bg);
    border: 1px solid var(--iws-error-border);
    color: var(--iws-error-text);
}

.iws-postcode-checker--error {
    background: var(--iws-warning-bg);
    border-color: var(--iws-warning-border);
    color: var(--iws-warning-text);
}

.iws-postcode-checker--error p {
    margin: 0;
}

.iws-postcode-checker__price {
    margin-top: var(--iws-spacing-sm);
    font-size: 1.1em;
}

.iws-postcode-checker__price-amount {
    color: var(--iws-success-text);
    font-weight: var(--iws-font-weight-bold);
}


/* ==========================================================================
   3. AGGREGATE CALCULATOR
   ========================================================================== */

.iws-aggregate-calculator {
    margin: var(--iws-spacing-lg) 0;
    padding: var(--iws-spacing-lg);
    background: var(--iws-bg-alt);
    border: 1px solid var(--iws-border);
    border-radius: var(--iws-radius);
}

.iws-aggregate-calculator__title {
    margin: 0 0 var(--iws-spacing-sm);
    font-size: 1.1em;
    font-weight: var(--iws-font-weight-semibold);
}

.iws-aggregate-calculator__intro {
    margin: 0 0 var(--iws-spacing-md);
    color: var(--iws-text-light);
    font-size: 0.9em;
}

.iws-aggregate-calculator__form {
    display: flex;
    flex-wrap: wrap;
    gap: var(--iws-spacing-md);
    align-items: flex-end;
}

.iws-aggregate-calculator__field {
    flex: 1;
    min-width: 100px;
    max-width: 150px;
}

.iws-aggregate-calculator__field label {
    display: block;
    margin-bottom: var(--iws-spacing-xs);
    font-size: var(--iws-font-size-sm);
    font-weight: var(--iws-font-weight-medium);
}

.iws-aggregate-calculator__input {
    width: 100%;
    padding: var(--iws-spacing-sm) 0.75em;
    border: 1px solid var(--iws-border-input);
    border-radius: var(--iws-radius);
    font-family: inherit;
    font-size: inherit;
    color: var(--iws-text);
    background: var(--iws-bg);
}

.iws-aggregate-calculator__input:focus {
    outline: none;
    border-color: var(--iws-primary);
    box-shadow: 0 0 0 1px var(--iws-primary);
}

.iws-aggregate-calculator__actions {
    flex: 0 0 auto;
}

.iws-aggregate-calculator__button {
    padding: var(--iws-spacing-sm) var(--iws-spacing-lg);
    background: var(--iws-primary);
    color: var(--iws-text-on-primary);
    border: none;
    border-radius: var(--iws-radius);
    font-family: inherit;
    font-size: inherit;
    cursor: pointer;
    transition: background-color var(--iws-transition);
    white-space: nowrap;
}

.iws-aggregate-calculator__button:hover {
    background: var(--iws-primary-hover);
}

.iws-aggregate-calculator__button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.iws-aggregate-calculator__result {
    margin-top: var(--iws-spacing-lg);
    padding: var(--iws-spacing-md);
    background: var(--iws-bg);
    border: 1px solid var(--iws-border);
    border-radius: var(--iws-radius);
}

.iws-aggregate-calculator__result-row {
    display: flex;
    justify-content: space-between;
    padding: var(--iws-spacing-sm) 0;
    border-bottom: 1px solid var(--iws-border-light);
}

.iws-aggregate-calculator__result-row:last-child {
    border-bottom: none;
}

.iws-aggregate-calculator__result-row--highlight {
    background: var(--iws-secondary-light);
    margin: var(--iws-spacing-sm) calc(-1 * var(--iws-spacing-md)) calc(-1 * var(--iws-spacing-md));
    padding: 0.75em var(--iws-spacing-md);
    border-radius: 0 0 var(--iws-radius) var(--iws-radius);
    font-weight: var(--iws-font-weight-semibold);
}

.iws-aggregate-calculator__result-label {
    color: var(--iws-text-light);
}

.iws-aggregate-calculator__result-value {
    font-weight: var(--iws-font-weight-medium);
}

.iws-aggregate-calculator__result-row--highlight .iws-aggregate-calculator__result-value {
    color: var(--iws-secondary);
    font-size: 1.1em;
}

.iws-aggregate-calculator__delivery {
    margin-top: var(--iws-spacing-md);
    padding: 0.75em var(--iws-spacing-md);
    background: var(--iws-info-bg);
    border: 1px solid var(--iws-info-border);
    border-radius: var(--iws-radius);
    color: var(--iws-info-text);
    font-size: 0.95em;
}

.iws-aggregate-calculator__delivery-text {
    font-weight: var(--iws-font-weight-medium);
}

.iws-aggregate-calculator__error {
    margin-top: var(--iws-spacing-md);
    padding: 0.75em var(--iws-spacing-md);
    background: var(--iws-error-bg);
    border: 1px solid var(--iws-error-border);
    border-radius: var(--iws-radius);
    color: var(--iws-error-text);
}

.iws-aggregate-calculator__error p {
    margin: 0;
}

.iws-aggregate-calculator__info {
    margin: var(--iws-spacing-md) 0 0;
    font-size: var(--iws-font-size-xs);
    color: var(--iws-text-muted);
}

.iws-aggregate-calculator--error {
    background: var(--iws-warning-bg);
    border-color: var(--iws-warning-border);
    color: var(--iws-warning-text);
}

.iws-aggregate-calculator--error p {
    margin: 0;
}

@media (max-width: 480px) {
    .iws-aggregate-calculator__form {
        flex-direction: column;
    }

    .iws-aggregate-calculator__field {
        max-width: none;
        width: 100%;
    }

    .iws-aggregate-calculator__actions {
        width: 100%;
    }

    .iws-aggregate-calculator__button {
        width: 100%;
    }
}


/* ==========================================================================
   4. ADD TO BASKET
   ========================================================================== */

.iws-add-to-basket {
    margin: var(--iws-spacing-lg) 0;
}

.iws-add-to-basket__price {
    margin: 0 0 0.75em;
    font-size: 1.25em;
    font-weight: var(--iws-font-weight-semibold);
}

.iws-add-to-basket__form {
    display: flex;
    align-items: center;
    gap: var(--iws-spacing-sm);
    flex-wrap: wrap;
}

.iws-add-to-basket__quantity {
    flex: 0 0 auto;
}

.iws-add-to-basket__quantity .qty {
    width: 4em;
    padding: var(--iws-spacing-sm);
    text-align: center;
    font-family: inherit;
    font-size: inherit;
    border: 1px solid var(--iws-border-input);
    border-radius: var(--iws-radius);
    color: var(--iws-text);
    background: var(--iws-bg);
}

.iws-add-to-basket__button {
    flex: 0 0 auto;
}

.iws-add-to-basket--notice {
    padding: 0.75em var(--iws-spacing-md);
    background: var(--iws-warning-bg);
    border: 1px solid var(--iws-warning-border);
    border-radius: var(--iws-radius);
    color: var(--iws-warning-text);
}

.iws-add-to-basket--notice p {
    margin: 0;
}


/* ==========================================================================
   5. SKIP OPTIONS
   ========================================================================== */

.iws-skip-options {
    margin: var(--iws-spacing-lg) 0;
    padding: 1.25em;
    background: var(--iws-bg-alt);
    border: 1px solid var(--iws-border);
    border-radius: var(--iws-radius);
}

.iws-skip-options__permit {
    margin-bottom: var(--iws-spacing-md);
}

.iws-skip-options__additions-title {
    display: block;
    margin-bottom: var(--iws-spacing-sm);
    font-size: var(--iws-font-size-sm);
    font-weight: var(--iws-font-weight-semibold);
}

.iws-skip-options__label {
    display: flex;
    align-items: center;
    gap: var(--iws-spacing-sm);
    padding: var(--iws-spacing-sm) 0;
    cursor: pointer;
    font-size: var(--iws-font-size-sm);
}

.iws-skip-options__label:hover {
    color: var(--iws-text);
}

.iws-skip-options__checkbox {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    margin: 0;
    cursor: pointer;
    accent-color: var(--iws-primary);
}

.iws-skip-options__text {
    flex: 1;
}

.iws-skip-options__price {
    color: var(--iws-text-light);
    font-size: 0.9em;
    white-space: nowrap;
}

.iws-skip-options__total {
    margin-top: 0.75em;
    padding: var(--iws-spacing-sm) 0.75em;
    background: var(--iws-secondary-light);
    border: 1px solid var(--iws-success-border);
    border-radius: var(--iws-radius);
    font-size: 0.9em;
    font-weight: var(--iws-font-weight-medium);
    color: var(--iws-secondary);
}

.iws-skip-options__permit + .iws-skip-options__additions {
    padding-top: var(--iws-spacing-md);
    border-top: 1px solid var(--iws-border);
}


/* ==========================================================================
   6. DELIVERY CALENDAR  (shared by Skip & Grab Hire)
   ========================================================================== */

.iws-skip-add-to-basket__dates,
.iws-grab-add-to-basket__dates {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--iws-spacing-md);
}

@media (max-width: 480px) {
    .iws-skip-add-to-basket__dates,
    .iws-grab-add-to-basket__dates {
        grid-template-columns: 1fr;
    }
}

.iws-skip-add-to-basket__delivery-date,
.iws-skip-add-to-basket__collection-date,
.iws-grab-add-to-basket__delivery-date,
.iws-grab-add-to-basket__collection-date {
    display: flex;
    flex-direction: column;
    gap: var(--iws-spacing-sm);
}

.iws-skip-add-to-basket__delivery-input,
.iws-skip-add-to-basket__collection-display,
.iws-grab-add-to-basket__delivery-input,
.iws-grab-add-to-basket__collection-display {
    padding: 0.75em var(--iws-spacing-md);
    font-family: inherit;
    font-size: inherit;
    border: 1px solid var(--iws-border-input);
    border-radius: var(--iws-radius);
    background: var(--iws-bg);
    color: var(--iws-text);
    cursor: pointer;
}

.iws-skip-add-to-basket__delivery-input:focus,
.iws-grab-add-to-basket__delivery-input:focus {
    outline: none;
    border-color: var(--iws-secondary);
    box-shadow: 0 0 0 2px var(--iws-secondary-light);
}

.iws-skip-add-to-basket__collection-display,
.iws-grab-add-to-basket__collection-display {
    background: var(--iws-bg-alt);
    color: var(--iws-text-light);
    cursor: default;
}

/* Flatpickr overrides */
.iws-delivery-calendar {
    font-family: inherit;
}

.iws-delivery-calendar .flatpickr-months {
    padding: var(--iws-spacing-sm) 0;
}

.iws-delivery-calendar .flatpickr-month {
    color: var(--iws-text);
}

.iws-delivery-calendar .flatpickr-monthDropdown-months,
.iws-delivery-calendar .numInputWrapper input {
    font-weight: var(--iws-font-weight-semibold);
}

.iws-delivery-calendar .flatpickr-prev-month,
.iws-delivery-calendar .flatpickr-next-month {
    padding: var(--iws-spacing-sm);
}

.iws-delivery-calendar .flatpickr-prev-month:hover svg,
.iws-delivery-calendar .flatpickr-next-month:hover svg {
    fill: var(--iws-secondary);
}

.iws-delivery-calendar .flatpickr-weekdays {
    background: var(--iws-bg-alt);
}

.iws-delivery-calendar .flatpickr-weekday {
    color: var(--iws-text-light);
    font-weight: var(--iws-font-weight-semibold);
    font-size: var(--iws-font-size-sm);
}

.iws-delivery-calendar .flatpickr-day {
    border-radius: var(--iws-radius);
    transition: background-color 0.15s ease, color 0.15s ease;
}

.iws-delivery-calendar .flatpickr-day:hover {
    background: var(--iws-secondary-light);
    border-color: var(--iws-success-border);
}

.iws-delivery-calendar .flatpickr-day.selected,
.iws-delivery-calendar .flatpickr-day.selected:hover {
    background: var(--iws-secondary);
    border-color: var(--iws-secondary);
    color: var(--iws-text-on-secondary);
}

.iws-delivery-calendar .flatpickr-day.today:not(.selected) {
    border-color: var(--iws-secondary);
}

.iws-delivery-calendar .flatpickr-day.flatpickr-disabled,
.iws-delivery-calendar .flatpickr-day.flatpickr-disabled:hover {
    background: var(--iws-error-bg);
    color: var(--iws-error-text);
    cursor: not-allowed;
    text-decoration: line-through;
    opacity: 0.7;
}

.iws-delivery-calendar .flatpickr-day.prevMonthDay,
.iws-delivery-calendar .flatpickr-day.nextMonthDay {
    color: var(--iws-text-muted);
}

.iws-delivery-calendar .flatpickr-day.prevMonthDay:hover,
.iws-delivery-calendar .flatpickr-day.nextMonthDay:hover {
    background: var(--iws-bg-alt);
    border-color: var(--iws-border);
}

.iws-skip-add-to-basket__delivery-input.flatpickr-input,
.iws-grab-add-to-basket__delivery-input.flatpickr-input {
    cursor: pointer;
}

.iws-skip-add-to-basket__delivery-input.active,
.iws-grab-add-to-basket__delivery-input.active {
    border-color: var(--iws-secondary);
}

.iws-delivery-calendar__info {
    display: flex;
    align-items: center;
    gap: var(--iws-spacing-sm);
    margin-top: var(--iws-spacing-sm);
    padding: var(--iws-spacing-sm) 0.75em;
    background: var(--iws-info-bg);
    border: 1px solid var(--iws-info-border);
    border-radius: var(--iws-radius);
    font-size: var(--iws-font-size-sm);
    color: var(--iws-info-text);
}

.iws-delivery-calendar__info-icon {
    flex-shrink: 0;
}

.iws-delivery-calendar__info-text {
    flex: 1;
}

.iws-skip-add-to-basket__delivery-input.loading,
.iws-grab-add-to-basket__delivery-input.loading {
    background: var(--iws-bg-alt) url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23999" stroke-width="2"><circle cx="12" cy="12" r="10" stroke-dasharray="31.4" stroke-dashoffset="31.4"><animate attributeName="stroke-dashoffset" values="31.4;0" dur="1s" repeatCount="indefinite"/></circle></svg>') no-repeat right 1em center;
    background-size: 18px 18px;
    cursor: wait;
}

@media (max-width: 480px) {
    .iws-skip-add-to-basket__delivery-input,
    .iws-skip-add-to-basket__collection-display,
    .iws-grab-add-to-basket__delivery-input,
    .iws-grab-add-to-basket__collection-display {
        font-size: 0.95em;
    }

    .iws-delivery-calendar {
        font-size: 0.9em;
    }
}


/* ==========================================================================
   7. SKIP ADD TO BASKET
   ========================================================================== */

.iws-skip-add-to-basket {
    max-width: var(--iws-form-max-width);
}

.iws-skip-add-to-basket--notice {
    padding: var(--iws-spacing-md);
    background: var(--iws-error-bg);
    border: 1px solid var(--iws-error-border);
    border-radius: var(--iws-radius);
    color: var(--iws-error-text);
}

.iws-skip-add-to-basket--notice p {
    margin: 0;
}

.iws-skip-add-to-basket__price-display {
    margin-bottom: var(--iws-spacing-lg);
    padding: var(--iws-spacing-md);
    background: var(--iws-secondary-light);
    border: 1px solid var(--iws-success-border);
    border-radius: var(--iws-radius);
}

.iws-skip-add-to-basket__price-label {
    display: block;
    font-size: var(--iws-font-size-sm);
    color: var(--iws-text-light);
    margin-bottom: var(--iws-spacing-xs);
}

.iws-skip-add-to-basket__price-value {
    display: block;
    font-size: 1.75em;
    font-weight: var(--iws-font-weight-bold);
    color: var(--iws-secondary);
}

.iws-skip-add-to-basket__form {
    display: flex;
    flex-direction: column;
    gap: 1.25em;
}

.iws-skip-add-to-basket__duration {
    display: flex;
    flex-direction: column;
    gap: var(--iws-spacing-sm);
}

.iws-skip-add-to-basket__label {
    font-size: var(--iws-font-size-sm);
    font-weight: var(--iws-font-weight-semibold);
}

.iws-skip-add-to-basket__select {
    padding: 0.75em var(--iws-spacing-md);
    font-family: inherit;
    font-size: inherit;
    border: 1px solid var(--iws-border-input);
    border-radius: var(--iws-radius);
    background: var(--iws-bg);
    color: var(--iws-text);
    cursor: pointer;
}

.iws-skip-add-to-basket__select:focus {
    outline: none;
    border-color: var(--iws-secondary);
    box-shadow: 0 0 0 2px var(--iws-secondary-light);
}

.iws-skip-add-to-basket__permit,
.iws-skip-add-to-basket__addons {
    padding: 1.25em;
    background: var(--iws-bg-alt);
    border: 1px solid var(--iws-border);
    border-radius: var(--iws-radius);
}

.iws-skip-add-to-basket__addons-title {
    display: block;
    margin-bottom: 0.75em;
    font-size: var(--iws-font-size-sm);
    font-weight: var(--iws-font-weight-semibold);
}

.iws-skip-add-to-basket__checkbox-label {
    display: flex;
    align-items: center;
    gap: var(--iws-spacing-sm);
    padding: var(--iws-spacing-sm) 0;
    cursor: pointer;
    font-size: var(--iws-font-size-sm);
}

.iws-skip-add-to-basket__checkbox-label:hover {
    color: var(--iws-text);
}

.iws-skip-add-to-basket__checkbox {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    margin: 0;
    cursor: pointer;
    accent-color: var(--iws-primary);
}

.iws-skip-add-to-basket__checkbox-text {
    flex: 1;
}

.iws-skip-add-to-basket__checkbox-price {
    color: var(--iws-text-light);
    font-size: 0.9em;
    white-space: nowrap;
}

.iws-skip-add-to-basket__quantity {
    display: flex;
    flex-direction: column;
    gap: var(--iws-spacing-sm);
}

.iws-skip-add-to-basket__quantity .quantity {
    display: flex;
    align-items: center;
}

.iws-skip-add-to-basket__quantity .qty {
    width: 80px;
    padding: 0.75em;
    font-family: inherit;
    font-size: inherit;
    text-align: center;
    border: 1px solid var(--iws-border-input);
    border-radius: var(--iws-radius);
    color: var(--iws-text);
    background: var(--iws-bg);
}

.iws-skip-add-to-basket__extras-total {
    padding: 0.75em var(--iws-spacing-md);
    background: var(--iws-secondary-light);
    border: 1px solid var(--iws-success-border);
    border-radius: var(--iws-radius);
    font-size: 0.9em;
    font-weight: var(--iws-font-weight-medium);
    color: var(--iws-secondary);
}

.iws-skip-add-to-basket__button {
    width: 100%;
    padding: var(--iws-spacing-md) var(--iws-spacing-xl);
    font-family: inherit;
    font-size: inherit;
    font-weight: var(--iws-font-weight-semibold);
    text-align: center;
    cursor: pointer;
    border: none;
    border-radius: var(--iws-radius);
    background: var(--iws-secondary);
    color: var(--iws-text-on-secondary);
    transition: background-color var(--iws-transition);
}

.iws-skip-add-to-basket__button:hover {
    background: var(--iws-secondary-hover);
}

.iws-skip-add-to-basket__button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.iws-skip-add-to-basket__permit + .iws-skip-add-to-basket__addons {
    margin-top: -1.25em;
    border-top: none;
    border-radius: 0 0 var(--iws-radius) var(--iws-radius);
}

.iws-skip-add-to-basket__permit:has(+ .iws-skip-add-to-basket__addons) {
    border-bottom: none;
    border-radius: var(--iws-radius) var(--iws-radius) 0 0;
}

@media (max-width: 480px) {
    .iws-skip-add-to-basket__price-value {
        font-size: 1.5em;
    }

    .iws-skip-add-to-basket__checkbox-label {
        flex-wrap: wrap;
    }

    .iws-skip-add-to-basket__checkbox-price {
        flex-basis: 100%;
        margin-left: 26px;
    }
}


/* ==========================================================================
   8. GRAB HIRE ADD TO BASKET
   ========================================================================== */

.iws-grab-add-to-basket {
    max-width: var(--iws-form-max-width);
}

.iws-grab-add-to-basket--notice {
    padding: var(--iws-spacing-md);
    background: var(--iws-error-bg);
    border: 1px solid var(--iws-error-border);
    border-radius: var(--iws-radius);
    color: var(--iws-error-text);
}

.iws-grab-add-to-basket--notice p {
    margin: 0;
}

.iws-grab-add-to-basket__price-display {
    margin-bottom: var(--iws-spacing-lg);
    padding: var(--iws-spacing-md);
    background: var(--iws-info-bg);
    border: 1px solid var(--iws-info-border);
    border-radius: var(--iws-radius);
}

.iws-grab-add-to-basket__price-label {
    display: block;
    font-size: var(--iws-font-size-sm);
    color: var(--iws-text-light);
    margin-bottom: var(--iws-spacing-xs);
}

.iws-grab-add-to-basket__price-value {
    display: block;
    font-size: 1.75em;
    font-weight: var(--iws-font-weight-bold);
    color: var(--iws-primary);
}

.iws-grab-add-to-basket__capacity {
    margin-bottom: var(--iws-spacing-lg);
    padding: var(--iws-spacing-md);
    background: var(--iws-warning-bg);
    border: 1px solid var(--iws-warning-border);
    border-radius: var(--iws-radius);
}

.iws-grab-add-to-basket__capacity-title {
    display: block;
    font-size: var(--iws-font-size-sm);
    font-weight: var(--iws-font-weight-semibold);
    color: var(--iws-text-light);
    margin-bottom: var(--iws-spacing-sm);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.iws-grab-add-to-basket__capacity-details {
    display: flex;
    gap: var(--iws-spacing-lg);
    flex-wrap: wrap;
}

.iws-grab-add-to-basket__capacity-item {
    display: flex;
    align-items: baseline;
    gap: 0.35em;
}

.iws-grab-add-to-basket__capacity-label {
    font-size: 0.9em;
    color: var(--iws-text-light);
}

.iws-grab-add-to-basket__capacity-value {
    font-size: 1.1em;
    font-weight: var(--iws-font-weight-bold);
    color: var(--iws-warning);
}

.iws-grab-add-to-basket__form {
    display: flex;
    flex-direction: column;
    gap: 1.25em;
}

.iws-grab-add-to-basket__duration {
    display: flex;
    flex-direction: column;
    gap: var(--iws-spacing-sm);
}

.iws-grab-add-to-basket__label {
    font-size: var(--iws-font-size-sm);
    font-weight: var(--iws-font-weight-semibold);
}

.iws-grab-add-to-basket__select {
    padding: 0.75em var(--iws-spacing-md);
    font-family: inherit;
    font-size: inherit;
    border: 1px solid var(--iws-border-input);
    border-radius: var(--iws-radius);
    background: var(--iws-bg);
    color: var(--iws-text);
    cursor: pointer;
}

.iws-grab-add-to-basket__select:focus {
    outline: none;
    border-color: var(--iws-primary);
    box-shadow: 0 0 0 2px var(--iws-primary-light);
}

.iws-grab-add-to-basket__permit {
    padding: 1.25em;
    background: var(--iws-bg-alt);
    border: 1px solid var(--iws-border);
    border-radius: var(--iws-radius);
}

.iws-grab-add-to-basket__checkbox-label {
    display: flex;
    align-items: center;
    gap: var(--iws-spacing-sm);
    padding: var(--iws-spacing-sm) 0;
    cursor: pointer;
    font-size: var(--iws-font-size-sm);
}

.iws-grab-add-to-basket__checkbox-label:hover {
    color: var(--iws-text);
}

.iws-grab-add-to-basket__checkbox {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    margin: 0;
    cursor: pointer;
    accent-color: var(--iws-primary);
}

.iws-grab-add-to-basket__checkbox-text {
    flex: 1;
}

.iws-grab-add-to-basket__checkbox-price {
    color: var(--iws-text-light);
    font-size: 0.9em;
    white-space: nowrap;
}

.iws-grab-add-to-basket__quantity {
    display: flex;
    flex-direction: column;
    gap: var(--iws-spacing-sm);
}

.iws-grab-add-to-basket__quantity .quantity {
    display: flex;
    align-items: center;
}

.iws-grab-add-to-basket__quantity .qty {
    width: 80px;
    padding: 0.75em;
    font-family: inherit;
    font-size: inherit;
    text-align: center;
    border: 1px solid var(--iws-border-input);
    border-radius: var(--iws-radius);
    color: var(--iws-text);
    background: var(--iws-bg);
}

.iws-grab-add-to-basket__extras-total {
    padding: 0.75em var(--iws-spacing-md);
    background: var(--iws-info-bg);
    border: 1px solid var(--iws-info-border);
    border-radius: var(--iws-radius);
    font-size: 0.9em;
    font-weight: var(--iws-font-weight-medium);
    color: var(--iws-info-text);
}

.iws-grab-add-to-basket__button {
    width: 100%;
    padding: var(--iws-spacing-md) var(--iws-spacing-xl);
    font-family: inherit;
    font-size: inherit;
    font-weight: var(--iws-font-weight-semibold);
    text-align: center;
    cursor: pointer;
    border: none;
    border-radius: var(--iws-radius);
    background: var(--iws-primary);
    color: var(--iws-text-on-primary);
    transition: background-color var(--iws-transition);
}

.iws-grab-add-to-basket__button:hover {
    background: var(--iws-primary-hover);
}

.iws-grab-add-to-basket__button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

@media (max-width: 480px) {
    .iws-grab-add-to-basket__price-value {
        font-size: 1.5em;
    }

    .iws-grab-add-to-basket__checkbox-label {
        flex-wrap: wrap;
    }

    .iws-grab-add-to-basket__checkbox-price {
        flex-basis: 100%;
        margin-left: 26px;
    }
}


/* ==========================================================================
   9. ENQUIRY BUTTON
   ========================================================================== */

.iws-enquiry-button-wrapper {
    margin: var(--iws-spacing-lg) 0;
    padding: var(--iws-spacing-lg);
    background-color: var(--iws-bg-alt);
    border-radius: var(--iws-radius-lg);
    border: 1px solid var(--iws-border);
}

.iws-enquiry-message {
    margin: 0 0 var(--iws-spacing-md) 0;
    color: var(--iws-text-light);
    font-size: var(--iws-font-size-sm);
    line-height: var(--iws-line-height);
}

.iws-enquiry-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: var(--iws-spacing-sm);
}

.iws-enquiry-phone-button,
.iws-enquiry-form-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 24px;
    font-family: inherit;
    font-size: var(--iws-font-size-sm);
    font-weight: var(--iws-font-weight-semibold);
    text-decoration: none;
    border-radius: var(--iws-radius);
    border: none;
    transition: background-color var(--iws-transition), transform 0.1s ease;
}

.iws-enquiry-phone-button {
    background-color: var(--iws-secondary);
    color: var(--iws-text-on-secondary);
}

.iws-enquiry-phone-button:hover {
    background-color: var(--iws-secondary-hover);
    color: var(--iws-text-on-secondary);
    transform: translateY(-1px);
}

.iws-enquiry-phone-button:focus {
    outline: 2px solid var(--iws-secondary-hover);
    outline-offset: 2px;
}

.iws-phone-icon {
    margin-right: var(--iws-spacing-sm);
    font-size: var(--iws-font-size-lg);
}

.iws-enquiry-form-button {
    background-color: var(--iws-primary);
    color: var(--iws-text-on-primary);
}

.iws-enquiry-form-button:hover {
    background-color: var(--iws-primary-hover);
    color: var(--iws-text-on-primary);
    transform: translateY(-1px);
}

.iws-enquiry-form-button:focus {
    outline: 2px solid var(--iws-primary-hover);
    outline-offset: 2px;
}

@media (max-width: 480px) {
    .iws-enquiry-buttons {
        flex-direction: column;
    }

    .iws-enquiry-phone-button,
    .iws-enquiry-form-button {
        width: 100%;
        text-align: center;
    }
}


/* ==========================================================================
   10. PRODUCT OPTIONS  (generic add-ons for all types)
   ========================================================================== */

.iws-product-options {
    margin: var(--iws-spacing-lg) 0;
    padding: 1.25em;
    background: var(--iws-bg-alt);
    border: 1px solid var(--iws-border);
    border-radius: var(--iws-radius);
}

.iws-product-options__additions-title {
    display: block;
    margin-bottom: var(--iws-spacing-sm);
    font-size: var(--iws-font-size-sm);
    font-weight: var(--iws-font-weight-semibold);
}

.iws-product-options__label {
    display: flex;
    align-items: center;
    gap: var(--iws-spacing-sm);
    padding: var(--iws-spacing-sm) 0;
    cursor: pointer;
    font-size: var(--iws-font-size-sm);
}

.iws-product-options__label:hover {
    color: var(--iws-text);
}

.iws-product-options__checkbox {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    margin: 0;
    cursor: pointer;
    accent-color: var(--iws-primary);
}

.iws-product-options__text {
    flex: 1;
}

.iws-product-options__price {
    color: var(--iws-text-light);
    font-size: 0.9em;
    white-space: nowrap;
}

/* Product type accent tints */
.iws-product-options--aggregate {
    border-color: #c8b89e;
    background: #faf8f5;
}

.iws-product-options--skip {
    border-color: #a8c8e8;
    background: #f5f9fc;
}

.iws-product-options--grab-hire {
    border-color: #b8d8b8;
    background: #f5faf5;
}

.iws-product-options--waste-bags {
    border-color: #d8c8a8;
    background: #fdfaf5;
}


/* ==========================================================================
   11. PRODUCT TEMPLATES  (full-page standalone)
   ========================================================================== */

/* Reset */
.iws-product-template *,
.iws-product-template *::before,
.iws-product-template *::after {
    box-sizing: border-box;
}

.iws-product-template {
    margin: 0;
    padding: 0;
    font-family: var(--iws-font-family);
    font-size: var(--iws-font-size-base);
    line-height: var(--iws-line-height);
    color: var(--iws-text);
    background-color: var(--iws-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.iws-product-template img {
    max-width: 100%;
    height: auto;
    display: block;
}

.iws-product-template a {
    color: var(--iws-primary);
    text-decoration: none;
    transition: color var(--iws-transition);
}

.iws-product-template a:hover {
    color: var(--iws-primary-hover);
    text-decoration: underline;
}

.iws-product-template h1,
.iws-product-template h2,
.iws-product-template h3,
.iws-product-template h4,
.iws-product-template h5,
.iws-product-template h6 {
    margin: 0 0 var(--iws-spacing-md);
    font-family: var(--iws-font-family-heading);
    font-weight: var(--iws-font-weight-semibold);
    line-height: var(--iws-line-height-tight);
    color: var(--iws-text);
}

.iws-product-template p {
    margin: 0 0 var(--iws-spacing-md);
}

.iws-product-template p:last-child {
    margin-bottom: 0;
}

/* Template wrapper */
.iws-template-wrapper {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

/* Main */
.iws-template-main {
    flex: 1;
    padding: var(--iws-spacing-2xl) 0;
}

.iws-template-container {
    max-width: var(--iws-container-max);
    margin: 0 auto;
    padding: 0 var(--iws-spacing-lg);
}

/* Two-column layout */
.iws-template-product {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--iws-spacing-2xl);
    align-items: start;
}

@media (max-width: 900px) {
    .iws-template-product {
        grid-template-columns: 1fr;
        gap: var(--iws-spacing-xl);
    }
}

/* Gallery */
.iws-template-gallery {
    position: sticky;
    top: var(--iws-spacing-lg);
}

@media (max-width: 900px) {
    .iws-template-gallery {
        position: static;
    }
}

.iws-template-gallery__main {
    background-color: var(--iws-bg-alt);
    border-radius: var(--iws-radius-lg);
    overflow: hidden;
    margin-bottom: var(--iws-spacing-md);
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.iws-template-gallery__main img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.iws-template-gallery__placeholder {
    background-color: var(--iws-bg-alt);
}

.iws-template-gallery__placeholder img {
    opacity: 0.5;
}

.iws-template-gallery__thumbnails {
    display: flex;
    gap: var(--iws-spacing-sm);
    flex-wrap: wrap;
}

.iws-template-gallery__thumb {
    width: 80px;
    height: 80px;
    border-radius: var(--iws-radius);
    overflow: hidden;
    cursor: pointer;
    border: 2px solid var(--iws-border);
    transition: border-color var(--iws-transition);
}

.iws-template-gallery__thumb:hover {
    border-color: var(--iws-primary);
}

.iws-template-gallery__thumb--active {
    border-color: var(--iws-primary);
}

.iws-template-gallery__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Content */
.iws-template-content {
    display: flex;
    flex-direction: column;
    gap: var(--iws-spacing-lg);
}

/* Breadcrumb */
.iws-template-breadcrumb {
    font-size: var(--iws-font-size-sm);
    color: var(--iws-text-light);
}

.iws-template-breadcrumb a {
    color: var(--iws-text-light);
}

.iws-template-breadcrumb a:hover {
    color: var(--iws-primary);
}

.iws-template-breadcrumb__sep {
    margin: 0 var(--iws-spacing-sm);
    color: var(--iws-text-muted);
}

.iws-template-breadcrumb__current {
    color: var(--iws-text);
    font-weight: var(--iws-font-weight-medium);
}

/* Title */
.iws-template-title {
    font-size: var(--iws-font-size-2xl);
    font-weight: var(--iws-font-weight-bold);
    margin: 0;
    line-height: 1.2;
}

@media (max-width: 600px) {
    .iws-template-title {
        font-size: var(--iws-font-size-xl);
    }
}

/* Price */
.iws-template-price {
    font-size: var(--iws-font-size-xl);
    font-weight: var(--iws-font-weight-bold);
    color: var(--iws-primary);
}

.iws-template-price del {
    color: var(--iws-text-muted);
    font-weight: var(--iws-font-weight-normal);
    font-size: var(--iws-font-size-lg);
    margin-right: var(--iws-spacing-sm);
}

.iws-template-price ins {
    text-decoration: none;
}

/* Vehicle info (Grab Hire) */
.iws-template-vehicle-info {
    display: flex;
    flex-wrap: wrap;
    gap: var(--iws-spacing-md) var(--iws-spacing-xl);
    padding: var(--iws-spacing-md);
    background-color: var(--iws-bg-alt);
    border-radius: var(--iws-radius);
}

.iws-template-vehicle-info__item {
    font-size: var(--iws-font-size-sm);
}

.iws-template-vehicle-info__item strong {
    color: var(--iws-text-light);
    font-weight: var(--iws-font-weight-medium);
    margin-right: var(--iws-spacing-xs);
}

/* Short description */
.iws-template-short-description {
    color: var(--iws-text-light);
    line-height: var(--iws-line-height);
}

.iws-template-short-description p {
    margin: 0 0 var(--iws-spacing-sm);
}

/* Components container */
.iws-template-components {
    display: flex;
    flex-direction: column;
    gap: var(--iws-spacing-lg);
}

.iws-template-component {
    padding: var(--iws-spacing-lg);
    background-color: var(--iws-bg-alt);
    border-radius: var(--iws-radius-lg);
    border: 1px solid var(--iws-border-light);
}

.iws-template-component__title {
    font-weight: var(--iws-font-weight-semibold);
    margin: 0 0 var(--iws-spacing-md);
}

/* Meta */
.iws-template-meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--iws-spacing-md) var(--iws-spacing-xl);
    padding-top: var(--iws-spacing-lg);
    border-top: 1px solid var(--iws-border);
    font-size: var(--iws-font-size-sm);
    color: var(--iws-text-light);
}

.iws-template-meta__item strong {
    font-weight: var(--iws-font-weight-medium);
    margin-right: var(--iws-spacing-xs);
}

/* Full description */
.iws-template-description {
    margin-top: var(--iws-spacing-2xl);
    padding-top: var(--iws-spacing-2xl);
    border-top: 1px solid var(--iws-border);
}

.iws-template-description__title {
    font-size: var(--iws-font-size-xl);
    font-weight: var(--iws-font-weight-semibold);
    margin: 0 0 var(--iws-spacing-lg);
}

.iws-template-description__content {
    color: var(--iws-text-light);
    line-height: 1.8;
}

.iws-template-description__content p {
    margin: 0 0 var(--iws-spacing-md);
}

.iws-template-description__content ul,
.iws-template-description__content ol {
    margin: 0 0 var(--iws-spacing-md);
    padding-left: var(--iws-spacing-lg);
}

.iws-template-description__content li {
    margin-bottom: var(--iws-spacing-sm);
}

/* Form elements */
.iws-product-template input[type="text"],
.iws-product-template input[type="email"],
.iws-product-template input[type="tel"],
.iws-product-template input[type="number"],
.iws-product-template input[type="date"],
.iws-product-template select,
.iws-product-template textarea {
    width: 100%;
    padding: 12px var(--iws-spacing-md);
    font-family: var(--iws-font-family);
    font-size: var(--iws-font-size-base);
    line-height: 1.4;
    color: var(--iws-text);
    background-color: var(--iws-bg);
    border: 1px solid var(--iws-border);
    border-radius: var(--iws-radius);
    transition: border-color var(--iws-transition), box-shadow var(--iws-transition);
    -webkit-appearance: none;
    appearance: none;
}

.iws-product-template input[type="text"]:focus,
.iws-product-template input[type="email"]:focus,
.iws-product-template input[type="tel"]:focus,
.iws-product-template input[type="number"]:focus,
.iws-product-template input[type="date"]:focus,
.iws-product-template select:focus,
.iws-product-template textarea:focus {
    outline: none;
    border-color: var(--iws-primary);
    box-shadow: 0 0 0 3px var(--iws-primary-light);
}

.iws-product-template input[type="text"]::placeholder,
.iws-product-template input[type="email"]::placeholder,
.iws-product-template input[type="tel"]::placeholder,
.iws-product-template textarea::placeholder {
    color: var(--iws-text-muted);
}

.iws-product-template select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 36px;
    cursor: pointer;
}

.iws-product-template input[type="number"] {
    -moz-appearance: textfield;
}

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

.iws-product-template label {
    display: block;
    margin-bottom: var(--iws-spacing-sm);
    font-weight: var(--iws-font-weight-medium);
    font-size: var(--iws-font-size-sm);
}

/* Buttons */
.iws-product-template button,
.iws-product-template .button,
.iws-product-template input[type="submit"],
.iws-product-template .single_add_to_cart_button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--iws-spacing-sm);
    padding: 14px var(--iws-spacing-lg);
    font-family: var(--iws-font-family);
    font-size: var(--iws-font-size-base);
    font-weight: var(--iws-font-weight-semibold);
    line-height: 1;
    color: var(--iws-text-on-primary);
    background-color: var(--iws-primary);
    border: none;
    border-radius: var(--iws-radius);
    cursor: pointer;
    transition: background-color var(--iws-transition), transform var(--iws-transition);
    text-decoration: none;
}

.iws-product-template button:hover,
.iws-product-template .button:hover,
.iws-product-template input[type="submit"]:hover,
.iws-product-template .single_add_to_cart_button:hover {
    background-color: var(--iws-primary-hover);
    text-decoration: none;
    color: var(--iws-text-on-primary);
}

.iws-product-template button:active,
.iws-product-template .button:active,
.iws-product-template input[type="submit"]:active,
.iws-product-template .single_add_to_cart_button:active {
    transform: translateY(1px);
}

.iws-product-template button:disabled,
.iws-product-template .button:disabled,
.iws-product-template input[type="submit"]:disabled,
.iws-product-template .single_add_to_cart_button:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.iws-product-template .button--secondary {
    background-color: var(--iws-bg);
    color: var(--iws-primary);
    border: 2px solid var(--iws-primary);
}

.iws-product-template .button--secondary:hover {
    background-color: var(--iws-primary-light);
    color: var(--iws-primary);
}

/* WC cart form */
.iws-product-template .cart {
    display: flex;
    flex-wrap: wrap;
    gap: var(--iws-spacing-md);
    align-items: center;
}

.iws-product-template .quantity {
    display: flex;
    align-items: center;
}

.iws-product-template .quantity .qty {
    width: 80px;
    text-align: center;
    padding: 12px var(--iws-spacing-sm);
}

.iws-product-template .single_add_to_cart_button {
    flex: 1;
    min-width: 200px;
}

/* Checkbox / radio */
.iws-product-template input[type="checkbox"],
.iws-product-template input[type="radio"] {
    width: 18px;
    height: 18px;
    margin: 0;
    margin-right: var(--iws-spacing-sm);
    cursor: pointer;
    accent-color: var(--iws-primary);
}

.iws-product-template label.checkbox-label,
.iws-product-template label.radio-label {
    display: inline-flex;
    align-items: center;
    margin-bottom: 0;
    font-weight: var(--iws-font-weight-normal);
    cursor: pointer;
}

/* Notices */
.iws-product-template .woocommerce-message,
.iws-product-template .woocommerce-info {
    padding: var(--iws-spacing-md);
    margin-bottom: var(--iws-spacing-md);
    background-color: var(--iws-success-bg);
    border-left: 4px solid var(--iws-success);
    border-radius: var(--iws-radius);
}

.iws-product-template .woocommerce-error {
    padding: var(--iws-spacing-md);
    margin-bottom: var(--iws-spacing-md);
    background-color: var(--iws-error-bg);
    border-left: 4px solid var(--iws-error);
    border-radius: var(--iws-radius);
}

/* Component overrides (transparent when inside template) */
.iws-product-template .iws-postcode-checker,
.iws-product-template .iws-aggregate-calculator,
.iws-product-template .iws-skip-add-to-basket,
.iws-product-template .iws-grab-add-to-basket,
.iws-product-template .iws-product-options {
    background: transparent;
    padding: 0;
    border: none;
}

.iws-product-template .iws-enquiry-button {
    width: 100%;
}

.iws-product-template .iws-enquiry-button .button {
    width: 100%;
}

/* Product type modifiers */
.iws-product-template--aggregates .iws-template-component--calculator {
    background-color: var(--iws-primary-light);
}

.iws-product-template--skips .iws-template-component--skip-basket {
    background-color: var(--iws-bg);
    border: 1px solid var(--iws-border);
}

.iws-product-template--grab-hire .iws-template-component--grab-basket {
    background-color: var(--iws-bg);
    border: 1px solid var(--iws-border);
}

.iws-product-template--waste-bags .iws-template-component--cart {
    background-color: var(--iws-bg);
}

/* Template responsive */
@media (max-width: 600px) {
    .iws-template-header__inner {
        padding: 0 var(--iws-spacing-md);
    }

    .iws-template-container {
        padding: 0 var(--iws-spacing-md);
    }

    .iws-template-main {
        padding: var(--iws-spacing-xl) 0;
    }

    .iws-template-component {
        padding: var(--iws-spacing-md);
    }

    .iws-product-template .cart {
        flex-direction: column;
    }

    .iws-product-template .quantity {
        width: 100%;
    }

    .iws-product-template .quantity .qty {
        width: 100%;
    }

    .iws-product-template .single_add_to_cart_button {
        width: 100%;
    }

    .iws-template-gallery__thumb {
        width: 60px;
        height: 60px;
    }
}

@media print {
    .iws-template-gallery {
        position: static;
    }

    .iws-template-product {
        display: block;
    }

    .iws-template-gallery,
    .iws-template-content {
        page-break-inside: avoid;
    }
}


/* ==========================================================================
   12. HIRE ORDERS ADMIN
   ========================================================================== */

.iws-hire-orders {
    margin-top: 20px;
}

.iws-hire-orders__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 15px;
    padding: 10px 0;
}

.iws-hire-orders__bulk-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.iws-hire-orders__bulk-select {
    min-width: 200px;
}

.iws-hire-orders__sorting {
    display: flex;
    align-items: center;
    gap: 8px;
}

.iws-hire-orders__sorting label {
    font-size: 13px;
    color: #50575e;
    white-space: nowrap;
}

.iws-hire-orders__sort-select {
    min-width: 180px;
}

.iws-hire-orders__count {
    color: #50575e;
    font-size: 13px;
}

.iws-hire-orders__table {
    border-collapse: collapse;
    margin-top: 0;
}

.iws-hire-orders__table th {
    font-weight: var(--iws-font-weight-semibold);
    padding: 10px 12px;
}

.iws-hire-orders__table td {
    padding: 12px;
    vertical-align: middle;
}

.iws-hire-orders__col--checkbox {
    width: 30px;
    padding-left: 10px !important;
}

.iws-hire-orders__col--order {
    width: 120px;
}

.iws-hire-orders__col--delivery,
.iws-hire-orders__col--collection {
    width: 130px;
}

.iws-hire-orders__col--permit {
    width: 110px;
    text-align: center;
}

.iws-hire-orders__col--status {
    width: 180px;
}

.iws-hire-orders__order-link {
    text-decoration: none;
    color: #2271b1;
}

.iws-hire-orders__order-link:hover {
    color: #135e96;
}

.iws-hire-orders__order-customer {
    font-size: 12px;
    color: #50575e;
    margin-top: 4px;
}

.iws-hire-orders__na {
    color: #a7aaad;
}

.iws-hire-orders__permit {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 3px;
    font-size: 11px;
    font-weight: var(--iws-font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.iws-hire-orders__permit--yes {
    background-color: var(--iws-success);
    color: var(--iws-text-on-primary);
}

.iws-hire-orders__permit--no {
    background-color: var(--iws-error);
    color: var(--iws-text-on-primary);
}

.iws-hire-orders__status-select {
    width: 100%;
    min-width: 150px;
    transition: background-color 0.3s ease;
}

.iws-hire-orders__status-select.iws-status-updated {
    background-color: var(--iws-success-bg);
}

.iws-hire-orders__table tr.iws-updating {
    opacity: 0.6;
    pointer-events: none;
}

.iws-hire-orders__empty {
    padding: 40px;
    text-align: center;
    background: #fff;
    border: 1px solid #c3c4c7;
    border-top: none;
}

.iws-hire-orders__empty p {
    margin: 0;
    color: #50575e;
    font-size: 14px;
}

.iws-hire-orders__modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 100100;
    display: flex;
    align-items: center;
    justify-content: center;
}

.iws-hire-orders__modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
}

.iws-hire-orders__modal-content {
    position: relative;
    background: #fff;
    border-radius: var(--iws-radius);
    box-shadow: var(--iws-shadow-lg);
    width: 100%;
    max-width: 450px;
    z-index: 1;
}

.iws-hire-orders__modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 15px 20px;
    border-bottom: 1px solid #dcdcde;
}

.iws-hire-orders__modal-header h2 {
    margin: 0;
    font-size: 18px;
    font-weight: var(--iws-font-weight-semibold);
}

.iws-hire-orders__modal-close {
    background: none;
    border: none;
    font-size: 24px;
    line-height: 1;
    color: #50575e;
    cursor: pointer;
    padding: 0;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 3px;
}

.iws-hire-orders__modal-close:hover {
    background: #f0f0f1;
    color: #1d2327;
}

.iws-hire-orders__modal-body {
    padding: 20px;
}

.iws-hire-orders__modal-count {
    margin: 0 0 15px;
    font-size: 14px;
    color: #50575e;
}

.iws-hire-orders__modal-body label {
    display: block;
    margin-bottom: 8px;
    font-weight: var(--iws-font-weight-semibold);
}

.iws-hire-orders__modal-status {
    width: 100%;
}

.iws-hire-orders__modal-footer {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 15px 20px;
    border-top: 1px solid #dcdcde;
    background: #f6f7f7;
    border-radius: 0 0 var(--iws-radius) var(--iws-radius);
}

body.iws-modal-open {
    overflow: hidden;
}

.iws-hire-orders__notice {
    margin: 15px 0;
}

@media screen and (max-width: 782px) {
    .iws-hire-orders__toolbar {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }

    .iws-hire-orders__sorting {
        width: 100%;
    }

    .iws-hire-orders__sort-select {
        flex: 1;
    }

    .iws-hire-orders__col--address {
        display: none;
    }

    .iws-hire-orders__col--delivery,
    .iws-hire-orders__col--collection {
        width: auto;
    }

    .iws-hire-orders__modal-content {
        margin: 20px;
        max-width: none;
    }
}
