@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');

:root {
    --primary: #18392b;
    --primary-dark: #10291f;
    --accent: #d69f54;

    --text: #17211c;
    --muted: #6e7772;

    --background: #ffffff;
    --soft: #f4f6f3;

    --border: #e4e8e5;

    --radius: 18px;

    --container: 1380px;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Manrope', sans-serif;
    background: var(--background);
    color: var(--text);
    line-height: 1.6;
}

a {
    color: inherit;
    text-decoration: none;
}

.container {
    width: min(calc(100% - 48px), var(--container));
    margin: 0 auto;
}


/* HEADER */

.site-header {
    background: #fff;

    position: fixed;
    top: 0;
    left: 0;
    right: 0;

    width: 100%;

    z-index: 1000;

    box-shadow: 0 2px 18px rgba(20, 40, 30, .06);
}

body {
    padding-top: 122px;
}

.header-top {
    background: var(--primary-dark);
    color: rgba(255,255,255,.8);
    font-size: 13px;
}

.header-top-inner {
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.header-info,
.header-links {
    display: flex;
    gap: 18px;
}

.header-main {
    min-height: 84px;

    display: flex;
    align-items: center;
    justify-content: space-between;
}

.logo {
    display: flex;
    align-items: baseline;
    gap: 6px;

    font-size: 27px;
    font-weight: 800;
    letter-spacing: -1px;
}

.logo-main {
    color: var(--primary);
}

.logo-city {
    color: var(--accent);
}

.main-nav {
    display: flex;
    align-items: center;
    gap: 32px;

    font-size: 15px;
    font-weight: 600;
}

.main-nav a {
    transition: .2s;
}

.main-nav a:hover {
    color: var(--accent);
}

.menu-toggle {
    display: none;

    background: none;
    border: 0;

    font-size: 26px;
}


/* HERO */

.hero {
    position: relative;

    min-height: 640px;

    background:
        url('../images/hero-yambol.jpg')
        center / cover no-repeat;

    display: flex;
    align-items: center;

    color: #fff;
}

.hero-overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(10, 25, 18, .82) 0%,
            rgba(10, 25, 18, .58) 45%,
            rgba(10, 25, 18, .12) 100%
        );
}

.hero-content {
    position: relative;
    z-index: 2;

    padding-top: 30px;
    padding-bottom: 30px;
}

.hero-eyebrow,
.section-eyebrow,
.small-label {
    display: block;

    font-size: 12px;
    font-weight: 800;
    letter-spacing: 2px;

    color: var(--accent);

    margin-bottom: 12px;
}

.hero h1 {
    font-size: clamp(52px, 7vw, 92px);
    line-height: .98;
    letter-spacing: -4px;

    max-width: 800px;

    margin-bottom: 24px;
}

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

.hero p {
    max-width: 600px;

    font-size: 19px;
    color: rgba(255,255,255,.85);

    margin-bottom: 34px;
}

.hero-actions {
    display: flex;
    gap: 12px;
}


/* BUTTONS */

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 50px;

    padding: 0 24px;

    border-radius: 12px;

    font-size: 14px;
    font-weight: 700;

    transition: .2s;
}

.btn-primary {
    background: var(--accent);
    color: #fff;
}

.btn-primary:hover {
    transform: translateY(-2px);
}

.btn-light {
    background: #fff;
    color: var(--primary);
}


/* SEARCH */

.quick-search {
    position: relative;
    z-index: 5;

    margin-top: -55px;
}

.search-box {
    background: #fff;

    padding: 28px 32px;

    border-radius: var(--radius);

    box-shadow: 0 15px 50px rgba(20, 40, 30, .12);

    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 40px;

    align-items: center;
}

.search-box h2 {
    font-size: 24px;
}

.search-form {
    display: flex;

    background: var(--soft);

    padding: 7px;

    border-radius: 12px;
}

.search-form input {
    flex: 1;

    border: 0;
    outline: 0;
    background: transparent;

    padding: 0 14px;

    font: inherit;
}

.search-form button {
    border: 0;

    background: var(--primary);
    color: #fff;

    padding: 0 24px;

    min-height: 46px;

    border-radius: 9px;

    font-weight: 700;

    cursor: pointer;
}


/* SECTIONS */

.section {
    padding: 90px 0;
}

.section-soft {
    background: var(--soft);
}

.section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;

    gap: 30px;

    margin-bottom: 35px;
}

.section-heading h2 {
    font-size: clamp(32px, 4vw, 46px);

    letter-spacing: -2px;
    line-height: 1.1;
}

.section-link {
    font-weight: 700;
    color: var(--primary);
}


/* CATEGORIES */

.category-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);

    gap: 14px;
}

.category-card {
    border: 1px solid var(--border);

    border-radius: var(--radius);

    padding: 30px 22px;

    transition: .25s;
}

.category-card:hover {
    transform: translateY(-5px);

    border-color: var(--accent);

    box-shadow: 0 12px 30px rgba(20,40,30,.08);
}

.category-icon {
    font-size: 30px;

    margin-bottom: 22px;
}

.category-card h3 {
    font-size: 17px;
    margin-bottom: 7px;
}

.category-card p {
    font-size: 13px;
    color: var(--muted);
}


/* PLACES */

.places-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);

    gap: 24px;
}

.place-card {
    background: #fff;

    border-radius: var(--radius);

    overflow: hidden;
}

.place-image {
    height: 300px;

    position: relative;

    background-size: cover;
    background-position: center;
}

.place-image-1 {
    background-image: url('../images/bezisten.jpg');
}

.place-image-2 {
    background-image: url('../images/kabile.jpg');
}

.place-image-3 {
    background-image: url('../images/museum.jpg');
}

.place-tag {
    position: absolute;

    top: 18px;
    left: 18px;

    background: rgba(255,255,255,.92);

    padding: 7px 12px;

    border-radius: 100px;

    font-size: 11px;
    font-weight: 800;
}

.place-body {
    padding: 25px;
}

.place-body h3 {
    font-size: 22px;
    margin-bottom: 10px;
}

.place-body p {
    color: var(--muted);
    font-size: 14px;

    margin-bottom: 18px;
}

.place-body a {
    font-size: 13px;
    font-weight: 800;

    color: var(--primary);
}


/* EVENTS */

.events-list {
    border-top: 1px solid var(--border);
}

.event-card {
    display: grid;

    grid-template-columns:
        100px
        1fr
        120px;

    align-items: center;

    gap: 25px;

    padding: 24px 0;

    border-bottom: 1px solid var(--border);
}

.event-date {
    width: 70px;
    height: 70px;

    background: var(--primary);

    color: #fff;

    border-radius: 14px;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.event-date strong {
    font-size: 26px;
    line-height: 1;
}

.event-date span {
    font-size: 11px;
    opacity: .7;
}

.event-type {
    font-size: 11px;
    font-weight: 800;

    text-transform: uppercase;

    color: var(--accent);
}

.event-info h3 {
    font-size: 19px;

    margin: 3px 0 5px;
}

.event-info p {
    color: var(--muted);
    font-size: 13px;
}

.event-time {
    text-align: right;

    font-size: 18px;
    font-weight: 800;
}


/* BUSINESS */

.business-section {
    background: var(--primary);
    color: #fff;

    padding: 70px 0;
}

.business-section .btn {
    min-width: 170px;
}

.business-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;

    gap: 40px;
}

.business-inner h2 {
    font-size: 40px;

    letter-spacing: -2px;

    margin-bottom: 12px;
}

.business-inner p {
    max-width: 640px;

    color: rgba(255,255,255,.72);
}

.section-eyebrow.light {
    color: #e6b775;
}


/* FOOTER */

.site-footer {
    background: #101914;
    color: #fff;

    padding-top: 70px;
}

.footer-grid {
    display: grid;

    grid-template-columns: 2fr 1fr 1fr 1fr;

    gap: 70px;
}

.footer-logo {
    font-size: 27px;
    font-weight: 800;

    margin-bottom: 16px;
}

.footer-brand p {
    max-width: 370px;

    font-size: 14px;

    color: rgba(255,255,255,.55);
}

.footer-grid h4 {
    font-size: 14px;

    margin-bottom: 17px;
}

.footer-grid a {
    display: block;

    font-size: 13px;

    color: rgba(255,255,255,.6);

    margin-bottom: 10px;
}

.footer-grid a:hover {
    color: #fff;
}

.footer-bottom {
    margin-top: 60px;

    min-height: 70px;

    border-top:
        1px solid rgba(255,255,255,.08);

    display: flex;
    align-items: center;
    justify-content: space-between;

    color: rgba(255,255,255,.4);

    font-size: 12px;
}


/* RESPONSIVE */

@media (max-width: 1100px) {

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

}

@media (max-width: 850px) {

    .main-nav {
        display: none;
    }

    .menu-toggle {
        display: block;
    }

    .search-box {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .places-grid {
        grid-template-columns: 1fr;
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
    }

}

@media (max-width: 600px) {

    .container {
        width: min(calc(100% - 30px), var(--container));
    }

    .hero {
        min-height: 570px;
    }

    .hero h1 {
        letter-spacing: -3px;
    }

    .category-grid {
        grid-template-columns: 1fr 1fr;
    }

    .search-form {
        flex-direction: column;
    }

    .search-form input {
        min-height: 48px;
    }

    .event-card {
        grid-template-columns: 70px 1fr;
    }

    .event-time {
        display: none;
    }

    .business-inner {
        align-items: flex-start;
        flex-direction: column;
    }

    .footer-grid {
        grid-template-columns: 1fr;
    }

}

@media (max-width: 850px) {

    .main-nav.is-open {
        display: flex;

        position: absolute;

        top: 122px;
        left: 15px;
        right: 15px;

        flex-direction: column;
        align-items: flex-start;

        gap: 0;

        padding: 16px;

        background: #fff;

        border-radius: 14px;

        box-shadow:
            0 15px 40px rgba(0,0,0,.12);
    }

    .main-nav.is-open a {
        width: 100%;

        padding: 13px 10px;

        border-bottom: 1px solid var(--border);
    }

}

/* =====================================================
   PACKAGE 1.1
   ===================================================== */


/* STICKY HEADER */

.header-main-wrap {
    position: sticky;
    top: 0;
    z-index: 1000;

    background: rgba(255,255,255,.96);

    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);

    border-bottom: 1px solid transparent;

    transition:
        box-shadow .25s ease,
        border-color .25s ease;
}

.site-header.header-scrolled .header-main-wrap {
    box-shadow: 0 8px 30px rgba(13, 37, 27, .08);
    border-bottom-color: var(--border);
}


/* HEADER TOP */

.header-top {
    max-height: 38px;
    overflow: hidden;

    transition:
        max-height .3s ease,
        opacity .25s ease;
}

.site-header.header-scrolled .header-top {
    max-height: 0;
    opacity: 0;
}


/* COMPACT HEADER */

.header-main {
    min-height: 84px;

    transition: min-height .3s ease;
}

.site-header.header-scrolled .header-main {
    min-height: 68px;
}


/* ACTIVE NAVIGATION */

.main-nav a {
    position: relative;
}

.main-nav a::after {
    content: "";

    position: absolute;

    left: 0;
    right: 0;
    bottom: -10px;

    height: 2px;

    background: var(--accent);

    transform: scaleX(0);
    transform-origin: center;

    transition: transform .2s ease;
}

.main-nav a:hover::after,
.main-nav a.active::after {
    transform: scaleX(1);
}

.main-nav a.active {
    color: var(--primary);
}


/* MOBILE MENU BUTTON */

.menu-toggle {
    width: 44px;
    height: 44px;

    align-items: center;
    justify-content: center;
    flex-direction: column;

    gap: 5px;

    cursor: pointer;
}

.menu-toggle span {
    display: block;

    width: 21px;
    height: 2px;

    background: var(--primary);

    border-radius: 2px;

    transition:
        transform .25s ease,
        opacity .25s ease;
}

.menu-toggle.is-open span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.menu-toggle.is-open span:nth-child(2) {
    opacity: 0;
}

.menu-toggle.is-open span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}


/* CATEGORY ICONS */

.category-icon {
    width: 42px;
    height: 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin-bottom: 22px;

    border-radius: 12px;

    background: var(--soft);

    transition:
        background .25s ease,
        transform .25s ease;
}

.category-icon svg {
    width: 23px;
    height: 23px;

    fill: none;

    stroke: var(--primary);

    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.category-card:hover .category-icon {
    background: rgba(214, 159, 84, .16);

    transform: translateY(-2px);
}


/* PLACE CARDS */

.place-card {
    display: block;
}

.place-image {
    overflow: hidden;
}

.place-card:hover {
    transform: translateY(-5px);

    box-shadow:
        0 18px 45px rgba(20, 40, 30, .10);
}

.place-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;

    color: var(--primary);

    font-size: 13px;
    font-weight: 800;

    transition: color .2s ease;
}

.place-arrow {
    display: inline-block;
    transition: transform .2s ease;
}

.place-card:hover .place-link {
    color: var(--accent);
}

.place-card:hover .place-arrow {
    transform: translateX(5px);
}


/* HERO POLISH */

.hero-overlay {
    background: linear-gradient(
        90deg,
        rgba(8, 29, 21, .84) 0%,
        rgba(8, 29, 21, .62) 34%,
        rgba(8, 29, 21, .28) 65%,
        rgba(8, 29, 21, .08) 100%
    );
}


/* SEARCH */

.search-form input::placeholder {
    color: #8e9691;
}


/* SCROLL TOP */

.scroll-top {
    position: fixed;

    right: 26px;
    bottom: 26px;

    width: 46px;
    height: 46px;

    border: 0;
    border-radius: 50%;

    background: var(--primary);
    color: #fff;

    font-size: 20px;
    font-weight: 700;

    cursor: pointer;

    opacity: 0;
    visibility: hidden;

    transform: translateY(10px);

    box-shadow:
        0 10px 28px rgba(16, 41, 31, .22);

    transition:
        opacity .25s ease,
        visibility .25s ease,
        transform .25s ease,
        background .2s ease;

    z-index: 1200;
}

.scroll-top:hover {
    background: var(--accent);
}

.scroll-top.is-visible {
    opacity: 1;
    visibility: visible;

    transform: translateY(0);
}


/* MOBILE */

@media (max-width: 850px) {

    .header-main-wrap {
        position: sticky;
        top: 0;
    }

    .main-nav.is-open {
        top: calc(100% + 8px);
    }

    .header-main {
        position: relative;
    }

    .menu-toggle {
        display: flex;
    }

}


@media (max-width: 600px) {

    .scroll-top {
        right: 16px;
        bottom: 16px;

        width: 44px;
        height: 44px;
    }

}

.event-card {
    color: inherit;

    transition:
        background .2s ease,
        padding-left .2s ease,
        padding-right .2s ease;
}

.event-card:hover {
    background: rgba(24, 57, 43, .035);

    padding-left: 14px;
    padding-right: 14px;
}

/* =====================================================
   PACKAGE 2 - PLACES
   ===================================================== */

.page-hero {
    position: relative;

    min-height: 420px;

    display: flex;
    align-items: center;

    background-size: cover;
    background-position: center;

    color: #fff;
}

.page-hero-places {
    background-image:
        url('../images/hero-yambol.jpg');
}

.page-hero-overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            90deg,
            rgba(8,29,21,.88) 0%,
            rgba(8,29,21,.63) 45%,
            rgba(8,29,21,.22) 100%
        );
}

.page-hero-content {
    position: relative;
    z-index: 2;

    padding-top: 50px;
    padding-bottom: 50px;
}

.page-hero-eyebrow {
    display: block;

    color: var(--accent);

    font-size: 12px;
    font-weight: 800;
    letter-spacing: 2px;

    margin-bottom: 14px;
}

.page-hero h1 {
    font-size: clamp(48px, 6vw, 76px);
    line-height: 1;

    letter-spacing: -3px;

    margin-bottom: 20px;
}

.page-hero p {
    max-width: 650px;

    color: rgba(255,255,255,.78);

    font-size: 17px;
}


/* TOOLBAR */

.places-toolbar-section {
    position: relative;
    z-index: 5;

    margin-top: -42px;
}

.places-toolbar {
    background: #fff;

    border-radius: 18px;

    box-shadow:
        0 18px 45px rgba(20,40,30,.10);

    padding: 22px;

    display: flex;
    align-items: center;
    gap: 25px;

    flex-wrap: wrap;
}

.places-search {
    width: 320px;
    min-height: 50px;

    background: var(--soft);

    border-radius: 12px;

    display: flex;
    align-items: center;

    padding: 0 16px;
}

.places-search svg {
    width: 20px;
    height: 20px;

    fill: none;
    stroke: var(--primary);

    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;

    flex-shrink: 0;
}

.places-search input {
    width: 100%;

    margin-left: 10px;

    border: 0;
    outline: 0;

    background: transparent;

    font: inherit;
}

.places-filter {
    display: flex;
    align-items: center;

    gap: 8px;

    flex-wrap: wrap;
}

.filter-btn {
    min-height: 42px;

    padding: 0 16px;

    border: 1px solid var(--border);
    border-radius: 100px;

    background: #fff;

    color: var(--text);

    font-family: inherit;
    font-size: 13px;
    font-weight: 700;

    cursor: pointer;

    transition:
        background .2s ease,
        color .2s ease,
        border-color .2s ease;
}

.filter-btn:hover {
    border-color: var(--primary);
}

.filter-btn.active {
    background: var(--primary);
    border-color: var(--primary);

    color: #fff;
}


/* CATALOG HEADING */

.places-catalog-section {
    padding-top: 85px;
}

.places-catalog-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 30px;

    margin-bottom: 35px;
}

.places-catalog-heading h2 {
    font-size: clamp(32px, 4vw, 46px);

    line-height: 1.1;
    letter-spacing: -2px;
}

.places-count {
    display: flex;
    align-items: baseline;

    gap: 7px;

    color: var(--muted);
}

.places-count strong {
    font-size: 24px;
    color: var(--primary);
}


/* CATALOG GRID */

.places-catalog-grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 24px;
}

.catalog-place-card {
    display: block;

    background: #fff;

    border: 1px solid var(--border);

    border-radius: 18px;

    overflow: hidden;

    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}

.catalog-place-card:hover {
    border-color:
        rgba(214,159,84,.65);

    box-shadow:
        0 16px 38px rgba(20,40,30,.08);
}

.catalog-place-image {
    position: relative;

    height: 245px;

    background-size: cover;
    background-position: center;

    overflow: hidden;
}

.catalog-place-category {
    position: absolute;

    top: 16px;
    left: 16px;

    padding: 7px 11px;

    border-radius: 100px;

    background: rgba(255,255,255,.94);

    color: var(--primary);

    font-size: 10px;
    font-weight: 800;
}

.catalog-placeholder-image {
    background:
        linear-gradient(
            135deg,
            #edf1ee,
            #dde5df
        );

    display: flex;
    align-items: center;
    justify-content: center;
}

.catalog-placeholder-text {
    color: #99a59e;

    font-size: 13px;
    font-weight: 700;
}

.catalog-place-body {
    padding: 24px;
}

.catalog-place-body h3 {
    font-size: 21px;
    line-height: 1.25;

    margin-bottom: 10px;
}

.catalog-place-body p {
    min-height: 68px;

    color: var(--muted);

    font-size: 13px;

    margin-bottom: 20px;
}

.catalog-place-footer {
    padding-top: 16px;

    border-top: 1px solid var(--border);

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 15px;

    color: var(--primary);

    font-size: 12px;
    font-weight: 700;
}

.catalog-place-arrow {
    font-size: 17px;

    transition: transform .2s ease;
}

.catalog-place-card:hover
.catalog-place-arrow {
    transform: translateX(5px);
}


/* EMPTY */

.places-empty {
    display: none;

    padding: 70px 20px;

    text-align: center;
}

.places-empty h3 {
    font-size: 24px;

    margin-bottom: 8px;
}

.places-empty p {
    color: var(--muted);
}


/* DISCOVER BANNER */

.places-discover-banner {
    background: var(--primary);

    color: #fff;

    padding: 65px 0;
}

.places-discover-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 40px;
}

.places-discover-inner h2 {
    font-size: 36px;

    letter-spacing: -1.5px;

    margin-bottom: 10px;
}

.places-discover-inner p {
    color: rgba(255,255,255,.68);

    max-width: 620px;
}


/* RESPONSIVE */

@media (max-width: 1100px) {

    .places-catalog-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}


@media (max-width: 850px) {

    .page-hero {
        min-height: 360px;
    }

    .places-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .places-search {
        width: 100%;
    }

    .places-discover-inner {
        flex-direction: column;
        align-items: flex-start;
    }

}


@media (max-width: 650px) {

    .page-hero h1 {
        letter-spacing: -2px;
    }

    .places-toolbar-section {
        margin-top: -25px;
    }

    .places-filter {
        flex-wrap: nowrap;

        overflow-x: auto;

        padding-bottom: 4px;
    }

    .filter-btn {
        flex: 0 0 auto;
    }

    .places-catalog-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .places-catalog-grid {
        grid-template-columns: 1fr;
    }

    .catalog-place-image {
        height: 220px;
    }

}

/* =====================================================
   PACKAGE 2.1 - PLACE DETAIL
   ===================================================== */

.place-detail-hero {
    position: relative;

    min-height: 560px;

    display: flex;
    align-items: flex-end;

    color: #fff;

    overflow: hidden;
}

.place-detail-hero-image {
    position: absolute;
    inset: 0;

    background-size: cover;
    background-position: center;
}

.place-detail-hero-overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            180deg,
            rgba(7, 24, 17, .10) 0%,
            rgba(7, 24, 17, .30) 40%,
            rgba(7, 24, 17, .88) 100%
        );
}

.place-detail-hero-content {
    position: relative;
    z-index: 2;

    padding-top: 100px;
    padding-bottom: 62px;
}

.place-back-link {
    display: inline-flex;

    margin-bottom: 26px;

    color: rgba(255,255,255,.78);

    font-size: 13px;
    font-weight: 700;
}

.place-back-link:hover {
    color: #fff;
}

.place-detail-category {
    display: inline-block;

    padding: 7px 12px;

    margin-bottom: 14px;

    background: rgba(255,255,255,.92);
    color: var(--primary);

    border-radius: 100px;

    font-size: 11px;
    font-weight: 800;
}

.place-detail-hero h1 {
    max-width: 900px;

    font-size: clamp(48px, 7vw, 86px);

    line-height: .98;
    letter-spacing: -4px;

    margin-bottom: 20px;
}

.place-detail-hero p {
    max-width: 680px;

    font-size: 18px;

    color: rgba(255,255,255,.82);
}

.place-hero-meta {
    margin-top: 24px;

    font-size: 14px;
    font-weight: 700;
}


/* QUICK INFO */

.place-quick-info {
    position: relative;
    z-index: 4;

    margin-top: -32px;
}

.place-info-grid {
    display: grid;

    grid-template-columns:
        1.2fr
        1.2fr
        .8fr
        auto;

    gap: 10px;

    padding: 16px;

    background: #fff;

    border-radius: 18px;

    box-shadow:
        0 18px 45px rgba(20,40,30,.11);
}

.place-info-item {
    min-height: 84px;

    padding: 14px;

    display: flex;
    align-items: center;

    gap: 13px;

    border-right: 1px solid var(--border);
}

.place-info-icon {
    width: 42px;
    height: 42px;

    flex: 0 0 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 11px;

    background: var(--soft);
}

.place-info-icon svg {
    width: 21px;
    height: 21px;

    fill: none;

    stroke: var(--primary);

    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.place-info-item span {
    display: block;

    margin-bottom: 3px;

    color: var(--muted);

    font-size: 11px;
}

.place-info-item strong {
    display: block;

    font-size: 13px;
}

.place-info-actions {
    display: flex;
    align-items: center;

    padding-left: 10px;
}


/* CONTENT */

.place-content-section {
    padding-top: 100px;
}

.place-content-layout {
    display: grid;

    grid-template-columns:
        minmax(0, 1.7fr)
        minmax(300px, .7fr);

    gap: 80px;
}

.place-main-content h2 {
    font-size: clamp(36px, 4vw, 50px);

    line-height: 1.1;
    letter-spacing: -2px;

    margin-bottom: 24px;
}

.place-main-content > p {
    max-width: 780px;

    color: #4f5a54;

    font-size: 16px;

    line-height: 1.85;

    margin-bottom: 20px;
}

.place-main-content .place-lead {
    color: var(--text);

    font-size: 19px;
    line-height: 1.75;
}


/* HIGHLIGHT */

.place-highlight-box {
    max-width: 780px;

    margin: 38px 0;

    padding: 24px;

    display: flex;
    gap: 18px;

    background: var(--soft);

    border-radius: 15px;
}

.place-highlight-icon {
    width: 42px;
    height: 42px;

    flex: 0 0 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: var(--primary);
    color: #fff;

    border-radius: 50%;
}

.place-highlight-box strong {
    display: block;

    margin-bottom: 5px;

    font-size: 15px;
}

.place-highlight-box p {
    color: var(--muted);

    font-size: 13px;
}


/* SUBSECTION */

.place-content-subsection {
    max-width: 780px;

    margin-top: 50px;
}

.place-content-subsection h3 {
    font-size: 28px;

    margin-bottom: 24px;
}

.place-reasons-grid {
    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 14px;
}

.place-reason {
    padding: 22px;

    border: 1px solid var(--border);

    border-radius: 14px;
}

.place-reason strong {
    display: block;

    margin-bottom: 8px;
}

.place-reason span {
    color: var(--muted);

    font-size: 13px;
}


/* SIDEBAR */

.place-sidebar {
    display: flex;
    flex-direction: column;

    gap: 18px;
}

.place-sidebar-card {
    padding: 26px;

    border: 1px solid var(--border);

    border-radius: 18px;

    background: #fff;
}

.place-sidebar-label {
    display: block;

    margin-bottom: 8px;

    color: var(--accent);

    font-size: 10px;
    font-weight: 800;

    letter-spacing: 1.5px;
}

.place-sidebar-card h3 {
    margin-bottom: 22px;

    font-size: 21px;
}

.place-sidebar-card > p {
    color: var(--muted);

    font-size: 13px;

    margin-bottom: 18px;
}

.place-sidebar-row {
    display: flex;

    gap: 12px;

    padding: 15px 0;

    border-top: 1px solid var(--border);
}

.place-sidebar-row small {
    display: block;

    margin-bottom: 3px;

    color: var(--muted);
}

.place-sidebar-row strong {
    font-size: 13px;
}

.place-sidebar-map-btn {
    min-height: 48px;

    margin-top: 12px;

    padding: 0 16px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    background: var(--primary);

    border-radius: 11px;

    color: #fff;

    font-size: 13px;
    font-weight: 800;
}

.place-sidebar-map-btn span {
    transition: transform .2s ease;
}

.place-sidebar-map-btn:hover span {
    transform: translateX(5px);
}

.place-share-btn {
    width: 100%;

    min-height: 46px;

    border: 1px solid var(--border);
    border-radius: 10px;

    background: #fff;

    color: var(--primary);

    font-family: inherit;
    font-weight: 800;

    cursor: pointer;
}

.place-share-btn:hover {
    border-color: var(--primary);
}


/* 404 */

.place-not-found {
    min-height: 500px;

    display: flex;
    align-items: center;
}

.place-not-found h1 {
    font-size: 50px;

    letter-spacing: -2px;

    margin-bottom: 15px;
}

.place-not-found p {
    color: var(--muted);

    margin-bottom: 25px;
}


/* RESPONSIVE */

@media (max-width: 1050px) {

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

    .place-info-item {
        border-right: 0;
    }

    .place-info-actions {
        padding: 0;
    }

    .place-content-layout {
        grid-template-columns: 1fr;

        gap: 50px;
    }

    .place-sidebar {
        display: grid;

        grid-template-columns: 1fr 1fr;
    }

}


@media (max-width: 700px) {

    .place-detail-hero {
        min-height: 500px;
    }

    .place-detail-hero h1 {
        letter-spacing: -2px;
    }

    .place-info-grid {
        grid-template-columns: 1fr;
    }

    .place-info-item {
        border-bottom: 1px solid var(--border);
    }

    .place-info-actions .btn {
        width: 100%;
    }

    .place-reasons-grid {
        grid-template-columns: 1fr;
    }

    .place-sidebar {
        grid-template-columns: 1fr;
    }

}

/* =====================================================
   PACKAGE 3 - RESTAURANTS
   ===================================================== */

.page-hero-food {
    background-image:
        url('../images/hero-food.jpg');
}


/* TOOLBAR */

.restaurants-toolbar-section {
    position: relative;
    z-index: 5;

    margin-top: -42px;
}

.restaurants-toolbar {
    padding: 22px;

    display: flex;
    align-items: center;
    gap: 25px;

    flex-wrap: wrap;

    background: #fff;

    border-radius: 18px;

    box-shadow:
        0 18px 45px rgba(20,40,30,.10);
}

.restaurants-search {
    width: 320px;

    min-height: 50px;

    display: flex;
    align-items: center;

    padding: 0 16px;

    background: var(--soft);

    border-radius: 12px;
}

.restaurants-search svg {
    width: 20px;
    height: 20px;

    flex-shrink: 0;

    fill: none;
    stroke: var(--primary);

    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.restaurants-search input {
    width: 100%;

    margin-left: 10px;

    border: 0;
    outline: 0;

    background: transparent;

    font: inherit;
}

.restaurants-filter {
    display: flex;
    align-items: center;

    gap: 8px;

    flex-wrap: wrap;
}

.restaurant-filter-btn {
    min-height: 42px;

    padding: 0 16px;

    border: 1px solid var(--border);

    border-radius: 100px;

    background: #fff;

    color: var(--text);

    font-family: inherit;
    font-size: 13px;
    font-weight: 700;

    cursor: pointer;

    transition:
        border-color .2s ease,
        background .2s ease,
        color .2s ease;
}

.restaurant-filter-btn:hover {
    border-color: var(--primary);
}

.restaurant-filter-btn.active {
    background: var(--primary);
    border-color: var(--primary);

    color: #fff;
}


/* HEADING */

.restaurants-catalog-section {
    padding-top: 85px;
}

.restaurants-catalog-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 30px;

    margin-bottom: 35px;
}

.restaurants-catalog-heading h2 {
    font-size: clamp(32px, 4vw, 46px);

    line-height: 1.1;
    letter-spacing: -2px;
}

.restaurants-count {
    display: flex;
    align-items: baseline;

    gap: 7px;

    color: var(--muted);
}

.restaurants-count strong {
    color: var(--primary);

    font-size: 24px;
}


/* GRID */

.restaurants-grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 24px;
}

.restaurant-card {
    display: block;

    overflow: hidden;

    background: #fff;

    border: 1px solid var(--border);

    border-radius: 18px;

    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}

.restaurant-card:hover {
    border-color:
        rgba(214,159,84,.65);

    box-shadow:
        0 16px 38px rgba(20,40,30,.08);
}

.restaurant-image {
    position: relative;

    height: 245px;

    background-size: cover;
    background-position: center;
}

.restaurant-category {
    position: absolute;

    top: 16px;
    left: 16px;

    padding: 7px 11px;

    background:
        rgba(255,255,255,.94);

    color: var(--primary);

    border-radius: 100px;

    font-size: 10px;
    font-weight: 800;
}

.restaurant-featured {
    position: absolute;

    top: 16px;
    right: 16px;

    padding: 7px 11px;

    background: var(--accent);
    color: #fff;

    border-radius: 100px;

    font-size: 10px;
    font-weight: 800;
}

.restaurant-body {
    padding: 24px;
}

.restaurant-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 15px;

    margin-bottom: 5px;
}

.restaurant-title-row h3 {
    font-size: 21px;
    line-height: 1.25;
}

.restaurant-price {
    flex: 0 0 auto;

    color: var(--accent);

    font-size: 13px;
    font-weight: 800;
}

.restaurant-cuisine {
    min-height: 22px;

    color: var(--muted);

    font-size: 12px;

    margin-bottom: 16px;
}


/* STATUS */

.restaurant-actions {
    min-height: 30px;

    display: flex;
    align-items: center;

    gap: 8px;

    flex-wrap: wrap;

    margin-bottom: 18px;
}

.restaurant-open,
.restaurant-closed,
.restaurant-menu {
    display: inline-flex;
    align-items: center;

    min-height: 26px;

    padding: 0 9px;

    border-radius: 100px;

    font-size: 10px;
    font-weight: 800;
}

.restaurant-open {
    background: #eaf5ee;
    color: #257144;
}

.restaurant-closed {
    background: #f6eded;
    color: #a64343;
}

