/* ==========================================================================
   vcx-retainer-promo.css
   --------------------------------------------------------------------------
   Retainer discount onboarding — banner placed above the 3 retainer-level
   cards inside Tier B-3, plus "FIRST MONTH" plashkas on each sub-card.

   Palette: home-tokens only (deep teal gradient + existing accent pink).
   No warm beige. No layout jumps on the existing grid.

   Used on: pricing-and-engagement-tiers.html (Phase 1)
   ========================================================================== */

/* ---- banner ---- */
.vcx-retainer-promo{
  position:relative;
  background:linear-gradient(135deg,#0E4F5C 0%,#0F2F2C 100%);
  border-radius:14px;
  padding:22px 24px;
  margin:18px 0 18px;
  box-shadow:0 10px 28px rgba(15,47,44,.28);
  overflow:hidden;
  isolation:isolate;
}
.vcx-retainer-promo::before{
  content:"";
  position:absolute; inset:0;
  background:radial-gradient(ellipse at top right, rgba(126,216,195,.18) 0%, transparent 60%);
  pointer-events:none; z-index:0;
}
.vcx-retainer-promo__body{position:relative; z-index:1;}

.vcx-retainer-promo__eyebrow{
  display:inline-block;
  background:#5BBAA7;
  color:#0E2036 !important; -webkit-text-fill-color:#0E2036 !important;
  font-size:.70rem; font-weight:800;
  letter-spacing:.16em; text-transform:uppercase;
  padding:5px 12px; border-radius:999px;
  margin:0 0 10px;
}
.vcx-retainer-promo__title{
  color:#FFFFFF !important; -webkit-text-fill-color:#FFFFFF !important;
  font-size:clamp(1.05rem, 1.5vw, 1.25rem);
  font-weight:800;
  letter-spacing:-.01em;
  line-height:1.25;
  margin:0 0 8px;
  max-width:none !important; /* override global h2 clamp */
}
.vcx-retainer-promo__lede{
  color:rgba(255,255,255,.86) !important; -webkit-text-fill-color:rgba(255,255,255,.86) !important;
  font-size:.92rem; line-height:1.55;
  margin:0 0 14px;
}
.vcx-retainer-promo__row{
  display:flex; flex-wrap:wrap; align-items:center; gap:14px;
}
.vcx-retainer-promo__code{
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(255,255,255,.10);
  border:1px dashed rgba(124,210,222,.55);
  border-radius:8px;
  padding:6px 12px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size:.92rem; font-weight:800;
  color:#FFFFFF !important; -webkit-text-fill-color:#FFFFFF !important;
  letter-spacing:.08em;
}
.vcx-retainer-promo__code-label{
  font-family:inherit; font-weight:600;
  color:rgba(255,255,255,.72) !important; -webkit-text-fill-color:rgba(255,255,255,.72) !important;
  letter-spacing:.08em; text-transform:uppercase; font-size:.68rem;
}
.vcx-retainer-promo__cta{
  display:inline-flex; align-items:center; gap:6px;
  background:#5BBAA7;
  color:#0E2036 !important; -webkit-text-fill-color:#0E2036 !important;
  padding:10px 18px; border-radius:10px;
  font-weight:800; font-size:.92rem;
  text-decoration:none;
  border:1.5px solid transparent;
  box-shadow:0 6px 18px rgba(91,186,167,.32);
  transition:background .18s ease, box-shadow .18s ease, transform .18s ease;
}
.vcx-retainer-promo__cta:hover{
  background:#7DCFBF;
  box-shadow:0 8px 22px rgba(91,186,167,.42);
  color:#0E2036 !important; -webkit-text-fill-color:#0E2036 !important;
}
.vcx-retainer-promo__cta:focus-visible{
  outline:2px solid #FFFFFF;
  outline-offset:3px;
}
.vcx-retainer-promo__disclaimer{
  display:block;
  color:rgba(255,255,255,.62) !important; -webkit-text-fill-color:rgba(255,255,255,.62) !important;
  font-size:.74rem; line-height:1.5;
  margin:10px 0 0;
  font-style:italic;
}

/* ---- FIRST MONTH plashka inside each .pet-retainer-level card ----
   Promote the card to a flex column so the plashka hugs the bottom edge
   regardless of description length (cards are stretched equal-height by
   the parent grid). Description takes the remaining space. */
.pet-retainer-level{
  display:flex;
  flex-direction:column;
}
.pet-retainer-level .pet-retainer-level__desc{
  flex:1 1 auto;          /* push plashka to bottom on short descriptions */
}
.vcx-retainer-plashka{
  display:block;
  margin:8px 0 0;         /* small gap above plashka */
  padding:8px 10px 7px;
  border-radius:8px;
  background:linear-gradient(135deg,#1A4F4A 0%,#0E2036 100%);
  box-shadow:0 4px 12px rgba(14,32,54,.22);
  text-align:center;
  align-self:stretch;     /* full width of flex column */
}
.vcx-retainer-plashka__label{
  display:block;
  color:#FFFFFF !important; -webkit-text-fill-color:#FFFFFF !important;
  font-size:.60rem; font-weight:800;
  letter-spacing:.14em; text-transform:uppercase;
  line-height:1.1;
  margin-bottom:2px;
}
.vcx-retainer-plashka__price{
  display:block;
  color:#FFFFFF !important; -webkit-text-fill-color:#FFFFFF !important;
  font-size:.95rem; font-weight:800;
  letter-spacing:-.01em;
  line-height:1.1;
}
.vcx-retainer-plashka__price small{
  font-size:.68rem; font-weight:600;
  color:rgba(255,255,255,.85) !important; -webkit-text-fill-color:rgba(255,255,255,.85) !important;
}

/* ---- Wide variant (full-width above split, horizontal layout) ---- */
.vcx-retainer-promo--wide{
  max-width:1120px;
  margin:0 auto 28px;
  padding:24px 30px;
}
.vcx-retainer-promo--wide .vcx-retainer-promo__body{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr);
  gap:32px;
  align-items:center;
}
.vcx-retainer-promo--wide .vcx-retainer-promo__copy{ display:flex; flex-direction:column; }
.vcx-retainer-promo--wide .vcx-retainer-promo__title{ margin:0 0 8px; }
.vcx-retainer-promo--wide .vcx-retainer-promo__lede{ margin:0; }
.vcx-retainer-promo--wide .vcx-retainer-promo__action{
  display:flex; flex-direction:column; gap:10px; align-items:stretch;
}
.vcx-retainer-promo--wide .vcx-retainer-promo__code{
  width:100%; justify-content:center;
}
.vcx-retainer-promo--wide .vcx-retainer-promo__cta{
  width:100%; justify-content:center;
}
.vcx-retainer-promo--wide .vcx-retainer-promo__disclaimer{
  margin:4px 0 0; text-align:center;
}
@media (max-width:880px){
  .vcx-retainer-promo--wide .vcx-retainer-promo__body{
    grid-template-columns:1fr;
    gap:18px;
  }
}

/* ---- mobile ---- */
@media (max-width: 640px){
  .vcx-retainer-promo{ padding:18px 18px; }
  .vcx-retainer-promo__row{ gap:10px; }
  .vcx-retainer-promo__cta{ width:100%; justify-content:center; }
  .vcx-retainer-promo__code{ width:100%; justify-content:center; }
}

/* ---- reduced motion safety ---- */
@media (prefers-reduced-motion: reduce){
  .vcx-retainer-promo__cta{ transition:none; }
}
