/* ==========================================================================
   CenterStage Pets — site extensions.
   New components built on top of styles.css (V15 design language).
   Same tokens, same typography, same feel.
   ========================================================================== */

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 30px;
  border-radius:999px;
  font-family:var(--font-body);
  font-size:12px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  cursor:pointer;
  border:1.5px solid transparent;
  transition:transform .2s,box-shadow .2s,background .2s,color .2s;
}
.btn:hover{transform:translateY(-2px);}
.btn:active{transform:translateY(0);}
.btn-gold{
  background:linear-gradient(140deg,var(--gold-light),var(--gold) 60%,var(--gold-deep));
  color:var(--plum-dark);
  box-shadow:0 10px 24px rgba(156,120,48,.35);
}
.btn-gold:hover{box-shadow:0 14px 30px rgba(156,120,48,.45);}
.btn-purple{
  background:linear-gradient(140deg,var(--purple),var(--purple-deep));
  color:#fff;
  box-shadow:0 10px 24px rgba(107,63,160,.35);
}
.btn-purple:hover{box-shadow:0 14px 30px rgba(107,63,160,.45);}
.btn-outline{
  border-color:var(--purple);
  color:var(--purple-deep);
  background:transparent;
}
.btn-outline:hover{background:var(--purple);color:#fff;}
.btn-outline-gold{
  border-color:var(--gold);
  color:var(--gold-light);
  background:transparent;
}
.btn-outline-gold:hover{background:var(--gold);color:var(--plum-dark);}
.btn-sm{padding:10px 20px;font-size:11px;}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none;}

/* ============ NAV CART COUNT ============ */
.cart-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:18px;height:18px;
  padding:0 5px;
  margin-left:2px;
  border-radius:999px;
  background:var(--purple);
  color:#fff;
  font-size:10px;
  font-weight:700;
  letter-spacing:0;
}
.site-nav.is-dark .cart-count{background:var(--gold);color:var(--plum-dark);}

/* ============ PAGE HERO (interior pages) ============ */
.page-hero{
  background:radial-gradient(ellipse 90% 100% at 50% 30%,var(--plum-light) 0%,var(--plum) 58%,var(--plum-dark) 100%);
  color:var(--cream);
  text-align:center;
  padding:clamp(48px,6vw,76px) var(--gutter);
}
.page-hero .eyebrow{color:var(--gold-light);}
.page-hero h1{
  font-size:clamp(32px,4.4vw,50px);
  color:#fff;
  margin-bottom:16px;
}
.page-hero p{
  max-width:680px;
  margin-inline:auto;
  font-size:15.5px;
  line-height:1.8;
  color:#dccdd6;
}

/* ============ OCCASION BANDS + GREETING CARDS ============ */
.occasion{margin-bottom:clamp(44px,5vw,64px);}
.occasion-head{
  display:flex;
  align-items:center;
  gap:18px;
  margin-bottom:clamp(22px,3vw,32px);
}
.occasion-head h2{
  font-size:clamp(26px,3vw,36px);
  text-transform:uppercase;
  letter-spacing:.04em;
  white-space:nowrap;
}
.occasion-head::before,
.occasion-head::after{
  content:"";
  flex:1;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
}
.occasion-empty{
  text-align:center;
  font-family:var(--font-display);
  font-size:19px;
  font-style:italic;
  color:var(--muted);
  padding:22px 0 8px;
}

