/**
 * Astral Premium Component Library v1.0
 * Shared, token-driven primitives for both storefronts.
 */

/* Buttons */
.acp-button,
button.acp-button,
a.acp-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
  min-height: var(--acp-control-md, 44px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--acp-space-2, .5rem);
  padding: .7rem 1.15rem;
  border: 1px solid transparent;
  border-radius: var(--acp-radius-pill, 999px);
  font: 700 .875rem/1.2 var(--acp-font-sans, inherit);
  letter-spacing: .01em;
  text-decoration: none;
  cursor: pointer;
  transition: transform var(--acp-motion-fast, 160ms) var(--acp-ease-standard, ease), box-shadow var(--acp-motion-fast, 160ms) var(--acp-ease-standard, ease), background-color var(--acp-motion-fast, 160ms) var(--acp-ease-standard, ease), border-color var(--acp-motion-fast, 160ms) var(--acp-ease-standard, ease);
}
.acp-button:hover { transform: translateY(-1px); }
.acp-button:active { transform: translateY(0); }
.acp-button--primary,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
  background: var(--acp-color-brand-700, #244c40);
  color: #fff;
  box-shadow: var(--acp-shadow-1, 0 3px 12px rgb(0 0 0 / .08));
}
.acp-button--primary:hover { background: var(--acp-color-brand-800, #173b31); color: #fff; }
.acp-button--secondary {
  background: var(--acp-color-surface, #fff);
  color: var(--acp-color-text, #202522);
  border-color: var(--acp-color-border-strong, #c9ceca);
}
.acp-button--ghost { background: transparent; color: var(--acp-color-text, #202522); }
.acp-button--small { min-height: 36px; padding: .5rem .9rem; font-size: .8125rem; }
.acp-button--large { min-height: 52px; padding: .9rem 1.4rem; font-size: .9375rem; }
.acp-button[disabled], .acp-button.is-disabled { opacity: .5; pointer-events: none; }

/* Badges and chips */
.acp-badge,
.acp-chip {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  border-radius: var(--acp-radius-pill, 999px);
  font: 700 .72rem/1 var(--acp-font-sans, inherit);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.acp-badge { padding: .45rem .65rem; background: var(--acp-color-brand-50, #eff6f2); color: var(--acp-color-brand-800, #173b31); }
.acp-badge--gold { background: #f7f0df; color: #79591d; }
.acp-badge--neutral { background: var(--acp-color-neutral-100, #f3f4f3); color: var(--acp-color-neutral-700, #4d5550); }
.acp-chip { gap: .4rem; padding: .55rem .75rem; background: transparent; border: 1px solid var(--acp-color-border, #dfe3df); color: var(--acp-color-text-muted, #5b625e); text-transform: none; letter-spacing: 0; }
.acp-chip[aria-pressed="true"], .acp-chip.is-active { background: var(--acp-color-brand-50, #eff6f2); border-color: var(--acp-color-brand-500, #527a6c); color: var(--acp-color-brand-800, #173b31); }

/* Cards */
.acp-card {
  position: relative;
  overflow: hidden;
  background: var(--acp-color-surface, #fff);
  border: 1px solid var(--acp-color-border, #e3e6e3);
  border-radius: var(--acp-radius-lg, 20px);
  box-shadow: var(--acp-shadow-0, none);
}
.acp-card--interactive { transition: transform var(--acp-motion-normal, 240ms) var(--acp-ease-standard, ease), box-shadow var(--acp-motion-normal, 240ms) var(--acp-ease-standard, ease), border-color var(--acp-motion-normal, 240ms) var(--acp-ease-standard, ease); }
.acp-card--interactive:hover { transform: translateY(-3px); border-color: var(--acp-color-border-strong, #c9ceca); box-shadow: var(--acp-shadow-2, 0 12px 28px rgb(0 0 0 / .1)); }
.acp-card__media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--acp-color-neutral-50, #fafbfa); }
.acp-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--acp-motion-slow, 360ms) var(--acp-ease-standard, ease); }
.acp-card--interactive:hover .acp-card__media img { transform: scale(1.025); }
.acp-card__body { padding: clamp(1rem, 2vw, 1.5rem); }
.acp-card__eyebrow { margin: 0 0 .5rem; color: var(--acp-color-brand-700, #244c40); font: 700 .75rem/1.2 var(--acp-font-sans, inherit); letter-spacing: .08em; text-transform: uppercase; }
.acp-card__title { margin: 0; font-size: clamp(1.05rem, 1.8vw, 1.35rem); line-height: 1.25; }
.acp-card__copy { margin: .65rem 0 0; color: var(--acp-color-text-muted, #5b625e); }
.acp-card__footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0 clamp(1rem, 2vw, 1.5rem) clamp(1rem, 2vw, 1.5rem); }

/* Notice / callout */
.acp-notice {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .8rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--acp-color-border, #e3e6e3);
  border-radius: var(--acp-radius-md, 14px);
  background: var(--acp-color-neutral-50, #fafbfa);
  color: var(--acp-color-text, #202522);
}
.acp-notice--success { background: #eff8f1; border-color: #b9ddc0; }
.acp-notice--warning { background: #fff8e8; border-color: #ead29b; }
.acp-notice--error { background: #fff2f1; border-color: #e7b8b3; }
.acp-notice__title { margin: 0 0 .25rem; font-weight: 750; }
.acp-notice__copy { margin: 0; color: inherit; }

/* Section heading */
.acp-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: clamp(1.25rem, 2.5vw, 2rem);
}
.acp-section-heading__content { max-width: 46rem; }
.acp-section-heading__eyebrow { margin: 0 0 .5rem; color: var(--acp-color-brand-700, #244c40); font: 700 .75rem/1.2 var(--acp-font-sans, inherit); letter-spacing: .1em; text-transform: uppercase; }
.acp-section-heading__title { margin: 0; text-wrap: balance; }
.acp-section-heading__copy { margin: .65rem 0 0; color: var(--acp-color-text-muted, #5b625e); max-width: 42rem; }
.acp-section-heading__link { flex: 0 0 auto; }

/* Form controls */
.acp-field { display: grid; gap: .45rem; }
.acp-field__label { font-weight: 700; font-size: .875rem; }
.acp-field__hint, .acp-field__error { margin: 0; font-size: .78rem; color: var(--acp-color-text-muted, #5b625e); }
.acp-field__error { color: var(--acp-color-danger-700, #9a2f29); }
.acp-input,
.acp-select,
.acp-textarea {
  width: 100%;
  min-height: var(--acp-control-md, 44px);
  padding: .75rem .9rem;
  border: 1px solid var(--acp-color-border-strong, #c9ceca);
  border-radius: var(--acp-radius-sm, 10px);
  background: var(--acp-color-surface, #fff);
  color: var(--acp-color-text, #202522);
  font: inherit;
  transition: border-color var(--acp-motion-fast, 160ms) ease, box-shadow var(--acp-motion-fast, 160ms) ease;
}
.acp-textarea { min-height: 8rem; resize: vertical; }
.acp-input:focus, .acp-select:focus, .acp-textarea:focus { outline: none; border-color: var(--acp-color-brand-600, #356557); box-shadow: 0 0 0 3px rgb(53 101 87 / .16); }

/* Accordion */
.acp-accordion { border-top: 1px solid var(--acp-color-border, #e3e6e3); }
.acp-accordion__item { border-bottom: 1px solid var(--acp-color-border, #e3e6e3); }
.acp-accordion__summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 0; cursor: pointer; font-weight: 750; }
.acp-accordion__summary::-webkit-details-marker { display: none; }
.acp-accordion__summary::after { content: '+'; width: 1.5rem; height: 1.5rem; display: grid; place-items: center; border: 1px solid var(--acp-color-border-strong, #c9ceca); border-radius: 50%; font-size: 1rem; line-height: 1; }
.acp-accordion__item[open] .acp-accordion__summary::after { content: '−'; }
.acp-accordion__content { padding: 0 0 1.25rem; color: var(--acp-color-text-muted, #5b625e); }
.acp-accordion__content > :first-child { margin-top: 0; }
.acp-accordion__content > :last-child { margin-bottom: 0; }

/* Icon button */
.acp-icon-button {
  width: var(--acp-control-md, 44px);
  height: var(--acp-control-md, 44px);
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--acp-color-border, #e3e6e3);
  border-radius: 50%;
  background: var(--acp-color-surface, #fff);
  color: var(--acp-color-text, #202522);
  cursor: pointer;
  transition: background-color var(--acp-motion-fast, 160ms) ease, transform var(--acp-motion-fast, 160ms) ease;
}
.acp-icon-button:hover { background: var(--acp-color-neutral-50, #fafbfa); transform: translateY(-1px); }

/* Skeleton */
.acp-skeleton { position: relative; overflow: hidden; background: var(--acp-color-neutral-100, #f0f2f0); border-radius: var(--acp-radius-sm, 10px); }
.acp-skeleton::after { content: ''; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg, transparent, rgb(255 255 255 / .65), transparent); animation: acp-skeleton 1.3s infinite; }
@keyframes acp-skeleton { to { transform: translateX(100%); } }

@media (max-width: 767px) {
  .acp-section-heading { align-items: start; flex-direction: column; gap: .9rem; }
  .acp-section-heading__link { width: 100%; }
  .acp-section-heading__link .acp-button { width: 100%; }
  .acp-card__footer { align-items: stretch; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  .acp-card--interactive,
  .acp-card__media img,
  .acp-button,
  .acp-icon-button,
  .acp-skeleton::after { transition: none !important; animation: none !important; }
}
