/* Public browsing only. Owner/admin workflows retain their established assets. */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #fafaf8; color: #242627; font-size: 15px; line-height: 1.5; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; }
button, select, summary { cursor: pointer; }
button, input { border: 1px solid #dadcd8; }
a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible, select:focus-visible { outline: 2px solid #246b9e; outline-offset: 4px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
#wholepage { display: flex; flex-direction: column; min-height: 100vh; }
.body-content { flex: 1; background: inherit; }
.site-navbar { background: #202222; color: #e2e4df; margin: 0; }
.site-navbar > .container-fluid { max-width: 1440px; margin: auto; padding: 0 28px; display: flex; align-items: center; min-height: 64px; gap: 30px; }
.site-navbar .navbar-header { flex-shrink: 0; }
.site-navbar ul { list-style: none; padding: 0; margin: 0 !important; }
.site-navbar .nav { display: flex; align-items: center; }
.site-navbar .navbar-header li { margin: 0 !important; }
.site-navbar .navbar-brand { display: flex; align-items: center; min-height: 64px; }
.site-navbar .navbar-brand img { width: 168px; height: 30px; }
.site-navbar #site-navigation { display: flex; align-items: center; flex: 1; gap: 24px; min-width: 0; }
.site-navbar .main-navbar-nav { margin: 0 auto !important; gap: 4px; }
.site-navbar .nav > li > a { min-height: 44px; display: flex; align-items: center; gap: 6px; padding: 10px 12px; font-size: 14px; border-radius: 4px; transition: color 120ms, background-color 120ms; }
.site-navbar .nav > li > a:hover { color: #fff; background: #303333; }
.site-navbar .site-account { gap: 8px; }
.site-navbar .site-language { padding: 0; }
.site-navbar .site-language-form .form-group { margin: 0; }
.site-navbar select { height: 44px; max-width: 150px; border: 1px solid #535754; border-radius: 5px; color: #e2e4df; background: #202222; padding: 0 10px; }
.site-navbar .navbar-toggle { display: none; }
.site-navbar .dropdown { position: relative; }
.site-navbar .dropdown-menu { display: none; position: absolute; z-index: 20; inset-inline-end: 0; min-width: 150px; padding: 6px; background: #fff; color: #242627; box-shadow: 0 4px 20px #0002; border-radius: 6px; }
.site-navbar .dropdown-menu a { display: block; padding: 12px; }
.site-navbar .dropdown.open .dropdown-menu { display: block; }
.site-navbar .text-gold { color: #f5d65c; }
.site-navbar .caret { border-top: 4px solid; border-inline: 4px solid transparent; }
.tour-gallery { width: min(1440px, calc(100% - 48px)); margin: auto; padding: 22px 0 32px; }
.gallery-heading { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; margin-bottom: 16px; }
.gallery-title { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 10px; flex: 1; min-width: 0; }
.gallery-heading h1 { margin: 0; font-size: 20px; font-weight: 400; line-height: 1.3; letter-spacing: -.025em; }
.gallery-count { color: #71766f; font-size: 12px; white-space: nowrap; }
.gallery-search { display: flex; align-items: stretch; width: clamp(220px, 24vw, 360px); min-width: 0; margin: 0; border-radius: 6px; }
.gallery-search input,
.gallery-search button { height: 44px; padding: 0 14px; margin: 0; background: #fff; }
.gallery-search input { width: 100%; min-width: 0; border-radius: 6px 0 0 6px; font-size: 14px; border-inline-end: 0; }
.gallery-search button { display: flex; align-items: center; justify-content: center; width: 48px; flex-shrink: 0; border-radius: 0 6px 6px 0; }
.gallery-search button:hover { background: #f5d65c; }
[dir="rtl"] .gallery-search input { border-radius: 0 6px 6px 0; }
[dir="rtl"] .gallery-search button { border-radius: 6px 0 0 6px; }
.gallery-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.gallery-categories { position: relative; }
.gallery-categories summary { display: flex; align-items: center; gap: 8px; list-style: none; min-height: 44px; padding: 0 12px; border: 1px solid #dadcd8; border-radius: 6px; background: #fff; font-size: 13px; }
.gallery-categories summary::-webkit-details-marker { display: none; }
.gallery-active-category { color: #575e57; }
.gallery-categories[open] summary .fa { transform: rotate(180deg); }
.gallery-categories nav { display: flex; flex-wrap: wrap; gap: 6px; position: absolute; z-index: 30; inset-block-start: calc(100% + 6px); inset-inline-end: 0; width: max-content; max-width: min(360px, calc(100vw - 24px)); padding: 8px; background: #fff; border: 1px solid #dadcd8; border-radius: 6px; box-shadow: 0 4px 14px #0001; }
.gallery-categories nav a { display: inline-flex; align-items: center; padding: 8px 12px; min-height: 44px; border-radius: 4px; background: #efefea; font-size: 13px; }
.gallery-categories nav a[aria-current="page"] { background: #f5d65c; color: #252621; }
.gallery-reset { min-height: 44px; display: inline-flex; align-items: center; font-size: 13px; color: #575e57; text-decoration: underline; text-underline-offset: 4px; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 28px 18px; }
.gallery-tour { min-width: 0; position: relative; }
.gallery-photo { display: block; position: relative; overflow: hidden; border-radius: 3px; aspect-ratio: 2 / 1; background: #e8e9e3; }
.gallery-photo > img { display: block; width: 100%; height: 100%; object-fit: cover; transition: filter 150ms; }
.gallery-photo:hover > img { filter: brightness(1.06); }
.gallery-lock { position: absolute; inset-block-start: 10px; inset-inline-end: 10px; background: #fffd; border-radius: 4px; padding: 4px; display: flex; }
.gallery-tour h2 { font-size: 13px; line-height: 1.4; font-weight: 400; margin: 6px 0 2px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.gallery-tour h2 a:hover { text-decoration: underline; text-underline-offset: 3px; }
.gallery-metadata { display: flex; align-items: center; gap: 12px; height: 22px; overflow: hidden; font-size: 11px; color: #737872; }
.gallery-price { font-size: inherit; font-weight: 400; white-space: nowrap; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.gallery-property { display: flex; gap: 8px; align-items: center; font-size: inherit; flex-shrink: 0; }
.gallery-property > span { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.gallery-property img[src*="/images/material/"] { width: 15px !important; height: 15px !important; opacity: .55; }
.gallery-property sup { font-size: 9px; align-self: flex-start; margin-inline-start: -3px; }
.gallery-pagination { display: flex; justify-content: center; align-items: center; gap: 14px; margin-top: 44px; font-size: 13px; }
.gallery-pagination a, .gallery-pagination > span:not(.gallery-page-number) { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 18px; border: 1px solid #d7dbd3; border-radius: 5px; }
.gallery-pagination a:hover { background: #f5d65c; border-color: #f5d65c; }
.gallery-pagination [aria-disabled] { opacity: .4; }
.gallery-page-number { color: #6d736b; min-width: 65px; text-align: center; }
.gallery-empty { padding: 36px 0; color: #6d736b; }
.gallery-availability { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #914735; }
.gallery-app { position: absolute; top: 8px; inset-inline-start: 8px; display: grid; place-items: center; width: 44px; height: 44px; background: #fffd; border-radius: 4px; }
.gallery-continuous .gallery-pagination > :not([data-gallery-next]) { display: none; }
.gallery-pagination[hidden] { display: none; }
.gallery-pagination [aria-disabled="true"] { opacity: .6; cursor: wait; }
.gallery-admin { margin-top: 14px; font-size: 12px; }
.gallery-admin .btn { max-width: 100%; white-space: normal; }
.gallery-admin .dropdown-content { position: absolute; z-index: 20; }
.keob-footer { background: #f0f1ec; padding: 22px 28px; font-size: 12px; }
.keob-footer .container { max-width: 1224px; margin: auto; }
.keob-footer .row { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 16px; }
.keob-footer p { margin: 0; }
.keob-footer a { display: inline-flex; align-items: center; min-height: 44px; margin-inline-end: 18px; }
@media (max-width: 991px) {
    .site-navbar > .container-fluid { display: block; padding: 0 20px; }
    .site-navbar .navbar-header { display: flex; align-items: center; justify-content: space-between; flex-direction: row-reverse; }
    .site-navbar .navbar-toggle { display: flex; flex-direction: column; justify-content: center; gap: 4px; width: 44px; height: 44px; border: 1px solid #4d514c; border-radius: 4px; background: transparent; }
    .site-navbar .icon-bar { display: block; width: 20px; height: 2px; background: #e2e4df; margin: 0 auto; }
    .site-navbar #site-navigation { display: none; padding-bottom: 16px; }
    .site-navbar #site-navigation.in { display: block; }
    .site-navbar .nav { display: block; }
    .site-navbar .nav > li > a { padding-inline: 0; }
    .site-navbar .site-account { border-top: 1px solid #424640; padding-top: 8px; margin-top: 8px !important; }
    .site-navbar select { max-width: none; width: 100%; font-size: 16px; }
    .site-navbar .dropdown-menu { position: static; color: #e2e4df; background: transparent; box-shadow: none; }
}
@media (max-width: 1000px) { .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
    .tour-gallery { width: calc(100% - 28px); padding-top: 14px; }
    .gallery-grid { grid-template-columns: minmax(0, 1fr); gap: 22px; }
    .gallery-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
    .gallery-title { grid-column: 1 / -1; }
    .gallery-heading h1 { font-size: 18px; }
    .gallery-toolbar { display: contents; }
    .gallery-categories { grid-column: 2; grid-row: 2; }
    .gallery-search { grid-column: 1; grid-row: 2; width: auto; }
    .gallery-search input { font-size: 16px; }
    .keob-footer { padding-inline: 20px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; } }
