/* PlacePage v1 (single listing glassmorphism) */

html {
    background: #070a12;
}

body.tp-placepage-v1-body {
    --tpp-accent-a: var(--tp-accent-a, 255, 153, 51);
    --tpp-accent-b: var(--tp-accent-b, 0, 0, 128);
    --tpp-accent-c: var(--tp-accent-c, 19, 136, 8);

    background-color: #070a12;
    background-image:
        radial-gradient(900px 680px at 14% 12%, rgba(var(--tpp-accent-a), 0.22), transparent 60%),
        radial-gradient(820px 620px at 86% 18%, rgba(var(--tpp-accent-b), 0.20), transparent 58%),
        radial-gradient(900px 700px at 78% 88%, rgba(var(--tpp-accent-c), 0.18), transparent 62%),
        radial-gradient(880px 740px at 18% 86%, rgba(255, 255, 255, 0.06), transparent 66%);
    background-attachment: fixed;
    overflow-x: hidden;
}

body.tp-placepage-v1-body #tp-recovery-banner,
body.tp-placepage-v1-body #tp-spaces-cta-float,
body.tp-placepage-v1-body .tpus-passportFab,
body.tp-placepage-v1-body .tpus-passportSheet,
body.tp-placepage-v1-body .tpus-historySheet,
body.tp-placepage-v1-body .tpops-ownerbar,
body.tp-placepage-v1-body .tpus-quickTasks,
body.tp-placepage-v1-body .tp-ai-studio-launcherShell,
body.tp-placepage-v1-body .tp-ai-studio-launcher,
body.tp-placepage-v1-body .tp-ai-studio-launcherBubbleWrap,
body.tp-placepage-v1-body .tp-ai-studio__overlay,
body.tp-placepage-v1-body .tpais-assist-overlay,
body.tp-placepage-v1-body .tpais-assist-stow,
body.tp-placepage-v1-body .tpais-assist-pip,
body.tp-placepage-v1-body .tpais-assist-bubble,
body.tp-placepage-v1-body [data-tp-launcher-shell] {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

body.tp-placepage-v1-body #tp-consentv2 {
    left: auto !important;
    right: 16px !important;
    bottom: 16px !important;
    width: min(420px, calc(100vw - 32px)) !important;
    max-width: 420px !important;
    z-index: 99990 !important;
}

body.tp-placepage-v1-body #tp-consentv2 > div {
    padding: 14px !important;
    border-radius: 18px !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    box-shadow: 0 18px 60px rgba(0, 0, 0, 0.28) !important;
}

body.tp-placepage-v1-body ins.adsbygoogle-noablate,
body.tp-placepage-v1-body ins.adsbygoogle[data-anchor-status] {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
    width: 0 !important;
    height: 0 !important;
    min-width: 0 !important;
    min-height: 0 !important;
}

@media (max-width: 640px) {
    body.tp-placepage-v1-body #tp-consentv2 {
        left: 12px !important;
        right: 12px !important;
        bottom: 12px !important;
        width: auto !important;
        max-width: none !important;
    }
}

body.tp-placepage-v1-body #page {
    position: relative;
    isolation: isolate;
}

body.tp-placepage-v1-body #page::before,
body.tp-placepage-v1-body #page::after {
    content: "";
    position: fixed;
    inset: -35vmax;
    pointer-events: none;
    z-index: -1;
    transform: translate3d(0, 0, 0);
}

body.tp-placepage-v1-body #page::before {
    background:
        radial-gradient(420px 320px at 18% 18%, rgba(var(--tpp-accent-a), 0.40), transparent 62%),
        radial-gradient(520px 420px at 82% 16%, rgba(var(--tpp-accent-b), 0.36), transparent 60%),
        radial-gradient(520px 420px at 76% 86%, rgba(var(--tpp-accent-c), 0.34), transparent 62%),
        radial-gradient(460px 380px at 18% 84%, rgba(255, 255, 255, 0.10), transparent 66%);
    filter: blur(60px);
    opacity: 0.85;
}

body.tp-placepage-v1-body #page::after {
    opacity: 0.06;
    mix-blend-mode: overlay;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E");
    background-size: 220px 220px;
}

@media (prefers-reduced-motion: no-preference) {
    @keyframes tp-placepage-v1-bgFloat1 {
        0% {
            transform: translate3d(-2%, -1%, 0) scale(1);
        }
        50% {
            transform: translate3d(2%, 2%, 0) scale(1.04);
        }
        100% {
            transform: translate3d(-1%, 3%, 0) scale(1.02);
        }
    }

    @keyframes tp-placepage-v1-bgFloat2 {
        0% {
            transform: translate3d(1%, -2%, 0) scale(1);
        }
        50% {
            transform: translate3d(-2%, 1%, 0) scale(1.03);
        }
        100% {
            transform: translate3d(2%, 3%, 0) scale(1.02);
        }
    }

    body.tp-placepage-v1-body #page::before {
        animation: tp-placepage-v1-bgFloat1 22s ease-in-out infinite alternate;
    }

    body.tp-placepage-v1-body #page::after {
        animation: tp-placepage-v1-bgFloat2 28s ease-in-out infinite alternate;
    }
}

@media (max-width: 700px) {
    body.tp-placepage-v1-body {
        background-attachment: scroll;
    }

    body.tp-placepage-v1-body #page::before,
    body.tp-placepage-v1-body #page::after {
        animation: none !important;
        content: none;
    }

    body.tp-placepage-v1-body * {
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }
}

/* Header pill (inspired by tortoisepath.com/concept-v36) */

body.tp-placepage-v1-body #masthead.site-header {
    position: sticky;
    top: calc(env(safe-area-inset-top, 0px) + 10px + var(--tp-adsense-top, 0px));
    width: min(1200px, 94vw);
    margin: calc(env(safe-area-inset-top, 0px) + 10px + var(--tp-adsense-top, 0px)) auto 16px;
    border-radius: 18px;
    border: 1px solid transparent;
	    background:
	        linear-gradient(rgba(0, 0, 0, 0.72), rgba(0, 0, 0, 0.72)) padding-box,
	        conic-gradient(
	            from 140deg,
	            rgba(var(--tp-accent-a, 255, 153, 51), 0.92),
	            rgba(var(--tp-accent-b, 0, 0, 128), 0.22),
	            rgba(var(--tp-accent-c, 19, 136, 8), 0.86),
	            rgba(var(--tp-accent-b, 0, 0, 128), 0.62),
	            rgba(var(--tp-accent-a, 255, 153, 51), 0.92)
	        ) border-box;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow: 0 18px 60px rgba(0, 0, 0, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.08);
    transition: transform 180ms ease, margin 180ms ease, box-shadow 180ms ease, background 180ms ease, border-color 180ms ease;
    overflow: visible;
    z-index: 1021;
}

body.tppt-hdr-scrolled.tp-placepage-v1-body #masthead.site-header {
    margin: calc(env(safe-area-inset-top, 0px) + 6px + var(--tp-adsense-top, 0px)) auto 12px;
	    background:
	        linear-gradient(rgba(0, 0, 0, 0.80), rgba(0, 0, 0, 0.80)) padding-box,
	        conic-gradient(
	            from 140deg,
	            rgba(var(--tp-accent-a, 255, 153, 51), 0.92),
	            rgba(var(--tp-accent-b, 0, 0, 128), 0.22),
	            rgba(var(--tp-accent-c, 19, 136, 8), 0.86),
	            rgba(var(--tp-accent-b, 0, 0, 128), 0.62),
	            rgba(var(--tp-accent-a, 255, 153, 51), 0.92)
	        ) border-box;
    box-shadow: 0 14px 44px rgba(0, 0, 0, 0.62), inset 0 1px 0 rgba(255, 255, 255, 0.08);
    transform: translate3d(0, -1px, 0);
    will-change: transform;
}

