/* Shared button feedback, matched to Additional Services. Never change geometry on hover. */
body {
    --pp-site-button-hover: var(--pp-design-hover, #5a433b);
    --pp-vik-accent-hover: var(--pp-design-hover, #5a433b);
    --ppop-brown-dark: var(--pp-design-hover, #5a433b);
}

/* Honesty Bar's label inherits Elementor's text shadow, including while disabled. */
body .phb .phb__pay,
body .phb .phb__pay *,
body .phb .phb__pay:is(:hover, :focus, :active, :disabled),
body .phb .phb__pay:is(:hover, :focus, :active, :disabled) * {
    text-shadow: none !important;
}

/* Calendar chevrons use the same centred artwork, independent of font baselines.
 * Keep each service's existing dimensions, corners, disabled state and click target. */
body .pas button.pas__calendar-nav,
body .ppop-calendar-nav a {
    position: relative;
    font-size: 0 !important;
    line-height: 0 !important;
    padding: 0 !important;
    text-shadow: none !important;
}

body .pas button.pas__calendar-nav::after,
body .ppop-calendar-nav a::after {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    display: block !important;
    width: 20px !important;
    height: 20px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: center / 20px 20px no-repeat;
    transform: translate(-50%, -50%) !important;
    pointer-events: none;
}

body .pas button.pas__calendar-nav[data-calendar-prev]::after,
body .ppop-calendar-nav a:first-child::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%234a3731' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 4 7 10l6 6'/%3E%3C/svg%3E") !important;
}

body .pas button.pas__calendar-nav[data-calendar-next]::after,
body .ppop-calendar-nav a:last-child::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%234a3731' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 4 6 6-6 6'/%3E%3C/svg%3E") !important;
}

/* Theme buttons keep their existing dimensions and four-pixel corners. */
body .elementor-button,
body .ast-button,
body .wp-block-button__link,
body .wp-element-button {
    transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease !important;
}

@media (hover: hover) {
    body .elementor-button:not([aria-disabled="true"]):hover,
    body .ast-button:not([aria-disabled="true"]):hover,
    body .wp-block-button__link:not([aria-disabled="true"]):hover,
    body .wp-element-button:not([aria-disabled="true"]):hover {
        border-color: var(--pp-site-button-hover) !important;
        background-color: var(--pp-site-button-hover) !important;
        color: #fff !important;
        -webkit-text-fill-color: #fff !important;
        box-shadow: none !important;
        transform: none !important;
    }

    /* Search, booking and comparison buttons share the same brown highlight. */
    body .ppbd-search .vbsearchinputmodhors:hover,
    body .ppbd-search button[type="submit"]:hover,
    body .ppbd-price-close:hover,
    body .ppbd-price-reopen:hover,
    body .ppbd-price-coupon:not(.is-copied):hover,
    body .ppbd-close:hover,
    body .vbo-listing-details-wrap .vbo-search-submit input.btn.vbdetbooksubmit.vbo-pref-color-btn:hover,
    body .pp-vbo-mobile-booking-bar:not(.pp-vbo-mobile-flow-bar) .pp-vbo-mobile-booking-button:hover {
        border-color: var(--pp-site-button-hover) !important;
        background: var(--pp-site-button-hover) !important;
        color: #fff !important;
        -webkit-text-fill-color: #fff !important;
        box-shadow: none !important;
    }

    /* The owner portal uses the same feedback without its former lift effect. */
    body .ppop-filters button:hover,
    body .ppop-owner-stay button:hover,
    body .ppop-stay-item button:hover,
    body .ppop-button:hover {
        border-color: var(--pp-site-button-hover) !important;
        background: var(--pp-site-button-hover) !important;
        transform: none !important;
    }
}

/* Keyboard users get the same visible feedback, even on touch devices. */
body .elementor-button:focus-visible,
body .ast-button:focus-visible,
body .wp-block-button__link:focus-visible,
body .wp-element-button:focus-visible,
body .ppbd-search .vbsearchinputmodhors:focus-visible,
body .ppbd-price-close:focus-visible,
body .ppbd-price-reopen:focus-visible,
body .ppbd-price-coupon:focus-visible {
    outline: 2px solid var(--pp-site-button-hover) !important;
    outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
    body .elementor-button,
    body .ast-button,
    body .wp-block-button__link,
    body .wp-element-button {
        transition-duration: 1ms !important;
    }
}
