/* Local typography and quiet surfaces. Existing layouts, media and interactions stay in place. */
.site-header,
.page-context,
.icb,
.icp,
.page-intro,
.contact-grid,
.project-hero,
.project-story,
.listing-detail,
.legal-content,
.content-state,
.gallery-dialog {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.icb :is(h1, h2, h3),
.icp :is(h1, h2, h3),
.page-intro :is(h1, h2, h3),
.contact-grid :is(h1, h2, h3),
.project-hero h1,
.project-story :is(h2, h3),
.listing-detail :is(h2, h3),
.legal-content h2,
.content-state h1 {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 500;
  letter-spacing: -.025em;
  line-height: 1.16;
}
.site-header :is(button, a) {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
body #site-header {
  background: #faf8f4;
  border-bottom-color: #e0ddd6;
  box-shadow: 0 2px 10px rgba(35, 32, 25, .025);
}
.site-header .site-menu {
  background: #faf8f4;
  border-bottom-color: #d9d5cc;
}
.site-header .site-menu-top,
.site-header .site-menu a {
  border-color: #dedad2;
}
.site-header .site-menu-group > a {
  font-weight: 500;
  letter-spacing: -.015em;
}
.page-context {
  color: #6a6d68;
  font-size: .875rem;
  letter-spacing: 0;
}

/* The homepage retains its three full-height photographic bands and all dimensions. */
.imx-home-immersive .imx-home-heading,
.imx-home-immersive .imx-room-content {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.imx-home-immersive .imx-home-heading h1 {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 500;
  color: #08476c;
}
.imx-home-immersive .imx-room h2 {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 600;
}

/* Contact, legal and individual property introductions. */
#main > .page-intro,
#main > .section.section-light {
  background: #faf8f4;
}
#main > .page-intro {
  color: #2b3437;
  padding-block: clamp(48px, 6vw, 88px);
  border-bottom: 1px solid #e2ded6;
}
.page-intro h1 {
  color: #24383f;
  font-size: clamp(2.2rem, 4.5vw, 4rem);
  max-width: 20ch;
}
.page-intro .intro-body {
  color: #626762;
  font-size: clamp(1rem, 1.2vw, 1.125rem);
  line-height: 1.7;
}
.page-intro .eyebrow,
.project-story .eyebrow {
  color: #626762;
  font-weight: 500;
  font-size: .8125rem;
  letter-spacing: .035em;
  text-transform: none;
}
.page-intro .eyebrow-line,
.project-story .eyebrow-line {
  background: #b4afa5;
  height: 1px;
}
.contact-grid {
  color: #30383b;
  align-items: start;
}
.contact-grid > div > h2 {
  font-size: clamp(1.9rem, 3vw, 2.65rem);
  margin-top: 18px;
  margin-bottom: 20px;
  color: #24383f;
}
.contact-grid > div > p {
  color: #626762;
  line-height: 1.75;
}
.contact-number {
  font-weight: 500;
  font-size: .8125rem;
  color: #6a6d68;
  letter-spacing: .025em;
}
.contact-grid .contact-direct {
  border-top-color: #d8d4cb;
  padding-top: 24px;
  gap: 8px;
  font-size: .9375rem;
}
.contact-direct strong { font-weight: 500; }
#main .contact-action-panel {
  color: #30383b;
  background: #fff;
  border: 1px solid #e3dfd7;
  box-shadow: 0 12px 36px rgba(35, 32, 25, .025);
}
#main .contact-action-panel :is(.request-required, .request-form small) {
  color: #626762;
}
#main .contact-action-panel .request-form label {
  color: #30383b;
  font-size: .9375rem;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.5;
}
.contact-action-panel .request-form fieldset { gap: 22px; }
.contact-action-panel .request-form :is(input, select, textarea),
.icb .request-form :is(input, select, textarea) {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  background: #fff;
  border-color: #b9b9b0;
  color: #30383b;
  font-size: 1rem;
  line-height: 1.5;
}
.contact-action-panel .request-form :is(input, select, textarea):focus,
.icb .request-form :is(input, select, textarea):focus {
  border-color: #08476c;
}
.contact-action-panel .request-form small,
.icb .icb-brief .request-form small,
.icb .icb-brief .request-required {
  font-size: .8125rem;
  line-height: 1.7;
}
#main .contact-action-panel :is(.request-submit, .request-new),
.icb .icb-brief :is(.request-submit, .request-new) {
  min-height: 48px;
  padding: 13px 20px;
  color: #fff;
  background: #203b47;
  border: 1px solid #203b47;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-weight: 500;
  font-size: .9375rem;
  letter-spacing: 0;
  line-height: 1.45;
}
#main .contact-action-panel :is(.request-submit, .request-new):hover,
.icb .icb-brief :is(.request-submit, .request-new):hover {
  background: #182f39;
  border-color: #182f39;
}
.legal-content section { border-bottom-color: #dedad2; }
.legal-content p { color: #545d5e; }
.legal-content h2 { color: #2b3d43; }

/* Brokerage: quieter search tools and a light property-reading surface. */
.icb {
  --icb-wash: #f6f3ee;
  --icb-ink: #30383b;
  --icb-muted: #626762;
  --icb-line: #d6d2c9;
  background: #faf8f4;
}
.icb .icb-hero::after {
  background: linear-gradient(90deg, rgba(23, 25, 24, .76), rgba(23, 25, 24, .3) 58%, rgba(23, 25, 24, .06)),
    linear-gradient(0deg, rgba(23, 25, 24, .26), transparent 55%);
}
.icb .icb-hero-copy h1 {
  font-size: clamp(2.35rem, 4.1vw, 4rem);
  line-height: 1.1;
  font-weight: 500;
}
.icb .icb-hero-copy p {
  font-size: 1.0625rem;
  line-height: 1.7;
}
.icb [data-icb-explore] {
  color: #263c44;
  background: #faf8f4;
  border-color: #faf8f4;
  font-size: .9375rem;
  font-weight: 500;
}
.icb [data-icb-explore]:hover { background: #fff; }
.icb .icb-intents {
  background: #dedad2;
  box-shadow: 0 4px 10px rgba(35, 32, 25, .025);
}
.icb .icb-intents button { color: #3e4b50; }
.icb .icb-intents strong {
  font-weight: 500;
  letter-spacing: -.015em;
}
.icb .icb-intents small { color: #69716f; }
.icb .icb-intents button[aria-pressed="true"] {
  color: #203b47;
  background: #f4f1ea;
  box-shadow: inset 0 -2px #203b47;
}
.icb .icb-intents button[aria-pressed="true"] small { color: #626762; }
.icb .icb-section-heading h2,
.icb .icb-story-content > h2,
.icb .icb-estimate-builder h2,
.icb .icb-brief-copy h2 {
  color: #2b3d43;
  font-size: clamp(1.9rem, 3vw, 2.6rem);
  line-height: 1.2;
}
.icb .icb-section-heading { margin-bottom: 30px; }
.icb .icb-section-heading p,
.icb .icb-brief-copy p,
.icb .icb-story-detail p {
  font-size: 1rem;
  line-height: 1.75;
}
.icb .icb-search {
  padding: 24px;
  background: #fff;
  border: 1px solid #dedad2;
  box-shadow: 0 8px 24px rgba(35, 32, 25, .018);
}
.icb .icb-search label {
  color: #3e4b50;
  font-size: .9375rem;
  font-weight: 500;
  line-height: 1.5;
}
.icb .icb-search :is(input:not([type="checkbox"]), select) {
  border-color: #b9b9b0;
  color: #30383b;
  background: #fff;
  font-size: 1rem;
}
.icb .icb-search button { font-weight: 500; }
.icb .icb-search button[type="submit"],
.icb [data-icb-use-brief],
.icb .icb-empty [data-icb-open-brief] {
  color: #fff;
  background: #203b47;
  border: 1px solid #203b47;
  font-weight: 500;
  font-size: .9375rem;
}
.icb .icb-search button[type="submit"]:hover,
.icb [data-icb-use-brief]:hover,
.icb .icb-empty [data-icb-open-brief]:hover {
  background: #182f39;
  border-color: #182f39;
}
.icb .icb-search :is(.icb-search-summary, .icb-search-scope),
.icb .icb-layer-summary {
  font-size: .875rem;
  line-height: 1.65;
}
.icb .icb-place-detail {
  color: #30383b;
  background: #fff;
  border: 1px solid #dedad2;
}
.icb .icb-place-detail h3 { color: #2b3d43; font-weight: 500; }
.icb .icb-place-detail p,
.icb .icb-place-detail :is(small, figcaption) {
  color: #626762;
  line-height: 1.65;
}
.icb .icb-place-detail p { font-size: .9375rem; }
.icb .icb-place-detail :is(small, figcaption) { font-size: .8125rem; }
.icb .icb-place-detail .icb-record-kind { color: #5d686c; }
.icb .icb-place-detail .icb-record-price { color: #203b47; }
.icb .icb-place-detail a { color: #203b47; border-bottom-color: #a7ada9; font-weight: 500; }
.icb .icb-place-strip button { border-color: #d6d2c9; }
.icb .icb-place-strip :is(button.is-selected, button[aria-pressed="true"]) {
  color: #203b47;
  background: #efede7;
  border-color: #6d7b7d;
}
.icb .icb-place-strip :is(button.is-selected, button[aria-pressed="true"]) small { color: #626762; }
.icb .icb-place-strip strong { font-weight: 500; }
.icb .icb-dossier { background: #f0ede6; }
.icb .icb-dossier-card { border-color: #d6d2c9; box-shadow: 0 8px 24px rgba(35, 32, 25, .07); }
.icb .icb-dossier-card.is-current { box-shadow: 0 12px 28px rgba(35, 32, 25, .09); }
.icb .icb-story-steps button { font-weight: 400; border-bottom-color: #dedad2; }
.icb .icb-story-steps :is(button[aria-pressed="true"], button.is-current),
.icb .icb-story-steps .is-current > button {
  border-left-color: #758588;
  font-weight: 500;
}
.icb .icb-estimate-summary { border-left-color: #758588; }
.icb .icb-brief .request-form {
  border-color: #dedad2;
  box-shadow: 0 8px 24px rgba(35, 32, 25, .018);
}
.icb .icb-brief .request-form label { font-weight: 500; font-size: .9375rem; }

/* Promotion: keep the film and 3D geometry; refine only surfaces and reading rhythm. */
.icp {
  --icp-paper: #f5f2ec;
  --icp-ink: #30383b;
  --icp-muted: #626762;
  --icp-line: #d8d4cb;
}
.icp .icp-cinema-heading h1 { font-weight: 500; letter-spacing: -.025em; }
.icp .icp-cinema-theme h2 { font-weight: 500; }
.icp .icp-workshop { background: #faf8f4; }
.icp .icp-workshop-heading h2,
.icp .icp-section-heading h2 {
  color: #2b3d43;
  font-size: clamp(1.9rem, 3vw, 2.7rem);
  font-weight: 500;
}
.icp .icp-workshop-heading p,
.icp .icp-section-heading p { color: #626762; font-size: 1rem; line-height: 1.7; }
.icp .icp-stage-detail h3 { color: #2b3d43; font-weight: 500; }
.icp .icp-stage-detail p { font-size: 1rem; line-height: 1.75; }
.icp .icp-stage-choices button { font-weight: 400; border-color: #d8d4cb; }
.icp .icp-stage-choices button[aria-pressed="true"] { font-weight: 500; }
.icp .icp-project-copy h3 { color: #2b3d43; font-weight: 500; letter-spacing: -.02em; }
.icp .icp-project-copy > p { font-size: 1rem; line-height: 1.7; }
.icp .icp-project-meta {
  color: #626762;
  font-weight: 400;
  font-size: .8125rem;
  letter-spacing: .02em;
  text-transform: none;
}
.icp .icp-contact { background: #faf8f4; border-top: 1px solid #dedad2; }
.icp .icp-contact h2 { color: #2b3d43; font-weight: 500; }
.icp .icp-contact p { color: #626762; line-height: 1.7; }
.icp .icp-contact > a { background: #203b47; border-color: #203b47; color: #fff; font-weight: 500; }

/* Detailed project pages: photography carries the weight, text stays measured. */
.project-hero-image::after {
  background: linear-gradient(90deg, rgba(24, 26, 24, .45), transparent 75%),
    linear-gradient(0deg, rgba(24, 26, 24, .65), transparent 60%);
}
.project-hero h1 { font-size: clamp(2.4rem, 5vw, 4.9rem); font-weight: 500; }
.project-hero-bottom { letter-spacing: .025em; text-transform: none; font-weight: 400; }
.project-story-intro h2 { font-size: clamp(1.9rem, 3.2vw, 2.9rem); max-width: 30ch; }
.project-story p { line-height: 1.75; }
.project-story .current-media-gallery { margin-block: clamp(48px, 6vw, 88px); }
.project-story .current-media-gallery h2 { font-size: clamp(1.8rem, 2.8vw, 2.6rem); font-weight: 500; }
.project-story .current-media-card strong { font-size: .9375rem; line-height: 1.6; font-weight: 400; }
.project-story .current-media-card i { background: #faf8f4; color: #203b47; }
.project-story .current-media-more { border-top-color: #d8d4cb; }
.project-story .project-official-presentation { border-color: #d8d4cb; padding-block: 36px; }
.project-story .project-official-presentation h3 { color: #2b3d43; font-weight: 500; }
.project-story .project-official-presentation p { color: #626762; }
.project-story .project-official-presentation li { border-left-color: #9da5a0; color: #43545a; }
.project-story .project-story-action { border-color: #d8d4cb; }
.project-story .text-link,
.listing-detail .text-link { font-weight: 500; }
.gallery-dialog { border-color: #dedad2; box-shadow: 0 18px 60px rgba(26, 30, 29, .15); }

@media (max-width: 700px) {
  #main > .page-intro { padding-block: 40px; }
  .page-intro h1 { font-size: clamp(2rem, 8vw, 2.8rem); line-height: 1.16; }
  .page-intro .intro-body { font-size: 1rem; line-height: 1.65; }
  .contact-grid > div > h2 { font-size: clamp(1.8rem, 7vw, 2.3rem); }
  #main .contact-action-panel { padding: 24px 20px; }
  .contact-action-panel .request-form :is(input, select, textarea),
  .icb .request-form :is(input, select, textarea) { min-height: 48px; font-size: 16px; }
  #main .contact-action-panel :is(.request-submit, .request-new),
  .icb .icb-brief :is(.request-submit, .request-new) { width: 100%; min-height: 48px; padding-inline: 16px; }
  .icb .icb-hero-copy h1 { font-size: clamp(2.15rem, 8vw, 3rem); }
  .icb .icb-hero-copy p { font-size: 1rem; line-height: 1.65; }
  .icb .icb-intents strong { font-size: 1rem; }
  .icb .icb-intents small { font-size: .8125rem; line-height: 1.45; }
  .icb .icb-search { padding: 20px 16px; }
  .icb .icb-brief .request-form { padding: 22px 16px; }
  .icb .icb-section-heading h2,
  .icb .icb-story-content > h2,
  .icb .icb-estimate-builder h2,
  .icb .icb-brief-copy h2 { font-size: clamp(1.8rem, 7vw, 2.25rem); }
  .icp .icp-workshop-heading h2,
  .icp .icp-section-heading h2 { font-size: clamp(1.8rem, 7vw, 2.4rem); }
  .project-hero h1 { font-size: clamp(2.15rem, 8.6vw, 3.2rem); }
  .project-story-intro h2 { font-size: clamp(1.8rem, 6.5vw, 2.35rem); }
  .project-story .current-media-card strong { font-size: .875rem; line-height: 1.55; }
}
