body:has(main[data-public-brand-palette]) {
  background-color: #f7f8f2;
}

main[data-public-brand-palette] {
  --public-forest: #153b36;
  --public-gold: #b79a60;
  --public-champagne: #d4ba7d;
  --public-ivory: #f7f8f2;
  --public-sage: #e8efe7;
  --public-line: #d6dfd4;
  --public-muted: #52665f;
  --public-accent-text: #735c32;
  color: var(--public-forest);
}

/* Contact and about share a template with the policy documents. */
main:is([data-public-brand-palette="contact"], [data-public-brand-palette="about"]) :is(h1, h2, h3, a) {
  color: var(--public-forest);
}

main[data-public-brand-palette] .overline {
  color: var(--public-accent-text);
}

main[data-public-brand-palette] :is(.al-trust-note, .al-trust-actions a) {
  background-color: var(--public-sage);
  border-color: var(--public-gold);
}

main[data-public-brand-palette] .al-trust-actions a:first-child {
  background-color: var(--public-forest);
  border-color: var(--public-forest);
  color: #fff;
}

main[data-public-brand-palette] .al-trust-actions a:hover {
  background-color: var(--public-champagne);
  border-color: var(--public-gold);
  color: var(--public-forest);
}

/* Catalogue controls and cards keep their existing mobile layout. */
main:is([data-public-brand-palette="properties"], [data-public-brand-palette="rent"], [data-public-brand-palette="project"]) {
  --property-card-ink: var(--public-forest);
  --property-card-gold: var(--public-champagne);
  --property-card-line: var(--public-line);
}

main[data-public-brand-palette] :is(form#search-filters.marketplace-filters, form.rental-filters, .rental-enquiry) {
  background-color: var(--public-sage);
  border-color: var(--public-line);
  color: var(--public-forest);
}

main[data-public-brand-palette] :is(form#search-filters.marketplace-filters, form.rental-filters) :is(select, input:not([type=radio], [type=checkbox], [type=hidden])),
main[data-public-brand-palette] :is(.developer-country-filter select, .rental-enquiry form, .sa-dev-form-panel :is(input:not([type=checkbox]), textarea)) {
  border-color: var(--public-line);
}

main[data-public-brand-palette] :is(form#search-filters.marketplace-filters, form.rental-filters) .transaction-choice {
  background-color: var(--public-ivory);
  border-color: var(--public-line);
}

main[data-public-brand-palette] :is(form#search-filters.marketplace-filters, form.rental-filters) .transaction-choice input:checked + span,
main[data-public-brand-palette] :is(form#search-filters.marketplace-filters, form.rental-filters, .rental-enquiry, .developer-country-filter) button[type=submit] {
  background-color: var(--public-forest);
  border-color: var(--public-forest);
  color: #fff;
}

main[data-public-brand-palette] :is(form#search-filters.marketplace-filters, form.rental-filters) .transaction-choice input:focus-visible + span,
main[data-public-brand-palette] :is(form#search-filters.marketplace-filters, form.rental-filters, .developer-country-filter, .sa-dev-form-panel) :is(a, button, input, select, summary, textarea):focus-visible {
  outline-color: var(--public-accent-text);
}

main[data-public-brand-palette] :is(#search-filters.marketplace-filters > .advanced-marketplace > summary, .marketplace-tools button, .developer-more) {
  background-color: var(--public-ivory);
  border-color: var(--public-gold);
  color: var(--public-forest);
}

main[data-public-brand-palette] :is(.transaction-badge, .rental-price-summary, .rental-facts > div) {
  background-color: var(--public-sage);
  border-color: var(--public-line);
}

/* Project images and booking states retain their original treatments. */
main[data-public-brand-palette="project"] .private-hero {
  background-color: var(--public-forest);
}

main[data-public-brand-palette="project"] .private-hero :is(.private-kicker, .private-hero-badge) {
  color: var(--public-champagne);
}

main[data-public-brand-palette="project"] .private-hero-badge {
  border-color: var(--public-gold);
}

main[data-public-brand-palette="project"] :is(.private-panel, .private-related, .private-related-grid > a) {
  border-color: var(--public-line);
}

main[data-public-brand-palette="project"] :is(.private-source-status, .private-booking-panel) {
  border-inline-start-color: var(--public-gold);
}

main[data-public-brand-palette="project"] .private-facts {
  background-color: var(--public-line);
  border-color: var(--public-line);
}

main[data-public-brand-palette="project"] :is(.private-panel h2, .private-related-grid strong, .private-facts dd) {
  color: var(--public-forest);
}

main[data-public-brand-palette="project"] :is(.private-breadcrumb a, .private-facts a, .private-catalogue-link) {
  color: var(--public-accent-text);
}

main[data-public-brand-palette] :is(.developer-card, .sa-dev-card, .sa-dev-directory) {
  border-color: var(--public-line);
}

main[data-public-brand-palette] :is(.developer-card:hover, .developer-card:focus-within) {
  border-color: var(--public-gold);
}

main[data-public-brand-palette] :is(.developer-card a, .developer-country-filter label, .developer-country-filter select, .sa-dev-launch) {
  color: var(--public-forest);
}

main[data-public-brand-palette] :is(.developer-directory-intro > p, .developer-filter-count, .al-contact-offices address) {
  color: var(--public-muted);
}

main[data-public-brand-palette] .developer-logo-dark {
  background-color: var(--public-forest);
}

main[data-public-brand-palette="developers"] :is(.hero .kicker, .dev .arrow) {
  color: var(--public-accent-text);
}

main[data-public-brand-palette="developers"] :is(.hero .intro, .dev .meta) {
  color: var(--public-muted);
}

main[data-public-brand-palette="developers"] :is(.grid > .dev, .guide) {
  border-color: var(--public-line);
}

main[data-public-brand-palette="developers"] .grid > .dev:is(:hover, :focus-visible) {
  border-color: var(--public-gold);
  outline-color: var(--public-accent-text);
}

main[data-public-brand-palette="developers"] .dev .logo.dark {
  background-color: var(--public-forest);
}

main[data-public-brand-palette] :is(.sa-dev-card, .sa-dev-photo) {
  background-color: var(--public-sage);
}

main[data-public-brand-palette].sa-dev-content .sa-dev-photo figcaption {
  background-color: var(--public-sage);
  color: var(--public-forest);
}

main[data-public-brand-palette] :is(.private-primary, .sa-dev-contact) {
  background-color: var(--public-champagne);
  color: var(--public-forest);
}

main[data-public-brand-palette] :is(.rental-enquiry, .sa-dev-form-panel) input[type=checkbox] {
  accent-color: var(--public-forest);
}
