@font-face {
    font-family: "Manrope";
    src: url("/assets/fonts/Manrope-Variable.ttf") format("truetype");
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
}

:root {
    --tp2-orange: #e66f18;
    --tp2-orange-dark: #c95609;
    --tp2-orange-soft: #fff1e7;
    --tp2-ink: #181818;
    --tp2-muted: #646464;
    --tp2-light-muted: #8b8b8b;
    --tp2-border: #dedede;
    --tp2-soft-border: #ebebeb;
    --tp2-surface: #ffffff;
    --tp2-soft: #f7f7f7;
    --tp2-cream: #fff9f4;
    --tp2-green: #174d3b;
    --tp2-dark: #17201d;
}


/* Hide shared TourPlug header/footer on the experimental homepage only. */
body > nav.navbar {
    display: none !important;
}

body > .footer,
main + .footer {
    display: none !important;
}

body {
    color: var(--tp2-ink);
    background: #fff;
}

.tp2-header,
.tp2-hero,
.tp2-section,
.tp2-trust-strip,
.tp2-beyond,
.tp2-provider-section,
.tp2-final-search,
.tp2-footer {
    font-family: "Quicksand", sans-serif;
}

.tp2-header h1,
.tp2-header h2,
.tp2-header h3,
.tp2-hero h1,
.tp2-hero h2,
.tp2-section h1,
.tp2-section h2,
.tp2-section h3,
.tp2-beyond h2,
.tp2-provider-section h2,
.tp2-final-search h2,
.tp2-footer h3 {
    font-family: "Manrope", sans-serif;
}


/* ============================================================
   HEADER
============================================================ */
.tp2-header {
    position: sticky;
    z-index: 1100;
    top: 0;
    border-bottom: 1px solid var(--tp2-soft-border);
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(16px);
}

.tp2-header-inner {
    display: flex;
    min-height: 74px;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
}

.tp2-brand {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    color: var(--tp2-ink);
    font-family: "Manrope", sans-serif;
    font-size: 1.35rem;
    font-weight: 800;
    letter-spacing: -.04em;
    text-decoration: none;
}

.tp2-brand:hover {
    color: var(--tp2-ink);
}

.tp2-brand-mark {
    display: grid;
    width: 35px;
    height: 35px;
    color: #fff;
    border-radius: 50%;
    background: var(--tp2-orange);
    place-items: center;
    font-size: 1rem;
}

.tp2-main-nav {
    display: flex;
    align-items: center;
    gap: 1.6rem;
}

.tp2-main-nav a,
.tp2-login-link,
.tp2-account-link {
    color: #303030;
    font-size: .89rem;
    font-weight: 700;
    text-decoration: none;
}

.tp2-main-nav a:hover,
.tp2-login-link:hover,
.tp2-account-link:hover {
    color: var(--tp2-orange-dark);
}