.restaurant-menu {
    background: var(--soft);
    color: var(--primary);
}


/* FOOTER */

.restaurant-footer {
    padding-top: 16px;

    border-top: 1px solid var(--border);

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 15px;

    color: var(--primary);

    font-size: 12px;
    font-weight: 700;
}

.restaurant-arrow {
    font-size: 17px;

    transition: transform .2s ease;
}

.restaurant-card:hover .restaurant-arrow {
    transform: translateX(5px);
}


/* EMPTY */

.restaurants-empty {
    display: none;

    padding: 70px 20px;

    text-align: center;
}

.restaurants-empty h3 {
    font-size: 24px;

    margin-bottom: 8px;
}

.restaurants-empty p {
    color: var(--muted);
}


/* BUSINESS BANNER */

.restaurant-business-banner {
    padding: 65px 0;

    background: var(--primary);

    color: #fff;
}

.restaurant-business-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 40px;
}

.restaurant-business-inner h2 {
    margin-bottom: 10px;

    font-size: 36px;

    letter-spacing: -1.5px;
}

.restaurant-business-inner p {
    max-width: 650px;

    color: rgba(255,255,255,.68);
}


/* RESPONSIVE */

@media (max-width: 1100px) {

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

}


@media (max-width: 850px) {

    .restaurants-toolbar {
        flex-direction: column;

        align-items: stretch;
    }

    .restaurants-search {
        width: 100%;
    }

    .restaurant-business-inner {
        flex-direction: column;

        align-items: flex-start;
    }

}


@media (max-width: 650px) {

    .restaurants-toolbar-section {
        margin-top: -25px;
    }

    .restaurants-filter {
        flex-wrap: nowrap;

        overflow-x: auto;

        padding-bottom: 4px;
    }

    .restaurant-filter-btn {
        flex: 0 0 auto;
    }

    .restaurants-catalog-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .restaurants-grid {
        grid-template-columns: 1fr;
    }

    .restaurant-image {
        height: 220px;
    }

}

/* =====================================================
   PACKAGE 3.0.1 - RESTAURANT TOOLS + PAGINATION
   ===================================================== */

.restaurants-catalog-heading-actions {
    align-items: flex-end;
}

.restaurants-heading-tools {
    display: flex;
    align-items: center;
    justify-content: flex-end;

    gap: 14px;

    flex-wrap: wrap;
}

.restaurant-sort-wrap {
    min-height: 44px;

    display: flex;
    align-items: center;

    gap: 8px;

    padding: 0 12px;

    border: 1px solid var(--border);
    border-radius: 10px;

    background: #fff;
}

.restaurant-sort-wrap label {
    color: var(--muted);

    font-size: 11px;
    font-weight: 700;
}

.restaurant-sort-wrap select {
    border: 0;
    outline: 0;

    background: transparent;

    color: var(--primary);

    font-family: inherit;
    font-size: 12px;
    font-weight: 800;

    cursor: pointer;
}

.restaurant-add-btn {
    min-height: 44px;

    padding: 0 16px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 7px;

    border-radius: 10px;

    background: var(--primary);
    color: #fff;

    font-size: 12px;
    font-weight: 800;

    transition:
        background .2s ease,
        transform .2s ease;
}

.restaurant-add-btn span {
    font-size: 18px;
    line-height: 1;
}

.restaurant-add-btn:hover {
    background: var(--accent);

    transform: translateY(-1px);
}


/* PAGINATION */

.restaurants-pagination {
    margin-top: 45px;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 7px;

    flex-wrap: wrap;
}

.pagination-btn {
    min-width: 42px;
    height: 42px;

    padding: 0 12px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border: 1px solid var(--border);
    border-radius: 10px;

    background: #fff;

    color: var(--primary);

    font-family: inherit;
    font-size: 12px;
    font-weight: 800;

    cursor: pointer;

    transition:
        background .2s ease,
        border-color .2s ease,
        color .2s ease;
}

.pagination-btn:hover {
    border-color: var(--primary);
}

.pagination-btn.active {
    background: var(--primary);
    border-color: var(--primary);

    color: #fff;
}

.pagination-btn:disabled {
    opacity: .35;

    cursor: not-allowed;
}


/* RESPONSIVE */

@media (max-width: 950px) {

    .restaurants-catalog-heading-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .restaurants-heading-tools {
        justify-content: flex-start;
    }

}

@media (max-width: 600px) {

    .restaurants-heading-tools {
        width: 100%;

        align-items: stretch;
        flex-direction: column;
    }

    .restaurant-sort-wrap {
        justify-content: space-between;
    }

    .restaurant-add-btn {
        width: 100%;
    }

}

/* =====================================================
   PACKAGE 3.1 - RESTAURANT DETAIL
   ===================================================== */

.restaurant-detail-hero {
    position: relative;

    min-height: 560px;

    display: flex;
    align-items: flex-end;

    overflow: hidden;

    color: #fff;
}

.restaurant-detail-image {
    position: absolute;
    inset: 0;

    background-size: cover;
    background-position: center;
}

.restaurant-detail-overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            180deg,
            rgba(7,24,17,.08) 0%,
            rgba(7,24,17,.28) 40%,
            rgba(7,24,17,.90) 100%
        );
}

.restaurant-detail-content {
    position: relative;
    z-index: 2;

    padding-top: 100px;
    padding-bottom: 60px;
}

.restaurant-back-link {
    display: inline-flex;

    margin-bottom: 25px;

    color: rgba(255,255,255,.78);

    font-size: 13px;
    font-weight: 700;
}

.restaurant-back-link:hover {
    color: #fff;
}

.restaurant-detail-badges {
    display: flex;
    align-items: center;

    gap: 8px;

    flex-wrap: wrap;

    margin-bottom: 14px;
}

.restaurant-detail-category,
.restaurant-detail-featured {
    display: inline-flex;
    align-items: center;

    min-height: 29px;

    padding: 0 11px;

    border-radius: 100px;

    font-size: 10px;
    font-weight: 800;
}

.restaurant-detail-category {
    background: rgba(255,255,255,.94);

    color: var(--primary);
}

.restaurant-detail-featured {
    background: var(--accent);

    color: #fff;
}

.restaurant-detail-title-row {
    display: flex;
    align-items: flex-end;

    gap: 18px;

    flex-wrap: wrap;
}

.restaurant-detail-title-row h1 {
    max-width: 900px;

    font-size: clamp(45px, 7vw, 82px);

    line-height: .98;
    letter-spacing: -4px;
}

.restaurant-detail-price {
    padding-bottom: 8px;

    color: #efbd78;

    font-size: 20px;
    font-weight: 800;
}

.restaurant-detail-cuisine {
    margin-top: 15px;

    color: rgba(255,255,255,.78);

    font-size: 16px;
}

.restaurant-detail-meta {
    margin-top: 24px;

    display: flex;
    align-items: center;

    gap: 14px;

    flex-wrap: wrap;

    font-size: 13px;
    font-weight: 700;
}

.restaurant-detail-open,
.restaurant-detail-closed {
    display: inline-flex;
    align-items: center;

    min-height: 27px;

    padding: 0 10px;

    border-radius: 100px;
}

.restaurant-detail-open {
    background: #e8f5eb;
    color: #227341;
}

.restaurant-detail-closed {
    background: #f5e7e7;
    color: #a13d3d;
}


/* ACTION BAR */

.restaurant-action-section {
    position: relative;
    z-index: 5;

    margin-top: -28px;
}

.restaurant-action-bar {
    padding: 16px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 25px;

    background: #fff;

    border-radius: 18px;

    box-shadow:
        0 18px 45px rgba(20,40,30,.11);
}

.restaurant-action-info {
    display: flex;
    align-items: center;

    gap: 25px;
}

.restaurant-action-item {
    min-width: 150px;
}

.restaurant-action-label {
    display: block;

    margin-bottom: 3px;

    color: var(--muted);

    font-size: 10px;
}

.restaurant-action-item strong {
    font-size: 13px;
}

.restaurant-action-buttons {
    display: flex;
    align-items: center;

    gap: 8px;

    flex-wrap: wrap;
}

.restaurant-action-btn {
    min-height: 46px;

    padding: 0 16px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 7px;

    border-radius: 10px;

    font-size: 12px;
    font-weight: 800;

    transition:
        background .2s ease,
        color .2s ease;
}

.restaurant-menu-btn {
    background: var(--accent);
    color: #fff;
}

.restaurant-menu-btn:hover {
    background: #be8841;
}

.restaurant-reservation-btn {
    background: var(--primary);
    color: #fff;
}

.restaurant-directions-btn {
    border: 1px solid var(--border);

    background: #fff;

    color: var(--primary);
}

.restaurant-directions-btn:hover {
    border-color: var(--primary);
}


/* CONTENT */

.restaurant-content-section {
    padding-top: 100px;
}

.restaurant-content-layout {
    display: grid;

    grid-template-columns:
        minmax(0, 1.7fr)
        minmax(300px, .7fr);

    gap: 80px;
}

.restaurant-main-content h2 {
    margin-bottom: 24px;

    font-size: clamp(36px, 4vw, 50px);

    line-height: 1.1;
    letter-spacing: -2px;
}

.restaurant-main-content > p {
    max-width: 780px;

    margin-bottom: 20px;

    color: #4f5a54;

    font-size: 16px;
    line-height: 1.85;
}

.restaurant-main-content .restaurant-lead {
    color: var(--text);

    font-size: 19px;
    line-height: 1.75;
}


/* AMENITIES */

.restaurant-amenities-section {
    max-width: 780px;

    margin-top: 48px;
}

.restaurant-amenities-section h3 {
    margin-bottom: 20px;

    font-size: 27px;
}

.restaurant-amenities-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 10px;
}

.restaurant-amenity {
    min-height: 50px;

    padding: 0 15px;

    display: flex;
    align-items: center;

    gap: 10px;

    border: 1px solid var(--border);

    border-radius: 11px;

    font-size: 13px;
    font-weight: 700;
}

.restaurant-amenity-check {
    width: 22px;
    height: 22px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 22px;

    background: #e9f4ec;
    color: #287046;

    border-radius: 50%;

    font-size: 11px;
}


/* MENU HIGHLIGHT */

.restaurant-menu-highlight {
    max-width: 780px;

    margin-top: 45px;

    padding: 28px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 30px;

    background: var(--soft);

    border-radius: 17px;
}

.restaurant-menu-highlight h3 {
    margin-bottom: 7px;

    font-size: 24px;
}

.restaurant-menu-highlight p {
    color: var(--muted);

    font-size: 13px;
}


/* SIDEBAR */

.restaurant-sidebar {
    display: flex;
    flex-direction: column;

    gap: 18px;
}

.restaurant-sidebar-card {
    padding: 26px;

    border: 1px solid var(--border);

    border-radius: 18px;

    background: #fff;
}

.restaurant-sidebar-label {
    display: block;

    margin-bottom: 8px;

    color: var(--accent);

    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.5px;
}

.restaurant-sidebar-card h3 {
    margin-bottom: 20px;

    font-size: 21px;
}

.restaurant-sidebar-card > p {
    margin-bottom: 18px;

    color: var(--muted);

    font-size: 13px;
}

.restaurant-sidebar-row {
    padding: 14px 0;

    border-top: 1px solid var(--border);
}

.restaurant-sidebar-row small {
    display: block;

    margin-bottom: 4px;

    color: var(--muted);
}

.restaurant-sidebar-row strong,
.restaurant-sidebar-row a {
    font-size: 13px;
    font-weight: 700;
}

.restaurant-sidebar-map-btn {
    min-height: 48px;

    margin-top: 12px;

    padding: 0 16px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    background: var(--primary);

    border-radius: 11px;

    color: #fff;

    font-size: 13px;
    font-weight: 800;
}

.restaurant-sidebar-map-btn span {
    transition: transform .2s ease;
}

.restaurant-sidebar-map-btn:hover span {
    transform: translateX(5px);
}

.restaurant-copy-btn {
    width: 100%;
    min-height: 46px;

    border: 1px solid var(--border);
    border-radius: 10px;

    background: #fff;

    color: var(--primary);

    font-family: inherit;
    font-weight: 800;

    cursor: pointer;
}

.restaurant-copy-btn:hover {
    border-color: var(--primary);
}


/* GALLERY */

.restaurant-gallery {
    display: grid;

    grid-template-columns: 2fr 1fr;

    grid-template-rows: repeat(2, 200px);

    gap: 15px;
}

.restaurant-gallery-main,
.restaurant-gallery-small {
    background-size: cover;
    background-position: center;

    border-radius: 16px;
}

.restaurant-gallery-main {
    grid-row: 1 / 3;
}


/* NOT FOUND */

.restaurant-not-found {
    min-height: 500px;

    display: flex;
    align-items: center;
}

.restaurant-not-found h1 {
    margin-bottom: 15px;

    font-size: 50px;
    letter-spacing: -2px;
}

.restaurant-not-found p {
    margin-bottom: 25px;

    color: var(--muted);
}


/* RESPONSIVE */

@media (max-width: 1050px) {

    .restaurant-action-bar {
        align-items: flex-start;
        flex-direction: column;
    }

    .restaurant-content-layout {
        grid-template-columns: 1fr;

        gap: 50px;
    }

    .restaurant-sidebar {
        display: grid;

        grid-template-columns: 1fr 1fr;
    }

}

@media (max-width: 700px) {

    .restaurant-detail-hero {
        min-height: 500px;
    }

    .restaurant-detail-title-row h1 {
        letter-spacing: -2px;
    }

    .restaurant-action-info {
        width: 100%;

        align-items: flex-start;
        flex-direction: column;

        gap: 12px;
    }

    .restaurant-action-buttons {
        width: 100%;
    }

    .restaurant-action-btn {
        flex: 1;
    }

    .restaurant-amenities-grid {
        grid-template-columns: 1fr;
    }

    .restaurant-menu-highlight {
        align-items: flex-start;
        flex-direction: column;
    }

    .restaurant-sidebar {
        grid-template-columns: 1fr;
    }

    .restaurant-gallery {
        grid-template-columns: 1fr;

        grid-template-rows: 260px 180px 180px;
    }

    .restaurant-gallery-main {
        grid-row: auto;
    }

}

/* =====================================================
   PACKAGE 3.2 - ADD RESTAURANT
   ===================================================== */

.add-business-section {
    background: #f8faf8;
}

.add-business-layout {
    display: grid;

    grid-template-columns:
        minmax(0, 1.65fr)
        minmax(300px, .65fr);

    gap: 60px;

    align-items: start;
}

.add-business-intro {
    margin-bottom: 35px;
}

.add-business-intro h2 {
    margin-bottom: 12px;

    font-size: clamp(34px, 4vw, 48px);

    line-height: 1.1;
    letter-spacing: -2px;
}

.add-business-intro p {
    max-width: 700px;

    color: var(--muted);

    font-size: 15px;
}


/* FORM */

.add-business-form {
    display: flex;
    flex-direction: column;

    gap: 20px;
}

.form-section {
    padding: 30px;

    background: #fff;

    border: 1px solid var(--border);
    border-radius: 18px;
}

.form-section-heading {
    display: flex;

    gap: 15px;

    margin-bottom: 26px;
}

.form-section-number {
    width: 38px;
    height: 38px;

    flex: 0 0 38px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 10px;

    background: var(--primary);

    color: #fff;

    font-size: 11px;
    font-weight: 800;
}

.form-section-heading h3 {
    margin-bottom: 3px;

    font-size: 21px;
}

.form-section-heading p {
    color: var(--muted);

    font-size: 12px;
}


/* GRID */

.form-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 18px;
}

.form-group {
    min-width: 0;
}

.form-group-full {
    grid-column: 1 / -1;
}

.form-group label {
    display: block;

    margin-bottom: 7px;

    color: var(--text);

    font-size: 12px;
    font-weight: 800;
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;

    border: 1px solid var(--border);
    border-radius: 10px;

    background: #fff;

    color: var(--text);

    font-family: inherit;
    font-size: 14px;

    outline: 0;

    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}

.form-group input,
.form-group select {
    min-height: 48px;

    padding: 0 13px;
}

.form-group textarea {
    resize: vertical;

    min-height: 160px;

    padding: 13px;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: var(--primary);

    box-shadow:
        0 0 0 3px rgba(24,57,43,.07);
}

.form-group.is-invalid input,
.form-group.is-invalid select,
.form-group.is-invalid textarea {
    border-color: #b74b4b;
}

.form-error {
    display: block;

    min-height: 16px;

    margin-top: 5px;

    color: #a84444;

    font-size: 10px;
}

.form-help {
    display: block;

    margin-top: 6px;

    color: var(--muted);

    font-size: 10px;
}

.textarea-meta {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 20px;
}

#descriptionCounter {
    margin-top: 5px;

    color: var(--muted);

    font-size: 10px;
}


/* AMENITIES */

.amenities-checkbox-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 10px;
}

.amenity-checkbox {
    min-height: 50px;

    padding: 0 14px;

    display: flex;
    align-items: center;

    gap: 10px;

    border: 1px solid var(--border);
    border-radius: 10px;

    cursor: pointer;

    font-size: 12px;
    font-weight: 700;

    transition:
        border-color .2s ease,
        background .2s ease;
}

.amenity-checkbox:hover {
    border-color: var(--primary);
}

.amenity-checkbox:has(input:checked) {
    border-color: var(--primary);

    background: var(--soft);
}

.amenity-checkbox input {
    accent-color: var(--primary);
}


/* UPLOAD */

.restaurant-upload-box {
    min-height: 180px;

    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;

    gap: 5px;

    border: 1px dashed #bfc8c2;
    border-radius: 14px;

    background: var(--soft);

    text-align: center;
}

.restaurant-upload-icon {
    width: 42px;
    height: 42px;

    margin-bottom: 5px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: var(--primary);

    color: #fff;

    font-size: 22px;
}

.restaurant-upload-box strong {
    font-size: 14px;
}

.restaurant-upload-box span {
    color: var(--muted);

    font-size: 11px;
}

.restaurant-upload-box small {
    margin-top: 8px;

    color: #9ba59f;

    font-size: 10px;
}


/* CONSENT */

.form-consent {
    padding: 22px;

    background: #fff;

    border: 1px solid var(--border);
    border-radius: 14px;
}

.form-consent label {
    display: flex;
    align-items: flex-start;

    gap: 11px;

    cursor: pointer;
}

.form-consent input {
    margin-top: 3px;

    accent-color: var(--primary);
}

.form-consent span {
    color: #4f5953;

    font-size: 12px;
    line-height: 1.6;
}


/* SUBMIT */

.form-submit-row {
    padding: 24px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 30px;

    background: var(--primary);

    border-radius: 16px;

    color: #fff;
}

.form-submit-row strong,
.form-submit-row span {
    display: block;
}

.form-submit-row strong {
    margin-bottom: 3px;

    font-size: 14px;
}

.form-submit-row span {
    color: rgba(255,255,255,.65);

    font-size: 11px;
}

.add-business-submit {
    flex: 0 0 auto;

    background: var(--accent);
}


/* SIDEBAR */

.add-business-sidebar {
    position: sticky;

    top: 100px;

    display: flex;
    flex-direction: column;

    gap: 18px;
}

.add-business-sidebar-card {
    padding: 27px;

    background: #fff;

    border: 1px solid var(--border);
    border-radius: 18px;
}

.add-business-sidebar-label {
    display: block;

    margin-bottom: 7px;

    color: var(--accent);

    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.4px;
}

.add-business-sidebar-card > h3 {
    margin-bottom: 22px;

    font-size: 22px;
}

.submission-step {
    display: flex;

    gap: 13px;

    padding: 16px 0;

    border-top: 1px solid var(--border);
}

.submission-step > strong {
    width: 30px;
    height: 30px;

    flex: 0 0 30px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: var(--soft);

    color: var(--primary);

    font-size: 11px;
}

.submission-step h4 {
    margin-bottom: 4px;

    font-size: 13px;
}

.submission-step p {
    color: var(--muted);

    font-size: 11px;
    line-height: 1.55;
}

.premium-preview {
    background: var(--primary);

    color: #fff;

    border-color: var(--primary);
}

.premium-preview p {
    margin-bottom: 16px;

    color: rgba(255,255,255,.68);

    font-size: 12px;
}

.premium-preview ul {
    padding-left: 18px;

    color: rgba(255,255,255,.85);

    font-size: 12px;
}

.premium-preview li {
    margin-bottom: 7px;
}


/* MODAL */

.submission-modal {
    position: fixed;
    inset: 0;

    z-index: 3000;

    display: none;
    align-items: center;
    justify-content: center;

    padding: 20px;
}

.submission-modal.is-visible {
    display: flex;
}

.submission-modal-backdrop {
    position: absolute;
    inset: 0;

    background: rgba(9,24,17,.72);

    backdrop-filter: blur(5px);
}

.submission-modal-card {
    position: relative;
    z-index: 2;

    width: min(100%, 470px);

    padding: 40px;

    background: #fff;

    border-radius: 20px;

    text-align: center;

    box-shadow:
        0 25px 80px rgba(0,0,0,.20);
}

.submission-success-icon {
    width: 58px;
    height: 58px;

    margin: 0 auto 18px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: var(--primary);

    color: #fff;

    font-size: 24px;
}

.submission-modal-card h2 {
    margin-bottom: 10px;

    font-size: 30px;
    letter-spacing: -1px;
}

.submission-modal-card p {
    margin-bottom: 24px;

    color: var(--muted);

    font-size: 13px;
}


/* RESPONSIVE */

@media (max-width: 1050px) {

    .add-business-layout {
        grid-template-columns: 1fr;
    }

    .add-business-sidebar {
        position: static;

        display: grid;

        grid-template-columns: 1fr 1fr;
    }

}

@media (max-width: 700px) {

    .form-grid {
        grid-template-columns: 1fr;
    }

    .form-group-full {
        grid-column: auto;
    }

    .amenities-checkbox-grid {
        grid-template-columns: 1fr;
    }

    .form-section {
        padding: 22px;
    }

    .form-submit-row {
        align-items: stretch;
        flex-direction: column;
    }

    .add-business-submit {
        width: 100%;
    }

    .add-business-sidebar {
        grid-template-columns: 1fr;
    }

    .submission-modal-card {
        padding: 30px 22px;
    }

}

/* =====================================================
   PACKAGE 4.0 - HOTELS
   ===================================================== */

.page-hero-hotels {
    background-image:
        url('../images/hero-hotels.jpg');
}


/* TOOLBAR */

.hotels-toolbar-section {
    position: relative;
    z-index: 5;

    margin-top: -42px;
}

.hotels-toolbar {
    padding: 22px;

    display: flex;
    align-items: center;
    gap: 25px;

    flex-wrap: wrap;

    background: #fff;

    border-radius: 18px;

    box-shadow:
        0 18px 45px rgba(20,40,30,.10);
}

.hotels-search {
    width: 340px;
    min-height: 50px;

    padding: 0 16px;

    display: flex;
    align-items: center;

    background: var(--soft);

    border-radius: 12px;
}

.hotels-search svg {
    width: 20px;
    height: 20px;

    flex-shrink: 0;

    fill: none;
    stroke: var(--primary);

    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.hotels-search input {
    width: 100%;

    margin-left: 10px;

    border: 0;
    outline: 0;

    background: transparent;

    font: inherit;
}

.hotels-filter {
    display: flex;
    align-items: center;

    gap: 8px;

    flex-wrap: wrap;
}

.hotel-filter-btn {
    min-height: 42px;

    padding: 0 16px;

    border: 1px solid var(--border);
    border-radius: 100px;

    background: #fff;

    color: var(--text);

    font-family: inherit;
    font-size: 13px;
    font-weight: 700;

    cursor: pointer;

    transition:
        border-color .2s ease,
        background .2s ease,
        color .2s ease;
}

.hotel-filter-btn:hover {
    border-color: var(--primary);
}

.hotel-filter-btn.active {
    background: var(--primary);
    border-color: var(--primary);

    color: #fff;
}


/* HEADING */

.hotels-catalog-section {
    padding-top: 85px;
}

.hotels-catalog-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 30px;

    margin-bottom: 35px;
}

.hotels-catalog-heading h2 {
    font-size: clamp(32px, 4vw, 46px);

    line-height: 1.1;
    letter-spacing: -2px;
}

.hotels-heading-tools {
    display: flex;
    align-items: center;
    justify-content: flex-end;

    gap: 14px;

    flex-wrap: wrap;
}

.hotels-count {
    display: flex;
    align-items: baseline;

    gap: 7px;

    color: var(--muted);
}

.hotels-count strong {
    color: var(--primary);

    font-size: 24px;
}


/* SORT */

.hotel-sort-wrap {
    min-height: 44px;

    padding: 0 12px;

    display: flex;
    align-items: center;

    gap: 8px;

    border: 1px solid var(--border);
    border-radius: 10px;

    background: #fff;
}

.hotel-sort-wrap label {
    color: var(--muted);

    font-size: 11px;
    font-weight: 700;
}

.hotel-sort-wrap select {
    border: 0;
    outline: 0;

    background: transparent;

    color: var(--primary);

    font-family: inherit;
    font-size: 12px;
    font-weight: 800;

    cursor: pointer;
}


/* ADD */

.hotel-add-btn {
    min-height: 44px;

    padding: 0 16px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 7px;

    background: var(--primary);
    color: #fff;

    border-radius: 10px;

    font-size: 12px;
    font-weight: 800;

    transition:
        background .2s ease,
        transform .2s ease;
}

.hotel-add-btn span {
    font-size: 18px;
}

.hotel-add-btn:hover {
    background: var(--accent);

    transform: translateY(-1px);
}


/* GRID */

.hotels-grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 24px;
}

.hotel-card {
    display: block;

    overflow: hidden;

    background: #fff;

    border: 1px solid var(--border);
    border-radius: 18px;

    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}

.hotel-card:hover {
    border-color:
        rgba(214,159,84,.65);

    box-shadow:
        0 16px 38px rgba(20,40,30,.08);
}

.hotel-image {
    position: relative;

    height: 245px;

    background-size: cover;
    background-position: center;
}

.hotel-category {
    position: absolute;

    top: 16px;
    left: 16px;

    padding: 7px 11px;

    border-radius: 100px;

    background: rgba(255,255,255,.94);

    color: var(--primary);

    font-size: 10px;
    font-weight: 800;
}

.hotel-featured {
    position: absolute;

    top: 16px;
    right: 16px;

    padding: 7px 11px;

    background: var(--accent);
    color: #fff;

    border-radius: 100px;

    font-size: 10px;
    font-weight: 800;
}

.hotel-body {
    padding: 24px;
}

.hotel-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 15px;

    margin-bottom: 9px;
}

.hotel-title-row h3 {
    font-size: 21px;
    line-height: 1.25;
}

.hotel-stars {
    flex: 0 0 auto;

    color: var(--accent);

    font-size: 11px;
    letter-spacing: 1px;
}

.hotel-description {
    min-height: 48px;

    margin-bottom: 15px;

    color: var(--muted);

    font-size: 12px;
    line-height: 1.6;
}

.hotel-features {
    min-height: 31px;

    display: flex;
    align-items: center;

    gap: 6px;

    flex-wrap: wrap;

    margin-bottom: 17px;
}

.hotel-features span {
    min-height: 25px;

    padding: 0 8px;

    display: inline-flex;
    align-items: center;

    border-radius: 100px;

    background: var(--soft);

    color: var(--primary);

    font-size: 9px;
    font-weight: 800;
}

.hotel-footer {
    padding-top: 16px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 15px;

    border-top: 1px solid var(--border);

    color: var(--primary);

    font-size: 12px;
    font-weight: 700;
}

.hotel-arrow {
    font-size: 17px;

    transition: transform .2s ease;
}

.hotel-card:hover .hotel-arrow {
    transform: translateX(5px);
}


/* EMPTY */

.hotels-empty {
    display: none;

    padding: 70px 20px;

    text-align: center;
}

.hotels-empty h3 {
    margin-bottom: 8px;

    font-size: 24px;
}

.hotels-empty p {
    color: var(--muted);
}


/* PAGINATION */

.hotels-pagination {
    margin-top: 45px;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 7px;

    flex-wrap: wrap;
}


/* BUSINESS BANNER */

.hotel-business-banner {
    padding: 65px 0;

    background: var(--primary);

    color: #fff;
}

.hotel-business-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 40px;
}

.hotel-business-inner h2 {
    margin-bottom: 10px;

    font-size: 36px;

    letter-spacing: -1.5px;
}

.hotel-business-inner p {
    max-width: 670px;

    color: rgba(255,255,255,.68);
}


/* RESPONSIVE */

@media (max-width: 1100px) {

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

}

@media (max-width: 950px) {

    .hotels-catalog-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .hotels-heading-tools {
        justify-content: flex-start;
    }

}

@media (max-width: 850px) {

    .hotels-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .hotels-search {
        width: 100%;
    }

    .hotel-business-inner {
        align-items: flex-start;
        flex-direction: column;
    }

}

@media (max-width: 650px) {

    .hotels-toolbar-section {
        margin-top: -25px;
    }

    .hotels-filter {
        flex-wrap: nowrap;

        overflow-x: auto;

        padding-bottom: 4px;
    }

    .hotel-filter-btn {
        flex: 0 0 auto;
    }

    .hotels-heading-tools {
        width: 100%;

        align-items: stretch;
        flex-direction: column;
    }

    .hotel-sort-wrap {
        justify-content: space-between;
    }

    .hotel-add-btn {
        width: 100%;
    }

    .hotels-grid {
        grid-template-columns: 1fr;
    }

    .hotel-image {
        height: 220px;
    }

}

/* =====================================================
   PACKAGE 4.1 - HOTEL DETAIL
   ===================================================== */

.hotel-detail-hero {
    position: relative;

    min-height: 560px;

    display: flex;
    align-items: flex-end;

    overflow: hidden;

    color: #fff;
}

.hotel-detail-image {
    position: absolute;
    inset: 0;

    background-size: cover;
    background-position: center;
}

.hotel-detail-overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            180deg,
            rgba(7,24,17,.08) 0%,
            rgba(7,24,17,.28) 40%,
            rgba(7,24,17,.90) 100%
        );
}

.hotel-detail-content {
    position: relative;
    z-index: 2;

    padding-top: 100px;
    padding-bottom: 60px;
}

.hotel-back-link {
    display: inline-flex;

    margin-bottom: 25px;

    color: rgba(255,255,255,.78);

    font-size: 13px;
    font-weight: 700;
}

.hotel-back-link:hover {
    color: #fff;
}

.hotel-detail-badges {
    display: flex;
    align-items: center;

    gap: 8px;

    flex-wrap: wrap;

    margin-bottom: 14px;
}

.hotel-detail-category,
.hotel-detail-featured {
    display: inline-flex;
    align-items: center;

    min-height: 29px;

    padding: 0 11px;

    border-radius: 100px;

    font-size: 10px;
    font-weight: 800;
}

.hotel-detail-category {
    background: rgba(255,255,255,.94);

    color: var(--primary);
}

.hotel-detail-featured {
    background: var(--accent);

    color: #fff;
}

.hotel-detail-title-row {
    display: flex;
    align-items: flex-end;

    gap: 18px;

    flex-wrap: wrap;
}

.hotel-detail-title-row h1 {
    max-width: 900px;

    font-size: clamp(45px, 7vw, 82px);

    line-height: .98;
    letter-spacing: -4px;
}

.hotel-detail-stars {
    padding-bottom: 8px;

    color: #efbd78;

    font-size: 17px;
    letter-spacing: 2px;
}

.hotel-detail-short {
    max-width: 680px;

    margin-top: 15px;

    color: rgba(255,255,255,.80);

    font-size: 16px;
}

.hotel-detail-meta {
    margin-top: 24px;

    font-size: 13px;
    font-weight: 700;
}


/* ACTION BAR */

.hotel-action-section {
    position: relative;
    z-index: 5;

    margin-top: -28px;
}

.hotel-action-bar {
    padding: 16px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 25px;

    background: #fff;

    border-radius: 18px;

    box-shadow:
        0 18px 45px rgba(20,40,30,.11);
}

.hotel-action-info {
    display: flex;
    align-items: center;

    gap: 25px;
}

.hotel-action-item {
    min-width: 135px;
}

.hotel-action-label {
    display: block;

    margin-bottom: 3px;

    color: var(--muted);

    font-size: 10px;
}

.hotel-action-item strong {
    font-size: 13px;
}

.hotel-action-buttons {
    display: flex;
    align-items: center;

    gap: 8px;

    flex-wrap: wrap;
}