body.tppt-hdr-scrolled.tp-placepage-v1-body #masthead .primary-header-inner {
    padding: 8px 0;
}

body.tppt-hdr-scrolled.tp-placepage-v1-body #masthead .site-branding .custom-header-image {
    height: 28px;
}

body.tp-placepage-v1-body #masthead a:focus-visible,
body.tp-placepage-v1-body #masthead button:focus-visible {
	    outline: 2px solid rgba(var(--tp-accent-a, 255, 153, 51), 0.78);
	    outline-offset: 2px;
}

body.tp-placepage-v1-body #masthead.site-header::after {
    display: none !important;
    content: none !important;
}

body.tp-placepage-v1-body #masthead .primary-header,
body.tp-placepage-v1-body #masthead .main-navigation {
    background: transparent !important;
}

body.tp-placepage-v1-body #masthead .primary-header {
    min-height: 0;
    text-align: left;
}

body.tp-placepage-v1-body #masthead .primary-header .container,
body.tp-placepage-v1-body #masthead .main-navigation .container {
    max-width: none !important;
    padding: 0 12px;
}

body.tp-placepage-v1-body #masthead .primary-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    height: auto;
    padding: 10px 0;
}

body.tp-placepage-v1-body #masthead .site-title,
body.tp-placepage-v1-body #masthead .site-description {
    display: none !important;
}

body.tp-placepage-v1-body #masthead .site-branding {
    display: flex;
    align-items: center;
}

body.tp-placepage-v1-body #masthead .site-branding .custom-header {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 6px 12px;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: rgba(0, 0, 0, 0.28);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.40);
    transition: transform 140ms ease, background 140ms ease, border-color 140ms ease;
}

body.tp-placepage-v1-body #masthead .site-branding .custom-header-image {
    display: block !important;
    height: 30px;
    width: auto;
    filter: drop-shadow(0 6px 16px rgba(0, 0, 0, 0.55));
    opacity: 0.98;
}

body.tp-placepage-v1-body #masthead .site-branding .custom-header:hover {
    transform: translateY(-1px);
    background: rgba(0, 0, 0, 0.34);
    border-color: rgba(255, 255, 255, 0.26);
}

@media (max-width: 991px) {
    body.tp-placepage-v1-body #masthead .main-navigation {
        position: absolute;
        inset: 0;
        z-index: 5;
        pointer-events: none;
        background: transparent !important;
    }

    body.tp-placepage-v1-body #masthead .main-navigation .container {
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 10px;
        pointer-events: none;
    }

    body.tp-placepage-v1-body #masthead .navigation-bar-toggle,
    body.tp-placepage-v1-body #masthead .main-navigation .search-overlay-toggle {
        pointer-events: auto;
        border-radius: 999px;
        border: 1px solid rgba(255, 255, 255, 0.14);
        background: rgba(255, 255, 255, 0.06);
        color: rgba(255, 255, 255, 0.92) !important;
        padding: 10px 12px;
        transition: transform 140ms ease, background 140ms ease, border-color 140ms ease;
    }

	    body.tp-placepage-v1-body #masthead .navigation-bar-toggle:hover,
	    body.tp-placepage-v1-body #masthead .main-navigation .search-overlay-toggle:hover {
	        transform: translateY(-1px);
	        background: rgba(255, 255, 255, 0.10);
	        border-color: rgba(var(--tp-accent-a, 255, 153, 51), 0.34);
	    }

    body.tp-placepage-v1-body #masthead .mobile-nav-menu-label {
        display: none !important;
    }

    body.tp-placepage-v1-body #masthead .main-navigation .search-overlay {
        pointer-events: auto;
    }

    body.tp-placepage-v1-body #masthead .navigation-bar-wrapper {
        pointer-events: auto;
        left: 50%;
        right: auto;
        transform: translateX(-50%);
        width: min(960px, 94vw);
        top: calc(100% + 10px);
        border-radius: 18px;
        border: 1px solid rgba(255, 255, 255, 0.14);
        background: rgba(10, 12, 18, 0.86);
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
        box-shadow: 0 20px 60px rgba(0, 0, 0, 0.60);
        max-height: min(74vh, 620px);
        overflow: auto;
        -webkit-overflow-scrolling: touch;
    }

    body.tp-placepage-v1-body #masthead .navigation-bar-wrapper::before,
    body.tp-placepage-v1-body #masthead .navigation-bar-wrapper::after {
        display: none !important;
        content: none !important;
    }

    body.tp-placepage-v1-body #masthead .navigation-bar-wrapper .nav-menu {
        border-bottom: 1px solid rgba(255, 255, 255, 0.10);
        padding: 18px 18px 14px;
    }

    body.tp-placepage-v1-body #masthead .navigation-bar-wrapper .nav-menu:last-child {
        border-bottom: 0;
    }

    body.tp-placepage-v1-body #masthead .navigation-bar-wrapper .nav-menu li > a {
        color: rgba(255, 255, 255, 0.92) !important;
        font-size: 18px;
    }

    body.tp-placepage-v1-body #masthead .navigation-bar-wrapper .nav-menu ul ul {
        border-left: 1px solid rgba(255, 255, 255, 0.12);
        padding-left: 14px;
    }
}

body.tp-placepage-v1-body #masthead .primary-header-inner > .secondary.nav-menu {
    display: none !important;
}

body.tp-placepage-v1-body #masthead .main-navigation .secondary.nav-menu {
    display: none !important;
}

body.tp-placepage-v1-body #masthead .nav-menu-container > ul.menu > li > a,
body.tp-placepage-v1-body #masthead .nav-menu.primary > li > a {
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.05);
    color: rgba(255, 255, 255, 0.92) !important;
    padding: 10px 12px;
    transition: transform 140ms ease, background 140ms ease, border-color 140ms ease;
}

body.tp-placepage-v1-body #masthead .nav-menu-container > ul.menu > li > a:hover,
body.tp-placepage-v1-body #masthead .nav-menu.primary > li > a:hover {
	    transform: translateY(-1px);
	    background: rgba(255, 255, 255, 0.10);
	    border-color: rgba(var(--tp-accent-a, 255, 153, 51), 0.34);
}

body.tp-placepage-v1-body #masthead .nav-menu-container > ul.menu {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

body.tp-placepage-v1-body #masthead .menu-toggle,
body.tp-placepage-v1-body #masthead .search-toggle,
body.tp-placepage-v1-body #masthead .primary-header a.button {
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.06);
    color: rgba(255, 255, 255, 0.92) !important;
    transition: transform 140ms ease, background 140ms ease, border-color 140ms ease;
}

body.tp-placepage-v1-body #masthead .menu-toggle:hover,
body.tp-placepage-v1-body #masthead .search-toggle:hover,
body.tp-placepage-v1-body #masthead .primary-header a.button:hover {
	    transform: translateY(-1px);
	    background: rgba(255, 255, 255, 0.10);
	    border-color: rgba(var(--tp-accent-a, 255, 153, 51), 0.34);
}

body.tp-placepage-v1-body #masthead .nav-menu .sub-menu {
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(10, 12, 18, 0.86);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    overflow: hidden;
}

body.tp-placepage-v1-body #masthead .nav-menu .sub-menu a {
    color: rgba(255, 255, 255, 0.92) !important;
}

body.tp-placepage-v1-body #masthead .search-overlay {
    background: rgba(10, 12, 18, 0.82) !important;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.14);
}

