:root {
  --ink: #10100f;
  --black: #090a09;
  --paper: #f5f2eb;
  --white: #fff;
  --gold: #c8a761;
  --gold-light: #e3ca91;
  --muted: #706f6a;
  --line: #d9d5cc;
  --serif: "Playfair Display", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }

.site-header {
  height: 92px;
  padding: 0 5vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: absolute;
  inset: 0 0 auto;
  z-index: 20;
  background: var(--black);
  border-bottom: 1px solid rgba(255,255,255,.2);
  color: var(--white);
}
.brand img { width: 105px; height: 73px; object-fit: cover; object-position: 50% 53%; mix-blend-mode: screen; }
.desktop-nav { display: flex; align-items: center; gap: 36px; font-size: .85rem; }
.desktop-nav a { position: relative; }
.desktop-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -7px; height: 1px; background: var(--gold); transition: .3s; }
.desktop-nav a:hover::after { right: 0; }
.header-actions { display: flex; align-items: center; gap: 28px; }
.header-phone { font-size: .8rem; line-height: 1.4; letter-spacing: .02em; }
.header-phone span { display: block; color: var(--gold-light); font-size: .65rem; text-transform: uppercase; letter-spacing: .16em; }
.menu-button { display: none; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.35); background: transparent; border-radius: 50%; cursor: pointer; }
.menu-button span { display: block; width: 16px; height: 1px; background: white; margin: 5px auto; transition: .25s; }
.mobile-nav { display: none; }
.inner-header { position: relative; inset: auto; }
.inner-page { background: #ebe7de; }
.page-hero { min-height: 440px; padding: 105px max(7vw, 25px) 80px; display: flex; align-items: end; color: white; background: linear-gradient(90deg, rgba(7,8,6,.88), rgba(7,8,6,.3)), url("Hero.png") 70% 45%/cover no-repeat; }
.page-hero > div { width: 100%; max-width: 1220px; margin: 0 auto; }
.page-hero h1 { margin: 0; font-family: var(--serif); font-size: clamp(3.2rem, 6vw, 6rem); font-weight: 500; line-height: 1; letter-spacing: -.04em; }
.page-hero p:last-child { max-width: 580px; margin: 24px 0 0; color: rgba(255,255,255,.7); line-height: 1.7; }

.hero { min-height: 790px; height: 100vh; position: relative; color: white; display: flex; align-items: center; overflow: hidden; }
.hero-bg { position: absolute; inset: 0; background: url("Hero.png") center/cover no-repeat; transform: scale(1.01); animation: reveal 1.2s ease both; }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,5,4,.88) 0%, rgba(5,5,4,.58) 35%, rgba(5,5,4,.08) 72%), linear-gradient(0deg, rgba(0,0,0,.42), transparent 45%); }
.hero-content { z-index: 2; position: relative; max-width: 780px; margin-left: 10vw; padding-top: 60px; }
.eyebrow { margin: 0 0 20px; color: #9b7b3f; font-size: .7rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; }
.eyebrow.light { color: var(--gold-light); }
.hero h1, h2 { font-family: var(--serif); font-weight: 500; }
.hero h1 { margin: 0; font-size: clamp(3.5rem, 6.4vw, 6.8rem); line-height: .98; letter-spacing: -.045em; }
em { color: var(--gold-light); font-weight: 500; }
.hero-lead { max-width: 570px; margin: 28px 0; color: rgba(255,255,255,.78); line-height: 1.75; font-size: 1.05rem; }
.text-link { display: inline-flex; gap: 34px; align-items: center; padding-bottom: 8px; border-bottom: 1px solid currentColor; font-size: .82rem; font-weight: 600; }
.text-link span, .outline-button span, .gold-button span { transition: transform .25s; }
.text-link:hover span, .outline-button:hover span, .gold-button:hover span { transform: translateX(5px); }
.text-link.light { color: white; }
.hero-caption { position: absolute; z-index: 2; right: 5vw; bottom: 45px; border-left: 1px solid var(--gold); padding-left: 18px; font-size: .75rem; }
.hero-caption span { display: block; color: rgba(255,255,255,.58); margin-bottom: 5px; }
.hero-caption strong { font-weight: 500; }
.scroll-cue { position: absolute; z-index: 2; bottom: 38px; left: 50%; border: 1px solid rgba(255,255,255,.45); width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; }

.search-wrap { position: relative; z-index: 5; max-width: 1220px; margin: -36px auto 0; padding: 0 22px; }
.property-search { background: white; box-shadow: 0 18px 55px rgba(21,17,10,.14); }
.search-tabs { height: 54px; padding: 0 28px; display: flex; gap: 30px; border-bottom: 1px solid #eeeae2; }
.search-tab { border: 0; background: none; padding: 0 2px; color: #89857c; cursor: pointer; position: relative; font-size: .82rem; }
.search-tab.active { color: var(--ink); font-weight: 600; }
.search-tab.active::after { content: ""; position: absolute; height: 2px; background: var(--gold); inset: auto 0 -1px; }
.search-fields { display: grid; grid-template-columns: repeat(3, 1fr) 150px; padding: 23px 28px; }
.search-fields label { padding: 0 28px; border-right: 1px solid #e6e1d9; }
.search-fields label:first-child { padding-left: 0; }
.search-fields label span, .contact-form label span { display: block; margin-bottom: 7px; color: #9a968d; font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; }
select, .contact-form input { width: 100%; padding: 4px 22px 4px 0; border: 0; outline: none; background: transparent; color: var(--ink); }
.search-button { border: 0; background: var(--black); color: white; display: flex; justify-content: center; align-items: center; gap: 14px; cursor: pointer; transition: background .25s; }
.search-button:hover { background: #322818; }
.search-button svg { width: 18px; fill: none; stroke: var(--gold-light); stroke-width: 1.7; }

.section-pad { max-width: 1220px; margin: 0 auto; padding: 120px 22px; }
.intro { display: grid; grid-template-columns: 1.1fr .9fr; gap: 10vw; align-items: end; }
h2 { margin: 0; font-size: clamp(2.5rem, 4vw, 4.7rem); line-height: 1.08; letter-spacing: -.035em; }
.intro-copy { padding-bottom: 8px; }
.intro-copy > p { margin: 0 0 30px; color: var(--muted); line-height: 1.9; }
.intro .text-link { color: #745a2d; }

.properties { padding-top: 35px; }
.section-heading { display: flex; justify-content: space-between; align-items: end; margin-bottom: 45px; }
.section-heading h2 { font-size: clamp(2.25rem, 3.6vw, 4rem); }
.outline-button { padding: 15px 21px; display: inline-flex; align-items: center; gap: 28px; border: 1px solid #9f9a91; font-size: .76rem; }
.property-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.property-card { background: white; transition: transform .3s, box-shadow .3s; }
.property-card:hover { transform: translateY(-7px); box-shadow: 0 22px 42px rgba(32,27,18,.12); }
.property-card.hidden { display: none; }
.property-image { display: block; width: 100%; height: 330px; position: relative; background-position: center; background-size: cover; overflow: hidden; }
.property-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.1), transparent 55%); }
.image-one { background-image: url("assets/hero-arous.png"); background-position: 70% center; }
.image-two { background-image: url("https://images.unsplash.com/photo-1600607687920-4e2a09cf159d?auto=format&fit=crop&w=1000&q=85"); }
.image-three { background-image: url("https://images.unsplash.com/photo-1600566753086-00f18fb6b3ea?auto=format&fit=crop&w=1000&q=85"); }
.tag { position: absolute; z-index: 2; top: 18px; left: 18px; background: rgba(10,10,9,.86); color: white; padding: 8px 13px; font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; }
.favorite { position: absolute; z-index: 2; right: 15px; top: 14px; width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.6); background: rgba(0,0,0,.18); color: white; border-radius: 50%; font-size: 1.3rem; cursor: pointer; }
.favorite.active { color: var(--gold-light); background: #111; border-color: #111; }
.property-info { padding: 25px; }
.property-info > p { margin: 0 0 10px; color: #a0834e; text-transform: uppercase; font-size: .65rem; letter-spacing: .12em; }
.property-info h3 { margin: 0; min-height: 52px; font-family: var(--serif); font-size: 1.2rem; font-weight: 500; line-height: 1.35; }
.property-meta { display: flex; gap: 15px; color: #807d76; font-size: .72rem; padding: 20px 0; margin: 17px 0; border-top: 1px solid #ece8e0; border-bottom: 1px solid #ece8e0; }
.property-info strong { font-family: var(--serif); font-size: 1.24rem; font-weight: 600; }
.no-results { display: none; text-align: center; padding: 55px; color: var(--muted); }
.featured-status { margin: 0; min-height: 22px; color: var(--muted); font-size: .78rem; }
.featured-status:empty { display: none; }
.featured-badge { position: absolute; z-index: 2; left: 18px; bottom: 18px; padding: 7px 11px; background: var(--gold); color: #12110e; text-transform: uppercase; letter-spacing: .1em; font-size: .58rem; font-weight: 600; }

.catalog-section { padding: 110px 22px; background: #ebe7de; }
.standalone-catalog { padding-top: 90px; }
.catalog-inner { max-width: 1220px; margin: 0 auto; }
.catalog-heading { margin-bottom: 32px; }
.catalog-count { margin: 0 0 8px; color: var(--muted); font-size: .78rem; }
.catalog-count strong { color: var(--ink); font-family: var(--serif); font-size: 1.3rem; }
.catalog-filters { display: grid; grid-template-columns: repeat(3, 1fr) 1.2fr auto; gap: 0; margin-bottom: 38px; background: white; border: 1px solid #ddd8ce; }
.catalog-filters label { padding: 17px 20px; border-right: 1px solid #e6e1d8; }
.catalog-filters label span, .manager-form label > span:first-child { display: block; margin-bottom: 7px; color: #8b867c; font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; }
.catalog-filters select, .catalog-filters input { width: 100%; padding: 3px 20px 3px 0; border: 0; outline: 0; background: transparent; color: var(--ink); }
.filter-reset { padding: 0 22px; border: 0; background: var(--black); color: white; cursor: pointer; font-size: .72rem; white-space: nowrap; }
.filter-reset:hover { background: #322818; }
.catalog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px; }
.catalog-card { background: white; transition: transform .3s, box-shadow .3s; }
.catalog-card:hover { transform: translateY(-6px); box-shadow: 0 20px 38px rgba(32,27,18,.12); }
.catalog-card .property-image { height: 330px; background-color: #d8d3c9; }
.property-info > .catalog-card-description { min-height: 42px; margin: 15px 0 0; color: var(--muted); font-size: .77rem; line-height: 1.65; letter-spacing: 0; text-transform: none; }
.catalog-card-footer { display: flex; align-items: center; justify-content: space-between; }
.catalog-card-footer a { color: #856a38; padding-bottom: 3px; border-bottom: 1px solid currentColor; font-size: .69rem; font-weight: 600; }
.catalog-empty { display: none; padding: 70px 20px; text-align: center; color: var(--muted); }
.catalog-empty strong { color: var(--ink); font-family: var(--serif); font-size: 1.5rem; }
.catalog-empty p { margin: 8px 0 0; }
.data-status { min-height: 20px; margin: -18px 0 25px; color: #8a754d; font-size: .72rem; }

.services { display: grid; grid-template-columns: 1.05fr .95fr; min-height: 750px; background: #11120f; color: white; }
.service-image { background: linear-gradient(0deg, rgba(10,10,9,.18), rgba(10,10,9,.18)), url("assets/hero-arous.png") 75% center/cover no-repeat; }
.service-content { padding: 95px max(6vw, 50px); display: flex; flex-direction: column; justify-content: center; }
.service-content h2 { font-size: clamp(2.7rem, 4vw, 4.7rem); }
.service-content > p:not(.eyebrow) { color: rgba(255,255,255,.6); line-height: 1.8; margin: 25px 0 35px; }
.service-list > div { display: grid; grid-template-columns: 42px 1fr; gap: 15px; padding: 18px 0; border-top: 1px solid rgba(255,255,255,.13); }
.service-list span { color: var(--gold); font-family: var(--serif); }
.service-list p { margin: 0; color: rgba(255,255,255,.52); font-size: .8rem; line-height: 1.6; }
.service-list strong { display: block; margin-bottom: 2px; color: white; font-size: .9rem; font-weight: 500; }
.gold-button { width: fit-content; margin-top: 30px; padding: 16px 21px; border: 0; background: var(--gold); color: #10100e; display: flex; gap: 35px; cursor: pointer; font-size: .78rem; font-weight: 600; }

.manager-section { display: grid; grid-template-columns: .72fr 1.28fr; background: #151613; color: white; }
.manager-intro { padding: 110px 6vw; border-right: 1px solid rgba(255,255,255,.1); }
.manager-intro h2 { font-size: clamp(2.7rem, 4.2vw, 4.8rem); }
.manager-intro > p:not(.eyebrow) { color: rgba(255,255,255,.57); margin: 28px 0; line-height: 1.85; }
.manager-note { margin-top: 50px; padding: 22px; border: 1px solid rgba(255,255,255,.13); color: rgba(255,255,255,.58); font-size: .75rem; line-height: 1.7; }
.manager-note span { display: block; margin-bottom: 8px; color: var(--gold-light); text-transform: uppercase; letter-spacing: .14em; font-size: .6rem; }
.manager-panel { min-width: 0; padding: 90px 5vw; background: #f4f1ea; color: var(--ink); }
.manager-form { padding: 36px; background: white; box-shadow: 0 20px 50px rgba(0,0,0,.11); }
.manager-form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; }
.manager-form label { display: block; }
.manager-form .field-wide { grid-column: 1 / -1; }
.manager-form input:not([type="file"]), .manager-form select, .manager-form textarea {
  width: 100%;
  padding: 12px 0;
  border: 0;
  border-bottom: 1px solid #cfc9bd;
  border-radius: 0;
  outline: 0;
  background: transparent;
  color: var(--ink);
}
.manager-form textarea { resize: vertical; }
.manager-form input:focus, .manager-form select:focus, .manager-form textarea:focus { border-color: var(--gold); }
.image-upload { position: relative; padding: 20px; border: 1px dashed #bcb5a8; background: #faf8f3; cursor: pointer; }
.image-upload input { position: absolute; inset: 0; width: 100%; opacity: 0; cursor: pointer; }
.image-upload .upload-copy { display: flex; align-items: center; justify-content: space-between; margin: 0; color: var(--ink); text-transform: none; letter-spacing: 0; font-size: .82rem; }
.image-upload .upload-copy small { color: #959087; font-size: .65rem; }
.image-preview { display: none; height: 240px; margin-top: 22px; background: #e6e1d7 center/cover no-repeat; align-items: center; justify-content: center; color: #858077; font-size: .75rem; }
.image-preview.has-image { display: flex; }
.image-preview.has-image span { display: none; }
.multi-image-preview { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-top: 20px; }
.multi-image-preview > span { grid-column: 1 / -1; padding: 30px; border: 1px dashed #c7c0b5; color: var(--muted); text-align: center; font-size: .72rem; }
.multi-image-preview > div { min-height: 115px; position: relative; background: #ddd center/cover no-repeat; }
.multi-image-preview > div span { position: absolute; inset: auto auto 7px 7px; padding: 4px 7px; background: rgba(0,0,0,.75); color: white; font-size: .58rem; text-transform: uppercase; }
.manager-submit { margin-top: 28px; }
.manager-message { min-height: 22px; margin: 18px 0 0; color: #785f31; font-size: .78rem; }
.managed-properties { margin-top: 45px; }
.managed-heading { display: flex; align-items: end; justify-content: space-between; padding-bottom: 15px; border-bottom: 1px solid #d4cec3; }
.managed-heading h3 { margin: 0; font-family: var(--serif); font-size: 1.5rem; font-weight: 500; }
.managed-heading span { color: var(--muted); font-size: .72rem; }
.managed-list { display: grid; gap: 12px; margin-top: 18px; }
.managed-empty { padding: 30px; border: 1px dashed #c7c0b5; text-align: center; color: var(--muted); font-size: .78rem; }
.managed-item { display: grid; grid-template-columns: 78px 1fr auto; gap: 16px; align-items: center; padding: 10px; background: white; }
.managed-thumb { width: 78px; height: 64px; background: #ddd center/cover no-repeat; }
.managed-item h4 { margin: 0 0 5px; font-family: var(--serif); font-size: .95rem; font-weight: 500; }
.managed-item p { margin: 0; color: var(--muted); font-size: .68rem; }
.delete-property { border: 0; background: transparent; color: #8a3d32; padding: 10px; cursor: pointer; font-size: .68rem; }

.admin-page { min-height: 100vh; background: #ece8df; }
.admin-main { min-height: calc(100vh - 92px); }
.admin-logout { padding: 11px 16px; border: 1px solid rgba(255,255,255,.35); background: transparent; color: white; cursor: pointer; font-size: .72rem; }
.login-shell { min-height: calc(100vh - 92px); display: grid; grid-template-columns: 1.1fr .9fr; }
.login-brand { padding: 10vw 9vw; display: flex; flex-direction: column; justify-content: center; color: white; background: linear-gradient(90deg, rgba(7,8,6,.88), rgba(7,8,6,.25)), url("Hero.png") 68% center/cover no-repeat; }
.login-brand h1 { margin: 0; font-family: var(--serif); font-size: clamp(3.2rem, 5vw, 5.8rem); font-weight: 500; line-height: 1; letter-spacing: -.04em; }
.login-brand > p:last-child { max-width: 470px; color: rgba(255,255,255,.65); line-height: 1.8; }
.login-card { padding: 9vw; display: flex; flex-direction: column; justify-content: center; gap: 25px; background: white; }
.login-card h2 { font-size: 2.8rem; }
.login-card label { display: block; }
.login-card label span { display: block; margin-bottom: 8px; color: #878279; text-transform: uppercase; letter-spacing: .12em; font-size: .62rem; }
.login-card input { width: 100%; padding: 13px 0; border: 0; border-bottom: 1px solid #aaa49a; outline: 0; }
.login-card input:focus { border-color: var(--gold); }
.login-card .gold-button { margin-top: 10px; }
.auth-message { min-height: 22px; margin: 0; color: #8a3d32; font-size: .76rem; }
.setup-warning { padding: 15px; margin: 0; border: 1px solid #e4c98f; background: #fff8e8; color: #6d5a32; font-size: .75rem; line-height: 1.6; }
.private-dashboard { max-width: 1500px; margin: 0 auto; padding: 70px 5vw 100px; }
.dashboard-heading { display: flex; align-items: end; justify-content: space-between; margin-bottom: 45px; }
.dashboard-heading h1 { margin: 0; font-family: var(--serif); font-size: clamp(2.7rem, 4vw, 4.5rem); font-weight: 500; }
.dashboard-heading > p { color: var(--muted); font-size: .75rem; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(350px, .88fr); gap: 35px; align-items: start; }
.manager-form-title { margin-bottom: 30px; }
.manager-form-title h2 { font-size: 2rem; }
.manager-form-title p { margin: 8px 0 0; color: var(--muted); font-size: .75rem; }
.publish-check { display: flex !important; align-items: center; gap: 9px; margin-top: 20px; color: var(--muted); font-size: .75rem; }
.publish-check input { width: auto !important; }
.admin-list-panel { padding: 30px; background: #f8f6f1; border: 1px solid #dcd6cb; }
.admin-list-panel .managed-heading { align-items: end; }
.admin-list-panel .managed-heading .eyebrow { margin-bottom: 7px; }
.admin-property-row { grid-template-columns: 78px 1fr auto; }
.publication-state { display: inline-flex; margin-top: 7px; padding: 3px 7px; background: #d9d4ca; color: #645f57; font-size: .58rem; text-transform: uppercase; letter-spacing: .08em; }
.publication-state.is-live { background: #dfe9d8; color: #48603b; }
.publication-state.is-featured { margin-left: 4px; background: #ead8ac; color: #6e5422; }
.row-actions { display: flex; flex-direction: column; align-items: stretch; gap: 4px; }
.row-actions button, .row-actions a { padding: 7px 8px; border: 0; background: #e8e3da; cursor: pointer; font-size: .64rem; text-align: center; }
.row-actions .edit-property { background: var(--black); color: white; }
.row-actions .view-property { color: #70582c; }
.row-actions .delete-property { background: transparent; color: #8a3d32; }

.detail-loading, .edit-loading { min-height: 60vh; display: grid; place-items: center; color: var(--muted); }
.property-detail { background: var(--paper); }
.detail-gallery { height: min(70vh, 720px); min-height: 520px; display: grid; grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; gap: 5px; position: relative; background: #d9d4ca; }
.gallery-main { grid-row: 1 / -1; border: 0; background: #d8d3c9 center/cover no-repeat; cursor: zoom-in; }
.gallery-side { display: contents; }
.gallery-side button { border: 0; background: #d8d3c9 center/cover no-repeat; cursor: zoom-in; }
.gallery-side.single-image::after { content: ""; grid-row: 1 / -1; background: #d8d3c9; }
.gallery-count { position: absolute; right: 28px; bottom: 25px; padding: 12px 17px; border: 1px solid rgba(255,255,255,.7); background: rgba(10,10,9,.83); color: white; cursor: pointer; font-size: .7rem; }
.detail-layout { max-width: 1220px; margin: 0 auto; padding: 85px 22px 115px; display: grid; grid-template-columns: minmax(0, 1fr) 355px; gap: 80px; align-items: start; }
.back-link { display: inline-block; margin-bottom: 42px; color: var(--muted); font-size: .72rem; }
.detail-content h1 { margin: 0; max-width: 790px; font-family: var(--serif); font-size: clamp(2.7rem, 4.8vw, 5.2rem); font-weight: 500; line-height: 1.03; letter-spacing: -.04em; }
.detail-price { margin-top: 25px; color: #8b6d36; font-family: var(--serif); font-size: 2rem; }
.detail-features { display: flex; gap: 0; margin: 45px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.detail-features div { min-width: 140px; padding: 25px 30px 25px 0; }
.detail-features div + div { padding-left: 30px; border-left: 1px solid var(--line); }
.detail-features strong { display: block; font-family: var(--serif); font-size: 1.8rem; }
.detail-features span { color: var(--muted); font-size: .68rem; }
.detail-description, .detail-info { padding: 35px 0; border-bottom: 1px solid var(--line); }
.detail-description h2, .detail-info h2, .contact-property-card h2 { font-size: 1.8rem; }
.detail-description p { color: var(--muted); line-height: 1.9; white-space: pre-line; }
.detail-info dl { display: grid; grid-template-columns: 1fr 1fr; gap: 0 45px; }
.detail-info dl div { display: flex; justify-content: space-between; padding: 15px 0; border-bottom: 1px solid #ded9d0; }
.detail-info dt { color: var(--muted); font-size: .75rem; }
.detail-info dd { margin: 0; text-transform: capitalize; font-size: .78rem; font-weight: 600; }
.contact-property-card { position: sticky; top: 30px; padding: 35px; background: white; box-shadow: 0 20px 45px rgba(25,21,14,.1); }
.contact-property-card > p:not(.eyebrow) { color: var(--muted); line-height: 1.75; font-size: .8rem; }
.contact-property-card .gold-button { width: 100%; justify-content: space-between; }
.detail-phone { display: block; margin-top: 18px; color: #806634; text-align: center; font-size: .78rem; }
.detail-error { min-height: 65vh; padding: 90px 25px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.detail-error h1 { margin: 0; font-family: var(--serif); font-size: 3.5rem; font-weight: 500; }
.detail-error p { color: var(--muted); }
.gallery-modal { position: fixed; z-index: 100; inset: 0; padding: 60px 90px; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,.95); }
.gallery-modal img { max-width: 100%; max-height: 88vh; object-fit: contain; }
.gallery-close { position: absolute; top: 20px; right: 28px; border: 0; background: transparent; color: white; font-size: 2.2rem; cursor: pointer; }
.gallery-arrow { position: absolute; top: 50%; width: 50px; height: 50px; border: 1px solid rgba(255,255,255,.35); background: rgba(0,0,0,.45); color: white; border-radius: 50%; cursor: pointer; }
.gallery-arrow.previous { left: 25px; }
.gallery-arrow.next { right: 25px; }
.gallery-modal > span { position: absolute; bottom: 22px; color: white; font-size: .75rem; }

.edit-main { min-height: calc(100vh - 92px); background: #ece8df; }
.edit-property-shell { max-width: 1150px; margin: 0 auto; padding: 70px 25px 100px; }
.edit-form { padding: 45px; }
.edit-gallery-section { margin: 45px 0 25px; padding-top: 35px; border-top: 1px solid #ddd7cd; }
.edit-gallery-section > div:first-child { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 20px; }
.edit-gallery-section p { margin: 0; color: var(--muted); font-size: .72rem; }
.edit-gallery-section .eyebrow { color: #9b7b3f; }
.editable-gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.editable-image { position: relative; padding: 5px; border: 2px solid transparent; background: #f0ede7; }
.editable-image.is-cover { border-color: var(--gold); }
.editable-image img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.editable-image > div { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin-top: 5px; }
.editable-image button { padding: 7px 4px; border: 0; background: #ddd8cf; cursor: pointer; font-size: .58rem; }
.editable-image button:last-child { color: #853d34; }
.edit-actions { display: flex; align-items: center; gap: 15px; margin-top: 25px; }
.edit-actions .gold-button { margin: 0; }
.edit-actions .outline-button { background: transparent; }

.contact { text-align: center; }
.contact > p:not(.eyebrow):not(.form-message) { color: var(--muted); }
.contact-form { margin: 55px auto 0; max-width: 1000px; display: grid; grid-template-columns: repeat(3, 1fr) auto; gap: 20px; align-items: end; text-align: left; }
.contact-form label { border-bottom: 1px solid #afa99e; padding: 8px 0; }
.contact-form .gold-button { margin: 0; min-height: 59px; align-items: center; white-space: nowrap; }
.form-message { min-height: 24px; margin: 22px 0 0; color: #7b602e; font-size: .85rem; }

footer { background: #090a09; color: white; display: grid; grid-template-columns: 2fr 1fr 1.4fr; gap: 50px; padding: 75px 7vw 30px; }
.footer-brand img { width: 145px; height: 105px; object-fit: cover; object-position: 50% 53%; }
.footer-brand p, .footer-column p { color: #787873; font-size: .8rem; line-height: 1.7; }
.footer-column { display: flex; flex-direction: column; gap: 12px; font-size: .78rem; }
.footer-column > span { color: var(--gold); margin-bottom: 8px; text-transform: uppercase; font-size: .65rem; letter-spacing: .15em; }
.footer-bottom { grid-column: 1 / -1; display: flex; justify-content: space-between; padding-top: 30px; margin-top: 25px; border-top: 1px solid #292a27; color: #656560; font-size: .68rem; }
.whatsapp { position: fixed; z-index: 15; bottom: 25px; right: 25px; width: 52px; height: 52px; display: grid; place-items: center; border-radius: 50%; background: var(--gold); color: #0b0c0a; box-shadow: 0 8px 25px rgba(0,0,0,.25); font-size: .68rem; font-weight: 600; }

@keyframes reveal { from { opacity: 0; transform: scale(1.08); } to { opacity: 1; transform: scale(1.01); } }

@media (max-width: 900px) {
  .desktop-nav, .header-phone { display: none; }
  .menu-button { display: block; }
  .mobile-nav { display: flex; position: absolute; top: 92px; right: 0; left: 0; padding: 25px 5vw; background: #0b0c0a; flex-direction: column; gap: 20px; transform: translateY(-140%); opacity: 0; transition: .3s; z-index: -1; }
  .mobile-nav.open { transform: translateY(0); opacity: 1; }
  .hero { min-height: 730px; }
  .hero-content { margin: 0; padding: 70px 7vw 0; }
  .hero-caption { display: none; }
  .search-fields { grid-template-columns: 1fr 1fr; gap: 24px; }
  .search-fields label { padding: 0; border: 0; }
  .search-button { min-height: 55px; }
  .intro { gap: 50px; }
  .property-grid { grid-template-columns: 1fr 1fr; }
  #propertyGrid .property-card:last-child { grid-column: 1 / -1; max-width: calc(50% - 11px); }
  .catalog-filters { grid-template-columns: 1fr 1fr; }
  .catalog-filters label { border-bottom: 1px solid #e6e1d8; }
  .filter-reset { min-height: 54px; }
  .catalog-grid { grid-template-columns: 1fr 1fr; }
  .services { grid-template-columns: 1fr; }
  .service-image { min-height: 500px; }
  .manager-section { grid-template-columns: 1fr; }
  .manager-intro { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.1); }
  .contact-form { grid-template-columns: 1fr 1fr; }
  .login-shell { grid-template-columns: 1fr; }
  .login-brand { min-height: 480px; padding: 80px 7vw; }
  .login-card { padding: 80px 10vw; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .detail-layout { grid-template-columns: 1fr; gap: 45px; }
  .contact-property-card { position: static; }
  .editable-gallery { grid-template-columns: repeat(3, 1fr); }
  footer { grid-template-columns: 1.5fr 1fr; }
}

@media (max-width: 620px) {
  .site-header { height: 78px; padding: 0 20px; }
  .brand img { width: 88px; height: 60px; }
  .mobile-nav { top: 78px; }
  .inner-header .mobile-nav { top: 78px; }
  .hero { height: 91vh; min-height: 650px; }
  .hero-bg { background-position: 67% center; }
  .hero-overlay { background: linear-gradient(90deg, rgba(5,5,4,.88), rgba(5,5,4,.25)), linear-gradient(0deg, rgba(0,0,0,.55), transparent); }
  .hero-content { padding: 50px 24px 0; }
  .hero h1 { font-size: clamp(3.1rem, 15vw, 4.5rem); }
  .hero-lead { max-width: 340px; font-size: .93rem; }
  .scroll-cue { display: none; }
  .search-wrap { margin: 0; padding: 0; }
  .property-search { box-shadow: none; }
  .search-tabs { padding: 0 20px; }
  .search-fields { grid-template-columns: 1fr; padding: 25px 20px; }
  .section-pad { padding: 85px 20px; }
  .intro { grid-template-columns: 1fr; }
  .properties { padding-top: 10px; }
  .section-heading { align-items: start; gap: 28px; flex-direction: column; }
  .property-grid { grid-template-columns: 1fr; }
  #propertyGrid .property-card:last-child { grid-column: auto; max-width: none; }
  .property-image { height: 300px; }
  .catalog-section { padding: 80px 20px; }
  .catalog-filters, .catalog-grid { grid-template-columns: 1fr; }
  .catalog-filters label { border-right: 0; }
  .catalog-card .property-image { height: 265px; }
  .service-image { min-height: 380px; }
  .service-content { padding: 70px 25px; }
  .manager-intro, .manager-panel { padding: 70px 22px; }
  .manager-form { padding: 25px 20px; }
  .manager-form-grid { grid-template-columns: 1fr; }
  .manager-form .field-wide { grid-column: auto; }
  .image-upload .upload-copy { align-items: start; flex-direction: column; gap: 5px; }
  .manager-submit { width: 100%; justify-content: space-between; }
  .managed-item { grid-template-columns: 65px 1fr; }
  .managed-thumb { width: 65px; height: 58px; }
  .delete-property { grid-column: 2; justify-self: start; padding: 0 0 8px; }
  .page-hero { min-height: 410px; padding: 70px 22px 55px; }
  .page-hero h1 { font-size: clamp(3rem, 14vw, 4.2rem); }
  .login-brand { min-height: 420px; padding: 65px 25px; }
  .login-card { padding: 65px 25px; }
  .private-dashboard { padding: 55px 20px 75px; }
  .dashboard-heading { align-items: start; flex-direction: column; gap: 15px; }
  .manager-form-title h2 { font-size: 1.75rem; }
  .admin-list-panel { padding: 22px 17px; }
  .admin-property-row { grid-template-columns: 65px 1fr; }
  .row-actions { grid-column: 2; align-items: start; flex-direction: row; }
  .multi-image-preview { grid-template-columns: repeat(2, 1fr); }
  .detail-gallery { height: 520px; min-height: 0; grid-template-columns: 1fr 1fr; grid-template-rows: 2fr 1fr; }
  .gallery-main { grid-column: 1 / -1; grid-row: 1; }
  .gallery-side { display: contents; }
  .gallery-side.single-image::after { grid-row: 2; }
  .detail-layout { padding: 60px 20px 80px; }
  .detail-content h1 { font-size: clamp(2.6rem, 12vw, 4rem); }
  .detail-features div { min-width: 0; flex: 1; padding: 20px 12px 20px 0; }
  .detail-features div + div { padding-left: 12px; }
  .detail-info dl { grid-template-columns: 1fr; }
  .gallery-modal { padding: 55px 10px; }
  .gallery-arrow { top: auto; bottom: 20px; }
  .gallery-modal > span { bottom: 35px; }
  .edit-property-shell { padding: 55px 18px 75px; }
  .edit-form { padding: 28px 20px; }
  .edit-gallery-section > div:first-child { align-items: start; flex-direction: column; gap: 6px; }
  .editable-gallery { grid-template-columns: 1fr 1fr; }
  .edit-actions { align-items: stretch; flex-direction: column; }
  .edit-actions .gold-button, .edit-actions .outline-button { width: 100%; justify-content: space-between; }
  .contact-form { grid-template-columns: 1fr; }
  .contact-form .gold-button { width: 100%; justify-content: space-between; }
  footer { grid-template-columns: 1fr; padding: 60px 25px 25px; }
  .footer-bottom { flex-direction: column; gap: 8px; }
}