.tp2-header-actions {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.tp2-account-link {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
}

.tp2-signup-btn {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    padding: 0 1.15rem;
    color: #fff;
    border-radius: 999px;
    background: var(--tp2-ink);
    font-size: .86rem;
    font-weight: 800;
    text-decoration: none;
}

.tp2-signup-btn:hover {
    color: #fff;
    background: var(--tp2-orange);
}


/* ============================================================
   HERO
============================================================ */
.tp2-hero {
    overflow: hidden;
    padding: 5.5rem 0 5rem;
    background:
        radial-gradient(circle at 90% 5%, rgba(230,111,24,.11), transparent 25%),
        linear-gradient(180deg, #fff 0%, #fffaf6 100%);
}

.tp2-overline,
.tp2-section-label,
.tp2-provider-label {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: 1rem;
    color: var(--tp2-orange-dark);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.tp2-hero h1 {
    max-width: 760px;
    margin: 0;
    color: var(--tp2-ink);
    font-size: clamp(3.1rem, 6vw, 5.3rem);
    font-weight: 760;
    line-height: .98;
    letter-spacing: -.055em;
}

.tp2-hero h1 span {
    color: var(--tp2-orange);
}

.tp2-hero-copy {
    max-width: 670px;
    margin: 1.6rem 0 0;
    color: #515151;
    font-size: 1.08rem;
    font-weight: 500;
    line-height: 1.75;
}

.tp2-search {
    display: flex;
    max-width: 760px;
    margin-top: 2rem;
    padding: .42rem;
    border: 1px solid #cfcfcf;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 8px 30px rgba(30,30,30,.08);
}

.tp2-search-field {
    display: flex;
    flex: 1;
    align-items: center;
    gap: .8rem;
    padding-left: 1rem;
}

.tp2-search-field i {
    color: #555;
    font-size: 1.15rem;
}

.tp2-search-field input {
    width: 100%;
    min-width: 0;
    padding: .85rem 0;
    color: var(--tp2-ink);
    border: 0;
    outline: 0;
    background: transparent;
    font-size: .96rem;
    font-weight: 600;
}

.tp2-search-field input::placeholder {
    color: #858585;
}

.tp2-search button {
    min-width: 116px;
    padding: .85rem 1.35rem;
    color: #fff;
    border: 0;
    border-radius: 999px;
    background: var(--tp2-orange);
    font-weight: 800;
}

.tp2-search button:hover {
    background: var(--tp2-orange-dark);
}

.tp2-quick-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .55rem;
    margin-top: 1.15rem;
    font-size: .79rem;
}

.tp2-quick-links > span {
    color: var(--tp2-muted);
    font-weight: 700;
}

.tp2-quick-links a {
    padding: .42rem .72rem;
    color: #333;
    border: 1px solid #dedede;
    border-radius: 999px;
    background: #fff;
    font-weight: 700;
    text-decoration: none;
}

.tp2-quick-links a:hover {
    color: var(--tp2-orange-dark);
    border-color: #e6b48e;
    background: var(--tp2-orange-soft);
}

.tp2-hero-visual {
    position: relative;
    max-width: 460px;
    margin-left: auto;
    padding: 0 1rem 1.8rem 1.7rem;
}

.tp2-hero-visual > img {
    display: block;
    width: 100%;
    height: 505px;
    object-fit: cover;
    border-radius: 2rem;
    box-shadow: 0 24px 60px rgba(22,22,22,.15);
}

.tp2-floating-card {
    position: absolute;
    display: flex;
    max-width: 255px;
    align-items: center;
    gap: .75rem;
    padding: .8rem 1rem;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 1rem;
    background: rgba(255,255,255,.97);
    box-shadow: 0 12px 32px rgba(0,0,0,.14);
}

.tp2-floating-card strong,
.tp2-floating-card small {
    display: block;
}

.tp2-floating-card strong {
    margin-bottom: .1rem;
    color: var(--tp2-ink);
    font-size: .8rem;
}

.tp2-floating-card small {
    color: var(--tp2-muted);
    font-size: .67rem;
    line-height: 1.35;
}

.tp2-floating-icon {
    display: grid;
    flex: 0 0 39px;
    width: 39px;
    height: 39px;
    color: #fff;
    border-radius: 50%;
    background: var(--tp2-green);
    place-items: center;
}

.tp2-floating-orange {
    background: var(--tp2-orange);
}

.tp2-floating-top {
    top: 3rem;
    left: -1rem;
}

.tp2-floating-bottom {
    right: -1rem;
    bottom: 0;
}


/* ============================================================
   TRUST STRIP
============================================================ */
.tp2-trust-strip {
    border-top: 1px solid var(--tp2-soft-border);
    border-bottom: 1px solid var(--tp2-soft-border);
    background: #fff;
}

.tp2-trust-strip-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.tp2-trust-strip-grid > div {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: 1.55rem 1rem;
}

.tp2-trust-strip-grid > div + div {
    border-left: 1px solid var(--tp2-soft-border);
}

.tp2-trust-strip-grid i {
    color: var(--tp2-orange);
    font-size: 1.4rem;
}

.tp2-trust-strip-grid strong,
.tp2-trust-strip-grid small {
    display: block;
}

.tp2-trust-strip-grid strong {
    color: #292929;
    font-size: .8rem;
}

.tp2-trust-strip-grid small {
    margin-top: .1rem;
    color: var(--tp2-muted);
    font-size: .68rem;
}


/* ============================================================
   SHARED SECTION STRUCTURE
============================================================ */
.tp2-section {
    padding: 5.5rem 0;
}

.tp2-section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 3rem;
    margin-bottom: 2rem;
}

.tp2-section-head h2 {
    max-width: 740px;
    margin: 0;
    color: var(--tp2-ink);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 760;
    line-height: 1.08;
    letter-spacing: -.045em;
}

.tp2-section-head p {
    max-width: 700px;
    margin: .8rem 0 0;
    color: var(--tp2-muted);
    font-size: .94rem;
    line-height: 1.7;
}

.tp2-view-all {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: .45rem;
    padding-bottom: .2rem;
    color: var(--tp2-ink);
    border-bottom: 1px solid #aaa;
    font-size: .82rem;
    font-weight: 800;
    text-decoration: none;
}

.tp2-view-all:hover {
    color: var(--tp2-orange-dark);
    border-color: var(--tp2-orange-dark);
}


/* ============================================================
   FEATURED DESTINATIONS
============================================================ */

.tp2-destinations {
    background: #fff;
}

.tp2-destination-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: .9rem;
}

.tp2-destination-card {
    position: relative;
    min-height: 265px;
    overflow: hidden;
    border-radius: 1rem;
    background:
        linear-gradient(
            145deg,
            #eac9a8,
            #a66c43
        );
    text-decoration: none;
    isolation: isolate;
}

.tp2-destination-card img,
.tp2-destination-placeholder {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.tp2-destination-card img {
    object-fit: cover;
    transition:
        transform .35s ease,
        filter .35s ease;
}

.tp2-destination-card:hover img {
    transform: scale(1.045);
    filter: saturate(1.04);
}

.tp2-destination-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,.85);
    background:
        radial-gradient(
            circle at 30% 25%,
            rgba(255,255,255,.28),
            transparent 30%
        ),
        linear-gradient(
            145deg,
            #d9ad84,
            #8f5633
        );
}

.tp2-destination-placeholder i {
    font-size: 3rem;
}

.tp2-destination-shade {
    position: absolute;
    z-index: 1;
    inset: 0;
    background:
        linear-gradient(
            to top,
            rgba(12,10,9,.86) 0%,
            rgba(12,10,9,.48) 42%,
            rgba(12,10,9,.04) 75%
        );
}

.tp2-destination-copy {
    position: absolute;
    z-index: 2;
    right: 1rem;
    bottom: 1rem;
    left: 1rem;
    color: #fff;
}

.tp2-destination-country,
.tp2-destination-copy strong,
.tp2-destination-experiences,
.tp2-destination-action {
    display: block;
}

