/**
 * Columbia Gardens — visual polish (works with Tailwind CDN)
 */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Hero mesh — layered organic gradients */
.cg-hero-mesh {
  background:
    radial-gradient(ellipse 90% 70% at 15% 5%, rgba(79, 115, 79, 0.18), transparent 55%),
    radial-gradient(ellipse 70% 60% at 90% 85%, rgba(50, 74, 50, 0.12), transparent 50%),
    radial-gradient(ellipse 50% 40% at 60% 40%, rgba(195, 214, 195, 0.35), transparent 60%),
    linear-gradient(168deg, #eef4ee 0%, #f4f7f4 38%, #e3ebe3 100%);
}

/* Subtle dot texture overlay */
.cg-noise {
  opacity: 0.4;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode: multiply;
}

/* Section label — consistent eyebrow */
.cg-eyebrow {
  letter-spacing: 0.22em;
}

/* Card lift — service tiles */
.cg-card-tile {
  transition:
    transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.35s ease,
    border-color 0.25s ease;
}
.cg-card-tile:hover {
  transform: translateY(-4px);
}

/* Pull quote */
.cg-pullquote {
  position: relative;
  padding-left: 1.25rem;
  border-left: 3px solid #729472;
  font-style: italic;
}

/* CTA band — bottom shine */
.cg-cta-shine {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0%, transparent 40%),
    #243324;
}

/* Bulk marketplace — category accent strips */
.cg-market-strip-feed {
  background: linear-gradient(90deg, #3d5c3d, #729472);
}
.cg-market-strip-materials {
  background: linear-gradient(90deg, #5c4033, #8b6914);
}
.cg-market-strip-inputs {
  background: linear-gradient(90deg, #4f734f, #9eb89e);
}
.cg-market-strip-equipment {
  background: linear-gradient(90deg, #243324, #4f734f);
}

.cg-market-card {
  box-shadow:
    0 4px 24px -6px rgba(36, 51, 36, 0.1),
    0 1px 0 rgba(255, 255, 255, 0.65) inset;
}
.cg-market-card:focus-within {
  outline: 2px solid rgba(79, 115, 79, 0.45);
  outline-offset: 2px;
}

.cg-market-card .cg-market-card-img {
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
.cg-market-card:hover .cg-market-card-img {
  transform: scale(1.04);
}

@media (prefers-reduced-motion: reduce) {
  .cg-market-card:hover .cg-market-card-img {
    transform: none;
  }
}

/* Main nav — mega menus */
.cg-nav-mega-link:focus-visible {
  outline: 2px solid rgba(61, 92, 61, 0.55);
  outline-offset: -2px;
}

.cg-nav-mega-inner {
  box-shadow:
    0 20px 50px -20px rgba(36, 51, 36, 0.25),
    0 1px 0 rgba(255, 255, 255, 0.9) inset;
}

.cg-nav-details summary::-webkit-details-marker {
  display: none;
}

.cg-nav-details summary::marker {
  content: '';
}

/* —— Buttons (links & submit) —— */
a.cg-btn {
  text-decoration: none;
}

button.cg-btn {
  cursor: pointer;
  border: none;
  font-family: inherit;
}

.cg-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  font-weight: 600;
  line-height: 1.25;
  border-radius: 0.75rem;
  isolation: isolate;
  overflow: hidden;
  transition:
    transform 0.22s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.22s ease,
    background 0.22s ease,
    border-color 0.22s ease,
    color 0.22s ease;
}

.cg-btn:focus-visible {
  outline: 2px solid #5a8a5a;
  outline-offset: 3px;
}

.cg-btn:active:not(:disabled) {
  transform: translateY(1px);
}

.cg-btn-primary {
  color: #fff;
  background: linear-gradient(168deg, #557a55 0%, #3d5c3d 42%, #2e4a2e 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.28),
    0 4px 18px -4px rgba(36, 51, 36, 0.5),
    0 2px 8px -3px rgba(36, 51, 36, 0.28);
}

.cg-btn-primary::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.2) 0%, transparent 52%);
  opacity: 0.95;
  pointer-events: none;
}

.cg-btn-primary:hover {
  transform: translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.32),
    0 8px 28px -6px rgba(36, 51, 36, 0.55),
    0 4px 12px -4px rgba(36, 51, 36, 0.35);
}

.cg-btn-primary-strong {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.26),
    0 0 0 2px rgba(43, 61, 43, 0.95),
    0 4px 18px -4px rgba(36, 51, 36, 0.5),
    0 2px 8px -3px rgba(36, 51, 36, 0.28);
}

