html, body { margin: 0; }

  :root {
    --plum: #52104A;
    --plum-deep: #3A0B34;
    --olive: #969B21;
    --olive-ink: #5E6214;
    --olive-lite: #D4D86A;
    --ground: #FFFFFF;
    --tint: #F6F2F5;
    --line: #E6DDE4;
    --ink: #2A1427;
    --muted: #6E5F6B;
    --display: "Alegreya Sans", "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
    --body: "Source Sans 3", "Segoe UI", Helvetica, Arial, sans-serif;
    color-scheme: light;
  }
  * { box-sizing: border-box; }
  [hidden] { display: none !important; }
  @media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }
  body { background: var(--ground); color: var(--ink); font: 400 17px/1.6 var(--body); }
  a { color: var(--plum); }
  :focus-visible { outline: 3px solid var(--olive); outline-offset: 2px; }
  h1, h2, h3 { font-family: var(--display); line-height: 1.1; text-wrap: balance; margin: 0; }
  p { margin: 0; }
  .wrap { max-width: 1120px; margin: 0 auto; padding-inline: 20px; }

  /* Review bar: shows which domain each view belongs to */
  .review { display: none !important; background: var(--ink); color: #EADCE7; font-size: 13px; }
  .review .wrap { display: flex; align-items: center; justify-content: space-between; gap: 10px 16px; flex-wrap: wrap; padding-block: 8px; }
  .review .addr { display: flex; align-items: center; gap: 8px; }
  .review .addr code { font: 600 13px/1 ui-monospace, "SF Mono", Menlo, monospace; background: rgba(255,255,255,.1); color: #fff; padding: 5px 9px; border-radius: 0; }
  .review nav { display: flex; gap: 6px; flex-wrap: wrap; }
  .review nav a { color: #EADCE7; text-decoration: none; padding: 5px 10px; border-radius: 0; border: 1px solid rgba(255,255,255,.2); }
  .review nav a[aria-current="page"] { background: var(--olive); border-color: var(--olive); color: #fff; }

  /* Header */
  header.site { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 10; background: rgba(255,255,255,.97); border-bottom: 1px solid var(--line); }
  header.site .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: 10px; }
  .brand { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--plum); }
  .brand img { width: 44px; height: auto; }
  .brand a { color: inherit; text-decoration: none; display: block; }
  .brand-sub:hover small, .brand-sub:focus-visible small { text-decoration: underline; }
  .brand span { display: grid; gap: 3px; font: 700 18px/1 var(--display); letter-spacing: .12em; text-transform: uppercase; }
  .brand small { font: 500 12px/1 var(--display); letter-spacing: .16em; color: var(--olive-ink); }
  nav.main { display: flex; gap: 22px; flex-wrap: wrap; }
  nav.main a { font: 500 15px/1 var(--display); letter-spacing: .08em; text-transform: uppercase; text-decoration: none; color: var(--ink); padding-block: 8px; border-bottom: 2px solid transparent; }
  nav.main a:hover { border-color: var(--olive); color: var(--plum); }
  .menu-btn { display: none; }
  @media (max-width: 800px) {
    .brand span { font-size: 16px; }
    header.site .wrap { position: relative; flex-wrap: nowrap; }
    .menu-btn { display: inline-flex; flex-direction: column; justify-content: center; gap: 5px; width: 44px; height: 44px; padding: 0 11px; border: 1px solid var(--line); background: #fff; cursor: pointer; flex: none; }
    .menu-btn span { display: block; height: 2px; background: var(--plum); transition: transform .2s ease, opacity .2s ease; }
    header.site.open .menu-btn span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    header.site.open .menu-btn span:nth-child(2) { opacity: 0; }
    header.site.open .menu-btn span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
    nav.main { display: none; position: absolute; left: 0; right: 0; top: 100%; flex-direction: column; gap: 0; background: #fff; border-bottom: 1px solid var(--line); box-shadow: 0 12px 24px rgba(42,8,38,.12); padding: 6px 16px 12px; }
    header.site.open nav.main { display: flex; }
    nav.main a { padding: 14px 4px; font-size: 16px; border-bottom: 1px solid var(--line); }
    nav.main a:last-child { border-bottom: 0; }
    nav.main a[aria-current="page"] { border-color: var(--line); color: var(--plum); font-weight: 700; }
  }
  .btn { display: inline-flex; align-items: center; gap: 8px; font: 700 15px/1 var(--display); letter-spacing: .1em; text-transform: uppercase; text-decoration: none; padding: 14px 22px; border-radius: 0; border: 2px solid transparent; cursor: pointer; }
  .btn-olive { background: var(--olive); color: #fff; }
  .btn-olive:hover { background: var(--olive-ink); }
  .btn-ghost { border-color: rgba(255,255,255,.55); color: #fff; }
  .btn-ghost:hover { border-color: #fff; background: rgba(255,255,255,.08); }
  .btn-plum { background: var(--plum); color: #fff; }
  .btn-plum:hover { background: var(--plum-deep); }
  .faq { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 56px; align-items: start; }
  .faq-list { display: grid; gap: 10px; }
  .faq-item { background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--olive); }
  .faq-item summary { list-style: none; cursor: pointer; padding: 18px 52px 18px 22px; position: relative; }
  .faq-item summary::-webkit-details-marker { display: none; }
  .faq-item summary::after { content: "+"; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); font: 800 26px/1 var(--display); color: var(--plum); }
  .faq-item[open] summary::after { content: "\2013"; }
  .faq-item h3 { font: 800 19px/1.3 var(--display); color: var(--plum); margin: 0; }
  .faq-item p { padding: 0 22px 20px; color: var(--muted); margin: 0; }
  .faq-item[open] { border-color: var(--plum); border-left-color: var(--olive); }
  @media (max-width: 860px) { .faq { grid-template-columns: 1fr; gap: 24px; } }
  .soon-panel { background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--olive); padding: 34px 38px; display: grid; gap: 12px; justify-items: start; max-width: 860px; }
  .soon-panel h3 { font: 800 clamp(24px, 3vw, 30px)/1.2 var(--display); color: var(--plum); margin: 0; }
  .soon-panel p { color: var(--muted); margin: 0; font-size: 18px; line-height: 1.6; }
  .soon-ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
  #ely-listings .soon-panel { margin: 0; }
  @media (max-width: 520px) { .soon-panel { padding: 24px 20px; } }
  .sky-contact { display: block; width: 100%; max-width: 420px; margin-top: 26px; }
  @media (max-width: 520px) { .sky-contact { max-width: 300px; margin-top: 18px; } }
  .btn-wide { min-width: 340px; justify-content: center; padding: 19px 44px; font-size: 16px; box-shadow: 0 8px 22px rgba(58,11,52,.18); }
  @media (max-width: 520px) { .btn-wide { min-width: 0; width: 100%; } }

  /* Hero */
  .hero { color: #fff; position: relative; overflow: hidden; background: var(--plum); }
  .hero.photo-bg { background: var(--plum-deep) url("/hero-night.webp") center 40% / cover no-repeat; }
  .hero.photo-bg.ely-bg { background: var(--plum-deep) url("/ely-corner.webp") 70% 45% / cover no-repeat; }
  .hero.photo-bg.ely-bg.ely-home-hero { background-image: url("/ely-hospital-hero.webp"); background-position: 100% 30%; }
  .hero.photo-bg::before { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(58,11,52,.94) 0%, rgba(82,16,74,.78) 40%, rgba(82,16,74,.12) 78%, rgba(82,16,74,0) 100%); }
  .hero .stroke { position: absolute; right: -40px; top: -10px; height: calc(100% + 60px); width: auto; max-width: 60%; opacity: .12; pointer-events: none; }
  .hero .wrap { position: relative; padding-block: 48px; display: grid; gap: 20px; align-content: center; min-height: 440px; }
  .band { display: inline-block; background: var(--olive); color: #fff; font: 700 13px/1 var(--display); letter-spacing: .16em; text-transform: uppercase; padding: 8px 14px; border-radius: 0; justify-self: start; }
  .hero h1 { font-size: clamp(36px, 5.6vw, 60px); font-weight: 800; letter-spacing: -.01em; max-width: 20ch; }
  .hero h1 em { font-style: normal; color: var(--olive-lite); }
  .hero p.lead { font-size: 18px; max-width: 64ch; color: #F1E6EF; }
  .hero .ctas { display: flex; gap: 12px; flex-wrap: wrap; }
  .cats { display: flex; flex-wrap: wrap; gap: 8px; }
  .cats span { font: 500 14px/1 var(--display); letter-spacing: .1em; text-transform: uppercase; border: 1px solid rgba(255,255,255,.3); padding: 8px 12px; border-radius: 0; }
  @media (max-width: 760px) { .hero.photo-bg.ely-projects-hero { background-image: url("/ely-state-theater.webp"); background-position: 50% 45%; } }
  @media (max-width: 760px) { .hero.photo-bg.ely-bg.ely-home-hero { background-image: url("/ely-hospital.webp"); background-position: 30% 30%; } }
  @media (max-width: 560px) { .hero.photo-bg::before { background: rgba(58,11,52,.8); } .hero .wrap { padding-block: 40px; } }

  /* Sections */
  section.block { padding-block: 72px; scroll-margin-top: 72px; }
  section.tinted { background: var(--tint); }
  .hero + section.block { padding-top: 40px; }
  #columbia-projects-feature .more { margin-top: 28px; }
  .listings.feature-one { grid-template-columns: 1fr; }
  .listings.feature-one .proj { display: grid; grid-template-columns: 1.4fr 1fr; }
  .feature-one .proj .photo { aspect-ratio: auto; min-height: 340px; }
  .feature-one .proj .body { text-align: left; justify-items: start; align-content: center; padding: 32px; gap: 12px; }
  .feature-one .proj h3 { font-size: clamp(26px, 3vw, 34px); font-weight: 800; color: var(--plum); }
  .feat-desc { color: var(--muted); font-size: 17px; margin: 0; }
  .listings.feature-one .proj .proj-more { justify-self: start; }
  @media (max-width: 760px) { .listings.feature-one .proj { grid-template-columns: 1fr; } .listings.feature-one .proj .photo { min-height: 0; aspect-ratio: 16 / 10; } .feature-one .proj .body { padding: 22px; } }

  .news { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 48px; align-items: start; }
  .news-intro { display: grid; gap: 24px; justify-items: start; }
  .news-intro .sec-head { margin-bottom: 0; }
  .news-photo { margin: 0; width: 100%; max-width: 340px; aspect-ratio: 3 / 2; overflow: hidden; }
  .news-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 52%; display: block; }
  .news-list { display: grid; gap: 14px; }
  .news-label { font: 800 26px/1.2 var(--display); letter-spacing: .02em; color: var(--olive-ink); margin: 0 0 4px; }
  .news-card { display: grid; gap: 8px; padding: 20px 22px; background: #fff; border: 1px solid var(--line); border-left: 4px solid var(--olive); color: inherit; text-decoration: none; transition: border-color .2s ease, box-shadow .2s ease; }
  .news-card:hover { border-color: var(--plum); border-left-color: var(--olive); box-shadow: 0 8px 22px rgba(58,11,52,.1); }
  .news-src { font: 700 12px/1 var(--display); letter-spacing: .14em; text-transform: uppercase; color: var(--olive-ink); }
  .news-src span { color: var(--muted); letter-spacing: .08em; }
  .news-card h3 { font-size: 21px; font-weight: 800; color: var(--plum); }
  .news-card p { color: var(--muted); font-size: 16px; margin: 0; }
  .news-card.has-logo { grid-template-columns: 120px minmax(0, 1fr); gap: 20px; align-items: center; }
  .news-logo { display: grid; place-items: center; height: 100px; }
  .news-logo img { max-width: 100%; max-height: 100px; object-fit: contain; display: block; }
  .news-body { display: grid; gap: 8px; }
  .news-logo-dark { background: #2A2320; padding: 10px; }
  @media (max-width: 520px) { .news-card.has-logo { grid-template-columns: 80px minmax(0, 1fr); gap: 14px; } .news-logo { height: 72px; } .news-logo img { max-height: 72px; } }
  .news-more { font: 700 13px/1 var(--display); letter-spacing: .1em; text-transform: uppercase; color: var(--plum); }
  @media (max-width: 860px) { .news { grid-template-columns: 1fr; gap: 28px; } }
  #columbia-spaces { padding-bottom: 40px; }
  #columbia-spaces .more { margin-top: 28px; }
  #columbia-town { padding-top: 48px; padding-bottom: 40px; }
  #columbia-town .more, #columbia-about-story .more { margin-top: 28px; }
  #columbia-about-story { padding-top: 48px; padding-bottom: 40px; }
  #columbia-contact { padding-top: 48px; }
  #ely-listings { padding-bottom: 40px; }
  #ely-listings .more, #ely-town .more, #ely-story .more { margin-top: 28px; }
  #ely-town, #ely-story { padding-top: 48px; padding-bottom: 40px; }
  #ely-contact { padding-top: 48px; }
  .sec-head { display: grid; gap: 12px; margin-bottom: 36px; }
  .eyebrow { font: 700 13px/1 var(--display); letter-spacing: .16em; text-transform: uppercase; color: var(--olive-ink); }
  .sec-head h2 { font-size: clamp(30px, 4.4vw, 44px); font-weight: 800; color: var(--plum); }
  /* One shared style for intro text under section headings */
  .sec-head p, .town-lead, .about .copy > p { font: 400 19px/1.6 var(--body); color: #4A3A47; max-width: none; margin: 0; }

  /* Listings page header */
  .page-head { background: var(--plum); color: #fff; }
  .page-head .wrap { padding-block: 44px 40px; display: grid; gap: 12px; }
  .page-head h1 { font-size: clamp(34px, 5vw, 52px); font-weight: 800; }
  .page-head p { color: #F1E6EF; font-size: 18px; }
  .page-head p.page-sub { margin-top: -6px; font: 700 clamp(20px, 2.4vw, 26px)/1.2 var(--display); color: #D9DC8A; }
  .crumb { color: var(--olive-lite); font: 700 13px/1 var(--display); letter-spacing: .12em; text-transform: uppercase; text-decoration: none; }
  .crumb:hover { text-decoration: underline; }
  .page-head + section.block { padding-top: 40px; }
  [data-view$="-all"] .page-head + section.block { padding-top: 22px; }
  nav.main a[aria-current="page"] { border-color: var(--olive); color: var(--plum); }
  .cta-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; }
  .cta-row h2 { font-size: clamp(26px, 3.4vw, 34px); font-weight: 800; color: var(--plum); }
  .cta-row p { color: var(--muted); margin-top: 6px; }

  /* Listing details pop-up */
  .listing .foot button.btn { margin-left: auto; font-size: 15px; padding: 12px 20px; }
  dialog.listing-dlg { border: 0; padding: 0; border-radius: 0; width: min(920px, calc(100vw - 32px)); max-height: calc(100vh - 48px); overflow: auto; color: var(--ink); background: #fff; box-shadow: 0 30px 80px rgba(42,8,38,.35); }
  dialog.listing-dlg::backdrop { background: rgba(42,8,38,.6); }
  .dlg-close { position: absolute; top: 12px; right: 12px; z-index: 2; width: 40px; height: 40px; border-radius: 0; border: 0; background: rgba(255,255,255,.92); color: var(--plum); font: 700 22px/1 var(--display); cursor: pointer; }
  .gallery { position: relative; background: var(--plum-deep); }
  .gallery .slide { aspect-ratio: 16 / 9; max-width: 100%; background: var(--plum-deep) center / cover no-repeat; display: grid; place-items: center; color: rgba(255,255,255,.75); font: 700 14px/1 var(--display); letter-spacing: .12em; text-transform: uppercase; }
  .gallery .nav-btn { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 0; border: 0; background: rgba(255,255,255,.92); color: var(--plum); font: 700 22px/1 var(--display); cursor: pointer; }
  .gallery .prev { left: 12px; } .gallery .next { right: 12px; }
  .gallery .count { position: absolute; left: 14px; bottom: 12px; background: rgba(42,8,38,.7); color: #fff; font-size: 13px; padding: 4px 9px; border-radius: 0; font-variant-numeric: tabular-nums; }
  .thumbs { display: flex; gap: 8px; padding: 10px 16px; overflow-x: auto; background: var(--tint); }
  .thumbs button { flex: 0 0 auto; width: 88px; aspect-ratio: 16 / 10; border-radius: 0; border: 2px solid transparent; background: var(--plum) center / cover no-repeat; cursor: pointer; padding: 0; }
  .thumbs button[aria-current="true"] { border-color: var(--olive); }
  .dlg-body { padding: 24px 28px 28px; display: grid; gap: 18px; }
  .dlg-body h2 { font-size: clamp(26px, 3.6vw, 34px); font-weight: 800; color: var(--plum); }
  .dlg-body .meta { flex-direction: row; flex-wrap: wrap; gap: 4px 16px; }
  .dlg-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin: 0; }
  .dlg-facts div { background: var(--tint); border-radius: 0; padding: 14px 16px; display: grid; gap: 6px; }
  .dlg-facts dt { font: 700 12px/1 var(--display); letter-spacing: .14em; text-transform: uppercase; color: var(--olive-ink); }
  .dlg-facts dd { margin: 0; font: 700 20px/1.2 var(--display); color: var(--plum); font-variant-numeric: tabular-nums; }
  .dlg-facts dd.tbd { font: 400 15px/1.3 var(--body); color: var(--muted); }
  .dlg-suites h3 { font-size: 20px; font-weight: 800; color: var(--plum); margin-bottom: 10px; }
  .suites-scroll { overflow-x: auto; border: 1px solid var(--line); }
  .dlg-suites table { width: 100%; border-collapse: collapse; min-width: 520px; font-size: 15px; }
  .dlg-suites th { text-align: left; font: 700 11px/1 var(--display); letter-spacing: .12em; text-transform: uppercase; color: var(--olive-ink); background: var(--tint); padding: 10px 12px; }
  .dlg-suites td { padding: 10px 12px; border-top: 1px solid var(--line); font-variant-numeric: tabular-nums; }
  .dlg-suites td:first-child { font: 700 16px/1.2 var(--display); color: var(--ink); }
  .dlg-suites td:last-child { text-align: right; }
  .dlg-suites .btn { padding: 9px 14px; font-size: 12px; }
  .dlg-actions { display: flex; gap: 12px; flex-wrap: wrap; }
  .share-box { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
  .share-box input { flex: 1 1 260px; min-width: 0; font: inherit; font-size: 15px; padding: 10px 12px; border: 1px solid var(--line, #ddd); border-radius: 0; background: #fff; color: inherit; }
  .share-box span { font: 700 13px/1.2 var(--display); letter-spacing: .06em; text-transform: uppercase; color: var(--olive-ink); }
  .btn-line { border-color: var(--line); color: var(--plum); background: #fff; }
  .btn-line:hover { border-color: var(--plum); }
  @media (max-width: 520px) { .dlg-body { padding: 20px; } }

  /* Columbia, MO page */
  .city-hero .wrap { min-height: 320px; }
  .city-hero h1 em { color: #fff; }
  .hero.photo-bg.about-hero { background-image: url("/about-hero.webp"); background-position: 65% 42%; }
  .hero.photo-bg.ely-city-hero { background-image: url("/ely-street-1940s.webp"); background-position: 50% 62%; }
  .hero.photo-bg.listings-hero.ely-listings-hero { background-image: url("/ely-interior2-hero.webp"); background-position: 50% 42%; }
  @media (max-width: 760px) { .hero.photo-bg.listings-hero.ely-listings-hero { background-image: url("/ely-interior2-m.webp"); background-position: 50% 40%; } }
  .hero.photo-bg.ely-bg.about-hero-ely { background-image: url("/ely-mural-hero.webp"); background-position: 100% 48%; }
  @media (max-width: 760px) { .hero.photo-bg.ely-bg.about-hero-ely { background-image: url("/ely-mural.webp"); background-position: 55% 50%; } }
  .hero.photo-bg.ely-projects-hero { background-image: url("/ely-state-theater-hero.webp"); background-position: 100% 52%; }
  .hero.photo-bg.projects-hero { background-image: url("/projects-hero.webp"); background-position: center 40%; }
  .hero.photo-bg.city-hero:not(.listings-hero):not(.projects-hero):not(.about-hero):not(.about-hero-ely):not(.ely-projects-hero):not(.ely-city-hero) { background-image: url("/city-hero.webp"); background-position: 70% 60%; }
  .projects-hero + section.video-block { padding-top: 48px; }
  .hero.photo-bg.listings-hero { background-image: url("/listings-hero.webp"); background-position: center 55%; }
  [data-view$="-all"] .listings-hero + section.block { padding-top: 22px; }
  .why { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 20px; }
  .why article { border: 1px solid var(--line); border-top: 4px solid var(--olive); border-radius: 0; padding: 22px; display: grid; gap: 10px; align-content: start; background: #fff; }
  .why h3 { font-size: 22px; font-weight: 800; color: var(--plum); }
  .why p { color: var(--muted); font-size: 16px; }
  .carousel-head { display: flex; align-items: end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
  .car-title { display: grid; gap: 12px; }
  .car-nav { display: flex; gap: 8px; }
  .car-nav[hidden] { display: none; }
  .car-btn { width: 44px; height: 44px; border: 1px solid var(--line); background: #fff; color: var(--plum); font: 700 26px/1 var(--display); cursor: pointer; }
  .car-btn:hover:not(:disabled) { border-color: var(--plum); }
  .car-btn:disabled { opacity: .35; cursor: default; }
  .why.carousel { display: grid; grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: calc((100% - 40px) / 3); overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding-bottom: 4px; }
  .why.carousel::-webkit-scrollbar { display: none; }
  .why.carousel > article { scroll-snap-align: start; }
  @media (max-width: 900px) { .why.carousel { grid-auto-columns: calc((100% - 20px) / 2); } }
  @media (max-width: 600px) { .why.carousel { grid-auto-columns: 85%; } }
  .stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 0; }
  @media (max-width: 860px) { .stats { grid-template-columns: 1fr 1fr; } }
  @media (max-width: 520px) { .stats { grid-template-columns: 1fr; } }
  .stats div { background: var(--plum); color: #fff; border-radius: 0; padding: 24px; display: grid; gap: 6px; }
  .stats dt { order: 0; font: 700 12px/1 var(--display); letter-spacing: .14em; text-transform: uppercase; color: var(--olive-lite); }
  .stats dd { margin: 0; font: 800 clamp(40px, 5vw, 56px)/1 var(--display); font-variant-numeric: tabular-nums; }
  .stats span { color: #EADCE7; font-size: 15px; }
  section.culture-bg { position: relative; isolation: isolate; background: var(--plum-deep) url("/culture-bg.webp") center 45% / cover no-repeat; color: #fff; }
  section.culture-bg::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(42,8,38,.86) 0%, rgba(58,11,52,.78) 55%, rgba(42,8,38,.86) 100%); }
  .culture-bg .sec-head h2 { color: #fff; }
  .culture-bg .sec-head p { color: #F1E6EF; }
  .culture-bg .eyebrow { color: #D9DC8A; }
  .culture-bg .culture li { border-color: transparent; border-left-color: var(--olive); background: rgba(255,255,255,.96); }
  #columbia-day { overflow: hidden; }
  #columbia-day .sec-head a { color: var(--plum); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
  .vc { position: relative; }
  .vc-viewport { position: relative; }
  .vc-track { display: flex; align-items: center; gap: 24px; transition: transform .5s cubic-bezier(.2,.7,.2,1); will-change: transform; }
  .vc-slide { flex: 0 0 min(64vw, 820px); aspect-ratio: 16 / 9; position: relative; display: block; background: var(--plum-deep) center / cover no-repeat; color: #fff; text-decoration: none; transform: scale(.78); opacity: .45; transition: transform .5s cubic-bezier(.2,.7,.2,1), opacity .5s ease, box-shadow .5s ease; cursor: pointer; overflow: hidden; }
  .vc-slide::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(30,6,27,.85) 0%, rgba(30,6,27,.2) 45%, rgba(30,6,27,.1) 100%); }
  .vc-slide.on { transform: scale(1); opacity: 1; box-shadow: 0 24px 50px rgba(42,8,38,.28); }
  .vc-slide .play { position: absolute; z-index: 1; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 84px; height: 84px; display: grid; place-items: center; background: var(--olive); color: #fff; transition: background .2s ease, transform .2s ease; }
  .vc-slide:not(.on) .play { transform: translate(-50%, -50%) scale(.7); }
  .vc-slide.on:hover .play { background: var(--olive-ink); }
  .vc-cap { position: absolute; z-index: 1; left: 28px; right: 28px; bottom: 22px; display: grid; gap: 4px; }
  .vc-cap b { font: 800 clamp(24px, 3vw, 36px)/1.05 var(--display); }
  .vc-cap span { font-size: 16px; color: #F1E6EF; }
  .vc-slide:not(.on) .vc-cap { opacity: 0; }
  .vc-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 52px; height: 52px; border: 0; background: #fff; color: var(--plum); font: 700 32px/1 var(--display); cursor: pointer; box-shadow: 0 6px 18px rgba(42,8,38,.2); }
  .vc-arrow:hover { background: var(--plum); color: #fff; }
  .vc-arrow.prev { left: calc(50% - min(32vw, 410px) - 26px); } .vc-arrow.next { right: calc(50% - min(32vw, 410px) - 26px); }
  .vc-tabs { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; margin-top: 22px; padding-inline: 16px; }
  .vc-tabs button { border: 1px solid var(--line); background: #fff; color: var(--ink); font: 700 13px/1 var(--display); letter-spacing: .12em; text-transform: uppercase; padding: 10px 16px; cursor: pointer; }
  .vc-tabs button[aria-selected="true"] { background: var(--plum); border-color: var(--plum); color: #fff; }
  @media (max-width: 700px) { .vc-slide { flex-basis: 84vw; } .vc-track { gap: 12px; } .vc-arrow { width: 40px; height: 40px; font-size: 26px; } .vc-arrow.prev { left: 4px; } .vc-arrow.next { right: 4px; } .vc-slide .play { width: 60px; height: 60px; } .vc-cap { left: 16px; bottom: 14px; } .vc-cap span { font-size: 14px; } }
  .nh-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
  .nh-item { display: block; padding: 0; border: 0; background: var(--plum-deep); cursor: zoom-in; overflow: hidden; aspect-ratio: 3 / 2; }
  .nh-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
  .nh-item:hover img { transform: scale(1.04); }
  .nh-credit { margin-top: 14px; font-size: 13px; color: var(--muted); }
  #columbia-then-now .sec-head a { color: var(--plum); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
  @media (max-width: 860px) { .nh-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (max-width: 480px) { .nh-grid { grid-template-columns: 1fr; } }
  .culture { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
  .culture li { border: 1px solid var(--line); border-left: 4px solid var(--olive); border-radius: 0; font: 700 17px/1.2 var(--display); color: var(--plum); background: #fff; transition: border-color .2s ease, box-shadow .2s ease; }
  .culture li:not(:has(a)) { padding: 12px 14px; }
  .culture li a { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 12px 14px; color: inherit; text-decoration: none; }
  .culture li:hover { border-color: var(--plum); border-left-color: var(--olive); box-shadow: 0 6px 16px rgba(58,11,52,.1); }
  .props { display: grid; gap: 10px; }
  .props ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border: 1px solid var(--line); border-radius: 0; background: #fff; }
  .props li { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 10px 14px; font-size: 16px; }
  .props li + li { border-top: 1px solid var(--line); }
  .props li b { font-family: var(--display); color: var(--plum); }
  .props li span { color: var(--muted); }

  /* Projects page */
  .proj { background: #fff; border: 1px solid var(--line); border-radius: 0; overflow: hidden; display: flex; flex-direction: column; }
  .proj .body { padding: 18px 20px 20px; display: grid; gap: 8px; align-content: start; }
  .proj h3 { font-size: 22px; font-weight: 700; }
  .proj .body { flex: 1; }
  .proj .body { text-align: center; justify-items: center; }
  .proj .proj-more { justify-self: center; margin-top: 6px; }
  .proj-back { color: #F1E6EF; font: 700 13px/1 var(--display); letter-spacing: .12em; text-transform: uppercase; text-decoration: none; }
  .proj-back:hover { color: #fff; }
  .page-head .eyebrow { color: #D9DC8A; }
  .proj-photo { aspect-ratio: 3 / 2; background: var(--plum-deep) center / cover no-repeat; display: grid; place-items: center; color: rgba(255,255,255,.8); font: 700 14px/1 var(--display); letter-spacing: .12em; text-transform: uppercase; }
  .proj-photo.empty { aspect-ratio: 4 / 1; }
  .proj-text { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 40px; }
  .proj-text h2 { font-size: clamp(26px, 3.2vw, 32px); font-weight: 800; color: var(--plum); margin-bottom: 12px; }
  .proj-text p { color: var(--muted); font-size: 17px; }
  .proj-text p + p { margin-top: 12px; }
  .proj-text a { color: var(--plum); font-weight: 600; }
  .award { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 48px; align-items: start; }
  .award-badge { display: grid; gap: 12px; }
  .award-badge h2 { font-size: clamp(26px, 3.2vw, 32px); font-weight: 800; color: var(--plum); }
  .award-badge p { color: var(--muted); font-size: 17px; margin: 0; }
  .award-quote { margin: 0; padding: 4px 0 4px 24px; border-left: 4px solid var(--olive); }
  .award-quote blockquote { margin: 0; font-size: 17px; line-height: 1.7; color: var(--ink); }
  .award-quote blockquote::before { content: "\201C"; } .award-quote blockquote::after { content: "\201D"; }
  .award-quote figcaption { margin-top: 14px; font: 700 13px/1.4 var(--display); letter-spacing: .08em; text-transform: uppercase; color: var(--olive-ink); }
  .award-quote figcaption a { color: var(--plum); }
  @media (max-width: 860px) { .award { grid-template-columns: 1fr; gap: 20px; } }

  .ba-hint { margin-top: 10px; color: var(--muted); font-size: 14px; }
  .ba { position: relative; aspect-ratio: 3 / 2; overflow: hidden; background: var(--plum-deep); user-select: none; touch-action: pan-y; }
  .ba img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; pointer-events: none; }
  .ba .ba-before { clip-path: inset(0 calc(100% - var(--pos)) 0 0); }
  .ba-line { position: absolute; top: 0; bottom: 0; left: var(--pos); width: 3px; margin-left: -1.5px; background: #fff; pointer-events: none; }
  .ba-knob { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 48px; height: 48px; display: grid; place-items: center; background: var(--plum); color: #fff; border: 3px solid #fff; font: 800 18px/1 var(--display); letter-spacing: -.05em; }
  .ba-tag { position: absolute; top: 14px; font: 700 12px/1 var(--display); letter-spacing: .14em; text-transform: uppercase; background: #fff; color: var(--plum); padding: 7px 10px; pointer-events: none; }
  .ba-tag-l { left: 14px; } .ba-tag-r { right: 14px; }
  .ba-range { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
  .ba:has(.ba-range:focus-visible) .ba-knob { outline: 3px solid var(--olive); outline-offset: 2px; }
  .photo.swap { background-size: cover; background-position: center; cursor: pointer; }
  .swap-before { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; transition: opacity .35s ease; }
  .swap-tag { position: absolute; top: 12px; left: 12px; font: 700 11px/1 var(--display); letter-spacing: .14em; text-transform: uppercase; background: #fff; color: var(--plum); padding: 6px 9px; }
  .swap-tag .t-before { display: none; }
  .photo.swap:hover .swap-before, .photo.swap:focus-visible .swap-before, .photo.swap.on .swap-before { opacity: 1; }
  .photo.swap:hover .t-before, .photo.swap:focus-visible .t-before, .photo.swap.on .t-before { display: inline; }
  .photo.swap:hover .t-after, .photo.swap:focus-visible .t-after, .photo.swap.on .t-after { display: none; }
  .video { position: relative; aspect-ratio: 16 / 9; background: var(--plum-deep); }
  .video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
  .video-split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 48px; align-items: center; }
  .video-split .sec-head { margin-bottom: 0; }
  .video-split .sec-head h2 { font-size: clamp(28px, 3vw, 38px); white-space: nowrap; }
  @media (max-width: 420px) { .video-split .sec-head h2 { white-space: normal; } }
  section.video-block { padding-block: 48px; }
  @media (max-width: 860px) { .video-split { grid-template-columns: 1fr; gap: 24px; } }
  .video-poster { display: block; overflow: hidden; color: #fff; text-decoration: none; }
  .video-poster img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .55; transition: opacity .2s ease; }
  .video-poster:hover img, .video-poster:focus-visible img { opacity: .7; }
  .video-poster .play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 88px; height: 88px; display: grid; place-items: center; background: var(--olive); color: #fff; }
  .video-poster:hover .play { background: var(--olive-ink); }
  .video-cap { position: absolute; left: 24px; bottom: 20px; display: grid; gap: 4px; }
  .video-cap b { font: 800 24px/1.1 var(--display); }
  .video-cap span { font-size: 14px; letter-spacing: .08em; text-transform: uppercase; color: #F1E6EF; }
  .page-head + section.video-block { padding-top: 40px; }
  .video-block.tinted { background: var(--tint); }
  .video-block + section.block.tinted { margin-top: 0; }
  .first-proj { display: grid; grid-template-columns: 1.75fr 1fr; gap: 0; border: 1px solid var(--line); border-radius: 0; overflow: hidden; background: #fff; }
  .first-proj .photo { aspect-ratio: auto; min-height: 400px; }
  .first-proj .body { padding: 32px; display: grid; gap: 12px; align-content: center; }
  .first-proj h2 { font-size: clamp(28px, 3.6vw, 38px); font-weight: 800; color: var(--plum); }
  .first-proj p { color: var(--muted); }
  @media (max-width: 760px) { .first-proj { grid-template-columns: 1fr; } .first-proj .photo { min-height: 220px; } .first-proj .body { padding: 22px; } }

  /* Contact pop-up */
  dialog.contact-dlg { width: min(640px, calc(100vw - 32px)); }
  .contact-dlg .dlg-body { padding: 36px 32px 32px; }
  .contact-dlg form.lead { padding: 0; border: 0; }
  .cdlg-details { display: flex; flex-wrap: wrap; gap: 12px 40px; }
  .cdlg-details .val { font-size: 19px; }
  @media (max-width: 520px) { .contact-dlg .dlg-body { padding: 28px 20px 20px; } }

  /* Listings map */
  .map-wrap { position: relative; margin-top: 32px; border: 1px solid var(--line); border-radius: 0; overflow: hidden; background: #F3EEF2; }
  .map { display: block; width: 100%; height: 100%; max-width: 100%; }
  .map-wrap { aspect-ratio: 1000 / 560; max-width: 100%; }
  .map { cursor: grab; touch-action: none; }
  .map:active { cursor: grabbing; }
  .map .blk { fill: #FBF8FA; }
  .map .st { fill: none; stroke: #fff; stroke-width: 28; stroke-linecap: round; stroke-linejoin: round; }
  .map .st.main { stroke-width: 34; }
  .map .st-lbl { font: 700 13px var(--display); letter-spacing: .1em; text-transform: uppercase; fill: #7A6A77; text-anchor: middle; dominant-baseline: central; }
  .map .park { fill: #DDE3B0; }
  .map .district { fill: #DDF0F6; }
  .map .district-edge { fill: none; stroke: #0A7A99; stroke-width: 5; stroke-dasharray: 18 12; stroke-linejoin: round; }
  .map .district-tile { fill: #fff; stroke: #9FD3E4; stroke-width: 2; }
  .map .park-lbl { font: 700 13px var(--display); letter-spacing: .06em; text-transform: uppercase; fill: var(--olive-ink); text-anchor: middle; }
  .map .lm { fill: none; stroke: var(--olive); stroke-width: 5; stroke-dasharray: 2 8; stroke-linecap: round; }
  .map .lm-lbl { text-anchor: middle; font: 700 12px var(--display); letter-spacing: .08em; text-transform: uppercase; fill: var(--olive-ink); }
  .map .pin { cursor: pointer; }
  .map .pin circle { fill: var(--plum); stroke: #fff; stroke-width: 4; transition: r .15s ease; }
  .map .pin text { font: 800 16px var(--display); fill: #fff; text-anchor: middle; dominant-baseline: central; pointer-events: none; }
  .map .pin:hover circle, .map .pin.on circle { fill: var(--olive); }
  .map .pin { outline: none; }
  .map .pin:focus-visible circle { stroke: var(--olive); stroke-width: 6; }
  .map-pop { position: absolute; z-index: 2; transform: translate(-50%, calc(-100% - 22px)); background: #fff; border-radius: 0; box-shadow: 0 12px 30px rgba(42,8,38,.22); padding: 14px 16px; min-width: 210px; display: grid; gap: 6px; }
  .map-pop b { font: 700 18px/1.2 var(--display); color: var(--ink); }
  .map-pop .price { font-size: 18px; }
  .map-pop .btn { justify-self: start; padding: 10px 16px; font-size: 13px; margin-top: 4px; }
  .map-zoom { position: absolute; left: 12px; top: 12px; z-index: 1; display: grid; background: #fff; border: 1px solid var(--line); border-radius: 0; overflow: hidden; box-shadow: 0 4px 12px rgba(42,8,38,.1); }
  .map-zoom button { width: 38px; height: 38px; border: 0; background: #fff; color: var(--plum); font: 700 20px/1 var(--display); cursor: pointer; }
  .map-zoom button + button { border-top: 1px solid var(--line); }
  .map-zoom button:hover:not(:disabled) { background: var(--tint); }
  .map-zoom button:disabled { color: #C9BDC6; cursor: default; }
  .map-wrap.zoomed svg { cursor: grab; touch-action: none; }
  .map-wrap.zoomed svg:active { cursor: grabbing; }
  .map-compass { position: absolute; right: 14px; bottom: 12px; width: 50px; background: rgba(255,255,255,.9); border: 1px solid var(--line); border-radius: 0; padding: 4px 4px 2px; pointer-events: none; }
  .map-compass svg { display: block; width: 100%; height: auto; }
  .map-compass text { font: 800 16px var(--display); fill: var(--plum); }
  .map-compass .cn { fill: var(--plum); }
  .map-compass .cs { fill: var(--olive); }
  .map-note { position: absolute; left: 12px; bottom: 10px; font-size: 12px; color: #8A7A87; background: rgba(255,255,255,.8); padding: 3px 8px; border-radius: 0; }

  .map-legend { list-style: none; margin: 16px 0 0; padding: 0; display: none; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 8px 20px; counter-reset: none; }
  .map-legend li { display: grid; grid-template-columns: 30px 1fr; gap: 10px; align-items: start; font-size: 15px; }
  .map-legend .n { width: 28px; height: 28px; border-radius: 50%; background: var(--plum); color: #fff; display: grid; place-items: center; font: 800 14px/1 var(--display); }
  .map-legend b { font-family: var(--display); color: var(--ink); display: block; }
  .map-legend span { color: var(--muted); font-size: 14px; }
  .map-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-top: 20px; }
  .map-actions .btn { padding: 12px 20px; }
  .print-title { display: none; }
  @media print {
    .review, header.site, footer.site, .page-head, .listings-hero, .jump-map, .map-zoom, .filters, .listings, .empty, .fit-cta, .map-actions, .map-pop, .map-note, dialog { display: none !important; }
    section.block { padding: 0 !important; }
    .print-title { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 12px; font-family: var(--display); }
    .print-title b { font-size: 20px; color: var(--plum); }
    .print-title { align-items: center !important; }
    .pt-brand { display: flex; align-items: center; gap: 14px; }
    .pt-brand img { width: 56px; height: auto; }
    .map-wrap { margin: 0; break-inside: avoid; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .map-legend { display: grid !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  }

  .jump-map { display: inline-block; margin-bottom: 14px; font: 700 14px/1 var(--display); letter-spacing: .1em; text-transform: uppercase; color: var(--olive-ink); text-decoration: none; }
  .jump-map:hover { text-decoration: underline; }



  /* Old City Hall archive */
  .och-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: center; }
  .och-split.rev > :first-child { order: 0; }
  .och-copy { display: grid; gap: 14px; }
  .och-copy h2 { font-size: clamp(28px, 3.4vw, 38px); font-weight: 800; color: var(--plum); }
  .och-copy p { color: #4A3A47; font-size: 17px; margin: 0; }
  .paper { margin: 0; background: #F7F2E6; padding: 14px 14px 10px; box-shadow: 0 1px 0 #e6dcc4, 0 14px 30px rgba(42,8,38,.14); cursor: zoom-in; }
  .paper img { display: block; width: 100%; height: auto; mix-blend-mode: multiply; }
  .paper figcaption { margin-top: 8px; font-size: 13px; color: var(--muted); }
  .och-drawing { transform: rotate(-1.2deg); }
  .och-floor { transform: rotate(1deg); }
  .och-headline { margin: 0; padding: 14px 18px; background: #fff; border-left: 4px solid var(--olive); font: 800 italic 20px/1.35 Georgia, "Times New Roman", serif; color: var(--ink); }
  .och-headline cite, .och-quote cite { display: block; margin-top: 8px; font: 700 12px/1.3 var(--display); font-style: normal; letter-spacing: .1em; text-transform: uppercase; color: var(--olive-ink); }
  .och-quote { margin: 4px 0 0; font: italic 18px/1.5 Georgia, "Times New Roman", serif; color: var(--plum); }
  .och-quote cite a { color: inherit; }
  .och-rooms { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border: 1px solid var(--line); background: #fff; }
  .och-rooms li { display: grid; grid-template-columns: 110px 1fr; gap: 12px; padding: 12px 16px; font-size: 16px; color: #4A3A47; }
  .och-rooms li + li { border-top: 1px solid var(--line); }
  .och-rooms b { font: 700 12px/1.6 var(--display); letter-spacing: .12em; text-transform: uppercase; color: var(--olive-ink); }
  .och-fire { background: var(--plum-deep); color: #fff; display: block; }
  .och-fire figure { margin: 0; overflow: hidden; position: relative; }
  .och-zoom-hint { position: absolute; right: 14px; bottom: 14px; background: rgba(30,6,27,.75); color: #fff; font: 700 11px/1 var(--display); letter-spacing: .14em; text-transform: uppercase; padding: 8px 10px; }
  .och-fire figure img { width: 100%; height: auto; max-height: 680px; object-fit: cover; object-position: 50% 40%; display: block; filter: sepia(.35) contrast(1.05); }
  .och-fire-copy { padding-top: 44px; padding-bottom: 48px; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 48px; align-items: center; }
  .och-fire-story { display: grid; gap: 14px; }
  .och-fire-copy h2 { font-size: clamp(30px, 3.6vw, 42px); font-weight: 800; }
  .och-fire-copy p { color: #F1E6EF; font-size: 17px; margin: 0; }
  .och-fire .eyebrow { color: #D9DC8A; }
  .och-stats { list-style: none; margin: 6px 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .och-stats li { border: 1px solid rgba(255,255,255,.2); padding: 10px 12px; font-size: 13px; color: #EADCE7; line-height: 1.35; }
  .och-stats b { display: block; font: 800 22px/1.1 var(--display); color: #D9DC8A; }
  .och-credit { font-size: 12px !important; color: #CDBBC9 !important; }
  .och-timeline { list-style: none; margin: 0; padding: 0; position: relative; display: grid; gap: 22px; }
  .och-timeline::before { content: ""; position: absolute; left: 118px; top: 6px; bottom: 6px; width: 2px; background: var(--line); }
  .och-timeline li { display: grid; grid-template-columns: 100px 1fr; gap: 40px; position: relative; }
  .och-timeline li::before { content: ""; position: absolute; left: 112px; top: 6px; width: 14px; height: 14px; background: #fff; border: 3px solid var(--olive); box-sizing: border-box; }
  .och-timeline li.now::before { background: var(--plum); border-color: var(--plum); }
  .och-timeline .yr { font: 800 22px/1.1 var(--display); color: var(--plum); text-align: right; }
  .och-timeline h3 { font-size: 19px; font-weight: 800; color: var(--ink); margin: 0 0 4px; }
  .och-timeline p { margin: 0; color: #4A3A47; font-size: 16px; }
  .och-thumb { margin-top: 10px; display: inline-flex; align-items: center; gap: 10px; padding: 6px 12px 6px 6px; background: #fff; border: 1px solid var(--line); cursor: zoom-in; font: 600 13px var(--body); color: var(--plum); }
  .och-thumb img { width: 64px; height: 48px; object-fit: cover; display: block; }
  .och-thumb:hover { border-color: var(--plum); }
  .och-escape { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 3fr) minmax(0, 4fr); gap: 28px; align-items: start; margin-bottom: 44px; }
  .och-escape-copy { display: grid; gap: 10px; align-content: start; }
  .och-tag { justify-self: start; background: var(--plum); color: #fff; font: 700 12px/1 var(--display); letter-spacing: .14em; text-transform: uppercase; padding: 7px 10px; }
  .och-escape-copy h3 { font-size: clamp(24px, 2.6vw, 30px); font-weight: 800; color: var(--plum); }
  .och-escape-copy p { margin: 0; font-size: 17px; color: #4A3A47; }
  .clip { display: block; border: 0; padding: 10px; background: #F7F2E6; box-shadow: 0 10px 24px rgba(42,8,38,.16); cursor: zoom-in; transition: transform .2s ease, box-shadow .2s ease; text-align: left; font: inherit; }
  .clip img { display: block; width: 100%; height: auto; mix-blend-mode: multiply; }
  .clip:hover { transform: rotate(0) scale(1.02); box-shadow: 0 16px 34px rgba(42,8,38,.22); }
  .tilt-l { transform: rotate(-1.6deg); } .tilt-r { transform: rotate(1.4deg); }
  .clip-cap { display: block; margin-top: 8px; font: 700 13px/1.35 var(--display); color: var(--plum); }
  .clip-wall { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 28px; align-items: start; margin-bottom: 20px; }
  .clip-wall .clip { width: 100%; }
  .clip-wall .clip img { max-height: 420px; object-fit: cover; object-position: top; }
  .about-bio { max-width: 760px; }
  .elk-pair { align-items: start; }
  .elk-pair img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
  .press-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 18px; }
  .press-grid .news-card { align-content: start; }
  .atr-thumbs { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 18px; }
  .atr-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 210px; gap: 10px; margin-top: 28px; }
  .atr-gallery button { all: unset; cursor: zoom-in; position: relative; overflow: hidden; background: #eee; }
  .atr-gallery button.wide { grid-column: span 2; }
  .atr-gallery button.tall { grid-row: span 2; }
  .atr-gallery { grid-auto-flow: dense; }
  .atr-gallery img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
  .atr-gallery button:hover img { transform: scale(1.04); }
  .atr-gallery span { position: absolute; left: 0; bottom: 0; background: var(--plum, #52104A); color: #fff; font: 700 11px/1 var(--sans, sans-serif); letter-spacing: .12em; text-transform: uppercase; padding: 8px 10px; }
  .atr-clip { max-width: 380px; justify-self: center; }
  @media (max-width: 820px) { .atr-gallery { grid-template-columns: 1fr 1fr; grid-auto-rows: 160px; } }
  .och-thanks { padding-block: 36px; }
  .och-thanks p { margin: 0; text-align: center; font-size: 18px; color: #4A3A47; }
  .och-thanks .eyebrow { display: block; margin-bottom: 8px; }
  .och-thanks b { color: var(--plum); }
  .och-note { margin-top: 8px; font-size: 13px; color: var(--muted); }
  .zoom-dlg { border: 0; padding: 0; background: transparent; max-width: min(96vw, 1100px); max-height: 94vh; overflow: visible; }
  .zoom-dlg::backdrop { background: rgba(20,4,18,.85); }
  .zoom-dlg img { display: block; max-width: min(96vw, 1100px); max-height: 90vh; width: auto; height: auto; background: #fff; }
  @media (max-width: 860px) {
    .och-split, .och-escape, .och-fire-copy { grid-template-columns: 1fr; gap: 24px; }
    .och-fire figure img { max-height: none; aspect-ratio: 5 / 4; object-position: 4% 55%; }
    .och-fire-copy { padding-top: 28px; padding-bottom: 32px; }
    .och-timeline::before { left: 7px; } .och-timeline li { grid-template-columns: 1fr; gap: 4px; padding-left: 32px; } .och-timeline li::before { left: 0; } .och-timeline .yr { text-align: left; }
    .och-rooms li { grid-template-columns: 1fr; gap: 2px; }
  }

  /* Printable property flyer */
  #flyer { display: none; }
  @media print {
    body.print-flyer .view, body.print-flyer dialog, body.print-flyer .review { display: none !important; }
    body.print-flyer #flyer { display: flex !important; }
  }
  @page { size: letter; margin: 0.45in; }
  #flyer { height: 10in; display: none; flex-direction: column; font-family: var(--body); color: var(--ink); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .fl-head { display: flex; justify-content: space-between; align-items: center; background: var(--plum); color: #fff; padding: 14px 18px; }
  .fl-brand { display: flex; align-items: center; gap: 12px; }
  .fl-brand img { width: 46px; height: auto; background: #fff; padding: 4px; }
  .fl-brand b { display: block; font: 800 18px/1.1 var(--display); letter-spacing: .08em; text-transform: uppercase; }
  .fl-brand span { font: 600 11px/1.3 var(--display); letter-spacing: .14em; text-transform: uppercase; color: #D9DC8A; }
  .fl-contact { text-align: right; font-size: 12px; line-height: 1.5; }
  .fl-contact b { font: 700 13px var(--display); letter-spacing: .06em; }
  .fl-title { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin: 16px 0 10px; }
  .fl-title .fl-eyebrow { font: 700 11px/1 var(--display); letter-spacing: .16em; text-transform: uppercase; color: var(--olive-ink); }
  .fl-title h1 { font: 800 30px/1.1 var(--display); color: var(--plum); margin: 4px 0 4px; }
  .fl-title p { margin: 0; font-size: 14px; color: var(--muted); }
  .fl-title img { width: 64px; height: auto; flex: none; }
  .fl-photos { display: grid; grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; gap: 6px; height: 3.5in; }
  .fl-photos.one { grid-template-columns: 1fr; grid-template-rows: 1fr; }
  .fl-photos div { background: #eee center / cover no-repeat; }
  .fl-photos div:first-child { grid-row: 1 / -1; }
  .fl-facts { display: flex; margin: 12px 0; border: 1px solid var(--line); }
  .fl-facts div { flex: 1; padding: 10px 12px; }
  .fl-facts div + div { border-left: 1px solid var(--line); }
  .fl-facts dt { font: 700 10px/1 var(--display); letter-spacing: .14em; text-transform: uppercase; color: var(--olive-ink); }
  .fl-facts dd { margin: 5px 0 0; font: 800 17px/1.2 var(--display); color: var(--plum); }
  .fl-desc { font-size: 13.5px; line-height: 1.55; margin: 0 0 10px; }
  .fl-suites h2 { font: 800 15px/1 var(--display); letter-spacing: .1em; text-transform: uppercase; color: var(--plum); margin: 8px 0 6px; }
  .fl-suites table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
  .fl-suites th { text-align: left; font: 700 10px/1 var(--display); letter-spacing: .12em; text-transform: uppercase; color: var(--olive-ink); padding: 6px 8px; border-bottom: 2px solid var(--olive); }
  .fl-suites td { padding: 6px 8px; border-bottom: 1px solid var(--line); }
  .fl-loc { margin-top: auto; background: var(--tint); border-left: 4px solid var(--olive); padding: 12px 16px; font-size: 13px; line-height: 1.55; }
  .fl-loc b { display: block; font: 800 13px/1.3 var(--display); letter-spacing: .1em; text-transform: uppercase; color: var(--plum); margin-bottom: 3px; }
  .fl-foot { margin-top: 14px; padding-top: 10px; border-top: 2px solid var(--plum); display: flex; justify-content: space-between; gap: 12px; font-size: 11.5px; color: var(--muted); }
  .fl-foot b { color: var(--plum); }

  /* Listings */
  .photo.pic { background-color: var(--plum-deep); background-position: center; background-size: cover; background-repeat: no-repeat; }
  .suite-count { margin: 0; font: 700 14px/1.2 var(--display); letter-spacing: .06em; text-transform: uppercase; color: var(--olive-ink); }
  .price small:first-child { font: 500 13px var(--body); color: var(--muted); margin-right: 2px; }
  .first-proj.clickable { cursor: pointer; transition: box-shadow .2s ease, border-color .2s ease, transform .2s ease; }
  .first-proj.clickable:hover { border-color: var(--plum); box-shadow: 0 10px 28px rgba(58,11,52,.12); transform: translateY(-2px); }
  .proj.clickable { cursor: pointer; transition: box-shadow .2s ease, border-color .2s ease, transform .2s ease; }
  .proj.clickable:hover { border-color: var(--plum); box-shadow: 0 10px 28px rgba(58,11,52,.12); transform: translateY(-2px); }
  .listing.clickable { cursor: pointer; transition: box-shadow .2s ease, border-color .2s ease, transform .2s ease; }
  .listing.clickable:hover { border-color: var(--plum); box-shadow: 0 10px 28px rgba(58,11,52,.12); transform: translateY(-2px); }
  .filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
  .chip { font: 500 15px/1 var(--display); letter-spacing: .06em; text-transform: uppercase; padding: 10px 16px; border-radius: 0; border: 1.5px solid var(--line); background: #fff; color: var(--ink); cursor: pointer; }
  .chip[aria-pressed="true"] { background: var(--plum); border-color: var(--plum); color: #fff; }
  .chip:hover:not([aria-pressed="true"]) { border-color: var(--plum); }
  .listings { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }
  .listing { background: #fff; border: 1px solid var(--line); border-radius: 0; overflow: hidden; display: flex; flex-direction: column; }
  .photo { aspect-ratio: 16 / 10; max-width: 100%; position: relative; display: flex; align-items: flex-end; padding: 16px; color: #fff; background: var(--plum); }
  .photo.olive { background: var(--olive-ink); }
  .photo.deep { background: var(--plum-deep); }
  .photo.img { background: var(--plum-deep) url("/alley.webp") center / cover; }
  .photo .num { font: 800 64px/0.9 var(--display); letter-spacing: -.02em; }
  .photo .status ~ .ph { top: auto; bottom: 14px; }
  .photo .ph { position: absolute; top: 14px; right: 14px; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; background: rgba(255,255,255,.16); padding: 5px 9px; border-radius: 0; }
  .photo .status { position: absolute; top: 14px; left: 14px; font: 700 12px/1 var(--display); letter-spacing: .12em; text-transform: uppercase; background: #fff; color: var(--plum); padding: 6px 9px; border-radius: 0; }
  .listing .body { padding: 20px; display: grid; gap: 10px; flex: 1; align-content: start; }
  .listing h3 { font-size: 24px; font-weight: 700; color: var(--ink); }
  .meta { display: flex; flex-direction: column; gap: 4px; font-size: 14px; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; }
  .listing .body.has-badge { position: relative; padding-right: 108px; }
  .district-badge { position: absolute; right: 20px; top: 50%; transform: translateY(-50%); width: 72px; height: auto; }
  .listing .desc { color: var(--muted); font-size: 16px; }
  .listing .body .price { margin-top: 4px; }
  .card-addr { margin: -4px 0 2px; font-size: 16px; color: var(--muted); }
  .listing .foot:has(> button:only-child) { justify-content: center; }
  .listing .foot > button:only-child { margin-left: 0; }
  .listing .foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 20px; border-top: 1px solid var(--line); }
  .price { font: 800 22px/1 var(--display); color: var(--plum); font-variant-numeric: tabular-nums; }
  .price small { font: 500 14px var(--body); color: var(--muted); }
  .listing .foot a { margin-left: auto; font: 700 14px/1 var(--display); letter-spacing: .1em; text-transform: uppercase; text-decoration: none; color: var(--olive-ink); }
  .listing .foot a.btn { color: #fff; font-size: 15px; padding: 12px 20px; }
  .more { display: flex; justify-content: center; margin-top: 32px; }
  .empty { padding: 28px; border: 1.5px dashed var(--line); border-radius: 0; color: var(--muted); }
  .soon { display: grid; gap: 10px; align-content: center; padding: 28px; border: 1.5px dashed var(--line); border-radius: 0; color: var(--muted); }
  .soon h3 { font-size: 24px; color: var(--plum); }

  /* About */
  .about { display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: start; }
  .about .copy { display: grid; gap: 18px; }
  .about blockquote { margin: 0; padding: 0 0 0 20px; border-left: 4px solid var(--olive); font: 500 24px/1.35 var(--display); color: var(--plum); }
  .about-photo { margin: 0 0 24px; border-radius: 0; overflow: hidden; }
  .about-photo img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
  .about-photo figcaption { font-size: 14px; color: var(--muted); padding-top: 8px; }
  .facts { display: grid; border: 1px solid var(--line); border-radius: 0; background: #fff; margin: 0; }
  .fact { display: grid; grid-template-columns: 120px 1fr; gap: 14px; padding: 18px 20px; }
  .fact + .fact { border-top: 1px solid var(--line); }
  .fact dt { font: 700 13px/1.4 var(--display); letter-spacing: .12em; text-transform: uppercase; color: var(--olive-ink); }
  .fact dd { margin: 0; font-size: 16px; }
  @media (max-width: 820px) { .about { grid-template-columns: 1fr; } }
  @media (max-width: 420px) { .fact { grid-template-columns: 1fr; gap: 4px; } }

  /* Town feature */
  .town { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
  .season { border-radius: 0; padding: 28px; display: grid; gap: 10px; align-content: start; }
  .season.winter { background: var(--plum); color: #fff; }
  .season.summer { background: #fff; border: 1px solid var(--line); }
  .season h3 { font-size: 26px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
  .season.summer h3 { color: var(--plum); }
  .season.winter p { color: #F1E6EF; }
  .season.summer p { color: var(--muted); }
  #columbia-town .season.winter { background: #fff; color: inherit; border: 1px solid var(--line); }
  #columbia-town .season.winter h3 { color: var(--plum); }
  #columbia-town .season.winter p { color: var(--muted); }
  .school-logos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0 0 32px; }
  .school-logos a { display: grid; place-items: center; background: #fff; border: 1px solid var(--line); padding: 18px 20px; height: 96px; transition: border-color .2s ease, box-shadow .2s ease; }
  .school-logos a:hover { border-color: var(--plum); box-shadow: 0 8px 22px rgba(58,11,52,.1); }
  .school-logos img { max-width: 100%; max-height: 56px; object-fit: contain; display: block; }
  @media (max-width: 700px) { .school-logos { grid-template-columns: 1fr; gap: 10px; } .school-logos a { height: 76px; } .school-logos img { max-height: 44px; } }
  .cc { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 56px; align-items: stretch; }
  .cc-copy { display: flex; flex-direction: column; align-items: flex-start; gap: 22px; }
  .cc-copy h2 { font-size: clamp(32px, 4vw, 46px); line-height: 1.08; color: var(--plum); margin: 0; }
  .cc-lead { font: 400 19px/1.6 var(--body); color: #4A3A47; margin: 0; }
  .cc-lead a { color: var(--plum); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
  .cc-points { display: grid; gap: 14px; width: 100%; }
  .cc-points article { background: #fff; border-left: 4px solid var(--olive); padding: 18px 22px; }
  .cc-points h3 { font: 800 20px/1.2 var(--display); letter-spacing: .06em; text-transform: uppercase; color: var(--plum); margin: 0 0 6px; }
  .cc-points p { color: var(--muted); margin: 0; font-size: 16px; line-height: 1.6; }
  .cc-copy .btn { margin-top: 6px; align-self: center; }
  .cc-photo { position: relative; margin: 0; min-height: 520px; overflow: hidden; }
  .cc-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 62% 50%; display: block; }
  .cc-photo figcaption { position: absolute; left: 0; bottom: 0; background: var(--plum); color: #fff; padding: 18px 24px; display: grid; gap: 4px; }
  .cc-photo figcaption b { font: 800 44px/1 var(--display); }
  .cc-photo figcaption span { font: 700 12px/1.2 var(--display); letter-spacing: .14em; text-transform: uppercase; color: var(--olive-lite, #D9DC8A); }
  .cc-campus { display: grid; grid-template-columns: auto repeat(3, minmax(0, 1fr)); align-items: center; margin-top: 40px; background: #fff; border: 1px solid var(--line); }
  .cc-campus > * { padding: 22px 28px; }
  .cc-campus-label { margin: 0; align-self: stretch; display: flex; align-items: center; font: 800 13px/1.35 var(--display); letter-spacing: .14em; text-transform: uppercase; color: var(--olive-ink); border-right: 1px solid var(--line); }
  .cc-campus a { display: grid; place-items: center; height: 100px; border-right: 1px solid var(--line); transition: background .2s ease; }
  .cc-campus a:last-child { border-right: 0; }
  .cc-campus a:hover { background: #FAF6F9; }
  .cc-campus img { max-width: 100%; max-height: 54px; object-fit: contain; display: block; }
  .cc-campus a:nth-of-type(2) img { max-height: 62px; }
  @media (max-width: 900px) {
    .cc { grid-template-columns: 1fr; gap: 32px; }
    .cc-photo { min-height: 0; aspect-ratio: 4 / 3; order: -1; }
    .cc-campus { grid-template-columns: 1fr; }
    .cc-campus-label { border-right: 0; border-bottom: 1px solid var(--line); text-align: center; }
    .cc-campus-label br { display: none; }
    .cc-campus a { border-right: 0; border-bottom: 1px solid var(--line); height: 84px; }
    .cc-campus a:last-child { border-bottom: 0; }
    .cc-campus img { max-height: 44px; }
    .cc-photo figcaption { padding: 10px 14px; }
    .cc-photo figcaption b { font-size: 28px; }
    .cc-photo figcaption span { font-size: 10px; }
  }
  .proj-banner { margin-top: 28px; background: var(--plum); color: #fff; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 36px; align-items: center; padding: 34px 40px; text-decoration: none; transition: box-shadow .2s ease, transform .2s ease; }
  .proj-banner:hover { box-shadow: 0 10px 28px rgba(58,11,52,.25); transform: translateY(-2px); }
  .pb-logo { display: grid; place-items: center; background: #fff; width: 104px; height: 104px; padding: 12px; }
  .pb-logo img { max-width: 100%; max-height: 100%; display: block; }
  .pb-num { display: grid; justify-items: center; gap: 6px; }
  .pb-num b { font: 800 72px/1 var(--display); color: var(--olive-lite); }
  .pb-num small { font: 700 12px/1 var(--display); letter-spacing: .16em; text-transform: uppercase; color: #EADCE7; }
  .proj-banner h3 { font: 800 26px/1.2 var(--display); margin: 0 0 6px; color: #fff; }
  .proj-banner p { margin: 0; color: #EADCE7; }
  .proj-banner .btn { background: var(--olive); color: #fff; border-color: var(--olive); }
  .proj-banner:hover .btn { background: #fff; color: var(--plum); border-color: #fff; }
  @media (max-width: 760px) { .proj-banner { grid-template-columns: 1fr; gap: 14px; padding: 26px 22px; } .pb-logo { width: 76px; height: 76px; padding: 9px; } .proj-banner .btn { justify-self: start; } }
  .ba-teaser { margin-top: 28px; display: grid; grid-template-columns: 1.2fr 1fr; border: 1px solid var(--line); background: #fff; color: inherit; text-decoration: none; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
  .ba-teaser:hover { border-color: var(--plum); box-shadow: 0 10px 28px rgba(58,11,52,.12); transform: translateY(-2px); }
  .ba-teaser-pics { display: grid; grid-template-columns: 1fr 1fr; min-height: 260px; }
  .ba-teaser-pics div { background-size: cover; background-position: center; position: relative; }
  .ba-teaser-pics span { position: absolute; left: 10px; top: 10px; background: #fff; color: var(--plum); font: 800 11px/1 var(--display); letter-spacing: .14em; text-transform: uppercase; padding: 6px 8px; }
  .ba-teaser-pics div + div span { background: var(--olive); color: #fff; }
  .ba-teaser-txt { padding: 32px 36px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 12px; }
  .ba-teaser-txt h3 { font: 800 28px/1.15 var(--display); color: var(--plum); margin: 0; }
  .ba-teaser-txt p { margin: 0; color: var(--muted); }
  @media (max-width: 760px) { .ba-teaser { grid-template-columns: 1fr; } .ba-teaser-pics { min-height: 0; aspect-ratio: 16 / 9; } .ba-teaser-txt { padding: 22px; } .ba-teaser-txt h3 { font-size: 24px; } }
  .cc-facts { grid-template-columns: auto repeat(3, minmax(0, 1fr)); }
  .cc-facts > div { display: grid; gap: 4px; align-content: center; min-height: 100px; border-right: 1px solid var(--line); }
  .cc-facts > div:last-child { border-right: 0; }
  .cc-facts b { font: 800 18px/1.25 var(--display); color: var(--plum); }
  .cc-facts span { font-size: 14px; color: var(--muted); }
  @media (max-width: 900px) { .cc-facts { grid-template-columns: 1fr; } .cc-facts > div { border-right: 0; border-bottom: 1px solid var(--line); min-height: 0; text-align: center; } .cc-facts > div:last-child { border-bottom: 0; } }
  .town-lead { grid-column: 1 / -1; }
  .sec-head .town-lead + .town-lead { margin-top: -2px; }
  .town-lead a { color: var(--plum); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
  @media (max-width: 760px) { .town { grid-template-columns: 1fr; } }
  .town.town-img { grid-template-columns: 1fr 1.25fr; grid-template-rows: auto auto auto; }
  .town-cta { grid-column: 1; display: flex; justify-content: center; }
  .town-photo { grid-column: 2; grid-row: 1 / span 3; margin: 0; min-height: 320px; overflow: hidden; }
  .town-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 62% 50%; display: block; }
  @media (max-width: 760px) { .town.town-img { grid-template-columns: 1fr; } .town-photo { grid-column: auto; grid-row: auto; min-height: 0; aspect-ratio: 16 / 10; } }

  /* Team */
  .team { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; }
  .person { display: grid; grid-template-columns: 88px 1fr; gap: 18px; align-items: center; padding: 22px; border: 1px solid var(--line); border-radius: 0; background: #fff; }
  .avatar { width: 88px; height: 88px; border-radius: 50%; background: var(--plum); color: #fff; display: grid; place-items: center; font: 800 30px/1 var(--display); letter-spacing: .04em; }
  .avatar.add { background: var(--tint); color: var(--muted); border: 1.5px dashed var(--line); font-size: 34px; font-weight: 400; }
  .person h3 { font-size: 22px; font-weight: 700; }
  .person p { color: var(--muted); font-size: 15px; }

  /* Contact */
  .contact { display: grid; grid-template-columns: .9fr 1.1fr; gap: 48px; }
  .details { display: grid; gap: 22px; align-content: start; }
  .detail { display: grid; gap: 4px; }
  .detail .label { font: 700 13px/1 var(--display); letter-spacing: .14em; text-transform: uppercase; color: var(--olive-ink); }
  .detail .val { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font: 700 22px/1.3 var(--display); color: var(--plum); }
  .detail .val > span { user-select: all; overflow-wrap: anywhere; }
  .copy-btn { font: 500 12px/1 var(--body); letter-spacing: .08em; text-transform: uppercase; background: var(--tint); color: var(--plum); border: 0; padding: 6px 9px; border-radius: 0; cursor: pointer; }
  form.lead { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; background: #fff; border: 1px solid var(--line); border-radius: 0; padding: 28px; }
  form.lead .full { grid-column: 1 / -1; }
  form.lead label { display: grid; gap: 6px; font: 700 13px/1 var(--display); letter-spacing: .1em; text-transform: uppercase; color: var(--ink); }
  form.lead input, form.lead select, form.lead textarea { font: 400 16px/1.4 var(--body); color: var(--ink); background: #fff; border: 1.5px solid var(--line); border-radius: 0; padding: 11px 12px; width: 100%; }
  form.lead input:focus, form.lead select:focus, form.lead textarea:focus { outline: none; border-color: var(--plum); }
  form.lead textarea { min-height: 110px; resize: vertical; }
  .form-row { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
  .note { font-size: 14px; color: var(--muted); }
  .sent { grid-column: 1 / -1; background: var(--tint); border-left: 4px solid var(--olive); padding: 14px 16px; border-radius: 0; font-size: 15px; }
  @media (max-width: 820px) { .contact { grid-template-columns: 1fr; } }
  @media (max-width: 520px) { form.lead { grid-template-columns: 1fr; padding: 20px; } }

  /* Footer */
  footer.site { background: var(--plum-deep); color: #E3D3E0; }
  footer.site.fB { text-align: center; }
  footer.site.fB .wrap { display: grid; grid-template-columns: 1fr; justify-items: center; gap: 22px; padding-block: 48px 30px; }
  .fB-tile { background: #fff; width: 92px; height: 92px; display: grid; place-items: center; padding: 10px; }
  .fB-tile img { max-width: 100%; max-height: 100%; display: block; }
  .fB nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 30px; }
  .fB nav a { color: #fff; text-decoration: none; font: 700 14px/1 var(--display); letter-spacing: .12em; text-transform: uppercase; }
  .fB nav a:hover { color: var(--olive-lite); }
  .fB-contact { margin: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 12px; font-size: 17px; }
  .fB-contact a { color: var(--olive-lite); text-decoration: none; font-weight: 700; }
  .fB-contact a:hover { text-decoration: underline; }
  .fB-legal { margin: 0; font-size: 13px; color: rgba(227,211,224,.75); border-top: 1px solid rgba(255,255,255,.14); padding-top: 18px; width: 100%; }
  @media (max-width: 520px) { .fB nav { gap: 14px 22px; } .fB-contact span { display: none; } .fB-contact { flex-direction: column; align-items: center; } }

  footer.site .wrap { padding-block: 44px; display: grid; grid-template-columns: auto 1fr auto; gap: 32px; align-items: center; }
  .logo-tile { background: #fff; border-radius: 0; padding: 10px; width: 84px; }
  .logo-tile img { display: block; width: 100%; height: auto; }
  img { max-width: 100%; }
  footer .partners { font-size: 14px; }
  footer .partners b { display: block; font: 700 12px/1 var(--display); letter-spacing: .14em; text-transform: uppercase; color: var(--olive-lite); margin-bottom: 8px; }
  footer .legal { font-size: 13px; text-align: right; }
  footer.site .wrap:not(:has(.partners)) { grid-template-columns: auto auto; justify-content: space-between; }
  footer a { color: #fff; }
  @media (max-width: 760px) { footer.site .wrap { grid-template-columns: 1fr; } footer .legal { text-align: left; } footer.site .wrap:not(:has(.partners)) { grid-template-columns: auto auto; } footer.site .wrap:not(:has(.partners)) .legal { text-align: right; } }
  footer.site.fB .wrap.wrap, footer.site.fB .wrap:not(:has(.partners)) { grid-template-columns: 1fr; justify-content: normal; justify-items: center; }

  /* Landing (alleyarealty.com) */
  .landing { background: var(--ground); }
  .land-top { display: grid; justify-items: center; text-align: center; gap: 14px; padding-block: 48px 36px; }
  .land-top img { width: 120px; height: auto; }
  .land-top h1 { font-size: clamp(26px, 3.2vw, 34px); font-weight: 800; color: var(--plum); letter-spacing: -.005em; }
  .land-top p { max-width: 52ch; color: var(--muted); font-size: 17px; }
  .doors { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  .door { position: relative; display: grid; align-content: end; gap: 10px; min-height: 420px; padding: 36px 32px; overflow: hidden; color: #fff; text-decoration: none; isolation: isolate; }
  .door::before { content: ""; position: absolute; inset: 0; z-index: -1; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
  .door::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, rgba(30,6,27,.9) 0%, rgba(30,6,27,.35) 50%, rgba(30,6,27,0) 80%); }
  .door.como::before { background: url("/alley-night.webp") center 55% / cover; }
  .door.ely::before { background: var(--plum) url("/ely-depot.webp") 60% 40% / cover no-repeat; }
  .door:hover::before { transform: scale(1.04); }
  .door .state { font: 700 12px/1 var(--display); letter-spacing: .24em; text-transform: uppercase; color: #fff; opacity: .85; }
  .door h2 { font-size: clamp(40px, 5vw, 60px); font-weight: 800; line-height: .95; letter-spacing: -.01em; text-transform: uppercase; }
  .door p { color: #EFE3EC; max-width: 40ch; }
  .door .go { justify-self: start; margin-top: 8px; display: inline-flex; gap: 12px; align-items: center; color: #fff; font: 700 14px/1 var(--display); letter-spacing: .16em; text-transform: uppercase; padding-bottom: 8px; border-bottom: 2px solid var(--olive); }
  .door .go i { font-style: normal; transition: transform .3s ease; }
  .door:hover .go i { transform: translateX(6px); }
  .home-cta { display: flex; justify-content: center; padding-block: 40px 8px; }
  .land-foot { display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; padding-block: 24px; margin-top: 24px; border-top: 1px solid var(--line); color: var(--muted); font-size: 14px; }
  @media (max-width: 760px) { .doors { grid-template-columns: 1fr; } .door { min-height: 320px; padding: 24px; } }
  @media (prefers-reduced-motion: reduce) { .door::before, .door .go i { transition: none; } }
  .listings.two-up { grid-template-columns: repeat(2, 1fr); }
  .listings.two-up .proj .photo { aspect-ratio: 16 / 10; }
  @media (max-width: 760px) { .listings.two-up { grid-template-columns: 1fr; } }
  .dep-looks { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
  .dep-looks button { all: unset; cursor: zoom-in; display: grid; gap: 6px; align-content: start; background: #fff; border: 1px solid var(--line); padding: 10px 10px 14px; }
  .dep-looks button:hover { border-color: var(--plum); }
  .dep-looks img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; margin-bottom: 6px; }
  .dep-looks b { font: 800 18px/1.1 var(--display); color: var(--plum); }
  .dep-looks span { font-size: 14px; color: #4A3A47; line-height: 1.45; }
  .dep-names li { grid-template-columns: 40px 1fr; padding: 9px 16px; }
  .dep-crowd figure { cursor: zoom-in; }
  .dep-crowd figure img { max-height: 620px; object-position: 50% 55%; }
  @media (max-width: 900px) { .dep-looks { grid-template-columns: 1fr 1fr; } }
  .st-feature figure img { object-position: 50% 68%; filter: none; }
  .rl-feature figure img { object-position: 50% 45%; filter: none; }
  .st-clip img { max-height: 640px; object-fit: cover; object-position: top; }
  .tan-feature figure img { filter: none; background: #fff; object-fit: contain; max-height: 560px; }
  .tan-feature figure { background: #fff; }
  .tan-portrait { max-width: 360px; justify-self: center; }
  .proj-intro { max-width: 860px; margin: 40px auto 0; display: grid; gap: 12px; }
  .proj-intro h2 { font-size: clamp(26px, 3vw, 34px); font-weight: 800; color: var(--plum); margin: 0; }
  .proj-intro p { margin: 0; font-size: 17px; line-height: 1.65; color: #4A3A47; }
  .proj-intro .proj-intro-owner { font-size: 14px; color: var(--muted); margin-bottom: 6px; }
  .proj-more-band { background: var(--plum); padding: 44px 0; text-align: center; }
  .proj-more-band .btn { min-width: 260px; justify-content: center; }
  .sal-side { margin: 8px 0 36px; }
  .sal-side h3 { font-size: 20px; font-weight: 800; color: var(--plum); margin: 0 0 14px; }

  .lead .hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
