/* ============================================================
   Hugon Veneer — Components
   Buttons, hero, cards, quote, CTA, newsletter, footer
   All variable names aligned to base.css :root definitions
   ============================================================ */

/* -----------------------------------------------
   Buttons
   ----------------------------------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: 14px 28px;
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1;
  border-radius: var(--radius-sm);
  cursor: pointer;
  text-decoration: none;
  transition:
    background-color var(--t-base) var(--t-ease),
    color var(--t-base) var(--t-ease),
    border-color var(--t-base) var(--t-ease),
    transform var(--t-fast) var(--t-ease),
    box-shadow var(--t-base) var(--t-ease);
  border: 1px solid transparent;
  white-space: nowrap;
}

/* Primary — dark brown bg, white text */
.btn--primary {
  background-color: var(--color-primary);
  color: var(--color-white);
  border-color: var(--color-primary);
}
.btn--primary:hover {
  background-color: var(--color-primary-dark);
  color: var(--color-white);
  transform: translateY(-1px);
  box-shadow: var(--shadow-md);
}

/* Secondary — warm gold */
.btn--secondary {
  background-color: var(--color-secondary);
  color: var(--color-white);
  border-color: var(--color-secondary);
}
.btn--secondary:hover {
  background-color: var(--color-secondary-dark);
  color: var(--color-white);
}

/* Outline — bordered */
.btn--outline {
  background-color: transparent;
  color: var(--color-primary);
  border-color: var(--color-primary);
}
.btn--outline:hover {
  background-color: var(--color-primary);
  color: var(--color-white);
}

/* Text button — minimal, for card actions */
.btn--text {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  padding: 10px 0;
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wider);
  text-transform: uppercase;
  color: var(--color-primary);
  background: none;
  border: none;
  border-bottom: 2px solid var(--color-primary);
  border-radius: 0;
  cursor: pointer;
  text-decoration: none;
  transition:
    color var(--t-fast) var(--t-ease),
    border-color var(--t-fast) var(--t-ease),
    gap var(--t-base) var(--t-ease);
}
.btn--text:hover {
  color: var(--color-secondary);
  border-color: var(--color-secondary);
  gap: var(--space-3);
}
.btn--text::after {
  content: "\2192";
  font-size: 1.1em;
  transition: transform var(--t-base) var(--t-ease);
}
.btn--text:hover::after {
  transform: translateX(4px);
}

/* Active & focus states */
.btn:active { transform: translateY(0); }
.btn:focus-visible {
  outline: 2px solid var(--color-secondary);
  outline-offset: 3px;
}

/* -----------------------------------------------
   Link arrow (inline text link with arrow)
   ----------------------------------------------- */
.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-secondary);
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  margin-top: var(--space-3);
  transition: gap var(--t-base) var(--t-ease);
}
.link-arrow::after {
  content: "\2192";
  transition: transform var(--t-base) var(--t-ease);
}

/* -----------------------------------------------
   Hero section
   ----------------------------------------------- */
.hero {
  position: relative;
  min-height: 50vh;
  display: flex;
  align-items: center;
  overflow: hidden;
}

.hero--home {
  min-height: 85vh;
}

/* Inner page hero — compact with wood gradient bg */
.hero--page {
  min-height: 40vh;
  background:
    repeating-linear-gradient(
      90deg,
      transparent 0, transparent 2px,
      rgba(139, 105, 20, 0.03) 2px,
      rgba(139, 105, 20, 0.03) 4px,
      transparent 4px, transparent 12px
    ),
    repeating-linear-gradient(
      0deg,
      transparent 0, transparent 40px,
      rgba(44, 24, 16, 0.05) 40px,
      rgba(44, 24, 16, 0.05) 42px,
      transparent 42px, transparent 80px
    ),
    linear-gradient(135deg, #3D2419 0%, #5C3A21 40%, #8B6914 60%, #5C3A21 80%, #2C1810 100%);
  color: var(--color-white);
}
.hero--page .container { position: relative; z-index: 2; }
.hero--page .hero__eyebrow { color: var(--color-accent-soft); }
.hero--page .hero__title { color: var(--color-white); }
.hero--page .hero__text { color: rgba(255, 255, 255, 0.85); }
.hero--page .hero__media::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(61, 36, 25, 0.82) 0%, rgba(44, 24, 16, 0.72) 100%);
  z-index: 1;
}

.hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hero__image {
  width: 100%;
  height: 100%;
}
.hero__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Placeholder — rich wood-tone gradient + subtle grain texture */
.hero__image--placeholder {
  background:
    repeating-linear-gradient(
      90deg, transparent 0, transparent 2px,
      rgba(139, 105, 20, 0.04) 2px, rgba(139, 105, 20, 0.04) 4px,
      transparent 4px, transparent 12px
    ),
    repeating-linear-gradient(
      0deg, transparent 0, transparent 40px,
      rgba(44, 24, 16, 0.06) 40px, rgba(44, 24, 16, 0.06) 42px,
      transparent 42px, transparent 80px
    ),
    linear-gradient(135deg, #3D2419 0%, #5C3A21 25%, #8B6914 50%, #5C3A21 75%, #2C1810 100%);
  background-size: 100% 100%;
}

.hero__content {
  position: relative;
  z-index: 1;
  padding: var(--space-10) 0;
  max-width: 720px;
}

.hero__eyebrow {
  display: inline-block;
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-widest);
  text-transform: uppercase;
  color: var(--color-accent-soft);
  margin-bottom: var(--space-3);
}

.hero__title {
  font-size: clamp(2rem, 4vw, 3rem);
  font-family: var(--font-serif);
  font-weight: var(--fw-bold);
  color: var(--color-white);
  line-height: var(--lh-tight);
  margin-bottom: var(--space-4);
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.3);
}

.hero--home .hero__title {
  font-size: clamp(2.5rem, 5vw, 4.5rem);
}

.hero__subtitle {
  font-size: var(--fs-md);
  letter-spacing: 0.2em;
  color: var(--color-accent-soft);
  font-weight: var(--fw-medium);
  margin-bottom: var(--space-4);
}

.hero__text {
  font-size: var(--fs-md);
  color: rgba(255, 255, 255, 0.85);
  line-height: var(--lh-loose);
  max-width: 560px;
  margin-bottom: var(--space-6);
}

/* -----------------------------------------------
   Solution cards (.solution-pillars)
   ----------------------------------------------- */
.solution-pillars {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-6);
}

.solution-card {
  display: flex;
  flex-direction: column;
  background-color: var(--color-white);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition:
    box-shadow var(--t-base) var(--t-ease),
    transform var(--t-base) var(--t-ease);
  text-decoration: none;
  color: inherit;
}

.solution-card:hover {
  box-shadow: var(--shadow-lg);
  transform: translateY(-4px);
}

.solution-card__image {
  aspect-ratio: 16 / 10;
  background-color: var(--color-bg-alt);
  overflow: hidden;
}

.solution-card__image--placeholder {
  background:
    repeating-linear-gradient(
      90deg, transparent 0, transparent 2px,
      rgba(139, 105, 20, 0.03) 2px, rgba(139, 105, 20, 0.03) 4px,
      transparent 4px, transparent 10px
    ),
    linear-gradient(135deg, var(--color-bg-alt) 0%, var(--color-border) 100%);
}

.solution-card__title {
  font-family: var(--font-serif);
  font-size: var(--fs-xl);
  font-weight: var(--fw-semibold);
  color: var(--color-text);
  padding: var(--space-4) var(--space-5) 0;
}

.solution-card__text {
  color: var(--color-muted);
  font-size: var(--fs-sm);
  line-height: var(--lh-loose);
  padding: 0 var(--space-5) var(--space-5);
}

/* Arrow animation on card hover */
.solution-card:hover .link-arrow { gap: var(--space-3); }
.solution-card:hover .link-arrow::after { transform: translateX(4px); }