body.tp-placepage-v1-body .site-footer,
body.tp-placepage-v1-body .site-footer-widgets {
    background: rgba(10, 12, 18, 0.50);
    backdrop-filter: blur(18px) saturate(150%);
    -webkit-backdrop-filter: blur(18px) saturate(150%);
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.tp-placepage-v1 {
    --tpp-bg: #070a12;
    --tpp-bg2: #0b1024;
    --tpp-text: rgba(255, 255, 255, 0.92);
    --tpp-muted: rgba(255, 255, 255, 0.72);
    --tpp-muted2: rgba(255, 255, 255, 0.56);
    --tpp-glass: rgba(255, 255, 255, 0.08);
    --tpp-glass-strong: rgba(255, 255, 255, 0.12);
    --tpp-border: rgba(255, 255, 255, 0.18);
    --tpp-shadow: 0 18px 70px rgba(0, 0, 0, 0.45);
    --tpp-accent-a: var(--tp-accent-a, 255, 153, 51);
    --tpp-accent-b: var(--tp-accent-b, 0, 0, 128);
    --tpp-accent-c: var(--tp-accent-c, 19, 136, 8);

    --tpp-saffron: rgb(var(--tpp-accent-a));
    --tpp-green: rgb(var(--tpp-accent-c));
    --tpp-blue: rgb(var(--tpp-accent-b));

    color: var(--tpp-text);
    position: relative;
}

.tp-placepage-v1::before {
    content: none;
    display: none;
}

.tp-placepage-v1__primary {
    padding-top: 18px;
    padding-bottom: calc(120px + env(safe-area-inset-bottom) + var(--tp-adsense-bottom, 0px));
}

/* Listify positions hero actions absolutely on desktop; PlacePage v1 keeps them in-flow
   so the booking widget doesn't overlap the quickbar. */
body.tp-placepage-v1-body .content-single-job_listing-hero-actions {
    position: static;
    right: auto;
    bottom: auto;
    text-align: right;
    margin: 1em 0;
}

@media (min-width: 768px) {
    body.tp-placepage-v1-body .content-single-job_listing-hero-actions {
        margin: 0;
    }
}

.tp-placepage-v1__quickbar {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: 999px;
    position: relative;
    overflow: hidden;
    border: 1px solid transparent;
    background:
        linear-gradient(180deg, rgba(0, 0, 0, 0.36), rgba(0, 0, 0, 0.18)) padding-box,
        linear-gradient(90deg, rgba(var(--tpp-accent-a), 0.62), rgba(var(--tpp-accent-b), 0.50), rgba(var(--tpp-accent-c), 0.58)) border-box;
    backdrop-filter: blur(14px) saturate(145%);
    -webkit-backdrop-filter: blur(14px) saturate(145%);
    box-shadow: 0 18px 70px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.10);
}

.tp-placepage-v1__quickbar::after {
    content: "";
    position: absolute;
    inset: -30px;
    background:
        radial-gradient(260px 120px at 20% 10%, rgba(var(--tpp-accent-a), 0.18), transparent 65%),
        radial-gradient(260px 140px at 70% 0%, rgba(var(--tpp-accent-b), 0.14), transparent 60%),
        radial-gradient(260px 140px at 90% 90%, rgba(var(--tpp-accent-c), 0.16), transparent 60%);
    pointer-events: none;
    opacity: 0.9;
}

.tp-placepage-v1__quickbar > * {
    position: relative;
    z-index: 1;
}

.tp-placepage-v1__pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: rgba(255, 255, 255, 0.06);
    color: var(--tpp-text);
    font-weight: 750;
    font-size: 12px;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
}

.tp-placepage-v1__pill--link:hover {
    background: rgba(255, 255, 255, 0.10);
    border-color: rgba(var(--tpp-accent-a), 0.28);
}

.tp-placepage-v1__pill--location {
    border-color: rgba(var(--tpp-accent-b), 0.26);
    background: linear-gradient(135deg, rgba(var(--tpp-accent-a), 0.12), rgba(var(--tpp-accent-b), 0.10), rgba(var(--tpp-accent-c), 0.10));
}

.tp-placepage-v1__section {
    margin-top: 18px;
    scroll-margin-top: 96px;
}

.tp-placepage-v1__sectionHeader {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin: 14px 0 12px;
}

.tp-placepage-v1__h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 820;
    letter-spacing: -0.01em;
    display: inline-flex;
    align-items: flex-end;
    position: relative;
    padding-bottom: 6px;
}

.tp-placepage-v1__sectionHeader .tp-placepage-v1__h2::after,
.tp-placepage-v1__cardHeader .tp-placepage-v1__h2::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 54px;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--tpp-saffron), var(--tpp-blue), var(--tpp-green));
    opacity: 0.85;
}

.tp-placepage-v1__h3 {
    margin: 0;
    font-size: 14px;
    font-weight: 820;
    letter-spacing: -0.01em;
}

.tp-placepage-v1__muted {
    margin: 0;
    color: var(--tpp-muted);
    font-size: 13px;
    line-height: 1.45;
}

.tp-placepage-v1__link {
    color: var(--tpp-text);
    text-decoration: none;
    font-size: 13px;
    font-weight: 760;
    border-bottom: 1px solid rgba(255, 255, 255, 0.28);
    padding-bottom: 2px;
    white-space: nowrap;
}

.tp-placepage-v1__link:hover {
    border-bottom-color: rgba(255, 255, 255, 0.44);
}

.tp-placepage-v1__card,
.tp-placepage-v1 .widget-area--listing-sidebar .widget,
.tp-placepage-v1 main .widget {
    border-radius: 22px;
    border: 1px solid transparent;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04)) padding-box,
        linear-gradient(135deg, rgba(var(--tpp-accent-a), 0.32), rgba(var(--tpp-accent-b), 0.22), rgba(var(--tpp-accent-c), 0.30)) border-box;
    backdrop-filter: blur(18px) saturate(145%);
    -webkit-backdrop-filter: blur(18px) saturate(145%);
    box-shadow: var(--tpp-shadow), inset 0 1px 0 rgba(255, 255, 255, 0.10);
    overflow: hidden;
}

.tp-placepage-v1__card {
    padding: 14px;
}

.tp-placepage-v1 main .widget {
    padding: 14px;
}

.tp-placepage-v1 .widget-area--listing-sidebar .widget {
    padding: 14px;
}

.tp-placepage-v1 main .listify_widget_panel_listing_content:empty {
    display: none;
}

.tp-placepage-v1 main .listify_widget_panel_listing_gallery_slider,
.tp-placepage-v1 main .listify_widget_panel_listing_gallery,
.tp-placepage-v1 main .listify_widget_panel_listing_map,
.tp-placepage-v1 main .listify_widget_panel_listing_video {
    padding: 0;
}

.tp-placepage-v1 main .listify_widget_panel_listing_gallery_slider .listing-gallery,
.tp-placepage-v1 main .listify_widget_panel_listing_gallery .listing-gallery {
    margin: 0;
}

.tp-placepage-v1 #listing-contact-map {
    min-height: 220px;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(0, 0, 0, 0.18);
}

.tp-placepage-v1 .listify_widget_panel_listing_business_hours .business-hour {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0;
    margin: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.10);
}

.tp-placepage-v1 .listify_widget_panel_listing_business_hours .business-hour:last-child {
    border-bottom: 0;
}

.tp-placepage-v1 .listify_widget_panel_listing_business_hours .day {
    color: var(--tpp-muted);
    font-weight: 760;
}

.tp-placepage-v1 .listify_widget_panel_listing_business_hours .business-hour-time {
    font-weight: 860;
    letter-spacing: -0.01em;
}

.tp-placepage-v1 .tp-vhub-cta {
    border-radius: 22px !important;
    border: 1px solid transparent !important;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04)) padding-box,
        linear-gradient(135deg, rgba(var(--tpp-accent-a), 0.30), rgba(var(--tpp-accent-b), 0.20), rgba(var(--tpp-accent-c), 0.28)) border-box !important;
    box-shadow: var(--tpp-shadow), inset 0 1px 0 rgba(255, 255, 255, 0.10) !important;
    color: var(--tpp-text) !important;
}

