/* Truervw color system: neutral content, emerald actions, purposeful accents. */
:root {
  --ink: #22352B;
  --muted: #5D6961;
  --green: #185C43;
  --white: #FFFFFF;
  --surface: #F7F8F4;
  --mint: #EEF5EF;
  --line: #DCE4DD;
  --action-green: #237D57;
  --action-hover: #1C6849;
  --action-pressed: #16543B;
  --control-border: #7B8D80;
  --focus: #185C43;
  --surface-sage: #EEF5EF;
  --surface-sky: #F0F5FA;
  --info-ink: #2D506B;
  --info-border: #B6CBDC;
  --danger: #A52834;
  --danger-soft: #FFF1F0;
  --footer: #173D2D;
  --brand-teal: #267568;
  --brand-gold: #C89E4F;
  --category-sun: #F6EED9;
  --category-rose: #F5E6E4;
  --category-mint: #E4F0E7;
  --category-sky: #E7EEF7;
  --prompt-bg: #F5F8F3;
}

/* Primary actions retain the lighter green requested for the site. */
.button:not(.button-outline):not(.button-danger),
.main-nav .nav-business {
  background: var(--action-green);
  border-color: var(--action-green);
  color: #FFFFFF;
  transition: background-color .15s, border-color .15s, box-shadow .15s;
}
.button:not(.button-outline):not(.button-danger):not(:disabled):not([aria-disabled="true"]):hover,
.main-nav .nav-business:hover {
  background: var(--action-hover);
  border-color: var(--action-hover);
  color: #FFFFFF;
}
.button:not(.button-outline):not(.button-danger):not(:disabled):not([aria-disabled="true"]):active,
.main-nav .nav-business:active {
  background: var(--action-pressed);
  border-color: var(--action-pressed);
  color: #FFFFFF;
}
.button.button-outline {
  background: var(--white);
  border-color: var(--control-border);
  color: var(--green);
}
.button.button-outline:not(:disabled):not([aria-disabled="true"]):hover {
  background: var(--surface-sage);
  border-color: var(--green);
  color: var(--green);
}
.button.button-outline:not(:disabled):not([aria-disabled="true"]):active {
  background: #DEEDE1;
  border-color: var(--green);
  color: var(--green);
}
.button.button-danger {
  background: var(--white);
  border-color: var(--danger);
  color: var(--danger);
}
.button.button-danger:not(:disabled):not([aria-disabled="true"]):hover,
.button.button-danger:not(:disabled):not([aria-disabled="true"]):active {
  background: var(--danger-soft);
  border-color: var(--danger);
  color: var(--danger);
}
.button:disabled,
.button[aria-disabled="true"] {
  opacity: 1;
  background: #E5EAE5 !important;
  border-color: #CED8D0 !important;
  color: #626F66 !important;
  box-shadow: none;
  cursor: not-allowed;
}
a:focus-visible, button:focus-visible, input:focus-visible,
textarea:focus-visible, select:focus-visible, summary:focus-visible,
.button:focus-visible, .main-nav .nav-business:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
}