/* -----------------------------------------------
   Species cards (.species-grid)
   ----------------------------------------------- */
.species-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--space-5);
}

.species-card {
  background-color: var(--color-white);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition:
    box-shadow var(--t-base) var(--t-ease),
    transform var(--t-base) var(--t-ease);
}

.species-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.species-card__link {
  display: block;
  text-decoration: none;
  color: inherit;
}

.species-card__image {
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.species-card__image--placeholder {
  background:
    repeating-linear-gradient(
      90deg, transparent 0, transparent 1.5px,
      rgba(139, 105, 20, 0.02) 1.5px, rgba(139, 105, 20, 0.02) 3px,
      transparent 3px, transparent 8px
    ),
    linear-gradient(135deg, #D6C5A8 0%, #B89668 50%, #8A6240 100%);
}

.species-card__title {
  font-family: var(--font-serif);
  font-size: var(--fs-lg);
  font-weight: var(--fw-semibold);
  padding: var(--space-3) var(--space-4) 0;
}

.species-card__meta {
  color: var(--color-muted);
  font-size: var(--fs-sm);
  padding: 0 var(--space-4) var(--space-4);
}

/* -----------------------------------------------
   Stock cards (.stock-grid)
   ----------------------------------------------- */
.stock-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: var(--space-5);
}

.stock-card {
  background-color: var(--color-white);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}

.stock-card__image {
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.stock-card__image--placeholder {
  background:
    repeating-linear-gradient(
      90deg, transparent 0, transparent 2px,
      rgba(139, 105, 20, 0.03) 2px, rgba(139, 105, 20, 0.03) 4px,
      transparent 4px, transparent 10px
    ),
    linear-gradient(135deg, #C9B896 0%, #8B6914 50%, #5C3A21 100%);
}

.stock-card__body {
  padding: var(--space-4);
}

.stock-card__title {
  font-family: var(--font-serif);
  font-size: var(--fs-md);
  font-weight: var(--fw-semibold);
  margin-bottom: var(--space-3);
}

.stock-card__details {
  list-style: none;
  padding: 0; margin: 0;
}

.stock-card__details li {
  font-size: var(--fs-sm);
  color: var(--color-muted);
  padding: var(--space-1) 0;
  border-bottom: 1px solid var(--color-border);
}
.stock-card__details li:last-child { border-bottom: none; }

.stock-card__details li span {
  font-weight: var(--fw-medium);
  color: var(--color-text-soft);
}

/* -----------------------------------------------
   Application cards (.applications-grid)
   ----------------------------------------------- */
.applications-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: var(--space-5);
}

.application-card {
  background-color: var(--color-white);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition:
    box-shadow var(--t-base) var(--t-ease),
    transform var(--t-base) var(--t-ease);
}

.application-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.application-card__image {
  aspect-ratio: 16 / 10;
  overflow: hidden;
}

.application-card__image--placeholder {
  background:
    repeating-linear-gradient(
      90deg, transparent 0, transparent 1.5px,
      rgba(139, 105, 20, 0.02) 1.5px, rgba(139, 105, 20, 0.02) 3px,
      transparent 3px, transparent 8px
    ),
    linear-gradient(135deg, var(--color-bg-alt) 0%, var(--color-border) 100%);
}

.application-card__title {
  font-size: var(--fs-md);
  font-weight: var(--fw-semibold);
  margin-top: var(--space-3);
  padding: 0 var(--space-4);
}

.application-card__text {
  font-size: var(--fs-sm);
  color: var(--color-muted);
  margin-top: var(--space-2);
  line-height: var(--lh-loose);
  padding: 0 var(--space-4) var(--space-4);
}

/* -----------------------------------------------
   Brand quote (.brand_quote)
   ----------------------------------------------- */
.brand-quote {
  text-align: center;
  padding: var(--space-8) var(--space-4);
}

.brand-quote__text {
  font-family: var(--font-serif);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  font-style: italic;
  color: var(--color-text);
  line-height: 1.5;
  max-width: 700px;
  margin: 0 auto;
}

.brand-quote__attribution {
  margin-top: var(--space-4);
  font-size: var(--fs-md);
  color: var(--color-secondary);
  font-weight: var(--fw-semibold);
  font-style: normal;
}

/* -----------------------------------------------
   Double CTA
   ----------------------------------------------- */
.double-cta {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-6);
}

.double-cta__card {
  background-color: var(--color-bg-alt);
  padding: var(--space-7);
  border-radius: var(--radius-xl);
}

.double-cta__title {
  font-family: var(--font-serif);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-bold);
  margin-bottom: var(--space-3);
}