.greet-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));
  gap:clamp(22px,3vw,32px);
}
.greet-card{
  display:flex;
  flex-direction:column;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow-sm);
  transition:transform .25s ease,box-shadow .25s ease;
}
.greet-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
.greet-thumb{
  position:relative;
  aspect-ratio:16/10;
  background:radial-gradient(ellipse 90% 120% at 50% 0%,#5c2740 0%,#43182e 55%,#2a0f1e 100%);
  cursor:pointer;
  overflow:hidden;
}
.greet-thumb video,
.greet-thumb img{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
}
.greet-thumb .video-overlay{gap:14px;}
.greet-body{
  flex:1;
  display:flex;
  flex-direction:column;
  padding:22px 22px 24px;
  text-align:left;
}
.greet-line{
  font-size:9.5px;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
  margin-bottom:8px;
}
.greet-line.is-traditional{color:var(--blue-deep);}
.greet-line.is-attitude{color:var(--purple);}
.greet-body h3{font-size:23px;margin-bottom:8px;}
.greet-excerpt{
  font-size:13.5px;
  line-height:1.75;
  color:var(--body-gray);
  margin-bottom:16px;
}
.greet-foot{
  margin-top:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.greet-price{
  font-family:var(--font-display);
  font-size:24px;
  font-weight:700;
  color:var(--heading-purple);
}

/* ============ GREETING DETAIL / PERSONALIZE ============ */
.detail-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:clamp(28px,4vw,52px);
  align-items:start;
}
@media (max-width:900px){.detail-grid{grid-template-columns:1fr;}}
.detail-video .theater-screen{margin-bottom:22px;}
.detail-message{
  padding:clamp(20px,2.6vw,28px);
  border:1px solid var(--line);
  border-radius:var(--radius);
  background:var(--card);
  box-shadow:var(--shadow-sm);
  font-size:15px;
  line-height:1.85;
  color:var(--body-gray);
}
.detail-message .msg-label{
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold-deep);
  margin-bottom:10px;
}

/* ============ FORMS (V15 language) ============ */
.panel{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:clamp(24px,3.4vw,38px);
  box-shadow:var(--shadow-md);
}
.panel > h2{font-size:clamp(24px,2.8vw,30px);margin-bottom:6px;}
.panel .panel-sub{
  font-size:13.5px;
  color:var(--body-gray);
  margin-bottom:22px;
}
.field{margin-bottom:18px;}
.field label{
  display:block;
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--gold-deep);
  margin-bottom:7px;
}
.field input[type=text],
.field input[type=email],
.field input[type=tel],
.field input[type=number],
.field select,
.field textarea{
  width:100%;
  padding:13px 16px;
  font:inherit;
  font-size:14.5px;
  color:var(--ink);
  background:var(--peach-tint);
  border:1px solid rgba(156,120,48,.35);
  border-radius:12px;
  transition:border-color .2s,box-shadow .2s,background .2s;
}
.field input:focus,
.field select:focus,
.field textarea:focus{
  outline:none;
  background:#fff;
  border-color:var(--purple);
  box-shadow:0 0 0 3px rgba(107,63,160,.15);
}
.field textarea{min-height:110px;resize:vertical;}
.field .hint{font-size:12px;color:var(--muted);margin-top:6px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media (max-width:560px){.field-row{grid-template-columns:1fr;}}
.check{
  display:flex;align-items:center;gap:10px;
  font-size:13.5px;color:var(--body-gray);
}
.check input{width:17px;height:17px;accent-color:var(--purple);}
.form-error{
  background:#fdecea;
  border:1px solid #f5c6c0;
  color:#a33a2e;
  border-radius:10px;
  padding:12px 16px;
  font-size:13.5px;
  margin-bottom:18px;
}
.form-success{
  background:#eef7ee;
  border:1px solid #bcdfbc;
  color:#2e6b34;
  border-radius:10px;
  padding:12px 16px;
  font-size:13.5px;
  margin-bottom:18px;
}

/* ============ CART / CHECKOUT ============ */
.cart-table{width:100%;border-collapse:collapse;}
.cart-table th{
  text-align:left;
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--gold-deep);
  padding:0 14px 14px;
  border-bottom:1px solid var(--line);
}
.cart-table td{
  padding:18px 14px;
  border-bottom:1px solid var(--line);
  font-size:14.5px;
  color:var(--body-gray);
  vertical-align:top;
}
.cart-table .item-title{
  font-family:var(--font-display);
  font-size:19px;
  font-weight:600;
  color:var(--heading-purple);
}
.cart-table .item-meta{font-size:12.5px;color:var(--muted);margin-top:3px;}
.cart-table .price-col{white-space:nowrap;font-weight:600;color:var(--ink);}
.cart-remove{
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#a33a2e;
  cursor:pointer;
}
.cart-remove:hover{text-decoration:underline;}
.cart-summary{
  margin-top:24px;
  display:flex;
  justify-content:flex-end;
}
.cart-summary .box{
  min-width:280px;
  padding:22px 26px;
  background:var(--peach-tint);
  border:1px solid rgba(156,120,48,.3);
  border-radius:var(--radius);
}
.summary-row{
  display:flex;
  justify-content:space-between;
  font-size:14px;
  color:var(--body-gray);
  padding:5px 0;
}
.summary-row.total{
  margin-top:8px;
  padding-top:12px;
  border-top:1px solid rgba(156,120,48,.35);
  font-family:var(--font-display);
  font-size:22px;
  font-weight:700;
  color:var(--heading-purple);
}
.cart-empty{
  text-align:center;
  padding:clamp(30px,5vw,60px) 0;
}
.cart-empty p{
  font-family:var(--font-display);
  font-size:clamp(22px,2.6vw,28px);
  font-style:italic;
  color:var(--muted);
  margin-bottom:26px;
}
.checkout-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:clamp(26px,4vw,48px);
  align-items:start;
}
@media (max-width:900px){.checkout-grid{grid-template-columns:1fr;}}
#paypal-button-container{margin-top:20px;}
.pay-note{
  font-size:12.5px;
  color:var(--muted);
  text-align:center;
  margin-top:14px;
}