.hotel-action-btn {
    min-height: 46px;

    padding: 0 17px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 10px;

    font-size: 12px;
    font-weight: 800;
}

.hotel-booking-btn {
    background: var(--accent);
    color: #fff;
}

.hotel-booking-btn:hover {
    background: #be8841;
}

.hotel-directions-btn {
    background: var(--primary);
    color: #fff;
}


/* CONTENT */

.hotel-content-section {
    padding-top: 100px;
}

.hotel-content-layout {
    display: grid;

    grid-template-columns:
        minmax(0, 1.7fr)
        minmax(300px, .7fr);

    gap: 80px;
}

.hotel-main-content h2 {
    margin-bottom: 24px;

    font-size: clamp(36px, 4vw, 50px);

    line-height: 1.1;
    letter-spacing: -2px;
}

.hotel-main-content > p {
    max-width: 780px;

    margin-bottom: 20px;

    color: #4f5a54;

    font-size: 16px;
    line-height: 1.85;
}

.hotel-main-content .hotel-lead {
    color: var(--text);

    font-size: 19px;
    line-height: 1.75;
}


/* AMENITIES */

.hotel-amenities-section {
    max-width: 780px;

    margin-top: 48px;
}

.hotel-amenities-section h3 {
    margin-bottom: 20px;

    font-size: 27px;
}

.hotel-amenities-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 10px;
}

.hotel-amenity {
    min-height: 50px;

    padding: 0 15px;

    display: flex;
    align-items: center;

    gap: 10px;

    border: 1px solid var(--border);
    border-radius: 11px;

    font-size: 13px;
    font-weight: 700;
}

.hotel-amenity-check {
    width: 22px;
    height: 22px;

    flex: 0 0 22px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #e9f4ec;
    color: #287046;

    font-size: 11px;
}


/* ROOMS */

.hotel-rooms-section {
    max-width: 780px;

    margin-top: 55px;
}

.hotel-section-heading {
    margin-bottom: 24px;
}

.hotel-section-heading h3 {
    margin-bottom: 7px;

    font-size: 29px;
}

.hotel-section-heading p {
    max-width: 620px;

    color: var(--muted);

    font-size: 13px;
}

.hotel-rooms-grid {
    display: flex;
    flex-direction: column;

    gap: 10px;
}

.hotel-room-card {
    min-height: 95px;

    padding: 20px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 25px;

    border: 1px solid var(--border);
    border-radius: 13px;
}

.hotel-room-card h4 {
    margin-bottom: 5px;

    font-size: 16px;
}

.hotel-room-card p {
    color: var(--muted);

    font-size: 12px;
}

.hotel-room-card > span {
    flex: 0 0 auto;

    padding: 6px 10px;

    border-radius: 100px;

    background: var(--soft);

    color: var(--primary);

    font-size: 10px;
    font-weight: 800;
}


/* BOOKING */

.hotel-booking-highlight {
    max-width: 780px;

    margin-top: 45px;

    padding: 28px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 30px;

    background: var(--soft);

    border-radius: 17px;
}

.hotel-booking-highlight h3 {
    margin-bottom: 7px;

    font-size: 24px;
}

.hotel-booking-highlight p {
    color: var(--muted);

    font-size: 13px;
}


/* SIDEBAR */

.hotel-sidebar {
    display: flex;
    flex-direction: column;

    gap: 18px;
}

.hotel-sidebar-card {
    padding: 26px;

    border: 1px solid var(--border);
    border-radius: 18px;

    background: #fff;
}

.hotel-sidebar-label {
    display: block;

    margin-bottom: 8px;

    color: var(--accent);

    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.5px;
}

.hotel-sidebar-card h3 {
    margin-bottom: 20px;

    font-size: 21px;
}

.hotel-sidebar-card > p {
    margin-bottom: 18px;

    color: var(--muted);

    font-size: 13px;
}

.hotel-sidebar-row {
    padding: 14px 0;

    border-top: 1px solid var(--border);
}

.hotel-sidebar-row small {
    display: block;

    margin-bottom: 4px;

    color: var(--muted);
}

.hotel-sidebar-row strong,
.hotel-sidebar-row a {
    font-size: 13px;
    font-weight: 700;
}

.hotel-sidebar-map-btn {
    min-height: 48px;

    margin-top: 12px;

    padding: 0 16px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    background: var(--primary);
    color: #fff;

    border-radius: 11px;

    font-size: 13px;
    font-weight: 800;
}

.hotel-sidebar-map-btn span {
    transition: transform .2s ease;
}

.hotel-sidebar-map-btn:hover span {
    transform: translateX(5px);
}

.hotel-copy-btn {
    width: 100%;
    min-height: 46px;

    border: 1px solid var(--border);
    border-radius: 10px;

    background: #fff;

    color: var(--primary);

    font-family: inherit;
    font-weight: 800;

    cursor: pointer;
}

.hotel-copy-btn:hover {
    border-color: var(--primary);
}


/* GALLERY */

.hotel-gallery {
    display: grid;

    grid-template-columns: 2fr 1fr;
    grid-template-rows: repeat(2, 200px);

    gap: 15px;
}

.hotel-gallery-main,
.hotel-gallery-small {
    background-size: cover;
    background-position: center;

    border-radius: 16px;
}

.hotel-gallery-main {
    grid-row: 1 / 3;
}


/* NOT FOUND */

.hotel-not-found {
    min-height: 500px;

    display: flex;
    align-items: center;
}

.hotel-not-found h1 {
    margin-bottom: 15px;

    font-size: 50px;
    letter-spacing: -2px;
}

.hotel-not-found p {
    margin-bottom: 25px;

    color: var(--muted);
}


/* RESPONSIVE */

@media (max-width: 1050px) {

    .hotel-action-bar {
        align-items: flex-start;
        flex-direction: column;
    }

    .hotel-content-layout {
        grid-template-columns: 1fr;

        gap: 50px;
    }

    .hotel-sidebar {
        display: grid;

        grid-template-columns: 1fr 1fr;
    }

}

@media (max-width: 700px) {

    .hotel-detail-hero {
        min-height: 500px;
    }

    .hotel-detail-title-row h1 {
        letter-spacing: -2px;
    }

    .hotel-action-info {
        width: 100%;

        align-items: flex-start;
        flex-direction: column;

        gap: 12px;
    }

    .hotel-action-buttons {
        width: 100%;
    }

    .hotel-action-btn {
        flex: 1;
    }

    .hotel-amenities-grid {
        grid-template-columns: 1fr;
    }

    .hotel-room-card {
        align-items: flex-start;
        flex-direction: column;

        gap: 12px;
    }

    .hotel-booking-highlight {
        align-items: flex-start;
        flex-direction: column;
    }

    .hotel-sidebar {
        grid-template-columns: 1fr;
    }

    .hotel-gallery {
        grid-template-columns: 1fr;
        grid-template-rows: 260px 180px 180px;
    }

    .hotel-gallery-main {
        grid-row: auto;
    }

}

/* =====================================================
   PACKAGE 4.2 - ADD HOTEL
   ===================================================== */

.page-hero-add-hotel {
    background-image:
        url('../images/hero-hotels.jpg');
}

.hotel-room-form-grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1.5fr)
        minmax(120px, .5fr);

    gap: 18px;
}

@media (max-width: 700px) {

    .hotel-room-form-grid {
        grid-template-columns: 1fr;
    }

}

/* =====================================================
   PACKAGE 5.0 - EVENTS
   ===================================================== */

.page-hero-events {
    background-image:
        url('../images/hero-events.jpg');
}


/* DATE FILTER */

.events-date-section {
    position: relative;
    z-index: 6;

    margin-top: -28px;
}

.events-date-bar {
    padding: 10px;

    display: flex;
    align-items: center;

    gap: 7px;

    background: var(--primary);

    border-radius: 14px;

    box-shadow:
        0 15px 40px rgba(20,40,30,.14);
}

.event-date-filter {
    min-height: 44px;

    padding: 0 18px;

    border: 0;
    border-radius: 9px;

    background: transparent;

    color: rgba(255,255,255,.70);

    font-family: inherit;
    font-size: 12px;
    font-weight: 800;

    cursor: pointer;

    transition:
        background .2s ease,
        color .2s ease;
}

.event-date-filter:hover {
    color: #fff;
}

.event-date-filter.active {
    background: #fff;

    color: var(--primary);
}


/* TOOLBAR */

.events-toolbar-section {
    padding-top: 24px;
}

.events-toolbar {
    padding: 20px;

    display: flex;
    align-items: center;

    gap: 22px;

    flex-wrap: wrap;

    background: #fff;

    border: 1px solid var(--border);
    border-radius: 16px;
}

.events-search {
    width: 310px;
    min-height: 48px;

    padding: 0 15px;

    display: flex;
    align-items: center;

    background: var(--soft);

    border-radius: 11px;
}

.events-search svg {
    width: 19px;
    height: 19px;

    flex-shrink: 0;

    fill: none;
    stroke: var(--primary);

    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.events-search input {
    width: 100%;

    margin-left: 10px;

    border: 0;
    outline: 0;

    background: transparent;

    font: inherit;
}

.events-filter {
    display: flex;
    align-items: center;

    gap: 7px;

    flex-wrap: wrap;
}

.event-filter-btn {
    min-height: 40px;

    padding: 0 14px;

    border: 1px solid var(--border);
    border-radius: 100px;

    background: #fff;

    font-family: inherit;
    font-size: 12px;
    font-weight: 700;

    cursor: pointer;
}

.event-filter-btn.active {
    background: var(--primary);
    border-color: var(--primary);

    color: #fff;
}


/* CATALOG */

.events-catalog-section {
    padding-top: 70px;
}

.events-catalog-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 30px;

    margin-bottom: 35px;
}

.events-catalog-heading h2 {
    font-size: clamp(32px, 4vw, 46px);

    line-height: 1.1;
    letter-spacing: -2px;
}

.events-heading-tools {
    display: flex;
    align-items: center;

    gap: 14px;

    flex-wrap: wrap;
}

.events-count {
    display: flex;
    align-items: baseline;

    gap: 7px;

    color: var(--muted);
}

.events-count strong {
    color: var(--primary);

    font-size: 24px;
}


/* SORT */

.event-sort-wrap {
    min-height: 44px;

    padding: 0 12px;

    display: flex;
    align-items: center;

    gap: 8px;

    border: 1px solid var(--border);
    border-radius: 10px;
}

.event-sort-wrap label {
    color: var(--muted);

    font-size: 11px;
    font-weight: 700;
}

.event-sort-wrap select {
    border: 0;
    outline: 0;

    background: transparent;

    color: var(--primary);

    font-family: inherit;
    font-size: 12px;
    font-weight: 800;
}


/* ADD */

.event-add-btn {
    min-height: 44px;

    padding: 0 16px;

    display: inline-flex;
    align-items: center;

    gap: 7px;

    background: var(--primary);

    color: #fff;

    border-radius: 10px;

    font-size: 12px;
    font-weight: 800;
}

.event-add-btn span {
    font-size: 18px;
}

.event-add-btn:hover {
    background: var(--accent);
}


/* GRID */

.events-catalog-grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 24px;
}

.event-catalog-card {
    overflow: hidden;

    display: block;

    border: 1px solid var(--border);
    border-radius: 18px;

    background: #fff;

    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}

.event-catalog-card:hover {
    border-color:
        rgba(214,159,84,.65);

    box-shadow:
        0 16px 38px rgba(20,40,30,.08);
}

.event-catalog-image {
    position: relative;

    height: 245px;

    background-size: cover;
    background-position: center;
}

.event-catalog-category,
.event-catalog-featured {
    position: absolute;

    top: 16px;

    padding: 7px 11px;

    border-radius: 100px;

    font-size: 10px;
    font-weight: 800;
}

.event-catalog-category {
    left: 16px;

    background: rgba(255,255,255,.94);

    color: var(--primary);
}

.event-catalog-featured {
    right: 16px;

    background: var(--accent);

    color: #fff;
}

.event-catalog-date {
    position: absolute;

    left: 16px;
    bottom: 16px;

    width: 62px;
    height: 62px;

    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;

    border-radius: 13px;

    background: var(--primary);

    color: #fff;
}

.event-catalog-date strong {
    font-size: 23px;
    line-height: 1;
}

.event-catalog-date span {
    margin-top: 3px;

    font-size: 9px;
    font-weight: 800;
}

.event-catalog-body {
    padding: 23px;
}

.event-catalog-time {
    display: block;

    margin-bottom: 6px;

    color: var(--accent);

    font-size: 11px;
    font-weight: 800;
}

.event-catalog-body h3 {
    margin-bottom: 8px;

    font-size: 20px;
    line-height: 1.3;
}

.event-catalog-body p {
    min-height: 42px;

    margin-bottom: 18px;

    color: var(--muted);

    font-size: 12px;
}

.event-catalog-footer {
    padding-top: 15px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    border-top: 1px solid var(--border);

    color: var(--primary);

    font-size: 12px;
    font-weight: 800;
}

.event-catalog-arrow {
    font-size: 17px;

    transition: transform .2s ease;
}

.event-catalog-card:hover
.event-catalog-arrow {
    transform: translateX(5px);
}


/* EMPTY + PAGINATION */

.events-empty {
    display: none;

    padding: 70px 20px;

    text-align: center;
}

.events-empty h3 {
    margin-bottom: 8px;

    font-size: 24px;
}

.events-empty p {
    color: var(--muted);
}

.events-pagination {
    margin-top: 45px;

    display: flex;
    justify-content: center;

    gap: 7px;

    flex-wrap: wrap;
}


/* ORGANIZER */

.events-organizer-banner {
    padding: 65px 0;

    background: var(--primary);

    color: #fff;
}

.events-organizer-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 40px;
}

.events-organizer-inner h2 {
    margin-bottom: 10px;

    font-size: 36px;
    letter-spacing: -1.5px;
}

.events-organizer-inner p {
    max-width: 650px;

    color: rgba(255,255,255,.68);
}


/* MOBILE */

@media (max-width: 1100px) {

    .events-catalog-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}

@media (max-width: 950px) {

    .events-catalog-heading {
        align-items: flex-start;
        flex-direction: column;
    }

}

@media (max-width: 850px) {

    .events-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .events-search {
        width: 100%;
    }

    .events-organizer-inner {
        align-items: flex-start;
        flex-direction: column;
    }

}

@media (max-width: 650px) {

    .events-date-bar {
        overflow-x: auto;
    }

    .event-date-filter {
        flex: 0 0 auto;
    }

    .events-filter {
        flex-wrap: nowrap;

        overflow-x: auto;
    }

    .event-filter-btn {
        flex: 0 0 auto;
    }

    .events-heading-tools {
        width: 100%;

        align-items: stretch;
        flex-direction: column;
    }

    .event-sort-wrap {
        justify-content: space-between;
    }

    .event-add-btn {
        justify-content: center;
    }

    .events-catalog-grid {
        grid-template-columns: 1fr;
    }

}

/* =====================================================
   PACKAGE 5.1 - EVENT DETAIL
   ===================================================== */

.event-detail-hero {
    position: relative;

    min-height: 560px;

    display: flex;
    align-items: flex-end;

    overflow: hidden;

    color: #fff;
}

.event-detail-image {
    position: absolute;
    inset: 0;

    background-size: cover;
    background-position: center;
}

.event-detail-overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            180deg,
            rgba(7,24,17,.08) 0%,
            rgba(7,24,17,.30) 42%,
            rgba(7,24,17,.92) 100%
        );
}

.event-detail-content {
    position: relative;
    z-index: 2;

    padding-top: 100px;
    padding-bottom: 60px;
}

.event-back-link {
    display: inline-flex;

    margin-bottom: 25px;

    color: rgba(255,255,255,.78);

    font-size: 13px;
    font-weight: 700;
}

.event-back-link:hover {
    color: #fff;
}

.event-detail-badges {
    display: flex;
    align-items: center;

    gap: 8px;

    flex-wrap: wrap;

    margin-bottom: 14px;
}

.event-detail-category,
.event-detail-featured {
    display: inline-flex;
    align-items: center;

    min-height: 29px;

    padding: 0 11px;

    border-radius: 100px;

    font-size: 10px;
    font-weight: 800;
}

.event-detail-category {
    background: rgba(255,255,255,.94);

    color: var(--primary);
}

.event-detail-featured {
    background: var(--accent);

    color: #fff;
}

.event-detail-content h1 {
    max-width: 950px;

    font-size: clamp(46px, 7vw, 82px);

    line-height: 1;
    letter-spacing: -4px;
}

.event-detail-short {
    max-width: 720px;

    margin-top: 16px;

    color: rgba(255,255,255,.80);

    font-size: 16px;
}

.event-detail-meta {
    margin-top: 24px;

    display: flex;
    align-items: center;

    gap: 9px;

    flex-wrap: wrap;

    font-size: 13px;
    font-weight: 700;
}


/* ACTION BAR */

.event-action-section {
    position: relative;
    z-index: 5;

    margin-top: -28px;
}

.event-action-bar {
    padding: 15px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 25px;

    background: #fff;

    border-radius: 18px;

    box-shadow:
        0 18px 45px rgba(20,40,30,.11);
}

.event-action-info {
    display: flex;
    align-items: center;

    gap: 22px;
}

.event-action-date-box {
    width: 62px;
    height: 62px;

    flex: 0 0 62px;

    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;

    background: var(--primary);
    color: #fff;

    border-radius: 13px;
}

.event-action-date-box strong {
    font-size: 23px;
    line-height: 1;
}

.event-action-date-box span {
    margin-top: 3px;

    font-size: 9px;
    font-weight: 800;
}

.event-action-item {
    min-width: 130px;
}

.event-action-item span {
    display: block;

    margin-bottom: 3px;

    color: var(--muted);

    font-size: 10px;
}

.event-action-item strong {
    font-size: 13px;
}

.event-action-buttons {
    display: flex;
    align-items: center;

    gap: 8px;

    flex-wrap: wrap;
}

.event-action-btn {
    min-height: 46px;

    padding: 0 17px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border: 0;
    border-radius: 10px;

    font-family: inherit;
    font-size: 12px;
    font-weight: 800;

    cursor: pointer;
}

.event-calendar-btn {
    background: var(--accent);
    color: #fff;
}

.event-directions-btn {
    background: var(--primary);
    color: #fff;
}


/* CONTENT */

.event-content-section {
    padding-top: 100px;
}

.event-content-layout {
    display: grid;

    grid-template-columns:
        minmax(0, 1.7fr)
        minmax(300px, .7fr);

    gap: 80px;
}

.event-main-content h2 {
    margin-bottom: 24px;

    font-size: clamp(36px, 4vw, 50px);

    line-height: 1.1;
    letter-spacing: -2px;
}

.event-main-content > p {
    max-width: 780px;

    margin-bottom: 20px;

    color: #4f5a54;

    font-size: 16px;
    line-height: 1.85;
}

.event-main-content .event-lead {
    color: var(--text);

    font-size: 19px;
    line-height: 1.75;
}


/* INFO */

.event-info-highlight {
    max-width: 780px;

    margin-top: 38px;

    padding: 24px;

    display: flex;

    gap: 18px;

    background: var(--soft);

    border-radius: 15px;
}

.event-info-highlight-icon {
    width: 42px;
    height: 42px;

    flex: 0 0 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: var(--primary);
    color: #fff;

    border-radius: 50%;

    font-weight: 800;
}

.event-info-highlight strong {
    display: block;

    margin-bottom: 5px;
}

.event-info-highlight p {
    color: var(--muted);

    font-size: 13px;
}


/* RELATED PLACE */

.event-related-place {
    max-width: 780px;

    margin-top: 50px;

    padding: 30px;

    border: 1px solid var(--border);

    border-radius: 18px;
}

.event-related-place h3 {
    margin-bottom: 8px;

    font-size: 25px;
}

.event-related-place p {
    margin-bottom: 20px;

    color: var(--muted);

    font-size: 13px;
}


/* SIDEBAR */

.event-sidebar {
    display: flex;
    flex-direction: column;

    gap: 18px;
}

.event-sidebar-card {
    padding: 26px;

    background: #fff;

    border: 1px solid var(--border);
    border-radius: 18px;
}

.event-sidebar-label {
    display: block;

    margin-bottom: 8px;

    color: var(--accent);

    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.5px;
}

.event-sidebar-card h3 {
    margin-bottom: 20px;

    font-size: 21px;
}

.event-sidebar-card > p {
    margin-bottom: 18px;

    color: var(--muted);

    font-size: 13px;
}

.event-sidebar-row {
    padding: 14px 0;

    border-top: 1px solid var(--border);
}

.event-sidebar-row small {
    display: block;

    margin-bottom: 4px;

    color: var(--muted);
}

.event-sidebar-row strong {
    font-size: 13px;
}

.event-sidebar-map-btn {
    min-height: 48px;

    margin-top: 12px;

    padding: 0 16px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    background: var(--primary);
    color: #fff;

    border-radius: 11px;

    font-size: 13px;
    font-weight: 800;
}

.event-sidebar-map-btn span {
    transition: transform .2s ease;
}

.event-sidebar-map-btn:hover span {
    transform: translateX(5px);
}

.event-copy-btn {
    width: 100%;
    min-height: 46px;

    border: 1px solid var(--border);
    border-radius: 10px;

    background: #fff;

    color: var(--primary);

    font-family: inherit;
    font-weight: 800;

    cursor: pointer;
}


/* 404 */

.event-not-found {
    min-height: 500px;

    display: flex;
    align-items: center;
}

.event-not-found h1 {
    margin-bottom: 15px;

    font-size: 50px;
    letter-spacing: -2px;
}

.event-not-found p {
    margin-bottom: 25px;

    color: var(--muted);
}


/* MOBILE */

@media (max-width: 1050px) {

    .event-action-bar {
        align-items: flex-start;
        flex-direction: column;
    }

    .event-content-layout {
        grid-template-columns: 1fr;

        gap: 50px;
    }

    .event-sidebar {
        display: grid;

        grid-template-columns: 1fr 1fr;
    }

}

@media (max-width: 700px) {

    .event-detail-content h1 {
        letter-spacing: -2px;
    }

    .event-action-info {
        width: 100%;

        align-items: flex-start;
        flex-direction: column;
    }

    .event-action-buttons {
        width: 100%;
    }

    .event-action-btn {
        flex: 1;
    }

    .event-sidebar {
        grid-template-columns: 1fr;
    }

}

/* =====================================================
   PACKAGE 5.2 - ADD EVENT
   ===================================================== */

.page-hero-add-event {
    background-image:
        url('../images/hero-events.jpg');
}

/* =====================================================
   PACKAGE 6.0 - SHOPS
   ===================================================== */

.page-hero-shops {
    background-image:
        url('../images/hero-shops.jpg');
}


/* TOOLBAR */

.shops-toolbar-section {
    position: relative;
    z-index: 5;

    margin-top: -42px;
}

.shops-toolbar {
    padding: 22px;

    display: flex;
    align-items: center;

    gap: 25px;

    flex-wrap: wrap;

    background: #fff;

    border-radius: 18px;

    box-shadow:
        0 18px 45px rgba(20,40,30,.10);
}

.shops-search {
    width: 320px;
    min-height: 50px;

    padding: 0 16px;

    display: flex;
    align-items: center;

    background: var(--soft);

    border-radius: 12px;
}

.shops-search svg {
    width: 20px;
    height: 20px;

    flex-shrink: 0;

    fill: none;
    stroke: var(--primary);

    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.shops-search input {
    width: 100%;

    margin-left: 10px;

    border: 0;
    outline: 0;

    background: transparent;

    font: inherit;
}

.shops-filter {
    display: flex;
    align-items: center;

    gap: 8px;

    flex-wrap: wrap;
}

.shop-filter-btn {
    min-height: 42px;

    padding: 0 16px;

    border: 1px solid var(--border);
    border-radius: 100px;

    background: #fff;

    font-family: inherit;
    font-size: 13px;
    font-weight: 700;

    cursor: pointer;
}

.shop-filter-btn:hover {
    border-color: var(--primary);
}

.shop-filter-btn.active {
    background: var(--primary);
    border-color: var(--primary);

    color: #fff;
}


/* HEADING */

.shops-catalog-section {
    padding-top: 85px;
}

.shops-catalog-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 30px;

    margin-bottom: 35px;
}

.shops-catalog-heading h2 {
    font-size: clamp(32px, 4vw, 46px);

    line-height: 1.1;
    letter-spacing: -2px;
}

.shops-heading-tools {
    display: flex;
    align-items: center;

    gap: 14px;

    flex-wrap: wrap;
}

.shops-count {
    display: flex;
    align-items: baseline;

    gap: 7px;

    color: var(--muted);
}

.shops-count strong {
    color: var(--primary);

    font-size: 24px;
}


/* SORT */

.shop-sort-wrap {
    min-height: 44px;

    padding: 0 12px;

    display: flex;
    align-items: center;

    gap: 8px;

    border: 1px solid var(--border);
    border-radius: 10px;
}

.shop-sort-wrap label {
    color: var(--muted);

    font-size: 11px;
    font-weight: 700;
}

.shop-sort-wrap select {
    border: 0;
    outline: 0;

    background: transparent;

    color: var(--primary);

    font-family: inherit;
    font-size: 12px;
    font-weight: 800;
}


/* ADD */

.shop-add-btn {
    min-height: 44px;

    padding: 0 16px;

    display: inline-flex;
    align-items: center;

    gap: 7px;

    background: var(--primary);

    color: #fff;

    border-radius: 10px;

    font-size: 12px;
    font-weight: 800;
}

.shop-add-btn span {
    font-size: 18px;
}

.shop-add-btn:hover {
    background: var(--accent);
}


/* GRID */

.shops-grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 24px;
}

.shop-card {
    display: block;

    overflow: hidden;

    background: #fff;

    border: 1px solid var(--border);
    border-radius: 18px;

    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}

.shop-card:hover {
    border-color:
        rgba(214,159,84,.65);

    box-shadow:
        0 16px 38px rgba(20,40,30,.08);
}

.shop-image {
    position: relative;

    height: 245px;

    background-size: cover;
    background-position: center;
}

.shop-category {
    position: absolute;

    top: 16px;
    left: 16px;

    padding: 7px 11px;

    border-radius: 100px;

    background: rgba(255,255,255,.94);

    color: var(--primary);

    font-size: 10px;
    font-weight: 800;
}

.shop-featured {
    position: absolute;

    top: 16px;
    right: 16px;

    padding: 7px 11px;

    border-radius: 100px;

    background: var(--accent);

    color: #fff;

    font-size: 10px;
    font-weight: 800;
}

.shop-body {
    padding: 24px;
}

.shop-body h3 {
    margin-bottom: 8px;

    font-size: 21px;
}

.shop-description {
    min-height: 48px;

    margin-bottom: 15px;

    color: var(--muted);

    font-size: 12px;
    line-height: 1.6;
}

.shop-tags {
    min-height: 30px;

    margin-bottom: 17px;

    display: flex;
    align-items: center;

    gap: 6px;

    flex-wrap: wrap;
}

.shop-tags span {
    min-height: 25px;

    padding: 0 8px;

    display: inline-flex;
    align-items: center;

    background: var(--soft);

    color: var(--primary);

    border-radius: 100px;

    font-size: 9px;
    font-weight: 800;
}

.shop-footer {
    padding-top: 16px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    border-top: 1px solid var(--border);

    color: var(--primary);

    font-size: 12px;
    font-weight: 700;
}

.shop-arrow {
    font-size: 17px;

    transition: transform .2s ease;
}

.shop-card:hover .shop-arrow {
    transform: translateX(5px);
}


/* EMPTY */

.shops-empty {
    display: none;

    padding: 70px 20px;

    text-align: center;
}

.shops-empty h3 {
    margin-bottom: 8px;

    font-size: 24px;
}

.shops-empty p {
    color: var(--muted);
}


/* PAGINATION */

.shops-pagination {
    margin-top: 45px;

    display: flex;
    align-items: center;
    justify-content: center;

    gap: 7px;

    flex-wrap: wrap;
}


/* BUSINESS CTA */

.shop-business-banner {
    padding: 65px 0;

    background: var(--primary);

    color: #fff;
}

.shop-business-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 40px;
}

.shop-business-inner h2 {
    margin-bottom: 10px;

    font-size: 36px;
    letter-spacing: -1.5px;
}

.shop-business-inner p {
    max-width: 660px;

    color: rgba(255,255,255,.68);
}


/* RESPONSIVE */

@media (max-width: 1100px) {

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

}

@media (max-width: 950px) {

    .shops-catalog-heading {
        align-items: flex-start;
        flex-direction: column;
    }

}

@media (max-width: 850px) {

    .shops-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .shops-search {
        width: 100%;
    }

    .shop-business-inner {
        align-items: flex-start;
        flex-direction: column;
    }

}

@media (max-width: 650px) {

    .shops-toolbar-section {
        margin-top: -25px;
    }

    .shops-filter {
        flex-wrap: nowrap;
        overflow-x: auto;
    }

    .shop-filter-btn {
        flex: 0 0 auto;
    }

    .shops-heading-tools {
        width: 100%;

        align-items: stretch;
        flex-direction: column;
    }

    .shop-sort-wrap {
        justify-content: space-between;
    }

    .shop-add-btn {
        justify-content: center;
    }

    .shops-grid {
        grid-template-columns: 1fr;
    }

}

/* =====================================================
   PACKAGE 6.1 - SHOP DETAIL
   ===================================================== */

.shop-detail-hero {
    position: relative;
    min-height: 560px;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    color: #fff;
}

.shop-detail-image {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
}

.shop-detail-overlay {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            180deg,
            rgba(7,24,17,.08) 0%,
            rgba(7,24,17,.28) 40%,
            rgba(7,24,17,.90) 100%
        );
}

.shop-detail-content {
    position: relative;
    z-index: 2;

    padding-top: 100px;
    padding-bottom: 60px;
}

.shop-back-link {
    display: inline-flex;
    margin-bottom: 25px;

    color: rgba(255,255,255,.78);

    font-size: 13px;
    font-weight: 700;
}

.shop-back-link:hover {
    color: #fff;
}

.shop-detail-badges {
    display: flex;
    align-items: center;

    gap: 8px;
    flex-wrap: wrap;

    margin-bottom: 14px;
}

.shop-detail-category,
.shop-detail-featured {
    display: inline-flex;
    align-items: center;

    min-height: 29px;
    padding: 0 11px;

    border-radius: 100px;

    font-size: 10px;
    font-weight: 800;
}

.shop-detail-category {
    background: rgba(255,255,255,.94);
    color: var(--primary);
}

.shop-detail-featured {
    background: var(--accent);
    color: #fff;
}

.shop-detail-content h1 {
    max-width: 900px;

    font-size: clamp(46px, 7vw, 82px);
    line-height: 1;
    letter-spacing: -4px;
}

.shop-detail-short {
    max-width: 700px;

    margin-top: 16px;

    color: rgba(255,255,255,.80);

    font-size: 16px;
}

.shop-detail-meta {
    display: flex;
    align-items: center;

    gap: 12px;
    flex-wrap: wrap;

    margin-top: 24px;

    font-size: 13px;
    font-weight: 700;
}

.shop-detail-open,
.shop-detail-closed {
    display: inline-flex;
    align-items: center;

    min-height: 27px;
    padding: 0 10px;

    border-radius: 100px;
}

.shop-detail-open {
    background: #e8f5eb;
    color: #227341;
}

.shop-detail-closed {
    background: #f5e7e7;
    color: #a13d3d;
}


/* ACTION BAR */

.shop-action-section {
    position: relative;
    z-index: 5;

    margin-top: -28px;
}

.shop-action-bar {
    padding: 16px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 25px;

    background: #fff;

    border-radius: 18px;

    box-shadow:
        0 18px 45px rgba(20,40,30,.11);
}

.shop-action-info {
    display: flex;
    align-items: center;
    gap: 25px;
}

.shop-action-item {
    min-width: 150px;
}

.shop-action-label {
    display: block;

    margin-bottom: 3px;

    color: var(--muted);

    font-size: 10px;
}

.shop-action-item strong {
    font-size: 13px;
}

.shop-action-buttons {
    display: flex;
    align-items: center;

    gap: 8px;
    flex-wrap: wrap;
}

.shop-action-btn {
    min-height: 46px;
    padding: 0 16px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 10px;

    font-size: 12px;
    font-weight: 800;
}

.shop-online-btn {
    background: var(--accent);
    color: #fff;
}

.shop-website-btn {
    border: 1px solid var(--border);
    background: #fff;
    color: var(--primary);
}

.shop-directions-btn {
    background: var(--primary);
    color: #fff;
}