.double-cta__text {
  color: var(--color-muted);
  line-height: var(--lh-loose);
  margin-bottom: var(--space-5);
}

.double-cta__card .btn { margin-top: var(--space-3); }

/* -----------------------------------------------
   Newsletter
   ----------------------------------------------- */
.newsletter {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-8);
  background-color: var(--color-primary);
  color: var(--color-white);
  padding: var(--space-7) var(--space-8);
  border-radius: var(--radius-xl);
}

.newsletter__text { flex: 1; }

.newsletter__title {
  font-family: var(--font-serif);
  font-size: var(--fs-2xl);
  font-weight: var(--fw-bold);
  color: var(--color-white);
  margin-bottom: var(--space-2);
}

.newsletter__intro {
  color: rgba(255, 255, 255, 0.75);
  font-size: var(--fs-sm);
  line-height: var(--lh-base);
}

.newsletter__form {
  display: flex;
  gap: var(--space-3);
}

.newsletter__form input {
  padding: 14px 20px;
  border: none;
  border-radius: var(--radius-sm);
  font-size: var(--fs-sm);
  min-width: 280px;
  background-color: var(--color-white);
  color: var(--color-text);
}
.newsletter__form input:focus {
  outline: 2px solid var(--color-secondary);
  outline-offset: 2px;
}

.newsletter__form .btn--primary {
  background-color: var(--color-secondary);
  border-color: var(--color-secondary);
  color: var(--color-white);
}
.newsletter__form .btn--primary:hover {
  background-color: var(--color-secondary-dark);
  border-color: var(--color-secondary-dark);
}

/* -----------------------------------------------
   Section spacing & theme variants
   ----------------------------------------------- */
.section {
  padding: var(--space-12) 0;
}

.section__header {
  max-width: 720px;
  margin: 0 auto var(--space-10);
  text-align: center;
}
.section__header .eyebrow { display: block; }

.section__title {
  font-family: var(--font-serif);
  font-size: var(--fs-4xl);
  font-weight: var(--fw-regular);
  color: var(--color-primary);
  margin-bottom: var(--space-4);
  letter-spacing: var(--ls-tight);
  line-height: var(--lh-tight);
}

.section__intro {
  font-size: var(--fs-md);
  color: var(--color-muted);
  line-height: var(--lh-base);
  max-width: 60ch;
  margin: 0 auto;
}

.section__cta {
  margin-top: var(--space-6);
  text-align: center;
}

/* Section background variants */
.section--solutions     { background-color: var(--color-white); }
.section--species      { background-color: var(--color-bg-alt); }
.section--quote        { background-color: var(--color-bg-dark); }
.section--quote .brand-quote__text       { color: rgba(255, 255, 255, 0.9); }
.section--quote .brand-quote__attribution { color: var(--color-accent-soft); }
.section--quote .section__title          { color: var(--color-white); }
.section--quote .section__intro          { color: rgba(255, 255, 255, 0.6); }
.section--stock         { background-color: var(--color-white); }
.section--applications  { background-color: var(--color-bg-alt); }
.section--double-cta    { background-color: var(--color-white); }
.section--newsletter    { background-color: var(--color-bg); }

