:root {
    --tos-primary: #10b981;
    --tos-secondary: #0f1115;
    --tos-accent: #f59e0b;
    --tos-danger: #ef4444;
    --tos-events: #6366f1;
    --tos-active: #3b82f6;
    --tos-text: #0f1115;
    --tos-muted: #6b7280;
    --tos-bg: #f7f8f9;
    --tos-white: #ffffff;
    --tos-line: #e5e7eb;
    --tos-radius: 2rem;
    --tos-radius-lg: 2.5rem;
    --tos-shadow: 0 20px 50px rgba(15, 17, 21, 0.08);
    --tos-shadow-lg: 0 30px 70px rgba(15, 17, 21, 0.14);
    --tos-container: 1400px;
    --tos-container-narrow: 920px;
}

/* Home page visual lock to provided reference */
body.home {
    background: #f7f8f9;
}

body.home .tos-main {
    padding-top: 0;
}

body.home .tos-header {
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid #f1f5f9;
    box-shadow: 0 8px 28px rgba(15, 17, 21, 0.07);
    border-bottom-left-radius: 2rem;
    border-bottom-right-radius: 2rem;
}

body.home .tos-header-inner {
    min-height: 6rem;
}

body.home .tos-logo-text {
    font-family: var(--tos-font-display, "Inter", sans-serif);
    font-weight: 900;
    letter-spacing: -0.04em;
}

body.home .tos-hero,
body.home .tos-hero-swiper,
body.home .tos-hero-slide {
    min-height: 95vh;
    border-bottom-left-radius: 3rem;
    border-bottom-right-radius: 3rem;
    overflow: hidden;
}

body.home .tos-hero-content {
    justify-content: flex-end;
    padding: 8rem 0 7rem;
}

body.home .tos-hero-title {
    font-size: clamp(3.2rem, 8.8vw, 8rem);
    line-height: 0.9;
    letter-spacing: -0.05em;
}

body.home .tos-marquee {
    padding: 1.1rem 0;
    margin-top: 0.4rem;
    background: transparent;
}

body.home .tos-marquee-track {
    animation-duration: 30s;
}

body.home .tos-marquee-item {
    font-family: var(--tos-font-display, "Inter", sans-serif);
    font-size: clamp(1.45rem, 3.1vw, 2rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    text-transform: uppercase;
}

body.home .tos-bento-card,
body.home .tos-loc-card,
body.home .tos-acc-card,
body.home .tos-news-featured,
body.home .tos-news-item {
    border-radius: 2.5rem;
}

body.home .tos-bento-main-pagination .swiper-pagination-bullet {
    width: 12px;
    height: 6px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.42);
    opacity: 1;
}

body.home .tos-bento-main-pagination .swiper-pagination-bullet-active {
    width: 32px;
    background: #10b981;
}

body.home .tos-wts-section {
    max-width: 1920px;
    margin-inline: auto;
    margin-bottom: 5rem;
    box-shadow: 0 10px 30px rgba(15, 17, 21, 0.04);
}

body.home .tos-loc-swiper .swiper-slide {
    opacity: 0.42;
    transition: opacity 0.5s ease;
}

body.home .tos-loc-swiper .swiper-slide-active,
body.home .tos-loc-swiper .swiper-slide-next,
body.home .tos-loc-swiper .swiper-slide-next + .swiper-slide {
    opacity: 1;
}

body.home .tos-cta-box {
    border-radius: 3rem;
    background: linear-gradient(135deg, #0f1115 0%, #1a1c23 45%, rgba(16, 185, 129, 0.46) 100%);
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.15);
}

body.home .tos-cta-content h2 {
    font-size: clamp(2.8rem, 6.5vw, 5.4rem);
    letter-spacing: -0.045em;
    line-height: 0.9;
}

body.home .tos-news-section {
    border-top: 1px solid #e5e7eb;
}

body.home .tos-news-grid {
    gap: 2.5rem;
}

body.home .tos-news-featured {
    min-height: clamp(28rem, 52vw, 38rem);
}

body.home .tos-events-section {
    border-top-left-radius: 4rem;
    border-top-right-radius: 4rem;
    box-shadow: 0 -20px 60px rgba(0, 0, 0, 0.04);
}

body.home .tos-map-section {
    min-height: 600px;
}

body.home .tos-map-card {
    border-radius: 2.5rem;
}

body.home .tos-footer {
    border-top: 10px solid var(--tos-primary);
    border-top-left-radius: 3rem;
    border-top-right-radius: 3rem;
    margin-top: -2rem;
    box-shadow: 0 -20px 50px rgba(0, 0, 0, 0.5);
}

@media (max-width: 1023px) {
    body.home .tos-hero,
    body.home .tos-hero-swiper,
    body.home .tos-hero-slide {
        min-height: 80vh;
        border-bottom-left-radius: 2.2rem;
        border-bottom-right-radius: 2.2rem;
    }

    body.home .tos-hero-content {
        padding: 7rem 0 5.5rem;
    }

    body.home .tos-wts-section {
        border-radius: 2.2rem;
    }
}

/* ============================================================
   SINGLE SMESTAJ - inner template polish
   ============================================================ */