.tp2-destination-country {
    margin-bottom: .18rem;
    color: rgba(255,255,255,.78);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.tp2-destination-copy strong {
    font-family: "Manrope", sans-serif;
    font-size: 1.08rem;
    font-weight: 800;
    line-height: 1.2;
}

.tp2-destination-experiences {
    margin-top: .35rem;
    color: rgba(255,255,255,.82);
    font-size: .76rem;
}

.tp2-destination-action {
    display: flex;
    align-items: center;
    gap: .35rem;
    margin-top: .72rem;
    color: #fff;
    font-size: .74rem;
    font-weight: 750;
}

.tp2-destination-action i {
    transition: transform .2s ease;
}

.tp2-destination-card:hover
.tp2-destination-action i {
    transform: translateX(3px);
}

.tp2-destination-card:focus-visible {
    outline: 3px solid var(--tp2-orange);
    outline-offset: 3px;
}


/* ============================================================
   CATEGORIES
============================================================ */
.tp2-marketplace-section {
    background: var(--tp2-soft);
}

.tp2-category-scroll {
    display: grid;
    grid-auto-columns: minmax(230px, 1fr);
    grid-auto-flow: column;
    gap: .85rem;
    overflow-x: auto;
    padding: .1rem .1rem .7rem;
    scrollbar-width: thin;
    scroll-snap-type: x proximity;
}

.tp2-category-card {
    position: relative;
    display: flex;
    min-height: 120px;
    align-items: center;
    gap: .9rem;
    padding: 1.25rem;
    color: var(--tp2-ink);
    border: 1px solid var(--tp2-soft-border);
    border-radius: 1rem;
    background: #fff;
    text-decoration: none;
    scroll-snap-align: start;
    transition: transform .18s ease, box-shadow .18s ease;
}

.tp2-category-card:hover {
    color: var(--tp2-ink);
    transform: translateY(-3px);
    box-shadow: 0 10px 28px rgba(0,0,0,.07);
}

.tp2-category-icon {
    display: grid;
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    color: var(--tp2-orange-dark);
    border-radius: .85rem;
    background: var(--tp2-orange-soft);
    place-items: center;
    font-size: 1.15rem;
}

.tp2-category-copy {
    min-width: 0;
}

.tp2-category-copy strong,
.tp2-category-copy small {
    display: block;
}

.tp2-category-copy strong {
    padding-right: 1.3rem;
    font-family: "Manrope", sans-serif;
    font-size: .9rem;
    font-weight: 750;
}

.tp2-category-copy small {
    margin-top: .25rem;
    color: var(--tp2-muted);
    font-size: .7rem;
}

.tp2-category-arrow {
    position: absolute;
    top: 1rem;
    right: 1rem;
    color: #aaa;
}


/* ============================================================
   PRODUCT CARDS
============================================================ */
.tp2-products {
    background: #fff;
}

.tp2-product-scroll {
    display: grid;
    grid-auto-columns: minmax(265px, 290px);
    grid-auto-flow: column;
    gap: 1.15rem;
    overflow-x: auto;
    padding: .1rem .1rem 1rem;
    scrollbar-width: thin;
    scroll-snap-type: x mandatory;
}

.tp2-product-card {
    display: flex;
    min-width: 0;
    height: 100%;
    flex-direction: column;
    overflow: hidden;
    color: var(--tp2-ink);
    border: 1px solid transparent;
    border-radius: 1rem;
    background: #fff;
    text-decoration: none;
    scroll-snap-align: start;
}

.tp2-product-card:hover {
    color: var(--tp2-ink);
}

.tp2-product-image {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    border-radius: 1rem;
    background: #eee;
}

.tp2-product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease;
}

.tp2-product-card:hover .tp2-product-image img {
    transform: scale(1.035);
}

.tp2-product-badge {
    position: absolute;
    top: .8rem;
    left: .8rem;
    max-width: calc(100% - 4.4rem);
    padding: .38rem .58rem;
    color: var(--tp2-ink);
    border-radius: .45rem;
    background: #fff;
    box-shadow: 0 4px 12px rgba(0,0,0,.08);
    font-size: .65rem;
    font-weight: 800;
}

.tp2-product-open {
    position: absolute;
    top: .7rem;
    right: .7rem;
    display: grid;
    width: 36px;
    height: 36px;
    color: var(--tp2-ink);
    border-radius: 50%;
    background: rgba(255,255,255,.94);
    place-items: center;
}

.tp2-product-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: .95rem .08rem .2rem;
}

.tp2-product-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem .5rem;
    min-height: 18px;
    color: var(--tp2-muted);
    font-size: .69rem;
    font-weight: 650;
}

.tp2-product-meta span + span::before {
    margin-right: .5rem;
    content: "•";
}

.tp2-product-body h3 {
    margin: .45rem 0 .55rem;
    color: var(--tp2-ink);
    font-size: 1rem;
    font-weight: 760;
    line-height: 1.35;
    letter-spacing: -.02em;
}

.tp2-product-facts {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .7rem;
    color: var(--tp2-muted);
    font-size: .7rem;
}

.tp2-product-rating i {
    color: var(--tp2-orange);
}

.tp2-product-rating strong {
    color: #333;
}

.tp2-product-provider {
    margin-top: .5rem;
    color: var(--tp2-light-muted);
    font-size: .67rem;
}

.tp2-product-price {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-top: auto;
    padding-top: .85rem;
}

.tp2-product-price > span > small {
    display: block;
    margin-bottom: .05rem;
    color: var(--tp2-muted);
    font-size: .65rem;
}

.tp2-product-price strong {
    color: var(--tp2-ink);
    font-family: "Manrope", sans-serif;
    font-size: 1.03rem;
}

.tp2-product-price strong em {
    font-size: .61rem;
    font-style: normal;
    font-weight: 700;
}

.tp2-price-label {
    padding-bottom: .1rem;
    color: var(--tp2-light-muted);
    font-size: .62rem;
}

.tp2-empty-state {
    padding: 3.5rem 2rem;
    border: 1px dashed var(--tp2-border);
    border-radius: 1.2rem;
    background: var(--tp2-soft);
    text-align: center;
}

.tp2-empty-state > i {
    color: var(--tp2-orange);
    font-size: 2rem;
}

.tp2-empty-state h3 {
    margin: .8rem 0 .3rem;
    font-size: 1.25rem;
}

.tp2-empty-state p {
    margin: 0;
    color: var(--tp2-muted);
}


/* ============================================================
   BEYOND TOURS
============================================================ */
.tp2-beyond {
    padding: 2rem 0 5.5rem;
    background: #fff;
}

.tp2-beyond-panel {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(360px, .8fr);
    gap: 3rem;
    overflow: hidden;
    padding: clamp(2rem, 5vw, 4.5rem);
    border-radius: 1.8rem;
    background: var(--tp2-cream);
}

.tp2-beyond-copy h2 {
    max-width: 700px;
    margin: 0;
    color: var(--tp2-ink);
    font-size: clamp(2.1rem, 4vw, 3.5rem);
    font-weight: 770;
    line-height: 1.04;
    letter-spacing: -.05em;
}