/* -----------------------------------------------
   Footer (.site-footer)
   ----------------------------------------------- */
.site-footer {
  background-color: var(--color-bg-dark);
  color: rgba(255, 255, 255, 0.7);
  padding: var(--space-10) 0 var(--space-6);
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: var(--space-8);
}

.footer-brand {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.footer__tagline {
  color: rgba(255, 255, 255, 0.6);
  font-size: var(--fs-sm);
  line-height: var(--lh-loose);
}

.footer__contact {
  font-style: normal;
  font-size: var(--fs-sm);
  line-height: var(--lh-base);
}

.footer__contact a {
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  transition: color var(--t-fast) var(--t-ease);
}
.footer__contact a:hover { color: var(--color-accent-soft); }

.footer-column__title {
  color: var(--color-white);
  font-family: var(--font-serif);
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: var(--space-4);
}

.footer-column ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-column li { margin-bottom: var(--space-2); }

.footer-column a {
  color: rgba(255, 255, 255, 0.6);
  font-size: var(--fs-sm);
  text-decoration: none;
  transition: color var(--t-base) var(--t-ease);
}
.footer-column a:hover { color: var(--color-white); }

.social-links {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  margin-top: var(--space-8);
  padding-top: var(--space-5);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: var(--fs-xs);
  color: rgba(255, 255, 255, 0.4);
}

.footer-bottom nav a {
  color: rgba(255, 255, 255, 0.4);
  margin-left: var(--space-4);
  text-decoration: none;
  transition: color var(--t-fast) var(--t-ease);
}
.footer-bottom nav a:hover { color: var(--color-white); }

/* -----------------------------------------------
   Two-column layout (About page story section)
   ----------------------------------------------- */
.two-column {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-10);
  align-items: start;
}
@media (max-width: 1023px) {
  .two-column { grid-template-columns: 1fr; gap: var(--space-6); }
}

.two-column__text {
  max-width: var(--container-text);
}
.two-column__text p {
  font-size: var(--fs-base);
  line-height: var(--lh-loose);
  color: var(--color-text-soft);
  margin-bottom: var(--space-4);
}

.two-column__media {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
}

.two-column__image {
  aspect-ratio: 4 / 3;
  width: 100%;
  object-fit: cover;
}

.two-column__image--placeholder {
  background:
    repeating-linear-gradient(
      90deg, transparent 0, transparent 2px,
      rgba(139, 105, 20, 0.03) 2px, rgba(139, 105, 20, 0.03) 4px,
      transparent 4px, transparent 12px
    ),
    linear-gradient(135deg, #D6C5A8 0%, #B89668 50%, #8A6240 100%);
  aspect-ratio: 4 / 3;
  border-radius: var(--radius-lg);
}

/* -----------------------------------------------
   Feature list (About page "What We Do")
   ----------------------------------------------- */
.feature-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  margin-top: var(--space-6);
}

.feature-list--grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-6);
  margin-top: var(--space-6);
}
@media (max-width: 1023px) {
  .feature-list--grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .feature-list--grid { grid-template-columns: 1fr; }
}

.feature-list li {
  padding: var(--space-5);
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  transition:
    box-shadow var(--t-base) var(--t-ease),
    transform var(--t-base) var(--t-ease);
}
.feature-list li:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.feature-list li strong {
  display: block;
  font-family: var(--font-serif);
  font-size: var(--fs-lg);
  color: var(--color-primary);
  margin-bottom: var(--space-2);
  font-weight: var(--fw-semibold);
}

.feature-list li span {
  font-size: var(--fs-sm);
  color: var(--color-muted);
  line-height: var(--lh-base);
  display: block;
}

/* -----------------------------------------------
   Values grid (About page)
   ----------------------------------------------- */
.values-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-6);
}
@media (max-width: 1023px) {
  .values-grid { grid-template-columns: 1fr; gap: var(--space-5); }
}

.value-card {
  text-align: center;
  padding: var(--space-7) var(--space-5);
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}

