/*
 * Theme Name: ASNZ Block Theme
 * Theme URI: https://lightspeedwp.agency
 * Author: Lightspeed WP
 * Description: Modern WordPress block theme for African Safaris New Zealand.
 * Forked from the Ollie (OllieWP) theme by Lightspeed WP.
 * Version: 0.1.0
 * Text Domain: asnz-block-theme
 */

/*
 * Table of Contents
 * 1. Base Configuration (From Ollie Theme)
 * 2. Forms (From Ollie Theme)
 * 3. Header / Sticky & Mobile Utilities (From Ollie Theme)
 * 4. Block Variation Helpers
 * 5. Button Hover Effects
 * 6. Card Helpers
 * 7. Slider Buttons & Bars
 * 8. Expanding Header Search
 * 9. Navigation & Mega Menus
 *    - Main Navigation
 *    - Mega Menu
 *    - Submenu & Responsive Nav
 * 10. Homepage Hero Search Block
 * 11. Mobile Menu styling
 * 12. FacetWP
 *    - Search Facet
 *    - Sort Facet
 *    - Slider Facet
 *    - Pagination Facet
 */

/* ========================================================================== */

/* Base Configuration (From Ollie Theme)                                      */

/* ========================================================================== */

/* Box sizing rules */
*,
*::before,
*::after {
    box-sizing: inherit;
}

/* Set core body defaults */
html {
    box-sizing: border-box;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
}

b,
strong {
    font-weight: var(--wp--custom--font-weight--semi-bold);
}

img,
figure {
    max-width: 100%;
    height: auto;
}

/* Temporary fix for text-decoration-thickness in Firefox */
@-moz-document url-prefix() {
    a {
        text-decoration-thickness: 0.1rem !important;
    }
}

/* Make sure "Read More" link in excerpts is on its own line */
a.more-link {
    display: block;
}

/* Inline code (outside core/code block) */
*:not(.wp-block-code) > code {
    background: var(--wp--preset--color--tertiary);
    padding: 3px 5px;
    position: relative;
    border-radius: 3px;
}

/* Categories block - ensure relative positioning for dropdown */
.wp-block-categories {
    position: relative;
}

/* Archive term description trailing space removal */
.wp-block-term-description p:last-child {
    margin-bottom: 0;
}

/* Remove last separator on post list */
.remove-border-and-padding
    .wp-block-post-template
    li:last-child
    .wp-block-separator {
    display: none;
}

/* Hide post meta div if no tags assigned */
.single .wp-block-group:has(> .post-meta:empty) {
    display: none;
}

/* Hide empty group blocks above comment form */
.wp-block-group:empty:has(+ .comment-respond) {
    display: none;
}

/* Logos row - prevent shrinking of logos */
.row-logos > figure {
    flex-shrink: 1 !important;
}

/* ========================================================================== */

/* Forms (From Ollie Theme)                                                   */

/* ========================================================================== */

/* Inherit font & color from surrounding text */
input,
button,
textarea,
select {
    font: inherit;
}

/* Remove default styling */
input[type='button'],
input[type='email'],
input[type='search'],
input[type='submit'],
input[type='text'],
textarea {
    -webkit-appearance: none;
    appearance: none;
}

/* Basic styling */
input:not([type='submit']),
select,
textarea {
    color: var(--wp--preset--color--contrast);
    border-radius: 5px;
    border: solid 1px var(--wp--preset--color--neutral-200);
    padding: 0.5em 1em;
    font-size: var(--wp--preset--font-size--300);
    background-color: var(--wp--preset--color--base);
}

/* Focus state */
input:focus-visible,
textarea:focus-visible {
    outline-color: var(--wp--preset--color--primary);
}

/* Auto-resizing textarea */
input[type='checkbox'],
input[type='image'],
input[type='radio'] {
    width: auto;
}

/* Full width labels */
label {
    width: 100%;
    display: block;
}

/* Placeholder styling */
::placeholder {
    color: var(--wp--preset--color--secondary);
    font-size: var(--wp--preset--font-size--300);
    opacity: 0.75;
}

/* ========================================================================== */

/* Header / Sticky & Mobile Utilities (From Ollie Theme)                      */

/* ========================================================================== */

/* Sticky header when .is-position-sticky class is applied to a direct child */
header:has(> .is-position-sticky) {
    position: sticky;
    top: calc(0px + var(--wp-admin--admin-bar--height, 0px));
    z-index: 100;
}

/* On small screens, ensure sticky header stays at top */
@media (max-width: 600px) {
    header:has(> .is-position-sticky) {
        top: 0;
    }
}

/* Hide elements on mobile */
@media (max-width: 781px) {
    .ollie-hide-on-mobile,
    .asnz-hide-on-mobile {
        display: none;
    }
    .ollie-unstick-mobile,
    .asnz-unstick-mobile {
        position: static;
    }
    header:has(> .ollie-unstick-mobile),
    header:has(> .asnz-unstick-mobile) {
        position: static;
    }

    /* Hide .filters class on mobile */
    .filters {
        display: none !important;
    }
}