.tp-placepage-v1 .tp-vhub-cta a {
    border-radius: 999px !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    background: linear-gradient(135deg, rgba(var(--tpp-accent-a), 0.30), rgba(var(--tpp-accent-c), 0.20)) !important;
}

.tp-placepage-v1 .widget-title,
.tp-placepage-v1 .widget-title-job_listing {
    color: var(--tpp-text);
    font-weight: 820;
    letter-spacing: -0.01em;
    position: relative;
    padding-bottom: 8px;
}

.tp-placepage-v1 .widget-title::after,
.tp-placepage-v1 .widget-title-job_listing::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 48px;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--tpp-saffron), var(--tpp-blue), var(--tpp-green));
    opacity: 0.82;
}

.tp-placepage-v1__cardHeader {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.tp-placepage-v1__btn,
body.tp-placepage-v1-body a.single-job_listing-respond.button {
    appearance: none;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.08);
    color: var(--tpp-text);
    padding: 10px 12px;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 760;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    transition: transform 120ms ease, background 120ms ease, border-color 120ms ease;
}

.tp-placepage-v1__btn:hover,
body.tp-placepage-v1-body a.single-job_listing-respond.button:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.26);
}

.tp-placepage-v1__btn:focus-visible,
body.tp-placepage-v1-body a.single-job_listing-respond.button:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.55);
    outline-offset: 3px;
}

.tp-placepage-v1__btn--primary {
    border-color: rgba(var(--tpp-accent-a), 0.34);
    background: linear-gradient(135deg, rgba(var(--tpp-accent-a), 0.22), rgba(var(--tpp-accent-c), 0.14));
}

body.tp-placepage-v1-body a.single-job_listing-respond.button {
    border-color: rgba(var(--tpp-accent-a), 0.34);
    background: linear-gradient(135deg, rgba(var(--tpp-accent-a), 0.22), rgba(var(--tpp-accent-c), 0.14));
}

.tp-placepage-v1__btn--ghost {
    background: rgba(255, 255, 255, 0.06);
}

.tp-placepage-v1__card--intro {
    padding: 14px;
}

.tp-placepage-v1__bookingHeader {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.tp-placepage-v1__bookingTitle {
    min-width: 0;
}

.tp-placepage-v1__bookingTitle .tp-placepage-v1__muted {
    margin-top: 4px;
}

.tp-placepage-v1__segmented {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(0, 0, 0, 0.22);
    backdrop-filter: blur(12px) saturate(150%);
    -webkit-backdrop-filter: blur(12px) saturate(150%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.10);
}

.tp-placepage-v1__segBtn {
    appearance: none;
    border: 0;
    border-radius: 999px;
    padding: 9px 14px;
    font-weight: 840;
    letter-spacing: -0.01em;
    color: var(--tpp-muted);
    background: transparent;
    cursor: pointer;
    transition: transform 120ms ease, background 120ms ease, color 120ms ease;
}

.tp-placepage-v1__segBtn:hover {
    transform: translateY(-1px);
}

.tp-placepage-v1__segBtn.is-active {
    color: var(--tpp-text);
    background: linear-gradient(135deg, rgba(var(--tpp-accent-a), 0.26), rgba(0, 0, 0, 0.12), rgba(var(--tpp-accent-c), 0.20));
}

.tp-placepage-v1__bookingPanels {
    margin-top: 12px;
}

.tp-placepage-v1__bookingPanel {
    display: none;
}

.tp-placepage-v1__bookingPanel.is-active {
    display: block;
}

.tp-placepage-v1__bookingRow {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.tp-placepage-v1__bookingGrid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 10px;
}

.tp-placepage-v1__bookingGrid--flights {
    margin-top: 0;
}

.tp-placepage-v1__field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.tp-placepage-v1__label {
    font-size: 12px;
    color: var(--tpp-muted2);
    font-weight: 760;
    letter-spacing: 0.01em;
}

.tp-placepage-v1__input,
.tp-placepage-v1__select {
    width: 100%;
    box-sizing: border-box;
    min-height: 48px;
    padding: 12px 14px;
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: rgba(0, 0, 0, 0.22);
    color: var(--tpp-text);
    font-weight: 760;
    letter-spacing: -0.01em;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.tp-placepage-v1__input::placeholder {
    color: rgba(255, 255, 255, 0.48);
}

.tp-placepage-v1__input:focus,
.tp-placepage-v1__select:focus {
    outline: none;
    border-color: rgba(var(--tpp-accent-a), 0.36);
    background: rgba(0, 0, 0, 0.28);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.10), 0 0 0 4px rgba(var(--tpp-accent-a), 0.10);
}

.tp-placepage-v1__select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 44px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24'%3E%3Cpath fill='rgba(255,255,255,0.75)' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-size: 18px 18px;
}

.tp-placepage-v1__providers {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
}

.tp-placepage-v1__provider {
    appearance: none;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    padding: 10px 12px;
    background: rgba(255, 255, 255, 0.06);
    color: var(--tpp-text);
    display: inline-flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    font-weight: 820;
    line-height: 1;
    transition: transform 120ms ease, background 120ms ease, border-color 120ms ease;
    max-width: 100%;
}

.tp-placepage-v1__provider:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, 0.10);
    border-color: rgba(255, 255, 255, 0.26);
}

.tp-placepage-v1__providerIcon {
    width: 22px;
    height: 22px;
    border-radius: 7px;
    background: rgba(255, 255, 255, 0.95);
    flex: 0 0 auto;
}

.tp-placepage-v1__provider--expedia {
    border-color: rgba(var(--tpp-accent-a), 0.30);
    background: linear-gradient(135deg, rgba(var(--tpp-accent-a), 0.18), rgba(0, 0, 0, 0.12));
}

.tp-placepage-v1__provider--hotels {
    border-color: rgba(255, 86, 111, 0.28);
    background: linear-gradient(135deg, rgba(255, 86, 111, 0.16), rgba(0, 0, 0, 0.12));
}

.tp-placepage-v1__provider--vrbo {
    border-color: rgba(54, 152, 255, 0.26);
    background: linear-gradient(135deg, rgba(54, 152, 255, 0.14), rgba(0, 0, 0, 0.12));
}

.tp-placepage-v1__providerLabel {
    white-space: nowrap;
}

.tp-placepage-v1__bookingRow--geo {
    margin-top: 10px;
    align-items: center;
}

.tp-placepage-v1__geoBtn {
    appearance: none;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    padding: 9px 12px;
    background: rgba(255, 255, 255, 0.06);
    color: var(--tpp-text);
    font-weight: 820;
    letter-spacing: -0.01em;
    cursor: pointer;
    transition: transform 120ms ease, background 120ms ease, border-color 120ms ease, opacity 120ms ease;
}

.tp-placepage-v1__geoBtn:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, 0.10);
    border-color: rgba(var(--tpp-accent-b), 0.28);
}

.tp-placepage-v1__geoBtn.is-loading {
    opacity: 0.72;
}

.tp-placepage-v1__geoBtn:disabled {
    cursor: default;
    opacity: 0.64;
    transform: none;
}

.tp-placepage-v1__geoHint {
    font-size: 12px;
    color: var(--tpp-muted2);
    line-height: 1.35;
    min-width: 0;
}

.tp-placepage-v1__bookingRow--actions {
    margin-top: 12px;
    align-items: center;
}

.tp-placepage-v1__bookingHint {
    margin-top: 10px;
    font-size: 12px;
    color: var(--tpp-muted2);
    line-height: 1.35;
}