.tp2-beyond-copy > p {
    max-width: 670px;
    margin: 1.1rem 0 0;
    color: var(--tp2-muted);
    line-height: 1.75;
}

.tp2-beyond-pills {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    margin: 1.5rem 0 1.7rem;
}

.tp2-beyond-pills span {
    padding: .48rem .7rem;
    color: #333;
    border: 1px solid #e8d7ca;
    border-radius: 999px;
    background: #fff;
    font-size: .72rem;
    font-weight: 700;
}

.tp2-beyond-pills i {
    margin-right: .3rem;
    color: var(--tp2-orange-dark);
}

.tp2-dark-btn,
.tp2-orange-btn,
.tp2-white-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    min-height: 46px;
    padding: 0 1.2rem;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 800;
    text-decoration: none;
}

.tp2-dark-btn {
    color: #fff;
    background: var(--tp2-ink);
}

.tp2-dark-btn:hover {
    color: #fff;
    background: var(--tp2-orange);
}

.tp2-beyond-graphic {
    position: relative;
    min-height: 360px;
}

.tp2-orbit {
    position: absolute;
    top: 50%;
    left: 50%;
    border: 1px dashed rgba(230,111,24,.38);
    border-radius: 50%;
    transform: translate(-50%, -50%);
}

.tp2-orbit-one {
    width: 270px;
    height: 270px;
}

.tp2-orbit-two {
    width: 350px;
    height: 350px;
}

.tp2-market-center {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    width: 155px;
    height: 155px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    color: #fff;
    border-radius: 50%;
    background: var(--tp2-orange);
    box-shadow: 0 18px 40px rgba(230,111,24,.25);
    transform: translate(-50%, -50%);
    text-align: center;
}

.tp2-market-center i {
    font-size: 1.5rem;
}

.tp2-market-center strong {
    margin-top: .25rem;
    font-family: "Manrope", sans-serif;
    font-size: 1.05rem;
}

.tp2-market-center small {
    max-width: 100px;
    margin-top: .15rem;
    color: rgba(255,255,255,.8);
    font-size: .6rem;
}

.tp2-orbit-item {
    position: absolute;
    display: grid;
    width: 54px;
    height: 54px;
    color: var(--tp2-orange-dark);
    border: 1px solid #ecd9c9;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 8px 25px rgba(0,0,0,.08);
    place-items: center;
    font-size: 1.2rem;
}

.tp2-item-one {
    top: 15%;
    left: 15%;
}

.tp2-item-two {
    top: 14%;
    right: 10%;
}

.tp2-item-three {
    right: 14%;
    bottom: 13%;
}

.tp2-item-four {
    bottom: 9%;
    left: 17%;
}


/* ============================================================
   PROVIDERS
============================================================ */
.tp2-provider-section {
    padding: 0 0 5.5rem;
    background: #fff;
}

.tp2-provider-panel {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 1.8rem;
    padding: 2.8rem;
    color: #fff;
    border-radius: 1.5rem;
    background:
        radial-gradient(circle at 85% 20%, rgba(230,111,24,.22), transparent 26%),
        var(--tp2-dark);
}

.tp2-provider-icon {
    display: grid;
    width: 70px;
    height: 70px;
    color: #fff;
    border-radius: 1rem;
    background: var(--tp2-orange);
    place-items: center;
    font-size: 1.8rem;
}

.tp2-provider-label {
    color: #ffad72;
}

.tp2-provider-copy h2 {
    max-width: 760px;
    margin: 0;
    color: #fff;
    font-size: clamp(1.8rem, 3vw, 2.7rem);
    font-weight: 750;
    line-height: 1.1;
    letter-spacing: -.04em;
}

.tp2-provider-copy p {
    max-width: 760px;
    margin: .8rem 0 0;
    color: rgba(255,255,255,.7);
    font-size: .87rem;
    line-height: 1.7;
}

.tp2-provider-actions {
    display: flex;
    min-width: 175px;
    flex-direction: column;
    gap: .7rem;
}

.tp2-white-btn {
    color: var(--tp2-ink);
    background: #fff;
}

.tp2-white-btn:hover {
    color: #fff;
    background: var(--tp2-orange);
}

.tp2-provider-secondary {
    color: rgba(255,255,255,.72);
    font-size: .7rem;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
}

.tp2-provider-secondary:hover {
    color: #fff;
}


/* ============================================================
   WHY TOURPLUG
============================================================ */
.tp2-why {
    background: var(--tp2-soft);
}

.tp2-why-card {
    height: 100%;
    padding: 1.6rem;
    border: 1px solid var(--tp2-soft-border);
    border-radius: 1.1rem;
    background: #fff;
}

.tp2-why-card > span {
    display: grid;
    width: 46px;
    height: 46px;
    margin-bottom: 1.2rem;
    color: var(--tp2-orange-dark);
    border-radius: .8rem;
    background: var(--tp2-orange-soft);
    place-items: center;
    font-size: 1.15rem;
}

.tp2-why-card h3 {
    margin: 0;
    color: var(--tp2-ink);
    font-size: 1rem;
    font-weight: 760;
}

.tp2-why-card p {
    margin: .65rem 0 0;
    color: var(--tp2-muted);
    font-size: .8rem;
    line-height: 1.7;
}


/* ============================================================
   FINAL CTA
============================================================ */
.tp2-final-search {
    padding: 5rem 0;
    background: #fff;
}

.tp2-final-search-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 3rem;
}

.tp2-final-search h2 {
    max-width: 760px;
    margin: 0;
    color: var(--tp2-ink);
    font-size: clamp(2rem, 4vw, 3.2rem);
    font-weight: 760;
    line-height: 1.05;
    letter-spacing: -.05em;
}

.tp2-orange-btn {
    flex: 0 0 auto;
    color: #fff;
    background: var(--tp2-orange);
}

.tp2-orange-btn:hover {
    color: #fff;
    background: var(--tp2-orange-dark);
}


/* ============================================================
   FOOTER
============================================================ */
.tp2-footer {
    padding: 4.5rem 0 2rem;
    color: rgba(255,255,255,.72);
    background: #151a18;
}