.single-smestaj .tos-main { background: #f7f8f9; }
.single-smestaj .tos-single-accommodation-head { padding: 2.5rem 0 2rem; }
.single-smestaj .tos-breadcrumbs-strong {
    margin-bottom: 1.5rem;
    color: #9ca3af;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}
.single-smestaj .tos-breadcrumbs-strong a:hover,
.single-smestaj .tos-breadcrumbs-strong span:last-child { color: var(--single-accent, var(--tos-active)); }
.single-smestaj .tos-single-accommodation-title {
    font-family: "Exo 2", sans-serif;
    font-size: clamp(3.2rem, 6vw, 5rem);
    font-weight: 900;
    letter-spacing: -0.045em;
    line-height: 0.94;
    color: #0a0a0a;
}
.single-smestaj .tos-single-accommodation-meta { gap: 1rem; color: #6b7280; font-weight: 600; }
.single-smestaj .tos-single-accommodation-chip {
    border-radius: 0.65rem;
    background: color-mix(in srgb, var(--chip-color, var(--tos-active)) 10%, white);
    font-size: 0.64rem;
    letter-spacing: 0.14em;
}
.single-smestaj .tos-round-tool {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-color: #e5e7eb;
    background: #fff;
    color: #0a0a0a;
}
.single-smestaj .tos-round-tool:hover { background: #f9fafb; color: var(--single-accent, var(--tos-active)); }
.single-smestaj .tos-single-accommodation-gallery-wrap { margin-bottom: 4rem; }
.single-smestaj .tos-single-accommodation-gallery-desktop {
    border: 1px solid #f3f4f6;
    box-shadow: 0 12px 26px rgba(15, 17, 21, 0.05);
}
.single-smestaj .tos-gallery-bento-main::before,
.single-smestaj .tos-gallery-bento-tile::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: transparent;
    transition: background 0.25s ease;
}
.single-smestaj .tos-gallery-bento-main:hover::before,
.single-smestaj .tos-gallery-bento-tile:hover::before { background: rgba(0, 0, 0, 0.2); }
.single-smestaj .tos-gallery-bento-tile.is-more::after { z-index: 2; background: rgba(0, 0, 0, 0.52); }
.single-smestaj .tos-gallery-more {
    z-index: 3;
    flex-direction: column;
    gap: 0.2rem;
    font-family: "Exo 2", sans-serif;
}
.single-smestaj .tos-gallery-more strong { color: #fff; font-size: 2rem; line-height: 1; }
.single-smestaj .tos-gallery-more small {
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}
.single-smestaj .tos-single-accommodation-main { padding-top: 0; padding-bottom: 4rem; }
.single-smestaj .tos-single-accommodation-content {
    padding: clamp(2rem, 4vw, 3.5rem);
    border: 1px solid #f3f4f6;
    border-radius: 2.5rem;
    background: #fff;
    box-shadow: 0 10px 26px rgba(15, 17, 21, 0.04);
}
.single-smestaj .tos-single-accommodation-content h2,
.single-smestaj .tos-single-accommodation-content h3,
.single-smestaj .tos-single-booking-card h3,
.single-smestaj .tos-single-explore-card h3,
.single-smestaj .tos-single-location-card h2,
.single-smestaj .tos-single-related-head h2 {
    font-family: "Exo 2", sans-serif;
    color: #0a0a0a;
    letter-spacing: -0.045em;
}
.single-smestaj .tos-single-accommodation-content h2 { margin: 0 0 2rem; font-size: clamp(2.35rem, 3vw, 2.75rem); }
.single-smestaj .tos-single-accommodation-content h3 { margin: 0 0 1.5rem; font-size: clamp(1.9rem, 2.5vw, 2.15rem); }
.single-smestaj .tos-single-accommodation-content p {
    color: #4b5563;
    font-size: 1.125rem;
    font-weight: 500;
    line-height: 1.8;
}
.single-smestaj .tos-single-accommodation-content > p:first-of-type {
    font-size: clamp(1.15rem, 2vw, 1.28rem);
    font-weight: 600;
    line-height: 1.75;
}
.single-smestaj .tos-single-accommodation-content > p:first-of-type::first-letter {
    float: left;
    margin: 0.05rem 0.55rem 0 0;
    color: var(--single-accent, var(--tos-active));
    font-size: 4.4rem;
    font-weight: 900;
    line-height: 0.9;
}
.single-smestaj .tos-single-divider { width: 100%; height: 1px; margin: 3rem 0; background: #f3f4f6; }
.single-smestaj .tos-single-accommodation-content .tos-single-accommodation-offer {
    margin: 0;
    padding: 0;
    background: transparent;
}
.single-smestaj .tos-single-accommodation-offer li {
    margin: 0 0 1rem;
    color: #4b5563;
    font-size: 1.08rem;
    font-weight: 600;
    line-height: 1.55;
}
.single-smestaj .tos-single-amenities-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}
.single-smestaj .tos-single-amenity-pill {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-height: 4.5rem;
    padding: 1rem;
    border-radius: 1.25rem;
    background: #f7f8f9;
    color: #4b5563;
    font-weight: 800;
}
.single-smestaj .tos-single-amenity-icon { background: #fff; border: 0; box-shadow: 0 8px 18px rgba(15, 17, 21, 0.06); }
.single-smestaj .tos-single-accommodation-sidebar { gap: 2rem; }
.single-smestaj .tos-single-booking-card {
    padding: clamp(2rem, 3vw, 2.5rem);
    border: 1px solid #dbeafe;
    border-radius: 2.5rem;
    background: #f4f7fb;
    color: #0a0a0a;
    box-shadow: 0 18px 45px rgba(15, 17, 21, 0.1);
}
.single-smestaj .tos-single-booking-card h3 {
    margin-bottom: 1.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #e5e7eb;
    font-size: 1.65rem;
}
.single-smestaj .tos-single-booking-list li { border-bottom-color: #e5e7eb; }
.single-smestaj .tos-single-booking-icon {
    background: #fff;
    color: var(--single-accent, var(--tos-active));
    box-shadow: 0 8px 18px rgba(15, 17, 21, 0.06);
}
.single-smestaj .tos-single-booking-list span { color: #9ca3af; font-size: 0.63rem; }
.single-smestaj .tos-single-booking-list a { color: #0a0a0a; }
.single-smestaj .tos-single-booking-list a:hover { color: var(--single-accent, var(--tos-active)); }
.single-smestaj .tos-single-booking-socials { display: block; padding-top: 0.3rem; }
.single-smestaj .tos-single-social-links { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 0.8rem; }
.single-smestaj .tos-single-social-links a {
    width: 2.5rem;
    height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #fff;
    color: #6b7280;
    box-shadow: 0 8px 18px rgba(15, 17, 21, 0.06);
}
.single-smestaj .tos-single-booking-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background: var(--single-accent, var(--tos-active));
    font-size: 0.72rem;
    letter-spacing: 0.16em;
}
.single-smestaj .tos-single-explore-card {
    padding: 2rem;
    border: 1px solid #f3f4f6;
    border-radius: 2.5rem;
    background: #fff;
    box-shadow: 0 10px 26px rgba(15, 17, 21, 0.04);
}
.single-smestaj .tos-single-explore-card h3 { margin: 0 0 1.5rem; text-align: center; font-size: 1.35rem; }
.single-smestaj .tos-single-explore-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.single-smestaj .tos-single-explore-item {
    display: flex;
    min-height: 7.4rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 1rem;
    border: 1px solid transparent;
    border-radius: 1.1rem;
    background: #f7f8f9;
    color: var(--explore-color, var(--tos-active));
    text-align: center;
    transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
.single-smestaj .tos-single-explore-item:hover {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--explore-color, var(--tos-active)) 22%, transparent);
    background: color-mix(in srgb, var(--explore-color, var(--tos-active)) 9%, white);
}
.single-smestaj .tos-single-explore-item span {
    color: #0a0a0a;
    font-size: 0.64rem;
    font-weight: 900;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
.single-smestaj .tos-single-location-section {
    position: relative;
    width: min(calc(100% - 2rem), 1920px);
    height: 28rem;
    margin: 1rem auto 6rem;
    overflow: hidden;
    border-radius: 3rem;
    background: #e5e7eb;
    box-shadow: 0 12px 30px rgba(15, 17, 21, 0.06);
}
.single-smestaj .tos-single-location-section iframe { display: block; width: 100%; height: 100%; border: 0; }
.single-smestaj .tos-single-location-card {
    position: absolute;
    top: 2.5rem;
    left: clamp(1.5rem, 6vw, 6rem);
    width: min(22rem, calc(100% - 3rem));
    padding: 2rem;
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-radius: 2rem;
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 24px 55px rgba(15, 17, 21, 0.18);
    backdrop-filter: blur(14px);
}
.single-smestaj .tos-single-location-card h2 { margin: 0 0 0.5rem; font-size: 2rem; }
.single-smestaj .tos-single-location-card p { margin: 0 0 1.5rem; color: #6b7280; font-size: 0.95rem; font-weight: 600; }
.single-smestaj .tos-single-location-card a {
    display: block;
    width: 100%;
    padding: 1rem 1.2rem;
    border-radius: 999px;
    background: #0a0a0a;
    color: #fff;
    text-align: center;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
.single-smestaj .tos-single-location-card a:hover { background: var(--single-accent, var(--tos-active)); }
.single-smestaj .tos-single-related-accommodation {
    padding: 6rem 0;
    border-top: 1px solid #e5e7eb;
    border-bottom: 1px solid #e5e7eb;
    background: #fff;
}
.single-smestaj .tos-single-related-head span {
    display: block;
    margin-bottom: 0.6rem;
    color: var(--single-accent, var(--tos-active));
    font-size: 0.68rem;
    font-weight: 900;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}
.single-smestaj .tos-single-related-head h2 { font-size: clamp(2.6rem, 4.5vw, 3.5rem); line-height: 1; text-transform: none; }
.single-smestaj .tos-related-swiper {
    overflow: visible !important;
    padding-left: max(1rem, calc((100vw - var(--tos-container)) / 2 + 1rem));
}
.single-smestaj .tos-related-swiper .swiper-wrapper { align-items: stretch; }
.single-smestaj .tos-related-slide { width: min(82vw, 25rem); height: auto; }
.single-smestaj .tos-related-slide .tos-acc-card { display: block; height: 100%; border: 1px solid #f3f4f6; }

@media (min-width: 768px) {
    .single-smestaj .tos-single-accommodation-gallery-desktop {
        height: 31.25rem;
        grid-template-rows: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .single-smestaj .tos-single-accommodation-head { padding-top: 0.9rem; }
    .single-smestaj .tos-single-accommodation-title { font-size: clamp(2.7rem, 14vw, 4.1rem); }
    .single-smestaj .tos-single-gallery-mobile-item { height: 25rem; }
    .single-smestaj .tos-single-accommodation-gallery-wrap { margin-bottom: 2.5rem; }
    .single-smestaj .tos-single-accommodation-content { border-radius: 2rem; padding: 1.7rem; }
    .single-smestaj .tos-single-amenities-grid,
    .single-smestaj .tos-single-explore-grid { grid-template-columns: 1fr; }
    .single-smestaj .tos-single-location-section { height: 31rem; border-radius: 2rem; }
    .single-smestaj .tos-single-location-card {
        top: 1.2rem;
        left: 1rem;
        right: 1rem;
        width: auto;
        padding: 1.5rem;
    }
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: var(--tos-font-body, "Inter", sans-serif);
    font-weight: 300;
    background: var(--tos-bg);
    color: var(--tos-text);
    line-height: 1.6;
}

[x-cloak] {
    display: none !important;
}

.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

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

button,
input,
textarea,
select {
    font: inherit;
}

button {
    cursor: pointer;
}

input,
textarea,
select {
    width: 100%;
}

::selection {
    background: rgba(16, 185, 129, 0.18);
}

::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

::-webkit-scrollbar-track {
    background: #e5e7eb;
}

::-webkit-scrollbar-thumb {
    background: #9ca3af;
    border-radius: 999px;
}

.lucide {
    flex: 0 0 auto;
}

.tos-main {
    min-height: 60vh;
}

.tos-container {
    width: min(calc(100% - 2rem), var(--tos-container));
    margin-inline: auto;
}

.tos-container-narrow {
    width: min(calc(100% - 2rem), var(--tos-container-narrow));
    margin-inline: auto;
}

.tos-section {
    padding: 5rem 0;
}

.tos-section-title,
.tos-page-title,
.wp-content h1,
.wp-content h2,
.wp-content h3,
.wp-content h4,
.tos-comment-form-title,
.tos-comments-title,
.tos-footer-logo,
.tos-logo-text {
    font-family: var(--tos-font-display, "Syne", sans-serif);
    letter-spacing: -0.04em;
    line-height: 0.95;
}

.tos-section-title,
.tos-page-title {
    margin: 0;
    font-size: clamp(2.8rem, 7vw, 5.5rem);
    font-weight: 800;
}

/* Blago tanji globalni prikaz (Exo 2 ostaje jedini font). */
:where(
    h1, h2, h3, h4, h5, h6,
    .wp-content h1, .wp-content h2, .wp-content h3, .wp-content h4,
    .tos-comment-form-title, .tos-comments-title,
    .tos-footer-logo, .tos-logo-text
) {
    font-weight: 800 !important;
}

.tos-page-title-light {
    color: #fff;
}

.tos-page-lead,
.tos-single-lead,
.tos-page-intro {
    color: var(--tos-muted);
    font-size: 1.15rem;
    max-width: 52rem;
}

.tos-page-lead-light {
    color: rgba(255, 255, 255, 0.82);
}

.tos-breadcrumbs {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.55rem;
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--tos-muted);
    margin-bottom: 1.2rem;
}

.tos-breadcrumbs-light {
    color: rgba(255, 255, 255, 0.72);
}

.tos-breadcrumbs a:hover {
    color: var(--tos-primary);
}

.tos-skip {
    position: absolute;
    left: -9999px;
    top: 0;
}

.tos-skip:focus {
    left: 1rem;
    top: 1rem;
    z-index: 200;
    background: #fff;
    padding: 0.8rem 1rem;
    border-radius: 999px;
    box-shadow: var(--tos-shadow);
}

.tos-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(229, 231, 235, 0.9);
}

.tos-header-inner {
    width: min(calc(100% - 2rem), var(--tos-container));
    margin-inline: auto;
    min-height: 5.75rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.tos-logo {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    flex-shrink: 0;
}

.tos-logo-img {
    max-height: var(--tos-logo-h, 4rem);
    width: auto;
}

.tos-logo-lockup {
    display: inline-flex;
    flex-direction: column;
    line-height: 1;
    gap: 0.18rem;
    min-width: clamp(200px, 20vw, 280px);
    align-items: flex-start;
}

.tos-logo .tos-logo-tagline {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    text-transform: uppercase;
    color: #4b4b4b;
    white-space: nowrap;
    width: auto;
    text-align: left;
}

.tos-logo .tos-logo-text {
    font-size: clamp(1.98rem, 4.32vw, 2.79rem);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 0.92;
    color: #4b4b4b;
    width: auto;
    text-align: left;
}

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

.tos-logo.has-image .tos-logo-img {
    max-height: clamp(2.34rem, 4.05vw, 2.88rem);
}

@media (max-width: 820px) {
    .tos-logo .tos-logo-tagline {
        font-size: 0.56rem;
        letter-spacing: -0.01em;
    }
    .tos-logo .tos-logo-text {
        font-size: clamp(1.44rem, 6.12vw, 1.98rem);
    }
    .tos-logo.has-image .tos-logo-img {
        max-height: 2.07rem;
    }
    .tos-logo-lockup {
        min-width: auto;
    }
}

.tos-nav {
    display: none;
    min-width: 0;
}

.tos-nav-list {
    display: flex;
    align-items: stretch;
    gap: 1.2rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.tos-mi {
    position: relative;
    list-style: none;
}

.tos-mi-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    min-height: 5.75rem;
    font-size: 0.88rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    transition: color 0.25s ease;
}

.tos-mi:hover > .tos-mi-link {
    color: var(--tos-mi, var(--tos-primary));
}

.tos-mi-icon {
    display: inline-flex;
}

.tos-mi-caret {
    opacity: 0.8;
}

.tos-dropdown,
.tos-mega-wrap {
    position: absolute;
    left: 0;
    top: calc(100% - 0.5rem);
    opacity: 0;
    visibility: hidden;
    transform: translateY(0.5rem);
    transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease;
    pointer-events: none;
    z-index: 50;
}

.tos-mi:hover > .tos-dropdown,
.tos-mi:hover > .tos-mega-wrap {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.tos-dropdown {
    min-width: 16rem;
    padding: 0.7rem;
    border-radius: 1.2rem;
    background: #fff;
    border: 1px solid var(--tos-line);
    box-shadow: var(--tos-shadow-lg);
    list-style: none;
}

.tos-dropdown li {
    list-style: none;
}

.tos-dropdown a {
    display: block;
    padding: 0.8rem 1rem;
    border-radius: 999px;
    color: var(--tos-muted);
    font-weight: 600;
}

.tos-dropdown a:hover {
    background: rgba(15, 17, 21, 0.05);
    color: var(--tos-text);
}

.tos-mega-wrap {
    width: min(calc(100vw - 2rem), var(--tos-container));
    left: 50%;
    transform: translate(-50%, 0.5rem);
}

.tos-mi:hover > .tos-mega-wrap {
    transform: translate(-50%, 0);
}

.tos-mega-inner {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem 1.5rem;
    background: #fff;
    border: 1px solid var(--tos-line);
    border-radius: 1.8rem;
    box-shadow: var(--tos-shadow-lg);
    padding: 1.8rem;
}

.tos-mm-heading,
.tos-mm-link {
    display: block;
    border-radius: 1.2rem;
}

.tos-mm-heading[data-col="1"],
.tos-mm-link[data-col="1"] { grid-column: 1; }
.tos-mm-heading[data-col="2"],
.tos-mm-link[data-col="2"] { grid-column: 2; }
.tos-mm-heading[data-col="3"],
.tos-mm-link[data-col="3"] { grid-column: 3; }
.tos-mm-heading[data-col="4"],
.tos-mm-link[data-col="4"] { grid-column: 4; }

.tos-mm-heading {
    padding: 0.9rem 1rem 0.5rem;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    color: var(--tos-text);
}

.tos-mm-heading h4 {
    margin: 0;
    font-family: "Syne", sans-serif;
    font-size: 1.1rem;
}

.tos-mm-link {
    padding: 0.85rem 1rem;
    color: var(--tos-muted);
    font-weight: 600;
    transition: background 0.25s ease, color 0.25s ease;
}

.tos-mm-link:hover {
    background: color-mix(in srgb, var(--tos-mi, var(--tos-primary)) 10%, white);
    color: var(--tos-mi, var(--tos-primary));
}

.tos-mm-link small {
    display: block;
    font-size: 0.8rem;
    opacity: 0.8;
    margin-top: 0.15rem;
}

.tos-header-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.tos-icon-btn,
.tos-burger,
.tos-search-close,
.tos-offcanvas-close,
.tos-lightbox-close,
.tos-hero-prev,
.tos-hero-next,
.tos-loc-prev,
.tos-loc-next,
.tos-acc-prev,
.tos-acc-next {
    border: 0;
    width: 2.9rem;
    height: 2.9rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #fff;
    color: var(--tos-text);
    box-shadow: 0 10px 20px rgba(15, 17, 21, 0.08);
}

.tos-burger {
    background: var(--tos-secondary);
    color: #fff;
}

.tos-script-toggle {
    display: none;
    gap: 0.3rem;
    background: rgba(15, 17, 21, 0.05);
    border-radius: 999px;
    padding: 0.25rem;
}

.tos-script-btn {
    border: 0;
    background: transparent;
    color: var(--tos-text);
    padding: 0.55rem 0.9rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.tos-script-btn.is-active {
    background: var(--tos-secondary);
    color: #fff;
}

.tos-search-overlay,
.tos-offcanvas,
.tos-lightbox {
    position: fixed;
    inset: 0;
    z-index: 140;
}

.tos-search-overlay {
    background: rgba(15, 17, 21, 0.82);
    backdrop-filter: blur(12px);
    display: grid;
    place-items: center;
    padding: 1rem;
}

.tos-search-inner {
    width: min(100%, 52rem);
}

.search-form {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    background: #fff;
    padding: 0.75rem;
    border-radius: 999px;
    box-shadow: var(--tos-shadow-lg);
}

.search-field {
    border: 0;
    background: transparent;
    padding: 0.7rem 1rem;
}

.search-submit {
    border: 0;
    border-radius: 999px;
    background: var(--tos-primary);
    color: #fff;
    padding: 0.95rem 1.2rem;
    font-weight: 800;
}

.tos-search-close,
.tos-offcanvas-close,
.tos-lightbox-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
}

.tos-offcanvas {
    background: rgba(15, 17, 21, 0.96);
    color: #fff;
    padding: 5rem 1rem 2rem;
    overflow-y: auto;
}

.tos-offcanvas-inner {
    width: min(100%, 36rem);
    margin-inline: auto;
}

.tos-offcanvas .search-form {
    margin-bottom: 1rem;
}

.tos-offcanvas .search-submit {
    background: #fff;
    color: var(--tos-secondary);
}

.tos-m-item {
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.tos-m-trig,
.tos-m-link {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 0;
    color: inherit;
    background: transparent;
    border: 0;
    font-family: "Syne", sans-serif;
    font-size: 1.6rem;
    font-weight: 800;
    text-align: left;
}

.tos-m-sub {
    display: grid;
    gap: 0.55rem;
    padding: 0 0 1rem 0;
}

.tos-m-head {
    margin: 0.5rem 0 0.15rem;
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.54);
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

.tos-m-link {
    font-family: "Inter", sans-serif;
    font-size: 1rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.84);
    padding: 0.3rem 0;
}

.tos-script-toggle-m {
    margin-top: 1.2rem;
    display: inline-flex;
    background: rgba(255, 255, 255, 0.08);
}

.tos-hero {
    position: relative;
    min-height: calc(100vh - 5.75rem);
    border-bottom-left-radius: 2.5rem;
    border-bottom-right-radius: 2.5rem;
    overflow: hidden;
    background: var(--tos-secondary);
}

.tos-hero-swiper,
.tos-hero-slide {
    min-height: calc(100vh - 5.75rem);
}

.tos-hero-slide {
    position: relative;
}

.tos-hero-slide > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tos-hero-grad,
.tos-page-hero-overlay,
.tos-loc-grad,
.tos-bento-grad,
.tos-news-grad {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(15, 17, 21, 0.9), rgba(15, 17, 21, 0.2), rgba(15, 17, 21, 0.05));
}

.tos-hero-content,
.tos-page-hero .tos-container {
    position: relative;
    z-index: 2;
}

.tos-hero-content {
    width: min(calc(100% - 2rem), var(--tos-container));
    margin-inline: auto;
    padding: 10rem 0 7rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    min-height: calc(100vh - 5.75rem);
}

.tos-hero-eyebrow,
.tos-eyebrow {
    display: inline-block;
    margin-bottom: 1rem;
    font-size: 0.85rem;
    font-weight: 800;
    letter-spacing: 0.25em;
    text-transform: uppercase;
}

.tos-hero-title {
    margin: 0;
    font-family: "Syne", sans-serif;
    font-size: clamp(3.8rem, 10vw, 8.2rem);
    font-weight: 900;
    line-height: 0.9;
    color: #fff;
    max-width: 13ch;
}

.tos-hero-desc {
    margin: 1.1rem 0 0;
    max-width: 56ch;
    color: rgba(255, 255, 255, 0.9);
    font-size: clamp(1rem, 2.2vw, 1.15rem);
    line-height: 1.6;
}

.tos-hero-cta {
    margin-top: 2rem;
    align-self: flex-start;
    width: auto !important;
    display: inline-flex !important;
}

.tos-hero-controls {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    z-index: 3;
    display: flex;
    gap: 0.7rem;
}

.tos-marquee {
    overflow: hidden;
    padding: 1.25rem 0;
}

.tos-marquee-track {
    width: max-content;
    display: flex;
    align-items: center;
    gap: 1.2rem;
    white-space: nowrap;
    animation: tos-marquee 30s linear infinite;
    font-family: "Syne", sans-serif;
    font-size: clamp(1.35rem, 2vw, 2rem);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.03em;
}

.tos-marquee:hover .tos-marquee-track {
    animation-play-state: paused;
}

.tos-marquee-item {
    color: inherit;
    text-decoration: none;
}

a.tos-marquee-item:hover {
    opacity: 0.85;
}

.tos-marquee-item::before {
    content: "•";
    margin-right: 1.2rem;
    color: var(--tos-primary);
}

@keyframes tos-marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

.tos-bento-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-top: 2rem;
    align-items: stretch;
}

.tos-bento-section .tos-section-title {
    text-align: center;
}

.tos-bento-card,
.tos-loc-card,
.tos-news-featured,
.tos-acc-card,
.tos-card,
.tos-event-card {
    border-radius: var(--tos-radius-lg);
    overflow: hidden;
    background: #fff;
    box-shadow: var(--tos-shadow);
}

.tos-bento-card {
    position: relative;
    min-height: 22rem;
    color: #fff;
    display: flex;
    align-items: flex-end;
}

.tos-bento-card img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.8s ease;
}

.tos-bento-card:hover img {
    transform: scale(1.06);
}

.tos-bento-main-swiper,
.tos-bento-main-slide {
    width: 100%;
    height: 100%;
}

.tos-bento-main-pagination {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: 1rem !important;
    z-index: 5;
    display: flex;
    justify-content: center;
}

.tos-bento-main-pagination .swiper-pagination-bullet {
    width: 10px;
    height: 6px;
    border-radius: 4px;
    background: rgba(255, 255, 255, 0.45);
    opacity: 1;
    transition: all 0.3s ease;
}

.tos-bento-main-pagination .swiper-pagination-bullet-active {
    width: 28px;
    background: var(--c, var(--tos-primary));
}

.tos-bento-icon {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 3rem;
    height: 3rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: var(--c, var(--tos-primary)) !important;
    z-index: 2;
    box-shadow: 0 8px 20px color-mix(in srgb, var(--c, var(--tos-primary)) 42%, transparent);
}

.tos-bento-body {
    position: relative;
    z-index: 2;
    padding: 1.5rem;
}

.tos-bento-main-body {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 2rem;
}

.tos-bento-title {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.2rem;
}

.tos-bento-title-main,
.tos-bento-title-sub {
    display: block;
}

.tos-bento-title-sub {
    color: #a7b1c2;
}

.tos-bento-card .tos-bento-grad {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.86), rgba(0, 0, 0, 0.44), rgba(0, 0, 0, 0.18));
}

.tos-bento-body h3 {
    margin: 0 0 0.4rem;
    font-family: "Syne", sans-serif;
    font-size: 1.9rem;
    line-height: 0.98;
}

.tos-bento-body p {
    margin: 0;
    color: rgba(255, 255, 255, 0.82);
}

.tos-badge,
.tos-term-chip,
.tos-acc-cat,
.tos-loc-cat {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border-radius: 999px;
    padding: 0.45rem 0.8rem;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

.tos-badge,
.tos-term-chip {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
}

.tos-wts-section {
    position: relative;
    overflow: hidden;
    background: #f8f9fa;
    border-radius: 3rem;
    border: 1px solid var(--tos-line);
    margin-inline: 0.5rem;
}

.tos-wts-pattern {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(15, 17, 21, 0.12) 1px, transparent 1px);
    background-size: 32px 32px;
    opacity: 0.28;
    mask-image: linear-gradient(to left, black 20%, transparent 70%);
}

.tos-wts-head,
.tos-section-head,
.tos-single-top,
.tos-archive-toolbar {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
}

.tos-section-head-center {
    align-items: center;
    text-align: center;
    justify-content: center;
    flex-direction: column;
}

.tos-wts-pills,
.tos-link-list,
.tos-inline-meta,
.tos-arrows,
.tos-404-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.tos-pill {
    --c: var(--tos-primary);
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    min-width: 3.4rem;
    padding: 0.5rem;
    border-radius: 999px;
    background: var(--c);
    color: #fff;
    box-shadow: 0 15px 30px color-mix(in srgb, var(--c) 24%, transparent);
    transition: width 0.35s ease;
}

.tos-pill-icon {
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.2);
}

.tos-pill-text {
    white-space: nowrap;
    font-family: "Syne", sans-serif;
    font-weight: 800;
}

.tos-loc-swiper,
.tos-acc-swiper {
    overflow: visible;
    margin-top: 2rem;
}

.tos-loc-slide,
.tos-acc-slide {
    width: min(82vw, 26rem);
    height: auto;
}

.tos-loc-card {
    position: relative;
    display: block;
    min-height: 32rem;
    color: #fff;
}

.tos-loc-card img,
.tos-news-featured img,
.tos-card-img img,
.tos-event-card-img img,
.tos-acc-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tos-loc-card img {
    position: absolute;
    inset: 0;
}

.tos-loc-body,
.tos-news-body {
    position: absolute;
    left: 1.5rem;
    right: 1.5rem;
    bottom: 1.5rem;
    z-index: 2;
}

.tos-loc-body h3,
.tos-news-body h3 {
    margin: 0 0 0.4rem;
    font-family: "Syne", sans-serif;
    font-size: 2rem;
    color: #fff;
}

.tos-loc-body p,
.tos-news-body p {
    margin: 0;
    color: rgba(255, 255, 255, 0.82);
}

.tos-loc-controls {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    margin-top: 1.2rem;
}

.tos-cta-band {
    padding-top: 0;
}

.tos-cta-box {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #0f1115 0%, #1f2937 42%, rgba(16, 185, 129, 0.45) 100%);
    color: #fff;
    border-radius: 3rem;
    box-shadow: var(--tos-shadow-lg);
    padding: 3rem 1.5rem;
}

.tos-cta-content {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 1rem;
    justify-items: start;
}

.tos-cta-content h2 {
    margin: 0;
    font-family: "Syne", sans-serif;
    font-size: clamp(2.6rem, 7vw, 5rem);
    line-height: 0.94;
}

.tos-cta-content p {
    margin: 0;
    max-width: 36rem;
    color: rgba(255, 255, 255, 0.78);
}

.tos-cta-content .tos-btn {
    width: auto;
}

.tos-news-grid,
.tos-single-grid,
.tos-contact-layout,
.tos-archive-layout,
.tos-single-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

.tos-news-featured {
    position: relative;
    min-height: 26rem;
}

.tos-news-featured img {
    position: absolute;
    inset: 0;
}

.tos-news-list {
    display: grid;
    gap: 1rem;
}

.tos-news-item,
.tos-side-item {
    display: grid;
    grid-template-columns: 5.5rem 1fr;
    gap: 1rem;
    padding: 1rem;
    background: #fff;
    border-radius: 1.5rem;
    box-shadow: var(--tos-shadow);
}

.tos-news-item img,
.tos-side-item img {
    width: 100%;
    height: 100%;
    min-height: 5.5rem;
    object-fit: cover;
    border-radius: 1rem;
}

.tos-news-item h4,
.tos-side-item h5 {
    margin: 0.35rem 0 0;
    font-family: "Syne", sans-serif;
    font-size: 1.35rem;
    line-height: 1.02;
}

.tos-news-meta,
.tos-side-item span,
.tos-results-count {
    color: var(--tos-muted);
    font-size: 0.85rem;
    font-weight: 600;
}

.tos-events-list {
    display: grid;
    gap: 0.8rem;
    margin-top: 2rem;
}

.tos-event-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.7rem;
    align-items: center;
    background: #fff;
    border: 1px solid var(--tos-line);
    border-radius: 1.5rem;
    padding: 1.25rem;
    box-shadow: var(--tos-shadow);
}

.tos-event-date {
    font-family: "Syne", sans-serif;
    font-size: 1.55rem;
    font-weight: 900;
    color: var(--tos-events);
}

.tos-event-info h3 {
    margin: 0 0 0.25rem;
    font-family: "Syne", sans-serif;
    font-size: 1.9rem;
    line-height: 0.98;
}

.tos-event-info p {
    margin: 0;
    color: var(--tos-muted);
}

.tos-event-arrow {
    justify-self: end;
    width: 3rem;
    height: 3rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--tos-line);
}

.tos-events-cta {
    margin-top: 1.75rem;
    text-align: center;
}

.tos-map-section {
    position: relative;
    min-height: 32rem;
    padding: 0;
    background: #ddd;
}

.tos-map-section iframe,
.tos-map-strip iframe,
.tos-embed-map iframe {
    width: 100%;
    border: 0;
}

.tos-map-iframe iframe {
    display: block;
    min-height: 32rem;
    filter: grayscale(10%);
}

.tos-map-card {
    position: absolute;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    z-index: 2;
    padding: 1.5rem;
    border-radius: 2rem;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    box-shadow: var(--tos-shadow-lg);
}

.tos-map-card h3 {
    margin: 0 0 1rem;
    font-family: "Syne", sans-serif;
    font-size: 2rem;
}

.tos-map-card ul {
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
    display: grid;
    gap: 0.8rem;
}

.tos-map-card li {
    display: grid;
    grid-template-columns: 1.5rem 1fr;
    gap: 0.7rem;
    align-items: start;
}

.tos-footer {
    background: var(--tos-secondary);
    color: #fff;
    border-top: 10px solid var(--tos-primary);
    border-top-left-radius: 3rem;
    border-top-right-radius: 3rem;
    margin-top: -1rem;
    padding: 5rem 0 1.5rem;
    position: relative;
    z-index: 3;
}

.tos-footer-grid {
    width: min(calc(100% - 2rem), var(--tos-container));
    margin-inline: auto;
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

.tos-footer-logo {
    margin: 0 0 1rem;
    font-size: 3rem;
}

.tos-footer-about {
    max-width: 30rem;
    color: rgba(255, 255, 255, 0.7);
}

.tos-footer-contact,
.tos-footer-menu,
.tos-footer-bottom-menu,
.tos-comment-list,
.tos-hours-list,
.tos-facts-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.tos-footer-contact {
    display: grid;
    gap: 0.65rem;
    margin-top: 1rem;
}

.tos-footer-contact li {
    display: flex;
    align-items: center;
    gap: 0.7rem;
}

.tos-footer-social {
    display: flex;
    gap: 0.65rem;
    margin-top: 1rem;
}

.tos-footer-social a {
    width: 2.7rem;
    height: 2.7rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.08);
}

.tos-footer-col h4 {
    margin: 0 0 1rem;
    padding-bottom: 0.7rem;
    font-size: 0.85rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.tos-footer-menu {
    display: grid;
    gap: 0.7rem;
}

.tos-footer-menu a,
.tos-footer-bottom-menu a {
    color: rgba(255, 255, 255, 0.72);
}

.tos-footer-bottom {
    width: min(calc(100% - 2rem), var(--tos-container));
    margin: 2rem auto 0;
    padding-top: 1rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
    color: rgba(255, 255, 255, 0.54);
    font-size: 0.95rem;
}

.tos-footer-bottom-menu {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.tos-page-hero {
    position: relative;
    padding: 4rem 0 2rem;
}

.tos-page-hero-compact {
    padding-top: 3rem;
}

.tos-page-hero-media {
    min-height: 34rem;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    border-bottom-left-radius: 2.5rem;
    border-bottom-right-radius: 2.5rem;
    background: var(--tos-secondary);
    margin-top: 5.75rem;
}

.tos-page-hero-bg {
    position: absolute;
    inset: 0;
}

.tos-page-hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tos-event-hero-content {
    position: relative;
    z-index: 2;
    padding: 5rem 0 2rem;
}

.tos-event-facts {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: 1rem;
    padding-bottom: 2rem;
}

.tos-event-fact {
    background: rgba(255, 255, 255, 0.92);
    color: var(--tos-text);
    border-radius: 1.4rem;
    padding: 1rem 1.1rem;
}

.tos-event-fact small,
.tos-facts-list small {
    display: block;
    margin-bottom: 0.25rem;
    color: var(--tos-muted);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.tos-event-fact strong,
.tos-facts-list strong {
    font-size: 1rem;
}

.tos-archive-layout {
    align-items: start;
}

.tos-filters,
.tos-single-sidebar,
.tos-contact-sidebar {
    display: grid;
    gap: 1rem;
}

.tos-filter-card,
.tos-side-card,
.tos-contact-form-wrap {
    background: #fff;
    border: 1px solid var(--tos-line);
    border-radius: 2rem;
    padding: 1.5rem;
    box-shadow: var(--tos-shadow);
}

.tos-side-card-dark {
    background: var(--tos-secondary);
    color: #fff;
}

.tos-side-card h4,
.tos-filter-card h3,
.tos-contact-form-wrap h2 {
    margin: 0 0 1rem;
    font-family: "Syne", sans-serif;
    font-size: 1.9rem;
    line-height: 1;
}

.tos-filter-group {
    display: grid;
    gap: 0.7rem;
    margin-bottom: 1.2rem;
}

.tos-filter-group h4 {
    margin: 0;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.tos-check {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    color: var(--tos-text);
}

.tos-check input {
    width: 1rem;
    height: 1rem;
    flex: 0 0 auto;
}

.tos-grid {
    display: grid;
    gap: 1.2rem;
}

.tos-grid-posts,
.tos-grid-events,
.tos-grid-accommodation,
.tos-grid-manifestations,
.tos-grid-places {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.tos-card-link,
.tos-event-card,
.tos-acc-card {
    display: block;
}

.tos-card-img,
.tos-acc-img,
.tos-event-card-img {
    aspect-ratio: 4 / 3;
    background: #e5e7eb;
}

.tos-card-body,
.tos-acc-body,
.tos-event-card-body {
    padding: 1.25rem;
}

.tos-card-title,
.tos-event-card-body h3,
.tos-acc-body h3 {
    margin: 0.45rem 0 0.6rem;
    font-family: "Syne", sans-serif;
    font-size: 1.7rem;
    line-height: 0.98;
}

.tos-card-excerpt,
.tos-acc-body p,
.tos-event-card-body p,
.tos-empty-state p,
.tos-side-card p {
    margin: 0;
    color: var(--tos-muted);
}

.tos-card-meta {
    margin-top: 0.9rem;
    color: var(--tos-muted);
    font-size: 0.85rem;
}

.tos-acc-card {
    border: 1px solid color-mix(in srgb, var(--c) 18%, var(--tos-line));
}

.tos-acc-cat,
.tos-loc-cat {
    background: color-mix(in srgb, var(--c, var(--tos-primary)) 13%, white);
    color: var(--c, var(--tos-primary));
}

.tos-acc-addr {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.tos-event-date-pill {
    position: absolute;
    top: 1rem;
    left: 1rem;
    background: rgba(255, 255, 255, 0.95);
    color: var(--tos-text);
    border-radius: 1rem;
    display: grid;
    place-items: center;
    padding: 0.55rem 0.75rem;
    min-width: 4rem;
}

.tos-event-date-pill strong {
    font-family: "Syne", sans-serif;
    font-size: 1.3rem;
    line-height: 1;
}

.tos-event-date-pill small {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

.tos-pagination .nav-links,
.pagination .nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
    justify-content: center;
    margin-top: 2rem;
}

.page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.7rem;
    height: 2.7rem;
    padding: 0 0.9rem;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--tos-line);
    box-shadow: var(--tos-shadow);
}

.page-numbers.current {
    background: var(--tos-secondary);
    color: #fff;
}

.tos-empty-state {
    text-align: center;
    background: #fff;
    border: 1px solid var(--tos-line);
    border-radius: 2rem;
    padding: 3rem 1.5rem;
    box-shadow: var(--tos-shadow);
}

.tos-empty-state h2 {
    margin: 0 0 0.8rem;
    font-family: "Syne", sans-serif;
    font-size: 2rem;
}

.tos-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    border: 0;
    border-radius: 999px;
    padding: 0.95rem 1.3rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    transition: transform 0.2s ease, background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.tos-btn:hover {
    transform: translateY(-1px);
}

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

.tos-btn-dark {
    background: var(--tos-secondary);
    color: #fff;
}

.tos-btn-outline,
.tos-btn-ghost,
.tos-btn-ghost-sm {
    background: #fff;
    color: var(--tos-text);
    border: 1px solid var(--tos-line);
}

.tos-btn-ghost-sm {
    padding: 0.75rem 1rem;
    font-size: 0.9rem;
}

.tos-gallery-grid,
.tos-gallery-wall-grid {
    display: grid;
    gap: 0.8rem;
}

.tos-gallery-main,
.tos-gallery-thumb,
.tos-gallery-tile {
    border: 0;
    padding: 0;
    background: transparent;
    border-radius: 1.6rem;
    overflow: hidden;
    box-shadow: var(--tos-shadow);
}

.tos-gallery-main img,
.tos-gallery-thumb img,
.tos-gallery-tile img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tos-gallery-main {
    aspect-ratio: 16 / 10;
}

.tos-gallery-thumbs,
.tos-gallery-wall-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
}

.tos-gallery-thumb,
.tos-gallery-tile {
    aspect-ratio: 1;
}

.tos-related-block {
    margin-top: 3rem;
}

.tos-contact-list,
.tos-attr-list {
    display: grid;
    gap: 0.9rem;
}

.tos-contact-list a,
.tos-contact-list div {
    display: grid;
    grid-template-columns: 1.2rem 1fr;
    gap: 0.8rem;
    align-items: start;
}

.tos-contact-list small {
    display: block;
    color: rgba(255, 255, 255, 0.72);
}

.tos-attr-list li {
    display: flex;
    align-items: center;
    gap: 0.7rem;
}

.tos-attr-icon {
    width: 2.4rem;
    height: 2.4rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(15, 17, 21, 0.05);
}

.tos-program-block,
.tos-gallery-wall,
.tos-year-history {
    margin-top: 2.5rem;
}

.tos-program-list {
    display: grid;
    gap: 1rem;
}

.tos-program-row,
.tos-year-card {
    background: #fff;
    border: 1px solid var(--tos-line);
    border-radius: 1.5rem;
    padding: 1.2rem;
    box-shadow: var(--tos-shadow);
}

.tos-program-day {
    display: inline-block;
    margin-bottom: 0.4rem;
    color: var(--tos-events);
    font-size: 0.8rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

.tos-program-row h3 {
    margin: 0 0 0.7rem;
    font-family: "Syne", sans-serif;
    font-size: 1.6rem;
}

.tos-program-row ul,
.tos-year-card p {
    margin: 0;
}

.tos-year-grid {
    display: grid;
    gap: 1rem;
}

.tos-year-card strong {
    display: inline-block;
    margin-bottom: 0.55rem;
    font-family: "Syne", sans-serif;
    font-size: 2.1rem;
}

.tos-hours-list,
.tos-facts-list {
    display: grid;
    gap: 0.8rem;
}

.tos-hours-list li,
.tos-facts-list li {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 0.8rem;
    border-bottom: 1px dashed rgba(107, 114, 128, 0.25);
}

.tos-hours-list li:last-child,
.tos-facts-list li:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.tos-map-strip iframe {
    min-height: 32rem;
    display: block;
}

.tos-comment-list {
    display: grid;
    gap: 1rem;
    margin-bottom: 2rem;
}

.comment {
    background: #fff;
    border: 1px solid var(--tos-line);
    border-radius: 1.5rem;
    padding: 1.2rem;
    box-shadow: var(--tos-shadow);
}

.comment-meta {
    margin-bottom: 0.7rem;
}

.comment-author {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    font-weight: 700;
}

.comment-author img {
    border-radius: 999px;
}

.comment-metadata {
    color: var(--tos-muted);
    font-size: 0.82rem;
}

.reply a,
.comment-reply-link {
    color: var(--tos-primary);
    font-weight: 700;
}

.tos-comments {
    margin-top: 3rem;
}

.tos-comment-form,
.comment-form,
.tos-contact-form {
    display: grid;
    gap: 1rem;
}

.comment-form label,
.tos-field span {
    display: block;
    margin-bottom: 0.4rem;
    font-weight: 700;
}

.comment-form input,
.comment-form textarea,
.tos-contact-form input,
.tos-contact-form textarea {
    border: 1px solid var(--tos-line);
    background: #fff;
    border-radius: 1.25rem;
    padding: 0.95rem 1rem;
    color: var(--tos-text);
}

.tos-form-grid-2 {
    display: grid;
    gap: 1rem;
}

.tos-form-result {
    min-height: 1.5rem;
    font-weight: 700;
}

.tos-form-result.is-success {
    color: var(--tos-primary);
}

.tos-form-result.is-error {
    color: var(--tos-danger);
}

.tos-contact-layout {
    align-items: start;
}

.tos-contact-content {
    display: grid;
    gap: 1.5rem;
}

.tos-lightbox {
    background: rgba(15, 17, 21, 0.95);
    display: grid;
    place-items: center;
    padding: 1rem;
}

.tos-lightbox img {
    max-width: min(100%, 90rem);
    max-height: 90vh;
    border-radius: 1.5rem;
}

.tos-404 {
    min-height: 70vh;
    display: grid;
    place-items: center;
    text-align: center;
    padding: 4rem 0;
}

.tos-404-code {
    font-family: "Syne", sans-serif;
    font-size: clamp(6rem, 16vw, 12rem);
    line-height: 0.9;
    color: var(--tos-primary);
    margin-bottom: 1rem;
}

.wp-content {
    color: var(--tos-text);
}

.wp-content > *:first-child,
.wp-content h2:first-child {
    margin-top: 0;
}

.wp-content p {
    margin: 0 0 1.25rem;
    font-size: 1.08rem;
    line-height: 1.85;
    color: #4b5563;
}

.wp-content h2 {
    margin: 2.6rem 0 1rem;
    font-size: 2.3rem;
    font-weight: 900;
}

.wp-content h3 {
    margin: 2rem 0 0.85rem;
    font-size: 1.7rem;
    font-weight: 900;
}

.wp-content ul {
    margin: 1.5rem 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.8rem;
}

.wp-content ul li {
    position: relative;
    padding-left: 1.5rem;
    color: #4b5563;
}

.wp-content ul li::before {
    content: "•";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--tos-primary);
    font-size: 1.3rem;
    line-height: 1;
}

.wp-content blockquote {
    margin: 2rem 0;
    padding: 1.5rem 1.5rem 1.5rem 1.2rem;
    border-left: 5px solid var(--tos-accent);
    background: #fff;
    border-radius: 0 1rem 1rem 0;
    box-shadow: var(--tos-shadow);
    font-family: "Syne", sans-serif;
    font-size: 1.3rem;
    line-height: 1.5;
}

@media (min-width: 768px) {
    .tos-section {
        padding: 6rem 0;
    }

    .tos-script-toggle {
        display: inline-flex;
    }

    .tos-hero-controls {
        right: 2rem;
        bottom: 2rem;
    }

    .tos-bento-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        grid-template-rows: repeat(2, 19.5rem);
        gap: 1.5rem;
    }

    .tos-bento-card {
        min-height: 0;
        height: 100%;
    }

    .tos-bento-a {
        grid-column: 1 / span 2;
        grid-row: 1 / span 2;
    }

    .tos-bento-b {
        grid-column: 3 / span 1;
        grid-row: 1 / span 1;
    }

    .tos-bento-c {
        grid-column: 4 / span 1;
        grid-row: 1 / span 1;
    }

    .tos-bento-d {
        grid-column: 3 / span 2;
        grid-row: 2 / span 1;
    }

    .tos-cta-box {
        padding: 4rem 4rem;
    }

    .tos-cta-content {
        grid-template-columns: 1fr;
        align-items: start;
        justify-items: start;
    }

    .tos-news-grid,
    .tos-contact-layout,
    .tos-single-layout {
        grid-template-columns: minmax(0, 1.6fr) minmax(18rem, 0.9fr);
    }

    .tos-single-grid {
        grid-template-columns: minmax(0, 1.6fr) minmax(18rem, 0.9fr);
    }

    .tos-archive-layout {
        grid-template-columns: minmax(16rem, 18rem) minmax(0, 1fr);
    }

    .tos-event-row {
        grid-template-columns: 14rem 1fr auto;
        padding: 1.5rem 1.7rem;
    }

    .tos-map-card {
        left: max(1rem, calc((100vw - var(--tos-container)) / 2 + 1rem));
        right: auto;
        bottom: 2rem;
        width: min(26rem, calc(100vw - 2rem));
        padding: 2rem;
    }

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

    .tos-footer-bottom {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }

    .tos-grid-posts,
    .tos-grid-events,
    .tos-grid-manifestations,
    .tos-grid-places {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

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

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

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

@media (min-width: 1024px) {
    .tos-nav {
        display: block;
    }

    .tos-burger {
        display: none;
    }

    .tos-grid-posts {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .tos-grid-events,
    .tos-grid-manifestations,
    .tos-grid-places,
    .tos-grid-accommodation {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .tos-contact-layout {
        grid-template-columns: minmax(0, 1.3fr) minmax(22rem, 0.8fr);
    }

    .tos-contact-sidebar,
    .tos-single-sidebar,
    .tos-filters {
        position: sticky;
        top: 7rem;
    }
}

/* Default page template with optional UI Kit sidebar */
.tos-page-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}
.tos-page-layout-main {
    min-width: 0;
}
.tos-page-content-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 2.2rem;
    padding: clamp(1.25rem, 2.2vw, 2.8rem);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);
}
.tos-page-sidebar {
    min-width: 0;
}
.tos-page-sidebar-sticky {
    display: grid;
    gap: 1rem;
}
@media (min-width: 1024px) {
    .tos-page-layout.is-with-sidebar {
        grid-template-columns: minmax(0, 1fr) 360px;
        gap: 2.25rem;
        align-items: start;
    }
    .tos-page-sidebar-sticky {
        position: sticky;
        top: 110px;
    }
}

/* Page template spacing fixes: remove header->hero gap and align sidebar */
body.page .tos-main {
    padding-top: 0 !important;
}
body.page .tos-page-hero-media {
    margin-top: 0;
}
body.page .tos-section {
    padding: 1.5rem 0 3rem;
}
body.page .tos-page-uikit-zone {
    padding: 1rem 0;
}
body.page .tos-page-uikit-zone-below {
    padding: 0 0 2.2rem;
}
body.page .tos-page-uikit-zone-below .tos-uk-block:first-child {
    margin-top: 0;
}
body.page .tos-page-sidebar .tos-uk-block {
    margin: 0 0 1rem;
}
body.page .tos-page-sidebar .tos-uk-block:last-child {
    margin-bottom: 0;
}
@media (max-width: 767px) {
    body.page .tos-page-hero-media {
        min-height: 26rem;
        border-bottom-left-radius: 2rem;
        border-bottom-right-radius: 2rem;
    }
    body.page .tos-event-hero-content {
        padding: 4.2rem 0 1.4rem;
    }
    body.page .tos-section {
        padding-top: 1rem;
    }
}

@media (min-width: 1280px) {
    .tos-grid-accommodation {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* ----------------------------------------------------------
   2026 polish overrides - home + single smestaj
---------------------------------------------------------- */

html.tos-locked,
body.tos-locked {
    overflow: hidden;
}

body {
    background: #f7f8f9;
}

.tos-header {
    position: fixed;
    inset: 0 0 auto 0;
    top: 0;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(229, 231, 235, 0.95);
    box-shadow: 0 12px 35px rgba(15, 17, 21, 0.07);
    border-bottom-left-radius: 2rem;
    border-bottom-right-radius: 2rem;
}

.admin-bar .tos-header {
    top: 32px;
}

.tos-main {
    padding-top: 6.8rem;
}

/* Home hero ide iza headera (overlay), kao u mockupu. */
body.home .tos-main {
    padding-top: 0;
}

.tos-header-inner {
    min-height: 6rem;
    gap: 1.5rem;
}

.tos-logo-text {
    font-size: clamp(2rem, 2vw, 2.35rem);
    letter-spacing: -0.035em;
    text-transform: uppercase;
}

.tos-nav-list {
    gap: 2rem;
}

.tos-mi-link {
    min-height: 6rem;
    font-family: "Syne", sans-serif;
    font-size: 0.88rem;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.tos-mega-wrap {
    top: calc(100% - 0.15rem);
}

.tos-mega-inner {
    gap: 1rem 2rem;
    padding: 2.2rem;
    border-radius: 2rem;
}

.tos-mm-heading {
    padding: 0.9rem 0.9rem 0.5rem;
}

.tos-mm-heading h4 {
    font-size: 1.2rem;
    letter-spacing: -0.03em;
}

.tos-mm-link {
    padding: 0.85rem 0.95rem;
    border-radius: 999px;
    font-size: 1rem;
}

.tos-icon-btn,
.tos-burger {
    width: 3rem;
    height: 3rem;
}

.tos-script-toggle {
    padding: 0.22rem;
    border: 1px solid rgba(15, 17, 21, 0.08);
    background: #fff;
    box-shadow: 0 10px 20px rgba(15, 17, 21, 0.05);
}

.tos-script-btn {
    font-size: 0.72rem;
    letter-spacing: 0.12em;
}

.tos-search-form,
.search-form {
    border-radius: 999px;
}

.tos-offcanvas {
    background: #0f1115;
}

.tos-offcanvas-inner {
    padding-bottom: 2rem;
}

.tos-hero {
    min-height: 95vh;
    border-bottom-left-radius: 3rem;
    border-bottom-right-radius: 3rem;
    box-shadow: 0 30px 60px rgba(15, 17, 21, 0.18);
}

.tos-hero-swiper,
.tos-hero-slide {
    min-height: 95vh;
}

.tos-hero-content {
    padding: 7rem 0 8rem;
}

.tos-hero-eyebrow {
    letter-spacing: 0.28em;
    font-family: "Syne", sans-serif;
}

.tos-hero-title {
    max-width: 10ch;
    font-size: clamp(4rem, 10vw, 8rem);
}

.tos-hero-controls {
    right: 3rem;
    bottom: 2.5rem;
}

.tos-hero-prev,
.tos-hero-next,
.tos-loc-prev,
.tos-loc-next,
.tos-acc-prev,
.tos-acc-next,
.tos-related-prev,
.tos-related-next {
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 999px;
    border: 2px solid rgba(15, 17, 21, 0.14);
    background: #fff;
    color: var(--tos-text);
    box-shadow: 0 12px 30px rgba(15, 17, 21, 0.08);
}

.tos-hero-prev,
.tos-hero-next {
    border-color: rgba(255, 255, 255, 0.3);
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    backdrop-filter: blur(10px);
}

.tos-hero-prev:hover,
.tos-hero-next:hover {
    background: #fff;
    color: #0f1115;
}

.tos-marquee {
    padding: 1.15rem 0;
}

.tos-marquee-track {
    font-size: clamp(1.55rem, 2.2vw, 2.15rem);
    gap: 1.6rem;
}

.tos-section-title {
    font-size: clamp(3rem, 7vw, 5.4rem);
    letter-spacing: -0.05em;
}

.tos-bento-section .tos-section-title,
.tos-acc-section .tos-section-title,
.tos-news-section .tos-section-title {
    line-height: 0.92;
}

.tos-bento-grid {
    gap: 1.5rem;
}

.tos-bento-card,
.tos-loc-card,
.tos-news-featured,
.tos-acc-card,
.tos-event-row,
.tos-filter-card,
.tos-side-card,
.tos-contact-form-wrap {
    border-radius: 2.5rem;
}

.tos-bento-card {
    min-height: 25rem;
}

.tos-bento-icon {
    top: 1.4rem;
    right: 1.4rem;
    width: 3.2rem;
    height: 3.2rem;
}

.tos-bento-body {
    padding: 2rem;
    text-align: center;
    width: 100%;
}

.tos-bento-body h3 {
    font-size: 2rem;
}

.tos-bento-body p {
    font-size: 0.95rem;
}

.tos-wts-section {
    border-radius: 3rem;
    margin-inline: auto;
    width: min(calc(100% - 1rem), 1920px);
    padding-top: 6rem;
    padding-bottom: 6rem;
}

.tos-wts-pattern {
    inset: 0 0 0 auto;
    width: 50%;
    opacity: 0.15;
    mask-image: linear-gradient(to left, black 25%, transparent 80%);
}

.tos-wts-head {
    gap: 2rem;
    align-items: center;
    margin-bottom: 2.5rem;
    justify-content: space-between;
}

.tos-wts-title {
    display: flex;
    flex-direction: column;
    line-height: 0.9;
}

.tos-wts-title-main,
.tos-wts-title-sub {
    display: block;
}

.tos-wts-title-sub {
    color: #f59e0b;
}

.tos-pill {
    padding: 0.5rem;
    width: auto;
    min-width: 3.5rem;
    height: 3.5rem;
    max-width: 3.5rem;
    overflow: hidden;
    transition: max-width 0.45s ease, transform 0.25s ease;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
}

.tos-pill:hover {
    max-width: 24rem;
    transform: translateY(-2px);
    justify-content: flex-start;
    padding-right: 1rem;
}

.tos-pill-text {
    max-width: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-width 0.45s ease, opacity 0.25s ease 0.1s, margin-left 0.25s ease;
    white-space: nowrap;
    font-size: 0.95rem;
    font-weight: 700;
    margin-left: 0;
}

.tos-pill:hover .tos-pill-text {
    max-width: 18rem;
    opacity: 1;
    margin-left: 0.55rem;
}

.tos-pill-icon svg,
.tos-pill-icon .lucide,
.tos-pill-icon .lucide-dynamic {
    width: 18px !important;
    height: 18px !important;
    stroke-width: 2.2;
}

.tos-pill-icon {
    width: 2.5rem;
    height: 2.5rem;
    min-width: 2.5rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.22);
    margin: 0 auto;
    flex: 0 0 2.5rem;
}

.tos-pill:hover .tos-pill-icon {
    margin: 0;
}

/* Home mockup alignment (requested 1:1 look) */
body.home .tos-bento-section {
    padding-top: 6rem;
    padding-bottom: 3.5rem;
}

body.home .tos-bento-title {
    margin-bottom: 1rem;
}

body.home .tos-bento-title-main {
    font-family: var(--tos-font-display, "Syne", sans-serif);
    font-size: clamp(3.1rem, 6.6vw, 5.4rem);
    line-height: 0.9;
    letter-spacing: -0.045em;
}

body.home .tos-bento-title-sub {
    font-family: var(--tos-font-display, "Syne", sans-serif);
    font-size: clamp(3.1rem, 6.6vw, 5.4rem);
    line-height: 0.9;
    letter-spacing: -0.045em;
    color: #aeb7c7;
}

body.home .tos-bento-main-body h3 {
    font-size: clamp(2rem, 3.4vw, 3.2rem);
}

body.home .tos-bento-main-body p {
    font-size: clamp(1rem, 1.8vw, 1.25rem);
    max-width: 38rem;
}

body.home .tos-wts-section {
    background: #f8f9fa;
    border: 1px solid #e5e7eb;
    border-radius: 3rem;
}

body.home .tos-wts-head {
    margin-bottom: 3rem;
}

body.home .tos-wts-title-main,
body.home .tos-wts-title-sub {
    font-family: var(--tos-font-display, "Syne", sans-serif);
    font-size: clamp(3rem, 6.6vw, 5.2rem);
    letter-spacing: -0.045em;
    line-height: 0.9;
}

body.home .tos-wts-pills {
    align-items: center;
    gap: 0.9rem;
}

body.home .tos-pill {
    width: auto;
    min-width: 56px;
    height: 56px;
    max-width: 56px;
    border-radius: 999px;
    padding: 8px;
    gap: 0;
    overflow: hidden;
    flex-wrap: nowrap;
    justify-content: center;
    transition: max-width 0.5s ease, transform 0.25s ease;
    box-shadow: 0 10px 24px color-mix(in srgb, var(--c) 24%, transparent);
}

body.home .tos-pill:hover {
    max-width: 280px;
    justify-content: flex-start;
    transform: translateY(-2px);
    padding-right: 1rem;
}

body.home .tos-pill-icon {
    width: 40px;
    height: 40px;
    min-width: 40px;
    background: rgba(255, 255, 255, 0.28);
    margin: 0 auto;
    flex: 0 0 40px;
}

body.home .tos-pill-text {
    display: inline-block;
    font-family: var(--tos-font-display, "Syne", sans-serif);
    font-size: 0.9rem;
    font-weight: 700;
    max-width: 0;
    opacity: 0;
    overflow: hidden;
    white-space: nowrap;
    margin-left: 0;
    transition: max-width 0.45s ease, opacity 0.25s ease 0.1s, margin-left 0.25s ease;
}

body.home .tos-pill:hover .tos-pill-text {
    max-width: 14rem;
    opacity: 1;
    margin-left: 0.6rem;
}

body.home .tos-pill:hover .tos-pill-icon {
    margin: 0;
}

@media (min-width: 1024px) {
    body.home .tos-bento-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        grid-template-rows: repeat(2, 400px) !important;
        gap: 1.5rem;
    }

    body.home .tos-bento-a {
        grid-column: 1 / span 2;
        grid-row: 1 / span 2;
    }

    body.home .tos-bento-b {
        grid-column: 3 / span 1;
        grid-row: 1 / span 1;
    }

    body.home .tos-bento-c {
        grid-column: 4 / span 1;
        grid-row: 1 / span 1;
    }

    body.home .tos-bento-d {
        grid-column: 3 / span 2;
        grid-row: 2 / span 1;
    }
}

.tos-loc-slide,
.tos-acc-slide,
.tos-related-slide {
    width: min(82vw, 28rem);
}

.tos-loc-card {
    min-height: 34rem;
}

.tos-loc-body {
    left: 2rem;
    right: 2rem;
    bottom: 2rem;
}

.tos-loc-body h3 {
    font-size: 2.2rem;
    margin-top: 0.6rem;
}

.tos-cta-box {
    border-radius: 3rem;
    padding: 4.25rem 2rem;
}

.tos-cta-content h2 {
    font-size: clamp(3rem, 7vw, 5.6rem);
}

.tos-acc-card {
    padding: 1.25rem;
    border-radius: 2.2rem;
    box-shadow: 0 14px 35px rgba(15, 17, 21, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.tos-acc-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 24px 45px rgba(15, 17, 21, 0.12);
}

.tos-acc-img {
    position: relative;
    border-radius: 1.5rem;
    overflow: hidden;
    height: 17rem;
    aspect-ratio: auto;
}

.tos-acc-img img {
    transition: transform 0.7s ease;
}

.tos-acc-card:hover .tos-acc-img img {
    transform: scale(1.08);
}

.tos-acc-body {
    padding: 1.25rem 0.5rem 0.3rem;
}

.tos-acc-body h3 {
    font-size: 2rem;
}

.tos-acc-cat-overlay {
    position: absolute;
    left: 0.85rem;
    bottom: 0.85rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    padding: 0.45rem 0.75rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--c, var(--tos-active)) 16%, white);
    color: var(--c, var(--tos-active));
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.62rem;
    line-height: 1;
    font-weight: 800;
}

/* Smestaj archive filter results - 2 columns + compact cards */
.post-type-archive-smestaj .tos-grid-accommodation {
    grid-template-columns: 1fr;
}

@media (min-width: 768px) {
    .post-type-archive-smestaj .tos-grid-accommodation {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.post-type-archive-smestaj .tos-acc-body h3 {
    margin: 0.35rem 0 0.45rem;
    font-size: clamp(1.22rem, 1.9vw, 1.55rem);
    line-height: 1.18;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.post-type-archive-smestaj .tos-acc-addr {
    font-size: 0.9rem;
    line-height: 1.4;
    color: #4b5563;
}

.tos-news-featured {
    min-height: 36rem;
}

.tos-news-item,
.tos-side-item {
    gap: 1.2rem;
    padding: 1.25rem;
    border-radius: 2rem;
}

.tos-news-item h4 {
    font-size: 1.8rem;
}

.tos-events-section {
    background: #fff;
    border-top-left-radius: 4rem;
    border-top-right-radius: 4rem;
    box-shadow: 0 -20px 60px rgba(15, 17, 21, 0.04);
    margin-top: 4rem;
}

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

.tos-event-row {
    border: 0;
    border-bottom: 1px solid var(--tos-line);
    border-radius: 1.7rem;
    padding: 2rem 1.5rem;
    box-shadow: none;
}

.tos-event-date {
    font-size: 2rem;
    color: #9ca3af;
}

.tos-event-row:hover .tos-event-date,
.tos-event-row:hover .tos-event-arrow {
    color: var(--tos-events);
}

.tos-event-info h3 {
    font-size: 2.2rem;
}

.tos-event-arrow {
    width: 4rem;
    height: 4rem;
    transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}

.tos-event-row:hover .tos-event-arrow {
    background: var(--tos-events);
    border-color: var(--tos-events);
    color: #fff;
}

.tos-map-section {
    min-height: 38rem;
    overflow: hidden;
}

.tos-map-card {
    border-radius: 2.5rem;
    padding: 2.2rem;
}

.tos-map-card h3 {
    font-size: 3rem;
    line-height: 0.95;
    margin-bottom: 1.5rem;
}

.tos-footer {
    margin-top: -2rem;
    padding-top: 7rem;
    border-top-left-radius: 3rem;
    border-top-right-radius: 3rem;
    box-shadow: 0 -20px 50px rgba(0, 0, 0, 0.45);
}

.tos-footer-grid {
    gap: 3rem;
}

.tos-footer-brand {
    grid-column: span 2;
}

.tos-footer-contact {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 1.1rem;
    padding: 1rem 1.1rem;
}

.tos-footer-logo {
    font-size: 3.3rem;
}

.tos-footer-about,
.tos-footer-menu a,
.tos-footer-bottom-menu a,
.tos-footer-bottom {
    font-size: 0.98rem;
}

.tos-lightbox {
    background: rgba(0, 0, 0, 0.95);
    backdrop-filter: blur(10px);
}

.tos-lightbox-stage {
    max-width: min(100vw - 8rem, 92rem);
    max-height: 86vh;
    display: grid;
    place-items: center;
}

.tos-lightbox img {
    max-width: 100%;
    max-height: 86vh;
    border-radius: 2rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.35);
    object-fit: contain;
}

.tos-lightbox-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 3.5rem;
    height: 3.5rem;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    backdrop-filter: blur(10px);
}

.tos-lightbox-prev {
    left: 1.25rem;
}

.tos-lightbox-next {
    right: 1.25rem;
}

.tos-lightbox-dots {
    position: absolute;
    left: 50%;
    bottom: 1.5rem;
    transform: translateX(-50%);
    display: flex;
    gap: 0.55rem;
}

.tos-lightbox-dot {
    width: 0.75rem;
    height: 0.75rem;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.35);
}

.tos-lightbox-dot.is-active {
    background: #fff;
    width: 1.8rem;
}

.tos-floating-actions {
    position: fixed;
    right: 1.1rem;
    bottom: 1.1rem;
    z-index: 120;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    opacity: 0;
    transform: translateY(12px);
    pointer-events: none;
    transition: opacity 0.22s ease, transform 0.22s ease;
}

.tos-floating-actions.is-visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.tos-floating-btn {
    width: 3.05rem;
    height: 3.05rem;
    border-radius: 999px;
    border: 1px solid rgba(15, 17, 21, 0.16);
    background: #fff;
    color: var(--tos-text);
    box-shadow: 0 10px 24px rgba(15, 17, 21, 0.16);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    padding: 0;
}

.tos-floating-btn-contact {
    color: var(--tos-primary);
}

.tos-floating-btn-top {
    position: relative;
}

.tos-floating-btn-icon {
    display: inline-flex;
    transform: rotate(-90deg);
}

.tos-floating-btn-text {
    position: absolute;
    left: -9999px;
}

.tos-breadcrumbs-strong {
    margin-bottom: 1.8rem;
}

.tos-single-accommodation-head {
    padding: 2.5rem 0 1rem;
}

.tos-single-accommodation-title-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
}

.tos-single-accommodation-title {
    margin: 0 0 1rem;
    font-family: "Inter", sans-serif;
    font-size: clamp(3.2rem, 7vw, 5.8rem);
    font-weight: 900;
    letter-spacing: -0.06em;
    line-height: 0.94;
    text-transform: uppercase;
}

.tos-single-accommodation-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    color: #6b7280;
    font-weight: 600;
}

.tos-single-accommodation-address {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.tos-single-accommodation-chip {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0.45rem 0.9rem;
    background: color-mix(in srgb, var(--chip-color, var(--tos-active)) 12%, white);
    color: var(--chip-color, var(--tos-active));
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.14em;
}

.tos-round-tool {
    width: 3.5rem;
    height: 3.5rem;
    border: 1px solid var(--tos-line);
    border-radius: 999px;
    background: #fff;
    color: var(--tos-text);
    box-shadow: 0 10px 24px rgba(15, 17, 21, 0.06);
}

.tos-single-accommodation-gallery-wrap {
    margin-bottom: 1.5rem;
}

.tos-single-accommodation-gallery-desktop {
    display: none;
}

.tos-single-gallery-swiper {
    border-radius: 2.5rem;
    overflow: hidden;
    box-shadow: 0 20px 50px rgba(15, 17, 21, 0.1);
}

.tos-single-gallery-mobile-item {
    display: block;
    width: 100%;
    height: 25rem;
    border: 0;
    padding: 0;
    background: #d1d5db;
}

.tos-single-gallery-mobile-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tos-single-gallery-swiper .swiper-button-prev,
.tos-single-gallery-swiper .swiper-button-next {
    width: 3rem;
    height: 3rem;
    background: rgba(255, 255, 255, 0.82);
    border-radius: 999px;
    color: #0f1115;
    box-shadow: 0 12px 24px rgba(15, 17, 21, 0.12);
}

.tos-single-gallery-swiper .swiper-button-prev::after,
.tos-single-gallery-swiper .swiper-button-next::after {
    font-size: 0.95rem;
    font-weight: 900;
}

.tos-single-gallery-swiper .swiper-pagination-bullet {
    width: 0.7rem;
    height: 0.7rem;
    background: rgba(255, 255, 255, 0.5);
    opacity: 1;
}

.tos-single-gallery-swiper .swiper-pagination-bullet-active {
    width: 1.7rem;
    border-radius: 999px;
    background: #fff;
}

/* Script toggle ne sme da menja font na sajtu. */
body.tos-script-lat,
body.tos-script-cir {
    font-family: var(--tos-font-body, "Inter", sans-serif);
}

.tos-single-accommodation-main {
    padding-top: 1.5rem;
}

.tos-single-accommodation-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

.tos-single-accommodation-content .wp-content,
.tos-single-accommodation-content {
    font-size: 1.06rem;
}

.tos-single-accommodation-content h2,
.tos-single-accommodation-content h3 {
    font-family: "Syne", sans-serif;
    letter-spacing: -0.04em;
}

.tos-single-accommodation-content .wp-content p {
    margin: 0 0 1.1rem;
    color: #111827;
    font-size: 1.08rem;
    line-height: 1.66;
    font-weight: 650;
}

.tos-single-accommodation-content .wp-content h2,
.tos-single-accommodation-content .wp-content h3,
.tos-single-accommodation-content .wp-content h4 {
    margin: 2.5rem 0 1rem;
    color: #0f1115;
    line-height: 1.15;
}

.tos-single-accommodation-content .wp-content h2 {
    font-size: clamp(1.8rem, 3vw, 2.3rem);
}

.tos-single-accommodation-content .wp-content h3 {
    font-size: clamp(1.45rem, 2.4vw, 1.75rem);
}

.tos-single-accommodation-content .wp-content h4 {
    font-size: clamp(1.15rem, 2vw, 1.3rem);
}

.tos-single-accommodation-content .wp-content ul,
.tos-single-accommodation-content .wp-content ol {
    margin: 1.2rem 0;
    padding: 1.15rem 1.2rem;
    border-radius: 1.35rem;
    background: #f7f8fa;
}

.tos-single-accommodation-content .wp-content ul {
    list-style: none;
}

.tos-single-accommodation-content .wp-content ul li,
.tos-single-accommodation-content .wp-content ol li {
    margin-bottom: 0.25rem;
    color: #111827;
    font-size: 1.02rem;
    line-height: 1.48;
    font-weight: 650;
}

.tos-single-accommodation-content .wp-content ul li:last-child,
.tos-single-accommodation-content .wp-content ol li:last-child {
    margin-bottom: 0;
}

.tos-single-accommodation-content .wp-content ul li {
    position: relative;
    padding-left: 1.6rem;
}

.tos-single-accommodation-content .wp-content ul li::before {
    content: "→";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--single-accent, var(--tos-active));
    font-weight: 800;
}

/* WP editor cesto ubaci <p> unutar <li>; ukloni dupli vertikalni razmak. */
.tos-single-accommodation-content .wp-content li > p {
    margin: 0;
    font: inherit;
    color: inherit;
}

.tos-single-accommodation-content .wp-content strong,
.tos-single-accommodation-content .wp-content b {
    color: #0b1220;
    font-weight: 800;
}

.tos-single-accommodation-content .wp-content blockquote {
    margin: 2.5rem 0;
    padding: 0;
    border: 0;
    color: #111827;
    font-style: italic;
    font-size: clamp(1.28rem, 2.2vw, 1.5rem);
    line-height: 1.55;
    font-weight: 700;
    letter-spacing: -0.01em;
    position: relative;
}

.tos-single-accommodation-content .wp-content blockquote::before {
    content: '"';
    position: absolute;
    top: -1.9rem;
    left: -0.5rem;
    color: #e5e7eb;
    font-size: 4.1rem;
    line-height: 1;
    z-index: -1;
}

.tos-single-accommodation-content .wp-content img {
    display: block;
    max-width: 100%;
    height: auto;
    border-radius: 1.2rem;
    margin: 1.5rem 0;
}

.tos-single-accommodation-content .wp-content figure {
    margin: 1.8rem 0;
}

.tos-single-accommodation-content .wp-content figure img {
    margin: 0;
}

.tos-single-accommodation-content .wp-content figcaption,
.tos-single-accommodation-content .wp-content .wp-caption-text {
    margin-top: 0.6rem;
    color: #4b5563;
    font-size: 0.86rem;
    line-height: 1.5;
    text-align: center;
}

.tos-single-accommodation-offer {
    display: grid;
    gap: 1rem;
}

.tos-single-accommodation-offer li {
    display: flex;
    gap: 0.9rem;
    align-items: flex-start;
    padding-left: 0;
}

.tos-single-accommodation-offer li::before {
    display: none;
}

.tos-single-check {
    width: 1.8rem;
    height: 1.8rem;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--single-accent, var(--tos-active));
}

.tos-single-accommodation-map-block {
    margin-top: 3rem;
}

.tos-single-accommodation-map {
    position: relative;
    min-height: 24rem;
    overflow: hidden;
    border-radius: 3rem;
    border: 1px solid var(--tos-line);
    box-shadow: 0 20px 50px rgba(15, 17, 21, 0.08);
}

.tos-single-accommodation-map iframe {
    display: block;
    min-height: 24rem;
    filter: grayscale(10%);
}

.tos-single-accommodation-map-card {
    position: absolute;
    left: 1.5rem;
    right: 1.5rem;
    bottom: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.35rem 1.5rem;
    border-radius: 1.8rem;
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(10px);
    box-shadow: 0 20px 45px rgba(15, 17, 21, 0.16);
}

.tos-single-accommodation-map-card p {
    margin: 0 0 0.25rem;
    font-family: "Syne", sans-serif;
    font-size: 1.2rem;
    font-weight: 800;
    color: #0f1115;
}

.tos-single-accommodation-map-card small {
    color: #6b7280;
    font-weight: 600;
}

.tos-single-accommodation-map-card a {
    width: 3rem;
    height: 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--single-accent, var(--tos-active));
    color: #fff;
    box-shadow: 0 10px 24px color-mix(in srgb, var(--single-accent, var(--tos-active)) 30%, transparent);
}

.tos-single-accommodation-sidebar {
    display: grid;
    gap: 1.5rem;
}

.tos-single-booking-card {
    position: relative;
    overflow: hidden;
    padding: 2.2rem;
    border-radius: 3rem;
    background: #0f1115;
    color: #fff;
    box-shadow: 0 20px 50px rgba(15, 17, 21, 0.22);
}

.tos-single-booking-glow {
    position: absolute;
    top: -3rem;
    right: -2rem;
    width: 14rem;
    height: 14rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--single-accent, var(--tos-active)) 30%, transparent);
    filter: blur(55px);
}

