﻿.btn,
.cv-book,
.cv-gold-btn,
.cv-tier-btn,
.shop-buy-bar-btn,
.shop-app-cart-link {
  display: inline-flex;
  min-height: 3.35rem;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  padding: .8rem 1.45rem;
  border: 1px solid var(--av-forest);
  border-radius: 0;
  background: var(--av-forest);
  color: var(--av-white);
  cursor: pointer;
  font-family: var(--font-body);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .14em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
  transition: background var(--duration-fast), border-color var(--duration-fast), color var(--duration-fast), transform var(--duration-fast);
}

.btn:hover,
.cv-book:hover,
.cv-gold-btn:hover,
.cv-tier-btn:hover,
.shop-buy-bar-btn:hover,
.shop-app-cart-link:hover {
  background: var(--av-brass);
  border-color: var(--av-brass);
  color: var(--av-forest-deep);
  transform: translateY(-2px);
}

.btn-secondary,
.btn-ghost,
.cv-drawer-contact--ghost {
  background: transparent;
  border-color: currentColor;
  color: var(--av-forest);
}

.btn-light {
  border-color: var(--av-white);
  background: var(--av-white);
  color: var(--av-forest-deep);
}

.text-link,
.hb-discover,
.article-actions a:not(.site-back):not(.lib-back) {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  color: var(--av-forest);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-decoration: none;
  text-transform: uppercase;
}

.text-link::after,
.hb-discover::after {
  width: 2.5rem;
  height: 1px;
  background: currentColor;
  content: "";
  transition: width var(--duration);
}

.text-link:hover::after,
.hb-discover:hover::after { width: 4rem; }

.flash,
.status-message {
  margin: 0 0 var(--space-4);
  padding: 1rem 1.2rem;
  border-left: 3px solid var(--av-sage);
  background: var(--av-white);
  box-shadow: var(--av-shadow-sm);
}

.flash-err,
.status-message--error {
  border-color: var(--av-burnt-sienna);
  color: var(--av-burnt-sienna);
}

.flash-ok,
.status-message--success {
  border-color: var(--av-reseda);
  color: var(--av-brunswick);
}

.empty-state,
.account-empty {
  padding: clamp(2rem, 6vw, 4.5rem);
  border: 1px solid var(--av-line);
  background: rgba(255, 253, 248, .5);
  color: var(--av-ink-soft);
  text-align: center;
}

form label,
.field {
  display: grid;
  gap: .55rem;
  color: var(--av-ink);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.field-label { display: inline-flex; gap: .35rem; }

.is-required .field-label::after {
  color: var(--av-burnt-sienna);
  content: "*";
}

input,
select,
textarea {
  width: 100%;
  min-height: 3.35rem;
  padding: .85rem 1rem;
  border: 1px solid var(--av-line);
  border-radius: 0;
  background: rgba(255, 253, 248, .82);
  color: var(--av-ink);
  font-size: .95rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  transition: border-color var(--duration-fast), box-shadow var(--duration-fast), background var(--duration-fast);
}

textarea {
  min-height: 10rem;
  resize: vertical;
}

input::placeholder,
textarea::placeholder { color: var(--av-cinereous); }

input:focus,
select:focus,
textarea:focus {
  border-color: var(--av-brass);
  background: var(--av-white);
  box-shadow: 0 0 0 3px rgba(183, 149, 91, .14);
  outline: 0;
}

input[type="checkbox"],
input[type="radio"] {
  width: 1.05rem;
  min-height: auto;
  accent-color: var(--av-forest);
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
}

.form-grid .full,
.field--full { grid-column: 1 / -1; }

.card-grid,
.cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2.2vw, 2rem);
}

.content-card,
.blog-card,
.promo-card,
.profile-card {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--av-line);
  background: var(--av-white);
  box-shadow: none;
  transition: box-shadow var(--duration), transform var(--duration);
}

.content-card:hover,
.blog-card:hover,
.promo-card:hover,
.profile-card:hover {
  box-shadow: var(--av-shadow-md);
  transform: translateY(-6px);
}

.blog-card-media,
.promo-card-media,
.profile-card-photo {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--av-sage-pale);
}

.blog-card-media img,
.promo-card-media img,
.profile-card-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 900ms var(--ease-out);
}

.blog-card:hover img,
.promo-card:hover img,
.profile-card:hover img { transform: scale(1.045); }

.blog-card-body,
.promo-card-body,
.profile-card-body { padding: clamp(1.25rem, 3vw, 2rem); }

.blog-card-body h2,
.promo-card-body h2,
.profile-card-body h2,
.blog-card-body h3,
.promo-card-body h3,
.profile-card-body h3 {
  margin-bottom: .75rem;
  font-size: var(--step-2);
}

.cv-social-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: .5rem;
}

.cv-social-btn {
  display: grid;
  width: 2.7rem;
  height: 2.7rem;
  flex: 0 0 auto;
  place-items: center;
  border: 0;
  border-radius: .85rem;
  color: #fff;
  text-decoration: none;
  transition: transform var(--duration-fast), filter var(--duration-fast), box-shadow var(--duration-fast);
}

.cv-social-btn svg {
  display: block;
  width: 1.5rem;
  height: 1.5rem;
}

.cv-social-btn:hover {
  color: #fff;
  filter: brightness(1.08);
  transform: translateY(-2px);
}

.tone-fb { background: #1877f2; border-radius: .85rem; }
.tone-ig { background: linear-gradient(135deg, #f58529, #dd2a7b, #8134af); border-radius: .85rem; }
.tone-li { background: #0a66c2; border-radius: .85rem; }
.tone-yt { background: #ff0000; border-radius: .85rem; }
.tone-tt { background: var(--av-onyx); border-radius: .85rem; }
.tone-tg { background: #229ed9; border-radius: .85rem; }
.tone-vb { background: var(--av-amethyst); border-radius: .85rem; }

@media (max-width: 820px) {
  .card-grid,
  .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .form-grid,
  .card-grid,
  .cards { grid-template-columns: 1fr; }
  .btn,
  .cv-book { min-height: 3.15rem; }
}
