/*
 * Boswell's Home Furnishings retailer theme
 * Shared visual polish for active frontend pages.
 */

:root {
  --ivy-ink: #171717;
  --ivy-black: #000000;
  --ivy-text: #66635F;
  --ivy-muted: #66635F;
  --ivy-ivory: #FFFFFF;
  --ivy-cream: #F1EEE8;
  --ivy-bg: #FFFFFF;
  --ivy-bg-secondary: #F1EEE8;
  --ivy-border: #E4E1DC;
  /* Boswell's brand accents: red primary, blue secondary */
  --ivy-gold: #ED1D26;
  --ivy-gold-dark: #C4141C;
  --ivy-red: #ED1D26;
  --ivy-red-dark: #C4141C;
  --ivy-blue: #1070A8;
  --ivy-blue-dark: #0C567F;
  --ivy-card: #ffffff;
  --ivy-shadow-sm: 0 8px 22px rgba(15, 15, 15, 0.04);
  --ivy-shadow-md: 0 14px 34px rgba(15, 15, 15, 0.04);
  --ivy-shadow-lg: 0 18px 44px rgba(15, 15, 15, 0.04);

  --brand-primary: var(--ivy-ink);
  --brand-primary-light: #34332f;
  --brand-primary-dark: var(--ivy-black);
  --brand-secondary: var(--ivy-cream);
  --brand-secondary-light: #ffffff;
  --brand-secondary-dark: var(--ivy-border);
  --brand-accent: var(--ivy-gold);
  --brand-accent-light: #F4767B;
  --brand-accent-dark: var(--ivy-gold-dark);
  --global-color: var(--ivy-ink);
  --base: var(--ivy-ink);
}

body {
  color: var(--ivy-text);
  background: var(--ivy-ivory);
}

a {
  color: inherit;
}

a:hover {
  color: var(--ivy-blue);
}

/* Boswell's brand accent helpers (red primary, blue secondary) */
.text-primary, .text-red, .accent-red { color: var(--ivy-red) !important; }
.text-blue, .accent-blue { color: var(--ivy-blue) !important; }
.bg-red { background-color: var(--ivy-red) !important; color: #fff !important; }
.bg-blue { background-color: var(--ivy-blue) !important; color: #fff !important; }
.btn-primary, .btn.btn-primary {
  background-color: var(--ivy-red) !important;
  border-color: var(--ivy-red) !important;
  color: #fff !important;
}
.btn-primary:hover, .btn.btn-primary:hover {
  background-color: var(--ivy-red-dark) !important;
  border-color: var(--ivy-red-dark) !important;
}
.btn-outline-primary {
  color: var(--ivy-blue) !important;
  border-color: var(--ivy-blue) !important;
  background-color: transparent !important;
}
.btn-outline-primary:hover {
  background-color: var(--ivy-blue) !important;
  color: #fff !important;
}

/* ---------------------------------------------------------------
   Premium restraint layer
   Keep the bold brand red for real CTAs only. Small eyebrow / kicker
   labels and decorative dividers use an understated warm stone so the
   palette reads editorial and curated, not loud or templated.
   --------------------------------------------------------------- */
[class*="kicker"],
[class*="eyebrow"],
[class*="__eyebrow"],
.section-title__eyebrow,
.section-subtitle,
.eyebrow {
  color: #8A7E72 !important;
  font-weight: 600 !important;
}
/* Decorative kicker rules/lines follow the stone tone, kept hairline-soft */
[class*="kicker"]::before,
[class*="kicker"]::after {
  opacity: .55 !important;
}
/* Testimonial stars: warm, restrained rather than loud red */
[class*="stars"],
[class*="__stars"],
[class*="rating"] i,
.star-rating {
  color: #C9A24B !important;
}
/* Softer, quieter card elevation site-wide (neutral, premium) */
.product-card,
.product-item,
.promo-card,
.single__blog,
.location-card,
.testimonial-item,
.about-summary {
  box-shadow: 0 10px 30px rgba(15, 15, 15, 0.04) !important;
}

.page-hero,
.clearance-hero,
.brand-hero,
.blog-hero,
.newsletter-hero {
  background: linear-gradient(180deg, #ffffff 0%, var(--ivy-cream) 100%) !important;
  color: var(--ivy-ink);
}

.section-title__heading,
.page-hero-title,
.hero-title {
  color: var(--ivy-ink);
  letter-spacing: 0;
}

.section-title__line {
  background: var(--ivy-border) !important;
}

.product-card,
.product-item,
.promo-card,
.single__blog,
.blog_sidebar.card,
.location-card,
.testimonial-item,
.about-summary,
.style-center,
.empty-state {
  border-color: var(--ivy-border) !important;
  background-color: var(--ivy-card) !important;
  box-shadow: var(--ivy-shadow-sm);
}

.section-title__subtitle,
.section-subtitle,
.hero-desc,
.page-hero-description,
.blog-meta,
.product-card__meta,
.breadcrumb__link {
  color: var(--ivy-muted) !important;
}

/* Checkboxes and radios are excluded deliberately. This rule uses the `background`
   SHORTHAND with !important, which resets background-image/-color/-size. Applied to
   a checkbox it wipes out the check mark those controls draw with a background
   image, so no custom checkbox on the site could ever appear ticked. */
.form--control,
input:not([type="checkbox"]):not([type="radio"]),
select,
textarea {
  background: #ffffff !important;
  border-color: var(--ivy-border) !important;
  color: var(--ivy-ink) !important;
}

.form--control:focus,
input:not([type="checkbox"]):not([type="radio"]):focus,
select:focus,
textarea:focus {
  border-color: var(--ivy-black) !important;
  box-shadow: 0 0 0 3px rgba(15, 15, 15, 0.04) !important;
}

.btn,
.theme-btn,
.cmn--btn,
.location-card__button,
.view-compare-btn {
  border-radius: 4px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.location-card__button,
.view-compare-btn,
.search_inner__button {
  background: var(--ivy-ink) !important;
  border-color: var(--ivy-ink) !important;
  color: #ffffff !important;
}

.location-card__button:hover,
.view-compare-btn:hover,
.search_inner__button:hover {
  background: #2a2a2a !important;
  border-color: #2a2a2a !important;
  color: #ffffff !important;
}

.read-more,
.more-button .read-more,
.promo-type-tag,
.products-count span,
.page-hero-description strong,
.hero-desc strong {
  color: var(--ivy-ink) !important;
}

.pagination .page-item.active .page-link {
  background-color: var(--ivy-black) !important;
  border-color: var(--ivy-black) !important;
  color: #ffffff !important;
}

.badge,
.tag,
.status-badge,
.product-badge,
.promo-badge {
  background: var(--ivy-black) !important;
  color: #ffffff !important;
  border-color: var(--ivy-black) !important;
}