.tp2-footer-brand {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    color: #fff;
    font-family: "Manrope", sans-serif;
    font-size: 1.35rem;
    font-weight: 800;
    text-decoration: none;
}

.tp2-footer-brand i {
    color: var(--tp2-orange);
}

.tp2-footer p {
    max-width: 350px;
    margin: 1rem 0;
    font-size: .78rem;
    line-height: 1.7;
}

.tp2-footer-contact {
    color: #fff;
    font-size: .75rem;
    text-decoration: none;
}

.tp2-footer h3 {
    margin: 0 0 1rem;
    color: #fff;
    font-size: .82rem;
    font-weight: 750;
}

.tp2-footer .col-6 > a,
.tp2-footer .col-lg-2 > a {
    display: block;
    margin-bottom: .65rem;
    color: rgba(255,255,255,.67);
    font-size: .73rem;
    text-decoration: none;
}

.tp2-footer .col-6 > a:hover,
.tp2-footer .col-lg-2 > a:hover {
    color: #fff;
}

.tp2-footer-bottom {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    margin-top: 3rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(255,255,255,.1);
    font-size: .67rem;
}


/* ============================================================
   RESPONSIVE
============================================================ */
@media (max-width: 1199.98px) {
    .tp2-main-nav {
        display: none;
    }

    .tp2-destination-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .tp2-beyond-panel {
        grid-template-columns: 1fr 340px;
    }
}


@media (max-width: 991.98px) {
    .tp2-hero {
        padding: 4rem 0;
    }

    .tp2-hero-visual {
        max-width: 620px;
        margin: 1rem auto 0;
    }

    .tp2-hero-visual > img {
        height: 430px;
    }

    .tp2-trust-strip-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .tp2-trust-strip-grid > div:nth-child(3) {
        border-left: 0;
        border-top: 1px solid var(--tp2-soft-border);
    }

    .tp2-trust-strip-grid > div:nth-child(4) {
        border-top: 1px solid var(--tp2-soft-border);
    }

    .tp2-beyond-panel {
        grid-template-columns: 1fr;
    }

    .tp2-beyond-graphic {
        min-height: 330px;
    }

    .tp2-provider-panel {
        grid-template-columns: auto 1fr;
    }

    .tp2-provider-actions {
        grid-column: 1 / -1;
        flex-direction: row;
        align-items: center;
    }

    .tp2-final-search-inner {
        align-items: flex-start;
        flex-direction: column;
    }
}


@media (max-width: 767.98px) {
    .tp2-header-inner {
        min-height: 66px;
    }

    .tp2-login-link {
        display: none;
    }

    .tp2-brand {
        font-size: 1.15rem;
    }

    .tp2-brand-mark {
        width: 31px;
        height: 31px;
    }

    .tp2-signup-btn {
        min-height: 38px;
        padding: 0 .9rem;
    }

    .tp2-hero h1 {
        font-size: 3.15rem;
    }

    .tp2-search {
        align-items: stretch;
        border-radius: 1rem;
        flex-direction: column;
        padding: .5rem;
    }

    .tp2-search-field {
        padding: 0 .7rem;
    }

    .tp2-search button {
        width: 100%;
        border-radius: .7rem;
    }

    .tp2-floating-top {
        left: .2rem;
    }

    .tp2-floating-bottom {
        right: .2rem;
    }

    .tp2-section {
        padding: 4.25rem 0;
    }

    .tp2-section-head {
        align-items: flex-start;
        flex-direction: column;
        gap: 1rem;
    }

    .tp2-destination-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .tp2-destination-card {
        min-height: 220px;
    }

    .tp2-provider-panel {
        grid-template-columns: 1fr;
        padding: 2rem;
    }

    .tp2-provider-icon {
        width: 56px;
        height: 56px;
    }

    .tp2-provider-actions {
        grid-column: auto;
    }
}


@media (max-width: 575.98px) {
    .tp2-header-actions {
        gap: .5rem;
    }

    .tp2-hero {
        padding: 3.2rem 0;
    }

    .tp2-hero h1 {
        font-size: 2.75rem;
    }

    .tp2-hero-copy {
        font-size: .96rem;
    }

    .tp2-hero-visual {
        padding-left: 0;
        padding-right: 0;
    }

    .tp2-hero-visual > img {
        height: 360px;
        border-radius: 1.4rem;
    }

    .tp2-floating-card {
        max-width: 210px;
    }

    .tp2-floating-top {
        top: 1rem;
    }

    .tp2-trust-strip-grid {
        grid-template-columns: 1fr;
    }

    .tp2-trust-strip-grid > div + div {
        border-top: 1px solid var(--tp2-soft-border);
        border-left: 0;
    }

    .tp2-destination-grid {
        grid-template-columns: repeat(2, minmax(0,1fr));
        gap: .65rem;
    }

    .tp2-destination-card {
        min-height: 180px;
    }

    .tp2-product-scroll {
        grid-auto-columns: 82%;
    }

    .tp2-beyond-panel {
        padding: 2rem 1.25rem;
    }

    .tp2-beyond-graphic {
        min-height: 300px;
        transform: scale(.86);
    }

    .tp2-provider-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .tp2-footer-bottom {
        flex-direction: column;
        gap: .5rem;
    }
}

/* ============================================================
   HOME2 CENTERED HERO OVERRIDES
============================================================ */

.tp2-hero .col-lg-9 {
    text-align: center;
}

.tp2-hero h1 {
    margin-left: auto;
    margin-right: auto;
}

.tp2-hero-copy {
    margin-left: auto;
    margin-right: auto;
}

.tp2-search {
    margin-left: auto;
    margin-right: auto;
}

.tp2-quick-links {
    justify-content: center;
}

.tp2-overline {
    justify-content: center;
}


/* HOME2 TOURPLUG LOGO FINAL */
.tp2-brand {
    display: inline-flex;
    align-items: center;
    padding: 0;
    line-height: 1;
}