.value-card__icon {
  width: 48px;
  height: 48px;
  margin: 0 auto var(--space-4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-serif);
  font-size: var(--fs-xl);
  font-weight: var(--fw-bold);
  color: var(--color-secondary);
  border: 2px solid var(--color-secondary);
  border-radius: var(--radius-full);
}

.value-card__title {
  font-family: var(--font-serif);
  font-size: var(--fs-xl);
  color: var(--color-primary);
  margin-bottom: var(--space-3);
  font-weight: var(--fw-semibold);
}

.value-card__text {
  font-size: var(--fs-sm);
  color: var(--color-muted);
  line-height: var(--lh-base);
}

.value-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-6);
}

.value-card h2,
.value-card h3 {
  margin-bottom: var(--space-3);
  color: var(--color-primary);
  font-family: var(--font-serif);
  font-size: var(--fs-xl);
}

.value-card p { color: var(--color-muted); }

.contact-grid {
  display: grid;
  grid-template-columns: minmax(260px, 0.8fr) minmax(0, 1.2fr);
  gap: var(--space-8);
  align-items: start;
}

.contact-details h2 { margin: var(--space-6) 0 var(--space-3); }
.contact-details h2:first-child { margin-top: 0; }

.wechat-card {
  width: min(100%, 280px);
  margin: var(--space-6) 0;
}

.wechat-card img {
  width: 100%;
  height: auto;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}

.wechat-card figcaption {
  margin-top: var(--space-2);
  color: var(--color-muted);
  font-size: var(--fs-sm);
}

@media (max-width: 900px) {
  .value-grid,
  .contact-grid { grid-template-columns: 1fr; }
}

/* -----------------------------------------------
   Stats grid (About page)
   ----------------------------------------------- */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-6);
}
@media (max-width: 1023px) {
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .stats-grid { grid-template-columns: 1fr; }
}

.stat-card {
  text-align: center;
  padding: var(--space-6);
  background: var(--color-bg-alt);
  border-radius: var(--radius-lg);
}

.stat-card__number {
  display: block;
  font-family: var(--font-serif);
  font-size: var(--fs-5xl);
  font-weight: var(--fw-bold);
  color: var(--color-secondary);
  line-height: 1;
  margin-bottom: var(--space-2);
}

.stat-card__label {
  display: block;
  font-size: var(--fs-sm);
  color: var(--color-muted);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
}

/* -----------------------------------------------
   Application card body variant
   (Applications page uses card with body + btn)
   ----------------------------------------------- */
.application-card__body {
  padding: var(--space-4) var(--space-5) var(--space-5);
}

/* -----------------------------------------------
   Social links inline variant (contact sidebar)
   ----------------------------------------------- */
.social-links--inline {
  flex-direction: row;
  flex-wrap: wrap;
  gap: var(--space-3);
}
.social-links--inline a {
  color: var(--color-secondary);
  font-size: var(--fs-sm);
  text-decoration: none;
}
.social-links--inline a:hover { color: var(--color-secondary-dark); }

/* -----------------------------------------------
   Additional section background variants
   ----------------------------------------------- */
.section--story        { background-color: var(--color-bg); }
.section--what-we-do   { background-color: var(--color-bg-alt); }
.section--values       { background-color: var(--color-white); }
.section--reach        { background-color: var(--color-bg-alt); }
.section--contact      { background-color: var(--color-bg); }
.section--cta          { background-color: var(--color-bg); }
.section--downloads    { background-color: var(--color-bg); }
.section--products     { background-color: var(--color-bg); }
.section--process      { background-color: var(--color-white); }
.section--services     { background-color: var(--color-bg-alt); }
.section--buyers       { background-color: var(--color-white); }
.section--suppliers    { background-color: var(--color-bg-alt); }
.section--target-species { background-color: var(--color-white); }

/* -----------------------------------------------
   Downloads grid & cards
   ----------------------------------------------- */
