@font-face{font-family:'Poppins';font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/poppins-300.woff2) format('woff2');}
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/poppins-400.woff2) format('woff2');}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/poppins-500.woff2) format('woff2');}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/poppins-600.woff2) format('woff2');}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/poppins-700.woff2) format('woff2');}
@font-face{font-family:'Poppins';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/poppins-italic.woff2) format('woff2');}

:root{
  --ink:#0c0c0c; --ink-2:#161616; --charcoal:#16171b;
  --white:#ffffff; --paper:#fbfbfa;
  --gray:#8d8d8d; --gray-2:#b7b7b7; --line:#e6e6e6; --line-dark:rgba(255,255,255,.14);
  --gold:#E0A92E;
  --sans:'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --maxw:1240px; --gutter:clamp(20px,5vw,60px);
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{margin:0;font-family:var(--sans);font-weight:400;color:var(--ink);background:var(--white);
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);}
section{position:relative;}

.tex::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 240 240' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

.head{text-align:center;position:relative;margin-bottom:clamp(40px,6vw,72px);}
.eyebrow{font-size:11px;font-weight:500;letter-spacing:0.13em;text-transform:uppercase;color:var(--gray);display:block;margin-bottom:14px;}
.dark .eyebrow{color:var(--gray-2);}
.htitle{position:relative;display:inline-block;}
.htitle .num{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);
  font-size:clamp(90px,13vw,150px);font-weight:700;line-height:1;
  color:transparent;-webkit-text-stroke:1px rgba(0,0,0,.07);z-index:0;user-select:none;letter-spacing:0;}
.dark .htitle .num{-webkit-text-stroke:1px rgba(255,255,255,.10);}
.htitle h2{position:relative;z-index:1;margin:0;font-size:clamp(26px,3.6vw,44px);font-weight:300;
  letter-spacing:0.03em;text-transform:uppercase;line-height:1.1;}
.dark .htitle h2{color:var(--white);}

.nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:22px 0;transition:background .35s,padding .35s,box-shadow .35s;}
.nav.solid{background:var(--ink);padding:13px 0;box-shadow:0 1px 0 var(--line-dark);}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;}
.brand{display:flex;align-items:center;gap:13px;color:#fff;}
.brand .mono{width:42px;height:42px;border:1px solid rgba(255,255,255,.55);display:flex;align-items:center;justify-content:center;
  font-weight:600;font-size:18px;letter-spacing:0.02em;flex:none;}
.brand .bt{line-height:1.25;}
.brand .bt b{display:block;font-weight:600;font-size:13.5px;letter-spacing:0.05em;text-transform:uppercase;}
.brand .bt span{display:block;font-weight:300;font-size:10.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--gray-2);}
.navlinks{display:flex;align-items:center;gap:0;}
.navlinks a{color:#fff;font-size:12px;font-weight:400;letter-spacing:0.06em;text-transform:uppercase;padding:0 18px;position:relative;transition:color .25s;}
.navlinks a+a::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:1px;height:12px;background:rgba(255,255,255,.3);}
.navlinks a:hover{color:var(--gold);}
.nav-r{display:flex;align-items:center;gap:22px;}
.nav-ph{color:#fff;font-size:13px;font-weight:500;letter-spacing:0.02em;}
.nav-plus{color:#fff;font-size:22px;font-weight:300;line-height:1;cursor:pointer;background:none;border:0;padding:0 4px;}
.menu-btn{display:none;background:none;border:0;color:#fff;font-size:12px;font-weight:500;letter-spacing:0.06em;text-transform:uppercase;cursor:pointer;}
@media(max-width:1000px){
  .navlinks,.nav-ph{display:none;}
  .menu-btn{display:block;}
  .navlinks.open{display:flex;flex-direction:column;align-items:flex-start;position:absolute;top:100%;left:0;right:0;background:var(--ink);padding:6px var(--gutter) 20px;}
  .navlinks.open a{padding:14px 0;width:100%;}
  .navlinks.open a+a::before{display:none;}
}

.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;
  background:
    radial-gradient(135% 105% at 50% -8%,#30333b,#16171b 46%,#0a0b0d 100%);overflow:hidden;}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 -120px 120px -60px rgba(0,0,0,.6), inset 0 90px 90px -70px rgba(0,0,0,.4);}
.hero .tagline{font-size:17px;font-weight:600;letter-spacing:0.3em;text-transform:uppercase;color:rgba(255,255,255,.8);margin-bottom:26px;}
.hero .at{font-size:19px;font-weight:600;letter-spacing:0.3em;text-transform:uppercase;color:rgba(255,255,255,.78);margin-bottom:18px;}
.hero h1{margin:0 0 30px;font-size:clamp(22px,3.4vw,40px);font-weight:500;letter-spacing:0.03em;text-transform:uppercase;line-height:1.1;}
.hero .hero-cta{display:flex;gap:26px;justify-content:center;margin-bottom:46px;}
.hero .hero-cta a{font-size:12px;letter-spacing:0.07em;text-transform:uppercase;font-weight:500;padding:13px 26px;border:1px solid rgba(255,255,255,.55);transition:background .25s,color .25s;}
.hero .hero-cta a:hover{background:#fff;color:var(--ink);}
.bars{display:flex;justify-content:center;gap:0;flex-wrap:wrap;max-width:920px;margin:0 auto 30px;border:1px solid rgba(255,255,255,.22);}
.bars a{flex:1;min-width:200px;text-align:center;padding:18px 22px;font-size:12px;letter-spacing:0.05em;text-transform:uppercase;font-weight:400;
  background:rgba(255,255,255,.05);transition:background .25s;border-left:1px solid rgba(255,255,255,.18);}
.bars a:first-child{border-left:0;}
.bars a:hover{background:rgba(255,255,255,.14);}
.search{max-width:980px;margin:0 auto;background:rgba(18,15,12,.46);border:1px solid rgba(255,255,255,.1);
  display:flex;align-items:stretch;flex-wrap:wrap;}
.search .mag{display:flex;align-items:center;padding:0 16px;color:rgba(255,255,255,.6);font-size:18px;}
.search .f{flex:1;min-width:120px;display:flex;flex-direction:column;justify-content:center;padding:13px 16px;border-left:1px solid rgba(255,255,255,.08);text-align:left;}
.search .f label{font-size:8.5px;letter-spacing:0.02em;text-transform:uppercase;color:rgba(255,255,255,.38);margin-bottom:5px;}
.search .f span{font-size:13.5px;font-weight:300;color:rgba(255,255,255,.9);}
.search .go{padding:0 24px;display:flex;align-items:center;font-size:11px;letter-spacing:0.04em;text-transform:uppercase;color:var(--gold);border-left:1px solid rgba(255,255,255,.08);cursor:pointer;}
.search-cap{text-align:center;font-size:11px;letter-spacing:0.05em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-top:16px;}
@media(max-width:760px){.search .f{min-width:46%;} .bars a{min-width:50%;}}

.gt{background:var(--paper);padding:clamp(64px,8vw,110px) 0;}
.gt .card{max-width:560px;margin:0 auto;background:#fff;border:1px solid var(--line);box-shadow:0 30px 70px -40px rgba(0,0,0,.25);
  padding:clamp(34px,4vw,52px);}
.gt h2{text-align:center;font-size:clamp(26px,3vw,34px);font-weight:600;letter-spacing:0.02em;margin:0 0 8px;}
.gt .sub{text-align:center;color:var(--gray);font-size:14px;margin-bottom:30px;}
.field{margin-bottom:16px;}
.field label{display:block;font-size:10px;letter-spacing:0.05em;text-transform:uppercase;color:var(--gray);margin-bottom:6px;}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);background:#fff;padding:13px 14px;font-family:var(--sans);font-size:14px;color:var(--ink);outline:none;transition:border-color .25s;}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--ink);}
.field textarea{resize:vertical;min-height:74px;}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:520px){.row2{grid-template-columns:1fr;gap:0;}}
.consent{display:flex;gap:10px;align-items:flex-start;margin:14px 0;}
.consent input{margin-top:3px;}
.consent p{font-size:10.5px;line-height:1.5;color:var(--gray);margin:0;}
.captcha{border:1px solid var(--line);background:#f9f9f9;padding:12px 14px;display:flex;align-items:center;gap:10px;font-size:12px;color:var(--gray);margin-bottom:18px;}
.captcha .box{width:22px;height:22px;border:2px solid #c7c7c7;border-radius:3px;}
.submit{width:100%;background:var(--ink);color:#fff;border:0;border-radius:4px;padding:16px;font-family:var(--sans);
  font-size:12px;font-weight:600;letter-spacing:0.07em;text-transform:uppercase;cursor:pointer;transition:background .25s;}
.submit:hover{background:#000;}

.meet{padding:clamp(70px,9vw,130px) 0;background:#fff;}
.meet .grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(30px,5vw,72px);align-items:center;}
@media(max-width:860px){.meet .grid{grid-template-columns:1fr;gap:30px;}}
.meet .photo{position:relative;text-align:center;}
.meet .photo::after{content:none;}
.meet .photo .cece-portrait{position:relative;z-index:1;width:100%;max-width:460px;margin:0 auto;aspect-ratio:760/1080;filter:drop-shadow(-32px 14px 34px rgba(0,0,0,.34)) drop-shadow(-16px 8px 16px rgba(0,0,0,.20));}.meet .photo .cece-portrait .cp-img{display:block;width:100%;height:100%;background:url(/assets/img/cece-portrait.jpg) center/100% 100% no-repeat;-webkit-mask:url(/assets/img/cece-portrait-mask.png) center/100% 100% no-repeat;mask:url(/assets/img/cece-portrait-mask.png) center/100% 100% no-repeat;}
.meet .eyebrow{text-align:left;}
.meet .htitle{display:block;text-align:left;}
.meet .htitle .num{left:-6px;top:42%;transform:translateY(-50%);font-size:clamp(86px,11vw,128px);}
.meet .htitle h2{display:block;text-align:left;}
.meet p{color:#3a3a3a;font-size:15px;line-height:1.8;margin:0 0 16px;max-width:54ch;}
.meet .more{display:inline-block;margin-top:14px;font-size:12px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:5px;}

.tst{padding:clamp(70px,9vw,120px) 0;background:var(--paper);}
.rating{text-align:center;margin-bottom:40px;}
.rating .score{font-size:30px;color:var(--gold);letter-spacing:4px;}
.rating .count{font-size:12px;letter-spacing:0.04em;text-transform:uppercase;color:var(--gray);}
.tcards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media(max-width:860px){.tcards{grid-template-columns:1fr;}}
.tcard{background:#fff;border:1px solid var(--line);padding:24px;position:relative;}
.tcard .tstars{color:var(--gold);font-size:14px;letter-spacing:2px;margin-bottom:10px;}
.tcard .ttext{font-size:13.5px;line-height:1.65;color:#3a3a3a;min-height:96px;}
.tcard .tby{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:12px;color:var(--gray);}
.tcard .tby b{display:block;color:var(--ink);font-weight:600;font-size:13px;}
.tnote{text-align:center;margin-top:24px;font-size:11px;letter-spacing:0.04em;text-transform:uppercase;color:var(--gray);}

.props{padding:clamp(70px,9vw,120px) 0;background:#fff;}
.pcards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media(max-width:860px){.pcards{grid-template-columns:1fr;}}
.pcard{border:1px solid var(--line);background:#fff;overflow:hidden;transition:box-shadow .3s,transform .3s;}
.pcard:hover{box-shadow:0 24px 50px -30px rgba(0,0,0,.3);transform:translateY(-3px);}
.pcard .pimg{aspect-ratio:4/3;background:linear-gradient(135deg,#1f2126,#2c2f36);display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.5);font-size:11px;letter-spacing:0.05em;text-transform:uppercase;position:relative;}
.pcard .pimg .tag{position:absolute;top:12px;left:12px;background:var(--ink);color:#fff;font-size:9.5px;letter-spacing:0.05em;text-transform:uppercase;padding:5px 10px;}
.pcard .pbody{padding:20px;}
.pcard .paddr{font-size:15px;font-weight:600;letter-spacing:0.02em;text-transform:uppercase;}
.pcard .pcity{font-size:12.5px;color:var(--gray);margin-top:3px;}
.pcard .pstats{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:11px;letter-spacing:0.03em;text-transform:uppercase;color:#555;}
.pcard .pstats .muted{color:var(--gray-2);}
.viewmore{text-align:center;margin-top:40px;}
.viewmore a{font-size:12px;font-weight:600;letter-spacing:0.07em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:5px;}

.comm{padding:clamp(70px,9vw,120px) 0;background:var(--paper);}
.ccards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media(max-width:860px){.ccards{grid-template-columns:1fr 1fr;}}
@media(max-width:540px){.ccards{grid-template-columns:1fr;}}
.ccard{position:relative;aspect-ratio:16/10;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.ccard .cbg{position:absolute;inset:0;transition:transform .5s;}
.ccard:hover .cbg{transform:scale(1.06);}
.ccard::after{content:"";position:absolute;inset:0;background:rgba(12,12,12,.46);transition:background .3s;}
.ccard:hover::after{background:rgba(12,12,12,.3);}
.ccard span{position:relative;z-index:2;color:#fff;font-size:14px;font-weight:500;letter-spacing:0.06em;text-transform:uppercase;}

.news{padding:clamp(70px,9vw,120px) 0;background:#fff;}
.ncards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media(max-width:860px){.ncards{grid-template-columns:1fr;}}
.ncard .nimg{aspect-ratio:16/10;background:linear-gradient(135deg,#23252b,#121316);}
.ncard .ntitle{font-size:14px;font-weight:600;letter-spacing:0.02em;text-transform:uppercase;line-height:1.4;margin:18px 0 8px;}
.ncard .nex{font-size:13px;color:#555;line-height:1.65;}
.ncard .nmore{display:inline-block;margin-top:12px;font-size:11px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:4px;}

.nl{background:var(--charcoal);color:#fff;padding:clamp(50px,7vw,80px) 0;text-align:center;}
.nl p{font-style:italic;font-weight:300;font-size:clamp(15px,1.8vw,19px);color:rgba(255,255,255,.9);max-width:620px;margin:0 auto 24px;}
.nl .nlform{max-width:440px;margin:0 auto;display:flex;border:1px solid rgba(255,255,255,.3);}
.nl .nlform input{flex:1;background:transparent;border:0;padding:14px 16px;color:#fff;font-family:var(--sans);font-size:14px;outline:none;}
.nl .nlform input::placeholder{color:rgba(255,255,255,.5);}
.nl .nlform button{background:transparent;border:0;border-left:1px solid rgba(255,255,255,.3);color:var(--gold);padding:0 20px;font-size:18px;cursor:pointer;}

.soc{padding:clamp(70px,9vw,110px) 0;background:#fff;text-align:center;}
.soc .sline{font-style:italic;font-weight:300;color:#555;font-size:15px;max-width:560px;margin:0 auto 34px;}
.sstrip{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;}
@media(max-width:860px){.sstrip{grid-template-columns:repeat(4,1fr);}}
@media(max-width:540px){.sstrip{grid-template-columns:repeat(3,1fr);}}
.sstrip .sq{aspect-ratio:1;background:linear-gradient(135deg,#23252b,#121316);position:relative;}
.sstrip .sq::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.15);}
.soc .sfollow{display:inline-block;margin-top:30px;font-size:12px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:5px;}

footer{background:var(--ink);color:#fff;padding:clamp(56px,7vw,84px) 0 30px;text-align:center;position:relative;}
.f-brand{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:22px;}
.f-brand .mono{width:46px;height:46px;border:1px solid rgba(255,255,255,.55);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:19px;}
.f-brand .ftxt b{display:block;font-size:14px;font-weight:600;letter-spacing:0.05em;text-transform:uppercase;}
.f-brand .ftxt span{display:block;font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--gray-2);}
.f-ph{font-size:14px;letter-spacing:0.02em;margin-bottom:6px;}
.f-ph .lic{color:var(--gray-2);}
.f-addr{font-size:12.5px;color:var(--gray-2);letter-spacing:0.02em;margin-bottom:22px;line-height:1.7;}
.f-soc{display:flex;justify-content:center;gap:14px;margin-bottom:26px;}
.f-soc a{width:34px;height:34px;border:1px solid rgba(255,255,255,.28);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;transition:background .25s,color .25s;}
.f-soc a:hover{background:var(--gold);color:var(--ink);border-color:var(--gold);}
.f-acc{font-size:10.5px;line-height:1.7;color:var(--gray);max-width:780px;margin:0 auto 22px;}
.f-marks{display:flex;justify-content:center;gap:16px;align-items:center;margin-bottom:18px;}
.f-marks .mk{width:30px;height:30px;border:1px solid rgba(255,255,255,.4);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--gray-2);}
.f-marks .mk.eho{background:url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23b7b7b7' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 11l9-7 9 7v9a1 1 0 0 1-1 1h-5v-6H10v6H4a1 1 0 0 1-1-1z'/%3E%3Cline x1='8' y1='16' x2='16' y2='16'/%3E%3C/svg%3E") center/16px no-repeat;}
.f-copy{font-size:10.5px;color:var(--gray);letter-spacing:0.02em;border-top:1px solid var(--line-dark);padding-top:22px;line-height:1.8;}
.acc-btn{position:fixed;left:14px;bottom:14px;width:42px;height:42px;border-radius:50%;background:var(--ink);border:1px solid rgba(255,255,255,.35);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:18px;z-index:90;cursor:pointer;}

.rv{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s ease;}
.rv.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;}}

/* UX refinement: rounded, softer, less boxy */
.search,.bars{border-radius:14px;overflow:hidden;}
.hero-cta a{border-radius:999px;}
.gt .card{border-radius:18px;}
.field input,.field select,.field textarea,.captcha,.recap{border-radius:10px;}
.submit{border-radius:999px;}
.pcard,.tcard{border-radius:16px;box-shadow:0 10px 34px -24px rgba(0,0,0,.28);}
.ccard{border-radius:16px;}
.ncard .nimg{border-radius:14px;}
.sstrip .sq{border-radius:14px;}
.nl .nlform{border-radius:999px;overflow:hidden;}
.brand .mono,.f-brand .mono{border-radius:11px;}
.nav-plus{border-radius:9px;}
.f-marks .mk{border-radius:8px;}

/* brand logo + listing spotlight */
.cece-logo{display:inline-block;background-image:url(/assets/img/logo.webp);background-size:contain;background-repeat:no-repeat;background-position:left center;}
.brand .cece-logo{width:108px;height:42px;}
.f-brand .cece-logo{width:143px;height:56px;background-position:center;}
@media(max-width:1000px){.brand .cece-logo{width:95px;height:37px;}}
.spotlight{display:grid;grid-template-columns:1.04fr .96fr;gap:clamp(24px,4vw,54px);align-items:center;}
@media(max-width:860px){.spotlight{grid-template-columns:1fr;gap:26px;}}
.sp-media{position:relative;}
.sp-photo{aspect-ratio:4/3;border-radius:16px;background:linear-gradient(135deg,#23252b,#16171b);display:flex;flex-direction:column;align-items:center;justify-content:center;color:rgba(255,255,255,.5);font-size:12px;letter-spacing:.04em;text-transform:uppercase;text-align:center;gap:4px;}
.sp-photo small{font-size:10px;opacity:.7;letter-spacing:.08em;}
.sp-badge{position:absolute;top:14px;left:14px;z-index:2;background:var(--gold);color:#15120f;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:6px 12px;border-radius:7px;}
.sp-price{font-size:clamp(28px,3.4vw,36px);font-weight:600;letter-spacing:-.01em;line-height:1;}
.sp-addr{font-size:19px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;margin:10px 0 2px;}
.sp-city{color:var(--gray);font-size:14px;margin-bottom:18px;}
.sp-specs{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:20px;}
.sp-specs span{border:1px solid var(--line);border-radius:999px;padding:7px 16px;font-size:12px;font-weight:500;letter-spacing:.03em;}
.sp-desc{color:#3a3a3a;font-size:14.5px;line-height:1.75;margin:0 0 20px;}
.sp-feats{list-style:none;padding:0;margin:0 0 26px;display:grid;grid-template-columns:1fr 1fr;gap:9px 20px;}
@media(max-width:560px){.sp-feats{grid-template-columns:1fr;}}
.sp-feats li{position:relative;padding-left:20px;font-size:13px;color:#444;line-height:1.5;}
.sp-feats li::before{content:"";position:absolute;left:0;top:7px;width:7px;height:7px;border-radius:50%;background:var(--gold);}
.sp-cta{display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.sp-btn{background:var(--ink);color:#fff;border-radius:999px;padding:14px 32px;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;transition:background .25s;}
.sp-btn:hover{background:var(--gold);color:#15120f;}
.sp-mls{font-size:11px;color:var(--gray);letter-spacing:.03em;}
.sp-disc{text-align:center;font-size:10.5px;color:var(--gray-2);margin:30px auto 0;line-height:1.65;max-width:700px;}
/* ---------- community guide ---------- */
.chero{position:relative;min-height:54vh;display:flex;align-items:center;color:#fff;background:radial-gradient(135% 120% at 50% -10%,#30333b,#16171b 48%,#0a0b0d 100%);overflow:hidden;padding:128px 0 70px;}
.chero .crumb{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:20px;}
.chero .crumb a{color:rgba(255,255,255,.8);} .chero .crumb a:hover{color:var(--gold);}
.chero .ceye{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:14px;}
.chero h1{margin:0 0 16px;font-size:clamp(34px,5vw,58px);font-weight:300;letter-spacing:.01em;line-height:1.05;text-transform:uppercase;}
.chero .csub{font-size:clamp(15px,1.8vw,19px);font-weight:300;color:rgba(255,255,255,.82);max-width:660px;line-height:1.6;}
.csec{padding:clamp(54px,7vw,94px) 0;background:#fff;} .csec.alt{background:var(--paper);}
.cnar{max-width:780px;} .cnar p{font-size:16px;line-height:1.85;color:#3a3a3a;margin:0 0 18px;}
.clead{font-size:clamp(18px,2.1vw,23px);line-height:1.55;color:var(--ink);font-weight:300;margin:0 0 26px;}
.faq{max-width:820px;margin:0 auto;}
.faq .qa{border-top:1px solid var(--line);padding:22px 0;} .faq .qa:last-child{border-bottom:1px solid var(--line);}
.faq .q{font-size:17px;font-weight:600;letter-spacing:.01em;margin:0 0 8px;color:var(--ink);}
.faq .a{font-size:15px;line-height:1.75;color:#3a3a3a;margin:0;}
.ctaband{background:var(--charcoal);color:#fff;padding:clamp(54px,7vw,86px) 0;text-align:center;}
.ctaband h2{font-size:clamp(24px,3vw,36px);font-weight:300;margin:0 0 12px;}
.ctaband p{color:rgba(255,255,255,.82);max-width:540px;margin:0 auto 28px;font-weight:300;line-height:1.6;}
.cta-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}
.cta-row a.btn{border-radius:999px;padding:14px 30px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;border:1px solid rgba(255,255,255,.5);color:#fff;transition:background .25s,color .25s;}
.cta-row a.btn.solid{background:var(--gold);color:#15120f;border-color:var(--gold);}
.cta-row a.btn:hover{background:#fff;color:var(--ink);border-color:#fff;}

/* ===================== ELEVATION PASS ===================== */
/* credibility strip */
.stats{background:var(--charcoal);border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr);}
.stats .stat{padding:clamp(30px,4vw,46px) 20px;text-align:center;position:relative;}
.stats .stat:not(:last-child)::after{content:"";position:absolute;right:0;top:26%;height:48%;width:1px;background:rgba(255,255,255,.10);}
.stats .snum{font-size:clamp(26px,3.2vw,38px);font-weight:300;color:#fff;line-height:1;letter-spacing:.01em;}
.stats .snum .gold{color:var(--gold);}
.stats .snum.txt{font-size:clamp(15px,1.7vw,19px);font-weight:500;letter-spacing:.05em;}
.stats .slbl{margin-top:11px;font-size:10.5px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.5);}
@media(max-width:760px){.stats .wrap{grid-template-columns:repeat(2,1fr);}.stats .stat:nth-child(2)::after{display:none;}.stats .stat:nth-child(1),.stats .stat:nth-child(2){border-bottom:1px solid rgba(255,255,255,.08);}}
/* differentiators */
.diff{background:#fff;padding:clamp(64px,8vw,108px) 0;}
.diff .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,3.4vw,46px);margin-top:clamp(38px,5vw,56px);}
.diff .d{border-top:2px solid var(--ink);padding-top:22px;}
.diff .d .dn{font-size:12px;font-weight:700;letter-spacing:.18em;color:var(--gold);margin-bottom:16px;}
.diff .d h3{font-size:clamp(18px,1.9vw,22px);font-weight:500;letter-spacing:.01em;color:var(--ink);margin:0 0 12px;}
.diff .d p{font-size:15px;line-height:1.78;color:#3a3a3a;margin:0;}
@media(max-width:820px){.diff .grid3{grid-template-columns:1fr;gap:30px;}}
/* motion + hover polish */
.rv.s1{transition-delay:.08s;}.rv.s2{transition-delay:.16s;}.rv.s3{transition-delay:.24s;}
.ccard{transition:transform .35s ease,box-shadow .35s ease;}
.ccard:hover{transform:translateY(-5px);box-shadow:0 22px 46px -18px rgba(0,0,0,.55);}
.ccard::after{content:"";position:absolute;inset:0;border:1px solid transparent;transition:border-color .35s ease;pointer-events:none;z-index:3;}
.ccard:hover::after{border-color:rgba(224,169,46,.6);}
a.ccard{text-decoration:none;}
.submit,.pill,.hero-cta a{transition:transform .2s ease,background .25s ease,color .25s ease,box-shadow .25s ease;}
.submit:hover{transform:translateY(-1px);box-shadow:0 10px 24px -10px rgba(0,0,0,.6);}
.form-reassure{margin-top:14px;text-align:center;font-size:12px;color:var(--gray);letter-spacing:.02em;}

/* ===================== v2 UPGRADE: a11y, photos, listing, insights ===================== */

/* --- accessibility primitives --- */
.skip-link{position:absolute;left:-999px;top:0;z-index:300;background:var(--ink);color:#fff;padding:12px 18px;border-radius:0 0 10px 0;font-size:13px;font-weight:600;}
.skip-link:focus{left:0;}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,.ga-btn:focus-visible,.lb-open:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:4px;}
.a11y-panel{position:fixed;left:14px;bottom:64px;z-index:95;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 60px -28px rgba(0,0,0,.5);padding:14px 16px;width:230px;display:none;}
.a11y-panel.open{display:block;}
.a11y-panel h3{margin:0 0 10px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--gray);}
.a11y-panel button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:8px;background:#f6f6f5;border:1px solid var(--line);border-radius:9px;padding:9px 11px;font-family:var(--sans);font-size:12.5px;color:var(--ink);cursor:pointer;margin-bottom:8px;}
.a11y-panel button:hover{background:#efeee9;}
.a11y-panel button[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink);}
html.a11y-bigtext{font-size:18px;}
html.a11y-contrast .meet p,html.a11y-contrast .ncard .nex,html.a11y-contrast .sp-desc,html.a11y-contrast .pdp-prose p,html.a11y-contrast .cnar p{color:#1a1a1a;}

/* --- shared button --- */
.lbtn{display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:#fff;border-radius:999px;padding:13px 26px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;transition:background .25s,transform .2s;cursor:pointer;border:0;font-family:var(--sans);}
.lbtn:hover{background:var(--gold);color:#15120f;transform:translateY(-1px);}
.lbtn.ghost{background:transparent;border:1px solid var(--ink);color:var(--ink);}
.lbtn.ghost:hover{background:var(--ink);color:#fff;}

/* --- listing spotlight (homepage) real photos --- */
.sp-photo{padding:0;border:0;}
.sp-main{display:block;width:100%;aspect-ratio:4/3;border-radius:16px;overflow:hidden;background:#e9e9e7;position:relative;cursor:pointer;border:0;padding:0;}
.sp-main img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease;}
.sp-main:hover img{transform:scale(1.04);}
.sp-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:8px;}
.sp-strip button{position:relative;padding:0;border:0;border-radius:10px;overflow:hidden;aspect-ratio:1;background:#e9e9e7;cursor:pointer;}
.sp-strip img{width:100%;height:100%;object-fit:cover;display:block;}
.sp-strip .more{position:absolute;inset:0;background:rgba(12,12,12,.6);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;letter-spacing:.02em;text-align:center;line-height:1.2;}

/* --- community cards with real photos --- */
.ccard .cbg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}

/* --- news / insights cards with images --- */
.ncard{display:flex;flex-direction:column;}
.ncard a.nimg-link{display:block;border-radius:14px;overflow:hidden;}
.ncard .nimg{aspect-ratio:16/10;width:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.ncard a.nimg-link:hover .nimg{transform:scale(1.05);}

/* --- social strip real photos --- */
.sstrip .sq{overflow:hidden;}
.sstrip .sq img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease;}
.sstrip .sq:hover img{transform:scale(1.07);}
.sstrip .sq::after{z-index:1;pointer-events:none;}

/* ===================== LISTING DETAIL PAGE (PDP) ===================== */
.pdp-top{padding:104px 0 0;background:#fff;}
.pcrumb{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gray);margin-bottom:18px;}
.pcrumb a{color:#555;}.pcrumb a:hover{color:var(--gold);}
.pdp-gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:8px;aspect-ratio:16/9;border-radius:18px;overflow:hidden;}
.pdp-gallery .g{position:relative;overflow:hidden;background:#e9e9e7;padding:0;border:0;cursor:pointer;display:block;}
.pdp-gallery .g img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease;}
.pdp-gallery .g:hover img{transform:scale(1.05);}
.pdp-gallery .g-main{grid-column:1;grid-row:1/3;}
.pdp-gallery .g2{grid-column:2;grid-row:1;}.pdp-gallery .g3{grid-column:3;grid-row:1;}
.pdp-gallery .g4{grid-column:2;grid-row:2;}.pdp-gallery .g5{grid-column:3;grid-row:2;}
.pdp-gallery .viewall{position:absolute;right:14px;bottom:14px;z-index:3;background:rgba(255,255,255,.94);color:var(--ink);border:0;border-radius:999px;padding:11px 20px;font-size:12px;font-weight:600;letter-spacing:.04em;cursor:pointer;display:flex;align-items:center;gap:8px;box-shadow:0 8px 24px -10px rgba(0,0,0,.5);font-family:var(--sans);}
.pdp-gallery .viewall:hover{background:#fff;}
.pdp-badges{position:absolute;left:14px;top:14px;z-index:3;display:flex;gap:8px;}
.pdp-badges .b{background:var(--gold);color:#15120f;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:6px 12px;border-radius:7px;}
.pdp-badges .b.dark{background:rgba(12,12,12,.78);color:#fff;}
@media(max-width:760px){
  .pdp-gallery{grid-template-columns:1fr;grid-template-rows:auto;aspect-ratio:4/3;}
  .pdp-gallery .g2,.pdp-gallery .g3,.pdp-gallery .g4,.pdp-gallery .g5{display:none;}
  .pdp-gallery .g-main{grid-column:1;grid-row:auto;}
  .pdp-gallery .viewall{right:12px;bottom:12px;}
}

.pdp-wrap{display:grid;grid-template-columns:1.55fr .95fr;gap:clamp(28px,4vw,56px);padding:clamp(36px,5vw,60px) 0 0;align-items:start;}
@media(max-width:900px){.pdp-wrap{grid-template-columns:1fr;}}
.pdp-head .addr{font-size:clamp(24px,3.2vw,34px);font-weight:600;letter-spacing:.01em;margin:0;}
.pdp-head .city{color:var(--gray);font-size:15px;margin-top:4px;}
.pdp-chips{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0 6px;}
.pdp-chips span{border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:12.5px;font-weight:500;}
.pdp-chips b{font-weight:600;}
.pdp-section{margin-top:clamp(30px,4vw,44px);}
.pdp-section h2{font-size:13px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--gray);margin:0 0 16px;padding-bottom:12px;border-bottom:1px solid var(--line);}
.pdp-prose p{font-size:15.5px;line-height:1.85;color:#33363b;margin:0 0 16px;max-width:62ch;}
.pdp-feats{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:11px 22px;}
@media(max-width:560px){.pdp-feats{grid-template-columns:1fr;}}
.pdp-feats li{position:relative;padding-left:22px;font-size:14px;color:#3a3a3a;line-height:1.5;}
.pdp-feats li::before{content:"";position:absolute;left:0;top:7px;width:8px;height:8px;border-radius:50%;background:var(--gold);}
.pdp-facts{width:100%;border-collapse:collapse;font-size:14px;}
.pdp-facts th,.pdp-facts td{text-align:left;padding:13px 4px;border-bottom:1px solid var(--line);vertical-align:top;}
.pdp-facts th{color:var(--gray);font-weight:500;width:46%;letter-spacing:.01em;}
.pdp-facts td{color:var(--ink);font-weight:500;}
.pdp-map{margin-top:14px;border-radius:16px;overflow:hidden;border:1px solid var(--line);}
.pdp-map iframe{display:block;width:100%;height:340px;border:0;}
.pdp-maplink{display:inline-block;margin-top:12px;font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:4px;}

/* sticky price/CTA aside */
.pdp-aside{position:sticky;top:96px;}
@media(max-width:900px){.pdp-aside{position:static;}}
.pdp-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 60px -38px rgba(0,0,0,.4);padding:clamp(22px,3vw,30px);}
.pdp-card .status{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-bottom:8px;}
.pdp-card .price{font-size:clamp(30px,4vw,40px);font-weight:600;letter-spacing:-.01em;line-height:1;}
.pdp-card .ppsf{font-size:12.5px;color:var(--gray);margin-top:6px;}
.pdp-card .specrow{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;}
.pdp-card .specrow .s{text-align:center;}
.pdp-card .specrow .n{font-size:18px;font-weight:600;}
.pdp-card .specrow .l{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--gray);margin-top:3px;}
.pdp-card .cta{display:flex;flex-direction:column;gap:10px;margin-top:4px;}
.pdp-card .cta a{display:flex;align-items:center;justify-content:center;gap:9px;border-radius:999px;padding:15px;font-size:13px;font-weight:600;letter-spacing:.04em;transition:background .25s,transform .2s,color .25s;}
.pdp-card .cta .primary{background:var(--ink);color:#fff;}
.pdp-card .cta .primary:hover{background:var(--gold);color:#15120f;transform:translateY(-1px);}
.pdp-card .cta .ghost{background:#fff;color:var(--ink);border:1px solid var(--line);}
.pdp-card .cta .ghost:hover{border-color:var(--ink);}
.pdp-card .mls{margin-top:16px;font-size:11px;color:var(--gray);text-align:center;line-height:1.6;}
.pdp-card .agent{margin-top:18px;padding-top:18px;border-top:1px solid var(--line);display:flex;align-items:center;gap:13px;}
.pdp-card .agent img{width:54px;height:54px;border-radius:50%;object-fit:cover;object-position:top;flex:none;}
.pdp-card .agent b{display:block;font-size:14px;}
.pdp-card .agent span{display:block;font-size:11.5px;color:var(--gray);}
.pdp-disc{font-size:10.5px;color:var(--gray-2);line-height:1.7;max-width:900px;margin:clamp(40px,6vw,70px) auto 0;text-align:center;}

/* full gallery grid */
.ga-sec{padding:clamp(46px,6vw,78px) 0;background:#fff;}
.ga{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
@media(max-width:760px){.ga{grid-template-columns:repeat(2,1fr);gap:7px;}}
.ga-item{margin:0;}
.ga-btn{display:block;width:100%;padding:0;border:0;background:#e9e9e7;cursor:pointer;border-radius:12px;overflow:hidden;position:relative;aspect-ratio:4/3;}
.ga-btn img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;display:block;}
.ga-btn:hover img{transform:scale(1.05);}

/* lightbox */
.lb{position:fixed;inset:0;z-index:2000;background:rgba(8,8,9,.97);display:none;}
.lb.open{display:block;}
.lb-stage{position:absolute;inset:54px 16px 60px;display:flex;align-items:center;justify-content:center;}
.lb-stage img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;box-shadow:0 30px 80px -30px rgba(0,0,0,.8);}
.lb-count{position:absolute;top:18px;left:0;right:0;text-align:center;color:#9b9b9b;font-size:12px;letter-spacing:.14em;}
.lb-cap{position:absolute;bottom:20px;left:0;right:0;text-align:center;color:#cfcfcf;font-size:13px;padding:0 20px;}
.lb-btn{position:absolute;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);color:#fff;width:48px;height:48px;border-radius:50%;font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;}
.lb-btn:hover{background:rgba(255,255,255,.2);}
.lb-x{top:14px;right:16px;}
.lb-prev{left:16px;top:50%;transform:translateY(-50%);}
.lb-next{right:16px;top:50%;transform:translateY(-50%);}
@media(max-width:600px){.lb-prev{left:8px;}.lb-next{right:8px;}.lb-btn{width:42px;height:42px;}}

/* ===================== COMMUNITY PAGE PHOTO HERO ===================== */
.chero .chero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
.chero.has-photo::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,11,13,.62) 0%,rgba(10,11,13,.42) 42%,rgba(10,11,13,.8) 100%);}
.chero.has-photo .wrap{z-index:2;}
.chero-credit{position:absolute;right:14px;bottom:10px;z-index:3;font-size:10px;color:rgba(255,255,255,.5);letter-spacing:.02em;}
.chero-credit a{color:rgba(255,255,255,.7);text-decoration:underline;}

/* communities hub */
.chub{padding:clamp(56px,7vw,96px) 0;background:#fff;}
.chub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media(max-width:860px){.chub-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:540px){.chub-grid{grid-template-columns:1fr;}}
.chub-card{position:relative;aspect-ratio:16/11;border-radius:16px;overflow:hidden;display:block;}
.chub-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.chub-card:hover img{transform:scale(1.06);}
.chub-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,12,12,.1),rgba(12,12,12,.66));transition:background .3s;}
.chub-card .lbl{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:18px 20px;color:#fff;}
.chub-card .lbl b{display:block;font-size:17px;font-weight:600;letter-spacing:.02em;}
.chub-card .lbl span{display:block;font-size:11.5px;color:rgba(255,255,255,.78);margin-top:2px;letter-spacing:.04em;}
.chub-card:hover::after{background:linear-gradient(180deg,rgba(12,12,12,.05),rgba(12,12,12,.55));}

/* community related strip */
.crel{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:8px;}
@media(max-width:640px){.crel{grid-template-columns:1fr;}}
.crel a{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:16/10;display:block;}
.crel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.crel a:hover img{transform:scale(1.06);}
.crel a::after{content:"";position:absolute;inset:0;background:rgba(12,12,12,.4);}
.crel span{position:absolute;z-index:2;left:14px;bottom:12px;color:#fff;font-size:14px;font-weight:600;letter-spacing:.03em;}

/* ===================== INSIGHTS ===================== */
.ihero{padding:128px 0 56px;background:radial-gradient(135% 120% at 50% -10%,#30333b,#16171b 48%,#0a0b0d 100%);color:#fff;position:relative;overflow:hidden;}
.ihero .crumb{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:18px;}
.ihero .crumb a{color:rgba(255,255,255,.8);}.ihero .crumb a:hover{color:var(--gold);}
.ihero .ieye{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:14px;}
.ihero h1{margin:0 0 16px;font-size:clamp(28px,4vw,46px);font-weight:300;line-height:1.12;max-width:18ch;}
.ihero .dek{font-size:clamp(15px,1.9vw,20px);font-weight:300;color:rgba(255,255,255,.82);max-width:60ch;line-height:1.55;}
.ihero .imeta{margin-top:22px;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:rgba(255,255,255,.55);}
.iwrap{max-width:760px;margin:0 auto;padding:clamp(40px,6vw,70px) var(--gutter);}
.ifig{max-width:1100px;margin:0 auto;padding:0 var(--gutter);}
.ifig img{width:100%;border-radius:16px;display:block;margin-top:-40px;position:relative;z-index:2;box-shadow:0 30px 70px -40px rgba(0,0,0,.5);aspect-ratio:16/8;object-fit:cover;}
.ifig figcaption{font-size:11px;color:var(--gray);text-align:right;margin-top:8px;}
.ikey{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:12px;padding:22px 26px;margin:0 0 34px;}
.ikey h2{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gray);margin:0 0 12px;}
.ikey ul{margin:0;padding-left:20px;}
.ikey li{font-size:14.5px;line-height:1.6;color:#33363b;margin-bottom:7px;}
.iprose p{font-size:16.5px;line-height:1.85;color:#2c2f34;margin:0 0 22px;}
.iprose h2{font-size:clamp(21px,2.6vw,28px);font-weight:600;letter-spacing:.01em;margin:40px 0 14px;color:var(--ink);}
.iprose h3{font-size:clamp(17px,2vw,20px);font-weight:600;margin:30px 0 10px;color:var(--ink);}
.iprose ul{margin:0 0 22px;padding-left:22px;}
.iprose li{font-size:16px;line-height:1.75;color:#2c2f34;margin-bottom:9px;}
.iprose a{color:#11131a;border-bottom:1px solid var(--gold);font-weight:500;}
.iprose a:hover{color:var(--gold);}
.iprose blockquote{margin:26px 0;padding:6px 0 6px 22px;border-left:3px solid var(--gold);font-style:italic;color:#3a3a3a;font-size:17px;line-height:1.6;}
.iprose strong{font-weight:600;color:var(--ink);}
.ifaq{max-width:760px;margin:0 auto;padding:0 var(--gutter) clamp(50px,7vw,80px);}
.iauthor{max-width:760px;margin:0 auto;padding:26px var(--gutter) 0;display:flex;gap:16px;align-items:center;border-top:1px solid var(--line);}
.iauthor img{width:60px;height:60px;border-radius:50%;object-fit:cover;object-position:top;flex:none;}
.iauthor b{font-size:14px;}.iauthor p{margin:3px 0 0;font-size:12.5px;color:var(--gray);line-height:1.5;}
.idisc{font-size:11px;color:var(--gray-2);font-style:italic;margin-top:18px;}

/* insights index cards */
.icards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media(max-width:860px){.icards{grid-template-columns:1fr;}}
.icard{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;display:flex;flex-direction:column;transition:box-shadow .3s,transform .3s;}
.icard:hover{box-shadow:0 24px 50px -30px rgba(0,0,0,.3);transform:translateY(-3px);}
.icard img{aspect-ratio:16/10;object-fit:cover;width:100%;display:block;}
.icard .ib{padding:20px;display:flex;flex-direction:column;flex:1;}
.icard .it{font-size:16px;font-weight:600;line-height:1.35;margin:0 0 8px;}
.icard .ix{font-size:13.5px;color:#555;line-height:1.6;flex:1;}
.icard .im{margin-top:14px;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--gray);}

/* simple dark hero (hub / index) */
.simple-hero{padding:128px 0 64px;background:radial-gradient(135% 120% at 50% -10%,#30333b,#16171b 48%,#0a0b0d 100%);color:#fff;}
.simple-hero .crumb{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:18px;}
.simple-hero .crumb a{color:rgba(255,255,255,.8);}.simple-hero .crumb a:hover{color:var(--gold);}
.simple-hero .ceye{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:14px;}
.simple-hero h1{margin:0 0 14px;font-size:clamp(32px,5vw,54px);font-weight:300;text-transform:uppercase;letter-spacing:.01em;}
.simple-hero p{font-size:clamp(15px,1.8vw,19px);font-weight:300;color:rgba(255,255,255,.82);max-width:640px;line-height:1.6;}

/* 404 */
.nf{min-height:70vh;display:flex;align-items:center;justify-content:center;text-align:center;background:radial-gradient(135% 120% at 50% -10%,#30333b,#16171b 48%,#0a0b0d 100%);color:#fff;padding:120px 0 80px;}
.nf h1{font-size:clamp(60px,12vw,120px);font-weight:300;margin:0;color:var(--gold);}
.nf p{font-size:17px;color:rgba(255,255,255,.85);margin:10px 0 28px;}

/* ===================== REVIEW FIXES: contrast, hierarchy, hero ===================== */
/* AA-safe muted text token (was #8d8d8d ~3.5:1 on white) */
:root{--gray:#6e6e6e;}
/* hero H1 (agent name carries the heading; brokerage is the visual anchor) */
.hero .hero-h1{margin:0 0 18px;display:flex;flex-direction:column;align-items:center;gap:14px;}
.hero .hero-h1 .hn{font-size:clamp(15px,1.9vw,19px);font-weight:600;letter-spacing:0.28em;text-transform:uppercase;color:rgba(255,255,255,.82);}
.hero .hero-h1 .hb{font-size:clamp(26px,4.4vw,46px);font-weight:500;letter-spacing:.03em;text-transform:uppercase;line-height:1.05;}
.hero .hero-sub{max-width:600px;margin:0 auto 32px;font-size:clamp(14px,1.7vw,17px);font-weight:300;color:rgba(255,255,255,.84);line-height:1.65;}
/* search panel + labels contrast (AA) */
.hero .search{background:rgba(14,12,10,.66);}
.hero .search .f label{color:rgba(255,255,255,.74);}
.hero .search .f span{color:#fff;}
.hero .search-cap{color:rgba(255,255,255,.7);}
/* stats label contrast */
.stats .slbl{color:rgba(255,255,255,.72);}
/* footer fine print contrast (was --gray on ink) */
footer .f-acc{color:var(--gray-2);font-size:11px;}
footer .f-copy{color:var(--gray-2);}
/* consent label legible */
.consent label{font-size:10.5px;line-height:1.5;color:#555;margin:0;}
/* PDP section headers: real headings, not captions */
.pdp-section h2{font-size:clamp(18px,2.2vw,22px);color:var(--ink);font-weight:600;letter-spacing:.01em;text-transform:none;}
/* lightbox controls visible over any photo */
.lb-btn{background:rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.4);backdrop-filter:blur(4px);}
.lb-btn:hover{background:rgba(0,0,0,.72);}
/* PDP mobile: surface price + CTA right after the gallery (visual order only) */
@media(max-width:900px){.pdp-wrap{display:flex;flex-direction:column;}.pdp-aside{order:-1;position:static;}}
/* communities hub: last card is a full-width feature on desktop (kills orphan), normal on tablet */
.chub-card.wide{grid-column:1/-1;aspect-ratio:32/9;}
@media(max-width:860px){.chub-card.wide{grid-column:auto;aspect-ratio:16/11;}}
.ccards .ccard.wide{grid-column:1/-1;aspect-ratio:32/9;}
@media(max-width:860px){.ccards .ccard.wide{grid-column:auto;aspect-ratio:16/10;}}
/* community hero legibility over bright skies */
.chero.has-photo::after{background:linear-gradient(180deg,rgba(10,11,13,.7) 0%,rgba(10,11,13,.5) 45%,rgba(10,11,13,.86) 100%);}
.chero .csub{text-shadow:0 1px 14px rgba(0,0,0,.4);}
/* related-community card labels */
.crel a::after{background:rgba(12,12,12,.5);}
.crel span{text-shadow:0 1px 8px rgba(0,0,0,.7);}
.chub-card .lbl b,.chub-card .lbl span{text-shadow:0 1px 8px rgba(0,0,0,.6);}
/* insight figure caption contrast */
.ifig figcaption{color:var(--gray-2);}

/* ===================== WOW: interactive WebGL "molten gold" hero ===================== */
.hero-fx{position:absolute;inset:0;width:100%;height:100%;z-index:0;display:block;opacity:0;transition:opacity 1.4s ease;pointer-events:none;}
.hero-fx.ready{opacity:1;}
.hero.tex::before{z-index:1;}              /* film grain above the canvas */
.hero::after{z-index:1;pointer-events:none;} /* vignette above the canvas */
.hero .wrap{position:relative;z-index:2;}
@media(prefers-reduced-motion:reduce){.hero-fx{transition:none;}}

/* --- reworked hero: agent is the star, shorter, more character --- */
.hero{min-height:auto;padding:140px 0 32px;}
@media(max-width:760px){.hero{padding:116px 0 50px;}}
.hero .hero-cta{margin-bottom:38px;}
.hero .bars{margin-bottom:8px;}
/* CTA bar: keep each label on one line, balanced */
@media(min-width:761px){.hero .bars a{white-space:nowrap;padding:16px 20px;font-size:12.5px;letter-spacing:.04em;}}
@media(max-width:760px){.hero .bars a{min-width:100%;}}
.diff-lead{text-align:center;max-width:680px;margin:0 auto;font-size:clamp(15px,1.8vw,18.5px);font-weight:300;color:#3a3a3a;line-height:1.6;}
.hero .hero-eyebrow,.hero .hero-name,.hero .hero-statement,.hero .hero-sub{text-shadow:0 1px 30px rgba(5,6,8,.66);}
.hero-eyebrow{font-size:clamp(11px,1.2vw,12.5px);font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin:0 0 22px;}
.hero-name{margin:0 0 16px;font-size:clamp(38px,6.6vw,72px);font-weight:300;letter-spacing:.005em;line-height:1.0;color:#fff;text-transform:none;}
.hero-name .amp{font-style:italic;font-weight:300;color:var(--gold);}
.hero-statement{font-size:clamp(18px,2.5vw,28px);font-weight:300;color:rgba(255,255,255,.95);margin:0 auto 16px;max-width:22ch;line-height:1.25;}
.hero-sub{max-width:540px;margin:0 auto 34px;font-size:clamp(13.5px,1.5vw,15.5px);font-weight:300;color:rgba(255,255,255,.72);line-height:1.65;}
.hero-scroll{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);z-index:3;color:rgba(255,255,255,.55);font-size:26px;line-height:1;text-decoration:none;animation:heroBob 2.2s ease-in-out infinite;}
.hero-scroll:hover{color:var(--gold);}
@keyframes heroBob{0%,100%{transform:translateX(-50%) translateY(0);}50%{transform:translateX(-50%) translateY(8px);}}
@media(max-width:760px){.hero-scroll{display:none;}}
@media(prefers-reduced-motion:reduce){.hero-scroll{animation:none;}}

/* ===================== FIXES: hero containment + community label legibility ===================== */
/* contain the hero canvas + vignette + grain so they don't bleed over the stats bar (esp. mobile) */
.hero{position:relative;}
/* lift Featured Communities labels ABOVE the dark overlay so the white reads crisp */
.ccard span{z-index:4;font-weight:600;text-shadow:0 2px 16px rgba(0,0,0,.92),0 1px 3px rgba(0,0,0,.7);}

/* ===================== PHOTO + DRIFTING CLOUDS HERO ===================== */
.photo-hero{position:relative;min-height:82vh;overflow:hidden;background:#0a0b0d;}
@media(max-width:760px){.photo-hero{min-height:auto;padding:120px 0 58px;}}
.photo-hero .hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 52%;z-index:0;}
.hero-sky{position:absolute;left:-2%;right:-2%;top:0;height:64%;z-index:1;overflow:hidden;pointer-events:none;
  -webkit-mask-image:linear-gradient(to bottom,#000 56%,transparent 100%);mask-image:linear-gradient(to bottom,#000 56%,transparent 100%);}
.hero-sky .cloud-track{display:flex;width:200%;height:100%;}
.hero-sky .cloud-track img{width:50%;height:100%;object-fit:cover;display:block;}
.cloud-far{opacity:.5;}
.cloud-far .cloud-track{animation:cloudDrift 165s linear infinite;}
.cloud-near{height:74%;opacity:.72;}
.cloud-near .cloud-track{animation:cloudDrift 105s linear infinite;}
@keyframes cloudDrift{from{transform:translate3d(0,0,0);}to{transform:translate3d(-50%,0,0);}}
.hero-scrim{position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(10,11,13,.5) 0%,rgba(10,11,13,.18) 30%,rgba(10,11,13,.4) 64%,rgba(10,11,13,.86) 100%);}
@media(prefers-reduced-motion:reduce){.cloud-far .cloud-track,.cloud-near .cloud-track{animation:none;}}
/* center scrim for hero text legibility over bright clouds */
.photo-hero .hero-scrim{background:radial-gradient(ellipse 64% 50% at 50% 46%,rgba(8,9,11,.52),rgba(8,9,11,0) 72%),linear-gradient(180deg,rgba(10,11,13,.46) 0%,rgba(10,11,13,.12) 28%,rgba(10,11,13,.34) 62%,rgba(10,11,13,.86) 100%);}

/* ===================== BRAND GOLD matched to Cece's logo (champagne/antique gold) ===================== */
:root{--gold:#C3A35A;}
.ccard:hover::after{border-color:rgba(195,163,90,.6);}

/* daytime hero: stronger text scrim + eyebrow legibility over bright sky */
.photo-hero .hero-scrim{background:radial-gradient(ellipse 70% 60% at 50% 43%,rgba(8,9,11,.62),rgba(8,9,11,0) 72%),linear-gradient(180deg,rgba(10,11,13,.5) 0%,rgba(10,11,13,.14) 24%,rgba(10,11,13,.32) 60%,rgba(10,11,13,.82) 100%);}
.photo-hero .hero-eyebrow{text-shadow:0 1px 18px rgba(0,0,0,.85),0 0 3px rgba(0,0,0,.6);}

/* ===================== stats as frosted-glass bar over the hero photo ===================== */
.photo-hero{flex-direction:column;justify-content:flex-start;padding-bottom:0;}
@media(max-width:760px){.photo-hero{padding:116px 0 0;}}
.photo-hero > .wrap{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;width:100%;}
.photo-hero .stats{position:relative;z-index:5;width:100%;margin-top:auto;background:rgba(12,13,16,.4);-webkit-backdrop-filter:blur(13px) saturate(1.08);backdrop-filter:blur(13px) saturate(1.08);border-top:1px solid rgba(255,255,255,.18);border-bottom:0;}
.photo-hero .stats .snum,.photo-hero .stats .snum .gold{color:var(--gold);}
.photo-hero .stats .slbl{color:rgba(255,255,255,.85);}
.photo-hero .stats .stat:not(:last-child)::after{background:rgba(255,255,255,.16);}
/* CTA bar buttons: clearer over the photo */
.hero .bars{background:rgba(10,12,16,.42);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border-color:rgba(255,255,255,.36);}
.hero .bars a{background:rgba(255,255,255,.05);border-left-color:rgba(255,255,255,.2);}
.hero .bars a:hover{background:rgba(255,255,255,.18);}
.photo-hero .stats{margin-top:0;}

/* Text/Call Cece buttons: same frosted-glass treatment as the Buy/Sell bar */
.hero .hero-cta a{background:rgba(10,12,16,.42);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border-color:rgba(255,255,255,.42);}

/* ===================== BRAND REFRESH · July 2026 (Cece's direction) =====================
   Charcoal #1E1E1E · Soft White #FAFAF8 · Champagne Gold #C6A15B · Warm Ivory #F8F6F2
   Cormorant Garamond display · Inter body · Montserrat SemiBold buttons.
   Append-only block: these tokens/rules deliberately override everything above. */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/cormorant-500.woff2) format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url(/assets/fonts/cormorant-500i.woff2) format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/cormorant-600.woff2) format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/cormorant-700.woff2) format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/inter-300.woff2) format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/inter-400.woff2) format('woff2');}
@font-face{font-family:'Inter';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/inter-400i.woff2) format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/inter-500.woff2) format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/inter-600.woff2) format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/inter-700.woff2) format('woff2');}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/montserrat-600.woff2) format('woff2');}

:root{
  --ink:#1E1E1E; --ink-2:#242424; --charcoal:#1E1E1E;
  --white:#FAFAF8; --paper:#F8F6F2;
  --line:#E8E3D9;
  --gold:#C6A15B;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --btnfont:'Montserrat',var(--sans);
}

/* surfaces: warm ivory page, soft-white alternating sections */
body{background:var(--paper);}
.meet,.news,.soc,.diff,.props,.csec,.chub,.ga-sec,.pdp-top{background:var(--white);}
.gt,.comm,.tst,.csec.alt{background:var(--paper);}

/* display serif for headings (small UI headings opt back out below) */
h1,h2,h3{font-family:var(--serif);}
.htitle h2{font-weight:600;letter-spacing:.05em;}
.hero-name{font-weight:500;}
.chero h1,.simple-hero h1,.ihero h1,.ctaband h2,.nf h1{font-weight:600;}
.diff .d h3,.gt h2,.sp-addr,.pdp-head .addr{font-weight:600;}
.sp-addr{letter-spacing:.04em;}
.faq .q,.a11y-panel h3,.ikey h2{font-family:var(--sans);}
.nl p,.soc .sline{font-family:var(--serif);font-style:italic;}
.nl p{font-size:clamp(17px,2vw,21px);}
.soc .sline{font-size:18px;}

/* buttons: Montserrat SemiBold, black, champagne-gold hover */
.hero-cta a,.bars a,.submit,.lbtn,.sp-btn,.cta-row a.btn,.pdp-card .cta a,.viewmore a,.more,.nmore,.sfollow,.nl .nlform button{font-family:var(--btnfont);font-weight:600;}
.submit,.lbtn,.sp-btn,.pdp-card .cta .primary{background:#000;color:#fff;}
.submit:hover,.lbtn:hover,.sp-btn:hover,.pdp-card .cta .primary:hover{background:var(--gold);color:#1E1E1E;box-shadow:none;}
.lbtn.ghost{background:transparent;color:var(--ink);}
.lbtn.ghost:hover{background:var(--gold);border-color:var(--gold);color:#1E1E1E;}
.cta-row a.btn.solid{background:#000;border-color:rgba(255,255,255,.34);color:#fff;}
.cta-row a.btn:hover,.cta-row a.btn.solid:hover{background:var(--gold);border-color:var(--gold);color:#1E1E1E;}
.hero .hero-cta a{background:rgba(0,0,0,.72);border-color:rgba(255,255,255,.38);}
.hero .hero-cta a:hover{background:var(--gold);color:#1E1E1E;border-color:var(--gold);}
.hero .bars a:hover{background:var(--gold);color:#1E1E1E;}
.ccard:hover::after{border-color:rgba(198,161,91,.6);}

/* interior hero photo is much brighter than the old dusk exterior: stronger scrim, esp. top (nav) and center (text) */
.photo-hero .hero-scrim{background:radial-gradient(ellipse 72% 62% at 50% 44%,rgba(10,10,12,.66),rgba(10,10,12,0) 74%),linear-gradient(180deg,rgba(10,10,12,.62) 0%,rgba(10,10,12,.22) 30%,rgba(10,10,12,.38) 60%,rgba(10,10,12,.84) 100%);}

/* ===================== CINEMATIC HERO MOTION · July 2026 =====================
   Port of the Codex "luxury-realtor-hero-motion" package around the client's
   ultrawide sunlit great-room still: slow camera drift on the photo, breathing
   sun glow over the windows, chandelier crystal glints, drifting dust motes,
   plus a glimmer sweep on the hero name. Effect layers sit ABOVE the scrim (z2,
   which stays for text legibility) at z3, below the hero content at z5. */
.photo-hero{isolation:isolate;}
/* max-width:none is load-bearing: the global `img{max-width:100%}` (line 20)
   otherwise clamps this 108% back to 100%, and with left:-4% the photo lands
   ~4% short of the right edge — a bare charcoal bar down the side of the hero. */
.photo-hero .hero-photo{inset:-4%;width:108%;height:108%;max-width:none;object-position:50% 50%;filter:saturate(1.02) contrast(1.015);transform:scale(1.015) translate3d(-.35%,0,0);animation:camDrift 22s ease-in-out infinite alternate;will-change:transform;}
@keyframes camDrift{
  0%{transform:scale(1.015) translate3d(-.35%,0,0);}
  48%{transform:scale(1.045) translate3d(.35%,-.2%,0);}
  100%{transform:scale(1.075) translate3d(-.15%,.25%,0);}
}
.hero-sun{position:absolute;z-index:3;top:37.5%;left:70.2%;width:min(34rem,38vw);aspect-ratio:1;pointer-events:none;border-radius:50%;
  background:radial-gradient(circle,rgba(255,253,238,.84) 0 1.5%,rgba(255,224,166,.34) 5%,rgba(255,224,166,.12) 23%,transparent 67%);
  mix-blend-mode:screen;transform:translate(-50%,-50%) scale(.84);animation:sunBreathe 7s ease-in-out infinite;will-change:opacity,transform;}
.hero-sun::before,.hero-sun::after{content:"";position:absolute;inset:17%;
  background:linear-gradient(90deg,transparent 47%,rgba(255,244,209,.24) 50%,transparent 53%),linear-gradient(0deg,transparent 47%,rgba(255,244,209,.17) 50%,transparent 53%);
  filter:blur(5px);animation:rayTurn 28s linear infinite;}
.hero-sun::after{inset:26%;opacity:.55;transform:rotate(45deg);animation-direction:reverse;animation-duration:34s;}
@keyframes sunBreathe{0%,100%{opacity:.48;transform:translate(-50%,-50%) scale(.82);}50%{opacity:.9;transform:translate(-50%,-50%) scale(1.06);}}
@keyframes rayTurn{to{transform:rotate(1turn);}}
.hero-glints{position:absolute;z-index:3;inset:0;pointer-events:none;}
.hero-glints i{position:absolute;top:var(--y);left:var(--x);width:clamp(.35rem,.55vw,.7rem);aspect-ratio:1;opacity:0;border-radius:50%;background:#fffdf2;
  box-shadow:0 0 .45rem .14rem rgba(255,246,214,.65),0 0 1.2rem .35rem rgba(255,224,166,.38);
  transform:scale(.2) rotate(45deg);animation:crystalGlint 5.4s ease-in-out infinite;animation-delay:var(--delay);}
.hero-glints i::before,.hero-glints i::after{content:"";position:absolute;top:50%;left:50%;width:240%;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,245,.82),transparent);transform:translate(-50%,-50%);}
.hero-glints i::after{transform:translate(-50%,-50%) rotate(90deg);}
@keyframes crystalGlint{
  0%,31%,44%,100%{opacity:0;transform:scale(.2) rotate(45deg);}
  35%{opacity:.95;transform:scale(1) rotate(45deg);}
  39%{opacity:.12;transform:scale(.48) rotate(45deg);}
}
.hero-atmo{position:absolute;z-index:3;inset:0;pointer-events:none;opacity:.33;
  background-image:radial-gradient(circle at 62% 55%,rgba(255,255,244,.8) 0 1px,transparent 1.7px),radial-gradient(circle at 71% 47%,rgba(255,241,204,.72) 0 1.2px,transparent 2px),radial-gradient(circle at 78% 62%,rgba(255,255,244,.65) 0 .8px,transparent 1.6px),radial-gradient(circle at 66% 69%,rgba(255,235,194,.68) 0 1px,transparent 1.8px),radial-gradient(circle at 84% 53%,rgba(255,255,244,.72) 0 1.1px,transparent 1.9px);
  background-size:19rem 16rem,23rem 20rem,17rem 22rem,29rem 25rem,31rem 27rem;filter:blur(.25px);mix-blend-mode:screen;animation:dustDrift 18s linear infinite;will-change:background-position,opacity;}
@keyframes dustDrift{
  0%{opacity:.16;background-position:0 0,4rem 2rem,9rem 3rem,0 8rem,11rem 1rem;}
  50%{opacity:.36;}
  100%{opacity:.18;background-position:4rem -7rem,9rem -9rem,13rem -6rem,6rem -10rem,15rem -8rem;}
}
@media(max-width:48rem){
  .photo-hero .hero-photo{object-position:60% 50%;}
  .hero-sun{left:75%;width:65vw;}
}

/* glimmer sweep across the hero name — keeps the white/gold two-tone, a warm
   champagne highlight band sweeps left-to-right every 6s */
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .hero-name{background:linear-gradient(105deg,#fff 0 40%,#f3e3bd 46%,#e2c27c 50%,#f3e3bd 54%,#fff 60% 100%) 100% 0/250% 100%;
    -webkit-background-clip:text;background-clip:text;color:transparent;
    text-shadow:none;filter:drop-shadow(0 1px 22px rgba(5,6,8,.78));
    animation:nameGlimmer 6s ease-in-out infinite;}
  .hero-name .amp{background:linear-gradient(105deg,var(--gold) 0 40%,#ecd6a2 45%,#fffef5 50%,#ecd6a2 55%,var(--gold) 60% 100%) 100% 0/250% 100%;
    -webkit-background-clip:text;background-clip:text;color:transparent;
    animation:nameGlimmer 6s ease-in-out infinite;}
}
@keyframes nameGlimmer{0%,18%{background-position:100% 0;}62%,100%{background-position:0% 0;}}

@media(prefers-reduced-motion:reduce){
  .photo-hero .hero-photo,.hero-sun,.hero-sun::before,.hero-sun::after,.hero-glints i,.hero-atmo,.hero-name,.hero-name .amp{animation:none;}
  .photo-hero .hero-photo{transform:scale(1.03);}
  .hero-sun{opacity:.62;}
}

/* ===================== MOBILE HERO · July 2026 =====
   Phones keep the overlay look (text ON the photo, per Mike) but load a separate
   kitchen-focused crop (hero-mobile.*, cut from the same ultrawide master via the
   <source media> in the hero <picture>) so the slice that survives object-fit:
   cover is the island + arched windows + cabinetry, not a generic center sliver.
   The name must stay on ONE line (per Mike): size is the max single-line fit for
   phone widths. NOTE `.hero h1` (line 72) outweighs `.hero-name` — any hero-name
   override needs the h1-qualified selector. */
.hero-media{position:absolute;inset:0;}
@media(max-width:760px){
  .photo-hero .hero-photo{animation:none;}
  /* the glow sits ON the crop's real sunburst (~74%/44%) and is dialled back:
     at full strength it blooms across the headline and re-blows the contrast
     the scrim just bought — it renders at z3, ABOVE the scrim, so the scrim
     cannot claw it back. brightness() composes with the animated opacity, so
     the breathing motion survives. */
  .hero-sun{width:56vw;left:74%;top:44%;filter:brightness(.6);}
  .hero h1.hero-name{font-size:clamp(22px,7vw,40px);letter-spacing:.01em;white-space:nowrap;margin-bottom:16px;}
  /* the blue island is the photo's centerpiece (per Mike): the photo box ends
     behind the solid stats band (280px offset overlaps it so band-height
     differences across devices never open a charcoal gap), and the CTA bars
     float OVER the island, translucent and slightly smaller so the navy
     cabinetry reads through them */
  .hero-media{bottom:132px;}
  /* max-width: the stacked bars fill the whole 350px wrap by default, but the
     widest label ("Find My Dream Home") only needs 176px including its padding
     — that left ~87px of dead panel each side at 390px (105px at 430px) sitting
     on top of the island. 240px keeps ~32px of breathing room around the
     longest label and hands the rest back to the photo. `margin:0 auto` from
     the base .bars rule (line 76) keeps it centred. */
  .hero .bars{max-width:240px;margin-top:22px;background:rgba(10,12,16,.34);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-color:rgba(255,255,255,.22);}
  .hero .bars a{background:transparent;padding:11px 16px;font-size:11px;}
  .photo-hero .stats{background:#0b0c0e;-webkit-backdrop-filter:none;backdrop-filter:none;}

  /* ---- legibility over the bright kitchen crop · July 24, 2026 ----
     The mobile crop is high-key: with the old light scrim, measured backdrop
     luminance under the copy ran 141-168, i.e. white-on-photo contrast of only
     2.4-3.3:1 (1.2:1 on the blown-out window patches) against a 4.5:1 bar —
     that is why the white washed out. Solid black was tried and fails the
     opposite way: it reads fine on the cream ceiling but disappears into the
     chandelier, the window mullions and the navy island. So the fix controls
     the BACKDROP rather than the text colour, and the type keeps the white/gold
     it shares with desktop.
       · a warm near-black ramp (10,8,7 — neutral black over this amber photo
         goes muddy grey) that is deepest behind the copy and RELEASES by 75%
         so the blue island still reads through, per Mike;
       · a soft elliptical pool behind the headline for depth with no visible edge;
       · saturation lifted a touch so the golds survive the dimming — the photo
         reads as late-afternoon light, not as a dimmed photo. */
  .photo-hero .hero-photo{filter:saturate(1.14) contrast(1.04);}
  .photo-hero .hero-scrim{
    background:
      radial-gradient(118% 44% at 50% 28%,rgba(10,8,7,.50),rgba(10,8,7,0) 78%),
      linear-gradient(180deg,
        rgba(10,8,7,.70) 0%,
        rgba(10,8,7,.62) 20%,
        rgba(10,8,7,.55) 42%,
        rgba(10,8,7,.50) 58%,
        rgba(10,8,7,.36) 67%,
        rgba(10,8,7,.15) 75%,
        rgba(10,8,7,.06) 85%,
        rgba(10,8,7,.22) 100%);}
  /* Type: weight and a TIGHT edge shadow do the work the old 30px blur never
     could — at 14px a 30px blur is a haze, it adds no letterform definition.
     Pair each with a wider ambient shadow for separation from the photo. */
  .hero .hero-eyebrow,.hero .hero-statement,.hero .hero-sub{
    text-shadow:0 1px 2px rgba(6,7,10,.6),0 2px 16px rgba(6,7,10,.5);}
  /* Kill the desktop glimmer sweep on phones. It animates a champagne band
     across the name, so at any given moment whichever word it is crossing goes
     gold — at 72px on desktop that reads as a deliberate shimmer, but at 27px
     on a phone it just reads as "Susan is the same gold as Cece". Mobile gets
     the flat two-tone instead: white name, gold "Cece" only. Overriding the
     @supports background-clip:text rules needs BOTH background:none and
     background-clip reset, plus a real colour to replace color:transparent.
     Shadow stays a filter() so it survives either path. */
  .hero h1.hero-name{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:#fff;animation:none;
    filter:drop-shadow(0 1px 1.5px rgba(6,7,10,.55)) drop-shadow(0 2px 16px rgba(6,7,10,.6));}
  .hero h1.hero-name .amp{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:var(--gold);animation:none;}
  .hero .hero-statement{font-weight:400;color:#fff;}
  .hero .hero-sub{font-weight:400;color:rgba(255,255,255,.94);font-size:14.5px;}
  /* tighter hero rhythm + compact stats band on phones (per Mike) */
  .photo-hero{padding-top:96px;}
  .hero-eyebrow{margin-bottom:12px;}
  .hero h1.hero-name{margin-bottom:10px;}
  .hero-statement{margin-bottom:10px;}
  .hero .hero-sub{margin-bottom:20px;}
  .hero .hero-cta{margin-bottom:24px;gap:16px;}
  .stats .stat{padding:13px 8px;}
  .stats .snum{font-size:19px;}
  .stats .snum.txt{font-size:12.5px;}
  .stats .slbl{margin-top:5px;font-size:8.5px;letter-spacing:.12em;}
}

/* ===================== MOBILE-FRIENDLY SECTIONS · July 2026 =====================
   Phone pass over the whole homepage (per Mike): compact paddings, 2-col
   community cards (was 1-col × 10 = 2600px of scroll), horizontal thumb-style
   insight cards (was 4400px), tighter listing spotlight, gt card, soc, footer. */
@media(max-width:760px){
  .meet,.diff,.props,.comm,.news,.gt,.soc{padding:46px 0;}
  .nl{padding:38px 0;}
  footer{padding:40px 0 22px;}
  .meet .grid{gap:22px;}
  .meet .htitle .num{font-size:64px;}
  .diff .grid3{gap:20px;margin-top:26px;}
  .spotlight{gap:18px;}
  .sp-feats{gap:7px 16px;}
  .gt .card{padding:24px 18px;}
  .soc .sline{margin-bottom:22px;}
  /* insights: horizontal thumb cards */
  .ncards{gap:18px;}
  .ncard{display:grid;grid-template-columns:104px 1fr;gap:2px 14px;align-items:start;}
  .ncard a.nimg-link{grid-row:1 / span 3;border-radius:10px;}
  .ncard .nimg{aspect-ratio:1;height:104px;}
  .ncard .ntitle{margin:0 0 4px;font-size:12px;letter-spacing:.01em;}
  .ncard .nex{font-size:12px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  .ncard .nmore{margin-top:6px;}
}
/* communities: 2-col compact grid on phones (overrides the 540px single-col rule) */
@media(max-width:540px){
  .ccards{grid-template-columns:1fr 1fr;gap:10px;}
  .ccard{border-radius:12px;}
  .ccard span{font-size:11.5px;letter-spacing:.05em;}
}

/* ===================== MOBILE PASS 2: meet / diff / spotlight / FAQ · July 2026 ===
   FAQs are now native <details> accordions (markup in render.mjs): every item
   carries `open` so desktop looks exactly as before; site.js closes all but the
   first on phones. Plus compact phone typography for Meet Cece, What Sets Cece
   Apart, and the Featured Listing spotlight. */
details.qa summary.q{cursor:pointer;list-style:none;display:block;}
details.qa summary.q::-webkit-details-marker{display:none;}
@media(max-width:760px){
  /* FAQ accordion look */
  .faq .qa{padding:15px 0;}
  .faq .q{font-size:15px;margin:0;position:relative;padding-right:28px;}
  details.qa .q::after{content:"+";position:absolute;right:2px;top:50%;transform:translateY(-50%);font-size:19px;font-weight:400;color:var(--gold);line-height:1;}
  details.qa[open] .q::after{content:"\2212";}
  details.qa[open] summary.q{margin-bottom:8px;}
  .faq .a{font-size:14px;line-height:1.65;}
  /* Meet Cece */
  .meet .photo .cece-portrait{max-width:250px;}
  .meet p{font-size:14px;line-height:1.7;margin-bottom:13px;}
  /* What Sets Cece Apart */
  .diff .d{padding-top:14px;}
  .diff .d .dn{margin-bottom:7px;}
  .diff .d h3{margin-bottom:7px;}
  .diff .d p{font-size:14px;line-height:1.65;}
  /* Featured Listing spotlight */
  .sp-main{aspect-ratio:3/2;}
  .sp-strip{grid-template-columns:repeat(5,1fr);gap:6px;margin-top:6px;}
  .sp-specs{gap:7px;margin-bottom:14px;}
  .sp-specs span{padding:6px 13px;font-size:11.5px;}
  .sp-city{margin-bottom:12px;}
  .sp-price{font-size:26px;}
  .sp-addr{font-size:16px;}
  .sp-desc{font-size:13.5px;line-height:1.65;margin-bottom:14px;}
  .sp-feats{grid-template-columns:1fr 1fr;gap:7px 14px;}
  .sp-feats li{font-size:12.5px;padding-left:16px;}
  .sp-btn{padding:12px 24px;}
}

/* contact form submit status (success/error) */
.form-status{margin-top:14px;text-align:center;font-size:13px;line-height:1.6;font-weight:500;}
.form-status.ok{color:#3d7a4f;}
.form-status.err{color:#b3413a;}