.tos-single-booking-card h3 {
    position: relative;
    z-index: 1;
    margin: 0 0 1.8rem;
    font-family: "Syne", sans-serif;
    font-size: 2.3rem;
    letter-spacing: -0.05em;
}

.tos-single-booking-list {
    position: relative;
    z-index: 1;
    list-style: none;
    margin: 0 0 1.8rem;
    padding: 0;
    display: grid;
    gap: 1.2rem;
}

.tos-single-booking-list li {
    display: grid;
    grid-template-columns: 3.4rem 1fr;
    gap: 1rem;
    align-items: center;
    padding-bottom: 1.2rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.tos-single-booking-list li:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.tos-single-booking-icon {
    width: 3.4rem;
    height: 3.4rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.06);
    color: var(--single-accent, var(--tos-active));
}

.tos-single-booking-list span {
    display: block;
    margin-bottom: 0.25rem;
    color: rgba(255, 255, 255, 0.56);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    font-weight: 800;
}

.tos-single-booking-list a {
    color: #fff;
    font-size: 1.05rem;
    font-weight: 800;
    word-break: break-word;
}

.tos-single-booking-cta {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    text-align: center;
    padding: 1rem 1.25rem;
    border-radius: 999px;
    background: var(--single-accent, var(--tos-active));
    color: #fff;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    box-shadow: 0 14px 34px color-mix(in srgb, var(--single-accent, var(--tos-active)) 38%, transparent);
}