.tp2-brand-logo {
    display: block;
    width: auto;
    height: 42px;
    max-width: 210px;
    object-fit: contain;
}

@media (max-width: 767.98px) {
    .tp2-brand-logo {
        height: 36px;
        max-width: 180px;
    }
}

/* =========================================================
   TOURPLUG DYNAMIC HERO SEARCH
   Backend-driven destination + service category search
========================================================= */

.tp2-dynamic-search {
    display: grid;
    grid-template-columns:
        minmax(260px, 1.35fr)
        minmax(240px, 1fr)
        auto;
    gap: .65rem;
    width: min(100%, 980px);
    margin: 2rem auto 0;
    padding: .65rem;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 1.15rem;
    background: #fff;
    box-shadow: 0 18px 50px rgba(0,0,0,.16);
    text-align: left;
}

.tp2-search-field {
    min-width: 0;
    padding: .45rem .8rem;
    border-radius: .8rem;
    background: #fff;
}

.tp2-search-destination-field {
    border-right: 1px solid #e9ece8;
}

.tp2-search-field label {
    display: block;
    margin: 0 0 .2rem;
    color: #67736e;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .02em;
}

.tp2-search-control {
    display: flex;
    align-items: center;
    gap: .55rem;
    min-width: 0;
}

.tp2-search-control > i {
    flex: 0 0 auto;
    color: var(--tp2-orange);
    font-size: 1.05rem;
}

.tp2-search-control input,
.tp2-search-control select {
    width: 100%;
    min-width: 0;
    padding: .15rem 0;
    color: var(--tp2-ink);
    border: 0;
    outline: 0;
    background: transparent;
    box-shadow: none;
    font: inherit;
    font-size: .95rem;
    font-weight: 600;
}

.tp2-search-control input::placeholder {
    color: #8a9490;
    opacity: 1;
}

.tp2-search-control select {
    cursor: pointer;
}

.tp2-search-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    min-width: 132px;
    min-height: 64px;
    padding: 0 1.35rem;
    color: #fff;
    border: 0;
    border-radius: .9rem;
    background: var(--tp2-orange);
    box-shadow: none;
    font-weight: 800;
    cursor: pointer;
    transition:
        background .2s ease,
        transform .2s ease,
        box-shadow .2s ease;
}

.tp2-search-submit:hover,
.tp2-search-submit:focus-visible {
    color: #fff;
    background: var(--tp2-orange-dark);
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(201,101,18,.25);
}

.tp2-search-control input:focus,
.tp2-search-control select:focus {
    outline: none;
}

@media (max-width: 767.98px) {
    .tp2-dynamic-search {
        grid-template-columns: 1fr;
        gap: .35rem;
        padding: .75rem;
    }

    .tp2-search-field {
        padding: .7rem .8rem;
        border: 1px solid #ece8e0;
    }

    .tp2-search-destination-field {
        border-right: 1px solid #ece8e0;
    }

    .tp2-search-submit {
        width: 100%;
        min-height: 54px;
        margin-top: .25rem;
    }
}


/* =========================================================
   TOURPLUG SLEEK SMART HERO SEARCH
========================================================= */

.tp2-smart-search {
    position: relative;
    overflow: visible;
    align-items: stretch;
    isolation: isolate;
}

.tp2-smart-field {
    position: relative;
    min-width: 0;
    padding: .48rem .8rem .5rem;
    border: 1px solid transparent;
    border-radius: .9rem;
    background: #fff;
    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        background .18s ease;
}

.tp2-smart-field:hover {
    background: #fffdfa;
}

.tp2-smart-field:focus-within,
.tp2-smart-field.is-open {
    border-color: rgba(230, 126, 34, .28);
    background: #fff;
    box-shadow:
        0 0 0 3px rgba(230, 126, 34, .08);
}