@media (min-width: 860px) {
    .tp-placepage-v1__bookingGrid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .tp-placepage-v1__bookingGrid {
        grid-template-columns: minmax(0, 1fr);
    }

    .tp-placepage-v1__bookingRow--geo {
        align-items: stretch;
    }

    .tp-placepage-v1__geoHint {
        width: 100%;
    }

    .tp-placepage-v1__bookingRow--actions .tp-placepage-v1__btn {
        width: 100%;
    }
}

.tp-placepage-v1__actionGrid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 10px;
}

.tp-placepage-v1__actionCard {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: rgba(0, 0, 0, 0.18);
    color: var(--tpp-text);
    text-decoration: none;
    min-height: 66px;
    transition: transform 120ms ease, background 120ms ease, border-color 120ms ease;
}

.tp-placepage-v1__actionCard:hover {
    transform: translateY(-2px);
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(var(--tpp-accent-a), 0.26);
}

.tp-placepage-v1__actionIcon {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    background: linear-gradient(135deg, rgba(var(--tpp-accent-a), 0.18), rgba(var(--tpp-accent-b), 0.10), rgba(var(--tpp-accent-c), 0.14));
    border: 1px solid rgba(255, 255, 255, 0.16);
    flex: 0 0 auto;
}

.tp-placepage-v1__actionBody {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.tp-placepage-v1__actionTitle {
    font-weight: 900;
    letter-spacing: -0.01em;
}

.tp-placepage-v1__actionDesc {
    font-size: 13px;
    color: var(--tpp-muted);
    line-height: 1.35;
}

.tp-placepage-v1__chipRow {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.tp-placepage-v1__chipLink {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: rgba(255, 255, 255, 0.05);
    color: var(--tpp-text);
    text-decoration: none;
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
    transition: transform 120ms ease, background 120ms ease, border-color 120ms ease;
}

.tp-placepage-v1__chipLink:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, 0.10);
    border-color: rgba(var(--tpp-accent-b), 0.28);
}

.tp-placepage-v1__chipEmoji {
    width: 22px;
    height: 22px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.12);
    flex: 0 0 auto;
}

.tp-placepage-v1__chipHint {
    margin-top: 10px;
    font-size: 13px;
    color: var(--tpp-muted2);
}

.tp-placepage-v1__experienceGrid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px;
}

.tp-placepage-v1__experienceCard {
    border-radius: 22px;
    border: 1px solid transparent;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04)) padding-box,
        linear-gradient(135deg, rgba(var(--tpp-accent-a), 0.30), rgba(var(--tpp-accent-b), 0.20), rgba(var(--tpp-accent-c), 0.28)) border-box;
    backdrop-filter: blur(18px) saturate(145%);
    -webkit-backdrop-filter: blur(18px) saturate(145%);
    box-shadow: var(--tpp-shadow), inset 0 1px 0 rgba(255, 255, 255, 0.10);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 100%;
}

.tp-placepage-v1__experienceMedia {
    min-height: 160px;
    background: linear-gradient(135deg, rgba(var(--tpp-accent-a), 0.16), rgba(var(--tpp-accent-b), 0.10), rgba(var(--tpp-accent-c), 0.12));
    background-size: cover;
    background-position: center;
    position: relative;
    overflow: hidden;
}

.tp-placepage-v1__experienceImg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.92;
}

.tp-placepage-v1__experienceImg:not([src]),
.tp-placepage-v1__experienceImg[src=""] {
    display: none;
}

.tp-placepage-v1__experienceMedia::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(7, 10, 18, 0) 40%, rgba(7, 10, 18, 0.76));
    pointer-events: none;
}

.tp-placepage-v1__experienceMeta {
    position: absolute;
    left: 12px;
    bottom: 12px;
    z-index: 2;
    display: inline-flex;
    gap: 8px;
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 760;
    background: rgba(0, 0, 0, 0.44);
    border: 1px solid rgba(255, 255, 255, 0.16);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.tp-placepage-v1__experienceBody {
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1 1 auto;
}

.tp-placepage-v1__experienceActions {
    margin-top: auto;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.tp-placepage-v1__homeGrid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 12px;
}

.tp-placepage-v1__appGrid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 10px;
}

.tp-placepage-v1__appTile {
    display: flex;
    gap: 12px;
    padding: 12px;
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: rgba(255, 255, 255, 0.05);
    text-decoration: none;
    color: var(--tpp-text);
    transition: transform 120ms ease, background 120ms ease, border-color 120ms ease;
}

.tp-placepage-v1__appTile:hover {
    transform: translateY(-2px);
    background: rgba(255, 255, 255, 0.10);
    border-color: rgba(var(--tpp-accent-a), 0.28);
}

.tp-placepage-v1__appIcon {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    background: linear-gradient(135deg, rgba(var(--tpp-accent-a), 0.18), rgba(var(--tpp-accent-b), 0.10), rgba(var(--tpp-accent-c), 0.14));
    border: 1px solid rgba(255, 255, 255, 0.18);
    flex: 0 0 auto;
}

.tp-placepage-v1__appBody {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.tp-placepage-v1__appTitle {
    font-weight: 820;
    letter-spacing: -0.01em;
}

.tp-placepage-v1__appDesc {
    font-size: 13px;
    color: var(--tpp-muted);
    line-height: 1.35;
}

.tp-placepage-v1__lensGrid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
}

.tp-placepage-v1__lensCard {
    position: relative;
    min-height: 148px;
    border-radius: 22px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: linear-gradient(135deg, rgba(var(--tpp-accent-a), 0.16), rgba(var(--tpp-accent-b), 0.12), rgba(var(--tpp-accent-c), 0.12));
    background-size: cover;
    background-position: center;
    overflow: hidden;
    text-decoration: none;
    color: var(--tpp-text);
    transition: transform 120ms ease, border-color 120ms ease;
}

.tp-placepage-v1__lensImg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0.92;
}

.tp-placepage-v1__lensImg:not([src]),
.tp-placepage-v1__lensImg[src=""] {
    display: none;
}

.tp-placepage-v1__lensCard:hover {
    transform: translateY(-2px);
    border-color: rgba(255, 255, 255, 0.26);
}

.tp-placepage-v1__lensOverlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 4px;
    padding: 12px;
    background: linear-gradient(180deg, rgba(7, 10, 18, 0) 35%, rgba(7, 10, 18, 0.78));
}

.tp-placepage-v1__lensTitle {
    font-weight: 820;
    letter-spacing: -0.01em;
}

.tp-placepage-v1__lensDesc {
    font-size: 13px;
    color: var(--tpp-muted);
    line-height: 1.35;
}

.tp-placepage-v1__playGrid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px;
}

.tp-placepage-v1__playValue {
    font-size: 13px;
    line-height: 1.45;
    color: var(--tpp-muted);
    margin-top: 6px;
    margin-bottom: 10px;
}

.tp-placepage-v1__playChips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.tp-placepage-v1__chip {
    appearance: none;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.06);
    color: var(--tpp-text);
    padding: 8px 12px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 760;
    cursor: pointer;
    transition: transform 120ms ease, background 120ms ease, border-color 120ms ease;
}

.tp-placepage-v1__chip:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, 0.10);
    border-color: rgba(var(--tpp-accent-b), 0.28);
}

.tp-placepage-v1__chip.is-active {
    background: rgba(var(--tpp-accent-a), 0.14);
    border-color: rgba(var(--tpp-accent-a), 0.32);
}