.cg-btn-primary-strong:hover {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.3),
    0 0 0 2px rgba(36, 51, 36, 1),
    0 10px 32px -6px rgba(36, 51, 36, 0.55),
    0 4px 12px -4px rgba(36, 51, 36, 0.35);
}

.cg-btn-secondary {
  color: #1a281a;
  background: linear-gradient(180deg, #ffffff 0%, #eef4ee 100%);
  border: 2px solid #3d5c3d;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.95),
    0 3px 14px -4px rgba(36, 51, 36, 0.22);
}

.cg-btn-secondary::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.5) 0%, transparent 40%);
  pointer-events: none;
}

.cg-btn-secondary:hover {
  transform: translateY(-2px);
  background: linear-gradient(180deg, #ffffff 0%, #f4f7f4 100%);
  border-color: #324a32;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 1),
    0 6px 22px -6px rgba(36, 51, 36, 0.28);
}

.cg-btn-muted {
  color: #243324;
  background: linear-gradient(180deg, #ffffff 0%, #f8faf8 100%);
  border: 1px solid rgba(158, 184, 158, 0.85);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.9),
    0 2px 10px -4px rgba(36, 51, 36, 0.14);
}

.cg-btn-muted:hover {
  transform: translateY(-1px);
  border-color: #9eb89e;
  background: #fff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 1),
    0 4px 16px -4px rgba(36, 51, 36, 0.18);
}

.cg-btn-ghost {
  color: #fff;
  background: rgba(36, 51, 36, 0.22);
  border: 2px solid rgba(206, 222, 206, 0.55);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(8px);
}

.cg-btn-ghost:hover {
  transform: translateY(-2px);
  background: rgba(61, 92, 61, 0.45);
  border-color: rgba(230, 240, 230, 0.75);
}

.cg-btn-on-dark {
  color: #1a281a;
  background: linear-gradient(180deg, #ffffff 0%, #e8efe8 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.95),
    0 4px 22px -4px rgba(0, 0, 0, 0.35),
    0 2px 8px -2px rgba(0, 0, 0, 0.2);
}

.cg-btn-on-dark::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.35) 0%, transparent 45%);
  pointer-events: none;
}

.cg-btn-on-dark:hover {
  transform: translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 1),
    0 8px 32px -6px rgba(0, 0, 0, 0.4),
    0 4px 14px -4px rgba(0, 0, 0, 0.22);
}

.cg-btn-sm {
  min-height: 44px;
  padding: 0.625rem 1rem;
  font-size: 0.875rem;
}

.cg-btn-md {
  min-height: 48px;
  padding: 0.75rem 1.5rem;
  font-size: 1rem;
}

.cg-btn-md-tight {
  min-height: 48px;
  padding: 0.75rem 1.25rem;
  font-size: 0.875rem;
}

.cg-btn-lg {
  min-height: 52px;
  padding: 0.875rem 2rem;
  font-size: 1rem;
}

@media (prefers-reduced-motion: reduce) {
  .cg-btn:hover,
  .cg-btn-primary:hover,
  .cg-btn-secondary:hover,
  .cg-btn-muted:hover,
  .cg-btn-ghost:hover,
  .cg-btn-on-dark:hover,
  .cg-btn:active {
    transform: none;
  }
}
