/* Context-aware icon colors.
   Icons inherit the color of their component instead of being forced to one
   global color. This keeps them readable on light, brand-green, and dark
   backgrounds alike. */
:root {
    --hsb-icon-green: #2f6f1d;
    --hsb-icon-green-dark: #215d22;
    --hsb-icon-green-light: #a9d36a;
    --hsb-icon-gold: #a87500;
    --hsb-icon-teal: #2f7567;
}

/* Inline SVGs use their component's current text color for painted paths. */
body svg {
    color: currentColor;
}

body svg [stroke]:not([stroke="none"]),
body svg[stroke]:not([stroke="none"]) {
    stroke: currentColor;
}

body svg [fill]:not([fill="none"]),
body svg[fill]:not([fill="none"]) {
    fill: currentColor;
}

/* Header: dark icons on white controls, white icons on green controls. */
.hsb-btn-order-online .hsb-chevron,
.hsb-mobile-toggle svg {
    color: #2f3431;
}

.hsb-btn-order-online:hover .hsb-chevron,
.hsb-mobile-toggle:hover svg {
    color: var(--hsb-icon-green);
}

.hsb-btn-book-table .hsb-cal-icon,
.hsb-btn-circle-action svg {
    color: #ffffff;
}

/* Light surfaces: use deeper greens for contrast against pale backgrounds. */
.hsb-hero-note-mark,
.hsb-hero-arrow,
.hsb-chef-card-icon,
.hsb-chef-card-arrow,
.hsb-world-icon,
.hsb-about-legacy-stat-icon,
.contact-detail-icon,
.specialty-day-icon {
    color: var(--hsb-icon-green) !important;
}

.hsb-hero-value svg {
    color: var(--hsb-icon-green-dark) !important;
}

.hsb-recommendation-arrow {
    border-color: var(--hsb-icon-green) !important;
    color: var(--hsb-icon-green) !important;
}

.hsb-recommendation-card--special .hsb-recommendation-arrow {
    border-color: var(--hsb-icon-gold) !important;
    color: var(--hsb-icon-gold) !important;
}

.hsb-recommendation-card--tea .hsb-recommendation-arrow {
    border-color: var(--hsb-icon-teal) !important;
    color: var(--hsb-icon-teal) !important;
}

/* Keep action icons white when their button becomes saturated. */
.hsb-hero-primary svg,
.hsb-review-all-link svg,
.hsb-about-legacy-cta svg,
.contact-call-button svg,
.contact-submit svg,
.menu-download-button svg,
.menu-button svg {
    color: #ffffff !important;
}

.hsb-hero-secondary svg {
    color: #396530 !important;
}

.hsb-hero-secondary:hover,
.hsb-hero-secondary:hover svg,
.hsb-hero-secondary:focus-visible,
.hsb-hero-secondary:focus-visible svg {
    color: #ffffff !important;
}

.hsb-hero-secondary:hover svg,
.hsb-hero-secondary:focus-visible svg {
    fill: none !important;
    stroke: currentColor !important;
}

.hsb-hero-secondary:hover svg *,
.hsb-hero-secondary:focus-visible svg * {
    fill: none !important;
    stroke: currentColor !important;
}

.hsb-recommendation-card:hover .hsb-recommendation-arrow,
.hsb-recommendation-card--special:hover .hsb-recommendation-arrow,
.hsb-recommendation-card--tea:hover .hsb-recommendation-arrow,
.hsb-chef-card:hover .hsb-chef-card-arrow {
    color: #ffffff !important;
}

/* Dark image panel: the light green mark stays visible over the overlay. */
.hsb-chef-feature-mark,
.hsb-chef-feature-value svg {
    color: var(--hsb-icon-green-light) !important;
}

/* Page-specific pale icon treatments. */
.contact-detail-icon {
    background: #e1ecd9 !important;
}

.specialty-day-icon {
    background: rgba(133, 194, 39, 0.08) !important;
    border-color: var(--hsb-icon-green) !important;
}

/* The footer is intentionally rendered on a light theme. */
.hsb-simple-footer .hsb-footer-contact-icon,
.hsb-simple-footer .hsb-footer-contact-icon svg {
    color: #111111 !important;
}

.hsb-simple-footer .hsb-footer-contact-icon svg {
    fill: none !important;
    stroke: currentColor !important;
}

.hsb-simple-footer .hsb-footer-social,
.hsb-simple-footer .hsb-footer-social svg {
    color: var(--hsb-icon-green) !important;
}

.hsb-simple-footer .hsb-footer-social svg {
    fill: currentColor;
    stroke: none !important;
}

.hsb-simple-footer .hsb-footer-social svg rect,
.hsb-simple-footer .hsb-footer-social svg circle {
    stroke: currentColor !important;
}