/* Calm canvases make business names, reviews and calls to action the focus. */
.site-header { background: var(--white); border-bottom-color: var(--line); }
.home-hero {
  background: linear-gradient(115deg, #F8F8F0 10%, #EEF5EF 100%);
}
.hero.business-illustrated, .page-hero,
.trv-categories-page .category-discovery-hero,
.trv-directory-page .directory-hero { background: var(--surface); }
.home-hero .hero-search, .trv-categories-page .category-search-form {
  border-color: var(--control-border);
  box-shadow: 0 5px 20px rgba(23,61,45,.06);
}
.home-hero .hero-search:focus-within,
.trv-categories-page .category-search-form:focus-within {
  border-color: var(--focus);
  box-shadow: 0 0 0 2px var(--focus);
}
.experience-banner { border-color: var(--line); }
.community-invitation.community-illustrated { background: var(--surface-sage); }
.business-banner { background: var(--surface-sky); border-color: #D5E1E9; }
.trv-categories-page .category-directory-help { background: var(--surface-sage); border-color: #CFDFD2; }
.company-card, .category-card, .step-card, .panel { background: var(--white); border-color: var(--line); }
.company-card:hover, .category-card:hover { border-color: #98B6A1; }
.category-card:hover { background: #F9FCF9; }

/* Business profiles: one clear action surface and understated information. */
.trv-company-profile { background: var(--surface); }
.trv-company-profile .trv-profile-hero { background: var(--white); }
.trv-profile-logo { background: var(--white); }
.trv-company-profile .trv-profile-action-card { background: #F0F7F1; border-color: #CADFCE; }
.trv-company-profile .trv-profile-tabs { background: var(--white); border-color: var(--line); }
.trv-company-profile .trv-profile-tablist [data-profile-tab]:hover { color: var(--green); border-bottom-color: #A4C4AF; }
.trv-company-profile .trv-profile-tablist [aria-selected="true"],
.trv-company-profile .trv-profile-tablist [aria-selected="true"]:hover {
  color: var(--green);
  border-bottom-color: var(--action-green);
}
.trv-profile-tablist a > span { background: #EDF1EB; color: var(--muted); }
.trv-profile-status { background: #EEF1EC; color: var(--muted); }
.trv-profile-status.is-claimed { background: #E3F0E5; color: var(--green); }
.trv-profile-category-chips a { background: var(--white); border-color: var(--line); color: var(--muted); }
.trv-company-profile .trv-profile-website-button,
.trv-company-profile .trv-profile-tab-write { background: var(--white); border-color: var(--control-border); color: var(--green); }
.trv-company-profile .trv-profile-website-button:hover,
.trv-company-profile .trv-profile-tab-write:hover { background: var(--surface-sage); border-color: var(--green); }
.trv-profile-card, .trv-profile-review-list .review-card { background: var(--white); border-color: var(--line); }
.trv-profile-owner-card { background: var(--surface-sky); border-color: #D5E1E9; }
.trv-profile-quote-icon { background: var(--surface-sage); color: var(--green); }
.trv-profile-distribution-track { background: #EAEFE8; }
.trv-profile-review-list .business-reply { background: #F2F6F2; border-color: #D9E5DB; }

/* Form boundaries, focus and informational feedback share the same vocabulary. */
.form-stack input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
.form-stack textarea, .form-stack select,
.filters input, .filters select,
.help-search input,
.trv-directory-page .directory-sort select,
.review-filter input, .review-filter select,
.trv-directory-page .directory-filter-field input,
.trv-directory-page .directory-filter-field select,
.trv-profile-review-filter input, .trv-profile-review-filter select {
  border-color: var(--control-border);
  background: var(--white);
  color: var(--ink);
}
.trv-review-flow { --trv-input-border: var(--control-border); }
.trv-review-composer { background: var(--white); }
.trv-review-business { background: var(--surface-sage); }
input[type=checkbox], input[type=radio] { accent-color: var(--action-green); }
.notice { background: var(--surface-sky); border-color: var(--info-border); color: var(--info-ink); }
.notice a { color: #244D70; }
.form-error { background: var(--danger-soft); border-color: var(--danger); color: var(--danger); }
.form-error a { color: var(--danger); }
.trv-directory-page .directory-filter-disclosure[open] .directory-filter-trigger { background: var(--surface-sage); }
.trv-directory-page .directory-filter-chip { background: var(--surface-sage); border-color: #C4D9CA; color: var(--green); }

/* A consistent forest footer anchors the lighter page surfaces. */
.site-footer { background: var(--footer); color: #D4DED5; }
.site-footer .brand, .site-footer .footer-grid h2 { color: #F7FAF6; }
.site-footer .footer-bottom { border-color: #40604B; color: #C4D2C7; }
.site-footer a:hover { color: #FFFFFF; }
.site-footer a:focus-visible { outline-color: #DFEDD8; }
.site-footer .brand-dot { color: #E2BA70; }

@media(max-width:640px) {
  .trv-company-profile .trv-profile-action-card { background: transparent; border-color: transparent; }
}
@media(prefers-reduced-motion:reduce) {
  .button:not(.button-outline):not(.button-danger), .main-nav .nav-business { transition: none; }
}