.downloads-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-6);
}
@media (max-width: 1023px) { .downloads-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .downloads-grid { grid-template-columns: 1fr; } }

.download-card {
  display: flex;
  flex-direction: column;
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition:
    box-shadow var(--t-base) var(--t-ease),
    transform var(--t-base) var(--t-ease);
}
.download-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.download-card__image {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--color-bg-alt);
}

.download-card__image--placeholder {
  background:
    repeating-linear-gradient(
      90deg, transparent 0, transparent 2px,
      rgba(139, 105, 20, 0.03) 2px, rgba(139, 105, 20, 0.03) 4px,
      transparent 4px, transparent 10px
    ),
    linear-gradient(135deg, var(--color-bg-alt) 0%, var(--color-border) 100%);
}

.download-card__body {
  padding: var(--space-5);
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  flex: 1;
}

.download-card__title {
  font-family: var(--font-serif);
  font-size: var(--fs-lg);
  color: var(--color-primary);
  line-height: var(--lh-snug);
  margin: 0;
}

.download-card__text {
  font-size: var(--fs-sm);
  color: var(--color-muted);
  line-height: var(--lh-base);
  margin: 0;
  flex: 1;
}

/* -----------------------------------------------
   Notice / callout box
   ----------------------------------------------- */
.notice {
  display: flex;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-4) var(--space-5);
  border-radius: var(--radius-md);
  font-size: var(--fs-sm);
  line-height: var(--lh-base);
  color: var(--color-text-soft);
  margin: var(--space-6) 0;
}

.notice--info {
  background: rgba(139, 105, 20, 0.06);
  border: 1px solid rgba(139, 105, 20, 0.20);
  border-left: 3px solid var(--color-secondary);
}

/* -----------------------------------------------
   Process steps (Project Assistance)
   ----------------------------------------------- */
.process-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-6);
  margin-top: var(--space-6);
}
@media (max-width: 1023px) { .process-steps { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .process-steps { grid-template-columns: 1fr; } }

.process-step {
  text-align: center;
  padding: var(--space-6) var(--space-4);
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  transition:
    box-shadow var(--t-base) var(--t-ease),
    transform var(--t-base) var(--t-ease);
}
.process-step:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.process-step__number {
  width: 48px;
  height: 48px;
  margin: 0 auto var(--space-4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-serif);
  font-size: var(--fs-xl);
  font-weight: var(--fw-bold);
  color: var(--color-white);
  background: var(--color-secondary);
  border-radius: var(--radius-full);
}

.process-step__title {
  font-family: var(--font-serif);
  font-size: var(--fs-lg);
  color: var(--color-primary);
  margin-bottom: var(--space-2);
  font-weight: var(--fw-semibold);
}

.process-step__text {
  font-size: var(--fs-sm);
  color: var(--color-muted);
  line-height: var(--lh-base);
}

/* -----------------------------------------------
   Two-column reverse variant
   ----------------------------------------------- */
.two-column--reverse {
  direction: rtl;
}
.two-column--reverse > * {
  direction: ltr;
}
/* Or use order-based approach (more reliable): */
.two-column--reverse .two-column__text { order: 2; }
.two-column--reverse .two-column__media { order: 1; }

/* -----------------------------------------------
   Species list (simple list variant for Sourcing)
   ----------------------------------------------- */
.species-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: var(--space-2);
  padding: 0;
  margin: var(--space-4) 0 0;
}
.species-list li {
  font-size: var(--fs-sm);
  color: var(--color-text-soft);
  padding: var(--space-2) var(--space-3);
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  text-align: center;
}

/* -----------------------------------------------
   Applications grid large variant
   ----------------------------------------------- */
.applications-grid--large {
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: var(--space-6);
}
.applications-grid--large .application-card__image {
  aspect-ratio: 16 / 9;
}
.applications-grid--large .application-card__title {
  font-size: var(--fs-lg);
}

/* Responsive adjustments moved to responsive.css (single source of truth for breakpoints) */