.tos-single-amenities-card,
.tos-single-links-card {
    padding: 2.2rem;
    border-radius: 3rem;
    background: #fff;
    border: 1px solid var(--tos-line);
    box-shadow: 0 20px 45px rgba(15, 17, 21, 0.06);
}

.tos-single-amenities-card h3,
.tos-single-links-card h3 {
    margin: 0 0 1.6rem;
    font-family: "Syne", sans-serif;
    font-size: 2rem;
    letter-spacing: -0.04em;
}

.tos-single-amenities-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 1.1rem;
}

.tos-single-amenities-list li {
    display: flex;
    align-items: center;
    gap: 1rem;
    font-size: 1.05rem;
    font-weight: 800;
    color: #4b5563;
}

.tos-single-amenity-icon {
    width: 3rem;
    height: 3rem;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid #eef2f7;
    box-shadow: 0 8px 20px rgba(15, 17, 21, 0.04);
}

.tos-single-links-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem;
}

.tos-single-links-list a {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.8rem 1rem;
    border-radius: 999px;
    border: 1px solid var(--tos-line);
    background: #fff;
    color: #0f1115;
    font-weight: 700;
}

.tos-single-related-accommodation {
    padding: 5rem 0 6rem;
    overflow: hidden;
}

.tos-single-related-head {
    width: min(calc(100% - 2rem), var(--tos-container));
    margin-inline: auto;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 3rem;
}

