/* خانه‌نو — RAJ demo / all replaceable theme tokens live here */
:root {
  --primary: #203b3f;
  --secondary: #d9cab4;
  --accent: #b87548;
  --accent-dark: #74442e;
  --background: #f4f0e8;
  --surface: #fffcf6;
  --surface-2: #eae3d7;
  --ink: #1e2927;
  --muted: #6d746c;
  --border: rgba(30,41,39,.16);
  --success: #527b5f;
  --warning: #c48a42;
  --container: min(1220px, calc(100% - 64px));
  --space-1: .5rem; --space-2: 1rem; --space-3: 1.5rem; --space-4: 2rem; --space-5: 3rem; --space-6: 4.5rem; --space-7: 7rem;
  --radius-sm: 8px; --radius-md: 18px; --radius-lg: 28px;
  --shadow-soft: 0 18px 40px rgba(34,46,42,.12);
  --ease: cubic-bezier(.2,.75,.2,1); --ease-emphasis: cubic-bezier(.17,.84,.44,1);
  --header-h: 80px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--background); }
body { margin: 0; color: var(--ink); background: var(--background); font-family: Tahoma, "Arial", sans-serif; font-size: 15px; line-height: 1.8; overflow-x: hidden; }
body:has(dialog[open]), body.menu-open { overflow: hidden; }
::selection { background: var(--secondary); color: var(--ink); }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.container { width: var(--container); margin: 0 auto; }
.skip-link { position: fixed; right: 12px; top: -90px; background: var(--surface); color: var(--ink); padding: 8px 15px; z-index: 99; border-radius: 7px; font-size: 13px; transition: top .2s; }
.skip-link:focus { top: 12px; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.cursor-glow { width: 330px; height: 330px; border-radius: 50%; position: fixed; pointer-events: none; z-index: 20; background: radial-gradient(circle, rgba(216,197,172,.25), transparent 67%); transform: translate(-50%, -50%); opacity: 0; transition: opacity .25s; mix-blend-mode: multiply; }
body:hover .cursor-glow { opacity: 1; }
.eyebrow { display: flex; align-items: center; gap: 10px; font-size: 11px; letter-spacing: .08em; margin: 0 0 18px; color: var(--muted); font-weight: bold; }
.eyebrow span { height: 1px; width: 32px; background: currentColor; display: inline-block; }
.eyebrow.light { color: #f9f2e8; }
h1,h2,h3,p { margin-top: 0; }
h1,h2 { font-weight: 400; letter-spacing: -.05em; line-height: 1.13; }
h1 em,h2 em { color: var(--accent); font-style: normal; font-family: Georgia, 'Times New Roman', serif; font-weight: 400; letter-spacing: -.06em; }
h2 { font-size: clamp(2.55rem, 5.3vw, 5.1rem); margin-bottom: 24px; }
.button { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 27px; padding: 10px 18px 10px 12px; border: 1px solid transparent; border-radius: 100px; transition: transform .35s var(--ease), background .35s, color .35s, box-shadow .35s; font-weight: bold; font-size: 13px; }
.button:hover { transform: translateY(-3px); box-shadow: 0 10px 21px rgba(0,0,0,.16); }
.button span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; font-size: 16px; direction: ltr; }
.button-dark { background: var(--primary); color: #fffaf1; }
.button-dark span { background: rgba(255,255,255,.12); }
.button-light { background: #fffcf5; color: var(--ink); }
.button-light span { background: var(--secondary); }
.text-link { appearance: none; border: none; border-bottom: 1px solid currentColor; padding: 0 0 4px; background: none; color: var(--ink); line-height: 1.4; font-weight: bold; font-size: 13px; transition: color .2s; }
.text-link:hover { color: var(--accent-dark); }
.text-link span { display: inline-block; padding-right: 12px; font-size: 17px; }
.site-header { height: var(--header-h); padding: 0 max(32px, calc((100% - 1220px)/2)); display: flex; align-items: center; justify-content: space-between; gap: 22px; position: absolute; top: 0; inset-inline: 0; z-index: 10; color: #fffcf5; border-bottom: 1px solid rgba(255,255,255,.18); transition: background .3s, color .3s, height .3s, box-shadow .3s; }
.site-header.scrolled { position: fixed; background: rgba(255,252,246,.94); color: var(--ink); height: 68px; backdrop-filter: blur(10px); box-shadow: 0 4px 22px rgba(23,37,34,.08); }
.brand { display: flex; gap: 9px; align-items: center; flex: 0 0 auto; line-height: 1; }
.brand b { display: block; font-size: 20px; letter-spacing: -.06em; }
.brand small { display: block; font-family: Arial, sans-serif; letter-spacing: .14em; font-size: 7px; margin-top: 5px; direction: ltr; text-align: left; opacity: .85; }
.brand-mark { width: 33px; height: 35px; position: relative; display: inline-block; }
.brand-mark i { position: absolute; bottom: 0; width: 9px; border: 1.5px solid currentColor; border-bottom: 0; display: block; }
.brand-mark i:nth-child(1){height: 12px; right: 0}.brand-mark i:nth-child(2){height: 25px; right: 10px}.brand-mark i:nth-child(3){height: 19px; right: 20px}
.desktop-nav { margin-right: auto; margin-left: auto; display: flex; gap: 28px; font-size: 12px; }
.desktop-nav a { opacity: .82; transition: opacity .2s; }.desktop-nav a:hover { opacity: 1; }
.header-actions { display: flex; align-items: center; gap: 9px; }
.icon-button, .circle-heart { background: transparent; color: inherit; border: none; position: relative; display: grid; place-items: center; width: 42px; height: 42px; }
.icon-button svg,.circle-heart svg { width: 20px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.saved-count { position: absolute; top: 1px; left: 2px; min-width: 15px; height: 15px; padding: 0 3px; border-radius: 50%; background: var(--accent); color: #fff; display: grid; place-items: center; font: 700 9px Arial, sans-serif; }
.header-cta { min-height: 42px; padding-right: 14px; gap: 11px; font-size: 11px; }.header-cta span { width: 24px; height: 24px; }
.menu-button { display: none; border: none; background: none; padding: 7px; color: inherit; }.menu-button span { display: block; width: 23px; height: 1px; background: currentColor; margin: 5px; transition: transform .2s; }
.menu-button.active span:first-child { transform: translateY(3px) rotate(45deg); }.menu-button.active span:last-child { transform: translateY(-3px) rotate(-45deg); }
.mobile-menu { position: fixed; z-index: 9; top: var(--header-h); inset-inline: 0; background: var(--background); padding: 28px max(25px, calc((100vw - 1220px)/2)) 40px; border-bottom: 1px solid var(--border); box-shadow: var(--shadow-soft); }.mobile-menu[hidden] { display: none; }.mobile-menu a:not(.menu-phone) { display: flex; justify-content: space-between; font-size: 25px; line-height: 2.3; border-bottom: 1px solid var(--border); }.mobile-menu a span { color: var(--accent); font: 12px Arial; align-self: center; }.menu-phone { display: inline-block; direction: ltr; margin-top: 20px; color: var(--accent-dark); font-weight: bold; }
/* hero */
.hero { min-height: min(800px, 100vh); color: #fffcf5; position: relative; isolation: isolate; display: flex; align-items: center; overflow: hidden; background: var(--primary); }
.hero-photo { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(13,32,34,.87) 0%, rgba(18,37,37,.43) 45%, rgba(16,31,30,.1) 100%), url('assets/hero-isfahan-villa.jpg') center / cover no-repeat; z-index: -3; animation: heroBreathe 14s ease-in-out infinite alternate; }
.hero:after { content: ''; position: absolute; inset: auto 0 0; height: 34%; background: linear-gradient(transparent, rgba(8,20,20,.52)); z-index: -2; }
.hero-grain { position: absolute; z-index: -1; inset: 0; pointer-events: none; opacity: .18; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E"); mix-blend-mode: screen; }
.hero-plan { opacity: .6; position: absolute; left: 8%; top: 13%; width: 29vw; height: 34vw; max-width: 430px; max-height: 430px; border: 1px solid rgba(253,246,234,.27); transform: rotate(7deg); pointer-events: none; }
.plan-line { position: absolute; background: rgba(253,246,234,.35); }.p1 { width: 48%; height: 1px; top: 34%; right: -16%; }.p2 { height: 59%; width: 1px; left: 28%; top: -15%; }.p3 { width: 55%; height: 1px; bottom: 13%; left: -15%; }.plan-dot { width: 5px; height: 5px; display: block; position: absolute; background: var(--secondary); border-radius: 50%; }.d1 { top: 32%; left: 27%; }.d2 { bottom: 11%; right: 35%; }
.hero-copy { margin-top: 70px; }.hero h1 { font-size: clamp(4.2rem, 8.7vw, 8.1rem); margin: 0 0 25px; max-width: 850px; }.hero h1 em { color: var(--secondary); }.hero-intro { max-width: 405px; font-size: 14px; line-height: 2; color: rgba(255,252,245,.87); }.hero-actions { display: flex; align-items: center; gap: 25px; margin-top: 25px; }.play-story { color: #fff; border: 0; background: none; padding: 8px 0; font-weight: bold; font-size: 12px; }.play-story span { border: 1px solid rgba(255,255,255,.55); width: 30px; height: 30px; border-radius: 50%; display: inline-grid; place-items: center; margin-left: 8px; direction: ltr; transition: background .25s; }.play-story:hover span { background: rgba(255,255,255,.15); }
.hero-bottom { position: absolute; inset-inline: 0; bottom: 22px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: end; font-size: 11px; }.hero-address { opacity: .85; display: flex; align-items: center; gap: 6px; }.pin { font-size: 20px; }.featured-pill { display: flex; direction: rtl; align-items: center; gap: 9px; min-width: 205px; padding: 8px; border: 1px solid rgba(255,255,255,.35); border-radius: 100px; background: rgba(13,33,32,.2); backdrop-filter: blur(6px); line-height: 1.35; transition: transform .25s,background .25s; }.featured-pill:hover { transform: translateY(-4px); background: rgba(13,33,32,.45); }.featured-pill b { font-size: 11px; }.featured-pill i { font-style: normal; margin-right: auto; font-size: 17px; }.pill-thumb { width: 32px; height: 32px; border-radius: 50%; background: url('assets/hero-isfahan-villa.jpg') center / cover; }.scroll-cue { justify-self: end; writing-mode: vertical-rl; display: flex; gap: 8px; align-items: center; opacity: .85; }.scroll-cue span { width: 1px; height: 28px; background: currentColor; }
/* intro */
.intro-section { padding: var(--space-7) 0 6.5rem; display: grid; grid-template-columns: 1fr 2.2fr 1fr; gap: 30px; }.section-no { font-family: Arial, sans-serif; letter-spacing: .11em; font-size: 10px; color: var(--muted); padding-top: 8px; }.intro-statement h2 { margin-bottom: 25px; }.intro-statement>p:last-child { max-width: 430px; font-size: 15px; line-height: 2; color: var(--muted); }.intro-metrics { align-self: end; border-top: 1px solid var(--border); }.intro-metrics div { border-bottom: 1px solid var(--border); padding: 11px 0; display: flex; align-items: center; gap: 16px; }.intro-metrics strong { font-size: 28px; font-family: Georgia,serif; font-weight: normal; line-height: 1; color: var(--accent-dark); direction: ltr; }.intro-metrics span { font-size: 10px; line-height: 1.55; color: var(--muted); }
/* discover */
.discover-section { background: var(--surface-2); padding: 6.3rem 0 5.6rem; position: relative; }.discover-section:before { content:""; position:absolute; top:-1px; height:38px; inset-inline:0; background:var(--background); clip-path: polygon(0 0,100% 0,100% 32%,94% 52%,86% 33%,78% 61%,68% 37%,58% 61%,45% 27%,34% 59%,19% 32%,10% 60%,0 36%); }.discover-head { display: flex; justify-content: space-between; align-items: end; gap: 50px; }.discover-head h2 { margin-bottom: 0; }.discover-head>p { max-width: 310px; color: var(--muted); font-size: 13px; line-height: 2; margin-bottom: 8px; }.discover-controls { margin-top: 46px; display: flex; justify-content: space-between; align-items: center; gap: 18px; padding-bottom: 15px; border-bottom: 1px solid var(--border); position: relative; }.filter-group { display: flex; gap: 7px; flex-wrap: wrap; }.filter-chip { border: 1px solid transparent; padding: 8px 10px; color: var(--muted); border-radius: 100px; background: transparent; font-size: 12px; transition: all .2s; }.filter-chip span { opacity: .6; font-size: 9px; }.filter-chip.active,.filter-chip:hover { color: var(--ink); background: var(--surface); border-color: rgba(30,41,39,.1); }.filter-extra { display: flex; align-items: center; gap: 17px; }.select-control,.icon-text-button { appearance:none; border:0; background:none; color:var(--ink); font-size:12px; padding: 8px 3px; }.select-control span { color:var(--accent-dark); font-size:16px; padding-right:9px; }.icon-text-button { border-right:1px solid var(--border); padding-right:17px; display:flex; gap:7px; align-items:center; }.icon-text-button svg { width:18px; stroke:currentColor; fill:none; stroke-width:1.5; }.area-menu { position:absolute; z-index:3; top:50px; left:85px; background:var(--surface); box-shadow:var(--shadow-soft); padding:7px; width:150px; }.area-menu button { width:100%; text-align:right; border:0; background:none; padding:8px; font-size:12px; color:var(--muted); }.area-menu button:hover { background:var(--surface-2); color:var(--ink); }
.property-grid { display: grid; grid-template-columns: repeat(12,1fr); gap: 28px 18px; padding-top: 28px; }.property-card { position: relative; grid-column: span 4; min-width:0; animation: reveal .55s var(--ease) both; }.property-card.large { grid-column: span 7; }.property-card.tall { grid-column: span 5; }.property-visual { height: 266px; position:relative; overflow:hidden; background:var(--primary); }.property-card.large .property-visual { height: 394px; }.property-card.tall .property-visual { height: 394px; }.property-open-hit { position:absolute; inset:0; z-index:1; border:0; padding:0; background:transparent; cursor:pointer; }.property-visual img { width:100%; height:100%; object-fit:cover; transition: transform .75s var(--ease); filter:saturate(.86); }.property-card:hover .property-visual img { transform:scale(1.055); }.property-badge { position:absolute; top:12px; right:12px; background:rgba(255,252,246,.92); font-size:10px; padding:4px 9px; border-radius:100px; color:var(--ink); }.property-card .favorite-button { position:absolute; top:5px; left:5px; color:white; border-radius:50%; background:rgba(20,40,39,.2); backdrop-filter:blur(4px); }.favorite-button.is-favorite { background:var(--accent); color:#fff; }.favorite-button.is-favorite svg { fill:currentColor; }.property-info { padding-top:12px; display:grid; grid-template-columns:1fr auto; gap:8px; align-items:start; }.property-type { font-size:10px; color:var(--muted); display:block; }.property-info h3 { margin:1px 0 5px; font-size:18px; font-weight:normal; letter-spacing:-.04em; }.property-meta { font-size:10px; color:var(--muted); }.property-price { align-self:center; direction:rtl; text-align:left; font-size:13px; font-weight:bold; white-space:nowrap; }.property-price small { display:block; font-size:9px; font-weight:normal; color:var(--muted); }.load-row { text-align:center; padding-top:40px; }.property-empty { grid-column:1/-1; padding:60px 10px; text-align:center; color:var(--muted); }
/* signature */
.signature-section { background:var(--primary); color:#fffaf1; padding:7rem 0; }.lens-layout { display:grid; grid-template-columns:4fr 6fr; gap:clamp(30px,7vw,105px); align-items:center; }.lens-copy h2 { color:#fffaf1; }.lens-copy h2 em { color:var(--secondary); }.lens-copy>p:not(.eyebrow) { max-width:340px; color:rgba(255,255,255,.7); line-height:2; font-size:13px; }.lens-notes { margin-top:36px; display:flex; flex-direction:column; max-width:360px; }.lens-note { border:0; color:rgba(255,255,255,.62); padding:14px 0; background:transparent; border-top:1px solid rgba(255,255,255,.18); text-align:right; display:flex; gap:13px; align-items:center; font-size:13px; transition:color .2s,padding .2s; }.lens-note b { font: 11px Arial; color:var(--secondary); }.lens-note.active,.lens-note:hover { color:#fff; padding-right:11px; }.lens-stage { position:relative; padding-bottom:46px; }.lens-image { position:relative; height:500px; background:url('assets/penthouse-interior.jpg') center / cover; overflow:hidden; }.lens-image:after { content:""; position:absolute; inset:0; background:linear-gradient(150deg,rgba(8,21,21,.04),rgba(8,21,21,.3)); pointer-events:none; }.hotspot { z-index:1; position:absolute; color:#fff; background:none; border:0; padding:0; display:flex; flex-direction:column; align-items:center; gap:4px; font-size:10px; }.hotspot span { width:31px; height:31px; display:grid; place-items:center; background:var(--accent); border-radius:50%; box-shadow:0 0 0 7px rgba(255,252,245,.17); font-size:19px; line-height:1; transition:transform .2s,background .2s; }.hotspot:hover span,.hotspot.active span { transform:scale(1.15); background:#e5a45c; }.hotspot i { font-style:normal; opacity:0; transform:translateY(-4px); transition:.2s; background:rgba(21,41,39,.7); padding:0 5px; }.hotspot:hover i,.hotspot.active i {opacity:1;transform:none}.hs-light{top:26%;right:26%}.hs-material{bottom:27%;right:56%}.hs-systems{bottom:16%;left:13%}.lens-detail { position:absolute; z-index:2; min-height:136px; width:245px; bottom:0; left:-33px; padding:20px 20px 14px; background:var(--surface); color:var(--ink); box-shadow:0 15px 32px rgba(0,0,0,.2); }.lens-detail .detail-no { font:10px Arial; color:var(--accent-dark); }.lens-detail h3 { font-weight:normal; font-size:20px; margin:2px 0 5px; letter-spacing:-.04em; }.lens-detail p { font-size:10px; line-height:1.8; color:var(--muted); margin:0; }.lens-caption { position:absolute; right:0; bottom:4px; font-size:10px; color:rgba(255,255,255,.57); margin:0; }.lens-caption b { color:var(--secondary); }
/* spotlight */
.spotlight-section { padding:7rem 0 0; }.spotlight-top { display:flex; justify-content:space-between; align-items:end; gap:30px; padding-bottom:36px; }.spotlight-top h2 { margin:0; }.spotlight-top>p { max-width:270px; color:var(--muted); font-size:13px; line-height:2; margin:0 0 6px; }.spotlight-image { width:min(1380px, calc(100% - 64px)); margin:0 auto; height: min(59vw, 650px); min-height:380px; background:linear-gradient(0deg, rgba(8,25,24,.44), transparent 48%),url('assets/hero-isfahan-villa.jpg') center / cover; position:relative; }.spotlight-overlay { position:absolute; top:20px; inset-inline:24px; color:#fff; font-size:10px; display:flex; justify-content:space-between; }.view-gallery { position:absolute; bottom:22px; left:24px; border:none; background:rgba(255,252,245,.95); padding:11px 16px; color:var(--ink); font-size:11px; border-radius:100px; transition:transform .2s; }.view-gallery:hover { transform:translateY(-3px); }.view-gallery span { padding-right:9px; font-size:15px; }.spotlight-data { padding:26px 0 6.3rem; display:grid; grid-template-columns:1.35fr 2.25fr 1fr; gap:26px; align-items:center; }.spotlight-price>span { font-size:10px; color:var(--muted); }.spotlight-price strong { font:400 clamp(2rem,3vw,3.1rem) Georgia,serif; direction:rtl; letter-spacing:-.07em; line-height:1.15; display:block; }.spotlight-price strong small { font:11px Tahoma,sans-serif; letter-spacing:0; }.spotlight-price p { font-size:10px; color:var(--muted); margin:4px 0 0; }.spotlight-data dl { margin:0; display:grid; grid-template-columns:repeat(4,1fr); border-right:1px solid var(--border); }.spotlight-data dl div { padding:0 20px; border-left:1px solid var(--border); }.spotlight-data dt { font:26px Georgia,serif; direction:ltr; color:var(--accent-dark); }.spotlight-data dd { margin:0; color:var(--muted); font-size:10px; }.spotlight-actions { display:flex; justify-content:end; gap:9px; }.circle-heart { width:52px;height:52px;border:1px solid var(--border); border-radius:50%; }.circle-heart:hover { border-color:var(--accent);color:var(--accent-dark); }
/* neighborhood */
.neighborhood-section { background:var(--surface-2); padding:6.4rem 0; }.neighborhood-head { display:flex; justify-content:space-between; align-items:end; gap:35px; }.neighborhood-head h2 { margin:0; }.neighborhood-head>p { max-width:290px; color:var(--muted); font-size:13px; line-height:2; }.neighborhood-layout { display:grid; grid-template-columns:1.65fr 1fr; gap:0; margin-top:45px; background:var(--surface); }.map-panel { height:454px; overflow:hidden; position:relative; background:#d8ddd2; }.map-grid { position:absolute; inset:-35px; opacity:.65; background-image:linear-gradient(27deg, transparent 45%,#bec9bd 46%,#bec9bd 48%,transparent 49%),linear-gradient(115deg,transparent 45%,#c1cabf 46%,#c1cabf 48%,transparent 49%),linear-gradient(0deg,transparent 47%,#b9c3b9 48%,#b9c3b9 50%,transparent 51%); background-size:72px 55px,86px 92px,120px 70px; transform:rotate(-8deg) scale(1.2); }.river { position:absolute; top:-20px; right:-45px; width:145%; height:160px; border:28px solid #9ebfc1; border-color:#9ebfc1 transparent transparent transparent; border-radius:50%; transform:rotate(13deg); opacity:.85; }.map-label { position:absolute; font-size:11px; color:#526258; background:#e7e9dc; padding:2px 7px; }.l1{right:17%;top:35%}.l2{right:53%;bottom:23%}.l3{left:12%;bottom:33%}.map-marker { position:absolute; border:0; width:26px;height:26px;border-radius:50% 50% 50% 0; transform:rotate(-45deg); background:var(--primary); display:grid;place-items:center; box-shadow:0 4px 10px rgba(30,41,39,.25); transition:transform .25s,background .25s; }.map-marker i { width:8px;height:8px;border-radius:50%;background:var(--secondary); }.map-marker:hover,.map-marker.active { transform:rotate(-45deg) scale(1.2); background:var(--accent-dark); }.marker-jolfa{right:23%;top:44%}.marker-mardavij{right:57%;bottom:29%}.marker-sepahan{left:17%;bottom:39%}.map-compass { position:absolute; left:18px; top:14px; color:#40554d; font:11px Arial; text-align:center; }.map-compass span { display:block;font-size:25px;transform:rotate(-30deg); }.map-credit { position:absolute; bottom:9px; right:16px; margin:0; color:#607168; font-size:9px; }.neighborhood-info { padding:43px 38px; display:flex; flex-direction:column; align-items:flex-start; }.place-kicker { font-size:10px;color:var(--accent-dark); }.neighborhood-info h3 { font-size:34px;letter-spacing:-.06em;font-weight:normal;margin:3px 0 10px; }.neighborhood-info>p { color:var(--muted);font-size:12px;line-height:2;margin:0 0 22px; }.place-traits { width:100%;border-top:1px solid var(--border); }.place-traits div { display:flex;justify-content:space-between;border-bottom:1px solid var(--border);padding:8px 0;font-size:10px; }.place-traits span:last-child { color:var(--accent-dark); }.neighborhood-info .text-link { margin-top:auto; }
/* trust */
.trust-section { padding:6.5rem 0; display:grid;grid-template-columns:1fr 2fr;gap:70px; }.trust-label h2 { font-size:clamp(2.5rem,4vw,4rem); }.trust-items { display:grid;grid-template-columns:repeat(3,1fr); gap:25px;align-self:end; }.trust-items article { border-top:1px solid var(--border);padding-top:14px; }.trust-items span { font:11px Arial;color:var(--accent-dark); }.trust-items h3 { font-size:17px;line-height:1.6;font-weight:normal;letter-spacing:-.03em;margin:11px 0 8px; }.trust-items p { color:var(--muted);font-size:11px;line-height:2;margin:0; }
/* journal */
.journal-section { background:var(--surface-2);padding:5.7rem 0 6.7rem;overflow:hidden; }.journal-head { display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:30px;margin-bottom:35px; }.journal-head h2 { margin:0; }.journal-head .eyebrow { grid-column:1/-1;margin:0; }.journal-head .text-link { margin-bottom:8px; }.journal-scroll { display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:16px; }.journal-card { min-height:390px;display:grid;grid-template-rows:1fr auto; padding:18px;background:var(--surface); }.journal-card>div:last-child { padding:20px 3px 0;position:relative; }.journal-card span { color:var(--muted);font-size:10px; }.journal-card h3 { font-weight:normal;letter-spacing:-.04em;line-height:1.45;font-size:21px;max-width:250px;margin:8px 0 0; }.journal-card a { position:absolute;bottom:0;left:2px;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--primary);color:white;transition:transform .2s; }.journal-card a:hover { transform:translate(-3px,-3px); }.article-art { position:relative;overflow:hidden; }.art-sun { background:var(--primary); }.art-sun:after { content:"";position:absolute;width:190px;height:190px;border-radius:50%;background:#f2bc67;top:24%;right:22%;box-shadow:0 0 0 18px rgba(242,188,103,.08); }.art-sun i { position:absolute;bottom:0;right:0;width:65%;height:62%;border-left:1px solid rgba(255,255,255,.5);background:linear-gradient(90deg,transparent 72%,rgba(255,255,255,.25) 72%,rgba(255,255,255,.25) 73%,transparent 73%);z-index:1; }.art-plan { background:#d9cab4; background-image:linear-gradient(90deg,transparent 49%,rgba(32,59,63,.45) 50%,transparent 51%),linear-gradient(0deg,transparent 49%,rgba(32,59,63,.45) 50%,transparent 51%);background-size:75px 75px; }.art-plan i { position:absolute;border:1px solid var(--primary);display:block; }.art-plan i:nth-child(1){top:26%;left:18%;width:47%;height:38%}.art-plan i:nth-child(2){top:38%;right:10%;width:27%;height:37%}.art-plan i:nth-child(3){bottom:7%;left:34%;width:41%;height:24%;border-top:0}.art-tile { background-color:#bd7045;background-image:linear-gradient(30deg,#a65c39 12%,transparent 12.5%,transparent 87%,#a65c39 87.5%,#a65c39),linear-gradient(150deg,#a65c39 12%,transparent 12.5%,transparent 87%,#a65c39 87.5%,#a65c39),linear-gradient(30deg,#a65c39 12%,transparent 12.5%,transparent 87%,#a65c39 87.5%,#a65c39),linear-gradient(150deg,#a65c39 12%,transparent 12.5%,transparent 87%,#a65c39 87.5%,#a65c39),linear-gradient(60deg,#d39464 25%,transparent 25.5%,transparent 75%,#d39464 75%,#d39464);background-size:80px 140px;background-position:0 0,0 0,40px 70px,40px 70px,0 0; }
/* visit/footer */
.visit-section { background:var(--primary);color:#fffaf1;padding:7rem 0; }.visit-layout { display:grid;grid-template-columns:1.35fr 1fr;gap:9vw; }.visit-copy h2 { color:#fffaf1;margin:0 0 22px; }.visit-copy h2 em { color:var(--secondary); }.visit-copy>p:not(.eyebrow) { max-width:410px;color:rgba(255,255,255,.7);font-size:13px;line-height:2; }.phone-display { display:block;direction:ltr;text-align:right;width:max-content;font:24px Georgia,serif;letter-spacing:.04em;margin-top:36px;color:var(--secondary); }.phone-display b { font-weight:normal;font-size:35px; }.phone-display small { display:block;color:rgba(255,255,255,.55);font:10px Tahoma,sans-serif;letter-spacing:0;text-align:right;margin-top:5px; }.visit-form { padding-top:19px; }.visit-form label { display:block;color:rgba(255,255,255,.76);font-size:11px;margin-bottom:16px; }.visit-form input,.visit-form select { border:0;border-bottom:1px solid rgba(255,255,255,.32);background:transparent;color:#fff;padding:7px 0 9px;width:100%;outline:none;border-radius:0;font-size:14px; }.visit-form input::placeholder { color:rgba(255,255,255,.35); }.visit-form select option { color:var(--ink); }.visit-form .button { margin-top:12px;min-width:205px; }.field-error { min-height:14px;color:#efbf92;display:block;font-size:9px; }.form-note { font-size:9px;color:rgba(255,255,255,.5);margin-top:11px; }.site-footer { background:#172b2d;color:#fffaf1; }.footer-main { padding:4.5rem 0 3rem;display:grid;grid-template-columns:1.4fr 1.3fr 1fr auto;gap:25px;align-items:start; }.footer-brand .brand-mark { color:var(--secondary); }.footer-main>p { margin:0;color:rgba(255,255,255,.57);font-size:11px;line-height:2; }.footer-links { display:grid;grid-template-columns:1fr 1fr;gap:8px; font-size:11px; color:rgba(255,255,255,.75); }.footer-links a:hover { color:var(--secondary); }.socials { display:flex;gap:6px; }.socials a { width:29px;height:29px;border-radius:50%;border:1px solid rgba(255,255,255,.45);display:grid;place-items:center;font:9px Arial;direction:ltr; }.footer-bottom { border-top:1px solid rgba(255,255,255,.17);padding:13px 0;display:flex;justify-content:space-between;color:rgba(255,255,255,.43);font-size:9px; }.footer-bottom a { color:rgba(255,255,255,.75); }
/* modal */
dialog { max-width:none; }.modal { width:min(850px,calc(100% - 30px));padding:0;border:0;color:var(--ink);background:var(--surface);box-shadow:0 25px 90px rgba(6,19,18,.4); }.modal::backdrop { background:rgba(14,29,28,.72);backdrop-filter:blur(4px); }.modal-close { position:absolute;z-index:4;top:13px;left:13px;width:36px;height:36px;border-radius:50%;border:0;background:rgba(255,252,246,.93);color:var(--ink);font-size:26px;line-height:1; }.modal-close:hover { background:var(--secondary); }.property-modal-layout { display:grid;grid-template-columns:1.13fr 1fr;min-height:520px; }.modal-photo { position:relative;min-height:360px;background-size:cover;background-position:center; }.modal-photo .property-badge { top:15px;right:15px; }.modal-body { padding:48px 40px 33px; }.modal-body h2 { font-size:47px;margin:4px 0 10px; }.modal-body>p { color:var(--muted);font-size:12px;line-height:2;margin-bottom:16px; }.modal-location { font-size:11px;color:var(--accent-dark); }.modal-specs { display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border);margin:17px 0; }.modal-specs div { padding:8px 0;border-bottom:1px solid var(--border);font-size:11px; }.modal-specs span { color:var(--muted); }.modal-specs b { float:left;font-weight:normal; }.modal-systems { font-size:10px;line-height:1.9;margin-bottom:19px; }.modal-systems strong { display:block;font-size:11px; }.search-modal,.saved-modal { width:min(670px,calc(100% - 30px));padding:52px 46px 42px;min-height:350px; }.search-modal h2,.saved-modal h2 { font-size:42px;margin:0 0 19px; }.search-box { display:flex;align-items:center;border-bottom:1px solid var(--ink);padding:0 0 8px;gap:8px; }.search-box span { font:27px Arial;transform:rotate(-20deg); }.search-box input { border:0;background:none;outline:0;width:100%;font-size:15px; }.search-results,.saved-list { margin-top:20px;display:grid;gap:8px; }.search-result,.saved-row { border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;padding:8px 0;text-align:right;background:none;border-inline:0;border-top:0;width:100%;color:var(--ink); }.search-result img,.saved-row img { width:54px;height:44px;object-fit:cover; }.search-result b,.saved-row b { font-size:13px;font-weight:normal;display:block; }.search-result span,.saved-row span { font-size:9px;color:var(--muted); }.search-result i { margin-right:auto;color:var(--accent-dark);font-style:normal; }.empty-message { color:var(--muted);font-size:12px; }.saved-row button { border:0;background:none;color:var(--accent-dark);margin-right:auto;font-size:12px; }.story-modal { width:min(700px,calc(100% - 30px));padding:46px 46px 40px; }.story-modal h2 { font-size:46px;margin:0 0 20px; }.story-modal>p:not(.eyebrow) { max-width:400px;color:var(--muted);font-size:13px;line-height:2; }.story-visual { position:absolute;left:0;bottom:0;width:35%;height:100%;background:var(--secondary);overflow:hidden;opacity:.85; }.story-visual span { position:absolute;border:1px solid var(--primary);bottom:0; }.story-visual span:nth-child(1){right:15%;height:29%;width:36%}.story-visual span:nth-child(2){right:39%;height:58%;width:38%}.story-visual span:nth-child(3){right:67%;height:43%;width:32%}.story-modal>*:not(.story-visual):not(.modal-close) { position:relative;z-index:1; }.gallery-modal { width:min(960px,calc(100% - 30px));padding:0;background:#132d2e; }.gallery-hero { height:min(73vh,620px);position:relative; }.gallery-hero img { width:100%;height:100%;object-fit:cover; }.gallery-hero span { position:absolute;bottom:12px;right:18px;color:white;font:11px Arial; }.gallery-thumbs { display:flex;padding:9px;gap:9px; }.gallery-thumbs img { width:80px;height:52px;object-fit:cover;opacity:.65;border:1px solid transparent; }.gallery-thumbs img:hover { opacity:1;border-color:var(--secondary); }
.toast { position:fixed;z-index:30;bottom:26px;right:50%;transform:translate(50%,130px);background:var(--primary);color:#fff;box-shadow:var(--shadow-soft);padding:10px 18px;border-radius:100px;font-size:11px;transition:transform .45s var(--ease-emphasis); }.toast.show { transform:translate(50%,0); }.mobile-bottom-nav { display:none; }
@keyframes heroBreathe { to { transform:scale(1.035); } } @keyframes reveal { from { opacity:0;transform:translateY(14px); } to { opacity:1;transform:none; } }
@media (max-width: 900px) { :root{--container:min(100% - 40px, 1220px)} .desktop-nav{display:none}.menu-button{display:block}.header-cta{display:none}.intro-section{grid-template-columns:1fr 2.2fr;}.intro-metrics{grid-column:2}.discover-head{display:block}.discover-head>p{margin-top:19px}.property-card{grid-column:span 6}.property-card.large{grid-column:span 7}.property-card.tall{grid-column:span 5}.lens-layout{grid-template-columns:1fr;}.lens-copy{display:grid;grid-template-columns:1fr 1fr;gap:0 30px}.lens-copy .eyebrow,.lens-copy h2{grid-column:1/-1}.lens-copy>p:not(.eyebrow){grid-column:1}.lens-notes{grid-column:2;grid-row:2/4;margin-top:0}.lens-stage{margin-top:20px}.neighborhood-layout{grid-template-columns:1.2fr 1fr}.neighborhood-info{padding:30px 25px}.spotlight-data{grid-template-columns:1fr 1.6fr}.spotlight-actions{grid-column:1/-1;justify-content:start}.trust-section{grid-template-columns:1fr;gap:20px}.trust-items{max-width:790px}.journal-scroll{overflow-x:auto;margin-left:0;width:100%;padding-right:20px;grid-template-columns:360px 300px 300px;scroll-snap-type:x mandatory}.journal-card{scroll-snap-align:start}.visit-layout{gap:55px}.footer-main{grid-template-columns:1fr 1fr}.socials{justify-self:end}.property-modal-layout{grid-template-columns:1fr 1fr}.modal-body{padding:40px 28px}.cursor-glow{display:none} }
@media (max-width: 620px) { :root { --container:calc(100% - 32px); --header-h:66px; } body{font-size:14px;padding-bottom:64px}.site-header{padding:0 16px}.brand b{font-size:18px}.brand-mark{width:29px}.brand-mark i{width:8px}.brand-mark i:nth-child(2){right:9px}.brand-mark i:nth-child(3){right:18px}.icon-button{width:38px;height:38px}.hero{min-height:735px;align-items:flex-start}.hero-photo{background-position:60% center}.hero-plan{width:57vw;height:57vw;top:10%;left:-9%;opacity:.4}.hero-copy{margin-top:143px}.hero h1{font-size:clamp(3.5rem,17vw,5.2rem);line-height:1.09}.hero-intro{font-size:12px;max-width:310px;line-height:2}.hero-actions{gap:13px;margin-top:21px}.play-story{font-size:10px}.play-story span{width:26px;height:26px}.hero-bottom{grid-template-columns:1fr auto;bottom:15px}.hero-address{grid-column:1/-1;margin-bottom:12px;font-size:9px}.featured-pill{min-width:185px;font-size:9px}.scroll-cue{font-size:9px}.intro-section{padding:5rem 0;display:block}.section-no{margin-bottom:20px}.intro-statement h2{font-size:clamp(2.4rem,12.2vw,4rem)}.intro-statement>p:last-child{font-size:13px}.intro-metrics{margin-top:30px;display:grid;grid-template-columns:repeat(3,1fr)}.intro-metrics div{display:block;padding:10px 8px;border-left:1px solid var(--border)}.intro-metrics div:last-child{border-left:0}.intro-metrics strong{font-size:21px;display:block;margin-bottom:5px}.intro-metrics span{font-size:8px}.discover-section{padding:5rem 0}.discover-head h2,.spotlight-top h2,.neighborhood-head h2{font-size:clamp(2.4rem,12.2vw,4.2rem)}.discover-head>p{font-size:12px}.discover-controls{align-items:flex-start;display:block;margin-top:30px}.filter-group{flex-wrap:nowrap;overflow:auto;padding-bottom:8px;margin-left:-16px;padding-left:16px}.filter-chip{white-space:nowrap;font-size:11px}.filter-extra{margin-top:5px;justify-content:space-between}.area-menu{left:auto;right:0;top:88px}.property-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px 12px;padding-top:22px}.property-card,.property-card.large,.property-card.tall{grid-column:span 1}.property-visual,.property-card.large .property-visual,.property-card.tall .property-visual{height:195px}.property-card:nth-child(3){grid-column:span 2}.property-card:nth-child(3) .property-visual{height:267px}.property-info{display:block;padding-top:8px}.property-info h3{font-size:16px;line-height:1.3;margin:3px 0 5px}.property-meta{font-size:9px}.property-price{text-align:right;font-size:12px;margin-top:5px}.property-card .favorite-button{width:34px;height:34px;top:3px;left:3px}.property-badge{top:8px;right:8px;font-size:8px}.signature-section{padding:5rem 0}.lens-layout{gap:20px}.lens-copy{display:block}.lens-copy h2{font-size:clamp(2.45rem,12vw,4rem)}.lens-copy>p:not(.eyebrow){font-size:12px}.lens-notes{margin-top:22px;flex-direction:row;gap:4px}.lens-note{flex:1;padding:9px 5px;display:block;line-height:1.5;font-size:10px}.lens-note b{display:block}.lens-note.active,.lens-note:hover{padding-right:5px}.lens-image{height:352px}.lens-detail{left:0;bottom:0;width:220px;min-height:124px;padding:16px}.lens-caption{font-size:8px}.hs-light{top:20%;right:29%}.spotlight-section{padding-top:5rem}.spotlight-top{display:block;padding-bottom:24px}.spotlight-top>p{font-size:12px;margin-top:13px}.spotlight-image{width:100%;min-height:340px;height:340px}.spotlight-overlay{inset-inline:16px;top:13px;font-size:9px}.view-gallery{bottom:14px;left:16px;font-size:10px}.spotlight-data{padding:20px 0 5rem;grid-template-columns:1fr;gap:20px}.spotlight-data dl{width:100%;}.spotlight-data dl div{padding:0 9px}.spotlight-data dt{font-size:21px}.spotlight-data dd{font-size:8px}.spotlight-actions{grid-column:auto}.neighborhood-section{padding:5rem 0}.neighborhood-head{display:block}.neighborhood-head>p{font-size:12px;margin-top:16px}.neighborhood-layout{grid-template-columns:1fr;margin-top:25px}.map-panel{height:300px}.neighborhood-info{min-height:300px;padding:26px 20px}.neighborhood-info h3{font-size:30px}.trust-section{padding:5rem 0}.trust-label h2{font-size:clamp(2.5rem,11vw,3.5rem)}.trust-items{grid-template-columns:1fr;gap:14px}.trust-items article{display:grid;grid-template-columns:33px 1fr}.trust-items span{grid-row:1/3}.trust-items h3{margin:0;font-size:15px}.trust-items p{grid-column:2;margin-top:4px;font-size:10px}.journal-section{padding:4.8rem 0}.journal-head{display:block;margin-bottom:25px}.journal-head h2{font-size:clamp(2.5rem,11vw,3.6rem);margin-bottom:18px}.journal-head .eyebrow{margin-bottom:15px}.journal-scroll{grid-template-columns:280px 260px 260px}.journal-card{min-height:350px}.visit-section{padding:5rem 0}.visit-layout{grid-template-columns:1fr;gap:28px}.visit-copy h2{font-size:clamp(2.4rem,11vw,3.7rem)}.phone-display{margin-top:25px}.visit-form{padding-top:0}.footer-main{padding:3.5rem 0 2rem;grid-template-columns:1.5fr 1fr;gap:30px 10px}.footer-main>p{font-size:10px}.footer-links{font-size:10px}.socials{justify-self:start}.footer-bottom{font-size:8px;gap:10px}.footer-bottom a{white-space:nowrap}.mobile-bottom-nav{z-index:8;position:fixed;bottom:0;inset-inline:0;height:64px;background:#fffdf8;box-shadow:0 -5px 20px rgba(23,37,34,.09);display:grid;grid-template-columns:1fr 1fr 1.25fr 1fr;align-items:center;color:var(--muted)}.mobile-bottom-nav a,.mobile-bottom-nav button{border:0;background:none;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:inherit;font:9px Tahoma}.mobile-bottom-nav span{font:20px Arial;line-height:1.1}.mobile-bottom-nav .mobile-visit{height:45px;background:var(--primary);color:white;border-radius:5px;align-self:center}.mobile-bottom-nav button{position:relative}.mobile-bottom-nav i{position:absolute;top:7px;left:50%;font:8px Arial;font-style:normal;color:var(--accent-dark)}.modal{width:calc(100% - 20px)}.property-modal-layout{grid-template-columns:1fr}.modal-photo{height:230px;min-height:0}.modal-body{padding:28px 22px}.modal-body h2{font-size:38px}.search-modal,.saved-modal{padding:45px 22px 30px;min-height:310px}.search-modal h2,.saved-modal h2{font-size:33px}.story-modal{padding:42px 22px 31px;overflow:hidden}.story-modal h2{font-size:36px}.story-visual{width:44%;opacity:.35}.gallery-hero{height:52vh}.gallery-thumbs img{width:62px;height:43px}.toast{bottom:78px;white-space:nowrap}.saved-count{top:0;left:0}.cursor-glow{display:none} }
@media (prefers-reduced-motion: reduce) { *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.hero-photo{animation:none} }
