/* Shared catalogue + project template. Theme variables belong to each project;
   the site's black/white CTA and flip-word rules remain in home.css. */
.property-page { --property-accent:#4e342e; --property-wash:#f3efeb; --property-ink:#4e342e; --property-line:#d9cfc9; --property-onAccent:#fff; }
.property-page main { padding-top:calc(var(--header-height) + 42px); padding-bottom:110px; min-height:65svh; overflow-wrap:break-word; }
.property-page h1,.property-page main h2 { font-family:var(--serif); font-weight:400; letter-spacing:-.045em; }
.property-page main h2 { line-height:1.06; }
.property-page main p { line-height:1.75; }
.property-page main a,.property-page main button { -webkit-tap-highlight-color:#b7966322; }
.property-preview-notice { display:flex; align-items:center; justify-content:space-between; gap:28px; padding:18px 24px; margin-bottom:40px; background:#eae4d5; border-left:3px solid var(--brown); font-size:13px; }
.property-preview-notice p { margin:0; max-width:850px; }
.property-preview-notice strong { display:block; font-weight:600; color:var(--brown); }
.property-preview-notice a { flex-shrink:0; padding:10px 0; text-decoration:underline; text-underline-offset:5px; }
.property-collection-intro { display:grid; grid-template-columns:1.3fr 1fr; gap:64px; align-items:end; padding:30px 0 50px; }
.property-eyebrow { font-family:var(--sans); font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--property-ink); margin:0 0 18px; }
.property-collection-intro h1 { font-size:clamp(52px,5.5vw,86px); line-height:.98; margin:0; }
.property-collection-intro h1 em { font-weight:400; color:var(--brown); }
.property-intro-note { padding-bottom:5px; max-width:370px; justify-self:end; }
.property-intro-note p { color:var(--muted); font-size:14px; margin:0 0 24px; }
.property-intro-note span { font-size:10px; letter-spacing:.15em; }
.property-filter-panel { padding:24px; background:var(--paper); border:1px solid var(--line); }
.property-filter-panel form { display:grid; grid-template-columns:1fr 1fr 1fr 1.45fr auto; align-items:end; gap:16px; }
.property-filter-panel label { display:grid; gap:9px; min-width:0; }
.property-filter-panel label > span { font-size:10px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.property-filter-panel select,.property-filter-panel input { display:block; width:100%; min-width:0; min-height:48px; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; color:var(--ink); font-size:14px; padding:10px 5px; }
.property-filter-panel input::placeholder { color:var(--muted); opacity:1; }
.property-filter-panel .property-button { min-height:48px; }
.property-button { display:inline-flex; align-items:center; justify-content:center; gap:20px; min-height:48px; max-width:100%; padding:14px 22px; border:1px solid #000; border-radius:0; font-size:12px; font-weight:500; line-height:1.4; }
.property-button .button-arrow { font-size:18px; }
.property-selection-summary { font-size:12px; margin:15px 0 0; max-width:820px; overflow-wrap:anywhere; color:var(--muted); }
.property-results-bar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; padding:28px 0; }
.property-results-info { display:flex; align-items:center; gap:22px; }
.property-results-info p { margin:0; font-size:12px; font-weight:500; }
.property-clear { font-size:12px; border:0; border-bottom:1px solid var(--ink); padding:12px 0; background:transparent; color:var(--ink); }
.property-sort { display:flex; align-items:center; gap:14px; font-size:12px; }
.property-sort > span { color:var(--muted); }
.property-sort select { min-height:44px; border:0; background:transparent; color:var(--ink); max-width:190px; }
.property-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px; align-items:stretch; }
.property-card { display:flex; flex-direction:column; min-width:0; border:1px solid var(--property-line); background:var(--paper); }
.property-card-image { display:block; overflow:hidden; }
.property-media { position:relative; aspect-ratio:8/5; overflow:hidden; background:var(--property-wash); }
.property-media > img { width:100%; height:100%; object-fit:cover; transition:transform .65s var(--ease); }
.property-card-body { border-top:3px solid var(--property-accent); padding:28px 30px 30px; display:flex; flex:1; flex-direction:column; }
.property-card-meta { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; font-size:9px; letter-spacing:.1em; color:var(--muted); }
.property-category { display:inline-block; padding:7px 10px; color:var(--property-ink); background:var(--property-wash); font-size:10px; letter-spacing:.06em; }
.property-location { font-size:12px; color:var(--muted); margin:22px 0 7px; }
.property-card h2 { font-size:clamp(30px,3.2vw,46px); margin:0 0 12px; overflow-wrap:anywhere; }
.property-card h2 a { text-decoration-thickness:1px; text-underline-offset:6px; }
.property-summary { color:var(--muted); font-size:13px; margin:0 0 22px; }
.property-card-facts { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:0 0 25px; }
.property-card-facts > div { min-width:0; }
.property-card dt,.property-detail-facts dt { color:var(--muted); font-size:10px; letter-spacing:.05em; margin-bottom:7px; }
.property-card dd { margin:0; font-size:12px; overflow-wrap:anywhere; }
.property-card-bottom { display:flex; justify-content:space-between; align-items:center; gap:16px; border-top:1px solid var(--property-line); padding-top:22px; margin-top:auto; }
.property-card-price > span,.property-hero-price > span { display:block; font-size:9px; letter-spacing:.12em; margin-bottom:8px; color:var(--muted); }
.property-card-price strong { font-family:var(--serif); font-size:27px; font-weight:500; line-height:1.1; }
.property-empty { text-align:center; border:1px solid var(--line); padding:65px 22px; background:var(--paper); }
.property-empty-mark { font-size:12px; letter-spacing:.15em; color:var(--muted); margin-bottom:28px; }
.property-empty h2 { font-size:clamp(35px,4vw,52px); max-width:520px; margin:0 auto 18px; }
.property-empty p { max-width:470px; margin:0 auto 28px; color:var(--muted); font-size:14px; }
.property-text-link { display:inline-flex; align-items:center; min-height:44px; text-decoration:underline; text-underline-offset:5px; font-size:12px; }
.property-list-note { margin:26px 0 0; font-size:11px; color:var(--muted); max-width:720px; }

/* Abstract architecture is explicitly a placeholder, never a project photo. */
.property-art { position:relative; aspect-ratio:8/5; min-width:0; overflow:hidden; background:var(--property-accent); color:var(--property-onAccent); isolation:isolate; }
.property-art::before { content:''; position:absolute; width:42%; aspect-ratio:1; border:1px solid currentColor; opacity:.16; border-radius:50%; top:-14%; right:6%; }
.property-art::after { content:''; position:absolute; inset:60% -20% -40%; border:1px solid currentColor; opacity:.12; border-radius:50%; transform:rotate(-16deg); }
.property-art-top { position:absolute; inset:23px 25px auto; display:flex; align-items:start; justify-content:space-between; font-size:9px; letter-spacing:.21em; z-index:2; }
.property-art-top > span:last-child { font-family:var(--serif); font-size:36px; font-weight:400; line-height:.8; letter-spacing:-.05em; }
.property-art-drawing { position:absolute; inset:22% 13% 14%; display:flex; align-items:end; justify-content:center; gap:3%; transform:skewY(-7deg); }
.property-art-tower { display:block; width:25%; height:66%; border:1px solid currentColor; background:repeating-linear-gradient(0deg,transparent 0,transparent 18px,currentColor 18px,currentColor 19px); opacity:.28; position:relative; }
.property-art-tower::after { content:''; position:absolute; inset:0; background:repeating-linear-gradient(90deg,transparent 0,transparent 22px,currentColor 22px,currentColor 23px); opacity:.6; }
.property-art-tower:nth-child(2) { height:100%; }
.property-art-tower:nth-child(3) { height:79%; }
.property-art--commercial .property-art-drawing { transform:skewY(6deg); }
.property-art--commercial .property-art-tower { width:35%; }
.property-art--commercial .property-art-tower:nth-child(2) { height:82%; }
.property-art--plots .property-art-drawing,.property-art--agricultural .property-art-drawing { transform:perspective(500px) rotateX(53deg) rotateZ(-20deg); inset:16% 0 -9%; }
.property-art--plots .property-art-tower,.property-art--agricultural .property-art-tower { height:80%; width:25%; background:transparent; opacity:.45; }
.property-art-caption { position:absolute; inset:auto 25px 21px; font-size:10px; letter-spacing:.08em; z-index:2; }

.property-breadcrumb { display:flex; align-items:center; justify-content:space-between; gap:20px; color:var(--muted); font-size:11px; padding-bottom:26px; }
.property-breadcrumb a { min-height:44px; }
.property-detail-hero { display:grid; grid-template-columns:1fr 1.15fr; gap:64px; align-items:center; padding-bottom:44px; }
.property-detail-intro h1 { font-size:clamp(48px,5.3vw,82px); line-height:1; margin:0 0 24px; overflow-wrap:anywhere; }
.property-detail-location { font-size:13px; color:var(--property-ink); margin:0 0 20px; }
.property-detail-summary { font-size:14px; color:var(--muted); margin:0 0 30px; max-width:460px; }
.property-hero-price { margin-bottom:25px; }
.property-hero-price strong { font-family:var(--serif); font-size:38px; font-weight:500; }
.property-actions { display:flex; align-items:center; gap:15px 25px; flex-wrap:wrap; }
.property-detail-visual { margin:0; min-width:0; }
.property-detail-visual .property-media { aspect-ratio:1/1.06; }
.property-detail-visual .property-art { height:100%; aspect-ratio:auto; }
.property-detail-visual .property-art-drawing { inset:24% 6% 19%; }
.property-detail-visual figcaption,.property-gallery figcaption { font-size:10px; color:var(--muted); line-height:1.6; margin-top:10px; }
.property-detail-facts { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); padding:30px; gap:28px; background:var(--property-wash); border-top:2px solid var(--property-accent); margin:0 0 24px; }
.property-detail-facts dd { margin:0; font-size:17px; font-weight:500; color:var(--property-ink); overflow-wrap:anywhere; }
.property-section-nav { display:flex; align-items:center; gap:30px; border-bottom:1px solid var(--property-line); overflow-x:auto; scrollbar-width:thin; }
.property-section-nav a { display:flex; align-items:center; min-height:60px; flex-shrink:0; padding:12px 0; font-size:12px; color:var(--property-ink); }
.property-section-nav a:focus-visible { outline-offset:-3px; }
.property-detail-body { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:80px; align-items:start; padding-top:55px; }
.property-detail-section { margin-bottom:60px; padding-bottom:55px; border-bottom:1px solid var(--property-line); scroll-margin-top:115px; }
.property-detail-section h2 { font-size:clamp(32px,3.3vw,48px); max-width:580px; margin:0 0 25px; }
.property-detail-section > p:not(.property-eyebrow) { color:var(--muted); font-size:14px; max-width:720px; }
.property-highlights { list-style:none; padding:0; margin:0; }
.property-highlights li { display:flex; align-items:baseline; gap:24px; padding:18px 0; border-top:1px solid var(--property-line); }
.property-highlights li > span { flex:none; color:var(--property-ink); font-size:11px; }
.property-highlights li > p { margin:0; font-size:14px; }
.property-table-wrap { max-width:100%; overflow-x:auto; }
.property-configurations { width:100%; border-collapse:collapse; font-size:12px; text-align:left; }
.property-configurations thead { background:var(--property-wash); color:var(--property-ink); }
.property-configurations th,.property-configurations td { padding:18px 16px; vertical-align:top; border-bottom:1px solid var(--property-line); line-height:1.65; }
.property-configurations tbody th { font-weight:500; }
.property-configurations td { min-width:130px; }
.property-page main .property-note { font-size:11px; line-height:1.8; color:var(--muted); }
.property-gallery { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.property-gallery figure { margin:0; min-width:0; }
.property-gallery .property-art-top { display:none; }
.property-gallery .property-art-caption { font-size:9px; inset:auto 15px 14px; letter-spacing:0; }
.property-gallery-image { display:block; }
.property-gallery-image .property-media > img { transition:transform .65s var(--ease); }
.property-location-name { font-weight:500; color:var(--ink)!important; }
.property-brochure { display:flex; flex-wrap:wrap; align-items:center; gap:22px; background:var(--property-wash); border:1px solid var(--property-line); padding:28px; }
.property-document-mark { display:grid; place-items:center; flex-shrink:0; width:47px; height:60px; border:1px solid var(--property-ink); color:var(--property-ink); font-size:10px; letter-spacing:.1em; border-radius:0 10px 0 0; }
.property-brochure > div { flex:1; min-width:160px; }
.property-brochure h3 { font-family:var(--serif); font-size:28px; font-weight:500; margin:0 0 8px; }
.property-brochure p { margin:0; font-size:12px; color:var(--muted); }
.property-enquiry { position:sticky; top:110px; padding:30px 25px; background:var(--paper); border:1px solid var(--property-line); border-top:3px solid var(--property-accent); scroll-margin-top:110px; }
.property-enquiry h2 { font-size:36px; margin:0 0 20px; }
.property-enquiry > p:not(.property-eyebrow) { font-size:13px; color:var(--muted); }
.property-enquiry .property-button { display:flex; margin:24px 0 10px; padding-inline:13px; gap:10px; font-size:11px; }
.property-related { border-top:1px solid var(--line); padding-top:55px; }
.property-related > h2 { font-size:clamp(36px,4vw,55px); margin:0 0 35px; }
.property-noscript { margin:25px 0; padding:22px; border:1px solid var(--line); line-height:1.7; }
@media (hover:hover) {
  .property-card-image:hover .property-media > img,.property-gallery-image:hover .property-media > img { transform:scale(1.04); }
  .property-card h2 a:hover { text-decoration:underline; }
  .property-section-nav a:hover { text-decoration:underline; text-underline-offset:6px; }
}
@media (max-width:1100px) {
  .property-filter-panel form { grid-template-columns:1fr 1fr 1fr; }
  .property-keyword-field { grid-column:span 2; }
  .property-card-body { padding:23px; }
  .property-grid { gap:25px; }
  .property-card-bottom { flex-wrap:wrap; }
  .property-detail-hero { gap:35px; }
  .property-detail-body { grid-template-columns:minmax(0,1fr) 270px; gap:38px; }
  .property-enquiry { padding:25px 20px; }
}
@media (max-width:760px) {
  .property-page main { padding-top:calc(var(--header-height) + 20px); padding-bottom:65px; }
  .property-preview-notice { display:block; padding:17px; margin-bottom:25px; font-size:12px; }
  .property-preview-notice a { display:inline-block; margin-top:6px; }
  .property-collection-intro { grid-template-columns:1fr; gap:25px; padding:20px 0 35px; }
  .property-collection-intro h1 { font-size:57px; }
  .property-intro-note { justify-self:start; max-width:430px; }
  .property-intro-note p { margin-bottom:15px; }
  .property-filter-panel { padding:20px 17px; }
  .property-filter-panel form { grid-template-columns:1fr 1fr; gap:20px 15px; }
  .property-filter-panel input,.property-filter-panel select,.property-sort select { font-size:16px; }
  .property-keyword-field { grid-column:auto; }
  .property-filter-panel .property-button { grid-column:1/-1; width:100%; }
  .property-results-bar { padding:20px 0; gap:7px; }
  .property-sort { gap:7px; }
  .property-sort select { font-size:14px; max-width:160px; }
  .property-sort > span { position:absolute; width:1px; height:1px; clip-path:inset(50%); overflow:hidden; }
  .property-grid { grid-template-columns:1fr; gap:30px; }
  .property-card-body { padding:22px; }
  .property-card h2 { font-size:38px; }
  .property-card .property-button { padding-inline:17px; gap:13px; }
  .property-card-bottom { flex-wrap:nowrap; }
  .property-card-price strong { font-size:26px; }
  .property-art-top { inset:21px 23px auto; }
  .property-art-caption { inset:auto 23px 18px; }
  .property-detail-hero { grid-template-columns:1fr; gap:30px; padding-bottom:28px; }
  .property-detail-intro h1 { font-size:57px; }
  .property-detail-visual .property-media { aspect-ratio:6/5; }
  .property-detail-facts { grid-template-columns:1fr 1fr; gap:24px; padding:24px 20px; }
  .property-detail-facts dd { font-size:15px; }
  .property-section-nav { gap:25px; }
  .property-detail-body { grid-template-columns:1fr; gap:0; padding-top:38px; }
  .property-detail-section { padding-bottom:35px; margin-bottom:38px; }
  .property-detail-section h2 { font-size:37px; }
  .property-enquiry { position:static; margin:0 0 40px; padding:28px; }
  .property-enquiry .property-button { display:inline-flex; font-size:12px; padding:14px 22px; margin-right:20px; }
  .property-enquiry .property-text-link { display:flex; }
  .property-brochure { padding:22px; gap:18px; }
  .property-brochure .property-button { width:100%; }
  .property-gallery { gap:12px; }
  .property-gallery .property-art { aspect-ratio:4/5; }
  .property-gallery .property-art-caption { line-height:1.6; }
  .property-related { padding-top:40px; }
}
@media (max-width:380px) {
  .property-collection-intro h1,.property-detail-intro h1 { font-size:49px; }
  .property-card-body { padding:19px; }
  .property-card h2 { font-size:34px; }
  .property-card-bottom { flex-wrap:wrap; }
  .property-card-bottom .property-button { width:100%; }
  .property-results-info { gap:12px; }
  .property-filter-panel form { grid-template-columns:1fr; }
  .property-gallery { grid-template-columns:1fr; }
  .property-gallery .property-art { aspect-ratio:8/5; }
}
@media (prefers-reduced-motion:reduce) {
  .property-media > img,.property-gallery-image .property-media > img { transition:none; transform:none!important; }
}

/* Brochure palette on project headings; keep complete plan sheets readable. */
#property-detail h1, #property-detail h2 { color:var(--property-ink); }
.property-gallery-image .property-media { aspect-ratio:auto; }
.property-gallery-image .property-media > img { display:block; height:auto; object-fit:contain; }