/* ============ POSTCARD TIERS ============ */
.tier-table{width:100%;max-width:520px;margin-inline:auto;border-collapse:collapse;}
.tier-table th,.tier-table td{
  padding:13px 18px;
  border-bottom:1px solid var(--line);
  font-size:14.5px;
  text-align:center;
}
.tier-table th{
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--gold-deep);
}
.tier-table td:first-child{font-weight:600;color:var(--ink);}
.tier-table .tier-price{
  font-family:var(--font-display);
  font-size:20px;
  font-weight:700;
  color:var(--heading-purple);
}

/* ============ LIGHTBOX (extends V15 modal) ============ */
.video-modal .lightbox-screen{
  margin-bottom:0;
  box-shadow:
    0 0 0 8px #b4741a,
    0 0 0 10px rgba(201,162,75,.5),
    0 0 44px 10px rgba(201,162,75,.28),
    0 24px 60px rgba(0,0,0,.6);
}
.video-modal .modal-frame{width:min(880px,94vw);}
.video-modal video{width:100%;max-height:70vh;}

/* ============ HOME EXTRAS ============ */
.hero-video{
  align-self:center;
  filter:drop-shadow(0 30px 35px rgba(0,0,0,.45));
}
.hero-video video{width:100%;border-radius:14px;background:#000;}
.hero-cta{margin-top:26px;display:flex;gap:14px;flex-wrap:wrap;}
@media (max-width:1000px){.hero-cta{justify-content:center;}}
.postcard-photo{
  width:100%;
  max-width:800px;
  border-radius:10px;
  box-shadow:var(--shadow-md);
  margin-inline:auto;
}
.center{text-align:center;}
.mt-lg{margin-top:clamp(28px,4vw,44px);}

/* ============ QR SHARING ============ */
.qr-share{
  display:flex;
  align-items:center;
  gap:18px;
  margin-top:14px;
  padding:14px 16px;
  background:var(--peach-tint);
  border:1px solid rgba(156,120,48,.3);
  border-radius:12px;
  width:fit-content;
}
.qr-box{
  background:#fff;
  padding:8px;
  border-radius:8px;
  box-shadow:var(--shadow-sm);
  line-height:0;
}
.qr-box img,.qr-box canvas{width:110px;height:110px;}
.qr-label{
  font-size:11px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gold-deep);
  margin-bottom:10px;
}

/* ============ THEATER EXTRAS ============ */
.from-secret{
  font-family:var(--font-script);
  font-size:clamp(28px,3.6vw,38px);
  color:var(--gold-light);
}
