:root { --template-header-bg: rgba(255, 255, 255, .96); }
html { scroll-behavior: smooth; }
body { font-family: "Plus Jakarta Sans", "Segoe UI", Arial, sans-serif; }
.site-logo-link { min-width: 8.25rem; }
.site-logo-image { background: #fff; border-radius: .75rem; display: block; height: 3rem; object-fit: contain; padding: .25rem .45rem; width: 8.25rem; }
.site-logo-image-footer { height: 3.25rem; width: 9rem; }
.site-logo-mark { background: #fff; border-radius: .75rem; display: block; flex: 0 0 auto; height: 2.5rem; object-fit: contain; padding: .2rem; width: 2.5rem; }
.site-header.is-scrolled,
.site-header.page-header { background: var(--template-header-bg) !important; background-color: #fff !important; box-shadow: 0 16px 40px rgba(11, 24, 58, .14); backdrop-filter: blur(14px); }
.site-header.is-scrolled .text-white,
.site-header.page-header .text-white,
.site-header.is-scrolled .text-white\/90,
.site-header.page-header .text-white\/90,
.site-header.is-scrolled .text-white\/80,
.site-header.page-header .text-white\/80,
.site-header.is-scrolled .text-white\/70,
.site-header.page-header .text-white\/70 { color: #1B2A6B !important; }
.site-header.is-scrolled nav a:hover,
.site-header.page-header nav a:hover,
.site-header.is-scrolled button:hover,
.site-header.page-header button:hover { background: rgba(27, 42, 107, .08) !important; color: #1B2A6B !important; }
.site-header.is-scrolled .border-white\/30,
.site-header.page-header .border-white\/30 { border-color: rgba(27, 42, 107, .18) !important; }
.site-header.is-scrolled .bg-primary,
.site-header.page-header .bg-primary { background-color: #1B2A6B !important; color: #fff !important; }
.site-header.is-scrolled .text-primary-foreground,
.site-header.page-header .text-primary-foreground { color: #fff !important; }
.mobile-menu { display: none; position: fixed; left: 1rem; right: 1rem; top: 4.75rem; z-index: 60; padding: 1rem; border-radius: 1rem; background: rgba(11, 24, 58, .98); box-shadow: 0 22px 50px rgba(0, 0, 0, .22); }
.mobile-menu.is-open { display: block; }
.mobile-menu a { display: block; padding: .8rem 1rem; border-radius: .75rem; color: #fff; font-weight: 700; }
.mobile-menu a:hover { background: rgba(255,255,255,.1); }
.static-page { padding-top: 6rem; background: #f8fafc; color: #0f172a; }
.page-hero { position: relative; overflow: hidden; background: linear-gradient(135deg, #10245f, #1b2a6b); color: #fff; padding: 5rem 0 4rem; }
.page-hero::after { content: ""; position: absolute; inset: auto -8% -45% 45%; height: 24rem; background: rgba(239, 179, 45, .18); border-radius: 999px; filter: blur(20px); }
.template-container { width: min(1180px, calc(100% - 2rem)); margin: 0 auto; position: relative; z-index: 1; }
.eyebrow { color: #efb32d; font-weight: 800; text-transform: uppercase; font-size: .8rem; letter-spacing: .08em; margin-bottom: .75rem; }
.page-title { font-size: clamp(2rem, 5vw, 4rem); line-height: 1.05; font-weight: 900; max-width: 760px; }
.page-lead { margin-top: 1rem; max-width: 680px; color: rgba(255,255,255,.78); font-size: 1.1rem; }
.section-block { padding: 4rem 0; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.section-head h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); font-weight: 900; color: #10245f; }
.grid { display: grid; gap: 1.25rem; }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.clean-card { background: #fff; border: 1px solid rgba(15, 23, 42, .08); border-radius: 1rem; overflow: hidden; box-shadow: 0 12px 34px rgba(15, 23, 42, .08); }
.clean-card img { width: 100%; height: 230px; object-fit: cover; }
.clean-card-body { padding: 1.25rem; }
.clean-card h3 { font-size: 1.25rem; color: #10245f; font-weight: 900; margin-bottom: .5rem; }
.meta-list { display: grid; gap: .55rem; margin: 1rem 0; color: #475569; font-size: .95rem; }
.meta-list span { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #e2e8f0; padding-bottom: .45rem; }
.badge-row { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .85rem; }
.badge { display: inline-flex; align-items: center; border-radius: 999px; background: #eef2ff; color: #10245f; padding: .35rem .7rem; font-size: .78rem; font-weight: 800; }
.btn-row { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.25rem; }
.template-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; padding: .75rem 1.1rem; border-radius: .85rem; background: #1b2a6b; color: #fff; font-weight: 800; transition: .2s ease; }
.template-btn:hover { background: #10245f; transform: translateY(-1px); }
.template-btn.secondary { background: #fff; color: #1b2a6b; border: 1px solid rgba(27, 42, 107, .2); }
.filter-panel, .contact-panel { display: grid; gap: 1rem; grid-template-columns: repeat(4, minmax(0, 1fr)); background: #fff; border-radius: 1.25rem; padding: 1.25rem; border: 1px solid rgba(15, 23, 42, .08); box-shadow: 0 16px 42px rgba(15, 23, 42, .08); }
.field { display: grid; gap: .35rem; }
.field label { font-size: .8rem; font-weight: 800; color: #64748b; }
.field input, .field select, .field textarea { width: 100%; border: 1px solid #dbe3ef; border-radius: .8rem; padding: .8rem .9rem; background: #fff; color: #0f172a; }
.field textarea { min-height: 130px; resize: vertical; }
.detail-layout { display: grid; grid-template-columns: 1.2fr .8fr; gap: 1.5rem; align-items: start; }
.detail-image { width: 100%; border-radius: 1rem; object-fit: cover; box-shadow: 0 18px 46px rgba(15, 23, 42, .14); }
.gallery-grid { columns: 3 260px; column-gap: 1rem; }
.gallery-grid img, .gallery-item img { width: 100%; margin: 0 0 1rem; border-radius: 1rem; break-inside: avoid; box-shadow: 0 12px 30px rgba(15, 23, 42, .1); }
.gallery-item { display: block; width: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; break-inside: avoid; }
@media (max-width: 900px) { .grid-3, .grid-2, .detail-layout, .filter-panel, .contact-panel { grid-template-columns: 1fr; } .section-head { align-items: start; flex-direction: column; } .static-page { padding-top: 4.5rem; } }

.field-checkbox { align-items: center; display: flex; gap: .6rem; min-height: 3rem; }
.field-checkbox input { width: auto; }
.building-constructor { background: #f8fafc; }
.building-entrances { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 1.25rem; }
.building-tab, .building-floor { border: 1px solid rgba(15, 23, 42, .12); background: #fff; color: #1B2A6B; cursor: pointer; font-weight: 700; transition: .2s ease; }
.building-tab { border-radius: .85rem; padding: .75rem 1rem; }
.building-tab:hover, .building-tab.is-active, .building-floor:hover, .building-floor.is-active { background: #1B2A6B; border-color: #1B2A6B; color: #fff; }
.building-entrance { display: none; }
.building-entrance.is-active { display: block; }
.building-layout { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.building-floors { display: grid; gap: .5rem; max-height: 42rem; overflow: auto; padding-right: .25rem; }
.building-floor { align-items: center; border-radius: .75rem; display: flex; justify-content: space-between; min-height: 3.25rem; padding: .55rem .75rem; text-align: left; width: 100%; }
.building-floor span { font-size: 1rem; }
.building-floor small { opacity: .72; }
.building-floor-view { min-width: 0; }
.building-floor-pane { display: none; }
.building-floor-pane.is-active { display: grid; gap: 1rem; grid-template-columns: minmax(0, 1.2fr) minmax(18rem, .8fr); }
.floor-plan-card, .floor-apartment { background: #fff; border: 1px solid rgba(15, 23, 42, .08); border-radius: 1rem; box-shadow: 0 16px 42px rgba(15, 23, 42, .07); }
.floor-plan-head { align-items: center; border-bottom: 1px solid rgba(15, 23, 42, .08); display: flex; gap: 1rem; justify-content: space-between; padding: 1rem; }
.floor-plan-head h3 { color: #0f172a; font-size: 1.1rem; margin: 0; }
.floor-plan-head span { color: #64748b; font-size: .9rem; font-weight: 700; }
.floor-plan-image { align-items: center; background: #f8fafc; display: flex; justify-content: center; min-height: 22rem; overflow: hidden; padding: 1rem; }
.floor-plan-image img { height: auto; max-height: 34rem; max-width: 100%; object-fit: contain; }
.floor-plan-placeholder { align-items: center; border: 1px dashed rgba(15, 23, 42, .22); border-radius: .85rem; color: #64748b; display: flex; justify-content: center; min-height: 16rem; padding: 1rem; text-align: center; width: 100%; }
.floor-apartments { display: grid; gap: .75rem; align-content: start; }
.floor-apartment { color: #0f172a; display: grid; gap: .25rem; padding: .9rem 1rem; text-decoration: none; transition: .2s ease; }
.floor-apartment:hover { border-color: rgba(27, 42, 107, .35); box-shadow: 0 18px 45px rgba(27, 42, 107, .13); transform: translateY(-1px); }
.floor-apartment.is-selected { border-color: #1B2A6B; box-shadow: 0 18px 45px rgba(27, 42, 107, .16); }
.floor-apartment strong { color: #1B2A6B; font-size: 1rem; }
.floor-apartment span { color: #64748b; font-size: .9rem; }
.floor-apartment em { color: #0f172a; font-style: normal; font-weight: 800; }
.floor-empty { background: #fff; border: 1px dashed rgba(15, 23, 42, .22); border-radius: 1rem; color: #64748b; padding: 1rem; text-align: center; }
.building-apartment-detail { margin-top: 1.25rem; }
.building-apartment-detail[hidden] { display: none; }
.building-apartment-card { background: #fff; border: 1px solid rgba(15, 23, 42, .08); border-radius: 1rem; box-shadow: 0 16px 42px rgba(15, 23, 42, .07); display: grid; gap: 1rem; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); overflow: hidden; }
.building-apartment-media { background: #f8fafc; min-height: 18rem; position: relative; }
.building-apartment-media img { height: 100%; inset: 0; object-fit: contain; padding: 1rem; position: absolute; width: 100%; }
.building-apartment-info { padding: 1.25rem; }
.building-apartment-info h3 { color: #10245f; font-size: 1.35rem; font-weight: 900; margin: .75rem 0 1rem; }
.building-apartment-top { align-items: center; display: flex; gap: 1rem; justify-content: space-between; }
.building-apartment-top strong { color: #1B2A6B; font-size: 1.2rem; }
@media (max-width: 900px) {
  .building-layout, .building-floor-pane.is-active { grid-template-columns: 1fr; }
  .building-floors { grid-template-columns: repeat(3, minmax(0, 1fr)); max-height: none; padding-right: 0; }
  .building-floor { min-height: 3rem; }
  .building-apartment-card { grid-template-columns: 1fr; }
  .building-apartment-media { min-height: 14rem; }
}
.sarmoya-hp { position: absolute; left: -9999px; opacity: 0; pointer-events: none; }
.sarmoya-modal[hidden] { display: none; }
.sarmoya-modal { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 1rem; background: rgba(15, 23, 42, .62); }
.sarmoya-modal-dialog { width: min(540px, 100%); overflow: hidden; border-radius: 1.25rem; background: #fff; box-shadow: 0 24px 80px rgba(0,0,0,.28); }
.sarmoya-modal-head { display: flex; align-items: start; justify-content: space-between; gap: 1rem; padding: 1.25rem 1.25rem .5rem; }
.sarmoya-modal-head h3 { margin: 0; color: #10245f; font-size: 1.35rem; font-weight: 900; }
.sarmoya-modal-close { display: inline-flex; align-items: center; justify-content: center; width: 2.4rem; height: 2.4rem; border: 1px solid #e2e8f0; border-radius: 999px; background: #fff; color: #10245f; cursor: pointer; font-size: 1.1rem; font-weight: 900; }
.sarmoya-modal .contact-panel { width: 100%; border: 0; border-radius: 0; box-shadow: none; padding-top: .75rem; }
.sarmoya-form-message { min-height: 1.5rem; color: #1b2a6b; font-weight: 700; }
.sarmoya-breadcrumbs { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; color: rgba(255,255,255,.78); }
.sarmoya-breadcrumbs a { color: #fff; }
.apartment-actions .template-btn { flex: 1 1 10rem; border: 0; cursor: pointer; }
.sarmoya-filter-card { background: #fff; border: 1px solid rgba(15, 23, 42, .08); border-radius: .85rem; box-shadow: 0 12px 30px rgba(15, 23, 42, .07); display: grid; gap: .75rem; margin-bottom: 1.5rem; padding: 1rem; }
.sarmoya-filter-section { min-width: 0; }
.sarmoya-filter-section-compact { border-top: 1px solid rgba(15, 23, 42, .08); padding-top: .75rem; }
.sarmoya-filter-select-grid { display: grid; gap: .75rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sarmoya-filter-range-grid { display: grid; gap: .75rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sarmoya-filter-extra-grid { align-items: end; display: grid; gap: .75rem; grid-template-columns: minmax(14rem, .32fr) minmax(14rem, .32fr); }
.sarmoya-filter-label { color: #64748b; display: block; font-size: .68rem; font-weight: 800; letter-spacing: .04em; margin-bottom: .5rem; text-transform: uppercase; }
.sarmoya-filter-select { position: relative; }
.sarmoya-native-select { height: 1px; opacity: 0; pointer-events: none; position: absolute; width: 1px; }
.sarmoya-select-button, .sarmoya-filter-input, .sarmoya-filter-checkbox { align-items: center; background: #fff; border: 1px solid #dbe3ef; border-radius: .7rem; color: #0f172a; display: flex; font-size: .84rem; font-weight: 700; height: 2.35rem; padding: 0 .8rem; width: 100%; }
.sarmoya-select-button { cursor: pointer; justify-content: space-between; transition: .2s ease; }
.sarmoya-select-button:hover, .sarmoya-select-button[aria-expanded="true"], .sarmoya-filter-input:focus { border-color: rgba(27, 42, 107, .45); box-shadow: 0 0 0 3px rgba(27, 42, 107, .08); outline: none; }
.sarmoya-select-button .is-placeholder { color: #64748b; font-weight: 600; }
.sarmoya-select-chevron { color: #64748b; flex: 0 0 auto; height: 1rem; transition: .2s ease; width: 1rem; }
.sarmoya-select-button[aria-expanded="true"] .sarmoya-select-chevron { transform: rotate(180deg); }
.sarmoya-select-menu { background: #fff; border: 1px solid rgba(15, 23, 42, .1); border-radius: .75rem; box-shadow: 0 16px 36px rgba(15, 23, 42, .14); display: none; left: 0; max-height: 16rem; overflow: auto; padding: .3rem; position: absolute; right: 0; top: calc(100% + .35rem); z-index: 30; }
.sarmoya-filter-select.is-open .sarmoya-select-menu { display: grid; gap: .15rem; }
.sarmoya-select-option { background: transparent; border: 0; border-radius: .55rem; color: #0f172a; cursor: pointer; font-size: .84rem; font-weight: 700; min-height: 2.1rem; padding: .45rem .6rem; text-align: left; transition: .15s ease; width: 100%; }
.sarmoya-select-option:hover, .sarmoya-select-option.is-active { background: rgba(27, 42, 107, .08); color: #1b2a6b; }
.sarmoya-range-group { background: #f8fafc; border: 1px solid rgba(15, 23, 42, .07); border-radius: .7rem; min-width: 0; padding: .65rem; }
.sarmoya-range-row { align-items: center; display: flex; gap: .55rem; margin-top: .42rem; }
.sarmoya-range-row span { color: #64748b; flex: 0 0 1.6rem; font-size: .75rem; }
.sarmoya-range-row strong { color: #0f172a; flex: 0 0 4rem; font-size: .75rem; font-weight: 900; text-align: right; }
.sarmoya-range-group[data-range-price] .sarmoya-range-row strong { flex-basis: 5rem; }
.range-slider { accent-color: #1b2a6b; flex: 1 1 auto; min-width: 0; }
.range-slider::-webkit-slider-runnable-track { background: #dbe3ef; border-radius: 999px; height: .35rem; }
.range-slider::-webkit-slider-thumb { appearance: none; background: #1b2a6b; border: 3px solid #fff; border-radius: 999px; box-shadow: 0 4px 14px rgba(27, 42, 107, .25); height: 1.1rem; margin-top: -.38rem; width: 1.1rem; }
.range-slider::-moz-range-track { background: #dbe3ef; border-radius: 999px; height: .35rem; }
.range-slider::-moz-range-thumb { background: #1b2a6b; border: 3px solid #fff; border-radius: 999px; box-shadow: 0 4px 14px rgba(27, 42, 107, .25); height: .8rem; width: .8rem; }
.sarmoya-filter-checkbox { gap: .6rem; justify-content: flex-start; }
.sarmoya-filter-checkbox input { accent-color: #1b2a6b; width: auto; }
.sarmoya-filter-footer { align-items: center; display: flex; gap: .75rem; justify-content: space-between; }
.sarmoya-filter-found { color: #0f172a; font-size: .86rem; font-weight: 900; }
.sarmoya-filter-found span { color: #1b2a6b; }
.sarmoya-filter-actions { display: flex; gap: .5rem; }
.sarmoya-filter-reset, .sarmoya-filter-submit { align-items: center; border-radius: .7rem; display: inline-flex; font-size: .84rem; font-weight: 900; height: 2.25rem; justify-content: center; padding: 0 1rem; transition: .2s ease; }
.sarmoya-filter-reset { border: 1px solid #dbe3ef; color: #64748b; }
.sarmoya-filter-reset:hover { border-color: rgba(27, 42, 107, .45); color: #1b2a6b; }
.sarmoya-filter-submit { background: #1b2a6b; border: 0; color: #fff; cursor: pointer; gap: .5rem; box-shadow: 0 12px 24px rgba(27, 42, 107, .18); }
.sarmoya-filter-submit:hover { background: #10245f; }
.sarmoya-filter-submit svg { height: 1rem; width: 1rem; }
.sarmoya-filter-results-wrap { position: relative; }
.sarmoya-filter-loader[hidden] { display: none; }
.sarmoya-filter-loader { align-items: center; background: rgba(255, 255, 255, .86); border: 1px solid rgba(15, 23, 42, .08); border-radius: .85rem; box-shadow: 0 16px 36px rgba(15, 23, 42, .12); color: #0f172a; display: inline-flex; font-size: .9rem; font-weight: 900; gap: .7rem; left: 50%; padding: .8rem 1rem; position: absolute; top: 1rem; transform: translateX(-50%); z-index: 20; }
.sarmoya-loader-spinner { animation: sarmoya-spin .75s linear infinite; border: 2px solid rgba(27, 42, 107, .18); border-top-color: #1b2a6b; border-radius: 999px; height: 1.15rem; width: 1.15rem; }
.sarmoya-filter-is-loading [data-apartment-results] { opacity: .42; pointer-events: none; transition: opacity .15s ease; }
.sarmoya-filter-is-loading .sarmoya-filter-submit { cursor: progress; opacity: .82; }
@keyframes sarmoya-spin { to { transform: rotate(360deg); } }
@media (max-width: 1024px) {
  .sarmoya-filter-select-grid, .sarmoya-filter-extra-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sarmoya-filter-range-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .sarmoya-filter-card { border-radius: .8rem; padding: .85rem; }
  .sarmoya-filter-select-grid, .sarmoya-filter-range-grid, .sarmoya-filter-extra-grid { grid-template-columns: 1fr; }
  .sarmoya-filter-footer { align-items: stretch; flex-direction: column; }
  .sarmoya-filter-actions { width: 100%; }
  .sarmoya-filter-reset, .sarmoya-filter-submit { flex: 1; }
}
.gallery-lightbox[hidden] { display: none; }
.gallery-lightbox { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 4rem; background: rgba(3, 7, 18, .88); }
.gallery-lightbox img { max-width: min(100%, 1100px); max-height: 82vh; border-radius: 1rem; object-fit: contain; box-shadow: 0 24px 80px rgba(0,0,0,.35); }
.gallery-lightbox-close, .gallery-lightbox-nav { position: absolute; border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.12); color: #fff; cursor: pointer; font-weight: 900; backdrop-filter: blur(10px); }
.gallery-lightbox-close { top: 1.2rem; right: 1.2rem; width: 2.8rem; height: 2.8rem; border-radius: 999px; }
.gallery-lightbox-nav { top: 50%; width: 3.2rem; height: 3.2rem; border-radius: 999px; transform: translateY(-50%); font-size: 2rem; }
.gallery-lightbox-nav.prev { left: 1.2rem; }
.gallery-lightbox-nav.next { right: 1.2rem; }
@media (max-width: 700px) { .gallery-lightbox { padding: 4rem 1rem; } }