.tos-single-related-head h2 {
    margin: 0;
    font-family: "Syne", sans-serif;
    font-size: clamp(2.8rem, 7vw, 4.8rem);
    letter-spacing: -0.05em;
    line-height: 0.92;
    text-transform: uppercase;
}

.tos-single-related-head h2 span {
    color: #9ca3af;
}

.tos-single-related-arrows {
    display: flex;
    gap: 1rem;
}

.tos-related-swiper {
    overflow: visible;
    padding-left: max(1rem, calc((100vw - var(--tos-container)) / 2 + 1rem));
    padding-right: 1rem;
}

.tos-related-slide .tos-acc-card {
    height: 100%;
}

.tos-smestaj-archive-head {
    padding: 2.5rem 0 1rem;
}

.tos-smestaj-archive-title-row {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
}

.tos-smestaj-archive-main {
    padding-top: 1.5rem;
}

.tos-archive-layout-accommodation {
    align-items: start;
    gap: 2rem;
}

.tos-filter-card-lux {
    border-radius: 2.5rem;
    padding: 2rem;
}

.tos-filters-collapse {
    display: block;
}

.tos-filters-collapse-toggle {
    display: none;
}

.tos-filter-head {
    margin-bottom: 1.5rem;
}

.tos-filter-head h3 {
    margin: 0 0 0.5rem;
    font-family: var(--tos-font-display, "Syne", sans-serif);
    font-size: 2rem;
    letter-spacing: -0.04em;
}

.tos-filter-head p {
    margin: 0;
    color: var(--tos-muted);
}

.tos-filter-stack {
    display: grid;
    gap: 0.8rem;
}

.tos-check-card {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.95rem 1rem;
    border: 1px solid var(--tos-line);
    border-radius: 1.25rem;
    background: #fff;
    transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.2s ease;
}

.tos-check-card:hover {
    transform: translateY(-1px);
    border-color: rgba(59, 130, 246, 0.28);
    box-shadow: 0 12px 24px rgba(15, 17, 21, 0.05);
}

.tos-check-card input {
    width: 1rem;
    height: 1rem;
}

.tos-check-label {
    font-weight: 700;
    color: #374151;
}

.tos-filter-actions {
    display: grid;
    gap: 0.8rem;
    margin-top: 1.5rem;
}

.tos-archive-toolbar-lux {
    margin-bottom: 1.2rem;
    padding: 0.5rem 0;
}

.tos-archive-toolbar-lux .tos-results-count {
    margin: 0;
    font-weight: 700;
    color: #6b7280;
}

@media (max-width: 1023px) {
    .tos-main {
        padding-top: 6.3rem;
    }

    .single-smestaj .tos-main {
        padding-top: 4.7rem;
    }

    .post-type-archive-smestaj .tos-main {
        padding-top: 4.65rem;
    }

    .single-smestaj .tos-single-accommodation-head {
        padding: 0.7rem 0 0.65rem;
    }

    .single-smestaj .tos-breadcrumbs-strong {
        margin-bottom: 0.65rem;
    }

    .tos-smestaj-archive-head {
        padding: 0.55rem 0 0.45rem;
    }

    .tos-smestaj-archive-head .tos-breadcrumbs {
        margin-bottom: 0.25rem;
    }

    .tos-nav {
        display: none;
    }

    .tos-script-toggle {
        display: none;
    }

    .tos-filters-collapse-toggle {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.6rem;
        padding: 0.95rem 1.1rem;
        border-radius: 1rem;
        background: #fff;
        border: 1px solid var(--tos-line);
        color: #111827;
        font-weight: 700;
        cursor: pointer;
        list-style: none;
    }

    .tos-filters-collapse-toggle::-webkit-details-marker {
        display: none;
    }

    .tos-filters-collapse-icon {
        display: inline-flex;
        transition: transform 0.2s ease;
    }

    .tos-filters-collapse[open] .tos-filters-collapse-icon {
        transform: rotate(180deg);
    }

    .tos-filters-collapse-panel {
        margin-top: 0.8rem;
    }

    .tos-filters-collapse .tos-filter-card-lux {
        border-radius: 1.4rem;
        padding: 1rem;
    }

    .tos-lightbox-stage {
        max-width: calc(100vw - 3rem);
    }

    .tos-lightbox-nav {
        top: auto;
        bottom: 4.5rem;
        transform: none;
    }

    .tos-lightbox-prev {
        left: calc(50% - 4.4rem);
    }

    .tos-lightbox-next {
        right: calc(50% - 4.4rem);
    }
}

@media (min-width: 1024px) {
    .post-type-archive-smestaj .tos-filters-collapse {
        display: block !important;
    }

    .post-type-archive-smestaj .tos-filters-collapse-toggle {
        display: none !important;
    }

    .post-type-archive-smestaj .tos-filters-collapse > .tos-filters-collapse-panel {
        display: block !important;
        height: auto !important;
        overflow: visible !important;
        margin-top: 0 !important;
    }
}

