/* Residence 201: warm, photographic, and quietly expressive. */
:root { --bg-cream:#f9f8f4; --bg-sand:#efeee7; --ink:#293b32; --ink-soft:#606961; --ink-muted:#737a73; --border:#e2e4da; --gold:#7d7053; --bg-dark:#20362c; }
.container { max-width:1440px; padding-inline:56px; }
.announcement { background:#e6eadf; color:#344d3d; min-height:34px; font-size:10px; }
.announcement a { color:inherit; text-decoration:underline; text-underline-offset:4px; }
.openhouse-announcement strong { color:inherit; }
.navbar { background:rgba(249,248,244,.94); border-bottom:0; }
.navbar-inner { max-width:1560px; padding-block:19px; }
.brand-monogram { border:0; font-size:44px; padding-right:2px; }
.brand-tag { font-size:8px; letter-spacing:.15em; }
.page-switcher { gap:25px; }
.btn { border-radius:100px; padding:14px 25px; gap:10px; font-size:12px; min-height:49px; transition:background .25s,transform .25s,box-shadow .25s; }
.btn:hover { transform:translateY(-2px); }
.btn-primary { background:#314a3c; }
.btn-gold { background:#dde7d4; }
.btn-gold:hover { background:#edf3e7; }
.nav-book { min-height:44px; }
.hero-wrap { padding:12px 0 0; border:0; }
.hero-wrap>.container { max-width:1560px; padding-inline:28px; }
.hero-grid { position:relative; display:flex; align-items:center; min-height:660px; overflow:hidden; border-radius:30px; isolation:isolate; background:#3a4038; }
.hero-visual { position:absolute; inset:0; z-index:-2; }
.hero-photo { height:100%; border-radius:0; }
.hero-photo>img { object-position:center 53%; }
.hero-grid::after { content:''; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(90deg,rgba(17,29,22,.84) 0%,rgba(22,33,25,.61) 35%,rgba(22,33,25,.05) 75%),linear-gradient(0deg,rgba(17,29,22,.38),transparent 40%); }
.hero-copy { padding:62px 64px; width:63%; color:#fff; pointer-events:none; }
.hero-copy a { pointer-events:auto; }
.hero-copy .eyebrow { color:#dee6cf; font-size:10px; letter-spacing:.17em; margin-bottom:24px; }
.hero-copy .small-rule { background:#dee6cf; }
.hero-title { font-size:clamp(54px,5.2vw,82px); max-width:740px; font-weight:500; letter-spacing:-.035em; line-height:1.02; margin:0 0 23px; }
.hero-title em { color:#d9e4c8; }
.hero-sub { color:#f0f0e9; font-size:13px; max-width:380px; line-height:1.85; margin-bottom:25px; }
.hero-address h2 { font-family:var(--sans); font-weight:500; font-size:14px; letter-spacing:0; }
.hero-address h2 span { color:#d7dfd3; font:inherit; }
.hero-address p { color:#d2d8cf; font-size:10px; }
.hero-price { font-size:35px; margin:13px 0 23px; }
.hero-price span { color:#d2d8cf; font-size:9px; }
.hero-actions { gap:12px; }
.hero-actions .btn-primary { background:#f5f4eb; color:#293b32; border-color:#f5f4eb; }
.hero-actions .btn-outline { border-color:#c5cfc2; color:white; background:rgba(255,255,255,.06); }
.hero-actions .btn-outline:hover { background:rgba(255,255,255,.16); }
.hero-advisor { margin-top:24px; color:#e3e7df; gap:10px; }
.hero-advisor strong { color:white; }
.hero-advisor>span:last-child { margin-left:0; font-size:10px; }
.hero-advisor img { width:36px; height:36px; border:2px solid #f1f0e6; }
.photo-badge { left:auto; right:28px; top:28px; border-radius:100px; background:rgba(248,247,240,.91); padding:11px 18px; letter-spacing:.1em; font-size:9px; }
.hero-photo-bottom { position:absolute; bottom:30px; right:30px; color:white; margin:0; font-size:11px; }
.hero-photo-bottom>span { display:none; }
.hero-photo-bottom a { border:1px solid rgba(255,255,255,.6); border-radius:100px; padding:10px 20px; background:rgba(30,40,30,.4); }
.property-facts { margin:0 30px; padding:32px 22px; border:0; border-bottom:1px solid var(--border); }
.property-facts>div { padding:0 30px; }
.property-facts dt { font-size:9px; letter-spacing:.14em; }
.property-facts dd { font-size:40px; }
.property-facts dd span { font-size:10px; }
.openhouse-card { margin:28px 30px 0; background:#eeefe5; border:0; border-radius:20px; padding:28px 32px; gap:28px; }
.openhouse-icon { font:italic 33px/1.1 var(--serif); color:#6c775e; width:94px; flex-shrink:0; }
.openhouse-icon span { display:block; font:8px/1.8 var(--sans); letter-spacing:.2em; }
.openhouse-copy h2 { font-size:30px; }
.openhouse-copy .eyebrow { display:none; }
.openhouse-copy p { font-size:11px; line-height:1.8; }
.openhouse-actions .text-link { border:0; font-size:10px; padding-bottom:0; }
.concierge-section { padding:36px 0 62px; }
.concierge-card { display:grid; grid-template-columns:1.1fr 1fr auto; align-items:center; gap:35px; padding:35px 0; }
.concierge-intro { display:flex; align-items:center; gap:25px; }
.concierge-intro .eyebrow { font-size:8px; margin-bottom:10px; }
.concierge-intro h2 { font-size:39px; letter-spacing:-.025em; }
.concierge-intro h2 em { color:#7a856f; }
.ai-orb { display:inline-block; width:68px; height:68px; flex:0 0 68px; border-radius:50%; background:radial-gradient(circle at 33% 27%,#fff8d8 0%,#cdddb2 28%,#8da18b 58%,#475e50 100%); box-shadow:inset -5px -6px 14px #20362844,inset 3px 3px 12px #ffffffbb,0 12px 25px #64735a20; }
.concierge-copy p { font-size:12px; line-height:1.9; color:var(--ink-soft); max-width:350px; }
.concierge-prompts { display:flex; flex-wrap:wrap; gap:8px; margin-top:15px; }
.concierge-prompts button,.assistant-prompts button { background:#fff; color:#4d6050; border:1px solid #dce2d7; border-radius:100px; padding:9px 13px; font-size:10px; }
.concierge-prompts button:hover,.assistant-prompts button:hover { background:#e9efdf; }
.page-section:not(.hero-wrap) { padding-block:86px; }
.section-title { font-size:clamp(38px,4vw,58px); letter-spacing:-.03em; }
.section-desc { font-size:13px; line-height:1.9; max-width:620px; }
.section-top { margin-bottom:36px; }
.dark-page { margin:0 20px; border-radius:30px; border:0; background:#20362c; }
.tour-3d-card { border-radius:20px; overflow:hidden; border-color:#ffffff25; }
.tour-3d-header { padding:21px 25px; }
.tour-3d-header>div>span { display:block; margin:4px 0 0!important; font-size:11px!important; }
.tour-3d-header>a { display:none; }
.tour-controls { padding:17px 25px; }
.tour-controls .text-link { display:none; }
.tour-controls p { font-size:10px; }
.tour-interaction-cover .btn { box-shadow:0 10px 30px #1118; padding:16px 30px; }
.video-cards-grid { margin-top:42px; }
.video-stage-card,.video-thumb-card { border-radius:16px; }
.video-stage-card video { border-radius:12px; }
.video-thumb-card.active { background:#ffffff12; border-color:#d8e4c1; }
.video-thumb-card h4 { font-size:13px; }
.video-thumb-card p { font-size:11px; }
.room-card,.contact-card,.advisor-card,.calc-card,.comp-card,.g-card { border-radius:18px; overflow:hidden; }
.room-card { box-shadow:none; }
.room-card:hover { box-shadow:0 14px 35px #21352b0b; }
.room-card h3 { font-size:27px; }
.f-pill { border-radius:100px; }
.g-card-label { font-size:11px; }
.lightbox-arrow { border-radius:100px; width:auto; min-width:70px; font-size:11px; padding:12px; }
.mobile-actions { border-radius:22px 22px 0 0; box-shadow:0 -5px 25px #20362c0d; }
.assistant-launcher { position:fixed; right:24px; bottom:24px; z-index:250; display:flex; align-items:center; gap:11px; background:#fffef9; border:1px solid #dce2d3; box-shadow:0 10px 40px #1b332626; border-radius:100px; padding:10px 19px 10px 10px; font-size:12px; font-weight:600; }
.assistant-launcher .ai-orb { width:33px; height:33px; flex-basis:33px; }
.assistant-dialog { position:fixed; inset:auto 24px 24px auto; width:min(430px,calc(100vw - 32px)); height:min(640px,calc(100dvh - 48px)); max-height:none; max-width:none; padding:0; border:1px solid #e0e5d9; border-radius:26px; background:#fafbf7; color:var(--ink); box-shadow:0 24px 90px #0e241d44; overflow:hidden; }
.assistant-dialog::backdrop { background:#15271e30; backdrop-filter:blur(3px); }
.assistant-shell { display:flex; flex-direction:column; height:100%; }
.assistant-header { display:flex; align-items:center; gap:12px; padding:23px; border-bottom:1px solid #e0e5d9; background:#f0f3e9; }
.assistant-header .ai-orb { width:42px; height:42px; flex-basis:42px; }
.assistant-header h2 { font-size:25px; }
.assistant-header p { font-size:10px; color:var(--ink-soft); }
.assistant-close { margin-left:auto; border:0; border-radius:50%; background:#ffffffa0; width:34px; height:34px; font-size:20px; }
.assistant-messages { overflow-y:auto; padding:22px; flex:1; min-height:0; overscroll-behavior:contain; }
.assistant-message { font-size:12px; line-height:1.8; padding:14px 17px; background:white; border:1px solid #e6e9df; border-radius:17px 17px 17px 4px; margin-bottom:14px; white-space:pre-wrap; overflow-wrap:anywhere; }
.assistant-message.user { background:#e5ebdd; border-color:#e5ebdd; margin-left:28px; border-radius:17px 17px 4px 17px; }
.assistant-message.error { background:#fff5eb; }
.assistant-prompts { display:flex; gap:7px; flex-wrap:wrap; margin:15px 0; }
.assistant-composer { padding:16px 20px 20px; border-top:1px solid #e1e6da; background:#fafbf7; }
.assistant-composer label { display:block; font-size:10px; color:var(--ink-soft); margin-bottom:7px; }
.assistant-input-row { display:flex; align-items:center; gap:8px; background:white; border:1px solid #d6dece; padding:6px; border-radius:16px; }
.assistant-input-row input { min-width:0; flex:1; border:0; background:transparent; padding:8px; font-size:12px; outline-offset:0; }
.assistant-input-row button { border:0; background:#314a3c; color:white; border-radius:12px; padding:10px 15px; font-size:11px; }
.assistant-input-row button:disabled { opacity:.5; cursor:wait; }
.assistant-note { font-size:9px; line-height:1.6; color:#7b8376; margin-top:10px; }
.assistant-note a { text-decoration:underline; }
@media(min-width:1600px) { .hero-grid { min-height:720px; } .hero-copy { padding:75px 85px; } }
@media(max-width:1100px) {
 .navbar-inner { padding-inline:24px; gap:16px; }.page-switcher { gap:16px; }.brand-tag { display:none; }
 .container { padding-inline:32px; }.hero-copy { width:72%; padding:50px 40px; }.hero-grid { min-height:620px; }
 .hero-title { font-size:64px; }.concierge-card { grid-template-columns:1fr 1fr; gap:25px; }.concierge-card>.btn { grid-column:2; justify-self:start; margin-top:-14px; }
 .concierge-intro { grid-row:span 2; }.property-facts>div { padding-inline:18px; }
}
@media(max-width:760px) {
 .announcement { gap:8px; padding:8px 14px; }.openhouse-announcement>span { display:none; }
 .navbar-inner { padding:14px 20px; }.brand-monogram { font-size:37px; }.brand-name { font-size:23px; }
 .navbar .nav-book { display:none; }.container { padding-inline:22px; }.hero-wrap>.container { padding-inline:12px; }
 .hero-grid { min-height:690px; align-items:flex-end; border-radius:24px; }
 .hero-grid::after { background:linear-gradient(0deg,rgba(18,32,23,.93) 0%,rgba(18,32,23,.74) 48%,rgba(18,32,23,.03) 100%); }
 .hero-copy { width:100%; padding:135px 25px 32px; }.hero-copy .eyebrow { font-size:8px; margin-bottom:16px; }
 .hero-title { font-size:clamp(45px,9.8vw,66px); margin-bottom:17px; }.hero-sub { font-size:12px; margin-bottom:20px; max-width:330px; }
 .hero-address h2 { font-size:12px; }.hero-price { font-size:31px; margin-block:11px 20px; }
 .hero-actions { gap:8px; flex-wrap:nowrap; }.hero-actions .btn { min-height:46px; padding:12px 16px; font-size:10px; }
 .hero-advisor { margin-top:19px; }.hero-photo-bottom { display:none; }.photo-badge { top:20px; right:20px; font-size:8px; }
 .hero-photo>img { object-position:64% center; }.property-facts { margin:0 8px; padding:25px 0; gap:24px 0; grid-template-columns:1fr 1fr; }
 .property-facts>div { padding-inline:18px; }.property-facts dd { font-size:34px; }.property-facts dt { font-size:8px; }.property-facts dd span { font-size:9px; }
 .openhouse-card { margin:22px 8px 0; padding:24px; display:block; border-radius:20px; }.openhouse-icon { display:none; }.openhouse-copy h2 { font-size:29px; }.openhouse-copy p { font-size:11px; }
 .openhouse-actions { align-items:flex-start; flex-direction:row; flex-wrap:wrap; gap:8px 18px; margin-top:18px; }.openhouse-actions .btn { font-size:10px; padding-inline:18px; }
 .concierge-section { padding:26px 0 36px; }.concierge-card { display:flex; flex-direction:column; align-items:flex-start; gap:20px; padding:20px 4px; }
 .concierge-intro { gap:20px; }.concierge-intro h2 { font-size:37px; }.concierge-intro h2 br { display:none; }.concierge-intro h2 em { display:block; }.ai-orb { width:58px; height:58px; flex-basis:58px; }
 .concierge-card>.btn { margin:0; }.concierge-copy p { max-width:none; }.concierge-prompts { margin-top:12px; }
 .dark-page { margin-inline:8px; border-radius:24px; }.page-section:not(.hero-wrap) { padding-block:52px; }.section-title { font-size:39px; }.section-desc { font-size:12px; }
 .section-top { gap:20px; }.tour-3d-header { padding:16px; }.tour-3d-header strong { font-size:12px!important; }.tour-3d-header>div>span { font-size:10px!important; }.tour-controls { padding:14px 16px; }
 .tour-3d-iframe-box { height:450px; }.video-cards-grid { margin-top:30px; }.tour-controls .btn { font-size:10px; }
 .assistant-launcher { bottom:84px; right:15px; padding:8px 13px 8px 8px; font-size:11px; }.assistant-launcher .ai-orb { width:27px; height:27px; flex-basis:27px; }
 .assistant-dialog { inset:auto 8px 8px; width:calc(100vw - 16px); height:min(650px,calc(100dvh - 24px)); border-radius:24px; }.assistant-header { padding:19px; }
 .mobile-actions { padding:10px 14px max(10px,env(safe-area-inset-bottom)); }.mobile-actions .btn { min-height:44px; font-size:11px; }
}
@media(prefers-reduced-motion:reduce) { .btn { transition:none; }.btn:hover { transform:none; } }

@media(max-width:760px) {
 .navbar-inner { gap:8px; }.brand { gap:8px; }.brand-name { font-size:22px; }.brand-monogram { font-size:34px; }.menu-toggle { border-radius:100px; padding:8px 13px; }
 .hero-photo { position:absolute; inset:0; height:100%; }.hero-photo>img { height:100%; }
 .mobile-actions .btn { padding:11px 12px; white-space:nowrap; }
}
@media(max-width:380px) {
 .navbar-inner { padding-inline:16px; }.brand-name { font-size:20px; }.brand-monogram { font-size:30px; }.menu-toggle { font-size:10px; gap:6px; padding-inline:10px; }
 .hero-copy { padding-inline:20px; }.hero-title { font-size:42px; }.hero-actions .btn { padding-inline:12px; font-size:9px; }
}