/* ========================================================================== */

/* Block Variation Helpers                                                    */

/* ========================================================================== */

/* Vertical Separator */
.wp-block-separator.is-style-vertical {
    width: 2px;
    align-self: stretch;
}

/* ========================================================================== */

/* Button Hover Effects                                                       */

/* ========================================================================== */

/* Summary Nav Button Style & Interactive States */
.is-style-button-summary-nav .wp-block-button__link {
    background: var(--wp--preset--color--base);
    color: var(--wp--preset--color--contrast);
    text-decoration: none;
    transition:
        background 0.25s ease,
        color 0.25s ease;
}

/* Hover + keyboard focus */
.is-style-button-summary-nav .wp-block-button__link:hover,
.is-style-button-summary-nav .wp-block-button__link:focus-visible {
    background: var(--wp--preset--color--brand);
    color: var(--wp--preset--color--base);
}

/* Button hover effects for CTA button variation */
.wp-block-button.cta-button-hover .wp-block-button__link:hover,
.wp-block-button.cta-button-hover .wp-block-button__link:focus-visible {
    background: var(--wp--preset--color--cta-dark);
    color: var(--wp--preset--color--base);
    text-decoration: none;
    transition: background 0.25s ease; /* transition kept for smoother change */
}

/* Button hover effects for Card button variation */
.wp-block-button.is-style-card-button .wp-block-button__link:hover,
.wp-block-button.is-style-card-button .wp-block-button__link:focus-visible {
    background: var(--wp--preset--color--brand-dark);
    color: var(--wp--preset--color--base);
    text-decoration: none;
    transition: background 0.25s ease;
}

/* Button hover effects for Brand button variation */
.wp-block-button.is-style-button-brand .wp-block-button__link:hover,
.wp-block-button.is-style-button-brand .wp-block-button__link:focus-visible {
    background: var(--wp--preset--color--brand-dark);
    color: var(--wp--preset--color--base);
    text-decoration: none;
    transition: background 0.25s ease;
}

/* ========================================================================== */

/* Card Helpers                                                               */

/* ========================================================================== */

/* Card title centering */
.card-title {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    min-height: 4rem;
}