@media (min-width: 768px) {
    .tos-bento-grid {
        grid-auto-rows: 24rem;
    }

    .tos-news-grid {
        grid-template-columns: minmax(0, 1.25fr) minmax(21rem, 0.85fr);
        gap: 2rem;
    }

    .tos-single-accommodation-gallery-desktop {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        grid-template-rows: repeat(2, minmax(0, 15.5rem));
        gap: 1rem;
        height: 32rem;
        border-radius: 3rem;
        overflow: hidden;
    }

    .tos-gallery-bento-main,
    .tos-gallery-bento-tile {
        position: relative;
        border: 0;
        padding: 0;
        overflow: hidden;
        background: #d1d5db;
    }

    .tos-gallery-bento-main {
        grid-column: span 2;
        grid-row: span 2;
    }

    .tos-gallery-bento-main img,
    .tos-gallery-bento-tile img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        transition: transform 0.7s ease;
    }

    .tos-gallery-bento-main:hover img,
    .tos-gallery-bento-tile:hover img {
        transform: scale(1.06);
    }

    .tos-gallery-bento-tile.is-more::after {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(0, 0, 0, 0.4);
    }

    .tos-gallery-more {
        position: absolute;
        inset: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        font-family: "Syne", sans-serif;
        font-size: 1.2rem;
        font-weight: 800;
        letter-spacing: -0.03em;
        color: #fff;
        z-index: 1;
    }

    .tos-single-gallery-swiper {
        display: none;
    }
}

@media (min-width: 1024px) {
    .tos-single-accommodation-layout {
        grid-template-columns: minmax(0, 1.65fr) minmax(20rem, 0.9fr);
        gap: 4rem;
    }

    .tos-archive-layout-accommodation {
        grid-template-columns: minmax(19rem, 21rem) minmax(0, 1fr);
        gap: 2.4rem;
    }

    .tos-single-accommodation-sidebar {
        position: sticky;
        top: 8.5rem;
        align-self: start;
    }
}

@media (max-width: 767px) {
    .tos-header {
        border-bottom-left-radius: 1.6rem;
        border-bottom-right-radius: 1.6rem;
    }

    .tos-header-inner {
        min-height: 5.35rem;
    }

    .admin-bar .tos-header {
        top: 0;
    }

    .tos-hero,
    .tos-hero-swiper,
    .tos-hero-slide {
        min-height: 78vh;
    }

    .tos-hero-content {
        padding: 6rem 0 6rem;
    }

    .tos-hero-title {
        font-size: clamp(3rem, 16vw, 4.7rem);
    }

    .tos-bento-card {
        min-height: 22rem;
    }

    .tos-pill {
        width: 3.25rem;
    }

    .tos-loc-card {
        min-height: 31rem;
    }

    .tos-map-card h3 {
        font-size: 2.3rem;
    }

    .tos-single-accommodation-title-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .tos-smestaj-archive-title-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .tos-single-accommodation-title {
        font-size: clamp(2.6rem, 14vw, 4.1rem);
    }

    .tos-single-booking-card,
    .tos-single-amenities-card,
    .tos-single-links-card {
        padding: 1.7rem;
        border-radius: 2.2rem;
    }

    .tos-single-related-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .tos-related-swiper {
        padding-left: 1rem;
    }

    .tos-related-slide {
        width: min(85vw, 22rem);
    }

    .tos-floating-actions {
        right: 0.8rem;
        bottom: 0.8rem;
    }
}

/* ============================================================
   HOME-PAGE PIXEL POLISH — usklađivanje sa Tailwind mockup-om
   ============================================================ */

/* Header full-width, mega menu inside container */
body.home .tos-header,
.tos-header { width: 100%; }
.tos-mega-wrap {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: min(calc(100vw - 2rem), var(--tos-container));
    max-width: var(--tos-container);
}

/* Hero — eyebrow + title + opcioni CTA stoje na dnu (kao u mockup-u) */
body.home .tos-hero { box-shadow: 0 30px 80px rgba(15,17,21,.22); }
body.home .tos-hero-content { align-items: flex-start; }
body.home .tos-hero-title { color:#fff; font-family:"Syne",sans-serif; }
body.home .tos-hero-eyebrow { color: var(--tos-primary); }

/* Bento — A nije uvijek slider; držimo grid 4x2 na desktopu (već je definisano), 
   centrirajemo body B/C/D kao u mockup-u */
body.home .tos-bento-b .tos-bento-body,
body.home .tos-bento-c .tos-bento-body,
body.home .tos-bento-d .tos-bento-body { text-align:center; padding:2rem; }
body.home .tos-bento-d .tos-bento-body { max-width: 36rem; margin: 0 auto; }

/* CTA — text levo, dugme desno na desktopu */
.tos-cta-box {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    align-items: flex-start;
    text-align: left;
    background: linear-gradient(135deg,#0f1115 0%,#1a1c23 42%,rgba(16,185,129,.4) 100%);
    padding: 3rem 1.75rem;
}
.tos-cta-box .tos-cta-content { display: contents; }
.tos-cta-content > div h2 { color:#fff; font-family:"Syne",sans-serif; line-height:.94; margin:0; font-size: clamp(2.4rem,6vw,4.4rem); }
.tos-cta-content > div p  { color: rgba(255,255,255,.78); margin: 1rem 0 0; max-width: 36rem; }
.tos-cta-content .tos-btn { align-self: flex-start; }

@media (min-width: 768px) {
    .tos-cta-box {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 3rem;
        padding: 5rem 5rem;
    }
    .tos-cta-content > div { max-width: 36rem; }
    .tos-cta-content .tos-btn { align-self: center; }
}

/* What to see — naslov sa "tos-section-title" + akcent boja */
body.home .tos-wts-section .tos-section-title { color: var(--tos-text); }
body.home .tos-wts-pattern { display:block; }

/* News — featured visok i čitljiv, lista čistija */
body.home .tos-news-featured { min-height: clamp(28rem, 42vw, 40rem); }
body.home .tos-news-featured .tos-news-body h3 {
    font-family:"Syne",sans-serif; font-size: clamp(2rem, 3.6vw, 3rem); line-height: 1.05; color:#fff;
}
body.home .tos-news-list { display:flex; flex-direction:column; gap:1rem; }
body.home .tos-news-item { background:#fff; border:1px solid var(--tos-line); padding:1rem; border-radius:1.5rem; display:grid; grid-template-columns: 5.5rem 1fr; gap:1rem; align-items:center; }
body.home .tos-news-item img { width:5.5rem; height:5.5rem; border-radius:1rem; object-fit:cover; }
body.home .tos-news-item h4 { font-family:"Syne",sans-serif; font-size:1.15rem; line-height:1.2; color: var(--tos-text); margin:.25rem 0 0; }
body.home .tos-news-meta { font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color: var(--tos-muted); font-weight:700; }

/* Accommodation kartice — bele, padding oko slike (kao u mockupu) */
.tos-acc-card { background:#fff; }
.tos-acc-img img { width:100%; height:100%; object-fit:cover; }
.tos-acc-cat { color: var(--c, var(--tos-active)); background: color-mix(in srgb, var(--c, var(--tos-active)) 12%, white); }

/* Events list — simple row sa hover akcent bojom */
.tos-event-row { background: transparent; }
.tos-event-row:hover { background: rgba(15,17,21,.025); }
.tos-event-info h3 { font-family:"Syne",sans-serif; letter-spacing:-.03em; color: var(--tos-text); margin:0 0 .25rem; }
.tos-event-info p  { margin:0; color: var(--tos-muted); }

/* Map sekcija — full-bleed iframe + floating card */
.tos-map-section { position: relative; }
.tos-map-iframe { position:absolute; inset:0; }
.tos-map-iframe iframe { width:100%; height:100%; border:0; filter: grayscale(10%); }
.tos-map-card { background: rgba(255,255,255,.95); backdrop-filter: blur(14px); border: 1px solid rgba(255,255,255,.5); }

/* Footer — green border-top kao u mockupu */
.tos-footer { background: var(--tos-secondary); color:#fff; border-top: 10px solid var(--tos-primary); }
.tos-footer h4 { color:#fff; border-bottom:1px solid rgba(255,255,255,.15); padding-bottom:.75rem; margin-bottom:1.25rem; font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; font-family:"Syne",sans-serif; }
.tos-footer-menu a, .tos-footer-bottom-menu a { color: rgba(255,255,255,.6); text-decoration:none; }
.tos-footer-menu a:hover, .tos-footer-bottom-menu a:hover { color: var(--tos-primary); }

/* Skip link */
.tos-skip { position:absolute; left:-9999px; }
.tos-skip:focus { position:fixed; left:1rem; top:1rem; z-index:100; padding:.75rem 1.25rem; background:#fff; color:var(--tos-text); border-radius:999px; }

/* ============================================================
   FIX 1: JEDAN FONT (Inter) za ćirilicu i latinicu — bez svap-a
   ============================================================
   Razlog: Syne ne sadrži ćirilične glife; kada je tekst u ћирилици,
   browser fallback-uje na sistemski font, a posle preslovljavanja
   u latinicu povlači Syne — što izgleda kao da "fontovi skaču".
   Rešenje: Inter (weights 400/500/700/800/900) za sve.
   ============================================================ */
:root {
    --tos-font-display: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
    --tos-font-body:    "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
}
html, body,
.tos-hero-title, .tos-hero-eyebrow,
.tos-section-title, .tos-bento-title-main, .tos-bento-title-sub,
.tos-wts-title-main, .tos-wts-title-sub,
.tos-bento-body h3, .tos-loc-body h3, .tos-news-body h3,
.tos-acc-body h3, .tos-event-info h3, .tos-marquee-track,
.tos-pill-text, .tos-mi-link, .tos-logo-text,
.tos-cta-content h2, .tos-cta-content > div h2,
.tos-news-item h4, .tos-side-item h5, .tos-news-meta,
.tos-footer-logo, .tos-footer h4,
.tos-page-title, .tos-single-title,
.tos-event-card-body h3, .tos-event-date-pill,
h1, h2, h3, h4, h5, h6 {
    font-family: var(--tos-font-display) !important;
    letter-spacing: -0.03em;
}

/* Body i UI tekst */
body, p, li, span, a, button, input, textarea, select, label,
.wp-content, .tos-card-excerpt, .tos-news-list, .tos-event-info p,
.tos-footer-about, .tos-footer-menu a, .tos-footer-bottom-menu a {
    font-family: var(--tos-font-body) !important;
}

/* Logo i marquee zadržavaju jak vizuelni karakter — bold Inter */
.tos-logo-text, .tos-marquee-track, .tos-hero-title, .tos-section-title {
    font-weight: 900;
}

/* ============================================================
   FIX 2: "Шта посетити" pills — pouzdan hover expand
   ============================================================ */
body.home .tos-wts-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    align-items: center;
}

body.home .tos-pill {
    --c: var(--tos-primary);
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.55rem;
    height: 56px;
    width: 56px;
    min-width: 56px;
    max-width: 56px;
    padding: 8px;
    border-radius: 999px;
    background: var(--c);
    color: #fff;
    text-decoration: none;
    overflow: hidden;
    white-space: nowrap;
    box-shadow: 0 10px 24px color-mix(in srgb, var(--c) 28%, transparent);
    transition: width 0.45s cubic-bezier(.4,0,.2,1),
                max-width 0.45s cubic-bezier(.4,0,.2,1),
                transform 0.25s ease,
                padding-right 0.4s ease;
    cursor: pointer;
}

body.home .tos-pill:hover,
body.home .tos-pill:focus-visible {
    width: auto;
    max-width: 280px;
    padding-right: 1.1rem;
    transform: translateY(-2px);
}

body.home .tos-pill .tos-pill-icon {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    min-width: 40px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.28);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
}

body.home .tos-pill .tos-pill-icon svg,
body.home .tos-pill .tos-pill-icon .lucide {
    width: 18px;
    height: 18px;
    stroke-width: 2;
}

body.home .tos-pill .tos-pill-text {
    display: inline-block;
    max-width: 0;
    opacity: 0;
    overflow: hidden;
    white-space: nowrap;
    font-weight: 700;
    font-size: 0.88rem;
    letter-spacing: 0.01em;
    transition: max-width 0.45s ease, opacity 0.25s ease 0.1s;
}

body.home .tos-pill:hover .tos-pill-text,
body.home .tos-pill:focus-visible .tos-pill-text {
    max-width: 220px;
    opacity: 1;
}

/* Mobile: prikaži teksta uvek (nema hover) */
@media (hover: none) {
    body.home .tos-pill {
        width: auto;
        max-width: 280px;
        padding-right: 1.1rem;
    }
    body.home .tos-pill .tos-pill-text {
        max-width: 220px;
        opacity: 1;
    }
}

/* ============================================================
   FOOTER — 1:1 sa mockup-om
   ============================================================ */
.tos-footer {
    position: relative;
    z-index: 20;
    background: #0f1115;
    color: #fff;
    margin-top: -2rem;
    padding: 8rem 1.5rem 2.5rem;
    border-top: 10px solid var(--tos-primary);
    border-top-left-radius: 3rem;
    border-top-right-radius: 3rem;
    box-shadow: 0 -20px 50px rgba(0, 0, 0, 0.5);
}

.tos-footer-grid {
    width: min(100%, var(--tos-container, 1400px));
    margin: 0 auto 5rem;
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
}

@media (min-width: 768px) {
    .tos-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem; }
}
@media (min-width: 1024px) {
    .tos-footer-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 3rem; }
    .tos-footer-brand { grid-column: span 2; }
}

/* Brand kolona */
.tos-footer-logo {
    margin: 0 0 1.5rem;
    font-size: clamp(2.6rem, 4.6vw, 3.3rem);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1;
    text-transform: uppercase;
    color: #fff;
}
.tos-footer-logo .tos-logo-dot { color: var(--tos-primary); }

.tos-footer-about {
    max-width: 28rem;
    margin: 0 0 2rem;
    color: rgba(255, 255, 255, 0.55);
    font-size: 1rem;
    line-height: 1.65;
    font-weight: 500;
}

/* Kontakt kapsula */
.tos-footer-contact {
    list-style: none;
    margin: 0 0 2rem;
    padding: 1.5rem;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 1rem;
    width: max-content;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.tos-footer-contact li {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    color: rgba(255, 255, 255, 0.85);
    font-weight: 500;
    font-size: 0.95rem;
}
.tos-footer-contact li a {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s ease;
}
.tos-footer-contact li a:hover { color: var(--tos-primary); }
.tos-footer-contact .tos-fc-ic {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--tos-primary);
    flex: 0 0 auto;
}

/* Social ikone */
.tos-footer-social {
    display: flex;
    gap: 0.6rem;
    margin-top: 0.5rem;
}
.tos-footer-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.06);
    color: rgba(255, 255, 255, 0.75);
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.tos-footer-social a:hover {
    background: var(--tos-primary);
    color: #fff;
    transform: translateY(-2px);
}

/* Kolone meni */
.tos-footer-col h4 {
    margin: 0 0 1.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.18em;
}
.tos-footer-col .tos-footer-menu,
.tos-footer-col ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.tos-footer-col li a {
    color: rgba(255, 255, 255, 0.55);
    font-weight: 500;
    text-decoration: none;
    font-size: 0.95rem;
    transition: color 0.2s ease;
}
.tos-footer-col li a:hover { color: var(--tos-primary); }
.tos-footer-empty {
    color: rgba(255, 255, 255, 0.35);
    font-size: 0.85rem;
    font-style: italic;
    margin: 0;
}

/* DONJI BAR */
.tos-footer-bottom {
    width: min(100%, var(--tos-container, 1400px));
    margin: 0 auto;
    padding-top: 2rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    color: rgba(255, 255, 255, 0.4);
    font-size: 0.9rem;
    font-weight: 500;
    text-align: center;
}
@media (min-width: 768px) {
    .tos-footer-bottom {
        flex-direction: row;
        justify-content: space-between;
        text-align: left;
    }
}
.tos-footer-copy { margin: 0; }
.tos-footer-bottom-links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.5rem;
}
.tos-footer-bottom-links a {
    color: rgba(255, 255, 255, 0.4);
    text-decoration: none;
    transition: color 0.2s ease;
}
.tos-footer-bottom-links a:hover { color: #fff; }

/* ============================================================
   FIX: WP Admin Bar koristi Dashicons icon font preko :before.
   Naš globalni `font-family: Inter !important` ga je prebrisivao.
   Vraćamo originalne fontove za sve unutar #wpadminbar.
   ============================================================ */
#wpadminbar,
#wpadminbar *,
#wpadminbar *::before,
#wpadminbar *::after,
#wpadminbar .ab-icon,
#wpadminbar .ab-icon::before,
#wpadminbar .ab-item::before,
#wpadminbar .ab-empty-item::before,
#wpadminbar [class*="ab-icon"]::before,
#wpadminbar [class*="dashicons"],
#wpadminbar [class*="dashicons"]::before {
    font-family: dashicons, "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
    letter-spacing: normal !important;
}

/* Dashicons (i u admin baru i van njega) — uvek dashicons font */
.dashicons,
.dashicons-before::before,
[class^="dashicons-"]::before,
[class*=" dashicons-"]::before {
    font-family: dashicons !important;
}

/* ============================================================
   CUSTOM NAV (TOS_Nav builder) — desktop
   Mega menu = širina kontejnera (1400px), centriran,
   ispod headera. Hover otvara, keyboard focus drži.
   ============================================================ */
.tos-nav { display: none; }
@media (min-width: 1024px) {
    .tos-nav { display: block; height: 100%; }
}

.tos-nav-list {
    display: flex;
    align-items: stretch;
    gap: 2rem;
    list-style: none;
    margin: 0;
    padding: 0;
    height: 100%;
}

.tos-mi {
    --tos-mi: var(--tos-text);
    position: static; /* mega/dropdown su position:absolute relativno na .tos-header */
    display: flex;
    align-items: center;
}

.tos-mi-link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    height: 100%;
    padding: 0 0.25rem;
    background: transparent;
    border: 0;
    cursor: pointer;
    color: var(--tos-text);
    text-decoration: none;
    font-weight: 800;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    transition: color 0.2s ease;
}
.tos-mi:hover > .tos-mi-link,
.tos-mi:focus-within > .tos-mi-link { color: var(--tos-mi); }
.tos-nav-list > .tos-mi > .tos-mi-link {
    transition: color 0.2s ease, text-shadow 0.2s ease;
}
.tos-nav-list > .tos-mi:hover > .tos-mi-link,
.tos-nav-list > .tos-mi:focus-within > .tos-mi-link {
    color: var(--tos-mi);
    text-shadow: 0 0 0.01px var(--tos-mi);
}

.tos-mi-icon { display: inline-flex; align-items: center; }
.tos-mi-caret { display: inline-flex; align-items: center; transition: transform 0.25s ease; }
.tos-mi:hover .tos-mi-caret,
.tos-mi:focus-within .tos-mi-caret { transform: rotate(180deg); }

/* DROPDOWN (mali, ispod link-a) */
.tos-dd {
    position: absolute;
    top: calc(100% - 4px);
    left: auto;
    margin-left: -1rem;
    background: #fff;
    border-radius: 1.25rem;
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.12);
    border: 1px solid rgba(0, 0, 0, 0.04);
    padding: 0.6rem;
    min-width: 240px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
    z-index: 60;
}
.tos-dd ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.tos-dd li a {
    display: block;
    padding: 0.7rem 1rem;
    border-radius: 999px;
    color: var(--tos-text);
    text-decoration: none;
    font-weight: 500;
    font-size: 0.95rem;
    text-transform: none;
    letter-spacing: 0;
    transition: background 0.2s ease, color 0.2s ease;
}
.tos-dd li a:hover { background: color-mix(in srgb, var(--tos-mi) 10%, white); color: var(--tos-mi); }