.tp-placepage-v1__playActions {
    margin-top: 12px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.tp-placepage-v1__menuCard {
    border-color: rgba(201, 171, 3, 0.26);
    background: linear-gradient(
        135deg,
        rgba(201, 171, 3, 0.14),
        rgba(255, 255, 255, 0.04) 48%,
        rgba(var(--tpp-accent-b), 0.10)
    );
    position: relative;
    overflow: hidden;
}

.tp-placepage-v1__gallerySection {
    display: grid;
    gap: 18px;
}

.tp-placepage-v1__gallerySection .listify_widget_panel_listing_gallery,
.tp-placepage-v1__gallerySection .listify_widget_panel_listing_gallery_slider {
    margin: 0;
}

.tp-placepage-v1__galleryEmbed .tp-placepage-v1__menuCard {
    margin: 0;
}

.tp-placepage-v1__menuSub {
    font-size: 12px;
    line-height: 1.45;
    color: var(--tpp-muted);
    margin-top: 6px;
}

.tp-placepage-v1__menuStatus {
    margin-top: 8px;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.72);
}

.tp-placepage-v1__menuFrameWrap {
    margin-top: 10px;
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(0, 0, 0, 0.24);
    overflow: hidden;
}

.tp-placepage-v1__menuFrame {
    display: block;
    width: 100%;
    min-height: 320px;
    height: 720px;
    border: 0;
    background: rgba(0, 0, 0, 0.18);
}

.tp-placepage-v1__spotifyCard {
    border-color: rgba(var(--tpp-accent-b), 0.16);
    background: linear-gradient(
        135deg,
        rgba(var(--tpp-accent-a), 0.14),
        rgba(var(--tpp-accent-b), 0.06) 52%,
        rgba(var(--tpp-accent-c), 0.10)
    );
    position: relative;
    overflow: hidden;
}

.tp-placepage-v1__spotifySub {
    font-size: 12px;
    line-height: 1.4;
    color: var(--tpp-muted);
    margin-top: 6px;
    margin-bottom: 6px;
}

.tp-placepage-v1__spotifyDeck {
    margin-top: 10px;
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(0, 0, 0, 0.22);
    padding: 12px;
    min-height: 138px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.tp-placepage-v1__spotifyEmpty {
    font-size: 13px;
    color: var(--tpp-muted);
    line-height: 1.45;
    text-align: center;
}

.tp-placepage-v1__spotifyTrack {
    width: 100%;
    display: grid;
    grid-template-columns: 92px 1fr;
    gap: 12px;
    align-items: center;
    touch-action: pan-y;
    user-select: none;
    -webkit-user-select: none;
    transition: transform 180ms ease, opacity 180ms ease;
}

.tp-placepage-v1__spotifyTrack.is-dragging {
    cursor: grab;
}

.tp-placepage-v1__spotifyCoverWrap {
    width: 92px;
    height: 92px;
    position: relative;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.05);
}

.tp-placepage-v1__spotifyCover {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.tp-placepage-v1__spotifyCover--placeholder {
    background: radial-gradient(circle at 20% 20%, rgba(var(--tpp-accent-a), 0.25), rgba(255, 255, 255, 0.04) 62%);
}

.tp-placepage-v1__spotifyPlay {
    position: absolute;
    right: 8px;
    bottom: 8px;
    width: 34px;
    height: 34px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.22);
    background: rgba(0, 0, 0, 0.56);
    color: var(--tpp-text);
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.tp-placepage-v1__spotifyTrack.is-playing .tp-placepage-v1__spotifyPlay {
    background: rgba(var(--tpp-accent-a), 0.26);
    border-color: rgba(var(--tpp-accent-a), 0.36);
}

.tp-placepage-v1__spotifyInfo {
    min-width: 0;
}

.tp-placepage-v1__spotifyTitle {
    font-weight: 860;
    letter-spacing: -0.01em;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tp-placepage-v1__spotifyArtists {
    font-size: 12px;
    color: var(--tpp-muted);
    line-height: 1.35;
    margin-top: 4px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tp-placepage-v1__spotifyMetaRow {
    margin-top: 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.tp-placepage-v1__spotifyNote {
    font-size: 11px;
    color: rgba(255, 255, 255, 0.6);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 999px;
    padding: 4px 8px;
    background: rgba(255, 255, 255, 0.06);
}

.tp-placepage-v1__spotifyButtons {
    margin-top: 10px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.tp-placepage-v1__spotifyBtn {
    padding-left: 14px;
    padding-right: 14px;
}

.tp-placepage-v1__spotifyStatus {
    font-size: 12px;
    color: var(--tpp-muted);
}

@media (max-width: 520px) {
    .tp-placepage-v1__menuFrame {
        height: 620px;
    }

    .tp-placepage-v1__spotifyTrack {
        grid-template-columns: 74px 1fr;
    }

    .tp-placepage-v1__spotifyCoverWrap {
        width: 74px;
        height: 74px;
        border-radius: 16px;
    }
}

.tp-placepage-v1__nearbyGrid {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
    gap: 12px;
}

.tp-placepage-v1__newsList {
    display: grid;
    gap: 10px;
}

.tp-placepage-v1__newsItem {
    display: grid;
    grid-template-columns: 62px 1fr;
    gap: 12px;
    align-items: center;
    text-decoration: none;
    color: var(--tpp-text);
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.04);
    padding: 10px;
    transition: transform 120ms ease, background 120ms ease, border-color 120ms ease;
}

.tp-placepage-v1__newsItem:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(var(--tpp-accent-a), 0.24);
}

.tp-placepage-v1__newsThumb {
    width: 62px;
    height: 46px;
    object-fit: cover;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(0, 0, 0, 0.18);
}

.tp-placepage-v1__newsThumb--placeholder {
    background: linear-gradient(135deg, rgba(var(--tpp-accent-a), 0.12), rgba(var(--tpp-accent-b), 0.10), rgba(var(--tpp-accent-c), 0.10));
}

.tp-placepage-v1__newsBody {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.tp-placepage-v1__newsTitle {
    font-weight: 780;
    letter-spacing: -0.01em;
    line-height: 1.15;
}

.tp-placepage-v1__newsMeta {
    font-size: 12px;
    color: var(--tpp-muted2);
}

.tp-placepage-v1__eventsControls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.tp-placepage-v1__eventsCtrl {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.tp-placepage-v1__eventsCtrl--btn {
    appearance: none;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(0, 0, 0, 0.18);
    color: rgba(255, 255, 255, 0.92);
    border-radius: 999px;
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 760;
    letter-spacing: -0.01em;
    cursor: pointer;
    line-height: 1.15;
}

.tp-placepage-v1__eventsCtrl--btn:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(var(--tpp-accent-a), 0.26);
}

.tp-placepage-v1__eventsCtrl--btn.is-active {
    border-color: rgba(var(--tpp-accent-a), 0.44);
}

.tp-placepage-v1__eventsCtrl--btn.tp-placepage-v1__eventsCtrl--primary {
    background: rgba(var(--tpp-accent-a), 0.18);
    border-color: rgba(var(--tpp-accent-a), 0.36);
    color: rgba(255, 255, 255, 0.96);
}

.tp-placepage-v1__eventsCtrl--btn.tp-placepage-v1__eventsCtrl--primary:hover {
    background: rgba(var(--tpp-accent-a), 0.26);
    border-color: rgba(var(--tpp-accent-a), 0.48);
}

.tp-placepage-v1__eventsCtrlIcon {
    font-size: 14px;
    line-height: 1;
}

.tp-placepage-v1__eventsCtrl--search {
    flex: 1 1 180px;
    min-width: 160px;
}

.tp-placepage-v1__eventsQuery {
    appearance: none;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(0, 0, 0, 0.18);
    color: rgba(255, 255, 255, 0.92);
    border-radius: 999px;
    padding: 6px 12px;
    font-size: 12px;
    font-weight: 760;
    letter-spacing: -0.01em;
    line-height: 1.15;
    width: min(340px, 100%);
}

.tp-placepage-v1__eventsQuery::placeholder {
    color: rgba(255, 255, 255, 0.58);
}

.tp-placepage-v1__eventsQuery:hover,
.tp-placepage-v1__eventsQuery:focus {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(var(--tpp-accent-a), 0.26);
    outline: none;
}

.tp-placepage-v1__eventsType {
    appearance: none;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(0, 0, 0, 0.18);
    color: rgba(255, 255, 255, 0.92);
    border-radius: 999px;
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 760;
    letter-spacing: -0.01em;
    cursor: pointer;
    line-height: 1.15;
}

.tp-placepage-v1__eventsType:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(var(--tpp-accent-a), 0.26);
}

.tp-placepage-v1__eventsCtrl--select {
    position: relative;
}

.tp-placepage-v1__eventsCtrl--select::after {
    content: "▾";
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-52%);
    color: rgba(255, 255, 255, 0.72);
    pointer-events: none;
    font-size: 12px;
}

.tp-placepage-v1__eventsCtrl--select .tp-placepage-v1__eventsType {
    padding-right: 26px;
}

.tp-placepage-v1__eventList {
    display: grid;
    gap: 10px;
}

.tp-placepage-v1__eventItem {
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    color: var(--tpp-text);
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.04);
    padding: 10px 12px;
}

.tp-placepage-v1__eventThumb {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    object-fit: cover;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(0, 0, 0, 0.18);
    flex: 0 0 auto;
}

.tp-placepage-v1__eventThumb--placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    line-height: 1;
}

