/* Public Geneva portal: the approved cartography palette and hierarchy. */
:root {
  --wine: #421b29;
  --cream: #f8f3ec;
  --accent: var(--wine);
  --accent-dark: #5c293b;
  --gold: #f7c634;
  --border: #e8dfd7;
  --page: #f8f7f5;
  --soft: #fff5dc;
  --muted: #6d6570;
}
header { height: 88px; }
.wordmark { font-size: 38px; letter-spacing: -1.7px; }
.wordmark svg { width: 32px; height: 32px; }
.languages { background: #faf8f5; border-color: var(--border); }
.languages button[aria-pressed="true"] { color: var(--wine); }
.about-btn { color: #615460; }
.portal-nav nav { min-height: 58px; }
.portal-nav button { color: #6d6570; padding-top: 17px; padding-bottom: 17px; }
.portal-nav button[aria-pressed="true"] { color: var(--wine); border-color: var(--wine); background: #fcf8f5; }
.nav-count { color: #65545c; background: var(--cream); }
.primary { border-radius: 10px; background: var(--wine); color: #fff4ed; }
.primary:hover:not(:disabled) { background: var(--accent-dark); }
.eyebrow, #support-view .eyebrow { color: var(--wine); }
.small-btn:hover { color: var(--wine); border-color: #a7808e; background: var(--cream); }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid var(--wine); outline-offset: 4px;
}

/* The wine hero frames the existing white, category-coloured support cards. */
#support-view .hero { background: var(--wine); border-color: var(--wine); color: #fff4ed; }
#support-view .hero-inner { min-height: 620px; padding-top: 52px; padding-bottom: 44px; }
#support-view .hero .eyebrow { color: var(--gold); letter-spacing: .1em; }
#support-view .hero h1 { color: #fff4ed; font-weight: 650; }
#support-view .hero h1 em { color: #fff4ed; }
#support-view .hero .intro { color: #e0cbd1; }
#support-view .find-btn { background: var(--gold); color: var(--wine); border-radius: 10px; box-shadow: none; }
#support-view .find-btn:hover { background: #ffda61; }
#support-view .catalogue-entry { background: transparent; color: #fff4ed; border: 1px solid #ae8d99; border-radius: 10px; }
#support-view .catalogue-entry:hover { background: #ffffff0d; border-color: #fff4ed; }
#support-view .explore-map { color: #fff4ed; }
#support-view .shuffle { color: #fff4ed; background: #ffffff0a; border-color: #ae8d99; box-shadow: none; }
#support-view .shuffle:hover { background: #ffffff14; }
#support-view .hero button:focus-visible { outline-color: var(--gold); }
#support-view .pile-card:focus-visible { outline-color: var(--wine); box-shadow: 0 0 0 7px var(--gold); }
#support-view .pile-card { background: #fff; color: #191c24; }
#support-view .support-key-figures strong { color: var(--wine); }
#support-view .support-key-figures span { color: #6d6570; }

/* Clear working surfaces and a consistent selection/focus language. */
#support-view .finder { background: var(--page); }
#support-view .panel, #support-view .result-card, #support-view .option-card { border-color: var(--border); border-radius: 16px; }
#support-view .search-panel h2, #support-view .wizard h2, #support-view .result-card h3 { color: var(--wine); }
#support-view .search-field { border-color: var(--border); background: #faf8f5; border-radius: 10px; }
#support-view .search-field:focus-within { border-color: var(--wine); outline: 2px solid var(--wine); outline-offset: 2px; box-shadow: none; }
#support-view .search-submit { border-radius: 10px; }
#support-view .search-examples button { color: var(--wine); border-color: #bfa4af; }
#support-view .wizard-progress { background: var(--wine); }
#support-view .option-card:hover, #support-view .result-card:hover { border-color: #a7808e; background: #fffdfa; }
#support-view .option-card[aria-pressed="true"] { border-color: var(--wine); background: #fff5dc; box-shadow: 0 0 0 1px var(--wine); }
#support-view .stage-preview, #support-view .featured-card, #support-view .contact-panel { background: #fff8e7; border-color: #e6d29b; border-radius: 16px; }
#support-view .contact-panel a, .small-btn, .load-more { color: var(--wine); }
#support-view .information { color: #6d6570; border-color: var(--border); }
.chip { color: var(--wine); background: var(--cream); border-color: var(--border); }
.filter-summary { border-color: var(--border); }
.select-wrap, .toolbar-filters, .load-more { border-color: var(--border); }
.result-count, .result-help, .selection-hint, .wizard-subtitle, .step-label { color: #6d6570; }

/* Services use the same wine introduction, followed by light reference cards. */
#services-view .service-heading {
  max-width: none; padding: 46px 0 36px; margin-bottom: 30px;
  background: var(--wine); color: #fff4ed;
  box-shadow: 0 0 0 100vmax var(--wine); clip-path: inset(0 -100vmax);
}
#services-view .service-heading h1 { max-width: 760px; font-size: clamp(36px, 3.8vw, 48px); font-weight: 650; line-height: 1.12; letter-spacing: -1.5px; }
#services-view .service-heading .eyebrow { color: var(--gold); letter-spacing: .1em; }
#services-view .service-heading > p:not(.eyebrow) { max-width: 760px; color: #e0cbd1; }
#services-view .service-heading > .service-checked { color: #d5b8c4 !important; }
.service-card, .support-card, .source-card { background: #fff; border-color: var(--border); border-radius: 16px; box-shadow: 0 3px 8px #421b2905, 0 12px 28px #421b2906; }
.service-card h2, .service-card h3, .support-card h3, .source-card h3, .service-section h2, .service-section-heading h2 { color: var(--wine); font-weight: 650; }
.service-card:hover { border-color: #a7808e; box-shadow: 0 5px 18px #421b2910; }
.service-tag { color: var(--wine); background: #fff1c7; }
.service-groups button { border-color: var(--border); color: #615460; }
.service-groups button[aria-pressed="true"] { background: var(--wine); border-color: var(--wine); color: #fff4ed; }
.service-toolbar input { background: #fff; border-color: var(--border); border-radius: 10px; }
.service-toolbar input:focus { border-color: var(--wine); }
.service-toolbar label.sr-only { min-width: 0; width: 1px; max-width: 1px; }
.service-link, .support-secondary { color: var(--wine); }
.service-note, .service-meta, .service-result-count, .source-card .service-tag { color: #6d6570; }

/* Map chrome follows the portal; geographic symbols keep their meaning. */
.map-heading h1, .map-heading .map-eyebrow { color: var(--wine); }
.map-heading h1 { font-weight: 650; }
.map-filters, .map-workspace, .map-toggle, .map-chip, .map-basemap-picker, .map-display-picker { border-color: var(--border); }
.map-toggle button[aria-pressed="true"], .map-map-controls button[aria-pressed="true"] { background: var(--wine); color: #fff4ed; }
.map-chip:hover { border-color: #a7808e; background: var(--cream); }
.map-filters input:focus, .map-filters select:focus { border-color: var(--wine); }
.map-row:hover, .map-row.is-selected { background: #fff5dc; }
.map-detail h2, .map-detail dt, .map-row > span { color: var(--wine); }
.map-row small:first-of-type { color: var(--wine); }
.map-detail-type { color: #765363 !important; }
.map-detail .map-support-link { color: var(--wine); border-color: #e6d29b; }
.map-source a { color: var(--wine); }
.map-map-controls button:focus-visible, .map-support-icon:focus-visible { outline: 3px solid var(--wine); outline-offset: 3px; }
.map-legend { color: #6d6570; }
.map-legend span::before { background: #bd1835; }
.map-legend .map-legend-support::before { background: var(--gold); }
.map-legend .map-legend-seat::before { background: #94652c; }
.map-cluster-icon { background: #bd1835; }

/* Dialogs also belong to the public portal, including feedback and sources. */
dialog { background: #fff; border-color: var(--border); border-radius: 16px; }
dialog::backdrop { background: #29101bb3; }
.dialog-top { margin: -28px -28px 24px; padding: 25px 28px; background: var(--wine); color: #fff4ed; }
.dialog-top h2 { color: #fff4ed; font-weight: 650; }
.dialog-label { background: #f7c634; color: var(--wine); border-radius: 6px; }
.close-dialog { color: #fff4ed; background: #ffffff12; border-color: #ae8d99; }
.close-dialog:hover { background: #ffffff24; }
.dialog-top button:focus-visible { outline-color: var(--gold); }
.detail-section h3, .info-dialog h3 { color: var(--wine); }
.dialog-description, .info-dialog p, .detail-section p { color: #655c67; }
.detail-tags span, .reading-note, .detail-alert { background: var(--cream); color: #615460; }
.detail-alert { border-color: var(--border); }
.detail-link, .feedback-actions .primary, .filter-modal-grid .primary { background: var(--wine); color: #fff4ed; border-radius: 10px; }
.detail-source, .source-list small { color: #6d6570; }
.source-list a { color: var(--wine); border-color: var(--border); }
.feedback-area, .filter-modal-grid select { border-color: var(--border); background: #faf8f5; border-radius: 10px; }
.feedback-btn { background: #fffffff5; border-color: #c5adb6; color: var(--wine); }
.feedback-btn:hover { background: var(--cream); }
.toast { background: var(--wine); color: #fff4ed; }
footer { background: var(--cream); border-color: var(--border); color: #6d6570; }
body > footer { padding-bottom: 80px; }
.footer-inner button { color: var(--wine); }

@media (max-width: 900px) {
  #support-view .hero-inner { min-height: 600px; padding-top: 42px; padding-bottom: 36px; }
}
@media (max-width: 680px) {
  header { height: 76px; }
  .wordmark { font-size: 28px; letter-spacing: -1.3px; }
  .wordmark svg { width: 25px; height: 25px; }
  .portal-nav nav { min-height: 53px; }
  .portal-nav button { padding-top: 15px; padding-bottom: 15px; }
  #support-view .hero-inner { min-height: 0; padding-top: 32px; padding-bottom: 28px; }
  #support-view .hero h1 { font-size: 38px; }
  #services-view .service-heading { padding: 32px 0 28px; margin-bottom: 24px; }
  #services-view .service-heading h1 { font-size: 34px; letter-spacing: -1px; }
  .dialog-top { margin: -22px -22px 21px; padding: 22px; }
}
@media print {
  #support-view .hero, #services-view .service-heading, .dialog-top { background: #fff; color: #191c24; box-shadow: none; clip-path: none; }
  #support-view .hero h1, #support-view .hero h1 em, #support-view .hero .intro, #support-view .hero .eyebrow,
  #services-view .service-heading h1, #services-view .service-heading > p:not(.eyebrow) { color: #191c24; }
}

/* A quiet warm ground makes the white cards distinct; colour stays in small cues. */
#support-view .finder, #services-view { background: #f0eee9; }
#support-view .panel, #support-view .result-card, #support-view .option-card,
.service-card, .support-card, .source-card {
  background: #fff; border-color: #dcd7cf;
  box-shadow: 0 2px 5px #30251d06, 0 10px 24px #30251d09;
}
#support-view .search-panel h2 svg {
  display: inline-block; width: 21px; height: 21px; box-sizing: content-box;
  padding: 8px; margin-right: 3px; border-radius: 11px;
  color: #126780; background: #e0f3fa;
}
#support-view .search-field { background: #fff; }
#support-view .option-icon {
  width: 36px; min-width: 36px; height: 36px; border-radius: 10px;
  color: #126780; background: #e0f3fa;
}
#support-view .option-icon .portal-icon { width: 21px; height: 21px; }
#support-view [data-profile="pme"] .option-icon { color: #365f9b; background: #e8eff9; }
#support-view [data-profile="creation"] .option-icon { color: #a84c15; background: #fff0e5; }
#support-view [data-profile="creative"] .option-icon { color: #69518f; background: #efe9f8; }
#support-view .stage-preview .option-icon { color: #85613c; background: #faf0e4; }
#support-view .option-card[aria-pressed="true"] { background: #fff8e6; }
.card-provider { display: flex; gap: 11px; align-items: center; margin-bottom: 15px; min-height: 36px; }
#support-view .card-provider .org-mark { position: static; margin: 0; color: #655c67; opacity: 1; line-height: 1.5; }
#support-view .featured-card .card-provider { padding-right: 85px; }
.category-icon { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 36px; height: 36px; border-radius: 10px; background: var(--card-soft); color: var(--card-ink); }
.category-icon .portal-icon { width: 21px; height: 21px; }
#support-view .result-card { border-top: 3px solid var(--card-color); }
#support-view .tag { color: var(--card-ink); }
#support-view .card-more { color: var(--wine); }
#detail-type { display: inline-flex; gap: 7px; align-items: center; background: var(--card-soft); color: var(--card-ink); padding: 6px 10px; }
#detail-type .portal-icon { width: 17px; height: 17px; }
#detail-dialog { background: #faf8f4; }
#detail-dialog .detail-tags span { background: #fff; border: 1px solid #ded8d0; }
#detail-dialog .detail-alert { background: #fff5dc; border-color: #e3d2a9; }
.service-tag { display: inline-flex; align-items: center; gap: 7px; padding: 5px 9px; color: #85613c; background: #faf0e4; }
.service-tag .portal-icon { width: 16px; height: 16px; }
[data-service-kind="admin"] .service-tag { color: #365f9b; background: #e8eff9; }
[data-service-kind="development"] .service-tag { color: #147568; background: #dff5ee; }
[data-service-kind="data"] .service-tag { color: #126780; background: #e0f3fa; }
@media (forced-colors: active) {
  .category-icon, #support-view .option-icon, #detail-type, .service-tag { color: CanvasText; }
  #support-view .result-card { border-top-color: CanvasText; }
}