.tos-mi-dropdown:hover > .tos-dd,
.tos-mi-dropdown:focus-within > .tos-dd {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* MEGA MENU = ŠIRINA KONTEJNERA (1400px), CENTRIRAN ISPOD HEADERA */
.tos-mega {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(8px);
    width: min(calc(100vw - 2rem), var(--tos-container, 1400px));
    background: transparent;
    padding-top: 0.5rem;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s;
    z-index: 60;
}
.tos-mega-inner {
    background: #fff;
    border-radius: 2rem;
    box-shadow: 0 40px 80px rgba(0, 0, 0, 0.15);
    border: 1px solid rgba(0, 0, 0, 0.04);
    padding: 2.5rem;
}
.tos-mega-grid {
    display: grid;
    gap: 2rem;
}
.tos-mega-cols-1 { grid-template-columns: 1fr; }
.tos-mega-cols-2 { grid-template-columns: repeat(2, 1fr); }
.tos-mega-cols-3 { grid-template-columns: repeat(3, 1fr); }
.tos-mega-cols-4 { grid-template-columns: repeat(4, 1fr); }
.tos-mega-col + .tos-mega-col { padding-left: 2rem; border-left: 1px solid rgba(0, 0, 0, 0.06); }

.tos-mega-head { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1.25rem; }
.tos-mega-head-icon {
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--tos-mc, var(--tos-mi)) 12%, white);
    color: var(--tos-mc, var(--tos-mi));
    flex: 0 0 auto;
}
.tos-mega-head h4 {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--tos-text);
}
.tos-mega-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.tos-mega-col li a {
    display: block;
    padding: 0.6rem 1rem;
    border-radius: 999px;
    color: var(--tos-muted);
    text-decoration: none;
    font-weight: 500;
    font-size: 0.95rem;
    text-transform: none;
    letter-spacing: 0;
    transition: background 0.2s ease, color 0.2s ease;
}
.tos-mega-col li a:hover {
    background: color-mix(in srgb, var(--tos-mc, var(--tos-mi)) 12%, white);
    color: var(--tos-mc, var(--tos-mi));
}

.tos-mi-mega:hover > .tos-mega,
.tos-mi-mega:focus-within > .tos-mega {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}

/* Da bi mega meni mogao da zauzme širinu kontejnera, header mora biti pozicioni roditelj */
.tos-header { position: fixed; }

/* OFFCANVAS / MOBILE */
.tos-offcanvas { background: #0f1115; color: #fff; }
.tos-offcanvas-inner .tos-m-list { display: flex; flex-direction: column; gap: 4px; margin-top: 1.5rem; }
.tos-m-item { border-bottom: 1px solid rgba(255,255,255,.08); }
.tos-m-trig {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 1.1rem 0.5rem;
    background: transparent;
    border: 0;
    color: #fff;
    text-align: left;
    font-weight: 800;
    font-size: 1.6rem;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    cursor: pointer;
    text-decoration: none;
}
.tos-m-trig:hover { color: var(--tos-mi, var(--tos-primary)); }
.tos-m-c { display: inline-flex; transition: transform 0.25s ease; }
.tos-m-c.is-open { transform: rotate(180deg); color: var(--tos-mi, var(--tos-primary)); }
.tos-m-sub { padding: 0 0 1rem 0.5rem; display: flex; flex-direction: column; gap: 0.5rem; }
.tos-m-col { --tos-mc: var(--tos-primary); }
.tos-m-col + .tos-m-col {
    margin-top: 0.7rem;
    padding-top: 0.7rem;
    border-top: 1px solid rgba(255,255,255,.14);
}
.tos-m-head {
    color: var(--tos-mc, rgba(255,255,255,.75));
    font-size: 0.96rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    margin: 0.65rem 0 0.4rem;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-weight: 700;
}
.tos-m-head-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    opacity: 0.95;
}
.tos-m-head-text {
    line-height: 1;
}
.tos-m-link {
    color: rgba(255,255,255,.65);
    text-decoration: none;
    font-size: 1.28rem;
    padding: 0.52rem 0;
    transition: color 0.2s ease;
}
.tos-m-link:hover { color: #fff; }

/* ============================================================
   MEGA MENU — frontend: kolone uvek dele prostor jednako
   bez obzira na broj kolona (1-N).
   ============================================================ */
.tos-mega-grid {
    display: grid !important;
    /* Auto-fit za N kolona: kreiramo N jednakih traka koje se same proracunavaju */
    gap: 2.5rem;
}

/* Eksplicitno forsirano: 1, 2, 3, 4 kolone uvek jednako podeljene */
.tos-mega-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)) !important; }
.tos-mega-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.tos-mega-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.tos-mega-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }

.tos-mega-col {
    min-width: 0;        /* dozvoli skupljanje da text ne preliva */
    padding-left: 0 !important;
    border-left: 0 !important;
    position: relative;
}

/* Vizuelni separator izmedju kolona kroz pseudo-element */
.tos-mega-col + .tos-mega-col::before {
    content: "";
    position: absolute;
    left: -1.25rem;       /* polovina gap-a */
    top: 0.25rem;
    bottom: 0.25rem;
    width: 1px;
    background: rgba(0, 0, 0, 0.06);
}

/* Linkovi unutar kolone — full width pa truncate ako je dugacko */
.tos-mega-col li a {
    width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Manji unutrašnji padding panela radi vise prostora kolona */
.tos-mega-inner { padding: 2rem 2.25rem; }

@media (max-width: 1200px) {
    .tos-mega-cols-3,
    .tos-mega-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    .tos-mega-grid { gap: 1.5rem; }
    .tos-mega-col + .tos-mega-col::before { display: none; }
}

/* Mega meni linkovi: dozvoli prirodan wrap (bez "..." odsecanja) */
.tos-mega-col li a {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    line-height: 1.35;
}

/* Mega heading - dozvoli da naslov ide u dva reda samo ako mora */
.tos-mega-head h4 {
    line-height: 1.2;
    word-break: break-word;
}

/* ============================================================
   MEGA MENU — uvek 4 jednake kolone (25% svaka), bez obzira
   na broj popunjenih kolona u podacima.
   ============================================================ */
.tos-mega-grid,
.tos-mega-cols-1,
.tos-mega-cols-2,
.tos-mega-cols-3,
.tos-mega-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 2.5rem !important;
}

/* Tablet: 2 u redu */
@media (max-width: 1100px) {
    .tos-mega-grid,
    .tos-mega-cols-1,
    .tos-mega-cols-2,
    .tos-mega-cols-3,
    .tos-mega-cols-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 1.5rem !important;
    }
}

/* Mobile: 1 u redu (mada offcanvas i tako preuzima) */
@media (max-width: 640px) {
    .tos-mega-grid,
    .tos-mega-cols-1,
    .tos-mega-cols-2,
    .tos-mega-cols-3,
    .tos-mega-cols-4 {
        grid-template-columns: 1fr !important;
    }
}

/* ============================================================
   MEGA MENU — DEFINITIVNI LAYOUT FIX
   Visoka specifičnost + width: 100% na panelu i grid kontejneru,
   svaka kolona display:block (ne flex), 25% širine bez razvlačenja.
   ============================================================ */
.tos-mega .tos-mega-inner {
    width: 100% !important;
    display: block !important;
}

.tos-mega .tos-mega-inner .tos-mega-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 2.5rem !important;
    width: 100% !important;
    align-items: start;
}

.tos-mega .tos-mega-inner .tos-mega-grid > .tos-mega-col {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    flex: initial !important;
    grid-column: span 1 !important;
    box-sizing: border-box !important;
}

.tos-mega .tos-mega-inner .tos-mega-grid > .tos-mega-col .tos-mega-head {
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    margin-bottom: 1.25rem !important;
    flex-wrap: nowrap !important;
}

.tos-mega .tos-mega-inner .tos-mega-grid > .tos-mega-col .tos-mega-head h4 {
    margin: 0 !important;
    font-size: 1.05rem !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    white-space: normal !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    color: var(--tos-text) !important;
}

.tos-mega .tos-mega-inner .tos-mega-grid > .tos-mega-col ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    width: 100% !important;
}

.tos-mega .tos-mega-inner .tos-mega-grid > .tos-mega-col ul li {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
}

.tos-mega .tos-mega-inner .tos-mega-grid > .tos-mega-col ul li a {
    display: block !important;
    width: 100% !important;
    padding: 0.55rem 0.9rem !important;
    border-radius: 999px !important;
    color: var(--tos-muted) !important;
    text-decoration: none !important;
    font-weight: 500 !important;
    font-size: 0.95rem !important;
    line-height: 1.35 !important;
    white-space: normal !important;
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
    text-overflow: clip !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    transition: background 0.2s ease, color 0.2s ease;
}

/* Tablet */
@media (max-width: 1100px) {
    .tos-mega .tos-mega-inner .tos-mega-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 1.5rem !important;
    }
}

@media (max-width: 640px) {
    .tos-mega .tos-mega-inner .tos-mega-grid {
        grid-template-columns: 1fr !important;
    }
}

/* Ukloni stari pseudo separator koji moze da pomera grid */
.tos-mega .tos-mega-inner .tos-mega-grid > .tos-mega-col + .tos-mega-col::before {
    display: none !important;
}

/* ============================================================
   KONTAKT V2 (mockup-match)
   ============================================================ */
.tos-contact-v2-hero {
    position: relative;
    height: 50vh;
    min-height: 25rem;
    margin-top: 0;
    overflow: hidden;
    border-bottom: 8px solid var(--tos-primary);
    border-bottom-left-radius: 3rem;
    border-bottom-right-radius: 3rem;
    background: var(--tos-secondary);
}

.tos-contact-v2-hero-bg,
.tos-contact-v2-hero-bg img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.tos-contact-v2-hero-bg img {
    object-fit: cover;
    opacity: 0.4;
    mix-blend-mode: overlay;
}

.tos-contact-v2-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, var(--tos-secondary), transparent);
}

.tos-contact-v2-hero-inner {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding-bottom: 3.5rem;
}

.tos-contact-v2-breadcrumbs {
    margin-bottom: 1rem;
}

.tos-contact-v2-title {
    text-transform: uppercase;
    letter-spacing: -0.05em;
}

.tos-contact-v2-main {
    padding-top: 5rem;
}

.tos-contact-v2-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.5rem;
}

.tos-contact-v2-left {
    display: grid;
    gap: 2.5rem;
}

.tos-contact-v2-about {
    background: #fff;
    border: 1px solid var(--tos-line);
    border-radius: 2.5rem;
    padding: 2rem;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
}

.tos-contact-v2-about h2 {
    margin: 0 0 1.25rem;
    font-size: clamp(2rem, 4vw, 2.7rem);
    line-height: 1;
    letter-spacing: -0.04em;
}

.tos-contact-v2-form-wrap {
    background: #fff;
    border: 1px solid var(--tos-line);
    border-radius: 3rem;
    padding: 2rem;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.06);
}

.tos-contact-v2-form-wrap h2 {
    margin: 0 0 0.4rem;
    font-size: clamp(2rem, 4vw, 2.7rem);
    line-height: 1;
    letter-spacing: -0.04em;
}

.tos-contact-v2-form-wrap > p {
    margin: 0 0 1.5rem;
    color: #6b7280;
    font-weight: 500;
}

.tos-contact-v2-form-head {
    margin-bottom: 1.35rem;
    padding-bottom: 1.1rem;
    border-bottom: 1px solid rgba(17, 24, 39, 0.1);
}

.tos-contact-v2-form-head h2 {
    margin-bottom: 0.45rem;
}

.tos-contact-v2-form-head p {
    margin: 0;
    color: #6b7280;
    font-weight: 500;
}

.tos-contact-v2-form-wrap .tos-contact-form {
    gap: 1.2rem;
}

.tos-contact-v2-form-wrap .tos-field span {
    margin-bottom: 0.5rem;
    margin-left: 0.75rem;
    font-size: 0.76rem;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.tos-contact-v2-form-wrap .tos-contact-form input,
.tos-contact-v2-form-wrap .tos-contact-form textarea {
    border-radius: 999px;
    border: 1px solid #e5e7eb;
    background: #f9fafb;
    padding: 0.95rem 1.25rem;
}

.tos-contact-v2-form-wrap .tos-contact-form textarea {
    border-radius: 1.5rem;
    min-height: 8rem;
}

.tos-contact-v2-form-wrap .tos-btn {
    width: auto;
    justify-self: start;
    padding: 1rem 1.9rem;
    letter-spacing: 0.1em;
}

.tos-contact-v2-sidebar {
    display: grid;
    gap: 1.5rem;
    align-self: start;
}

.tos-contact-v2-info {
    position: relative;
    overflow: hidden;
    background: var(--tos-secondary);
    color: #fff;
    border-radius: 3rem;
    padding: 2rem;
    box-shadow: 0 24px 48px rgba(15, 17, 21, 0.35);
}

.tos-contact-v2-info::after {
    content: "";
    position: absolute;
    top: -4rem;
    right: -4rem;
    width: 12rem;
    height: 12rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--tos-primary) 24%, transparent);
    filter: blur(16px);
}

.tos-contact-v2-info h4,
.tos-contact-v2-hours h4 {
    margin: 0 0 1.5rem;
    font-size: 2rem;
    line-height: 1;
    letter-spacing: -0.04em;
}

.tos-contact-v2-list {
    position: relative;
    z-index: 2;
    display: grid;
    gap: 1.25rem;
}

.tos-contact-v2-list > div,
.tos-contact-v2-list > a {
    display: grid;
    grid-template-columns: 2.9rem 1fr;
    gap: 1.35rem;
    align-items: start;
}

.tos-contact-v2-icon {
    width: 2.9rem;
    height: 2.9rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    color: var(--tos-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.tos-contact-v2-icon svg {
    width: 1.25rem;
    height: 1.25rem;
}

.tos-contact-v2-list small {
    display: block;
    margin-bottom: 0.12rem;
    color: rgba(255, 255, 255, 0.62);
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 700;
}

.tos-contact-v2-list strong {
    display: block;
    color: #fff;
    font-size: 1.08rem;
    line-height: 1.3;
}

.tos-contact-v2-hours {
    position: relative;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--tos-line);
    border-radius: 3rem;
    padding: 2rem;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.05);
}

.tos-contact-v2-card {
    position: relative;
    overflow: hidden;
}

.tos-contact-v2-bg-icon {
    position: absolute;
    right: -0.6rem;
    bottom: -1.1rem;
    color: rgba(15, 17, 21, 0.08);
    transform: rotate(-20deg);
    pointer-events: none;
    z-index: 1;
}

.tos-contact-v2-bg-icon .lucide,
.tos-contact-v2-bg-icon .lucide-dynamic {
    width: 8.2rem;
    height: 8.2rem;
}

.tos-contact-v2-bg-icon.is-info {
    color: rgba(255, 255, 255, 0.16);
}

.tos-contact-v2-about > *:not(.tos-contact-v2-bg-icon),
.tos-contact-v2-form-wrap > *:not(.tos-contact-v2-bg-icon),
.tos-contact-v2-info > *:not(.tos-contact-v2-bg-icon),
.tos-contact-v2-hours > *:not(.tos-contact-v2-bg-icon) {
    position: relative;
    z-index: 2;
}

.tos-contact-v2-hours-head {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    margin-bottom: 1.2rem;
}

.tos-contact-v2-hours-icon {
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 999px;
    background: #f3f4f6;
    color: var(--tos-text);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.tos-contact-v2-hours-icon svg {
    width: 1.15rem;
    height: 1.15rem;
}

.tos-contact-v2-hours-head h4 {
    margin: 0;
}

.tos-contact-v2-hours ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.tos-contact-v2-hours li {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.8rem 0;
    border-bottom: 1px dashed rgba(17, 24, 39, 0.12);
}

.tos-contact-v2-hours li:last-child {
    border-bottom: 0;
}

.tos-contact-v2-hours li span {
    color: #6b7280;
    font-weight: 700;
}

.tos-contact-v2-hours li strong {
    font-weight: 800;
    color: var(--tos-text);
}

.tos-contact-v2-hours li.is-sat strong {
    color: var(--tos-accent);
}

.tos-contact-v2-hours li.is-sun strong em {
    display: inline-block;
    font-style: normal;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #6b7280;
    background: #f3f4f6;
    border-radius: 999px;
    padding: 0.25rem 0.6rem;
}

.tos-contact-v2-map {
    position: relative;
    width: 100%;
    height: 37.5rem;
    margin-top: 2rem;
    background: #d1d5db;
}

.tos-contact-v2-map iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
    filter: grayscale(10%);
}

.tos-contact-v2-map-btn {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 1rem 1.75rem;
    border-radius: 999px;
    background: var(--tos-secondary);
    color: #fff;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    box-shadow: 0 22px 36px rgba(0, 0, 0, 0.35);
    white-space: nowrap;
}