/* CONTENT */

.shop-content-section {
    padding-top: 100px;
}

.shop-content-layout {
    display: grid;

    grid-template-columns:
        minmax(0, 1.7fr)
        minmax(300px, .7fr);

    gap: 80px;
}

.shop-main-content h2 {
    margin-bottom: 24px;

    font-size: clamp(36px, 4vw, 50px);

    line-height: 1.1;
    letter-spacing: -2px;
}

.shop-main-content > p {
    max-width: 780px;

    margin-bottom: 20px;

    color: #4f5a54;

    font-size: 16px;
    line-height: 1.85;
}

.shop-main-content .shop-lead {
    color: var(--text);

    font-size: 19px;
    line-height: 1.75;
}


/* TAGS */

.shop-tags-detail-section,
.shop-features-section {
    max-width: 780px;

    margin-top: 45px;
}

.shop-tags-detail-section h3,
.shop-features-section h3 {
    margin-bottom: 20px;

    font-size: 27px;
}

.shop-detail-tags {
    display: flex;
    flex-wrap: wrap;

    gap: 8px;
}

.shop-detail-tags span {
    min-height: 34px;
    padding: 0 13px;

    display: inline-flex;
    align-items: center;

    border-radius: 100px;

    background: var(--soft);

    color: var(--primary);

    font-size: 11px;
    font-weight: 800;
}


/* FEATURES */

.shop-features-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 10px;
}

.shop-feature {
    min-height: 50px;

    padding: 0 15px;

    display: flex;
    align-items: center;

    gap: 10px;

    border: 1px solid var(--border);
    border-radius: 11px;

    font-size: 13px;
    font-weight: 700;
}

.shop-feature-check {
    width: 22px;
    height: 22px;

    flex: 0 0 22px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #e9f4ec;
    color: #287046;

    font-size: 11px;
}


/* ONLINE HIGHLIGHT */

.shop-online-highlight {
    max-width: 780px;

    margin-top: 45px;
    padding: 28px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 30px;

    background: var(--soft);

    border-radius: 17px;
}

.shop-online-highlight h3 {
    margin-bottom: 7px;

    font-size: 24px;
}

.shop-online-highlight p {
    color: var(--muted);

    font-size: 13px;
}


/* SIDEBAR */

.shop-sidebar {
    display: flex;
    flex-direction: column;

    gap: 18px;
}

.shop-sidebar-card {
    padding: 26px;

    border: 1px solid var(--border);
    border-radius: 18px;

    background: #fff;
}

.shop-sidebar-label {
    display: block;

    margin-bottom: 8px;

    color: var(--accent);

    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.5px;
}

.shop-sidebar-card h3 {
    margin-bottom: 20px;

    font-size: 21px;
}

.shop-sidebar-card > p {
    margin-bottom: 18px;

    color: var(--muted);

    font-size: 13px;
}

.shop-sidebar-row {
    padding: 14px 0;

    border-top: 1px solid var(--border);
}

.shop-sidebar-row small {
    display: block;

    margin-bottom: 4px;

    color: var(--muted);
}

.shop-sidebar-row strong,
.shop-sidebar-row a {
    font-size: 13px;
    font-weight: 700;
}

.shop-sidebar-map-btn {
    min-height: 48px;

    margin-top: 12px;
    padding: 0 16px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    background: var(--primary);
    color: #fff;

    border-radius: 11px;

    font-size: 13px;
    font-weight: 800;
}

.shop-sidebar-map-btn span,
.shop-social-link span {
    transition: transform .2s ease;
}

.shop-sidebar-map-btn:hover span,
.shop-social-link:hover span {
    transform: translateX(5px);
}

.shop-social-link {
    min-height: 44px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    border-top: 1px solid var(--border);

    color: var(--primary);

    font-size: 12px;
    font-weight: 800;
}

.shop-copy-btn {
    width: 100%;
    min-height: 46px;

    border: 1px solid var(--border);
    border-radius: 10px;

    background: #fff;

    color: var(--primary);

    font-family: inherit;
    font-weight: 800;

    cursor: pointer;
}


/* GALLERY */

.shop-gallery {
    display: grid;

    grid-template-columns: 2fr 1fr;
    grid-template-rows: repeat(2, 200px);

    gap: 15px;
}

.shop-gallery-main,
.shop-gallery-small {
    background-size: cover;
    background-position: center;

    border-radius: 16px;
}

.shop-gallery-main {
    grid-row: 1 / 3;
}


/* 404 */

.shop-not-found {
    min-height: 500px;

    display: flex;
    align-items: center;
}

.shop-not-found h1 {
    margin-bottom: 15px;

    font-size: 50px;
    letter-spacing: -2px;
}

.shop-not-found p {
    margin-bottom: 25px;

    color: var(--muted);
}


/* RESPONSIVE */

@media (max-width: 1050px) {

    .shop-action-bar {
        align-items: flex-start;
        flex-direction: column;
    }

    .shop-content-layout {
        grid-template-columns: 1fr;

        gap: 50px;
    }

    .shop-sidebar {
        display: grid;

        grid-template-columns: 1fr 1fr;
    }

}

@media (max-width: 700px) {

    .shop-detail-content h1 {
        letter-spacing: -2px;
    }

    .shop-action-info {
        width: 100%;

        align-items: flex-start;
        flex-direction: column;

        gap: 12px;
    }

    .shop-action-buttons {
        width: 100%;
    }

    .shop-action-btn {
        flex: 1;
    }

    .shop-features-grid {
        grid-template-columns: 1fr;
    }

    .shop-online-highlight {
        align-items: flex-start;
        flex-direction: column;
    }

    .shop-sidebar {
        grid-template-columns: 1fr;
    }

    .shop-gallery {
        grid-template-columns: 1fr;
        grid-template-rows: 260px 180px 180px;
    }

    .shop-gallery-main {
        grid-row: auto;
    }

}

/* =====================================================
   PACKAGE 6.2 - ADD SHOP
   ===================================================== */

.page-hero-add-shop {
    background-image:
        url('../images/hero-shops.jpg');
}

/* =====================================================
   PACKAGE 7.0 - TRANSPORT
   ===================================================== */

.page-hero-transport {
    background-image:
        url('../images/hero-transport.jpg');
}


/* QUICK NAV */

.transport-quick-section {
    position: relative;
    z-index: 5;

    margin-top: -42px;
}

.transport-quick-grid {
    display: grid;

    grid-template-columns:
        repeat(6, minmax(0, 1fr));

    background: #fff;

    border-radius: 18px;

    box-shadow:
        0 18px 45px rgba(20,40,30,.10);

    overflow: hidden;
}

.transport-quick-card {
    min-height: 120px;

    padding: 22px;

    display: flex;
    align-items: center;

    gap: 13px;

    border-right: 1px solid var(--border);

    transition:
        background .2s ease;
}

.transport-quick-card:last-child {
    border-right: 0;
}

.transport-quick-card:hover {
    background: var(--soft);
}

.transport-quick-icon {
    width: 42px;
    height: 42px;

    flex: 0 0 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 11px;

    background: var(--soft);
}

.transport-quick-icon svg {
    width: 22px;
    height: 22px;

    fill: none;

    stroke: var(--primary);

    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.transport-quick-card strong,
.transport-quick-card span {
    display: block;
}

.transport-quick-card strong {
    margin-bottom: 3px;

    font-size: 13px;
}

.transport-quick-card span {
    color: var(--muted);

    font-size: 10px;
}


/* CITY TRANSPORT */

.transport-section {
    padding-top: 100px;
}

.transport-info-layout {
    display: grid;

    grid-template-columns:
        minmax(0, 1.5fr)
        minmax(300px, .5fr);

    gap: 25px;
}

.transport-main-card,
.transport-notice-card {
    padding: 30px;

    border: 1px solid var(--border);
    border-radius: 18px;

    background: #fff;
}

.transport-main-card-heading h3 {
    font-size: 26px;

    letter-spacing: -1px;
}

.transport-card-label {
    display: block;

    margin-bottom: 7px;

    color: var(--accent);

    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.4px;
}

.transport-search-box {
    min-height: 52px;

    margin: 25px 0;

    padding: 0 16px;

    display: flex;
    align-items: center;

    gap: 10px;

    background: var(--soft);

    border-radius: 11px;
}

.transport-search-box svg {
    width: 20px;
    height: 20px;

    flex-shrink: 0;

    fill: none;

    stroke: var(--primary);

    stroke-width: 1.8;
}

.transport-search-box input {
    width: 100%;

    border: 0;
    outline: 0;

    background: transparent;

    font: inherit;
}

.transport-lines {
    display: flex;
    flex-direction: column;

    gap: 8px;
}

.transport-line-card {
    min-height: 74px;

    padding: 12px 14px;

    display: grid;

    grid-template-columns:
        48px 1fr auto;

    align-items: center;

    gap: 13px;

    border: 1px solid var(--border);
    border-radius: 12px;
}

.transport-line-card:hover {
    border-color: var(--primary);
}

.transport-line-number {
    width: 44px;
    height: 44px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 10px;

    background: var(--primary);

    color: #fff;

    font-weight: 800;
}

.transport-line-card strong,
.transport-line-card span {
    display: block;
}

.transport-line-card div span {
    margin-top: 2px;

    color: var(--muted);

    font-size: 11px;
}

.transport-line-arrow {
    color: var(--primary);

    font-size: 18px;

    transition: transform .2s ease;
}

.transport-line-card:hover
.transport-line-arrow {
    transform: translateX(4px);
}


/* NOTICE */

.transport-notice-card {
    background: var(--primary);

    color: #fff;

    border-color: var(--primary);
}

.transport-notice-card h3 {
    margin-bottom: 12px;

    font-size: 24px;
}

.transport-notice-card > p {
    color: rgba(255,255,255,.70);

    font-size: 13px;
    line-height: 1.7;
}

.transport-notice-example {
    margin: 24px 0 12px;

    display: flex;

    gap: 7px;

    flex-wrap: wrap;
}

.transport-notice-example span {
    padding: 8px 11px;

    border-radius: 8px;

    font-size: 12px;
    font-weight: 800;
}

.transport-status-past {
    background: #f5e2e2;
    color: #a33d3d;
}

.transport-status-next {
    background: #e6f4e9;
    color: #277244;
}

.transport-status-later {
    background: rgba(255,255,255,.12);
    color: #fff;
}

.transport-notice-card small {
    color: rgba(255,255,255,.50);

    font-size: 10px;
    line-height: 1.5;
}


/* STOPS */

.transport-stop-grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 16px;
}

.transport-stop-card {
    min-height: 135px;

    padding: 22px;

    position: relative;

    display: flex;
    flex-direction: column;
    justify-content: space-between;

    border: 1px solid var(--border);
    border-radius: 16px;

    background: #fff;
}

.transport-stop-card:hover {
    border-color: var(--accent);
}

.transport-stop-label {
    display: block;

    margin-bottom: 5px;

    color: var(--accent);

    font-size: 9px;
    font-weight: 800;
    letter-spacing: 1.2px;
}

.transport-stop-card h3 {
    font-size: 20px;
}

.transport-stop-lines {
    display: flex;

    gap: 5px;
}

.transport-stop-lines span {
    min-width: 28px;
    height: 28px;

    padding: 0 7px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 7px;

    background: var(--primary);

    color: #fff;

    font-size: 10px;
    font-weight: 800;
}

.transport-stop-arrow {
    position: absolute;

    right: 20px;
    bottom: 20px;

    color: var(--primary);

    font-size: 18px;
}

.transport-empty {
    display: none;

    margin-top: 20px;

    padding: 25px;

    text-align: center;

    color: var(--muted);

    border: 1px dashed var(--border);
    border-radius: 12px;
}


/* STATIONS */

.transport-stations-grid,
.transport-parking-grid {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 20px;
}

.transport-station-card,
.transport-parking-card {
    padding: 30px;

    border: 1px solid var(--border);
    border-radius: 18px;

    background: #fff;
}

.transport-station-icon {
    margin-bottom: 20px;

    font-size: 32px;
}

.transport-station-card h3,
.transport-parking-card h3 {
    margin-bottom: 10px;

    font-size: 24px;
}

.transport-station-card p,
.transport-parking-card p {
    max-width: 500px;

    color: var(--muted);

    font-size: 13px;
    line-height: 1.7;
}

.transport-station-actions {
    margin-top: 22px;

    display: flex;
    align-items: center;

    gap: 15px;
}

.transport-simple-btn {
    min-height: 42px;

    padding: 0 14px;

    display: inline-flex;
    align-items: center;

    background: var(--primary);
    color: #fff;

    border-radius: 9px;

    font-size: 11px;
    font-weight: 800;
}

.transport-simple-link {
    color: var(--primary);

    font-size: 11px;
    font-weight: 800;
}


/* TAXI */

.transport-text-layout {
    display: grid;

    grid-template-columns:
        1.5fr .5fr;

    align-items: center;

    gap: 60px;
}

.transport-text-layout h2 {
    margin-bottom: 16px;

    font-size: clamp(34px, 4vw, 48px);

    letter-spacing: -2px;
}

.transport-text-layout > div > p {
    max-width: 700px;

    color: var(--muted);

    line-height: 1.8;
}

.transport-help-card {
    padding: 26px;

    border-radius: 16px;

    background: #fff;

    border: 1px solid var(--border);
}

.transport-help-card strong {
    display: block;

    margin-bottom: 8px;
}

.transport-help-card p {
    color: var(--muted);

    font-size: 12px;
    line-height: 1.65;
}


/* GETTING HERE */

.transport-getting-section {
    padding: 75px 0;

    background: var(--primary);

    color: #fff;
}

.transport-getting-inner {
    display: grid;

    grid-template-columns:
        1fr 1fr;

    align-items: center;

    gap: 70px;
}

.transport-getting-inner h2 {
    margin-bottom: 14px;

    font-size: 40px;
    letter-spacing: -2px;
}

.transport-getting-inner p {
    max-width: 620px;

    color: rgba(255,255,255,.68);
}

.transport-getting-options {
    display: grid;

    grid-template-columns:
        repeat(2, 1fr);

    gap: 10px;
}

.transport-getting-card {
    min-height: 92px;
    padding: 17px 18px;

    display: grid;
    grid-template-columns: 38px minmax(0,1fr) 20px;
    align-items: center;
    gap: 13px;

    border: 1px solid rgba(255,255,255,.12);
    border-radius: 12px;
    background: rgba(255,255,255,.025);
    color: #fff;

    transition:
        transform .2s ease,
        border-color .2s ease,
        background .2s ease;
}

.transport-getting-card:hover {
    transform: translateY(-2px);
    border-color: rgba(214,159,84,.62);
    background: rgba(255,255,255,.06);
}

.transport-getting-icon {
    width: 38px;
    height: 38px;

    display: grid;
    place-items: center;

    border-radius: 10px;
    background: rgba(255,255,255,.08);
    color: var(--accent);
}

.transport-getting-icon svg {
    width: 19px;
    height: 19px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.transport-getting-copy,
.transport-getting-copy strong,
.transport-getting-copy > span {
    display: block;
}

.transport-getting-copy strong {
    margin-bottom: 4px;
    font-size: 13px;
}

.transport-getting-copy > span {
    color: rgba(255,255,255,.55);
    font-size: 10px;
    line-height: 1.45;
}

.transport-getting-arrow {
    color: rgba(255,255,255,.42);
    font-size: 16px;
    transition: transform .2s ease, color .2s ease;
}

.transport-getting-card:hover .transport-getting-arrow {
    transform: translateX(3px);
    color: var(--accent);
}


/* RESPONSIVE */

@media (max-width: 1150px) {

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

    .transport-quick-card {
        border-bottom: 1px solid var(--border);
    }

}

@media (max-width: 900px) {

    .transport-info-layout,
    .transport-text-layout,
    .transport-getting-inner {
        grid-template-columns: 1fr;
    }

    .transport-stop-grid {
        grid-template-columns: 1fr 1fr;
    }

}

@media (max-width: 650px) {

    .transport-quick-section {
        margin-top: -25px;
    }

    .transport-quick-grid {
        grid-template-columns: 1fr 1fr;
    }

    .transport-quick-card {
        min-height: 105px;

        padding: 16px;
    }

    .transport-stop-grid,
    .transport-stations-grid,
    .transport-parking-grid {
        grid-template-columns: 1fr;
    }

    .transport-getting-options {
        grid-template-columns: 1fr;
    }

}

/* =====================================================
   PACKAGE 7.1 - BUS STOP
   ===================================================== */

.stop-hero {
    padding: 75px 0 95px;

    background:
        linear-gradient(
            135deg,
            #173c2d 0%,
            #0e291e 100%
        );

    color: #fff;
}

.stop-back-link {
    display: inline-flex;

    margin-bottom: 35px;

    color: rgba(255,255,255,.66);

    font-size: 12px;
    font-weight: 700;
}

.stop-back-link:hover {
    color: #fff;
}


.stop-title-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    gap: 40px;
}

.stop-title-row h1 {
    max-width: 850px;

    margin-top: 9px;

    font-size: clamp(44px, 6vw, 72px);

    line-height: 1;
    letter-spacing: -3px;
}

.stop-title-row p {
    max-width: 620px;

    margin-top: 14px;

    color: rgba(255,255,255,.65);

    font-size: 15px;
}


.stop-live-clock {
    min-width: 130px;

    padding: 17px 20px;

    border: 1px solid rgba(255,255,255,.12);
    border-radius: 14px;

    background:
        rgba(255,255,255,.06);

    text-align: center;
}

.stop-live-clock span,
.stop-live-clock strong {
    display: block;
}

.stop-live-clock span {
    margin-bottom: 3px;

    color: rgba(255,255,255,.55);

    font-size: 9px;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.stop-live-clock strong {
    font-size: 28px;
    letter-spacing: -1px;
}


.stop-line-list {
    margin-top: 30px;

    display: flex;

    gap: 8px;

    flex-wrap: wrap;
}

.stop-line-list span {
    min-height: 34px;

    padding: 0 13px;

    display: inline-flex;
    align-items: center;

    border-radius: 100px;

    background: rgba(255,255,255,.10);

    color: #fff;

    font-size: 11px;
    font-weight: 800;
}


/* NOTICE */

.stop-notice-section {
    position: relative;
    z-index: 4;

    margin-top: -31px;
}

.stop-notice {
    min-height: 62px;

    padding: 14px 20px;

    display: flex;
    align-items: center;

    gap: 14px;

    background: #fff;

    border-radius: 14px;

    box-shadow:
        0 14px 38px rgba(20,40,30,.10);
}

.stop-notice-icon {
    width: 34px;
    height: 34px;

    flex: 0 0 34px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: var(--soft);

    color: var(--primary);

    font-size: 13px;
    font-weight: 800;
}

.stop-notice p {
    color: var(--muted);

    font-size: 11px;
    line-height: 1.55;
}


/* MAIN */

.stop-departures-section {
    padding-top: 85px;
}

.stop-content-layout {
    display: grid;

    grid-template-columns:
        minmax(0, 1.55fr)
        minmax(280px, .45fr);

    gap: 60px;
}


/* REFRESH */

.stop-refresh-btn {
    min-height: 42px;

    padding: 0 14px;

    border: 1px solid var(--border);
    border-radius: 9px;

    background: #fff;

    color: var(--primary);

    font-family: inherit;
    font-size: 11px;
    font-weight: 800;

    cursor: pointer;
}

.stop-refresh-btn:hover {
    border-color: var(--primary);
}


/* NEXT LIST */

.stop-next-list {
    display: flex;
    flex-direction: column;

    gap: 10px;
}

.stop-next-card {
    min-height: 86px;

    padding: 15px 18px;

    display: grid;

    grid-template-columns:
        64px
        1fr
        auto;

    align-items: center;

    gap: 16px;

    border: 1px solid var(--border);
    border-radius: 14px;

    background: #fff;

    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}

.stop-next-card.is-next {
    border-color: #84b394;

    background:
        linear-gradient(
            90deg,
            #f5fbf6 0%,
            #fff 50%
        );

    box-shadow:
        0 10px 30px rgba(58,115,75,.08);
}

.stop-next-line {
    width: 56px;
    height: 56px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 12px;

    background: var(--primary);

    color: #fff;

    font-size: 18px;
    font-weight: 800;
}

.stop-next-main strong,
.stop-next-main span {
    display: block;
}

.stop-next-main strong {
    margin-bottom: 3px;

    font-size: 18px;
}

.stop-next-main span {
    color: var(--muted);

    font-size: 11px;
}

.stop-next-countdown {
    min-width: 92px;

    text-align: right;
}

.stop-next-countdown strong,
.stop-next-countdown span {
    display: block;
}

.stop-next-countdown strong {
    color: var(--primary);

    font-size: 13px;
}

.stop-next-card.is-next
.stop-next-countdown strong {
    color: #2b7a49;
}

.stop-next-countdown span {
    margin-top: 2px;

    color: var(--muted);

    font-size: 9px;
}

.stop-no-more {
    display: none;

    padding: 35px;

    border: 1px dashed var(--border);
    border-radius: 14px;

    color: var(--muted);

    text-align: center;

    font-size: 13px;
}


/* FULL SCHEDULE */

.stop-full-schedule {
    margin-top: 65px;
}

.stop-full-heading {
    margin-bottom: 22px;
}

.stop-full-heading h3 {
    font-size: 29px;
    letter-spacing: -1px;
}

.stop-schedule-tabs {
    display: flex;

    gap: 7px;

    flex-wrap: wrap;

    margin-bottom: 20px;
}

.stop-line-tab {
    min-height: 39px;

    padding: 0 14px;

    border: 1px solid var(--border);
    border-radius: 100px;

    background: #fff;

    color: var(--primary);

    font-family: inherit;
    font-size: 11px;
    font-weight: 800;

    cursor: pointer;
}

.stop-line-tab.active {
    background: var(--primary);

    border-color: var(--primary);

    color: #fff;
}

.stop-schedule-panel {
    display: none;
}

.stop-schedule-panel.active {
    display: block;
}

.stop-times-grid {
    display: grid;

    grid-template-columns:
        repeat(6, minmax(0, 1fr));

    gap: 8px;
}

.stop-schedule-time {
    min-height: 42px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid var(--border);
    border-radius: 9px;

    background: #fff;

    color: var(--primary);

    font-size: 12px;
    font-weight: 800;
}

.stop-schedule-time.is-passed {
    background: #f9eeee;

    border-color: #f1d6d6;

    color: #ac5555;
}

.stop-schedule-time.is-next {
    background: #eaf6ed;

    border-color: #b8dabe;

    color: #277247;
}


/* SIDEBAR */

.stop-sidebar {
    display: flex;
    flex-direction: column;

    gap: 18px;
}

.stop-sidebar-card {
    padding: 26px;

    border: 1px solid var(--border);
    border-radius: 18px;

    background: #fff;
}

.stop-sidebar-label {
    display: block;

    margin-bottom: 7px;

    color: var(--accent);

    font-size: 9px;
    font-weight: 800;
    letter-spacing: 1.4px;
}

.stop-sidebar-card h3 {
    margin-bottom: 20px;

    font-size: 22px;
}

.stop-sidebar-row {
    padding: 14px 0;

    border-top: 1px solid var(--border);
}

.stop-sidebar-row small {
    display: block;

    margin-bottom: 5px;

    color: var(--muted);

    font-size: 10px;
}

.stop-sidebar-row strong {
    font-size: 13px;
}

.stop-sidebar-lines {
    display: flex;

    gap: 5px;

    flex-wrap: wrap;
}

.stop-sidebar-lines span {
    min-width: 30px;
    height: 30px;

    padding: 0 8px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 7px;

    background: var(--primary);

    color: #fff;

    font-size: 10px;
    font-weight: 800;
}

.stop-map-btn {
    min-height: 48px;

    margin-top: 12px;

    padding: 0 16px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    border-radius: 10px;

    background: var(--primary);

    color: #fff;

    font-size: 12px;
    font-weight: 800;
}

.stop-map-btn span {
    transition: transform .2s ease;
}

.stop-map-btn:hover span {
    transform: translateX(4px);
}


/* LEGEND */

.stop-legend-card h3 {
    margin-bottom: 12px;
}

.stop-legend-row {
    padding: 13px 0;

    display: flex;
    align-items: flex-start;

    gap: 11px;

    border-top: 1px solid var(--border);
}

.stop-legend-dot {
    width: 11px;
    height: 11px;

    flex: 0 0 11px;

    margin-top: 3px;

    border-radius: 50%;
}

.stop-legend-dot.next {
    background: #43905c;
}

.stop-legend-dot.upcoming {
    background: var(--primary);
}

.stop-legend-dot.passed {
    background: #bd6363;
}

.stop-legend-row strong,
.stop-legend-row small {
    display: block;
}

.stop-legend-row strong {
    margin-bottom: 3px;

    font-size: 12px;
}

.stop-legend-row small {
    color: var(--muted);

    font-size: 10px;
}


/* 404 */

.stop-not-found {
    min-height: 500px;

    display: flex;
    align-items: center;
}

.stop-not-found h1 {
    margin-bottom: 15px;

    font-size: 50px;
}

.stop-not-found p {
    margin-bottom: 25px;

    color: var(--muted);
}


/* RESPONSIVE */

@media (max-width: 1000px) {

    .stop-content-layout {
        grid-template-columns: 1fr;
    }

    .stop-sidebar {
        display: grid;

        grid-template-columns: 1fr 1fr;
    }

    .stop-times-grid {
        grid-template-columns:
            repeat(5, minmax(0, 1fr));
    }

}

@media (max-width: 700px) {

    .stop-title-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .stop-live-clock {
        text-align: left;
    }

    .stop-next-card {
        grid-template-columns:
            55px 1fr;
    }

    .stop-next-line {
        width: 50px;
        height: 50px;
    }

    .stop-next-countdown {
        grid-column: 2;

        text-align: left;
    }

    .stop-times-grid {
        grid-template-columns:
            repeat(4, minmax(0, 1fr));
    }

    .stop-sidebar {
        grid-template-columns: 1fr;
    }

}

@media (max-width: 450px) {

    .stop-times-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

}

/* =====================================================
   PACKAGE 7.2 - BUS LINE
   ===================================================== */

.line-hero {
    padding: 75px 0 95px;

    background:
        linear-gradient(
            135deg,
            #173c2d 0%,
            #0e291e 100%
        );

    color: #fff;
}

.line-back-link {
    display: inline-flex;

    margin-bottom: 35px;

    color: rgba(255,255,255,.66);

    font-size: 12px;
    font-weight: 700;
}

.line-back-link:hover {
    color: #fff;
}

.line-hero-heading {
    display: flex;
    align-items: center;

    gap: 28px;
}

.line-number-large {
    width: 96px;
    height: 96px;

    flex: 0 0 96px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #fff;

    color: var(--primary);

    border-radius: 21px;

    font-size: 40px;
    font-weight: 900;
}

.line-hero-heading h1 {
    margin-top: 7px;

    font-size: clamp(46px, 6vw, 72px);

    line-height: 1;
    letter-spacing: -3px;
}

.line-hero-heading p {
    max-width: 700px;

    margin-top: 12px;

    color: rgba(255,255,255,.66);

    font-size: 15px;
}

.line-hero-meta {
    margin-top: 35px;

    display: flex;
    align-items: center;

    gap: 10px;

    flex-wrap: wrap;
}

.line-hero-meta div {
    min-width: 150px;

    padding: 14px 17px;

    border: 1px solid rgba(255,255,255,.12);
    border-radius: 12px;

    background:
        rgba(255,255,255,.05);
}

.line-hero-meta span,
.line-hero-meta strong {
    display: block;
}

.line-hero-meta span {
    margin-bottom: 3px;

    color: rgba(255,255,255,.50);

    font-size: 9px;
    font-weight: 800;

    text-transform: uppercase;
    letter-spacing: 1px;
}

.line-hero-meta strong {
    font-size: 14px;
}


/* NOTICE */

.line-notice-section {
    position: relative;
    z-index: 4;

    margin-top: -30px;
}

.line-notice {
    min-height: 60px;

    padding: 13px 20px;

    display: flex;
    align-items: center;

    gap: 13px;

    background: #fff;

    border-radius: 14px;

    box-shadow:
        0 14px 38px rgba(20,40,30,.10);
}

.line-notice-icon {
    width: 34px;
    height: 34px;

    flex: 0 0 34px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: var(--soft);

    color: var(--primary);

    font-size: 13px;
    font-weight: 800;
}

.line-notice p {
    color: var(--muted);

    font-size: 11px;
}


/* LAYOUT */

.line-content-section {
    padding-top: 90px;
}

.line-content-layout {
    display: grid;

    grid-template-columns:
        minmax(0, 1.55fr)
        minmax(280px, .45fr);

    gap: 60px;
}


/* ROUTE */

.line-route {
    position: relative;
}

.line-route-stop {
    display: grid;

    grid-template-columns:
        40px 1fr;

    gap: 16px;

    min-height: 120px;
}

.line-route-marker {
    position: relative;

    display: flex;
    justify-content: center;
}

.line-route-marker::after {
    content: "";

    position: absolute;

    top: 30px;
    bottom: -10px;

    width: 2px;

    background: #d7dfda;
}

.line-route-stop:last-child
.line-route-marker::after {
    display: none;
}

.line-route-marker span {
    position: relative;
    z-index: 2;

    width: 18px;
    height: 18px;

    margin-top: 6px;

    border: 4px solid #fff;
    border-radius: 50%;

    background: var(--primary);

    box-shadow:
        0 0 0 2px var(--primary);
}

.line-route-content {
    min-height: 88px;

    padding: 0 0 28px;

    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 20px;

    border-bottom: 1px solid var(--border);
}

.line-route-index {
    display: block;

    margin-bottom: 4px;

    color: var(--accent);

    font-size: 9px;
    font-weight: 800;

    letter-spacing: 1.1px;
}

.line-route-content h3 {
    margin-bottom: 5px;

    font-size: 19px;
}

.line-route-content p {
    color: var(--muted);

    font-size: 11px;
}

.line-stop-link {
    flex: 0 0 auto;

    margin-top: 14px;

    color: var(--primary);

    font-size: 11px;
    font-weight: 800;
}

.line-stop-link span {
    display: inline-block;

    margin-left: 4px;

    transition: transform .2s ease;
}

.line-stop-link:hover span {
    transform: translateX(4px);
}

.line-stop-muted {
    margin-top: 14px;

    color: #a3aca6;

    font-size: 10px;
}


/* SCHEDULE */

.line-schedule-section {
    margin-top: 60px;
}

.line-schedule-heading {
    margin-bottom: 24px;
}

.line-schedule-heading h2 {
    margin-bottom: 7px;

    font-size: 32px;

    letter-spacing: -1px;
}

.line-schedule-heading p {
    max-width: 650px;

    color: var(--muted);

    font-size: 12px;
}

.line-times-grid {
    display: grid;

    grid-template-columns:
        repeat(6, minmax(0, 1fr));

    gap: 8px;
}

.line-time {
    min-height: 44px;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid var(--border);
    border-radius: 9px;

    background: #fff;

    color: var(--primary);

    font-size: 12px;
    font-weight: 800;
}

.line-time.is-passed {
    background: #f9eeee;

    border-color: #f1d6d6;

    color: #ac5555;
}

.line-time.is-next {
    background: #eaf6ed;

    border-color: #b8dabe;

    color: #277247;
}


/* SIDEBAR */

.line-sidebar {
    display: flex;
    flex-direction: column;

    gap: 18px;
}

.line-sidebar-card {
    padding: 25px;

    border: 1px solid var(--border);
    border-radius: 18px;

    background: #fff;
}

.line-sidebar-label {
    display: block;

    margin-bottom: 8px;

    color: var(--accent);

    font-size: 9px;
    font-weight: 800;

    letter-spacing: 1.4px;
}

.line-sidebar-card h3 {
    margin-bottom: 18px;

    font-size: 21px;
}

.line-next-time-box {
    padding: 17px;

    margin-bottom: 12px;

    border-radius: 12px;

    background: var(--soft);
}

.line-next-time-box span,
.line-next-time-box strong {
    display: block;
}

.line-next-time-box span {
    margin-bottom: 3px;

    color: var(--muted);

    font-size: 9px;
}

.line-next-time-box strong {
    font-size: 26px;
}

.line-next-departure {
    padding: 18px;

    border: 1px solid #b8dabe;
    border-radius: 12px;

    background: #eef8f0;
}

.line-next-departure span,
.line-next-departure strong,
.line-next-departure small {
    display: block;
}

.line-next-departure span {
    color: #4b7058;

    font-size: 9px;
}

.line-next-departure strong {
    margin: 3px 0;

    color: #277247;

    font-size: 25px;
}

.line-next-departure small {
    color: #5d7c67;

    font-size: 10px;
}

.line-refresh-btn {
    width: 100%;

    min-height: 43px;

    margin-top: 12px;

    border: 1px solid var(--border);
    border-radius: 9px;

    background: #fff;

    color: var(--primary);

    font-family: inherit;
    font-size: 11px;
    font-weight: 800;

    cursor: pointer;
}

.line-refresh-btn:hover {
    border-color: var(--primary);
}

.line-sidebar-row {
    padding: 13px 0;

    border-top: 1px solid var(--border);
}

.line-sidebar-row small,
.line-sidebar-row strong {
    display: block;
}

.line-sidebar-row small {
    margin-bottom: 4px;

    color: var(--muted);

    font-size: 9px;
}

.line-sidebar-row strong {
    font-size: 12px;
}


/* LEGEND */

.line-legend-row {
    padding: 12px 0;

    display: flex;
    align-items: flex-start;

    gap: 10px;

    border-top: 1px solid var(--border);
}

.line-legend-dot {
    width: 11px;
    height: 11px;

    flex: 0 0 11px;

    margin-top: 3px;

    border-radius: 50%;
}

.line-legend-dot.next {
    background: #43905c;
}

.line-legend-dot.passed {
    background: #bd6363;
}

.line-legend-row strong,
.line-legend-row small {
    display: block;
}

.line-legend-row strong {
    font-size: 11px;
}

.line-legend-row small {
    margin-top: 2px;

    color: var(--muted);

    font-size: 9px;
}


/* 404 */

.line-not-found {
    min-height: 500px;

    display: flex;
    align-items: center;
}

.line-not-found h1 {
    margin-bottom: 15px;

    font-size: 50px;
}

.line-not-found p {
    margin-bottom: 25px;

    color: var(--muted);
}


/* RESPONSIVE */

@media (max-width: 1000px) {

    .line-content-layout {
        grid-template-columns: 1fr;
    }

    .line-sidebar {
        display: grid;

        grid-template-columns:
            repeat(2, 1fr);
    }

    .line-times-grid {
        grid-template-columns:
            repeat(5, minmax(0, 1fr));
    }

}

@media (max-width: 700px) {

    .line-hero-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .line-number-large {
        width: 78px;
        height: 78px;

        flex-basis: 78px;

        font-size: 32px;
    }

    .line-route-content {
        flex-direction: column;

        gap: 4px;
    }

    .line-stop-link,
    .line-stop-muted {
        margin-top: 0;
    }

    .line-times-grid {
        grid-template-columns:
            repeat(4, minmax(0, 1fr));
    }

    .line-sidebar {
        grid-template-columns: 1fr;
    }

}

@media (max-width: 450px) {

    .line-times-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

}

/* =====================================================
   PACKAGE 7.3.2
   DATABASE LINE SCHEDULE
   ===================================================== */

.line-trip-tabs {
    display: flex;
    align-items: center;

    gap: 8px;

    flex-wrap: wrap;

    margin-bottom: 22px;
}


.line-trip-tab {
    min-height: 46px;

    padding: 0 16px;

    display: inline-flex;
    align-items: center;

    gap: 9px;

    border: 1px solid var(--border);
    border-radius: 10px;

    background: #fff;

    color: var(--primary);

    font-family: inherit;
    font-size: 11px;
    font-weight: 800;

    cursor: pointer;

    transition:
        background .2s ease,
        color .2s ease,
        border-color .2s ease;
}


.line-trip-tab span {
    color: var(--muted);

    font-size: 10px;
}


.line-trip-tab:hover {
    border-color: var(--primary);
}


.line-trip-tab.active {
    background: var(--primary);
    border-color: var(--primary);

    color: #fff;
}


.line-trip-tab.active span {
    color: rgba(255,255,255,.65);
}


.line-trip-panel {
    display: none;
}


.line-trip-panel.active {
    display: block;
}


.line-trip-heading {
    margin-bottom: 12px;

    padding: 18px;

    background: var(--soft);

    border-radius: 12px;
}


.line-trip-heading span,
.line-trip-heading strong {
    display: block;
}


.line-trip-heading span {
    margin-bottom: 3px;

    color: var(--muted);

    font-size: 9px;
    font-weight: 800;

    text-transform: uppercase;
    letter-spacing: 1px;
}


.line-trip-heading strong {
    font-size: 15px;
}


.line-trip-stop-list {
    overflow: hidden;

    border: 1px solid var(--border);
    border-radius: 14px;
}


.line-trip-stop-row {
    min-height: 58px;

    padding: 0 16px;

    display: grid;

    grid-template-columns:
        38px
        1fr
        auto;

    align-items: center;

    gap: 12px;

    border-bottom: 1px solid var(--border);

    background: #fff;

    transition:
        background .2s ease;
}


.line-trip-stop-row:last-child {
    border-bottom: 0;
}


.line-trip-stop-row:hover {
    background: var(--soft);
}


.line-trip-sequence {
    width: 28px;
    height: 28px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 7px;

    background: var(--soft);

    color: var(--primary);

    font-size: 9px;
    font-weight: 800;
}


.line-trip-stop-name {
    color: var(--text);

    font-size: 12px;
    font-weight: 700;
}


.line-trip-arrival {
    color: var(--primary);

    font-size: 14px;
}


.line-no-schedule {
    padding: 30px;

    border: 1px dashed var(--border);
    border-radius: 14px;

    color: var(--muted);

    text-align: center;
}


.line-sidebar-note {
    margin-top: 10px;

    color: var(--muted);

    font-size: 11px;
    line-height: 1.6;
}


@media (max-width: 550px) {

    .line-trip-stop-row {
        grid-template-columns:
            32px
            1fr
            auto;

        padding: 0 11px;
    }

    .line-trip-stop-name {
        font-size: 11px;
    }

}

/* =====================================================
   PACKAGE 7.4.2 - DAY SWITCH
   ===================================================== */

.line-day-switch-section {
    padding-top: 30px;
}


.line-day-switch {
    min-height: 72px;

    padding: 14px 16px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    border: 1px solid var(--border);
    border-radius: 15px;

    background: #fff;
}


.line-day-switch-info {
    display: flex;
    align-items: baseline;

    gap: 7px;

    flex-wrap: wrap;
}


.line-day-switch-info span {
    color: var(--muted);

    font-size: 11px;
}


.line-day-switch-info strong {
    color: var(--primary);

    font-size: 14px;
}


.line-day-switch-info small {
    color: #9ba39e;

    font-size: 9px;
}


.line-day-buttons {
    display: flex;
    align-items: center;

    gap: 6px;

    flex-wrap: wrap;
}


.line-day-btn {
    min-height: 40px;

    padding: 0 13px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border: 1px solid var(--border);
    border-radius: 9px;

    background: #fff;

    color: var(--primary);

    font-size: 10px;
    font-weight: 800;

    transition:
        background .2s ease,
        color .2s ease,
        border-color .2s ease;
}


.line-day-btn:hover {
    border-color: var(--primary);
}


.line-day-btn.active {
    background: var(--primary);
    border-color: var(--primary);

    color: #fff;
}


@media (max-width: 720px) {

    .line-day-switch {
        align-items: flex-start;
        flex-direction: column;
    }


    .line-day-buttons {
        width: 100%;
    }


    .line-day-btn {
        flex: 1;
    }

}


/* PACKAGE 8.4.3 – DATABASE GALLERY */
.place-db-gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
}
.place-db-gallery img {
    width: 100%;
    aspect-ratio: 4 / 3;
    display: block;
    object-fit: cover;
    border-radius: 12px;
}
@media (max-width: 760px) {
    .place-db-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
    .place-db-gallery { grid-template-columns: 1fr; }
}