.tp2-smart-field > label {
    display: block;
    margin: 0 0 .17rem;
    padding-left: 2.05rem;
    color: #7b8581;
    font-size: .68rem;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.tp2-smart-control {
    display: flex;
    align-items: center;
    gap: .7rem;
    width: 100%;
    min-height: 34px;
}

.tp2-smart-icon {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    color: var(--tp2-orange);
    font-size: 1.08rem;
}

.tp2-smart-input {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    padding: .15rem 0;
    color: var(--tp2-ink);
    border: 0;
    outline: 0;
    background: transparent;
    box-shadow: none;
    font: inherit;
    font-size: .96rem;
    font-weight: 700;
}

.tp2-smart-input::placeholder {
    color: #818b87;
    opacity: 1;
    font-weight: 600;
}

.tp2-dropdown-toggle {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    color: #6f7975;
    border: 0;
    border-radius: .55rem;
    background: transparent;
    cursor: pointer;
    transition:
        color .18s ease,
        background .18s ease,
        transform .18s ease;
}

.tp2-dropdown-toggle:hover {
    color: var(--tp2-orange);
    background: rgba(230, 126, 34, .08);
}

.tp2-smart-field.is-open .tp2-dropdown-toggle > i,
.tp2-smart-field.is-open .tp2-category-chevron > i {
    transform: rotate(180deg);
}

.tp2-dropdown-toggle > i,
.tp2-category-chevron > i {
    transition: transform .18s ease;
}


/* Category trigger */

.tp2-category-trigger {
    padding: 0;
    color: var(--tp2-ink);
    border: 0;
    outline: 0;
    background: transparent;
    cursor: pointer;
    text-align: left;
}

.tp2-category-current {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    font-size: .96rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tp2-category-chevron {
    margin-left: auto;
}


/* Floating dropdown panel */

.tp2-smart-dropdown {
    position: absolute;
    z-index: 1000;
    top: calc(100% + .65rem);
    left: -.2rem;
    width: calc(100% + .4rem);
    min-width: 300px;
    max-height: 360px;
    overflow-x: hidden;
    overflow-y: auto;
    padding: .5rem;
    color: var(--tp2-ink);
    border: 1px solid #ebe7df;
    border-radius: 1rem;
    background: rgba(255, 255, 255, .99);
    box-shadow:
        0 22px 60px rgba(15, 39, 30, .18),
        0 6px 20px rgba(15, 39, 30, .08);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

.tp2-category-dropdown {
    min-width: 340px;
}

.tp2-smart-dropdown[hidden] {
    display: none !important;
}


/* Dropdown heading */

.tp2-dropdown-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .65rem .8rem .55rem;
    color: #68736e;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.tp2-dropdown-heading small {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.7rem;
    height: 1.7rem;
    padding: 0 .45rem;
    color: var(--tp2-green);
    border-radius: 999px;
    background: #eef5f1;
    font-size: .68rem;
}


/* Options */

.tp2-dropdown-options {
    display: flex;
    flex-direction: column;
    gap: .18rem;
}

.tp2-dropdown-option {
    display: flex;
    align-items: center;
    gap: .75rem;
    width: 100%;
    padding: .72rem .78rem;
    color: var(--tp2-ink);
    border: 0;
    border-radius: .78rem;
    background: transparent;
    cursor: pointer;
    text-align: left;
    transition:
        color .15s ease,
        background .15s ease,
        transform .15s ease;
}

.tp2-dropdown-option:hover,
.tp2-dropdown-option:focus-visible {
    outline: 0;
    background: #f8f5ef;
    transform: translateX(2px);
}

.tp2-dropdown-option.is-selected {
    background: #f3f7f4;
}

.tp2-option-icon {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    color: var(--tp2-orange);
    border-radius: .72rem;
    background: #fff4ea;
    font-size: 1rem;
}

.tp2-option-content {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    flex-direction: column;
}

.tp2-option-content strong {
    overflow: hidden;
    color: #20362e;
    font-size: .9rem;
    font-weight: 800;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tp2-option-content small {
    margin-top: .13rem;
    color: #7b8581;
    font-size: .72rem;
    font-weight: 500;
}

.tp2-option-check {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 1.7rem;
    height: 1.7rem;
    color: transparent;
    border-radius: 50%;
}

.tp2-dropdown-option.is-selected .tp2-option-check {
    color: #fff;
    background: var(--tp2-green);
}


/* Empty state */

.tp2-dropdown-empty {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: 1rem .8rem;
    color: #64716c;
}

.tp2-dropdown-empty[hidden] {
    display: none !important;
}

.tp2-empty-icon {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    color: var(--tp2-orange);
    border-radius: .75rem;
    background: #fff4ea;
}

.tp2-dropdown-empty > div {
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.tp2-dropdown-empty strong {
    color: #294139;
    font-size: .86rem;
}

.tp2-dropdown-empty span {
    font-size: .76rem;
    line-height: 1.45;
}


/* Scrollbar */

.tp2-smart-dropdown {
    scrollbar-width: thin;
    scrollbar-color: #d9d4ca transparent;
}

.tp2-smart-dropdown::-webkit-scrollbar {
    width: 7px;
}

.tp2-smart-dropdown::-webkit-scrollbar-track {
    background: transparent;
}

.tp2-smart-dropdown::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: #d9d4ca;
}


/* Search button refinement */

.tp2-smart-submit {
    min-height: 68px;
    border-radius: .9rem;
}


/* Mobile */

@media (max-width: 767.98px) {

    .tp2-smart-search {
        overflow: visible;
    }

    .tp2-smart-field {
        padding: .7rem .8rem;
    }

    .tp2-smart-field > label {
        padding-left: 2.05rem;
    }

    .tp2-smart-dropdown,
    .tp2-category-dropdown {
        right: 0;
        left: 0;
        width: 100%;
        min-width: 0;
        max-height: 300px;
    }

    .tp2-smart-submit {
        min-height: 56px;
    }
}


/* =========================================================
   TOURPLUG SEARCH LABEL NOWRAP FIX
========================================================= */

@media (min-width: 768px) {

    .tp2-smart-search {
        width: min(100%, 1140px);

        grid-template-columns:
            minmax(330px, 1.45fr)
            minmax(310px, 1.15fr)
            minmax(130px, auto);
    }

    .tp2-smart-field > label {
        white-space: nowrap;
        font-size: .66rem;
        letter-spacing: .035em;
    }
}


/* Keep labels on one line on smaller screens too. */

.tp2-smart-field > label {
    white-space: nowrap;
}


@media (max-width: 767.98px) {

    .tp2-smart-field > label {
        font-size: .64rem;
        letter-spacing: .025em;
    }

}


/* =========================================================
   TOURPLUG SEARCH OVERLAP AND STACKING FIX
========================================================= */

/*
|--------------------------------------------------------------------------
| 1. SEARCH BAR STACKING
|--------------------------------------------------------------------------
|
| The complete search component must sit above quick links / content
| immediately below it.
|
*/

.tp2-smart-search {
    position: relative;
    z-index: 100;
    overflow: visible !important;
    isolation: auto;
}

.tp2-smart-field {
    position: relative;
    z-index: 101;
    overflow: visible;
}

.tp2-smart-field.is-open {
    z-index: 1001;
}

.tp2-smart-dropdown {
    z-index: 9999 !important;
}


/*
|--------------------------------------------------------------------------
| Keep the content below the search behind an open dropdown.
|--------------------------------------------------------------------------
*/

.tp2-quick-links {
    position: relative;
    z-index: 1;
}


/*
|--------------------------------------------------------------------------
| 2. CATEGORY TEXT MUST NEVER CROSS INTO SEARCH BUTTON
|--------------------------------------------------------------------------
*/

.tp2-category-field {
    min-width: 0;
}

.tp2-category-trigger {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}

.tp2-category-current {
    display: block;
    flex: 1 1 0;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tp2-category-chevron {
    flex: 0 0 2rem;
    width: 2rem;
    margin-left: .35rem;
}


/*
|--------------------------------------------------------------------------
| 3. SEARCH BUTTON GETS ITS OWN RESERVED COLUMN
|--------------------------------------------------------------------------
*/

.tp2-smart-submit {
    position: relative;
    z-index: 102;
    width: 150px;
    min-width: 150px;
    max-width: 150px;
}


/*
|--------------------------------------------------------------------------
| 4. WIDER DESKTOP SEARCH BAR
|--------------------------------------------------------------------------
*/

@media (min-width: 1200px) {

    .tp2-smart-search {
        width: min(100%, 1220px);

        grid-template-columns:
            minmax(350px, 1.4fr)
            minmax(370px, 1.2fr)
            150px;

        gap: .8rem;
    }

}


/*
|--------------------------------------------------------------------------
| Medium desktop / tablet landscape
|--------------------------------------------------------------------------
*/

@media (min-width: 768px) and (max-width: 1199.98px) {

    .tp2-smart-search {
        width: min(100%, 1080px);

        grid-template-columns:
            minmax(285px, 1.25fr)
            minmax(300px, 1fr)
            138px;

        gap: .65rem;
    }

    .tp2-smart-submit {
        width: 138px;
        min-width: 138px;
        max-width: 138px;
    }

    .tp2-category-current {
        font-size: .9rem;
    }

}


/*
|--------------------------------------------------------------------------
| Mobile remains stacked.
|--------------------------------------------------------------------------
*/

@media (max-width: 767.98px) {

    .tp2-smart-search {
        z-index: 100;
        grid-template-columns: 1fr;
    }

    .tp2-smart-submit {
        width: 100%;
        min-width: 0;
        max-width: none;
    }

    .tp2-smart-dropdown,
    .tp2-category-dropdown,
    .tp2-location-dropdown {
        z-index: 9999 !important;
    }

}


/* =========================================================
   TOURPLUG HERO DROPDOWN ESCAPE FIX
   Allow hero dropdowns to extend above following section
========================================================= */

/*
|--------------------------------------------------------------------------
| IMPORTANT
|--------------------------------------------------------------------------
|
| A child cannot escape an ancestor with overflow:hidden.
| The dropdown already has a high z-index, but .tp2-hero was clipping it.
|
*/

.tp2-hero {
    position: relative;

    /*
     * Critical fix:
     * allow dropdowns to extend below the hero.
     */
    overflow: visible !important;

    /*
     * Put the WHOLE hero stacking context above the section below.
     */
    z-index: 100;
}


/*
|--------------------------------------------------------------------------
| Hero content / search stacking
|--------------------------------------------------------------------------
*/

.tp2-hero .container {
    position: relative;
    z-index: 110;
    overflow: visible;
}

.tp2-smart-search {
    position: relative;
    z-index: 1000 !important;
    overflow: visible !important;
}

.tp2-smart-field {
    position: relative;
    overflow: visible !important;
}

.tp2-smart-field.is-open {
    z-index: 5000 !important;
}

.tp2-smart-dropdown,
.tp2-location-dropdown,
.tp2-category-dropdown {
    position: absolute;
    z-index: 99999 !important;
}


/*
|--------------------------------------------------------------------------
| Ensure the section immediately after the hero remains underneath
|--------------------------------------------------------------------------
*/

.tp2-hero + * {
    position: relative;
    z-index: 1;
}


/*
|--------------------------------------------------------------------------
| Keep decorative hero circle from spilling visually below hero
|--------------------------------------------------------------------------
|
| The original hero used overflow:hidden partly to clip this decoration.
| Now that overflow must be visible for dropdowns, clip the decoration
| itself instead.
|
*/

.tp2-hero::after {
    pointer-events: none;

    /*
     * The decorative circle sits partly below the hero.
     * Clip its lower portion without clipping actual hero content.
     */
    clip-path: inset(0 0 210px 0);
}


/*
|--------------------------------------------------------------------------
| Search controls themselves remain above hero decorative layers
|--------------------------------------------------------------------------
*/

.tp2-smart-search,
.tp2-smart-search * {
    isolation: auto;
}


/*
|--------------------------------------------------------------------------
| Mobile
|--------------------------------------------------------------------------
*/

@media (max-width: 767.98px) {

    .tp2-hero {
        overflow: visible !important;
        z-index: 100;
    }

    .tp2-smart-search {
        overflow: visible !important;
        z-index: 1000 !important;
    }

    .tp2-smart-dropdown,
    .tp2-location-dropdown,
    .tp2-category-dropdown {
        z-index: 99999 !important;
    }

}

/* ============================================================
   HOME2 HEADER — LANGUAGE / CURRENCY SWITCHERS
   ============================================================ */

.tp2-switchers {
    display: flex;
    align-items: center;
    gap: .15rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.tp2-switchers > .nav-item {
    margin: 0;
    padding: 0;
}

.tp2-switchers .nav-link {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    gap: .32rem;
    padding: .45rem .5rem;
    color: #303030;
    border-radius: 999px;
    font-family: "Quicksand", sans-serif;
    font-size: .82rem;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
}

.tp2-switchers .nav-link:hover,
.tp2-switchers .nav-link:focus {
    color: var(--tp2-orange-dark);
    background: var(--tp2-orange-soft);
}

.tp2-switchers .dropdown-menu {
    z-index: 1200;
    font-family: "Quicksand", sans-serif;
}

.tp2-switchers .dropdown-toggle::after {
    margin-left: .15rem;
    vertical-align: .12em;
}

@media (max-width: 767.98px) {
    .tp2-header-inner {
        gap: .65rem;
    }

    .tp2-header-actions {
        gap: .4rem;
        margin-left: auto;
    }

    .tp2-switchers {
        gap: 0;
    }

    .tp2-switchers .nav-link {
        min-height: 36px;
        padding: .4rem .38rem;
        font-size: .76rem;
    }
}

@media (max-width: 575.98px) {
    .tp2-header-inner {
        gap: .4rem;
    }

    .tp2-header-actions {
        gap: .25rem;
    }

    .tp2-switchers .nav-link {
        padding-right: .3rem;
        padding-left: .3rem;
    }

    .tp2-switchers .nav-link i {
        font-size: .82rem;
    }

    .tp2-switchers .dropdown-menu {
        max-width: calc(100vw - 24px);
    }
}