/* Card max width constraint */
.is-style-section-card {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

/* Card Featured Image */
.is-style-section-card-image img,
.card-featured-image img {
    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
    width: 100%;
    object-fit: cover;
    aspect-ratio: 21 / 9;
}

/* Center content utility for Single Region Content area*/
.content-center,
.content-center > * {
    text-align: center;
    font-weight: 500;
}

/* Read More Block Hover Fix for Read More links on Tour Descriptions & Itinerary Days*/
.wp-block-read-more.is-style-read-more-description:hover,
.wp-block-read-more.is-style-read-more-description:focus-visible,
.wp-block-read-more.is-style-read-more-itinerary:hover,
.wp-block-read-more.is-style-read-more-itinerary:focus-visible {
    color: var(--wp--preset--color--brand-text);
}

/* Tour info rows - prevent label wrapping */
.is-style-section-tour-info .info-row .label {
    white-space: nowrap;
}

/* Allow value to wrap */
.info-row .value,
.info-row .wp-block-post-terms.value,
.info-row .wp-block-post-terms.value a {
    white-space: normal;
}

/* Align items to top if value wraps */
.is-style-section-tour-info .info-row {
    align-items: flex-start;
}

/* On small screens, truncate long labels */
@media (max-width: 480px) {
    .info-row .label {
        overflow: hidden;
        text-overflow: ellipsis;
    }
}

/* ========================================================================== */

/* Slider Buttons & Bars                                                      */

/* ========================================================================== */

/* Slider Buttons */

/* Position arrows vertically centered */
.lsx-to-slider .slick-arrow {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 2;
}

/* Left & right anchors */
.lsx-to-slider .slick-prev {
    left: -4rem !important;
}
.lsx-to-slider .slick-next {
    right: -4rem !important;
    transform: translateY(-50%) rotate(180deg) !important;
}

/* Remove default arrows */
.lsx-to-slider .slick-arrow::before {
    content: none !important;
}

/* Keep icon + sizing overrides */
.lsx-to-slider .slick-prev,
.lsx-to-slider .slick-next {
    width: 54px !important;
    height: 54px !important;
    background: url('./assets/icons/slider-button-default.svg') no-repeat
        center/contain !important;
    border: none !important;
    margin: 0 !important;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Hover + focus states */
.lsx-to-slider .slick-prev:hover,
.lsx-to-slider .slick-prev:focus-visible,
.lsx-to-slider .slick-next:hover,
.lsx-to-slider .slick-next:focus-visible {
    background-image: url('./assets/icons/slider-button-hover.svg') !important;
}

/* Slider Bars */

/* Center the whole dots group relative to the slider */
.lsx-to-slider .slick-dots {
    position: static !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
    margin: var(--wp--preset--spacing--30) auto 0 !important;
    padding: 0 !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: var(--wp--preset--spacing--20) !important;
    list-style: none;
}

/* Removes the slider dots from desktop view */
@media (min-width: 782px) {
    .lsx-to-slider .slick-dots {
        display: none !important;
    }
}

/* Remove default li styles */
.lsx-to-slider .slick-dots li {
    margin: 0 !important;
    padding: 0 !important;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Remove default bar styles */
.lsx-to-slider .slick-dots li button::before {
    content: none !important;
}

/* Base styles for bars */
.lsx-to-slider .slick-dots li button {
    width: 46px !important;
    height: 6px !important;
    display: block;
    background: url('./assets/icons/slider-bar-default.svg') no-repeat
        center/contain !important;
    background-color: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    cursor: pointer;
    text-indent: -9999px;
    overflow: hidden;
}

/* Active, hover + focus states */
.lsx-to-slider .slick-dots li.slick-active button,
.lsx-to-slider .slick-dots li button:hover,
.lsx-to-slider .slick-dots li button:focus-visible {
    background-image: url('./assets/icons/slider-bar-active.svg') !important;
}

/* Focus ring */
.lsx-to-slider .slick-dots li button:focus-visible {
    outline: 2px solid var(--wp--preset--color--primary, #090909);
    outline-offset: 2px;
}

.slick-track {
    display: flex !important;
}

.slick-track::before,
.slick-track::after {
    display: none;
}

.slick-slide {
    height: auto;
    display: flex;
}

.slick-slide > div,
.wp-block-post-template li > div,
.wp-block-term-template li > div {
    flex: 1;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.slick-slide .card-footer,
.wp-block-post-template li .card-footer,
.wp-block-term-template li .card-footer {
    margin-top: auto;
    width: 100%;
}

/* Query Loop & Term Query Cards */
.wp-block-post-template li,
.wp-block-term-template li {
    display: flex;
    height: auto;
}

/* ========================================================================== */

/* Expanding Header Search             										  */

/* ========================================================================== */

/* Expanding overlay input pattern */
.is-style-header-search {
    position: relative;
    height: 100%;
    display: flex;
    align-items: center; /* vertically center icon/button */
}

/* Ensure full height for inner wrapper */
.is-style-header-search .wp-block-search__inside-wrapper {
    display: flex;
    align-items: center; /* center internal elements */
    gap: 0;
    position: relative;
    min-width: 40px; /* icon button width */
    height: 100%;
}

/* Style the button as an icon button */
.is-style-header-search .wp-block-search__button {
    padding: 0 14px !important;
    height: 100%;
    align-items: center;
    display: flex;
    border-radius: 0 !important;
    box-sizing: border-box;
    background: transparent;
    color: currentColor;
    transition: none;
    border: none;
}

/* Remove any default hover background */
.is-style-header-search .wp-block-search__button:hover,
.is-style-header-search .wp-block-search__button:focus-visible {
    background: transparent;
    color: currentColor;
    outline: none;
}

/* Icon size */
.is-style-header-search .search-icon {
    width: 32px;
    height: 32px;
    display: block;
}

/* Collapsed state */
.is-style-header-search .wp-block-search__input {
    position: absolute;
    right: 100%;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    min-width: 0;
    opacity: 0;
    pointer-events: none;
    border: 1px solid var(--wp--preset--color--brand);
    border-radius: 4px;
    transition:
        width 0.35s cubic-bezier(0.4, 0, 0.2, 1),
        opacity 0.2s,
        padding 0.2s;
    background: var(--wp--preset--color--base, #fff);
    padding: 8px;
    z-index: 25;
    box-shadow: var(--wp--preset--shadow--elevation-2);
}

/* Expanded state */
.is-style-header-search
    .wp-block-search__input:not(.wp-block-search__searchfield-hidden) {
    width: 600px;
    min-width: 240px;
    opacity: 1;
    pointer-events: auto;
    padding: 8px 14px;
}

/* Hidden state (for screen readers) */
.is-style-header-search .wp-block-search__searchfield-hidden {
    width: 0 !important;
    min-width: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
    padding: 8px 0 !important;
}

/* Responsive adjustments */
@media (max-width: 960px) {
    .is-style-header-search
        .wp-block-search__input:not(.wp-block-search__searchfield-hidden) {
        width: 360px;
    }
}

/* Further adjustments for very small screens */
@media (max-width: 600px) {
    .is-style-header-search
        .wp-block-search__input:not(.wp-block-search__searchfield-hidden) {
        width: 260px;
    }
}

/* ========================================================================== */

/* Navigation & Mega Menus                                                    */

/* ========================================================================== */

/* === Footer Navigation: Base & Hover === */
.footer-nav .wp-block-navigation__container {
    color: var(--wp--preset--color--contrast);
}

/* Footer navigation block: font-weight 500, contrast color, brand-dark hover */
.footer-nav .wp-block-navigation__container,
.footer-nav .wp-block-navigation-item__content {
    font-weight: 500;
    color: var(--wp--preset--color--contrast);
}
.footer-nav .wp-block-navigation-item__content:hover,
.footer-nav .wp-block-navigation-item__content:focus-visible {
    color: var(--wp--preset--color--brand-dark);
}

/* === Main Navigation: Base === */
.wp-block-navigation.is-style-nav-hover li {
    align-items: center;
    padding: 0 12px;
    transition: all 250ms ease;
    display: flex;
    height: 100%;
    flex-flow: row nowrap;
    justify-content: flex-start;
}
/* stylelint-disable-next-line no-descending-specificity */
.wp-block-navigation.is-style-nav-hover li > a {
    text-decoration: none;
}

/* === Mega Menu: Base === */

.is-style-mega-menu {
    z-index: 999;
}

.wp-block-ollie-mega-menu__menu-container {
    z-index: 999;
}

.wp-block-navigation.mega-menu-nav .wp-block-navigation__container {
    display: block;
}
.wp-block-navigation.mega-menu-nav li {
    display: block;
    height: auto;
    padding: 0;
    background: transparent;
    color: inherit;
}
.wp-block-navigation.mega-menu-nav .wp-block-navigation-item__content {
    display: inline-block;
    padding: 0;
    background: transparent;
    text-decoration: none;
    font-family: var(--wp--preset--font-family--secondary);
    font-weight: 500;
    color: inherit;
}

/* === Mega Menu: Hover/Focus === */
.wp-block-navigation.mega-menu-nav a.wp-block-navigation-item__content:hover,
.wp-block-navigation.mega-menu-nav a.wp-block-navigation-item__content:focus {
    background: transparent !important;
    color: var(--wp--preset--color--brand-dark) !important;
    text-decoration: underline !important;
}
.wp-block-navigation.mega-menu-nav li:hover,
.wp-block-navigation.mega-menu-nav li:focus-within {
    background: transparent !important;
    color: inherit !important;
}
.wp-block-navigation.mega-menu-nav li:focus,
.wp-block-navigation.mega-menu-nav li:focus-visible {
    background: transparent !important;
    color: inherit !important;
}
.wp-block-navigation.mega-menu-nav a.wp-block-navigation-item__content:focus,
.wp-block-navigation.mega-menu-nav
    a.wp-block-navigation-item__content:focus-visible {
    background: transparent !important;
    color: var(--wp--preset--color--brand-dark) !important;
    text-decoration: underline !important;
}

/* === Mega Menu: Active State Override (No Background) === */
.wp-block-navigation.mega-menu-nav .wp-block-navigation-item__content.is-active,
.wp-block-navigation.mega-menu-nav
    .wp-block-navigation-item__content[aria-current='page'],
.wp-block-navigation.mega-menu-nav
    .wp-block-navigation-item__content[aria-current='true'] {
    color: var(--wp--preset--color--brand-dark) !important;
    text-decoration: underline !important;
    background: transparent !important;
    box-shadow: none !important;
}

/* === Mega Menu: Current Menu Item Override (No Background) === */
.wp-block-navigation.mega-menu-nav li.current-menu-item,
.wp-block-navigation.mega-menu-nav li.current-menu-item a {
    background: transparent !important;
    color: var(--wp--preset--color--brand-dark) !important;
    text-decoration: underline !important;
}

/* === Main Navigation: Hover/Focus/Active === */
.wp-block-navigation.is-style-nav-hover li:hover,
.wp-block-navigation.is-style-nav-hover li:focus-within {
    background: var(--wp--preset--color--brand-dark);
    color: var(--wp--preset--color--base);
}
.wp-block-navigation .is-style-nav-hover li.current-menu-item {
    color: var(--wp--preset--color--base);
    background: var(--wp--preset--color--brand-dark);
}
.wp-block-navigation .is-style-nav-hover li.current-menu-item a {
    color: var(--wp--preset--color--base);
}

/* === Mega Menu: Out-specific Parent Nav Hover === */
.wp-block-navigation.is-style-nav-hover
    .wp-block-navigation.mega-menu-nav
    li:hover,
.wp-block-navigation.is-style-nav-hover
    .wp-block-navigation.mega-menu-nav
    li:focus-within {
    background: transparent !important;
    color: inherit !important;
}
.wp-block-navigation.is-style-nav-hover
    .wp-block-navigation.mega-menu-nav
    a.wp-block-navigation-item__content:hover,
.wp-block-navigation.is-style-nav-hover
    .wp-block-navigation.mega-menu-nav
    a.wp-block-navigation-item__content:focus {
    background: transparent !important;
    color: var(--wp--preset--color--brand-dark) !important;
    text-decoration: underline !important;
}

/* === Submenu & Responsive Nav === */
nav.wp-block-navigation.is-style-nav-hover
    .has-child
    .wp-block-navigation__submenu-container
    li:hover {
    background: var(--wp--preset--color--brand-dark);
    color: var(--wp--preset--color--base);
}
nav.wp-block-navigation.is-style-nav-hover
    .has-child
    .wp-block-navigation__submenu-container
    li:hover
    a {
    color: var(--wp--preset--color--base);
}
nav.wp-block-navigation.is-style-nav-hover .wp-block-navigation__container {
    display: flex;
}
nav.wp-block-navigation.is-style-nav-hover
    .wp-block-navigation__container
    > li.wp-block-navigation-item {
    display: flex;
    align-items: stretch;
    height: 100%;
}
nav.wp-block-navigation.is-style-nav-hover
    .wp-block-navigation__container
    > li.wp-block-navigation-item
    > .wp-block-navigation-item__content,
nav.wp-block-navigation.is-style-nav-hover
    .wp-block-navigation__container
    > li.wp-block-navigation-item
    > button.wp-block-navigation-item__content {
    display: flex;
    align-items: center;
    height: 100%;
}
nav.wp-block-navigation.is-style-nav-hover
    .wp-block-navigation__responsive-container,
nav.wp-block-navigation.is-style-nav-hover ul {
    height: 100%;
}
nav.wp-block-navigation.is-style-nav-hover
    .wp-block-navigation__responsive-dialog,
nav.wp-block-navigation.is-style-nav-hover
    .wp-block-navigation__responsive-close {
    height: 100%;
}
nav.wp-block-navigation.is-style-nav-hover
    .wp-block-navigation__responsive-container
    .wp-block-navigation__responsive-container-content {
    height: 100%;
}

/* ========================================================================== */

/* Homepage Hero Search Block                                                 */

/* ========================================================================== */

/* Search block "CTA" style for homepage hero search */
.wp-block-search.is-style-cta .wp-block-search__button,
.wp-block-search.is-style-cta .wp-block-search__button.wp-element-button {
    background: var(--wp--preset--color--cta);
    color: var(--wp--preset--color--contrast);
}

/* Hover + keyboard focus */
.wp-block-search.is-style-cta .wp-block-search__button:hover,
.wp-block-search.is-style-cta .wp-block-search__button:focus,
.wp-block-search.is-style-cta .wp-block-search__button:active {
    background: var(--wp--preset--color--cta-dark);
    color: var(--wp--preset--color--base);
}

/* ========================================================================== */

/* Mobile Menu styling                                                        */

/* ========================================================================== */

/* Details block used for mobile menu */
.wp-block-details.is-style-mobile-menu-details summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: 500 !important;
    position: relative;
    cursor: pointer;
}

/* Add SVG icon after summary text */
.wp-block-details.is-style-mobile-menu-details summary::after {
    content: '';
    display: inline-block;
    width: 24px;
    height: 24px;
    margin-left: 0.5em;
    background: url('/wp-content/themes/asnz-block-theme/assets/icons/sorting-chevron.svg')
        no-repeat center center;
    background-size: 24px 24px;
    transition: transform 0.1s cubic-bezier(0.7, 0, 0.3, 1);
}

/* Flip the SVG icon when details is open */
.wp-block-details.is-style-mobile-menu-details[open] summary::after {
    transform: rotate(180deg);
}

/* Close button */
.wp-block-navigation__responsive-container.is-menu-open
    > .wp-block-navigation__responsive-close
    > .wp-block-navigation__responsive-dialog
    > .wp-block-navigation__responsive-container-close {
    top: var(--wp--preset--spacing--30);
    right: var(--wp--preset--spacing--20);
    inline-size: 40px;
    block-size: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    color: var(--wp--preset--color--base);
    border: 2px solid var(--wp--preset--color--primary-light);
    border-radius: 4px;
    z-index: 10;
}

/* Fix top padding */
/* stylelint-disable-next-line no-descending-specificity */
.wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-content {
    padding-top: var(--wp--preset--spacing--20);
}

/* ========================================================================== */

/* FacetWP                                                                    */

/* ========================================================================== */

/* === FacetWP Search Facet === */
.wp-block-facetwp-facet .facetwp-facet.facetwp-type-search {
    margin-bottom: var(--wp--preset--spacing--20);
    gap: var(--wp--preset--spacing--10);
}

/* Input wrap */
.wp-block-facetwp-facet .facetwp-facet.facetwp-type-search .facetwp-input-wrap {
    display: inline-flex;
    align-items: center;
    background: var(--wp--preset--color--base);
    gap: var(--wp--preset--spacing--10);
    width: 100%;
    min-width: 0;
}

/* Input */
.wp-block-facetwp-facet
    .facetwp-facet.facetwp-type-search
    .facetwp-input-wrap
    > input.facetwp-search {
    flex: 1 1 0;
    margin-right: calc(50px + var(--wp--preset--spacing--10));
    border: 1px solid var(--wp--preset--color--primary);
    border-radius: 4px;
    font: inherit;
    font-size: var(--wp--preset--font-size--300);
    height: 50px;
    box-sizing: border-box;
}

/* Icon/button */
.wp-block-facetwp-facet .facetwp-facet.facetwp-type-search .facetwp-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    background: var(--wp--preset--color--cta);
    color: var(--wp--preset--color--contrast);
    transition:
        background 0.2s ease,
        color 0.2s ease,
        transform 0.05s ease;
    opacity: 1;
    filter: none;
    padding-left: var(--wp--preset--spacing--10);
    padding-right: var(--wp--preset--spacing--10);
    height: 50px;
    min-width: 50px;
}

/* Hover + keyboard focus */
.wp-block-facetwp-facet .facetwp-facet.facetwp-type-search .facetwp-icon:hover,
.wp-block-facetwp-facet
    .facetwp-facet.facetwp-type-search
    .facetwp-icon:focus-visible {
    background: var(--wp--preset--color--cta-dark);
    outline: none;
}

/* === FacetWP Sort Facet === */
.wp-block-facetwp-facet .facetwp-facet.facetwp-type-sort {
    margin-bottom: 0 !important;
}

/* Select dropdown */
.wp-block-facetwp-facet .facetwp-facet.facetwp-type-sort select {
    font-family: inherit !important;
    border: none !important;
    background-color: var(--wp--preset--color--base);
    padding-right: 3.5rem;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    position: relative;
    line-height: 1.3;
    height: 2.5em;
    background-image: url('/wp-content/themes/asnz-block-theme/assets/icons/sorting-chevron.svg');
    background-repeat: no-repeat;
    background-position: right 0.8rem center;
    background-size: 1.5rem 1.5rem;
}

/* Outline focus state */
.wp-block-facetwp-facet .facetwp-facet.facetwp-type-sort select:focus {
    outline: 2px solid var(--wp--preset--color--brand);
}

/* Remove default dropdown arrow in Firefox */
@-moz-document url-prefix() {
    .wp-block-facetwp-facet .facetwp-facet.facetwp-type-sort select {
        background-image: url('/assets/sorting-chevron.svg');
    }
}

/* === FacetWP Slider Facet === */
.wp-block-facetwp-facet .facetwp-slider .noUi-base {
    background: var(--wp--preset--color--neutral-100);
}

/* Slider connector */
.wp-block-facetwp-facet .facetwp-slider .noUi-connect {
    background: var(--wp--preset--color--brand);
}

/* === FacetWP Pagination Facet === */
.wp-block-facetwp-facet .facetwp-facet.facetwp-type-pager .facetwp-pager {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 4px;
    margin-bottom: 0;
    flex-wrap: wrap;
}

/* Page numbers: square, 40, 2px radius, centered text */
.wp-block-facetwp-facet .facetwp-facet.facetwp-type-pager .facetwp-page {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    font-family: inherit;
    font-size: inherit;
    font-weight: 500;
    text-align: center;
    background: var(--wp--preset--color--base);
    color: var(--wp--preset--color--brand);
    border: none;
    transition:
        background 0.15s,
        color 0.15s;
    box-sizing: border-box;
    padding: var(--wp--preset--spacing--10) var(--wp--preset--spacing--20);
    margin: 0;
    text-decoration: none;
}

/* Dots (ellipsis) */
.wp-block-facetwp-facet .facetwp-facet.facetwp-type-pager .facetwp-page.dots {
    background: transparent !important;
    color: var(--wp--preset--color--brand) !important;
    pointer-events: none;
    cursor: default;
}

/* Previous/Next buttons */
.wp-block-facetwp-facet .facetwp-facet.facetwp-type-pager .facetwp-page.next,
.wp-block-facetwp-facet .facetwp-facet.facetwp-type-pager .facetwp-page.first,
.wp-block-facetwp-facet .facetwp-facet.facetwp-type-pager .facetwp-page.last,
.wp-block-facetwp-facet .facetwp-facet.facetwp-type-pager .facetwp-page.prev {
    width: auto;
    padding: var(--wp--preset--spacing--10) var(--wp--preset--spacing--20);
    border-radius: 4px;
    background: var(--wp--preset--color--base);
    color: var(--wp--preset--color--brand);
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition:
        background 0.15s,
        color 0.15s;
    white-space: nowrap;
}

/* Center page numbers with gap */
.wp-block-facetwp-facet .facetwp-facet.facetwp-type-pager .facetwp-page.prev {
    margin-right: auto;
}

/* Align next button to right */
.wp-block-facetwp-facet .facetwp-facet.facetwp-type-pager .facetwp-page.next {
    margin-left: auto;
}

/* Active, Focus, Hover: filled box */
.wp-block-facetwp-facet .facetwp-facet.facetwp-type-pager .facetwp-page:hover,
.wp-block-facetwp-facet
    .facetwp-facet.facetwp-type-pager
    .facetwp-page:focus-visible,
.wp-block-facetwp-facet .facetwp-facet.facetwp-type-pager .facetwp-page.active,
.wp-block-facetwp-facet
    .facetwp-facet.facetwp-type-pager
    .facetwp-page.active.first,
.wp-block-facetwp-facet
    .facetwp-facet.facetwp-type-pager
    .facetwp-page.active.last,
.wp-block-facetwp-facet
    .facetwp-facet.facetwp-type-pager
    .facetwp-page.first:hover,
.wp-block-facetwp-facet
    .facetwp-facet.facetwp-type-pager
    .facetwp-page.first:focus-visible,
.wp-block-facetwp-facet
    .facetwp-facet.facetwp-type-pager
    .facetwp-page.last:hover,
.wp-block-facetwp-facet
    .facetwp-facet.facetwp-type-pager
    .facetwp-page.last:focus-visible {
    background: var(--wp--preset--color--brand);
    color: var(--wp--preset--color--base);
    outline: none;
}

/* Previous/Next hover/active state */
.wp-block-facetwp-facet
    .facetwp-facet.facetwp-type-pager
    .facetwp-page.prev:hover,
.wp-block-facetwp-facet
    .facetwp-facet.facetwp-type-pager
    .facetwp-page.prev:focus-visible,
.wp-block-facetwp-facet
    .facetwp-facet.facetwp-type-pager
    .facetwp-page.next:hover,
.wp-block-facetwp-facet
    .facetwp-facet.facetwp-type-pager
    .facetwp-page.next:focus-visible {
    background: var(--wp--preset--color--brand);
    color: var(--wp--preset--color--base);
}

/* Spacing between page numbers */
.wp-block-facetwp-facet
    .facetwp-facet.facetwp-type-pager
    .facetwp-page:not(.prev):not(.next):not(.dots):not(.first):not(.last) {
    margin-left: 2px;
    margin-right: 2px;
}

/* Hide non-active page numbers, except prev/next, on mobile */
@media (max-width: 600px) {
    .wp-block-facetwp-facet
        .facetwp-facet.facetwp-type-pager
        .facetwp-page:not(.active):not(.prev):not(.next) {
        display: none !important;
    }
}

/* Facet Mobile expanding menus */
.flyout-item {
    display: none;
}

.flyout-row.expanded .flyout-item {
    display: block;
}

.flyout-row h3 {
    display: flex;
    cursor: pointer;
    font-size: var(--wp--preset--font-size--400);
    margin-top: 0;
    padding-bottom: var(--wp--preset--spacing--20);
    border-bottom: 1px solid var(--wp--preset--color--primary);
    align-items: center;
    justify-content: space-between;
}

.facetwp-flyout-close h3 {
    margin-bottom: 0 !important;
    margin-top: 0 !important;
    font-size: var(--wp--preset--font-size--500);
    font-family: var(--wp--preset--font-family--primary);
    font-weight: 600;
}

/* stylelint-disable selector-class-pattern, no-descending-specificity */
.facetwp-flyout-close button {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
}
/* stylelint-enable selector-class-pattern, no-descending-specificity */

.flyout-row.expanded h3 {
    border-bottom: none;
}
.flyout-row.expanded {
    border-bottom: 1px solid var(--wp--preset--color--primary);
    margin-bottom: var(--wp--preset--spacing--20);
}

.facetwp-flyout-wrap {
    padding: 0 var(--wp--preset--spacing--20);
    margin-top: var(--wp--preset--spacing--40);
}

.facetwp-flyout-close {
    display: flex;
    justify-content: space-between;
    gap: var(--wp--preset--spacing--10);
    padding: var(--wp--preset--spacing--20) 0 !important;
    margin: 0 var(--wp--preset--spacing--20);
    align-items: center;
    border-bottom: 2px solid var(--wp--preset--color--primary);
}

.facetwp-flyout-content {
    padding: 0 !important;
}

.facetwp-flyout .facetwp-slider .noUi-base {
    background: var(--wp--preset--color--neutral-100);
}
.facetwp-flyout .facetwp-slider .noUi-connect {
    background: var(--wp--preset--color--brand);
}

/* stylelint-disable selector-class-pattern */

/* Hide search and sort flyout rows in FacetWP mobile flyout (third-party markup uses underscores) */
.facetwp-flyout .flyout-row.name-search_tour,
.facetwp-flyout .flyout-row.name-sort_by,
.facetwp-flyout .flyout-row.name-search_archive {
    display: none !important;
}
/* stylelint-enable selector-class-pattern */

.flyout-row h3::after {
    content: '';
    display: inline-block;
    width: 24px;
    height: 24px;
    float: right;
    background: url('/wp-content/themes/asnz-block-theme/assets/icons/plus-icon.svg')
        no-repeat center center;
    background-size: 24px 24px;
}

.flyout-row.expanded h3::after {
    content: '';
    background: url('/wp-content/themes/asnz-block-theme/assets/icons/minus-icon.svg')
        no-repeat center center;
    background-size: 24px 24px;
}

body .facetwp-flyout {
    bottom: 0;
    transform: translateY(100%);
}

.facetwp-flyout.active {
    border-radius: 0 8px 0 0;
    border: 1px solid var(--wp--preset--color--primary);
}

/* Hide FacetWP search and sort facets in mobile flyout */
.facetwp-flyout .facetwp-facet.facetwp-type-search,
.facetwp-flyout .facetwp-facet.facetwp-type-sort {
    display: none !important;
}

.facetwp-facet.facetwp-facet-result_count {
	margin:0;
}


/* ========================================================================== */

/* LSX Included/Not Included Lists                                           */

/* ========================================================================== */

ul.lsx-included-list,
ul.lsx-not_included-list {
    list-style: none;
    padding-left: 0;
}

ul.lsx-included-list li,
ul.lsx-not_included-list li {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

ul.lsx-included-list li svg,
ul.lsx-not_included-list li svg {
    flex-shrink: 0;
    margin-top: 0.125rem;
    width: 24px;
    height: 24px;
}

ul.lsx-included-list li svg {
    color: var(--wp--preset--color--contrast, #080808);
}

ul.lsx-not_included-list li svg {
    color: var(--wp--preset--color--contrast, #080808);
}

/* ========================================================================== */
/* Tour Itinerary							                                  */
/* ========================================================================== */

.single-tour .itin-drinks-wrapper .wp-block-outermost-icon-block,
.single-tour .itin-location-wrapper .wp-block-outermost-icon-block,
.single-tour .itin-type-wrapper .wp-block-outermost-icon-block,
.single-tour .itin-accommodation-wrapper .wp-block-outermost-icon-block,
.single-tour .itin-room-wrapper .wp-block-outermost-icon-block {
	padding-top: 5px;
}

.single-tour .lsx-ends-in-wrapper p,
.single-tour .lsx-departs-from-wrapper p {
    color: var(--wp--preset--color--brand-text) !important;
}

.single-tour .lsx-ends-in-wrapper p strong,
.single-tour .lsx-departs-from-wrapper p strong {
	color: var(--wp--preset--color--contrast) !important;
}


/* ========================================================================== */
/* Accordions						                                  */
/* ========================================================================== */
.lsx-block-accordion .lsx-accordion-title {
	cursor: pointer;
}

/* ========================================================================== */
/* NZD Price Formatting - Replace $ symbol with space */
/* ========================================================================== */

/* Display space instead of $ symbol for NZD currency */
.lsx-price-wrapper .amount .currency-icon.nzd:after,
.lsx-single-supplement-wrapper .amount .currency-icon.nzd:after,
.unit-price-wrapper .amount .currency-icon.nzd:after {
	content: " " !important;
}

/* ========================================================================== */
/* FacetWP Checkbox Alignment */
/* ========================================================================== */


.facetwp-facet .facetwp-checkbox {
    background-position: 0 0.2em;
    line-height: 1.35;
}

.facetwp-facet .facetwp-checkbox .facetwp-display-value,
.facetwp-facet .facetwp-checkbox .facetwp-counter {
    line-height: inherit;
}


/* ========================================================================== */
/* LSX Accordion (FAQ Style)                                                  */
/* ========================================================================== */

.wp-block-lsx-blocks-lsx-accordion details {
    border-bottom: 1px solid var(--wp--preset--color--primary);
    margin-bottom: 0;
}

.wp-block-lsx-blocks-lsx-accordion details:first-of-type {
    border-top: 1px solid var(--wp--preset--color--primary);
}

.wp-block-lsx-blocks-lsx-accordion summary.lsx-accordion-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    list-style: none;
    cursor: pointer;
    padding: var(--wp--preset--spacing--20) 0;
    font-weight: 600;
    gap: var(--wp--preset--spacing--20);
}

/* Remove native marker in all browsers */
.wp-block-lsx-blocks-lsx-accordion summary.lsx-accordion-title::-webkit-details-marker {
    display: none;
}

.wp-block-lsx-blocks-lsx-accordion summary.lsx-accordion-title::marker {
    content: none;
}

/* Plus icon when closed */
.wp-block-lsx-blocks-lsx-accordion summary.lsx-accordion-title::after {
    content: '';
    display: inline-block;
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    background: url('/wp-content/themes/asnz-block-theme/assets/icons/plus-icon.svg') no-repeat center center;
    background-size: 24px 24px;
    transition: none;
}

/* Minus icon when open */
.wp-block-lsx-blocks-lsx-accordion details[open] summary.lsx-accordion-title::after {
    background-image: url('/wp-content/themes/asnz-block-theme/assets/icons/minus-icon.svg');
}

.wp-block-lsx-blocks-lsx-accordion .lsx-accordion-text {
    padding-bottom: var(--wp--preset--spacing--20);
}


/* =================================================== */
/* Gravity Forms                                       */
/* =================================================== */

.gform-theme--foundation .gform_fields {
    grid-row-gap: 20px !important;
}