/* =========================================================
   PACKAGE 8.6.4 – PUBLIC STAYS / HOTELS MYSQL
   ========================================================= */

.page-hero-stays{
    position:relative;
    min-height:370px;
    display:flex;
    align-items:flex-end;
    overflow:hidden;
    background:
        linear-gradient(135deg,rgba(12,45,35,.76),rgba(12,45,35,.38)),
        url('https://images.unsplash.com/photo-1566073771259-6a8506099945?auto=format&fit=crop&w=1800&q=82')
        center 52%/cover no-repeat;
}
.page-hero-stays .page-hero-content{padding-top:150px;padding-bottom:62px}
.stays-toolbar-section{position:relative;z-index:5;margin-top:-28px}
.stays-toolbar{display:flex;align-items:center;gap:14px;padding:14px;background:#fff;border:1px solid rgba(17,52,40,.08);border-radius:18px;box-shadow:0 18px 50px rgba(18,49,38,.10)}
.stays-search{min-width:270px;flex:1;display:flex;align-items:center;gap:10px;height:48px;padding:0 15px;border:1px solid #dfe7e2;border-radius:12px;background:#f8faf8}
.stays-search svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;color:#6c7e75}
.stays-search input{width:100%;border:0;outline:0;background:transparent;font:inherit;color:var(--text)}
.stays-filter{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.stay-filter-btn{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:0 13px;border:1px solid #dfe7e2;border-radius:999px;background:#fff;color:#43564d;font:inherit;font-size:13px;font-weight:750;cursor:pointer;transition:.2s ease}
.stay-filter-btn span{min-width:20px;height:20px;display:grid;place-items:center;padding:0 5px;border-radius:999px;background:#f0f4f1;font-size:10px}
.stay-filter-btn:hover,.stay-filter-btn.active{border-color:var(--primary);background:var(--primary);color:#fff}
.stay-filter-btn.active span{background:rgba(255,255,255,.15)}
.stays-catalog-section{padding:72px 0 92px}
.stays-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:30px}
.stays-heading h2{margin:6px 0 8px;font-size:clamp(29px,4vw,44px);line-height:1.08}
.stays-heading p{max-width:680px;margin:0;color:var(--muted);line-height:1.7}
.stays-results-count{min-width:92px;text-align:right}
.stays-results-count strong{display:block;font-size:30px;line-height:1;color:var(--primary)}
.stays-results-count span{font-size:12px;color:var(--muted)}
.stays-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.stay-card{min-width:0;overflow:hidden;border:1px solid #e2e8e4;border-radius:18px;background:#fff;box-shadow:0 10px 32px rgba(25,55,44,.055);transition:transform .22s ease,box-shadow .22s ease}
.stay-card:hover{transform:translateY(-4px);box-shadow:0 18px 45px rgba(25,55,44,.11)}
.stay-card[hidden]{display:none!important}
.stay-card-image{position:relative;display:block;height:235px;overflow:hidden;background:#e8eeea}
.stay-card-image img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .4s ease}
.stay-card:hover .stay-card-image img{transform:scale(1.035)}
.stay-card-image-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(9,28,21,.04),rgba(9,28,21,.32))}
.stay-card-image-placeholder{width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(135deg,#e5ece7,#f5f7f5);color:#799084;font-size:14px;font-weight:850}
.stay-category-badge,.stay-featured-badge,.stay-stars{position:absolute;z-index:2}
.stay-category-badge{top:14px;left:14px;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.93);color:var(--primary);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.stay-featured-badge{top:14px;right:14px;padding:7px 10px;border-radius:999px;background:var(--accent);color:#fff;font-size:10px;font-weight:850}
.stay-stars{left:14px;bottom:13px;color:#f6c75c;font-size:13px;letter-spacing:2px;text-shadow:0 1px 5px rgba(0,0,0,.3)}
.stay-card-body{padding:20px}
.stay-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.stay-card h3{margin:0;font-size:20px;line-height:1.25}
.stay-card h3 a{color:var(--text);text-decoration:none}
.stay-location{display:flex;align-items:center;gap:5px;margin:8px 0 0;color:var(--muted);font-size:12px}
.stay-location svg{width:15px;height:15px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7}
.stay-price{text-align:right;white-space:nowrap}
.stay-price small{display:block;color:var(--muted);font-size:10px}
.stay-price strong{font-size:20px;color:var(--primary)}
.stay-description{margin:15px 0 0;color:#607068;font-size:13px;line-height:1.65}
.stay-capacity{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}
.stay-capacity span{padding:7px 9px;border-radius:8px;background:#f5f8f6;color:#6a786f;font-size:11px}
.stay-capacity strong{color:var(--text)}
.stay-amenities{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}
.stay-amenities span{padding:6px 8px;border:1px solid #e2e8e4;border-radius:999px;color:#607068;font-size:10px}
.stay-amenities .stay-more-amenities{background:#eef4f0;color:var(--primary);font-weight:800}
.stay-card-footer{margin-top:18px;padding-top:15px;border-top:1px solid #edf0ee}
.stay-details-link{display:flex;align-items:center;justify-content:space-between;color:var(--primary);text-decoration:none;font-size:12px;font-weight:850}
.stay-details-link span{font-size:18px;transition:transform .2s ease}
.stay-details-link:hover span{transform:translateX(4px)}
.stays-empty{display:none;margin-top:28px;padding:45px;border:1px dashed #ccd8d0;border-radius:16px;text-align:center;background:#fafcfa}
.stays-empty.is-visible{display:block}
.stays-empty h3,.stays-database-empty h2{margin:0 0 8px}
.stays-empty p,.stays-database-empty p{margin:0;color:var(--muted)}
.stays-database-empty{padding:70px 25px;border:1px dashed #ccd8d0;border-radius:18px;background:#fafcfa;text-align:center}
.stays-database-empty p{max-width:560px;margin:0 auto}
.stays-info-section{padding:75px 0;background:var(--primary);color:#fff}
.stays-info-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.85fr);gap:70px;align-items:center}
.stays-info-inner h2{margin:7px 0 13px;font-size:clamp(28px,4vw,43px);line-height:1.1}
.stays-info-inner p{max-width:650px;margin:0;color:rgba(255,255,255,.72);line-height:1.75}
.stays-info-links{display:grid;gap:9px}
.stays-info-links a{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:16px 18px;border:1px solid rgba(255,255,255,.13);border-radius:12px;background:rgba(255,255,255,.055);color:#fff;text-decoration:none;transition:.2s ease}
.stays-info-links a:hover{background:rgba(255,255,255,.1);transform:translateX(3px)}
.stays-info-links strong{font-size:13px}.stays-info-links span{font-size:11px;color:rgba(255,255,255,.7)}
@media(max-width:1050px){.stays-toolbar{align-items:stretch;flex-direction:column}.stays-filter{justify-content:flex-start}.stays-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stays-info-inner{grid-template-columns:1fr;gap:35px}}
@media(max-width:680px){.page-hero-stays{min-height:330px}.page-hero-stays .page-hero-content{padding-top:130px;padding-bottom:55px}.stays-toolbar-section{margin-top:-18px}.stays-toolbar{border-radius:14px}.stays-search{min-width:0}.stays-filter{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.stay-filter-btn{flex:0 0 auto}.stays-catalog-section{padding:55px 0 70px}.stays-heading{align-items:flex-start;flex-direction:column}.stays-results-count{text-align:left}.stays-grid{grid-template-columns:1fr}.stay-card-image{height:225px}.stays-info-links a{align-items:flex-start;flex-direction:column}}
/* =========================================================
   PACKAGE 8.6.5 – PUBLIC HOTEL DETAIL MYSQL
   ========================================================= */

.stay-detail-not-found{min-height:65vh;display:grid;align-items:center;padding:120px 0 80px;text-align:center}
.stay-detail-not-found h1{margin:0 0 10px;font-size:clamp(34px,5vw,58px)}
.stay-detail-not-found p{margin:0 0 24px;color:var(--muted)}
.stay-detail-hero{position:relative;min-height:530px;display:flex;align-items:flex-end;overflow:hidden;background:#17372c}
.stay-detail-hero-image{position:absolute;inset:0;background-position:center;background-size:cover;transform:scale(1.01)}
.stay-detail-hero-image-empty{background:linear-gradient(135deg,#234a3b,#789185)}
.stay-detail-hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(7,25,18,.16),rgba(7,25,18,.82))}
.stay-detail-hero-content{position:relative;z-index:2;padding-top:150px;padding-bottom:60px;color:#fff}
.stay-detail-back{display:inline-flex;margin-bottom:48px;color:rgba(255,255,255,.82);text-decoration:none;font-size:12px;font-weight:750}
.stay-detail-back:hover{color:#fff}
.stay-detail-badges{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}
.stay-detail-category,.stay-detail-featured{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.stay-detail-category{background:#fff;color:var(--primary)}
.stay-detail-featured{background:var(--accent);color:#fff}
.stay-detail-stars{margin-bottom:8px;color:#f6c75c;font-size:15px;letter-spacing:3px;text-shadow:0 2px 8px rgba(0,0,0,.25)}
.stay-detail-hero h1{max-width:850px;margin:0;font-size:clamp(40px,6vw,72px);line-height:1.02}
.stay-detail-location{margin:13px 0 0;color:rgba(255,255,255,.82);font-size:15px}
.stay-detail-action-section{position:relative;z-index:4;margin-top:-28px}
.stay-detail-action-bar{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:18px 20px;border:1px solid rgba(17,52,40,.08);border-radius:17px;background:#fff;box-shadow:0 18px 48px rgba(18,49,38,.11)}
.stay-detail-action-stats{display:flex;gap:8px;flex-wrap:wrap}
.stay-detail-action-stats>div{min-width:88px;padding:8px 12px;border-radius:10px;background:#f5f8f6}
.stay-detail-action-stats span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;font-weight:800}
.stay-detail-action-stats strong{display:block;margin-top:2px;color:var(--primary);font-size:16px}
.stay-detail-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.stay-detail-action-btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 15px;border:1px solid #dce4df;border-radius:10px;background:#fff;color:var(--primary);text-decoration:none;font-size:11px;font-weight:850}
.stay-detail-action-btn:hover{background:#f5f8f6}
.stay-detail-action-btn.stay-detail-book-btn{border-color:var(--primary);background:var(--primary);color:#fff}
.stay-detail-content-section{padding-top:70px}
.stay-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:55px;align-items:start}
.stay-detail-main h2{margin:6px 0 16px;font-size:clamp(30px,4vw,45px);line-height:1.08}
.stay-detail-lead{margin:0;color:#53645c;font-size:16px;line-height:1.85}
.stay-detail-amenities-block,.stay-detail-gallery-block{margin-top:42px}
.stay-detail-amenities-block h3,.stay-detail-gallery-block h3{margin:0 0 15px;font-size:23px}
.stay-detail-amenities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.stay-detail-amenity{display:flex;align-items:center;gap:9px;min-height:48px;padding:11px 13px;border:1px solid #e3e9e5;border-radius:10px;background:#fff}
.stay-detail-amenity>span{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#edf6f0;color:var(--primary);font-size:11px;font-weight:900}
.stay-detail-amenity strong{font-size:12px}
.stay-detail-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.stay-detail-gallery-item{display:block;overflow:hidden;border-radius:13px;background:#e8eeea}
.stay-detail-gallery-item:first-child,.stay-detail-gallery-item.is-cover{grid-column:span 2}
.stay-detail-gallery-item img{width:100%;height:245px;display:block;object-fit:cover;transition:transform .3s ease}
.stay-detail-gallery-item:first-child img,.stay-detail-gallery-item.is-cover img{height:390px}
.stay-detail-gallery-item:hover img{transform:scale(1.025)}
.stay-detail-sidebar{display:grid;gap:15px;position:sticky;top:100px}
.stay-detail-sidebar-card,.stay-detail-booking-card{padding:23px;border:1px solid #e2e8e4;border-radius:15px;background:#fff;box-shadow:0 9px 30px rgba(22,50,40,.045)}
.stay-detail-sidebar-label{color:var(--primary);font-size:9px;font-weight:900;letter-spacing:.08em}
.stay-detail-sidebar-card h3,.stay-detail-booking-card h3{margin:6px 0 17px;font-size:21px}
.stay-detail-sidebar-row{padding:11px 0;border-top:1px solid #edf0ee}
.stay-detail-sidebar-row small{display:block;margin-bottom:3px;color:var(--muted);font-size:9px;text-transform:uppercase;font-weight:800}
.stay-detail-sidebar-row strong,.stay-detail-sidebar-row a{font-size:12px;color:var(--text);text-decoration:none}
.stay-detail-sidebar-row a:hover{color:var(--primary)}
.stay-detail-map-btn{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding:12px 13px;border-radius:9px;background:#f1f6f3;color:var(--primary);text-decoration:none;font-size:11px;font-weight:850}
.stay-detail-booking-card{background:#f2f7f4}
.stay-detail-booking-card p{margin:0 0 16px;color:var(--muted);font-size:12px;line-height:1.65}
.stay-detail-copy-btn{width:100%;min-height:40px;border:1px solid #dce4df;border-radius:9px;background:#fff;color:var(--primary);font:inherit;font-size:11px;font-weight:850;cursor:pointer}
.stay-detail-copy-btn:hover{background:#f5f8f6}
@media(max-width:980px){.stay-detail-action-bar{align-items:flex-start;flex-direction:column}.stay-detail-actions{justify-content:flex-start}.stay-detail-layout{grid-template-columns:1fr}.stay-detail-sidebar{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.stay-detail-hero{min-height:470px}.stay-detail-hero-content{padding-top:135px;padding-bottom:54px}.stay-detail-back{margin-bottom:34px}.stay-detail-action-section{margin-top:-18px}.stay-detail-action-bar{padding:14px}.stay-detail-action-stats{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.stay-detail-action-stats>div{min-width:0}.stay-detail-actions{width:100%;display:grid;grid-template-columns:1fr}.stay-detail-amenities,.stay-detail-sidebar{grid-template-columns:1fr}.stay-detail-gallery{grid-template-columns:1fr}.stay-detail-gallery-item:first-child,.stay-detail-gallery-item.is-cover{grid-column:auto}.stay-detail-gallery-item img,.stay-detail-gallery-item:first-child img,.stay-detail-gallery-item.is-cover img{height:250px}}
/* =========================================================
   PACKAGE 8.7.4 – PUBLIC EVENTS MYSQL
   ========================================================= */

.page-hero-events{
    position:relative;
    min-height:370px;
    display:flex;
    align-items:flex-end;
    overflow:hidden;
    background:
        linear-gradient(135deg,rgba(12,45,35,.78),rgba(12,45,35,.38)),
        radial-gradient(circle at 70% 30%,rgba(255,255,255,.12),transparent 32%),
        #315c4b
}
.page-hero-events .page-hero-content{
    padding-top:150px;
    padding-bottom:62px
}

.events-toolbar-section{
    position:relative;
    z-index:5;
    margin-top:-28px
}
.events-toolbar{
    display:flex;
    align-items:center;
    gap:14px;
    padding:14px;
    border:1px solid rgba(17,52,40,.08);
    border-radius:18px;
    background:#fff;
    box-shadow:0 18px 50px rgba(18,49,38,.10)
}
.events-search{
    min-width:270px;
    flex:1;
    display:flex;
    align-items:center;
    gap:10px;
    height:48px;
    padding:0 15px;
    border:1px solid #dfe7e2;
    border-radius:12px;
    background:#f8faf8
}
.events-search svg{
    width:19px;
    height:19px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    color:#6c7e75
}
.events-search input{
    width:100%;
    border:0;
    outline:0;
    background:transparent;
    font:inherit;
    color:var(--text)
}
.events-filter{
    display:flex;
    gap:7px;
    flex-wrap:wrap;
    justify-content:flex-end
}
.event-filter-btn{
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:42px;
    padding:0 13px;
    border:1px solid #dfe7e2;
    border-radius:999px;
    background:#fff;
    color:#43564d;
    font:inherit;
    font-size:13px;
    font-weight:750;
    cursor:pointer;
    transition:.2s ease
}
.event-filter-btn span{
    min-width:20px;
    height:20px;
    display:grid;
    place-items:center;
    padding:0 5px;
    border-radius:999px;
    background:#f0f4f1;
    font-size:10px
}
.event-filter-btn:hover,
.event-filter-btn.active{
    border-color:var(--primary);
    background:var(--primary);
    color:#fff
}
.event-filter-btn.active span{
    background:rgba(255,255,255,.15)
}

.events-catalog-section{
    padding:72px 0 92px
}
.events-heading{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:30px;
    margin-bottom:30px
}
.events-heading h2{
    margin:6px 0 8px;
    font-size:clamp(29px,4vw,44px);
    line-height:1.08
}
.events-heading p{
    max-width:680px;
    margin:0;
    color:var(--muted);
    line-height:1.7
}
.events-results-count{
    min-width:92px;
    text-align:right
}
.events-results-count strong{
    display:block;
    color:var(--primary);
    font-size:30px;
    line-height:1
}
.events-results-count span{
    color:var(--muted);
    font-size:12px
}

.events-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:20px
}
.catalog-event-card{
    min-width:0;
    overflow:hidden;
    display:grid;
    grid-template-columns:minmax(300px,420px) minmax(0,1fr);
    min-height:300px;
    border:1px solid #e2e8e4;
    border-radius:18px;
    background:#fff;
    box-shadow:0 10px 32px rgba(25,55,44,.055);
    transition:transform .22s ease,box-shadow .22s ease
}
.catalog-event-card:hover{
    transform:translateY(-4px);
    box-shadow:0 18px 45px rgba(25,55,44,.11)
}
.catalog-event-card[hidden]{
    display:none!important
}
.event-card-image{
    position:relative;
    display:block;
    height:100%;
    min-height:300px;
    overflow:hidden;
    background:#e8eeea
}
.event-card-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    transition:transform .4s ease
}
.catalog-event-card:hover .event-card-image img{
    transform:scale(1.035)
}
.event-card-image-overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(to bottom,rgba(8,26,19,.06),rgba(8,26,19,.43))
}
.event-card-image-placeholder{
    width:100%;
    height:100%;
    display:grid;
    place-items:center;
    background:linear-gradient(135deg,#e5ece7,#f5f7f5);
    color:#799084;
    font-size:14px;
    font-weight:850
}

.event-date-badge{
    position:absolute;
    left:14px;
    bottom:14px;
    z-index:2;
    width:58px;
    min-height:65px;
    display:grid;
    place-items:center;
    align-content:center;
    border-radius:12px;
    background:#fff;
    color:var(--primary);
    box-shadow:0 7px 20px rgba(0,0,0,.15)
}
.event-date-badge strong{
    display:block;
    font-size:25px;
    line-height:1
}
.event-date-badge span{
    margin-top:3px;
    font-size:10px;
    font-weight:850;
    text-transform:uppercase
}

.event-category-badge,
.event-featured-badge{
    position:absolute;
    top:14px;
    z-index:2;
    padding:7px 10px;
    border-radius:999px;
    font-size:10px;
    font-weight:850
}
.event-category-badge{
    left:14px;
    background:rgba(255,255,255,.94);
    color:var(--primary);
    text-transform:uppercase
}
.event-featured-badge{
    right:14px;
    background:var(--accent);
    color:#fff
}

.event-card-body{
    padding:20px
}
.event-card-meta{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-bottom:10px
}
.event-card-meta span{
    padding:5px 7px;
    border-radius:999px;
    background:#f3f7f4;
    color:#68776f;
    font-size:9px;
    font-weight:750
}
.catalog-event-card h3{
    margin:0;
    font-size:20px;
    line-height:1.28
}
.catalog-event-card h3 a{
    color:var(--text);
    text-decoration:none
}
.event-location{
    display:flex;
    align-items:center;
    gap:6px;
    margin:10px 0 0;
    color:var(--muted);
    font-size:12px
}
.event-location svg{
    width:15px;
    height:15px;
    flex:0 0 auto;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7
}
.event-description{
    margin:14px 0 0;
    color:#607068;
    font-size:13px;
    line-height:1.65
}
.event-price{
    display:inline-flex;
    margin-top:14px;
    padding:6px 9px;
    border-radius:8px;
    background:#eef5f1;
    color:var(--primary);
    font-size:10px;
    font-weight:850
}
.event-card-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-top:18px;
    padding-top:15px;
    border-top:1px solid #edf0ee
}
.event-details-link,
.event-ticket-link{
    text-decoration:none;
    font-size:11px;
    font-weight:850
}
.event-details-link{
    display:flex;
    align-items:center;
    gap:8px;
    color:var(--primary)
}
.event-details-link span{
    font-size:18px;
    transition:transform .2s ease
}
.event-details-link:hover span{
    transform:translateX(4px)
}
.event-ticket-link{
    padding:7px 10px;
    border-radius:8px;
    background:var(--primary);
    color:#fff
}

.events-empty{
    display:none;
    margin-top:28px;
    padding:45px;
    border:1px dashed #ccd8d0;
    border-radius:16px;
    background:#fafcfa;
    text-align:center
}
.events-empty.is-visible{
    display:block
}
.events-empty h3,
.events-database-empty h2{
    margin:0 0 8px
}
.events-empty p,
.events-database-empty p{
    margin:0;
    color:var(--muted)
}
.events-database-empty{
    padding:70px 25px;
    border:1px dashed #ccd8d0;
    border-radius:18px;
    background:#fafcfa;
    text-align:center
}
.events-database-empty p{
    max-width:570px;
    margin:0 auto
}

.events-explore-section{
    padding:75px 0;
    background:var(--primary);
    color:#fff
}
.events-explore-inner{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(320px,.85fr);
    gap:70px;
    align-items:center
}
.events-explore-inner h2{
    margin:7px 0 13px;
    font-size:clamp(28px,4vw,43px);
    line-height:1.1
}
.events-explore-inner p{
    max-width:650px;
    margin:0;
    color:rgba(255,255,255,.72);
    line-height:1.75
}
.events-explore-links{
    display:grid;
    gap:9px
}
.events-explore-links a{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;
    padding:16px 18px;
    border:1px solid rgba(255,255,255,.13);
    border-radius:12px;
    background:rgba(255,255,255,.055);
    color:#fff;
    text-decoration:none;
    transition:.2s ease
}
.events-explore-links a:hover{
    background:rgba(255,255,255,.1);
    transform:translateX(3px)
}
.events-explore-links strong{
    font-size:13px
}
.events-explore-links span{
    color:rgba(255,255,255,.7);
    font-size:11px
}

@media(max-width:1050px){
    .events-toolbar{
        align-items:stretch;
        flex-direction:column
    }
    .events-filter{
        justify-content:flex-start
    }
    .catalog-event-card{
        grid-template-columns:320px minmax(0,1fr)
    }
    .events-explore-inner{
        grid-template-columns:1fr;
        gap:35px
    }
}

@media(max-width:680px){
    .page-hero-events{
        min-height:330px
    }
    .page-hero-events .page-hero-content{
        padding-top:130px;
        padding-bottom:55px
    }
    .events-toolbar-section{
        margin-top:-18px
    }
    .events-toolbar{
        border-radius:14px
    }
    .events-search{
        min-width:0
    }
    .events-filter{
        flex-wrap:nowrap;
        overflow-x:auto;
        padding-bottom:4px
    }
    .event-filter-btn{
        flex:0 0 auto
    }
    .events-catalog-section{
        padding:55px 0 70px
    }
    .events-heading{
        align-items:flex-start;
        flex-direction:column
    }
    .events-results-count{
        text-align:left
    }
    .catalog-event-card{
        grid-template-columns:1fr
    }
    .event-card-image{
        height:240px;
        min-height:240px
    }
    .events-explore-links a{
        align-items:flex-start;
        flex-direction:column
    }
}
/* =========================================================
   PACKAGE 8.7.5 – PUBLIC EVENT DETAIL MYSQL
   ========================================================= */

.event-detail-not-found {
    min-height: 65vh;
    display: grid;
    align-items: center;
    padding: 120px 0 80px;
    text-align: center;
}

.event-detail-not-found h1 {
    margin: 0 0 10px;
    font-size: clamp(34px, 5vw, 58px);
}

.event-detail-not-found p {
    margin: 0 0 24px;
    color: var(--muted);
}

.event-detail-hero {
    position: relative;
    min-height: 540px;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    background: #17372c;
}

.event-detail-hero-image {
    position: absolute;
    inset: 0;
    background-position: center;
    background-size: cover;
    transform: scale(1.01);
}

.event-detail-hero-image-empty {
    background:
        radial-gradient(
            circle at 72% 30%,
            rgba(255,255,255,.14),
            transparent 30%
        ),
        linear-gradient(
            135deg,
            #234a3b,
            #789185
        );
}

.event-detail-hero-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            to bottom,
            rgba(7,25,18,.16),
            rgba(7,25,18,.84)
        );
}

.event-detail-hero-content {
    position: relative;
    z-index: 2;
    padding-top: 150px;
    padding-bottom: 60px;
    color: #fff;
}

.event-detail-back {
    display: inline-flex;
    margin-bottom: 46px;
    color: rgba(255,255,255,.82);
    text-decoration: none;
    font-size: 12px;
    font-weight: 750;
}

.event-detail-back:hover {
    color: #fff;
}

.event-detail-badges {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.event-detail-category,
.event-detail-featured,
.event-detail-status {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.event-detail-category {
    background: #fff;
    color: var(--primary);
}

.event-detail-featured {
    background: var(--accent);
    color: #fff;
}

.event-detail-status {
    background: rgba(255,255,255,.14);
    color: #fff;
    backdrop-filter: blur(8px);
}

.event-detail-status.is-current {
    background: #def5e5;
    color: #20623b;
}

.event-detail-status.is-past {
    background: rgba(255,255,255,.86);
    color: #6d7772;
}

.event-detail-hero h1 {
    max-width: 930px;
    margin: 0;
    font-size: clamp(40px, 6vw, 72px);
    line-height: 1.02;
}

.event-detail-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 15px;
}

.event-detail-hero-meta span {
    color: rgba(255,255,255,.83);
    font-size: 13px;
}

.event-detail-action-section {
    position: relative;
    z-index: 4;
    margin-top: -28px;
}

.event-detail-action-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 25px;
    padding: 18px 20px;
    border: 1px solid rgba(17,52,40,.08);
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 18px 48px rgba(18,49,38,.11);
}

.event-detail-action-info {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.event-detail-action-info > div {
    min-width: 105px;
    padding: 8px 12px;
    border-radius: 10px;
    background: #f5f8f6;
}

.event-detail-action-info span {
    display: block;
    color: var(--muted);
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
}

.event-detail-action-info strong {
    display: block;
    margin-top: 2px;
    color: var(--primary);
    font-size: 14px;
}

.event-detail-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.event-detail-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 15px;
    border: 1px solid #dce4df;
    border-radius: 10px;
    background: #fff;
    color: var(--primary);
    text-decoration: none;
    font-size: 11px;
    font-weight: 850;
}

.event-detail-action-btn:hover {
    background: #f5f8f6;
}

.event-detail-ticket-btn {
    border-color: var(--primary);
    background: var(--primary);
    color: #fff;
}

.event-detail-content-section {
    padding-top: 70px;
}

.event-detail-layout {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        330px;
    gap: 55px;
    align-items: start;
}

.event-detail-main h2 {
    margin: 6px 0 16px;
    font-size: clamp(30px, 4vw, 45px);
    line-height: 1.08;
}

.event-detail-lead {
    margin: 0;
    color: #53645c;
    font-size: 16px;
    line-height: 1.85;
}

.event-detail-recurring {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-top: 28px;
    padding: 17px;
    border-radius: 12px;
    background: #f2f7f4;
}

.event-detail-recurring > span {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 50%;
    background: #fff;
    color: var(--primary);
    font-size: 18px;
}

.event-detail-recurring strong {
    display: block;
    font-size: 13px;
}

.event-detail-recurring p {
    margin: 4px 0 0;
    color: var(--muted);
    font-size: 12px;
}

.event-detail-gallery-block {
    margin-top: 42px;
}

.event-detail-gallery-block h3 {
    margin: 0;
    font-size: 23px;
}

.event-detail-gallery {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.event-detail-gallery-item {
    display: block;
    overflow: hidden;
    border-radius: 13px;
    background: #e8eeea;
}

.event-detail-gallery-item:first-child,
.event-detail-gallery-item.is-cover {
    grid-column: span 2;
}

.event-detail-gallery-item img {
    width: 100%;
    height: 245px;
    display: block;
    object-fit: cover;
    transition: transform .3s ease;
}

.event-detail-gallery-item:first-child img,
.event-detail-gallery-item.is-cover img {
    height: 390px;
}

.event-detail-gallery-item:hover img {
    transform: scale(1.025);
}

.event-detail-sidebar {
    display: grid;
    gap: 15px;
    position: sticky;
    top: 100px;
}

.event-detail-sidebar-card,
.event-detail-ticket-card {
    padding: 23px;
    border: 1px solid #e2e8e4;
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 9px 30px rgba(22,50,40,.045);
}

.event-detail-sidebar-label {
    color: var(--primary);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .08em;
}

.event-detail-sidebar-card h3,
.event-detail-ticket-card h3 {
    margin: 6px 0 17px;
    font-size: 21px;
}

.event-detail-sidebar-row {
    padding: 11px 0;
    border-top: 1px solid #edf0ee;
}

.event-detail-sidebar-row small {
    display: block;
    margin-bottom: 3px;
    color: var(--muted);
    font-size: 9px;
    text-transform: uppercase;
    font-weight: 800;
}

.event-detail-sidebar-row strong,
.event-detail-sidebar-row a {
    color: var(--text);
    text-decoration: none;
    font-size: 12px;
}

.event-detail-sidebar-row a:hover {
    color: var(--primary);
}

.event-detail-map-btn {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 14px;
    padding: 12px 13px;
    border-radius: 9px;
    background: #f1f6f3;
    color: var(--primary);
    text-decoration: none;
    font-size: 11px;
    font-weight: 850;
}

.event-detail-ticket-card {
    background: #f2f7f4;
}

.event-detail-ticket-card p {
    margin: 0 0 16px;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.65;
}

.event-detail-facebook-link {
    color: var(--primary);
    text-decoration: none;
    font-size: 11px;
    font-weight: 850;
}

.event-detail-copy-btn {
    width: 100%;
    min-height: 40px;
    border: 1px solid #dce4df;
    border-radius: 9px;
    background: #fff;
    color: var(--primary);
    font: inherit;
    font-size: 11px;
    font-weight: 850;
    cursor: pointer;
}

.event-detail-copy-btn:hover {
    background: #f5f8f6;
}

@media (max-width: 980px) {

    .event-detail-action-bar {
        align-items: flex-start;
        flex-direction: column;
    }

    .event-detail-actions {
        justify-content: flex-start;
    }

    .event-detail-layout {
        grid-template-columns: 1fr;
    }

    .event-detail-sidebar {
        position: static;
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {

    .event-detail-hero {
        min-height: 470px;
    }

    .event-detail-hero-content {
        padding-top: 135px;
        padding-bottom: 54px;
    }

    .event-detail-back {
        margin-bottom: 34px;
    }

    .event-detail-action-section {
        margin-top: -18px;
    }

    .event-detail-action-bar {
        padding: 14px;
    }

    .event-detail-action-info {
        width: 100%;
        display: grid;
        grid-template-columns:
            repeat(3, 1fr);
    }

    .event-detail-action-info > div {
        min-width: 0;
    }

    .event-detail-actions {
        width: 100%;
        display: grid;
        grid-template-columns: 1fr;
    }

    .event-detail-sidebar {
        grid-template-columns: 1fr;
    }

    .event-detail-gallery {
        grid-template-columns: 1fr;
    }

    .event-detail-gallery-item:first-child,
    .event-detail-gallery-item.is-cover {
        grid-column: auto;
    }

    .event-detail-gallery-item img,
    .event-detail-gallery-item:first-child img,
    .event-detail-gallery-item.is-cover img {
        height: 250px;
    }
}
/* PUBLIC: common toolbar language */
.unified-catalog-toolbar{
    display:flex;
    align-items:center;
    gap:14px;
    padding:14px;
    border:1px solid rgba(17,52,40,.08);
    border-radius:18px;
    background:#fff;
    box-shadow:0 18px 50px rgba(18,49,38,.10)
}
.unified-catalog-search{
    min-width:260px;
    flex:1
}
.unified-catalog-filters{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    justify-content:flex-end
}
.unified-catalog-filters button span{
    display:inline-grid;
    min-width:20px;
    height:20px;
    margin-left:5px;
    place-items:center;
    padding:0 5px;
    border-radius:999px;
    background:rgba(20,62,46,.07);
    font-size:10px
}
.unified-catalog-filters button.active span{
    background:rgba(255,255,255,.15)
}

.unified-catalog-heading-tools{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    flex-wrap:wrap
}
.unified-catalog-sort{
    display:flex;
    align-items:center;
    gap:7px;
    min-height:42px;
    padding:0 11px;
    border:1px solid #dfe7e2;
    border-radius:10px;
    background:#fff
}
.unified-catalog-sort label{
    color:#78867f;
    font-size:10px;
    white-space:nowrap
}
.unified-catalog-sort select{
    border:0;
    outline:0;
    background:transparent;
    color:#1e332a;
    font:inherit;
    font-size:11px;
    font-weight:800;
    cursor:pointer
}
.unified-catalog-add{
    min-height:42px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    padding:0 14px;
    border-radius:10px;
    background:var(--primary);
    color:#fff!important;
    text-decoration:none;
    font-size:11px;
    font-weight:850;
    box-shadow:0 8px 20px rgba(18,60,45,.10)
}
.unified-catalog-add:hover{
    transform:translateY(-1px);
    filter:brightness(1.04)
}
.unified-catalog-add span{
    font-size:16px;
    line-height:1
}

/* PUBLIC: pagination */
.unified-catalog-pagination{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:6px;
    margin-top:30px
}
.unified-page-btn{
    min-width:38px;
    height:38px;
    padding:0 10px;
    border:1px solid #dfe7e2;
    border-radius:9px;
    background:#fff;
    color:var(--primary);
    font:inherit;
    font-size:11px;
    font-weight:850;
    cursor:pointer
}
.unified-page-btn:hover:not(:disabled),
.unified-page-btn.active{
    border-color:var(--primary);
    background:var(--primary);
    color:#fff
}
.unified-page-btn:disabled{
    opacity:.35;
    cursor:default
}

/* Keep all three catalogue headings aligned */
.restaurants-catalog-heading-actions,
.stays-heading,
.events-heading{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:28px
}

.submission-hero{
    padding:130px 0 70px;
    background:linear-gradient(135deg,#123c2d,#255543);
    color:#fff
}
.submission-back{
    display:inline-flex;
    margin-bottom:35px;
    color:rgba(255,255,255,.8);
    text-decoration:none;
    font-size:12px;
    font-weight:750
}
.submission-hero h1{
    margin:7px 0 12px;
    max-width:850px;
    font-size:clamp(38px,6vw,64px);
    line-height:1.05
}
.submission-hero p{
    max-width:760px;
    margin:0;
    color:rgba(255,255,255,.75);
    line-height:1.7
}

.submission-section{
    padding:70px 0 90px;
    background:#f6f8f6
}
.submission-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 320px;
    gap:28px;
    align-items:start
}
.submission-main,
.submission-side{
    display:grid;
    gap:16px
}
.submission-panel,
.submission-side-card{
    padding:24px;
    border:1px solid #e0e7e2;
    border-radius:16px;
    background:#fff
}
.submission-panel-label{
    color:#d9942c;
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em
}
.submission-form{
    display:grid;
    gap:16px
}
.submission-form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:13px;
    margin-top:16px
}
.submission-form-grid label{
    display:grid;
    gap:6px
}
.submission-form-grid label.is-wide{
    grid-column:1/-1
}
.submission-form-grid label>span{
    color:#6f7d75;
    font-size:10px;
    font-weight:800
}
.submission-form-grid input,
.submission-form-grid select,
.submission-form-grid textarea{
    width:100%;
    border:1px solid #dce5df;
    border-radius:10px;
    background:#fff;
    color:#173027;
    font:inherit;
    outline:0
}
.submission-form-grid input,
.submission-form-grid select{
    min-height:44px;
    padding:0 12px
}
.submission-form-grid textarea{
    padding:12px;
    resize:vertical;
    line-height:1.6
}
.submission-form-grid input:focus,
.submission-form-grid select:focus,
.submission-form-grid textarea:focus{
    border-color:#92aa9c;
    box-shadow:0 0 0 3px rgba(18,60,45,.06)
}
.submission-consent{
    padding:15px 17px;
    border-radius:12px;
    background:#eef4f0
}
.submission-consent strong{
    display:block;
    margin-bottom:4px;
    color:#173027;
    font-size:12px
}
.submission-consent p{
    margin:0;
    color:#66766d;
    font-size:12px;
    line-height:1.6
}
.submission-submit{
    min-height:48px;
    border:0;
    border-radius:10px;
    background:#123c2d;
    color:#fff;
    font:inherit;
    font-size:12px;
    font-weight:850;
    cursor:pointer
}
.submission-submit:hover{
    filter:brightness(1.06)
}
.submission-message{
    padding:17px;
    border-radius:12px
}
.submission-message strong{
    display:block;
    margin-bottom:4px
}
.submission-message p{
    margin:0;
    font-size:12px
}
.submission-message.is-success{
    background:#eaf6ee;
    color:#23653c
}
.submission-message.is-error{
    background:#fff0ed;
    color:#8b3f32
}
.submission-side-card h3{
    margin:7px 0 9px;
    font-size:20px
}
.submission-side-card p{
    margin:0;
    color:#68766f;
    font-size:12px;
    line-height:1.7
}

.submission-upload-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin-top:16px
}
.submission-upload-box{
    position:relative;
    min-height:145px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:7px;
    padding:20px;
    border:1px dashed #bccac1;
    border-radius:12px;
    background:#f8faf8;
    text-align:center;
    cursor:pointer
}
.submission-upload-box:hover{
    border-color:#123c2d;
    background:#f1f6f3
}
.submission-upload-box input[type=file]{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    opacity:0;
    cursor:pointer
}
.submission-upload-box strong{
    color:#173027;
    font-size:13px
}
.submission-upload-box span{
    color:#748179;
    font-size:11px
}
.submission-upload-note{
    margin:12px 0 0;
    color:#748179;
    font-size:11px;
    line-height:1.6
}

.submission-disabled{
    min-height:70vh;
    display:grid;
    align-items:center;
    padding:130px 0 80px;
    background:#f6f8f6;
    text-align:center
}

.submission-disabled .container{
    max-width:720px
}

.submission-disabled h1{
    margin:8px 0 12px;
    font-size:clamp(34px,5vw,54px);
    line-height:1.05
}

.submission-disabled p{
    margin:0 auto 22px;
    max-width:620px;
    color:var(--muted);
    line-height:1.75
}

.account-auth-page{
    padding:90px 0;
    background:#f4f7f4
}

.account-auth-layout{
    display:grid;
    grid-template-columns:minmax(0,1.1fr) minmax(360px,.7fr);
    gap:80px;
    align-items:center
}

.account-auth-intro h1,
.account-dashboard-head h1{
    margin:8px 0 12px;
    font-size:clamp(38px,5vw,66px);
    line-height:1
}

.account-auth-intro p,
.account-dashboard-head p{
    max-width:650px;
    color:#718078;
    line-height:1.7
}

.account-auth-benefits{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:22px
}

.account-auth-benefits span{
    padding:9px 12px;
    border:1px solid #dfe7e2;
    border-radius:999px;
    background:#fff;
    color:#153d2e;
    font-size:13px;
    font-weight:700
}

.account-auth-card,
.account-panel{
    padding:28px;
    border:1px solid #dee6e1;
    border-radius:18px;
    background:#fff
}

.account-auth-card h2,
.account-panel h2{
    margin:6px 0 22px;
    font-size:27px
}

.account-form{
    display:grid;
    gap:15px
}

.account-form label{
    display:grid;
    gap:6px
}

.account-form label>span{
    font-size:11px;
    font-weight:800;
    text-transform:uppercase
}

.account-form input{
    width:100%;
    height:48px;
    padding:0 13px;
    border:1px solid #d8e1dc;
    border-radius:9px;
    background:#fff
}

.account-form input:focus{
    outline:2px solid rgba(18,74,52,.13);
    border-color:#174e38
}

.account-primary-btn,
.account-secondary-btn{
    min-height:46px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 17px;
    border:0;
    border-radius:9px;
    text-decoration:none;
    font-weight:800;
    cursor:pointer
}

.account-primary-btn{
    background:#124b36;
    color:#fff
}

.account-secondary-btn{
    border:1px solid #dce5df;
    background:#fff;
    color:#163d2f
}

.account-auth-switch{
    margin:18px 0 0;
    color:#74827b;
    font-size:14px
}

.account-auth-switch a,
.account-back-link{
    color:#174e38;
    font-weight:800;
    text-decoration:none
}

.account-password-note{
    color:#7b8881;
    line-height:1.6
}

.account-alert{
    margin-bottom:18px;
    padding:13px 15px;
    border-radius:10px;
    font-weight:700
}

.account-alert.is-error{
    border:1px solid #efc8c5;
    background:#fff0ef;
    color:#a63832
}

.account-alert.is-success{
    border:1px solid #c9e8d5;
    background:#effaf3;
    color:#1a7044
}

.account-dashboard{
    padding:70px 0 100px;
    background:#f5f7f5
}

.account-dashboard-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:30px;
    margin-bottom:30px
}

.account-stat-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin-bottom:16px
}

.account-stat-grid a{
    min-height:130px;
    padding:20px;
    border:1px solid #dde6e0;
    border-radius:15px;
    background:#fff;
    color:#142a20;
    text-decoration:none
}

.account-stat-grid span,
.account-stat-grid small{
    display:block;
    color:#7a8781
}

.account-stat-grid span{
    font-size:10px;
    font-weight:800;
    letter-spacing:.08em
}

.account-stat-grid strong{
    display:block;
    margin:13px 0 4px;
    font-size:31px
}

.account-dashboard-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px
}

.account-info-list>div{
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding:13px 0;
    border-bottom:1px solid #edf1ee
}

.account-info-list>div:last-child{
    border-bottom:0
}

.account-info-list span{
    color:#75827c
}

.account-quick-links{
    display:grid;
    gap:8px
}

.account-quick-links a{
    display:flex;
    justify-content:space-between;
    padding:13px 14px;
    border:1px solid #e0e7e3;
    border-radius:9px;
    color:#163d2e;
    text-decoration:none;
    font-weight:750
}

.account-filter-pills{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:20px
}

.account-filter-pills a{
    padding:9px 13px;
    border:1px solid #dbe4de;
    border-radius:999px;
    background:#fff;
    color:#173f30;
    text-decoration:none
}

.account-filter-pills a.active{
    background:#123f2e;
    color:#fff
}

.account-empty{
    min-height:250px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:6px;
    border:1px dashed #d4dfd8;
    border-radius:16px;
    background:#fff;
    text-align:center
}

.account-empty strong{
    font-size:22px
}

.account-empty span{
    color:#75827c
}

.account-favorite-raw-list,
.account-submission-list{
    display:grid;
    gap:8px
}

.account-favorite-raw-list>div,
.account-submission-list>div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:15px;
    border:1px solid #dfe6e2;
    border-radius:11px;
    background:#fff
}

.account-favorite-raw-list span,
.account-favorite-raw-list small,
.account-submission-list small{
    color:#77847e
}

.account-status{
    padding:6px 9px;
    border-radius:999px;
    background:#edf5f0;
    color:#18553b;
    font-size:11px;
    font-weight:800
}

@media(max-width:900px){
    .account-auth-layout,
    .account-dashboard-grid{
        grid-template-columns:1fr
    }

    .account-auth-layout{
        gap:35px
    }

    .account-stat-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
}

@media(max-width:600px){
    .account-stat-grid{
        grid-template-columns:1fr
    }

    .account-dashboard-head{
        align-items:flex-start;
        flex-direction:column
    }
}

.header-weather{
    display:inline-flex;
    align-items:center;
    gap:6px;
}

.header-weather-value{
    display:inline-flex;
    align-items:center;
    gap:5px;
    color:inherit;
    text-decoration:none;
}

.header-weather-value:hover{
    opacity:.82;
}

.header-weather-icon{
    display:inline-flex;
    align-items:center;
    line-height:1;
}

.header-weather-value strong{
    font-weight:800;
}

header-main{
    gap:20px
}

.main-nav{
    margin-left:auto
}

.header-tools{
    position:relative;
    display:flex;
    align-items:center;
    gap:5px;
    flex:0 0 auto
}

.header-tools-separator{
    width:1px;
    height:24px;
    margin:0 8px 0 3px;
    background:rgba(18,54,40,.16)
}

.header-tool-btn{
    position:relative;
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    padding:0;
    border:0;
    border-radius:50%;
    background:transparent;
    color:#173d2f;
    cursor:pointer;
    text-decoration:none;
    transition:
        background .18s ease,
        transform .18s ease
}

.header-tool-btn:hover{
    background:#eef4f0;
    transform:translateY(-1px)
}

.header-tool-btn svg{
    width:21px;
    height:21px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.75;
    stroke-linecap:round;
    stroke-linejoin:round
}

.header-account{
    position:relative
}

.header-account-online{
    position:absolute;
    right:5px;
    bottom:5px;
    width:7px;
    height:7px;
    border:2px solid #fff;
    border-radius:50%;
    background:#1d8c55
}

.header-account-menu{
    position:absolute;
    z-index:1200;
    top:calc(100% + 12px);
    right:0;
    width:250px;
    overflow:hidden;
    border:1px solid #dce5df;
    border-radius:14px;
    background:#fff;
    box-shadow:0 20px 55px rgba(18,45,34,.15)
}

.header-account-menu-head{
    padding:17px;
    border-bottom:1px solid #edf1ee
}

.header-account-menu-head strong,
.header-account-menu-head small{
    display:block
}

.header-account-menu-head strong{
    color:#152a21;
    font-size:14px
}

.header-account-menu-head small{
    margin-top:4px;
    overflow:hidden;
    color:#7a8781;
    font-size:11px;
    text-overflow:ellipsis
}

.header-account-menu>a{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;
    padding:12px 16px;
    border-bottom:1px solid #f0f3f1;
    color:#173d2e;
    text-decoration:none;
    font-size:13px;
    font-weight:700
}

.header-account-menu>a:hover{
    background:#f5f8f6
}

.header-account-menu>a.is-logout{
    border-bottom:0;
    color:#9b3d37
}

/* Search */
body.search-open{
    overflow:hidden
}

.global-search[hidden]{
    display:none !important
}

.global-search{
    position:fixed;
    z-index:3000;
    inset:0;
    display:grid;
    place-items:start center;
    padding:75px 20px 30px
}

.global-search-backdrop{
    position:absolute;
    inset:0;
    background:rgba(10,25,19,.62);
    backdrop-filter:blur(7px)
}

.global-search-panel{
    position:relative;
    z-index:1;
    width:min(880px,100%);
    max-height:calc(100vh - 105px);
    overflow:auto;
    padding:25px;
    border:1px solid rgba(255,255,255,.5);
    border-radius:19px;
    background:#fff;
    box-shadow:0 30px 90px rgba(0,0,0,.28)
}

.global-search-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:30px
}

.global-search-head h2{
    margin:6px 0 0;
    font-size:clamp(27px,4vw,42px)
}

.global-search-close{
    width:40px;
    height:40px;
    display:grid;
    place-items:center;
    border:1px solid #e0e7e3;
    border-radius:50%;
    background:#fff;
    color:#173d2f;
    cursor:pointer
}

.global-search-close svg{
    width:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round
}

.global-search-field{
    display:grid;
    grid-template-columns:24px minmax(0,1fr) auto;
    gap:10px;
    align-items:center;
    margin-top:24px;
    padding:0 15px;
    border:1px solid #d6e0da;
    border-radius:12px;
    background:#f9fbfa
}

.global-search-field>svg{
    width:21px;
    fill:none;
    stroke:#345849;
    stroke-width:1.7;
    stroke-linecap:round
}

.global-search-field input{
    width:100%;
    height:58px;
    border:0;
    outline:0;
    background:transparent;
    color:#172b22;
    font:inherit;
    font-size:16px
}

.global-search-field kbd{
    padding:4px 7px;
    border:1px solid #dce4df;
    border-radius:6px;
    background:#fff;
    color:#809087;
    font-size:10px
}

.global-search-state{
    padding:22px 4px 6px;
    color:#75827c;
    text-align:center;
    font-size:13px
}

.global-search-results{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-top:14px
}

.global-search-result{
    display:grid;
    grid-template-columns:58px minmax(0,1fr) auto;
    gap:12px;
    align-items:center;
    min-height:78px;
    padding:9px;
    border:1px solid #e1e8e4;
    border-radius:11px;
    background:#fff;
    color:inherit;
    text-decoration:none;
    transition:
        border-color .18s ease,
        transform .18s ease,
        box-shadow .18s ease
}

.global-search-result:hover{
    border-color:#bfcfc5;
    transform:translateY(-1px);
    box-shadow:0 7px 20px rgba(20,50,38,.07)
}

.global-search-result-media{
    width:58px;
    height:58px;
    overflow:hidden;
    display:grid;
    place-items:center;
    border-radius:8px;
    background:#edf4ef;
    color:#194631;
    font-weight:900
}

.global-search-result-media img{
    width:100%;
    height:100%;
    object-fit:cover
}

.global-search-result-copy{
    min-width:0
}

.global-search-result-copy small{
    display:block;
    margin-bottom:3px;
    color:#d18b2d;
    font-size:9px;
    font-weight:900;
    text-transform:uppercase
}

.global-search-result-copy strong{
    display:block;
    overflow:hidden;
    color:#152a20;
    font-size:13px;
    text-overflow:ellipsis;
    white-space:nowrap
}

.global-search-result-copy p{
    margin:4px 0 0;
    overflow:hidden;
    color:#7a8781;
    font-size:10px;
    text-overflow:ellipsis;
    white-space:nowrap
}

.global-search-result-arrow{
    color:#6e7d75
}

@media(max-width:1050px){
    .header-tools{
        margin-left:auto
    }

    .header-tools-separator{
        display:none
    }
}

@media(max-width:760px){
    .global-search{
        padding:20px
    }

    .global-search-panel{
        max-height:calc(100vh - 40px);
        padding:18px
    }

    .global-search-results{
        grid-template-columns:1fr
    }
}

.header-main{
    gap:20px
}

.main-nav{
    margin-left:auto
}

.header-tools{
    position:relative;
    display:flex;
    align-items:center;
    gap:5px;
    flex:0 0 auto
}

.header-tools-separator{
    width:1px;
    height:24px;
    margin:0 8px 0 3px;
    background:rgba(18,54,40,.16)
}

.header-tool-btn{
    position:relative;
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    padding:0;
    border:0;
    border-radius:50%;
    background:transparent;
    color:#173d2f;
    cursor:pointer;
    text-decoration:none;
    transition:
        background .18s ease,
        transform .18s ease
}

.header-tool-btn:hover{
    background:#eef4f0;
    transform:translateY(-1px)
}

.header-tool-btn svg{
    width:21px;
    height:21px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.75;
    stroke-linecap:round;
    stroke-linejoin:round
}

.header-account{
    position:relative
}

.header-account-online{
    position:absolute;
    right:5px;
    bottom:5px;
    width:7px;
    height:7px;
    border:2px solid #fff;
    border-radius:50%;
    background:#1d8c55
}

.header-account-menu{
    position:absolute;
    z-index:1200;
    top:calc(100% + 12px);
    right:0;
    width:250px;
    overflow:hidden;
    border:1px solid #dce5df;
    border-radius:14px;
    background:#fff;
    box-shadow:0 20px 55px rgba(18,45,34,.15)
}

.header-account-menu-head{
    padding:17px;
    border-bottom:1px solid #edf1ee
}

.header-account-menu-head strong,
.header-account-menu-head small{
    display:block
}

.header-account-menu-head strong{
    color:#152a21;
    font-size:14px
}

.header-account-menu-head small{
    margin-top:4px;
    overflow:hidden;
    color:#7a8781;
    font-size:11px;
    text-overflow:ellipsis
}

.header-account-menu>a{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;
    padding:12px 16px;
    border-bottom:1px solid #f0f3f1;
    color:#173d2e;
    text-decoration:none;
    font-size:13px;
    font-weight:700
}

.header-account-menu>a:hover{
    background:#f5f8f6
}

.header-account-menu>a.is-logout{
    border-bottom:0;
    color:#9b3d37
}

/* Search */
body.search-open{
    overflow:hidden
}

.global-search[hidden]{
    display:none !important
}

.global-search{
    position:fixed;
    z-index:3000;
    inset:0;
    display:grid;
    place-items:start center;
    padding:75px 20px 30px
}

.global-search-backdrop{
    position:absolute;
    inset:0;
    background:rgba(10,25,19,.62);
    backdrop-filter:blur(7px)
}

.global-search-panel{
    position:relative;
    z-index:1;
    width:min(880px,100%);
    max-height:calc(100vh - 105px);
    overflow:auto;
    padding:25px;
    border:1px solid rgba(255,255,255,.5);
    border-radius:19px;
    background:#fff;
    box-shadow:0 30px 90px rgba(0,0,0,.28)
}

.global-search-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:30px
}

.global-search-head h2{
    margin:6px 0 0;
    font-size:clamp(27px,4vw,42px)
}

.global-search-close{
    width:40px;
    height:40px;
    display:grid;
    place-items:center;
    border:1px solid #e0e7e3;
    border-radius:50%;
    background:#fff;
    color:#173d2f;
    cursor:pointer
}

.global-search-close svg{
    width:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round
}

.global-search-field{
    display:grid;
    grid-template-columns:24px minmax(0,1fr) auto;
    gap:10px;
    align-items:center;
    margin-top:24px;
    padding:0 15px;
    border:1px solid #d6e0da;
    border-radius:12px;
    background:#f9fbfa
}

.global-search-field>svg{
    width:21px;
    fill:none;
    stroke:#345849;
    stroke-width:1.7;
    stroke-linecap:round
}

.global-search-field input{
    width:100%;
    height:58px;
    border:0;
    outline:0;
    background:transparent;
    color:#172b22;
    font:inherit;
    font-size:16px
}

.global-search-field kbd{
    padding:4px 7px;
    border:1px solid #dce4df;
    border-radius:6px;
    background:#fff;
    color:#809087;
    font-size:10px
}

.global-search-state{
    padding:22px 4px 6px;
    color:#75827c;
    text-align:center;
    font-size:13px
}

.global-search-results{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    margin-top:14px
}

.global-search-result{
    display:grid;
    grid-template-columns:58px minmax(0,1fr) auto;
    gap:12px;
    align-items:center;
    min-height:78px;
    padding:9px;
    border:1px solid #e1e8e4;
    border-radius:11px;
    background:#fff;
    color:inherit;
    text-decoration:none;
    transition:
        border-color .18s ease,
        transform .18s ease,
        box-shadow .18s ease
}

.global-search-result:hover{
    border-color:#bfcfc5;
    transform:translateY(-1px);
    box-shadow:0 7px 20px rgba(20,50,38,.07)
}

.global-search-result-media{
    width:58px;
    height:58px;
    overflow:hidden;
    display:grid;
    place-items:center;
    border-radius:8px;
    background:#edf4ef;
    color:#194631;
    font-weight:900
}

.global-search-result-media img{
    width:100%;
    height:100%;
    object-fit:cover
}

.global-search-result-copy{
    min-width:0
}

.global-search-result-copy small{
    display:block;
    margin-bottom:3px;
    color:#d18b2d;
    font-size:9px;
    font-weight:900;
    text-transform:uppercase
}

.global-search-result-copy strong{
    display:block;
    overflow:hidden;
    color:#152a20;
    font-size:13px;
    text-overflow:ellipsis;
    white-space:nowrap
}

.global-search-result-copy p{
    margin:4px 0 0;
    overflow:hidden;
    color:#7a8781;
    font-size:10px;
    text-overflow:ellipsis;
    white-space:nowrap
}

.global-search-result-arrow{
    color:#6e7d75
}

@media(max-width:1050px){
    .header-tools{
        margin-left:auto
    }

    .header-tools-separator{
        display:none
    }
}

@media(max-width:760px){
    .global-search{
        padding:20px
    }

    .global-search-panel{
        max-height:calc(100vh - 40px);
        padding:18px
    }

    .global-search-results{
        grid-template-columns:1fr
    }
}


/* PACKAGE 9.1.1 – Favorites icon */
.header-favorites-btn svg{
    transition:
        fill .18s ease,
        stroke .18s ease,
        transform .18s ease;
}

.header-favorites-btn:hover svg{
    fill:rgba(23,61,47,.08);
    transform:scale(1.04);
}

.favorite-toggle{
    position:relative;
    z-index:3;
    min-height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    padding:0 11px;
    border:1px solid #dce5df;
    border-radius:999px;
    background:rgba(255,255,255,.94);
    color:#173f30;
    font:inherit;
    font-size:12px;
    font-weight:800;
    cursor:pointer;
    box-shadow:0 4px 14px rgba(14,42,31,.06);
    transition:
        background .18s ease,
        color .18s ease,
        border-color .18s ease,
        transform .18s ease
}

.favorite-toggle:hover{
    transform:translateY(-1px);
    border-color:#bdcdc3
}

.favorite-toggle svg{
    width:18px;
    height:18px;
    fill:transparent;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
    transition:
        fill .18s ease,
        transform .18s ease
}

.favorite-toggle.is-saved{
    border-color:#174b37;
    background:#174b37;
    color:#fff
}

.favorite-toggle.is-saved svg{
    fill:currentColor
}

.favorite-toggle.is-loading{
    opacity:.55;
    pointer-events:none
}

.favorite-toggle.is-loading svg{
    animation:favoritePulse .75s ease-in-out infinite alternate
}

@keyframes favoritePulse{
    from{transform:scale(.86)}
    to{transform:scale(1.06)}
}


/* Card version */
.favorite-toggle.is-card{
    width:38px;
    height:38px;
    min-height:38px;
    padding:0
}

.favorite-toggle.is-card span{
    display:none
}


/* Card corner placement */
.card-favorite,
.restaurant-card-favorite,
.place-card-favorite,
.stay-card-favorite,
.event-card-favorite{
    position:absolute;
    top:12px;
    right:12px;
    z-index:5
}


/* Toast */
.favorite-toast{
    position:fixed;
    z-index:5000;
    left:50%;
    bottom:28px;
    transform:translateX(-50%);
    max-width:min(440px,calc(100% - 30px));
    padding:12px 16px;
    border-radius:10px;
    background:#153f2f;
    color:#fff;
    box-shadow:0 14px 40px rgba(0,0,0,.18);
    font-size:13px;
    font-weight:750
}

.favorite-toast[hidden]{
    display:none
}

.favorite-toast.is-error{
    background:#9b3d37
}

@media(max-width:600px){
    .favorite-toggle:not(.is-card){
        min-height:42px
    }
}

.restaurant-card-link{
    display:block;
    height:100%;
    color:inherit;
    text-decoration:none;
}
.restaurant-card-favorite{
    position:absolute;
    top:12px;
    right:12px;
    z-index:8;
}

.restaurant-unified-gallery-section{
    overflow:hidden
}

.restaurant-gallery-count{
    color:#6f7d76;
    font-size:13px;
    font-weight:700
}

.restaurant-gallery-unified{
    display:grid;
    grid-template-columns:2fr 1fr 1fr;
    grid-template-rows:220px 220px;
    gap:10px
}

.restaurant-gallery-tile{
    position:relative;
    overflow:hidden;
    border:0;
    border-radius:14px;
    background-position:center;
    background-size:cover;
    cursor:pointer;
    padding:0;
    min-height:0
}

.restaurant-gallery-tile::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(
        to top,
        rgba(6,21,15,.16),
        transparent 45%
    );
    transition:background .2s ease
}

.restaurant-gallery-tile:hover::after{
    background:rgba(6,21,15,.08)
}

.restaurant-gallery-tile-1{
    grid-row:1 / span 2
}

.restaurant-gallery-count-1{
    grid-template-columns:1fr;
    grid-template-rows:minmax(340px,520px)
}

.restaurant-gallery-count-1 .restaurant-gallery-tile-1{
    grid-row:auto
}

.restaurant-gallery-count-2{
    grid-template-columns:1.5fr 1fr;
    grid-template-rows:minmax(340px,480px)
}

.restaurant-gallery-count-2 .restaurant-gallery-tile-1{
    grid-row:auto
}

.restaurant-gallery-count-3{
    grid-template-columns:1.7fr 1fr;
    grid-template-rows:215px 215px
}

.restaurant-gallery-count-3 .restaurant-gallery-tile-1{
    grid-row:1 / span 2
}

.restaurant-gallery-count-4{
    grid-template-columns:1.7fr 1fr 1fr;
    grid-template-rows:210px 210px
}

.restaurant-gallery-count-5{
    grid-template-columns:1.7fr 1fr 1fr;
    grid-template-rows:210px 210px
}

.restaurant-gallery-cover-label,
.restaurant-gallery-more{
    position:absolute;
    z-index:2;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    color:#fff;
    font-weight:800
}

.restaurant-gallery-cover-label{
    top:14px;
    left:14px;
    padding:7px 10px;
    background:rgba(15,63,45,.86);
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.06em
}

.restaurant-gallery-more{
    inset:0;
    border-radius:0;
    background:rgba(8,28,20,.58);
    font-size:21px
}

/* Lightbox */
body.restaurant-gallery-open{
    overflow:hidden
}

.restaurant-gallery-lightbox[hidden]{
    display:none !important
}

.restaurant-gallery-lightbox{
    position:fixed;
    z-index:6000;
    inset:0;
    display:grid;
    place-items:center;
    padding:25px
}

.restaurant-gallery-lightbox-backdrop{
    position:absolute;
    inset:0;
    width:100%;
    border:0;
    background:rgba(6,18,13,.88);
    backdrop-filter:blur(7px);
    cursor:zoom-out
}

.restaurant-gallery-lightbox-dialog{
    position:relative;
    z-index:1;
    width:min(1180px,100%);
    display:grid;
    grid-template-columns:58px minmax(0,1fr) 58px;
    align-items:center;
    gap:12px
}

.restaurant-gallery-lightbox-dialog img{
    width:100%;
    max-height:82vh;
    object-fit:contain;
    border-radius:13px;
    background:#07120e
}

.restaurant-gallery-lightbox-close,
.restaurant-gallery-lightbox-nav{
    border:0;
    color:#fff;
    cursor:pointer
}

.restaurant-gallery-lightbox-close{
    position:absolute;
    z-index:2;
    top:-16px;
    right:-10px;
    width:42px;
    height:42px;
    border-radius:50%;
    background:#fff;
    color:#143c2d;
    font-size:25px
}

.restaurant-gallery-lightbox-nav{
    width:48px;
    height:48px;
    border-radius:50%;
    background:rgba(255,255,255,.12);
    font-size:20px
}

.restaurant-gallery-lightbox-caption{
    grid-column:2;
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding-top:8px;
    color:#fff
}

.restaurant-gallery-lightbox-caption span{
    color:rgba(255,255,255,.7)
}

@media(max-width:900px){
    .restaurant-gallery-unified,
    .restaurant-gallery-count-3,
    .restaurant-gallery-count-4,
    .restaurant-gallery-count-5{
        grid-template-columns:1.4fr 1fr;
        grid-template-rows:180px 180px
    }

    .restaurant-gallery-tile-1{
        grid-row:1 / span 2
    }

    .restaurant-gallery-tile-4,
    .restaurant-gallery-tile-5{
        display:none
    }

    .restaurant-gallery-lightbox-dialog{
        grid-template-columns:42px minmax(0,1fr) 42px
    }
}

@media(max-width:620px){
    .restaurant-gallery-unified,
    .restaurant-gallery-count-1,
    .restaurant-gallery-count-2,
    .restaurant-gallery-count-3,
    .restaurant-gallery-count-4,
    .restaurant-gallery-count-5{
        grid-template-columns:1fr;
        grid-template-rows:280px 150px 150px
    }

    .restaurant-gallery-tile-1{
        grid-row:auto
    }

    .restaurant-gallery-tile-4,
    .restaurant-gallery-tile-5{
        display:none
    }

    .restaurant-gallery-lightbox{
        padding:12px
    }

    .restaurant-gallery-lightbox-dialog{
        grid-template-columns:1fr
    }

    .restaurant-gallery-lightbox-nav{
        position:absolute;
        z-index:3;
        top:50%;
        transform:translateY(-50%)
    }

    .restaurant-gallery-lightbox-nav.is-prev{
        left:8px
    }

    .restaurant-gallery-lightbox-nav.is-next{
        right:8px
    }

    .restaurant-gallery-lightbox-caption{
        grid-column:1;
        font-size:12px
    }
}

/* Header counter */
.header-favorites-btn{
    overflow:visible
}

.header-favorites-count{
    position:absolute;
    top:-3px;
    right:-4px;
    min-width:17px;
    height:17px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 4px;
    border:2px solid #fff;
    border-radius:999px;
    background:#d99a37;
    color:#fff;
    font-size:9px;
    font-weight:900;
    line-height:1;
    box-sizing:border-box
}

.header-favorites-count[hidden]{
    display:none !important
}

/* Favorites page */
.account-favorites-total{
    min-width:88px;
    min-height:88px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    border:1px solid #dce5df;
    border-radius:50%;
    background:#fff
}

.account-favorites-total strong{
    color:#143e2e;
    font-size:28px;
    line-height:1
}

.account-favorites-total span{
    margin-top:5px;
    color:#77857e;
    font-size:11px
}

.account-favorite-filters a{
    display:inline-flex;
    align-items:center;
    gap:7px
}

.account-favorite-filters a span{
    min-width:19px;
    height:19px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:999px;
    background:#edf3ef;
    color:#486157;
    font-size:10px;
    font-weight:800
}

.account-favorite-filters a.active span{
    background:rgba(255,255,255,.16);
    color:#fff
}

.account-favorites-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px
}

.account-favorite-card{
    overflow:hidden;
    border:1px solid #dde5e0;
    border-radius:16px;
    background:#fff;
    transition:
        transform .2s ease,
        box-shadow .2s ease,
        opacity .18s ease
}

.account-favorite-card:hover{
    transform:translateY(-2px);
    box-shadow:0 13px 34px rgba(18,50,37,.08)
}

.account-favorite-card.is-removing{
    opacity:0;
    transform:scale(.97)
}

.account-favorite-card-image{
    position:relative;
    display:block;
    overflow:hidden;
    aspect-ratio:16/10;
    background:#eaf1ed;
    color:inherit;
    text-decoration:none
}

.account-favorite-card-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    transition:transform .28s ease
}

.account-favorite-card:hover
.account-favorite-card-image img{
    transform:scale(1.025)
}

.account-favorite-card-placeholder{
    width:100%;
    height:100%;
    display:grid;
    place-items:center;
    background:
        linear-gradient(
            135deg,
            #173f30,
            #285a46
        );
    color:rgba(255,255,255,.82);
    font-size:54px;
    font-weight:900
}

.account-favorite-card-section{
    position:absolute;
    left:12px;
    top:12px;
    z-index:2;
    padding:6px 9px;
    border-radius:999px;
    background:rgba(15,56,41,.9);
    color:#fff;
    font-size:9px;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase
}

.account-favorite-card-heart{
    position:absolute;
    z-index:3;
    right:12px;
    top:12px
}

.account-favorite-card-heart
.favorite-toggle{
    box-shadow:0 5px 15px rgba(0,0,0,.12)
}

.account-favorite-card-body{
    padding:18px
}

.account-favorite-card-meta{
    display:block;
    margin-bottom:7px;
    overflow:hidden;
    color:#d28d30;
    font-size:10px;
    font-weight:850;
    text-overflow:ellipsis;
    text-transform:uppercase;
    white-space:nowrap
}

.account-favorite-card-title-row{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:14px
}

.account-favorite-card-title-row h2{
    margin:0;
    font-size:21px;
    line-height:1.15
}

.account-favorite-card-title-row h2 a{
    color:#14291f;
    text-decoration:none
}

.account-favorite-card-price{
    flex:0 0 auto;
    color:#173f30;
    font-size:13px
}

.account-favorite-card-body>p{
    display:-webkit-box;
    overflow:hidden;
    min-height:42px;
    margin:10px 0 16px;
    color:#74817b;
    font-size:13px;
    line-height:1.6;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2
}

.account-favorite-card-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    padding-top:13px;
    border-top:1px solid #edf1ee
}

.account-favorite-card-footer>span{
    overflow:hidden;
    color:#718079;
    font-size:11px;
    text-overflow:ellipsis;
    white-space:nowrap
}

.account-favorite-card-footer>a{
    flex:0 0 auto;
    color:#174b37;
    font-size:12px;
    font-weight:850;
    text-decoration:none
}

.account-favorites-empty-icon{
    width:66px;
    height:66px;
    display:grid;
    place-items:center;
    margin-bottom:8px;
    border-radius:50%;
    background:#edf4ef;
    color:#174b37;
    font-size:30px
}

.account-favorites-empty
.account-primary-btn{
    margin-top:12px;
    min-width:160px
}

@media(max-width:1000px){
    .account-favorites-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
}

@media(max-width:650px){
    .account-favorites-grid{
        grid-template-columns:1fr
    }

    .account-favorites-total{
        width:74px;
        min-width:74px;
        min-height:74px
    }
}

.catalog-place-image,
.stay-card-image,
.event-card-image{
    position:relative;
}

.catalog-place-favorite,
.stay-card-favorite,
.event-card-favorite,
.nearby-place-favorite{
    position:absolute;
    z-index:8;
    top:12px;
    right:12px;
}

.catalog-place-favorite .favorite-toggle,
.stay-card-favorite .favorite-toggle,
.event-card-favorite .favorite-toggle,
.nearby-place-favorite .favorite-toggle{
    background:rgba(255,255,255,.94);
    backdrop-filter:blur(5px);
}

.catalog-place-favorite .favorite-toggle.is-saved,
.stay-card-favorite .favorite-toggle.is-saved,
.event-card-favorite .favorite-toggle.is-saved,
.nearby-place-favorite .favorite-toggle.is-saved{
    background:#174b37;
}

.place-info-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:9px;
}

/*
 * Card anchors contain the button visually.
 * favorites.js calls preventDefault + stopPropagation,
 * so heart clicks do not open the detail page.
 */
.catalog-place-card .favorite-toggle,
.stay-card-image .favorite-toggle,
.event-card-image .favorite-toggle{
    pointer-events:auto;
}

@media(max-width:650px){
    .catalog-place-favorite,
    .stay-card-favorite,
    .event-card-favorite,
    .nearby-place-favorite{
        top:10px;
        right:10px;
    }
}

.shop-card{
    position:relative
}

.shop-card-link{
    display:block;
    height:100%;
    color:inherit;
    text-decoration:none
}

.shop-image{
    position:relative
}

.shop-card-favorite{
    position:absolute;
    z-index:8;
    top:12px;
    right:12px
}

.shop-card-favorite .favorite-toggle{
    background:rgba(255,255,255,.95);
    backdrop-filter:blur(5px)
}

.shop-card-favorite .favorite-toggle.is-saved{
    background:#174b37
}

/* Detail */
.shop-detail-not-found{
    padding:90px 0
}

.shop-detail-hero{
    position:relative;
    min-height:470px;
    display:flex;
    align-items:flex-end;
    overflow:hidden;
    background:#173f30
}

.shop-detail-hero-image,
.shop-detail-hero-overlay{
    position:absolute;
    inset:0
}

.shop-detail-hero-image{
    background-position:center;
    background-size:cover
}

.shop-detail-hero-image-empty{
    background:linear-gradient(135deg,#173f30,#315d4b)
}

.shop-detail-hero-overlay{
    background:
        linear-gradient(
            to top,
            rgba(7,25,18,.86),
            rgba(7,25,18,.18) 70%
        )
}

.shop-detail-hero-content{
    position:relative;
    z-index:2;
    padding-top:95px;
    padding-bottom:55px;
    color:#fff
}

.shop-detail-back{
    display:inline-flex;
    margin-bottom:35px;
    color:rgba(255,255,255,.85);
    text-decoration:none;
    font-size:12px;
    font-weight:750
}

.shop-detail-badges{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:12px
}

.shop-detail-category,
.shop-detail-featured{
    padding:7px 10px;
    border-radius:999px;
    font-size:9px;
    font-weight:900;
    letter-spacing:.05em;
    text-transform:uppercase
}

.shop-detail-category{
    background:#fff;
    color:#173f30
}

.shop-detail-featured{
    background:#d89434;
    color:#fff
}

.shop-detail-hero-content h1{
    max-width:800px;
    margin:0;
    font-size:clamp(42px,6vw,70px);
    line-height:1
}

.shop-detail-hero-content>p{
    max-width:680px;
    margin:14px 0 0;
    color:rgba(255,255,255,.82);
    font-size:16px;
    line-height:1.65
}

.shop-detail-location{
    display:block;
    margin-top:14px;
    color:rgba(255,255,255,.72);
    font-size:12px
}

.shop-detail-action-section{
    border-bottom:1px solid #e3e9e5;
    background:#fff
}

.shop-detail-action-bar{
    min-height:86px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:25px
}

.shop-detail-action-meta{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    color:#738078;
    font-size:12px
}

.shop-detail-actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px
}

.shop-detail-action-btn{
    min-height:40px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 13px;
    border:1px solid #dce5df;
    border-radius:999px;
    background:#fff;
    color:#173f30;
    text-decoration:none;
    font-size:12px;
    font-weight:800
}

.shop-detail-content-section{
    background:#f7f9f7
}

.shop-detail-layout{
    display:grid;
    grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);
    gap:28px
}

.shop-detail-main,
.shop-detail-sidebar-card{
    padding:28px;
    border:1px solid #dfe6e2;
    border-radius:16px;
    background:#fff
}

.shop-detail-main h2{
    margin:7px 0 18px;
    font-size:30px
}

.shop-detail-description{
    color:#66776f;
    line-height:1.85
}

.shop-detail-gallery-section{
    margin-top:28px
}

.shop-detail-gallery{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px
}

.shop-detail-gallery img{
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    border-radius:10px
}

.shop-detail-sidebar-row{
    display:grid;
    gap:4px;
    padding:13px 0;
    border-bottom:1px solid #edf1ee
}

.shop-detail-sidebar-row:last-child{
    border-bottom:0
}

.shop-detail-sidebar-row small{
    color:#849089;
    font-size:9px;
    font-weight:850;
    text-transform:uppercase
}

.shop-detail-sidebar-row strong{
    color:#183b2e;
    font-size:13px
}

.shop-detail-sidebar-row a{
    color:inherit;
    text-decoration:none
}

@media(max-width:850px){
    .shop-detail-layout{
        grid-template-columns:1fr
    }

    .shop-detail-action-bar{
        padding:16px 0;
        align-items:flex-start;
        flex-direction:column
    }
}

@media(max-width:600px){
    .shop-detail-hero{
        min-height:410px
    }

    .shop-detail-gallery{
        grid-template-columns:1fr
    }
}

.unified-public-gallery{
    margin-top:30px
}

.unified-public-gallery-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:15px
}

.unified-public-gallery-heading h3{
    margin:5px 0 0;
    font-size:25px
}

.unified-public-gallery-count{
    color:#738079;
    font-size:12px;
    font-weight:750
}

.unified-public-gallery-grid{
    display:grid;
    grid-template-columns:1.7fr 1fr 1fr;
    grid-template-rows:190px 190px;
    gap:9px
}

.unified-public-gallery-tile{
    position:relative;
    overflow:hidden;
    min-height:0;
    padding:0;
    border:0;
    border-radius:12px;
    background-position:center;
    background-size:cover;
    cursor:pointer
}

.unified-public-gallery-tile::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(
        to top,
        rgba(5,20,14,.16),
        transparent 45%
    );
    transition:.2s ease
}

.unified-public-gallery-tile:hover::after{
    background:rgba(5,20,14,.07)
}

.unified-public-gallery-tile.tile-1{
    grid-row:1 / span 2
}

.unified-public-gallery-count-1{
    grid-template-columns:1fr;
    grid-template-rows:minmax(320px,480px)
}

.unified-public-gallery-count-1
.unified-public-gallery-tile.tile-1{
    grid-row:auto
}

.unified-public-gallery-count-2{
    grid-template-columns:1.55fr 1fr;
    grid-template-rows:minmax(310px,440px)
}

.unified-public-gallery-count-2
.unified-public-gallery-tile.tile-1{
    grid-row:auto
}

.unified-public-gallery-count-3{
    grid-template-columns:1.7fr 1fr;
    grid-template-rows:190px 190px
}

.unified-public-gallery-count-3
.unified-public-gallery-tile.tile-1{
    grid-row:1 / span 2
}

.unified-public-gallery-cover,
.unified-public-gallery-more{
    position:absolute;
    z-index:2;
    color:#fff;
    font-weight:850
}

.unified-public-gallery-cover{
    top:12px;
    left:12px;
    padding:6px 9px;
    border-radius:999px;
    background:rgba(19,70,50,.88);
    font-size:9px;
    letter-spacing:.05em;
    text-transform:uppercase
}

.unified-public-gallery-more{
    inset:0;
    display:grid;
    place-items:center;
    background:rgba(6,26,18,.58);
    font-size:20px
}

/* Lightbox */

body.unified-gallery-open{
    overflow:hidden
}

.unified-gallery-lightbox[hidden]{
    display:none!important
}

.unified-gallery-lightbox{
    position:fixed;
    z-index:7000;
    inset:0;
    display:grid;
    place-items:center;
    padding:24px
}

.unified-gallery-lightbox-backdrop{
    position:absolute;
    inset:0;
    width:100%;
    border:0;
    background:rgba(5,18,12,.9);
    backdrop-filter:blur(7px);
    cursor:zoom-out
}

.unified-gallery-lightbox-dialog{
    position:relative;
    z-index:1;
    width:min(1180px,100%);
    display:grid;
    grid-template-columns:54px minmax(0,1fr) 54px;
    align-items:center;
    gap:12px
}

.unified-gallery-lightbox-dialog>img{
    width:100%;
    max-height:82vh;
    object-fit:contain;
    border-radius:12px;
    background:#07110d
}

.unified-gallery-lightbox-close,
.unified-gallery-lightbox-nav{
    border:0;
    cursor:pointer
}

.unified-gallery-lightbox-close{
    position:absolute;
    z-index:3;
    top:-13px;
    right:-8px;
    width:41px;
    height:41px;
    border-radius:50%;
    background:#fff;
    color:#173f30;
    font-size:24px
}

.unified-gallery-lightbox-nav{
    width:46px;
    height:46px;
    border-radius:50%;
    background:rgba(255,255,255,.13);
    color:#fff;
    font-size:19px
}

.unified-gallery-lightbox-caption{
    grid-column:2;
    display:flex;
    justify-content:space-between;
    gap:20px;
    padding-top:7px;
    color:#fff
}

.unified-gallery-lightbox-caption span{
    color:rgba(255,255,255,.68)
}

.stay-detail-amenity{
    display:flex;
    align-items:center;
    gap:10px
}

.stay-detail-amenity-icon{
    flex:0 0 36px;
    width:36px;
    height:36px;
    display:grid;
    place-items:center;
    border-radius:10px;
    background:#edf4ef;
    color:#174b37
}

.stay-detail-amenity-icon svg{
    width:19px;
    height:19px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round
}

.business-section {
    padding: 64px 0;
}

.business-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 72px;
    align-items: center;
}

.business-copy {
    max-width: 760px;
}

.business-copy h2 {
    margin: 18px 0 14px;
}

.business-copy p {
    max-width: 680px;
    margin: 0;
    line-height: 1.65;
}

.business-actions {
    display: flex;
    align-items: center;
    gap: 22px;
    flex-shrink: 0;
}

.business-actions .btn {
    white-space: nowrap;
}

.business-more-link {
    color: rgba(255,255,255,.78);
    text-decoration: none;
    font-weight: 600;
    white-space: nowrap;
    transition: color .2s ease, transform .2s ease;
}

.business-more-link:hover {
    color: #fff;
    transform: translateX(2px);
}

@media (max-width: 900px) {
    .business-inner {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .business-actions {
        justify-content: flex-start;
        flex-wrap: wrap;
    }
}

@media (max-width: 520px) {
    .business-section {
        padding: 48px 0;
    }

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

    .business-actions .btn {
        width: 100%;
        text-align: center;
    }
}

.business-page-hero{
    padding:105px 0 90px;
    background:
        radial-gradient(
            circle at 83% 28%,
            rgba(255,255,255,.08),
            transparent 29%
        ),
        #143f2f;
    color:#fff
}

.business-page-hero-copy{
    max-width:820px
}

.business-page-hero h1{
    max-width:760px;
    margin:14px 0 20px;
    color:#fff;
    font-size:clamp(46px,6.4vw,78px);
    line-height:.98;
    letter-spacing:-.045em
}

.business-page-hero p{
    max-width:700px;
    margin:0;
    color:rgba(255,255,255,.72);
    font-size:15px;
    line-height:1.8
}

.business-page-hero-actions{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:18px;
    margin-top:29px
}

.business-page-text-link{
    color:rgba(255,255,255,.82);
    font-size:12px;
    font-weight:750;
    text-decoration:none
}

.business-page-text-link:hover{
    color:#fff
}

.business-page-section{
    padding:76px 0
}

.business-page-section-soft{
    background:#f6f8f6
}

.business-page-heading{
    max-width:760px;
    margin-bottom:28px
}

.business-page-heading h2,
.business-free-layout h2,
.business-principles-layout h2,
.business-final-cta h2{
    margin:7px 0 12px;
    font-size:clamp(31px,4vw,46px);
    line-height:1.08;
    letter-spacing:-.025em
}

.business-page-heading p,
.business-free-layout>div>p,
.business-final-cta p{
    margin:0;
    color:var(--muted);
    font-size:13px;
    line-height:1.8
}

.business-benefits-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:13px
}

.business-benefit-card{
    min-height:220px;
    padding:24px;
    border:1px solid var(--border);
    border-radius:16px;
    background:#fff
}

.business-benefit-icon{
    width:43px;
    height:43px;
    display:grid;
    place-items:center;
    margin-bottom:25px;
    border-radius:12px;
    background:var(--soft);
    color:var(--primary)
}

.business-benefit-icon svg{
    width:21px;
    height:21px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round
}

.business-benefit-card strong{
    display:block;
    margin-bottom:7px;
    color:var(--text);
    font-size:14px
}

.business-benefit-card p{
    margin:0;
    color:var(--muted);
    font-size:11px;
    line-height:1.72
}

.business-free-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(320px,.62fr);
    gap:45px;
    align-items:center
}

.business-free-card{
    padding:27px;
    border:1px solid var(--border);
    border-radius:17px;
    background:#fff
}

.business-free-card>strong{
    display:block;
    margin-bottom:15px;
    font-size:14px
}

.business-free-card ul{
    display:grid;
    gap:10px;
    margin:0;
    padding:0;
    list-style:none
}

.business-free-card li{
    position:relative;
    padding-left:20px;
    color:var(--muted);
    font-size:11px;
    line-height:1.5
}

.business-free-card li::before{
    content:"✓";
    position:absolute;
    left:0;
    color:var(--primary);
    font-weight:900
}

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

.business-steps article{
    padding:23px;
    border-top:2px solid var(--primary);
    background:var(--soft)
}

.business-steps article>span{
    display:block;
    margin-bottom:28px;
    color:#d89a39;
    font-size:11px;
    font-weight:900
}

.business-steps strong{
    display:block;
    margin-bottom:7px;
    font-size:13px
}

.business-steps p{
    margin:0;
    color:var(--muted);
    font-size:10px;
    line-height:1.65
}

.business-page-principles{
    padding:65px 0;
    background:#143f2f;
    color:#fff
}

.business-principles-layout{
    display:grid;
    grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
    gap:45px;
    align-items:center
}

.business-principles-layout h2{
    color:#fff
}

.business-principles-layout>p{
    margin:0;
    color:rgba(255,255,255,.68);
    font-size:13px;
    line-height:1.85
}

.business-final-cta{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:40px;
    padding:34px;
    border:1px solid var(--border);
    border-radius:19px;
    background:var(--soft)
}

.business-final-actions{
    display:flex;
    flex-wrap:wrap;
    gap:9px
}


/* SUBMISSION HUB */

.submission-hub-hero{
    padding:82px 0 48px;
    background:#f6f8f6
}

.submission-hub-hero h1{
    margin:9px 0 10px;
    font-size:clamp(39px,5vw,61px);
    line-height:1.02;
    letter-spacing:-.04em
}

.submission-hub-hero p{
    max-width:590px;
    margin:0;
    color:var(--muted);
    font-size:13px;
    line-height:1.75
}

.submission-hub-section{
    padding:30px 0 75px;
    background:#f6f8f6
}

.submission-hub-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:13px
}

.submission-hub-card{
    position:relative;
    min-height:235px;
    display:grid;
    grid-template-columns:50px minmax(0,1fr) auto;
    gap:17px;
    align-items:start;
    padding:26px;
    border:1px solid var(--border);
    border-radius:17px;
    background:#fff;
    color:inherit;
    text-decoration:none;
    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease
}

.submission-hub-card:hover{
    transform:translateY(-3px);
    border-color:#abc2b6;
    box-shadow:0 15px 34px rgba(20,63,47,.07)
}

.submission-hub-icon{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:13px;
    background:var(--soft);
    color:var(--primary)
}

.submission-hub-icon svg{
    width:23px;
    height:23px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round
}

.submission-hub-eyebrow{
    display:block;
    margin-bottom:9px;
    color:#d59635;
    font-size:9px;
    font-weight:900;
    letter-spacing:.07em
}

.submission-hub-card h2{
    margin:0 0 9px;
    font-size:23px
}

.submission-hub-card p{
    max-width:430px;
    margin:0;
    color:var(--muted);
    font-size:11px;
    line-height:1.7
}

.submission-hub-arrow{
    align-self:center;
    color:var(--primary);
    font-size:22px;
    transition:transform .18s ease
}

.submission-hub-card:hover
.submission-hub-arrow{
    transform:translateX(4px)
}

.submission-hub-note{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:25px;
    margin-top:17px;
    padding:22px 24px;
    border:1px solid var(--border);
    border-radius:14px;
    background:#fff
}

.submission-hub-note strong{
    display:block;
    margin-bottom:4px;
    font-size:12px
}

.submission-hub-note p{
    margin:0;
    color:var(--muted);
    font-size:10px
}

.submission-hub-disabled{
    padding:42px;
    border:1px solid var(--border);
    border-radius:17px;
    background:#fff;
    text-align:center
}

.submission-hub-disabled strong{
    display:block;
    margin-bottom:7px;
    font-size:18px
}

.submission-hub-disabled p{
    margin:0 0 18px;
    color:var(--muted);
    font-size:11px
}

.submission-hub-help{
    padding:55px 0;
    background:#143f2f;
    color:#fff
}

.submission-hub-help-inner{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:35px
}

.submission-hub-help h2{
    margin:7px 0 8px;
    color:#fff;
    font-size:31px
}

.submission-hub-help p{
    max-width:630px;
    margin:0;
    color:rgba(255,255,255,.67);
    font-size:11px;
    line-height:1.7
}

@media(max-width:900px){
    .business-benefits-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))
    }

    .business-free-layout,
    .business-principles-layout{
        grid-template-columns:1fr
    }

    .business-steps{
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
}

@media(max-width:700px){
    .business-final-cta,
    .submission-hub-note,
    .submission-hub-help-inner{
        align-items:flex-start;
        flex-direction:column
    }

    .submission-hub-grid{
        grid-template-columns:1fr
    }
}

@media(max-width:560px){
    .business-page-hero{
        padding:80px 0 65px
    }

    .business-benefits-grid,
    .business-steps{
        grid-template-columns:1fr
    }

    .submission-hub-card{
        grid-template-columns:44px minmax(0,1fr);
        min-height:0;
        padding:20px
    }

    .submission-hub-arrow{
        display:none
    }

    .submission-hub-icon{
        width:42px;
        height:42px
    }

    .business-final-actions{
        width:100%
    }

    .business-final-actions .btn{
        width:100%;
        text-align:center
    }
}

.business-section{
    padding:64px 0
}

.business-inner{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:65px;
    align-items:center
}

.business-copy{
    max-width:760px
}

.business-copy h2{
    margin:17px 0 13px
}

.business-copy p{
    max-width:680px;
    margin:0;
    line-height:1.65
}

.business-actions{
    display:flex;
    align-items:center;
    gap:20px;
    flex-shrink:0
}

.business-actions .btn{
    white-space:nowrap
}

.business-more-link{
    color:rgba(255,255,255,.76);
    font-size:11px;
    font-weight:750;
    text-decoration:none;
    white-space:nowrap;
    transition:.18s ease
}

.business-more-link:hover{
    color:#fff
}

@media(max-width:850px){
    .business-inner{
        grid-template-columns:1fr;
        gap:25px
    }

    .business-actions{
        justify-content:flex-start;
        flex-wrap:wrap
    }
}

@media(max-width:520px){
    .business-actions{
        align-items:stretch;
        flex-direction:column
    }

    .business-actions .btn{
        width:100%;
        text-align:center
    }
}

.meteo-hero{
    padding:82px 0 64px;
    background:
        radial-gradient(circle at 82% 20%,rgba(255,255,255,.09),transparent 30%),
        linear-gradient(135deg,#143f2f,#205b45);
    color:#fff
}

.meteo-hero-layout{
    display:grid;
    grid-template-columns:minmax(0,.95fr) minmax(420px,1.05fr);
    gap:55px;
    align-items:center
}

.meteo-current-main{
    display:flex;
    align-items:center;
    gap:18px;
    margin-top:14px
}

.meteo-current-icon{
    font-size:62px;
    line-height:1
}

.meteo-current-temperature{
    display:block;
    color:#fff;
    font-size:70px;
    line-height:.9;
    letter-spacing:-.055em
}

.meteo-current-condition{
    display:block;
    margin-top:9px;
    color:rgba(255,255,255,.78);
    font-size:15px
}

.meteo-current-summary{
    max-width:560px;
    margin:22px 0 0;
    color:rgba(255,255,255,.68);
    font-size:12px;
    line-height:1.8
}

.meteo-current-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    border:1px solid rgba(255,255,255,.14);
    border-radius:17px;
    overflow:hidden;
    background:rgba(255,255,255,.045)
}

.meteo-current-grid article{
    min-height:95px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:18px;
    border-right:1px solid rgba(255,255,255,.1);
    border-bottom:1px solid rgba(255,255,255,.1)
}

.meteo-current-grid article:nth-child(3n){
    border-right:0
}

.meteo-current-grid article:nth-last-child(-n+3){
    border-bottom:0
}

.meteo-current-grid span{
    color:rgba(255,255,255,.55);
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.04em
}

.meteo-current-grid strong{
    margin-top:5px;
    color:#fff;
    font-size:16px
}

.meteo-status{
    padding:22px 0 0
}

.meteo-alert{
    padding:14px 16px;
    border:1px solid #ead2a9;
    border-radius:10px;
    background:#fff8e9;
    color:#835b17;
    font-size:11px
}

.meteo-section{
    padding:65px 0
}

.meteo-section-soft{
    background:#f6f8f6
}

.meteo-section-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin-bottom:24px
}

.meteo-section-heading h2{
    margin:7px 0 0;
    font-size:34px
}

.meteo-section-heading>span{
    color:var(--muted);
    font-size:10px
}

.meteo-hourly-strip{
    display:grid;
    grid-template-columns:repeat(12,minmax(86px,1fr));
    gap:8px;
    overflow-x:auto;
    padding-bottom:7px
}

.meteo-hour-card{
    min-width:82px;
    padding:16px 10px;
    border:1px solid var(--border);
    border-radius:13px;
    background:#fff;
    text-align:center
}

.meteo-hour-time{
    display:block;
    color:var(--muted);
    font-size:9px;
    font-weight:750
}

.meteo-hour-icon{
    display:block;
    margin:13px 0 9px;
    font-size:26px
}

.meteo-hour-card strong{
    display:block;
    font-size:19px
}

.meteo-hour-card small{
    display:block;
    margin-top:6px;
    color:var(--muted);
    font-size:8px
}

.meteo-daily-list{
    display:grid;
    gap:8px
}

.meteo-day-row{
    display:grid;
    grid-template-columns:minmax(135px,.8fr) minmax(230px,1.5fr) minmax(100px,.65fr) 120px;
    gap:18px;
    align-items:center;
    min-height:72px;
    padding:11px 17px;
    border:1px solid var(--border);
    border-radius:12px;
    background:#fff
}

.meteo-day-name strong,
.meteo-day-name span{
    display:block
}

.meteo-day-name strong{
    font-size:12px
}

.meteo-day-name span{
    margin-top:3px;
    color:var(--muted);
    font-size:9px
}

.meteo-day-condition{
    display:flex;
    align-items:center;
    gap:11px
}

.meteo-day-condition>span{
    font-size:25px
}

.meteo-day-condition strong{
    font-size:11px
}

.meteo-day-rain span,
.meteo-day-rain strong{
    display:block
}

.meteo-day-rain span{
    color:var(--muted);
    font-size:8px
}

.meteo-day-rain strong{
    margin-top:3px;
    font-size:11px
}

.meteo-day-temp{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:13px
}

.meteo-day-temp span{
    color:var(--muted);
    font-size:14px
}

.meteo-day-temp strong{
    font-size:21px
}

.meteo-extra-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:11px
}

.meteo-extra-grid article{
    display:flex;
    align-items:center;
    gap:13px;
    padding:21px;
    border:1px solid var(--border);
    border-radius:14px;
    background:#fff
}

.meteo-extra-icon{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    flex:0 0 44px;
    border-radius:12px;
    background:var(--soft);
    color:var(--primary);
    font-size:16px;
    font-weight:900
}

.meteo-extra-grid small{
    display:block;
    color:var(--muted);
    font-size:8px;
    text-transform:uppercase
}

.meteo-extra-grid strong{
    display:block;
    margin-top:4px;
    font-size:15px
}

.meteo-source{
    padding:0 0 70px
}

.meteo-source-box{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:25px;
    padding:22px 24px;
    border:1px solid var(--border);
    border-radius:14px;
    background:var(--soft)
}

.meteo-source-box strong{
    display:block;
    margin-bottom:4px;
    font-size:11px
}

.meteo-source-box p{
    max-width:760px;
    margin:0;
    color:var(--muted);
    font-size:9px;
    line-height:1.65
}

.meteo-source-box a{
    flex-shrink:0;
    color:var(--primary);
    font-size:10px;
    font-weight:800;
    text-decoration:none
}

.header-weather-value{
    cursor:pointer
}

@media(max-width:950px){
    .meteo-hero-layout{
        grid-template-columns:1fr
    }

    .meteo-extra-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
}

@media(max-width:700px){
    .meteo-current-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))
    }

    .meteo-current-grid article:nth-child(3n){
        border-right:1px solid rgba(255,255,255,.1)
    }

    .meteo-current-grid article:nth-child(2n){
        border-right:0
    }

    .meteo-current-grid article:nth-last-child(-n+3){
        border-bottom:1px solid rgba(255,255,255,.1)
    }

    .meteo-current-grid article:nth-last-child(-n+2){
        border-bottom:0
    }

    .meteo-day-row{
        grid-template-columns:1fr auto
    }

    .meteo-day-condition{
        grid-column:1
    }

    .meteo-day-rain{
        grid-column:1
    }

    .meteo-day-temp{
        grid-column:2;
        grid-row:1 / span 3
    }

    .meteo-source-box{
        align-items:flex-start;
        flex-direction:column
    }
}

@media(max-width:520px){
    .meteo-hero{
        padding:65px 0 52px
    }

    .meteo-current-temperature{
        font-size:60px
    }

    .meteo-current-icon{
        font-size:50px
    }

    .meteo-current-grid{
        grid-template-columns:1fr 1fr
    }

    .meteo-extra-grid{
        grid-template-columns:1fr
    }
}

.city-map-page{background:#f5f7f5}
.city-map-shell{display:grid;grid-template-columns:390px minmax(0,1fr);min-height:calc(100vh - 112px)}
.city-map-sidebar{position:relative;z-index:500;display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--border);background:#fff}
.city-map-sidebar-head{padding:28px 26px 18px}
.city-map-sidebar-head h1{margin:7px 0 7px;font-size:31px;line-height:1.05;letter-spacing:-.025em}
.city-map-sidebar-head p{margin:0;color:var(--muted);font-size:10px;line-height:1.65}

.city-map-search{position:relative;margin:0 26px 13px}
.city-map-search svg{position:absolute;top:50%;left:13px;width:17px;height:17px;transform:translateY(-50%);fill:none;stroke:var(--primary);stroke-width:1.7;stroke-linecap:round}
.city-map-search input{width:100%;height:44px;box-sizing:border-box;padding:0 13px 0 40px;border:1px solid var(--border);border-radius:10px;background:#f9fbfa;color:var(--text);font:inherit;font-size:11px}
.city-map-search input:focus{outline:none;border-color:#87aa99;box-shadow:0 0 0 3px rgba(20,63,47,.07)}

.city-map-filters{display:flex;gap:6px;overflow-x:auto;padding:0 26px 15px;scrollbar-width:none}
.city-map-filters::-webkit-scrollbar{display:none}
.city-map-filter{flex:0 0 auto;padding:8px 11px;border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--text);font:inherit;font-size:9px;font-weight:750;cursor:pointer}
.city-map-filter:hover,.city-map-filter.is-active{border-color:var(--primary);background:var(--primary);color:#fff}

.city-map-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 26px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--soft)}
.city-map-meta>div{display:flex;align-items:baseline;gap:5px}
.city-map-meta strong{color:var(--text);font-size:15px}
.city-map-meta span{color:var(--muted);font-size:8px}
.city-map-location-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 9px;border:0;background:transparent;color:var(--primary);font:inherit;font-size:8px;font-weight:800;cursor:pointer}
.city-map-location-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7}
.city-map-location-btn.is-loading{opacity:.55;pointer-events:none}

.city-map-results{flex:1 1 auto;min-height:0;overflow:auto;padding:12px}
.city-map-loading,.city-map-empty{display:grid;gap:5px;padding:26px 14px;color:var(--muted);text-align:center;font-size:9px}
.city-map-empty strong{color:var(--text);font-size:11px}

.city-map-result{width:100%;display:grid;grid-template-columns:37px minmax(0,1fr) 20px;gap:10px;align-items:center;margin-bottom:7px;padding:11px;border:1px solid transparent;border-radius:10px;background:#fff;color:inherit;text-align:left;cursor:pointer;transition:.16s ease}
.city-map-result:hover{border-color:var(--border);background:var(--soft)}
.city-map-result-symbol{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#edf3ef;color:#174b37;font-size:14px}
.city-map-result.is-restaurant .city-map-result-symbol{background:#fff5e7;color:#9c6514}
.city-map-result.is-stay .city-map-result-symbol{background:#edf1f8;color:#3e577c}
.city-map-result.is-shop .city-map-result-symbol{background:#f6eef8;color:#75507b}
.city-map-result.is-event .city-map-result-symbol{background:#fff0ee;color:#9a5047}

.city-map-result-copy{min-width:0}
.city-map-result-copy small,.city-map-result-copy strong,.city-map-result-copy em{display:block}
.city-map-result-copy small{margin-bottom:3px;color:#d49332;font-size:7px;font-style:normal;font-weight:850;text-transform:uppercase}
.city-map-result-copy strong{overflow:hidden;color:var(--text);font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.city-map-result-copy em{overflow:hidden;margin-top:3px;color:var(--muted);font-size:8px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}
.city-map-result-arrow{color:var(--muted)}

.city-map-canvas-wrap{position:relative;min-width:0;min-height:620px}
.city-map-canvas{position:absolute;inset:0}

.city-map-legend{position:absolute;z-index:450;left:18px;bottom:18px;display:flex;flex-wrap:wrap;gap:11px;max-width:calc(100% - 110px);padding:10px 12px;border:1px solid rgba(20,63,47,.12);border-radius:10px;background:rgba(255,255,255,.94);box-shadow:0 8px 25px rgba(20,63,47,.08);backdrop-filter:blur(8px)}
.city-map-legend span{display:flex;align-items:center;gap:5px;color:#53635b;font-size:8px;font-weight:750}
.city-map-legend i{width:8px;height:8px;border-radius:50%;background:#275e48}
.city-map-legend i.is-restaurant{background:#d49332}
.city-map-legend i.is-stay{background:#58739b}
.city-map-legend i.is-shop{background:#8a6291}
.city-map-legend i.is-event{background:#ad5c52}

/* Markers */
.city-map-marker{position:relative;width:36px;height:36px;display:grid;place-items:center;border:3px solid #fff;border-radius:50% 50% 50% 12%;background:#245b45;box-shadow:0 5px 15px rgba(0,0,0,.2);color:#fff;transform:rotate(-45deg)}
.city-map-marker span{display:grid;place-items:center;width:100%;height:100%;transform:rotate(45deg);font-size:13px;font-weight:900}
.city-map-marker.is-restaurant{background:#d49332}
.city-map-marker.is-stay{background:#58739b}
.city-map-marker.is-shop{background:#8a6291}
.city-map-marker.is-event{background:#ad5c52}

/* Popup */
.city-map-leaflet-popup .leaflet-popup-content-wrapper{padding:0;overflow:hidden;border-radius:12px;box-shadow:0 14px 35px rgba(13,43,31,.18)}
.city-map-leaflet-popup .leaflet-popup-content{width:245px!important;margin:0}
.city-map-leaflet-popup .leaflet-popup-tip{box-shadow:none}
.city-map-popup-image{height:112px;background-position:center;background-size:cover}
.city-map-popup-body{padding:14px}
.city-map-popup-body>span{display:block;margin-bottom:4px;color:#d49332;font-size:7px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.city-map-popup-body>strong{display:block;color:#14271f;font-size:14px;line-height:1.3}
.city-map-popup-body>small{display:block;margin-top:5px;color:#7a8780;font-size:9px;line-height:1.45}
.city-map-popup-body>a{display:inline-block;margin-top:11px;color:#174b37;font-size:9px;font-weight:850;text-decoration:none}
.leaflet-control-attribution{font-size:8px!important}

@media(max-width:900px){
    .city-map-shell{grid-template-columns:1fr;min-height:0}
    .city-map-sidebar{max-height:none;border-right:0}
    .city-map-results{max-height:280px}
    .city-map-canvas-wrap{min-height:62vh}
}

@media(max-width:560px){
    .city-map-sidebar-head{padding:22px 18px 15px}
    .city-map-search{margin-left:18px;margin-right:18px}
    .city-map-filters{padding-left:18px;padding-right:18px}
    .city-map-meta{padding-left:18px;padding-right:18px}
    .city-map-results{display:none}
    .city-map-canvas-wrap{min-height:65vh}
    .city-map-legend{right:12px;left:12px;bottom:12px;max-width:none}
}

.page-hero {
    position: relative;
    min-height: 420px;
    display: flex;
    align-items: center;
    background-size: cover;
    background-position: center;
    color: #fff;
}

.page-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            90deg,
            rgba(8,29,21,.88) 0%,
            rgba(8,29,21,.62) 45%,
            rgba(8,29,21,.18) 100%
        );
}

.page-hero-content {
    position: relative;
    z-index: 2;
}

.page-hero-places {
    background-image: url('../images/heroes/hero-places.jpg');
}

.page-hero-food {
    background-image: url('../images/heroes/hero-restaurants.jpg');
}

.page-hero-stays {
    background-image: url('../images/heroes/hero-hotels.jpg');
}

.page-hero-events {
    background-image: url('../images/heroes/hero-events.jpg');
}

.page-hero-shops {
    background-image: url('../images/heroes/hero-shops.jpg');
}

.page-hero-transport {
    background-image: url('../images/heroes/hero-transport.jpg');
}

.meteo-hero {
    position: relative;

    background:
        linear-gradient(
            90deg,
            rgba(8, 49, 36, .96) 0%,
            rgba(8, 49, 36, .88) 45%,
            rgba(8, 49, 36, .65) 100%
        ),
        url('../images/heroes/hero-meteo.jpg');

    background-size: cover;
    background-position: center;
    color: #fff;
}

/* Footer bottom – Package 9.5.1 */

.footer-bottom-left{
    display:flex;
    align-items:center;
    gap:18px;
    flex-wrap:wrap;
}

.footer-legal{
    display:flex;
    align-items:center;
    gap:14px;
    flex-wrap:wrap;
}

.footer-legal a{
    position:relative;
    color:inherit;
    text-decoration:none;
    opacity:.72;
    transition:opacity .18s ease;
}

.footer-legal a:hover{
    opacity:1;
}

.footer-legal a + a::before{
    content:"·";
    position:absolute;
    left:-9px;
    opacity:.45;
}

.footer-domain{
    opacity:.72;
}

@media(max-width:700px){
    .footer-bottom{
        align-items:flex-start;
        flex-direction:column;
        gap:12px;
    }

    .footer-bottom-left{
        align-items:flex-start;
        flex-direction:column;
        gap:8px;
    }

    .footer-legal{
        gap:12px;
    }
}

.legal-hero{
    padding:78px 0 56px;
    background:#f5f8f6;
    border-bottom:1px solid var(--border);
}

.legal-hero h1{
    margin:8px 0 10px;
    font-size:clamp(40px,5vw,62px);
    line-height:1.02;
    letter-spacing:-.035em;
}

.legal-hero p{
    max-width:760px;
    margin:0;
    color:var(--muted);
    font-size:13px;
    line-height:1.8;
}

.legal-page{
    padding:58px 0 78px;
}

.legal-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 270px;
    gap:42px;
    align-items:start;
}

.legal-content{
    max-width:850px;
}

.legal-content section + section{
    margin-top:36px;
    padding-top:34px;
    border-top:1px solid var(--border);
}

.legal-content h2{
    margin:0 0 12px;
    font-size:24px;
    line-height:1.2;
}

.legal-content h3{
    margin:22px 0 8px;
    font-size:16px;
}

.legal-content p,
.legal-content li{
    color:var(--muted);
    font-size:12px;
    line-height:1.85;
}

.legal-content ul{
    padding-left:20px;
}

.legal-meta-card{
    position:sticky;
    top:95px;
    padding:20px;
    border:1px solid var(--border);
    border-radius:14px;
    background:var(--soft);
}

.legal-meta-card strong{
    display:block;
    margin-bottom:8px;
    font-size:12px;
}

.legal-meta-card p{
    margin:0;
    color:var(--muted);
    font-size:10px;
    line-height:1.7;
}

.legal-meta-card a{
    display:inline-block;
    margin-top:12px;
    color:var(--primary);
    font-size:10px;
    font-weight:800;
    text-decoration:none;
}

/* COOKIE CONSENT */

.cookie-consent{
    position:fixed;
    left:22px;
    right:22px;
    bottom:22px;
    z-index:3000;
    display:none;
    max-width:1060px;
    margin:auto;
    padding:18px;
    border:1px solid rgba(20,63,47,.18);
    border-radius:16px;
    background:rgba(255,255,255,.97);
    box-shadow:0 18px 55px rgba(10,35,26,.18);
    backdrop-filter:blur(10px);
}

.cookie-consent.is-visible{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:22px;
    align-items:center;
}

.cookie-consent strong{
    display:block;
    margin-bottom:5px;
    color:var(--text);
    font-size:13px;
}

.cookie-consent p{
    margin:0;
    max-width:760px;
    color:var(--muted);
    font-size:10px;
    line-height:1.65;
}

.cookie-consent p a{
    color:var(--primary);
    font-weight:750;
    text-decoration:none;
}

.cookie-consent-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}

.cookie-consent button{
    min-height:38px;
    padding:0 14px;
    border:1px solid var(--border);
    border-radius:9px;
    background:#fff;
    color:var(--text);
    font:inherit;
    font-size:9px;
    font-weight:800;
    cursor:pointer;
}

.cookie-consent button.is-primary{
    border-color:var(--primary);
    background:var(--primary);
    color:#fff;
}

/* SCROLL TOP */

.site-scrolltop{
    position:fixed;
    right:22px;
    bottom:22px;
    z-index:2500;
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border:1px solid rgba(20,63,47,.18);
    border-radius:50%;
    background:#fff;
    color:var(--primary);
    box-shadow:0 10px 28px rgba(20,63,47,.12);
    opacity:0;
    visibility:hidden;
    transform:translateY(8px);
    transition:
        opacity .2s ease,
        visibility .2s ease,
        transform .2s ease;
    cursor:pointer;
}

.site-scrolltop.is-visible{
    opacity:1;
    visibility:visible;
    transform:none;
}

.site-scrolltop svg{
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:2;
    stroke-linecap:round;
    stroke-linejoin:round;
}

body.cookie-banner-open .site-scrolltop{
    bottom:110px;
}

@media(max-width:760px){
    .legal-layout{
        grid-template-columns:1fr;
    }

    .legal-meta-card{
        position:static;
    }

    .cookie-consent.is-visible{
        grid-template-columns:1fr;
    }

    body.cookie-banner-open .site-scrolltop{
        bottom:165px;
    }
}

.city-map-page{background:#f5f7f5}
.city-map-shell{display:grid;grid-template-columns:390px minmax(0,1fr);min-height:calc(100vh - 112px)}
.city-map-sidebar{position:relative;z-index:500;display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--border);background:#fff}
.city-map-sidebar-head{padding:28px 26px 18px}
.city-map-sidebar-head h1{margin:7px 0 7px;font-size:31px;line-height:1.05;letter-spacing:-.025em}
.city-map-sidebar-head p{margin:0;color:var(--muted);font-size:10px;line-height:1.65}

.city-map-search{position:relative;margin:0 26px 13px}
.city-map-search svg{position:absolute;top:50%;left:13px;width:17px;height:17px;transform:translateY(-50%);fill:none;stroke:var(--primary);stroke-width:1.7;stroke-linecap:round}
.city-map-search input{width:100%;height:44px;box-sizing:border-box;padding:0 13px 0 40px;border:1px solid var(--border);border-radius:10px;background:#f9fbfa;color:var(--text);font:inherit;font-size:11px}
.city-map-search input:focus{outline:none;border-color:#87aa99;box-shadow:0 0 0 3px rgba(20,63,47,.07)}

.city-map-filters{display:flex;gap:6px;overflow-x:auto;padding:0 26px 15px;scrollbar-width:none}
.city-map-filters::-webkit-scrollbar{display:none}
.city-map-filter{flex:0 0 auto;padding:8px 11px;border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--text);font:inherit;font-size:9px;font-weight:750;cursor:pointer}
.city-map-filter:hover,.city-map-filter.is-active{border-color:var(--primary);background:var(--primary);color:#fff}

.city-map-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 26px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--soft)}
.city-map-meta>div{display:flex;align-items:baseline;gap:5px}
.city-map-meta strong{color:var(--text);font-size:15px}
.city-map-meta span{color:var(--muted);font-size:8px}
.city-map-location-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 9px;border:0;background:transparent;color:var(--primary);font:inherit;font-size:8px;font-weight:800;cursor:pointer}
.city-map-location-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.7}
.city-map-location-btn.is-loading{opacity:.55;pointer-events:none}

.city-map-results{flex:1 1 auto;min-height:0;overflow:auto;padding:12px}
.city-map-loading,.city-map-empty{display:grid;gap:5px;padding:26px 14px;color:var(--muted);text-align:center;font-size:9px}
.city-map-empty strong{color:var(--text);font-size:11px}

.city-map-result{width:100%;display:grid;grid-template-columns:37px minmax(0,1fr) 20px;gap:10px;align-items:center;margin-bottom:7px;padding:11px;border:1px solid transparent;border-radius:10px;background:#fff;color:inherit;text-align:left;cursor:pointer;transition:.16s ease}
.city-map-result:hover{border-color:var(--border);background:var(--soft)}
.city-map-result-symbol{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#edf3ef;color:#174b37;font-size:14px}
.city-map-result.is-restaurant .city-map-result-symbol{background:#fff5e7;color:#9c6514}
.city-map-result.is-stay .city-map-result-symbol{background:#edf1f8;color:#3e577c}
.city-map-result.is-shop .city-map-result-symbol{background:#f6eef8;color:#75507b}
.city-map-result.is-event .city-map-result-symbol{background:#fff0ee;color:#9a5047}

.city-map-result-copy{min-width:0}
.city-map-result-copy small,.city-map-result-copy strong,.city-map-result-copy em{display:block}
.city-map-result-copy small{margin-bottom:3px;color:#d49332;font-size:7px;font-style:normal;font-weight:850;text-transform:uppercase}
.city-map-result-copy strong{overflow:hidden;color:var(--text);font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.city-map-result-copy em{overflow:hidden;margin-top:3px;color:var(--muted);font-size:8px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}
.city-map-result-arrow{color:var(--muted)}

.city-map-canvas-wrap{position:relative;min-width:0;min-height:620px}
.city-map-canvas{position:absolute;inset:0}

.city-map-legend{position:absolute;z-index:450;left:18px;bottom:18px;display:flex;flex-wrap:wrap;gap:11px;max-width:calc(100% - 110px);padding:10px 12px;border:1px solid rgba(20,63,47,.12);border-radius:10px;background:rgba(255,255,255,.94);box-shadow:0 8px 25px rgba(20,63,47,.08);backdrop-filter:blur(8px)}
.city-map-legend span{display:flex;align-items:center;gap:5px;color:#53635b;font-size:8px;font-weight:750}
.city-map-legend i{width:8px;height:8px;border-radius:50%;background:#275e48}
.city-map-legend i.is-restaurant{background:#d49332}
.city-map-legend i.is-stay{background:#58739b}
.city-map-legend i.is-shop{background:#8a6291}
.city-map-legend i.is-event{background:#ad5c52}

/* Markers */
.city-map-marker{position:relative;width:36px;height:36px;display:grid;place-items:center;border:3px solid #fff;border-radius:50% 50% 50% 12%;background:#245b45;box-shadow:0 5px 15px rgba(0,0,0,.2);color:#fff;transform:rotate(-45deg)}
.city-map-marker span{display:grid;place-items:center;width:100%;height:100%;transform:rotate(45deg);font-size:13px;font-weight:900}
.city-map-marker.is-restaurant{background:#d49332}
.city-map-marker.is-stay{background:#58739b}
.city-map-marker.is-shop{background:#8a6291}
.city-map-marker.is-event{background:#ad5c52}

/* Popup */
.city-map-leaflet-popup .leaflet-popup-content-wrapper{padding:0;overflow:hidden;border-radius:12px;box-shadow:0 14px 35px rgba(13,43,31,.18)}
.city-map-leaflet-popup .leaflet-popup-content{width:245px!important;margin:0}
.city-map-leaflet-popup .leaflet-popup-tip{box-shadow:none}
.city-map-popup-image{height:112px;background-position:center;background-size:cover}
.city-map-popup-body{padding:14px}
.city-map-popup-body>span{display:block;margin-bottom:4px;color:#d49332;font-size:7px;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.city-map-popup-body>strong{display:block;color:#14271f;font-size:14px;line-height:1.3}
.city-map-popup-body>small{display:block;margin-top:5px;color:#7a8780;font-size:9px;line-height:1.45}
.city-map-popup-body>a{display:inline-block;margin-top:11px;color:#174b37;font-size:9px;font-weight:850;text-decoration:none}
.leaflet-control-attribution{font-size:8px!important}

@media(max-width:900px){
    .city-map-shell{grid-template-columns:1fr;min-height:0}
    .city-map-sidebar{max-height:none;border-right:0}
    .city-map-results{max-height:280px}
    .city-map-canvas-wrap{min-height:62vh}
}

@media(max-width:560px){
    .city-map-sidebar-head{padding:22px 18px 15px}
    .city-map-search{margin-left:18px;margin-right:18px}
    .city-map-filters{padding-left:18px;padding-right:18px}
    .city-map-meta{padding-left:18px;padding-right:18px}
    .city-map-results{display:none}
    .city-map-canvas-wrap{min-height:65vh}
    .city-map-legend{right:12px;left:12px;bottom:12px;max-width:none}
}

.city-map-result.is-hovered,
.city-map-result.is-selected{
    border-color:#9fb9ac;
    background:#f2f7f4;
    box-shadow:0 7px 18px rgba(20,63,47,.06);
}

.city-map-result.is-selected{
    box-shadow:
        inset 3px 0 0 var(--primary),
        0 7px 18px rgba(20,63,47,.06);
}

.leaflet-marker-icon.is-hovered .city-map-marker{
    transform:rotate(-45deg) scale(1.16);
    box-shadow:0 8px 20px rgba(0,0,0,.24);
}

.leaflet-marker-icon.is-selected .city-map-marker{
    transform:rotate(-45deg) scale(1.20);
    box-shadow:
        0 0 0 5px rgba(20,63,47,.14),
        0 9px 22px rgba(0,0,0,.25);
}

.city-map-marker{
    transition:
        transform .16s ease,
        box-shadow .16s ease;
}

.place-rich-content{
    color:var(--muted);
    line-height:1.85;
}

.place-rich-content > :first-child{
    margin-top:0;
}

.place-rich-content > :last-child{
    margin-bottom:0;
}

.place-rich-content p{
    margin:0 0 17px;
}

.place-rich-content h2{
    margin:34px 0 13px;
    color:var(--text);
    font-size:27px;
    line-height:1.18;
    letter-spacing:-.02em;
}

.place-rich-content h3{
    margin:27px 0 11px;
    color:var(--text);
    font-size:20px;
    line-height:1.25;
}

.place-rich-content ul,
.place-rich-content ol{
    margin:15px 0 22px;
    padding-left:24px;
}

.place-rich-content li + li{
    margin-top:6px;
}

.place-rich-content blockquote{
    margin:26px 0;
    padding:19px 22px;
    border-left:4px solid var(--primary);
    border-radius:0 12px 12px 0;
    background:var(--soft);
    color:var(--text);
    font-size:15px;
    font-weight:650;
    line-height:1.7;
}

.place-rich-content a{
    color:var(--primary);
    font-weight:750;
    text-decoration:underline;
    text-underline-offset:3px;
}

.place-extra-content{
    margin-top:34px;
    padding-top:30px;
    border-top:1px solid var(--border);
}


/* =========================================================
   PUBLIC EVENTS 2.0 – CATALOG + HOME
   ========================================================= */

.catalog-event-card .event-card-body{
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:28px 30px;
}

.catalog-event-card h3{
    font-size:clamp(22px,2.4vw,30px);
    line-height:1.18;
}

.catalog-event-card .event-description{
    max-width:820px;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
}

.catalog-event-badges{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin:0 0 12px;
}

.catalog-event-badges span{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:5px 9px;
    border:1px solid #e1e8e3;
    border-radius:999px;
    background:#f8faf8;
    color:#52655b;
    font-size:10px;
    font-weight:750;
}

.event-time{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:3px;
}

.event-time small{
    color:var(--accent);
    font-size:10px;
    font-weight:800;
    white-space:nowrap;
}

.home-events-empty{
    padding:28px 30px;
    border:1px dashed var(--border);
    border-radius:16px;
    background:var(--soft);
}

.home-events-empty strong{
    display:block;
    margin-bottom:4px;
}

.home-events-empty p{
    margin:0;
    color:var(--muted);
    font-size:13px;
}

@media(max-width:850px){
    .catalog-event-card{
        grid-template-columns:280px minmax(0,1fr);
    }

    .catalog-event-card .event-card-body{
        padding:24px;
    }
}

@media(max-width:680px){
    .catalog-event-card{
        grid-template-columns:1fr;
    }

    .catalog-event-card .event-card-image{
        height:230px;
        min-height:230px;
    }

    .event-time{
        align-items:flex-start;
    }
}

.event-rich-content {
    color: #56635d;
    font-size: 16px;
    line-height: 1.85;
}

.event-rich-content p {
    margin: 0 0 22px;
}

.event-rich-content h2 {
    margin: 38px 0 14px;
    color: var(--text);
    font-size: 25px;
    line-height: 1.25;
    letter-spacing: -0.7px;
}

.event-rich-content h3 {
    margin: 30px 0 12px;
    color: var(--text);
    font-size: 20px;
}

.event-rich-content strong {
    color: var(--text);
    font-weight: 700;
}

.event-rich-content ul,
.event-rich-content ol {
    margin: 0 0 22px 24px;
}

.event-rich-content li {
    margin-bottom: 7px;
}

.event-rich-content a {
    color: var(--primary);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* =====================================================
   EVENT DETAIL - POLISH / RELATED EVENTS
   ===================================================== */

.event-detail-free-entry {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    background: #def5e5;
    color: #20623b;
    font-size: 10px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.event-detail-related-section {
    padding-top: 72px;
    padding-bottom: 82px;
}

.event-detail-related-section .section-heading {
    margin-bottom: 28px;
}

.event-detail-related-section .events-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.event-detail-related-card {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    border: 1px solid #e2e8e4;
    border-radius: 17px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 10px 30px rgba(25,55,44,.05);
    transition: transform .22s ease, box-shadow .22s ease;
}

.event-detail-related-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 42px rgba(25,55,44,.10);
}

.event-detail-related-card .event-card-image {
    height: 210px;
    min-height: 210px;
}

.event-detail-related-card .event-card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 20px;
}

.event-detail-related-card h3 {
    margin: 0;
    font-size: 18px;
    line-height: 1.35;
}

.event-detail-related-card .event-description {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.event-detail-related-card .event-card-footer {
    margin-top: auto;
}

@media (max-width: 1050px) {
    .event-detail-related-section .events-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .event-detail-related-section .events-grid {
        grid-template-columns: 1fr;
    }

    .event-detail-related-card .event-card-image {
        height: 230px;
        min-height: 230px;
    }
}