.tp-placepage-v1__eventBody {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.tp-placepage-v1__eventTitle {
    font-weight: 780;
    letter-spacing: -0.01em;
}

.tp-placepage-v1__eventMeta {
    font-size: 12px;
    color: var(--tpp-muted2);
    line-height: 1.3;
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
}

.tp-placepage-v1__spotlightRail {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.tp-placepage-v1__spotCard {
    text-decoration: none;
    color: var(--tpp-text);
    border-radius: 22px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    box-shadow: var(--tpp-shadow);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.tp-placepage-v1__spotMedia {
    height: 120px;
    overflow: hidden;
    background: rgba(0, 0, 0, 0.18);
}

.tp-placepage-v1__spotThumb {
    width: 100%;
    height: 120px;
    object-fit: cover;
    display: block;
}

.tp-placepage-v1__spotThumb--placeholder {
    width: 100%;
    height: 120px;
    background: linear-gradient(135deg, rgba(var(--tpp-accent-a), 0.14), rgba(var(--tpp-accent-b), 0.10), rgba(var(--tpp-accent-c), 0.12));
}

.tp-placepage-v1__spotBody {
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.tp-placepage-v1__spotTitle {
    font-weight: 820;
    letter-spacing: -0.01em;
}

.tp-placepage-v1__spotMeta {
    font-size: 12px;
    color: var(--tpp-muted2);
}

.tp-placepage-v1__empty {
    color: var(--tpp-muted);
    font-size: 13px;
    line-height: 1.45;
}

.tp-placepage-v1__empty a {
    color: var(--tpp-text);
    text-decoration: underline;
    text-decoration-color: rgba(255, 255, 255, 0.28);
    text-underline-offset: 3px;
}

.tp-placepage-v1 img {
    max-width: 100%;
    height: auto;
    box-sizing: border-box;
}

.tp-placepage-v1 iframe {
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
}

.tp-placepage-v1 .widget {
    overflow-x: hidden;
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.tp-placepage-v1 .tp-ppv1-reveal {
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 420ms ease, transform 420ms cubic-bezier(0.2, 0.8, 0.2, 1);
    will-change: opacity, transform;
}

.tp-placepage-v1 .tp-ppv1-reveal.is-visible {
    opacity: 1;
    transform: none;
}

.tp-placepage-v1 .tp-ppv1-focus {
    animation: tp-placepage-v1-focusPulse 980ms ease both;
}

@keyframes tp-placepage-v1-focusPulse {
    0% {
        box-shadow: 0 0 0 0 rgba(var(--tpp-accent-a), 0.0);
    }
    40% {
        box-shadow: 0 0 0 2px rgba(var(--tpp-accent-a), 0.28), 0 18px 70px rgba(0, 0, 0, 0.45);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(var(--tpp-accent-a), 0.0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .tp-placepage-v1 .tp-ppv1-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

.tp-placepage-v1__dockBackdrop {
    position: fixed;
    inset: 0;
    background: rgba(5, 8, 14, 0.35);
    opacity: 0;
    pointer-events: none;
    transition: opacity 180ms ease;
    z-index: 9996;
}

.tp-placepage-v1__dockBackdrop.is-open {
    opacity: 1;
    pointer-events: auto;
}

.tp-placepage-v1__dock {
    position: fixed;
    left: 50%;
    bottom: calc(16px + env(safe-area-inset-bottom) + min(var(--tp-adsense-bottom, 0px), 72px));
    transform: translateX(-50%);
    width: min(620px, calc(100vw - 24px));
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
    padding: 8px;
    border-radius: 999px;
    border: 1px solid transparent;
    background:
        linear-gradient(180deg, rgba(10, 12, 18, 0.72), rgba(10, 12, 18, 0.44)) padding-box,
        linear-gradient(90deg, rgba(var(--tpp-accent-a), 0.65), rgba(var(--tpp-accent-b), 0.48), rgba(var(--tpp-accent-c), 0.62)) border-box;
    backdrop-filter: blur(18px) saturate(160%);
    -webkit-backdrop-filter: blur(18px) saturate(160%);
    box-shadow: 0 26px 90px rgba(0, 0, 0, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.10);
    z-index: 9999;
    transition: transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1), opacity 220ms ease;
}

.tp-placepage-v1__dock.is-hidden {
    opacity: 0;
    pointer-events: none;
    transform: translateX(-50%) translateY(12px) scale(0.985);
}

.tp-placepage-v1__dockBtn {
    appearance: none;
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: rgba(255, 255, 255, 0.06);
    color: var(--tpp-text);
    border-radius: 18px;
    padding: 10px 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    text-decoration: none;
    font-weight: 900;
    letter-spacing: -0.01em;
    min-height: 54px;
    transition: transform 140ms ease, background 140ms ease, border-color 140ms ease;
    cursor: pointer;
    user-select: none;
}

.tp-placepage-v1__dockBtn:hover {
    transform: translateY(-2px);
    background: rgba(255, 255, 255, 0.10);
    border-color: rgba(var(--tpp-accent-a), 0.26);
}

.tp-placepage-v1__dockBtn:active {
    transform: translateY(-1px) scale(0.99);
}

.tp-placepage-v1__dockBtn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px rgba(var(--tpp-accent-a), 0.34);
}

.tp-placepage-v1__dockBtn--ai {
    background: linear-gradient(135deg, rgba(var(--tpp-accent-a), 0.18), rgba(var(--tpp-accent-c), 0.12));
    border-color: rgba(var(--tpp-accent-a), 0.30);
}

.tp-placepage-v1__dockIcon {
    width: 20px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.tp-placepage-v1__dockIcon svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.tp-placepage-v1__dockLabel {
    font-size: 11px;
    line-height: 1;
    color: rgba(255, 255, 255, 0.84);
    white-space: nowrap;
}

.tp-placepage-v1__dockSheet {
    position: fixed;
    left: 50%;
    bottom: calc(88px + env(safe-area-inset-bottom) + min(var(--tp-adsense-bottom, 0px), 72px));
    transform: translateX(-50%) translateY(12px) scale(0.99);
    width: min(620px, calc(100vw - 24px));
    opacity: 0;
    pointer-events: none;
    transition: opacity 180ms ease, transform 180ms cubic-bezier(0.2, 0.8, 0.2, 1);
    z-index: 9998;
}

.tp-placepage-v1__dockSheet.is-open {
    opacity: 1;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0) scale(1);
}

.tp-placepage-v1__dockSheetInner {
    padding: 10px;
    border-radius: 26px;
    border: 1px solid transparent;
    background:
        linear-gradient(180deg, rgba(10, 12, 18, 0.78), rgba(10, 12, 18, 0.50)) padding-box,
        linear-gradient(135deg, rgba(var(--tpp-accent-a), 0.46), rgba(var(--tpp-accent-b), 0.32), rgba(var(--tpp-accent-c), 0.42)) border-box;
    backdrop-filter: blur(20px) saturate(165%);
    -webkit-backdrop-filter: blur(20px) saturate(165%);
    box-shadow: 0 32px 110px rgba(0, 0, 0, 0.62), inset 0 1px 0 rgba(255, 255, 255, 0.10);
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.tp-placepage-v1__dockSheetBtn {
    appearance: none;
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: rgba(255, 255, 255, 0.06);
    color: var(--tpp-text);
    border-radius: 18px;
    padding: 10px 10px;
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    font-weight: 850;
    letter-spacing: -0.01em;
    min-height: 46px;
    transition: transform 140ms ease, background 140ms ease, border-color 140ms ease;
    cursor: pointer;
}

.tp-placepage-v1__dockSheetBtn:hover {
    transform: translateY(-2px);
    background: rgba(255, 255, 255, 0.10);
    border-color: rgba(var(--tpp-accent-b), 0.28);
}

.tp-placepage-v1__dockSheetBtn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px rgba(var(--tpp-accent-b), 0.30);
}

.tp-placepage-v1__dockSheetIcon {
    width: 26px;
    height: 26px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.12);
    flex: 0 0 auto;
    font-size: 14px;
}

.tp-placepage-v1__dockSheetText {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
}

.tp-placepage-v1__shareLayer {
    position: fixed;
    inset: 0;
    z-index: 10040;
    opacity: 0;
    pointer-events: none;
    transition: opacity 180ms ease;
}

.tp-placepage-v1__shareLayer.is-open {
    opacity: 1;
    pointer-events: auto;
}

.tp-placepage-v1__shareBackdrop {
    position: absolute;
    inset: 0;
    border: 0;
    margin: 0;
    padding: 0;
    background: rgba(4, 8, 14, 0.58);
    cursor: pointer;
}

.tp-placepage-v1__shareSheet {
    position: absolute;
    left: 50%;
    bottom: calc(18px + env(safe-area-inset-bottom) + min(var(--tp-adsense-bottom, 0px), 72px));
    transform: translateX(-50%) translateY(14px) scale(0.988);
    width: min(640px, calc(100vw - 22px));
    border-radius: 28px;
    border: 1px solid transparent;
    background:
        linear-gradient(180deg, rgba(10, 12, 18, 0.88), rgba(10, 12, 18, 0.62)) padding-box,
        linear-gradient(130deg, rgba(var(--tpp-accent-a), 0.62), rgba(var(--tpp-accent-b), 0.40), rgba(var(--tpp-accent-c), 0.60)) border-box;
    backdrop-filter: blur(22px) saturate(165%);
    -webkit-backdrop-filter: blur(22px) saturate(165%);
    box-shadow: 0 36px 120px rgba(0, 0, 0, 0.64), inset 0 1px 0 rgba(255, 255, 255, 0.10);
    padding: 14px;
    transition: transform 180ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.tp-placepage-v1__shareLayer.is-open .tp-placepage-v1__shareSheet {
    transform: translateX(-50%) translateY(0) scale(1);
}

.tp-placepage-v1__shareTop {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 12px;
}

.tp-placepage-v1__shareHeading {
    min-width: 0;
}

.tp-placepage-v1__shareEyebrow {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgba(228, 234, 247, 0.72);
}

.tp-placepage-v1__shareTitle {
    margin-top: 4px;
    font-size: 19px;
    font-weight: 900;
    letter-spacing: -0.01em;
    color: rgba(255, 255, 255, 0.96);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tp-placepage-v1__shareMeta {
    margin-top: 4px;
    font-size: 12px;
    color: rgba(220, 228, 245, 0.78);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tp-placepage-v1__shareClose {
    appearance: none;
    border: 1px solid rgba(255, 255, 255, 0.20);
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.88);
    border-radius: 12px;
    width: 38px;
    height: 38px;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    transition: transform 120ms ease, background 120ms ease;
}

.tp-placepage-v1__shareClose:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, 0.13);
}

.tp-placepage-v1__sharePlatforms {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 10px;
}

.tp-placepage-v1__sharePlatform {
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.07);
    color: rgba(255, 255, 255, 0.94);
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    font-weight: 850;
    font-size: 13px;
    letter-spacing: -0.01em;
    transition: transform 120ms ease, background 120ms ease, border-color 120ms ease;
}

.tp-placepage-v1__sharePlatform:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, 0.11);
    border-color: rgba(var(--tpp-accent-a), 0.42);
}

.tp-placepage-v1__shareActions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.tp-placepage-v1__shareAction {
    appearance: none;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.07);
    color: rgba(255, 255, 255, 0.94);
    min-height: 44px;
    padding: 10px 12px;
    font-weight: 900;
    font-size: 13px;
    letter-spacing: -0.01em;
    cursor: pointer;
    transition: transform 120ms ease, background 120ms ease, border-color 120ms ease;
}

.tp-placepage-v1__shareAction:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, 0.11);
    border-color: rgba(var(--tpp-accent-b), 0.42);
}