.tos-contact-v2-map-btn:hover {
    background: var(--tos-primary);
}

@media (min-width: 1024px) {
    .tos-contact-v2-hero {
        margin-top: -30px;
    }

    .tos-contact-v2-grid {
        grid-template-columns: minmax(0, 7fr) minmax(22rem, 5fr);
        gap: 3rem;
    }

    .tos-contact-v2-sidebar {
        position: sticky;
        top: 8.5rem;
    }

    .tos-contact-v2-about,
    .tos-contact-v2-form-wrap {
        padding: 3rem;
    }
}

@media (max-width: 767px) {
    .tos-contact-v2-hero {
        min-height: 22rem;
        border-bottom-left-radius: 2rem;
        border-bottom-right-radius: 2rem;
    }

    .tos-contact-v2-map {
        height: 28rem;
    }

    .tos-contact-v2-map-btn {
        width: calc(100% - 2rem);
        justify-content: center;
        white-space: normal;
        text-align: center;
    }
}

/* Desktop alignment: dropdown i mega startuju sa iste Y pozicije */
@media (min-width: 1024px) {
    .tos-nav-list .tos-dd {
        top: 100% !important;
        margin-top: 0 !important;
    }

    .tos-nav-list .tos-mega {
        top: 100% !important;
        padding-top: 0 !important;
    }

    /* Hover bridge: sprečava gašenje menija pri prelazu miša na panel */
    .tos-nav-list .tos-mi-dropdown::after,
    .tos-nav-list .tos-mi-mega::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        top: 100%;
        height: 14px;
        background: transparent;
    }
}

/* Final override: single smestaj template must win over older single rules. */
.single-smestaj .tos-single-accommodation-title { font-family:"Exo 2",sans-serif; font-size:clamp(3.2rem,6vw,5rem); letter-spacing:-.045em; color:#0a0a0a; }
.single-smestaj .tos-single-accommodation-content { padding:clamp(2rem,4vw,3.5rem); border:1px solid #f3f4f6; border-radius:2.5rem; background:#fff; box-shadow:0 10px 26px rgba(15,17,21,.04); }
.single-smestaj .tos-single-accommodation-content h2,
.single-smestaj .tos-single-accommodation-content h3,
.single-smestaj .tos-single-booking-card h3,
.single-smestaj .tos-single-explore-card h3,
.single-smestaj .tos-single-location-card h2,
.single-smestaj .tos-single-related-head h2 { font-family:"Exo 2",sans-serif; color:#0a0a0a; letter-spacing:-.045em; }
.single-smestaj .tos-single-booking-card { background:#f4f7fb; color:#0a0a0a; border:1px solid #dbeafe; box-shadow:0 18px 45px rgba(15,17,21,.1); }
.single-smestaj .tos-single-booking-list a { color:#0a0a0a; }
.single-smestaj .tos-single-booking-list span { color:#9ca3af; }
.single-smestaj .tos-single-booking-icon { background:#fff; color:var(--single-accent,var(--tos-active)); }
.single-smestaj .tos-single-amenities-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.single-smestaj .tos-single-location-section { position:relative; width:min(calc(100% - 2rem),1920px); height:28rem; margin:1rem auto 6rem; overflow:hidden; border-radius:3rem; background:#e5e7eb; box-shadow:0 12px 30px rgba(15,17,21,.06); }
.single-smestaj .tos-single-location-section iframe { display:block; width:100%; height:100%; border:0; }
.single-smestaj .tos-single-related-head h2 { font-size:clamp(2.6rem,4.5vw,3.5rem); line-height:1; text-transform:none; }
.single-smestaj .tos-related-swiper { overflow:visible!important; padding-left:max(1rem,calc((100vw - var(--tos-container)) / 2 + 1rem)); }
.single-smestaj .tos-related-slide { width:min(82vw,25rem); height:auto; }

/* Single dogadjaj event template */
.single-dogadjaj .tos-main { background:#f7f8f9; }
.tos-event-single-hero {
    position:relative;
    min-height:550px;
    height:65vh;
    margin-top:0;
    overflow:hidden;
    border-bottom:1px solid #e5e7eb;
}
.tos-event-single-hero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.9; }
.tos-event-single-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(10,10,10,.9),rgba(10,10,10,.42),rgba(10,10,10,.1)); }
.tos-event-single-hero-inner {
    position:relative;
    z-index:2;
    width:min(calc(100% - 2rem),var(--tos-container));
    height:100%;
    margin-inline:auto;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding-bottom:4rem;
}
.tos-event-single-tags { display:flex; flex-wrap:wrap; gap:.75rem; margin-bottom:1.5rem; }
.tos-event-single-tags span {
    display:inline-flex;
    padding:.65rem 1rem;
    border-radius:.65rem;
    background:var(--event-accent,#6366f1);
    color:#fff;
    box-shadow:0 12px 28px rgba(99,102,241,.28);
    font-size:.64rem;
    font-weight:900;
    letter-spacing:.16em;
    text-transform:uppercase;
}
.tos-event-single-tags span:nth-child(n+2) { background:rgba(255,255,255,.2); border:1px solid rgba(255,255,255,.3); backdrop-filter:blur(12px); }
.tos-event-single-tags .is-past { background:#0a0a0a; border-color:rgba(255,255,255,.15); }
.tos-event-single-hero-grid {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:2rem;
}
.tos-event-single-hero h1 {
    max-width:11ch;
    margin:0 0 1rem;
    color:#fff;
    font-family:"Exo 2",sans-serif;
    font-size:clamp(3.2rem,7vw,6rem);
    font-weight:900;
    letter-spacing:-.05em;
    line-height:.95;
    text-transform:uppercase;
    filter:drop-shadow(0 14px 24px rgba(0,0,0,.3));
}
.tos-event-single-hero p { max-width:46rem; margin:0; color:#e5e7eb; font-size:clamp(1.2rem,2vw,1.55rem); line-height:1.55; font-weight:600; }
.tos-event-date-card {
    flex:0 0 auto;
    display:flex;
    align-items:center;
    gap:1.5rem;
    width:max-content;
    padding:1.5rem;
    border:1px solid rgba(255,255,255,.5);
    border-radius:2rem;
    background:rgba(255,255,255,.95);
    box-shadow:0 25px 55px rgba(0,0,0,.25);
    backdrop-filter:blur(16px);
}
.tos-event-date-days { display:flex; align-items:center; gap:1rem; }
.tos-event-date-days span { display:block; margin-bottom:.3rem; color:#9ca3af; font-size:.64rem; font-weight:900; letter-spacing:.16em; text-align:center; text-transform:uppercase; }
.tos-event-date-days strong { width:3.5rem; height:3.5rem; display:flex; align-items:center; justify-content:center; border-radius:1rem; background:rgba(99,102,241,.1); color:var(--event-accent,#6366f1); font-size:1.55rem; font-weight:900; }
.tos-event-date-days i { width:1rem; height:2px; margin-top:1.2rem; background:#d1d5db; }
.tos-event-date-meta { padding-left:1rem; border-left:1px solid #e5e7eb; }
.tos-event-date-meta strong { display:block; color:#0a0a0a; font-size:1.2rem; font-weight:900; letter-spacing:-.04em; text-transform:uppercase; }
.tos-event-date-meta span { display:flex; align-items:center; gap:.25rem; color:#6b7280; font-size:.64rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.tos-event-single-crumbs { padding:1.5rem 0; border-bottom:1px solid #f3f4f6; margin-bottom:3rem; }
.tos-event-single-crumbs .tos-breadcrumbs { color:#9ca3af; font-size:.64rem; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.tos-event-single-crumbs .tos-breadcrumbs span:last-child { color:var(--event-accent,#6366f1); }
.tos-event-single-main { padding-bottom:6rem; }
.tos-event-single-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:2rem; }
.tos-event-single-content-col { display:flex; flex-direction:column; gap:3rem; }
.tos-event-content-card {
    padding:clamp(2rem,4vw,2.5rem);
    border:1px solid #f3f4f6;
    border-radius:2.5rem;
    background:#fff;
    box-shadow:0 10px 26px rgba(15,17,21,.04);
}
.tos-event-content-card h2,
.tos-event-program h2,
.tos-event-program-day h3,
.tos-event-calendar-head h3,
.tos-event-map-card h3,
.tos-event-carousel-head h2,
.tos-event-past-head h2 {
    font-family:"Exo 2",sans-serif;
    color:#0a0a0a;
    letter-spacing:-.045em;
}
.tos-event-content-card h2 { margin:0 0 1.5rem; font-size:clamp(2.25rem,3vw,2.75rem); }
.tos-event-content-card p { color:#4b5563; font-size:1.125rem; line-height:1.8; font-weight:500; }
.tos-event-content-card blockquote { margin:3rem 0 0; color:#0a0a0a; font-size:1.45rem; font-style:italic; font-weight:700; line-height:1.55; letter-spacing:-.03em; }
.tos-event-program h2 { margin:0 0 2rem; font-size:clamp(2.3rem,3vw,2.75rem); }
.tos-event-program-timeline { position:relative; margin-left:1rem; padding-left:2rem; border-left:2px solid #e5e7eb; display:grid; gap:3rem; }
.tos-event-program-day { position:relative; }
.tos-event-program-dot { position:absolute; left:calc(-2rem - 9px); top:.25rem; width:1rem; height:1rem; border:4px solid #f7f8f9; border-radius:999px; background:#0a0a0a; }
.tos-event-program-day.is-active .tos-event-program-dot { background:var(--event-accent,#6366f1); }
.tos-event-program-day > span { display:block; margin-bottom:.5rem; color:var(--event-accent,#6366f1); font-size:.78rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.tos-event-program-day h3 { margin:0 0 1.5rem; font-size:clamp(1.8rem,2.6vw,2.25rem); }
.tos-event-program-items { display:grid; gap:1rem; padding:2rem; border:1px solid #f3f4f6; border-radius:2rem; background:#fff; box-shadow:0 10px 26px rgba(15,17,21,.04); }
.tos-event-program-item { display:flex; align-items:flex-start; gap:1.5rem; padding-bottom:1rem; border-bottom:1px solid #f3f4f6; }
.tos-event-program-item:last-child { padding-bottom:0; border-bottom:0; }
.tos-event-program-item time { flex:0 0 auto; min-width:5rem; padding:.65rem .85rem; border-radius:.8rem; background:#f9fafb; color:#0a0a0a; font-size:1.1rem; font-weight:900; text-align:center; }
.tos-event-program-item strong { display:block; color:#0a0a0a; font-size:1.05rem; font-weight:800; }
.tos-event-program-item small { display:block; margin-top:.2rem; color:#6b7280; font-size:.9rem; font-weight:600; }
.tos-event-program-item p { margin:.5rem 0 0; color:#6b7280; font-size:.95rem; line-height:1.6; }
.tos-event-single-sidebar { display:grid; gap:2rem; align-self:start; }
.tos-event-calendar-card,
.tos-event-map-card,
.tos-event-share-card { border:1px solid #f3f4f6; border-radius:2.5rem; background:#fff; box-shadow:0 10px 26px rgba(15,17,21,.04); }
.tos-event-calendar-card { padding:2rem; overflow:visible; }
.tos-event-calendar-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-bottom:1rem; margin-bottom:1rem; border-bottom:1px solid #f3f4f6; }
.tos-event-calendar-head h3 { margin:0; font-size:1.55rem; text-transform:uppercase; }
.tos-event-calendar-head div { display:flex; gap:.5rem; color:#9ca3af; }
.tos-event-calendar-weekdays,
.tos-event-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.55rem; text-align:center; }
.tos-event-calendar-weekdays { margin-bottom:.75rem; color:#9ca3af; font-size:.62rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.tos-event-calendar-day { position:relative; min-height:2.35rem; display:flex; align-items:center; justify-content:center; border-radius:999px; color:#0a0a0a; font-size:.9rem; font-weight:800; }
.tos-event-calendar-day.is-muted { color:#d1d5db; }
.tos-event-calendar-day.has-event { border-radius:.8rem; background:var(--event-accent,#6366f1); color:#fff; box-shadow:0 10px 20px rgba(99,102,241,.25); cursor:pointer; }
.tos-event-calendar-day.has-event i { position:absolute; left:50%; bottom:.25rem; width:.35rem; height:.35rem; transform:translateX(-50%); border-radius:999px; background:#fff; }
.tos-event-calendar-tip {
    position:absolute;
    left:50%;
    bottom:100%;
    z-index:50;
    width:14rem;
    margin-bottom:.8rem;
    padding:1rem;
    border-radius:1rem;
    background:#0a0a0a;
    color:#fff;
    text-align:left;
    opacity:0;
    visibility:hidden;
    transform:translateX(-50%) translateY(6px);
    transition:.2s ease;
    box-shadow:0 20px 45px rgba(0,0,0,.24);
    pointer-events:none;
}
.tos-event-calendar-day:hover .tos-event-calendar-tip { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.tos-event-calendar-tip span { display:block; margin-bottom:.6rem; color:var(--event-accent,#6366f1); font-size:.64rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.tos-event-calendar-tip ul { margin:0; padding:0; list-style:none; display:grid; gap:.45rem; }
.tos-event-calendar-tip li,
.tos-event-calendar-tip p { margin:0; color:#fff; font-size:.78rem; line-height:1.45; }
.tos-event-calendar-legend { display:flex; align-items:center; gap:.5rem; margin-top:1.5rem; padding-top:1rem; border-top:1px solid #f3f4f6; color:#9ca3af; font-size:.64rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.tos-event-calendar-legend i { width:.5rem; height:.5rem; border-radius:999px; background:var(--event-accent,#6366f1); }
.tos-event-map-card { padding:.5rem; overflow:hidden; }
.tos-event-map-card > div { height:12.5rem; overflow:hidden; border-radius:2rem; background:#e5e7eb; }
.tos-event-map-card iframe { width:100%; height:100%; border:0; display:block; }
.tos-event-map-card section { padding:1.25rem; text-align:center; }
.tos-event-map-card h3 { margin:0 0 .25rem; font-size:1.35rem; }
.tos-event-map-card span { display:block; margin-bottom:1rem; color:#9ca3af; font-size:.64rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.tos-event-map-card a { display:block; padding:.85rem 1rem; border-radius:999px; background:#f7f8f9; color:#0a0a0a; font-size:.75rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.tos-event-map-card a:hover { background:#0a0a0a; color:#fff; }
.tos-event-share-card { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.5rem; }
.tos-event-share-card span { color:#0a0a0a; font-size:.75rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.tos-event-share-card div { display:flex; gap:.5rem; }
.tos-event-share-card a { width:2.5rem; height:2.5rem; display:flex; align-items:center; justify-content:center; border:1px solid #e5e7eb; border-radius:999px; color:#6b7280; font-size:.8rem; font-weight:900; }
.tos-event-share-card a:hover { background:var(--event-accent,#6366f1); border-color:transparent; color:#fff; }
.tos-event-upcoming-section { padding:6rem 0; overflow:hidden; border-top:1px solid #e5e7eb; border-bottom:1px solid #e5e7eb; background:#fff; }
.tos-event-carousel-head { width:min(calc(100% - 2rem),var(--tos-container)); margin:0 auto 4rem; display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; }
.tos-event-carousel-head span,
.tos-event-past-head span { display:block; margin-bottom:.5rem; color:#10b981; font-size:.64rem; font-weight:900; letter-spacing:.16em; text-transform:uppercase; }
.tos-event-carousel-head h2,
.tos-event-past-head h2 { margin:0; font-size:clamp(2.6rem,4.5vw,3.5rem); line-height:1; }
.tos-event-carousel-head > div:last-child { display:flex; gap:1rem; }
.upcoming-prev,.upcoming-next { width:3.5rem; height:3.5rem; display:flex; align-items:center; justify-content:center; border:1px solid #e5e7eb; border-radius:999px; background:#fff; color:#0a0a0a; }
.upcoming-prev:hover,.upcoming-next:hover { background:#0a0a0a; color:#fff; }
.upcoming-swiper { overflow:visible!important; padding-left:max(1rem,calc((100vw - var(--tos-container)) / 2 + 1rem)); padding-right:1rem; }
.tos-event-carousel-slide { width:min(82vw,25rem); height:auto; }
.tos-event-past-section { width:min(calc(100% - 2rem),var(--tos-container)); margin:0 auto; padding:6rem 0; }
.tos-event-past-head { display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; margin-bottom:3rem; }
.tos-event-past-head span { color:#9ca3af; }
.tos-event-past-head a { color:#0a0a0a; font-size:.78rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.tos-event-past-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; }
.tos-event-past-grid .tos-event-card-img img { filter:grayscale(1); opacity:.8; transition:.4s ease; }
.tos-event-past-grid .tos-event-card:hover .tos-event-card-img img { filter:grayscale(0); opacity:1; }

@media (min-width:1024px) {
    .tos-event-single-layout { grid-template-columns:minmax(0,1fr) minmax(21rem,.52fr); gap:4rem; }
    .tos-event-single-sidebar { position:sticky; top:8.5rem; }
}

@media (max-width:900px) {
    .tos-event-single-hero-grid { flex-direction:column; align-items:flex-start; }
    .tos-event-date-card { width:100%; max-width:30rem; }
    .tos-event-past-grid { grid-template-columns:1fr; }
}

@media (max-width:767px) {
    .tos-event-single-hero { min-height:680px; height:auto; }
    .tos-event-single-hero-inner { padding-top:9rem; padding-bottom:2rem; }
    .tos-event-single-hero h1 { font-size:clamp(3rem,15vw,4.5rem); }
    .tos-event-date-card { flex-direction:column; align-items:flex-start; }
    .tos-event-date-meta { padding-left:0; border-left:0; }
    .tos-event-program-items { padding:1.25rem; }
    .tos-event-program-item { flex-direction:column; gap:.75rem; }
    .tos-event-calendar-card { padding:1.25rem; border-radius:2rem; }
    .tos-event-calendar-day { min-height:2rem; }
    .tos-event-carousel-head,
    .tos-event-past-head { flex-direction:column; align-items:flex-start; }
}