.tp-placepage-v1__shareAction:disabled,
.tp-placepage-v1__shareAction.is-disabled {
    opacity: 0.58;
    cursor: not-allowed;
    transform: none;
}

.tp-placepage-v1__shareAction--card {
    background: linear-gradient(135deg, rgba(var(--tpp-accent-a), 0.24), rgba(var(--tpp-accent-c), 0.18));
    border-color: rgba(var(--tpp-accent-a), 0.40);
}

.tp-placepage-v1__toast {
    position: fixed;
    left: 50%;
    bottom: calc(112px + env(safe-area-inset-bottom) + min(var(--tp-adsense-bottom, 0px), 72px));
    transform: translateX(-50%);
    padding: 10px 14px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(10, 12, 18, 0.72);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    color: rgba(255, 255, 255, 0.92);
    font-weight: 900;
    letter-spacing: -0.01em;
    box-shadow: 0 18px 70px rgba(0, 0, 0, 0.55);
    opacity: 0;
    transition: opacity 160ms ease, transform 160ms ease;
    z-index: 10000;
    pointer-events: none;
}

.tp-placepage-v1__toast.is-visible {
    opacity: 1;
    transform: translateX(-50%) translateY(-2px);
}

@media (max-width: 900px) {
    .tp-placepage-v1__dockSheetInner {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 480px) {
    .tp-placepage-v1__dock {
        gap: 6px;
        padding: 7px;
    }

    .tp-placepage-v1__dockBtn {
        padding: 10px 6px;
        min-height: 52px;
    }

    .tp-placepage-v1__dockLabel {
        display: none;
    }

    .tp-placepage-v1__sharePlatforms,
    .tp-placepage-v1__shareActions {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.tp-placepage-v1 .widget iframe {
    width: 100%;
    max-width: 100%;
    border-radius: 18px;
    display: block;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(0, 0, 0, 0.18);
}

.tp-placepage-v1 .widget iframe,
.tp-placepage-v1 .widget img {
    overflow: hidden;
}

@media (max-width: 900px) {
    .tp-placepage-v1__homeGrid,
    .tp-placepage-v1__nearbyGrid {
        grid-template-columns: 1fr;
    }

    .tp-placepage-v1__spotlightRail {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .tp-placepage-v1__quickbar {
        border-radius: 18px;
    }
}
