/* ============================================================
   PURITY MINISTRY — DESIGN SYSTEM
   Direction 3: Living Colour / Joyful Gospel
   Designed by Charis Creations Ltd
============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400;1,700&family=Space+Grotesk:wght@300;400;500;600;700&family=DM+Sans:wght@300;400;500;700&display=swap');

:root {
  --cream:       #FBF5E9;
  --cream-dark:  #F5ECD6;
  --cream-deep:  #EDE0C4;
  --terra:       #C4622D;
  --terra-dark:  #9E4B1F;
  --amber:       #E8873A;
  --gold:        #C9A84C;
  --gold-light:  #E8C96A;
  --sage:        #4A7C59;
  --sage-light:  #6AA880;
  --sage-pale:   #D4EAD9;
  --dark:        #1A0A00;
  --dark-mid:    #3D1F0A;
  --dark-soft:   #6B3A1F;
  --charcoal:      #2F353A;
  --charcoal-deep: #23272B;
  --text:        #3D1F0A;
  --text-muted:  #8B6040;
  --text-light:  #B89070;
  --white:       #FFFFFF;
  --radius-sm:   8px;
  --radius-md:   16px;
  --radius-lg:   28px;
  --radius-xl:   40px;
  --shadow-sm:   0 2px 12px rgba(26,10,0,0.08);
  --shadow-md:   0 8px 32px rgba(26,10,0,0.12);
  --shadow-lg:   0 20px 60px rgba(26,10,0,0.18);
  --transition:  all 0.3s cubic-bezier(0.4,0,0.2,1);
}

/* ---- Reset ---- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--cream);
  color: var(--text);
  font-family: 'DM Sans', sans-serif;
  font-size: 16px;
  line-height: 1.6;
  overflow-x: hidden;
}
a { text-decoration: none; }
img { max-width: 100%; display: block; }

/* ---- Typography ---- */
h1, h2, h3 { font-family: 'Playfair Display', serif; line-height: 1.1; }
h1 { font-size: clamp(44px, 7vw, 96px); font-weight: 900; letter-spacing: -2px; }
h2 { font-size: clamp(32px, 4.5vw, 60px); font-weight: 700; letter-spacing: -1px; }
h3 { font-size: clamp(22px, 3vw, 34px); font-weight: 700; }
h4 { font-family: 'Space Grotesk', sans-serif; font-size: 18px; font-weight: 600; }
p  { color: var(--text-muted); line-height: 1.8; }

.eyebrow {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 11px; letter-spacing: 4px;
  text-transform: uppercase; font-weight: 600;
  color: var(--terra); margin-bottom: 14px;
  display: flex; align-items: center; gap: 10px;
}
.eyebrow::before { content: ''; width: 24px; height: 2px; background: var(--terra); display: inline-block; }
.eyebrow.center { justify-content: center; }
.eyebrow.center::before { display: none; }
.eyebrow.light { color: var(--gold-light); }
.eyebrow.light::before { background: var(--gold-light); }

/* ---- Layout ---- */
.container   { max-width: 1240px; margin: 0 auto; padding: 0 40px; }
.section     { padding: 100px 0; }
.section-sm  { padding: 60px 0; }
.grid-2      { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.grid-3      { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.grid-4      { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }

.section-header { margin-bottom: 60px; }
.section-header.center { text-align: center; }
.section-header h2 { margin-bottom: 14px; }
.section-header p  { max-width: 580px; }
.section-header.center p { margin: 0 auto; }

/* ---- Buttons ---- */
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 32px; border-radius: 100px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14px; font-weight: 600; letter-spacing: 0.5px;
  cursor: pointer; border: none; transition: var(--transition);
  text-decoration: none;
}
.btn-primary   { background: var(--terra); color: #fff; }
.btn-primary:hover { background: var(--terra-dark); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn-secondary { background: transparent; color: var(--terra); border: 2px solid var(--terra); }
.btn-secondary:hover { background: var(--terra); color: #fff; transform: translateY(-2px); }
.btn-dark      { background: var(--dark); color: var(--cream); }
.btn-dark:hover { background: var(--dark-mid); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn-green     { background: var(--sage); color: #fff; }
.btn-green:hover { background: #3A6347; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(74,124,89,0.3); }
.btn-gold      { background: var(--gold); color: var(--dark); }
.btn-gold:hover { background: var(--gold-light); transform: translateY(-2px); }
.btn-sm  { padding: 10px 22px; font-size: 12px; }
.btn-lg  { padding: 18px 44px; font-size: 16px; }

/* ---- Navigation ---- */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  padding: 18px 0; transition: var(--transition);
  background: var(--charcoal);
  box-shadow: 0 1px 0 rgba(0,0,0,0.25);
}
.nav.scrolled {
  background: var(--charcoal-deep);
  backdrop-filter: blur(20px);
  box-shadow: 0 2px 16px rgba(0,0,0,0.35);
  padding: 12px 0;
}
.nav-inner {
  max-width: 1240px; margin: 0 auto; padding: 0 40px;
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
}
.nav-logo {
  font-family: 'Playfair Display', serif;
  font-size: 26px; font-weight: 900; color: var(--cream);
  letter-spacing: -0.5px; text-decoration: none; flex-shrink: 0;
}
.nav-logo span { color: var(--amber); }
.nav-logo.light { color: var(--cream); }
.nav-logo.light span { color: var(--amber); }
.nav-links { display: flex; align-items: center; gap: 4px; list-style: none; }
.nav-links a {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px; font-weight: 500; color: rgba(251,245,233,0.78);
  text-decoration: none; padding: 8px 14px; border-radius: 100px;
  transition: var(--transition);
}
.nav-links a:hover, .nav-links a.active { background: var(--terra); color: #fff; }
.nav-hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 6px; }
.nav-hamburger span { width: 24px; height: 2px; background: var(--cream); border-radius: 2px; transition: var(--transition); }
.nav-hamburger.light span { background: var(--cream); }

/* ---- Page Hero (inner pages) ---- */
.page-hero {
  padding: 160px 0 80px;
  background: var(--dark);
  position: relative; overflow: hidden;
  text-align: center;
}
.page-hero::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 50% 0%, rgba(232,135,58,0.2), transparent 60%);
}
.page-hero .eyebrow { color: var(--amber); justify-content: center; }
.page-hero .eyebrow::before { display: none; }
.page-hero h1 { color: var(--cream); position: relative; z-index: 1; }
.page-hero h1 em { color: var(--amber); font-style: normal; }
.page-hero p { color: rgba(251,245,233,0.5); position: relative; z-index: 1; max-width: 500px; margin: 16px auto 0; }

/* ---- Album / Music Cards ---- */
.album-card {
  background: var(--cream); border-radius: var(--radius-md);
  overflow: hidden; border: 1px solid var(--cream-deep);
  transition: var(--transition); cursor: pointer;
}
.album-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.album-art { height: 220px; display: flex; align-items: center; justify-content: center; font-size: 60px; }
.album-art-1 { background: linear-gradient(135deg, var(--terra), var(--amber)); }
.album-art-2 { background: linear-gradient(135deg, var(--sage), var(--gold)); }
.album-art-3 { background: linear-gradient(135deg, var(--gold), var(--terra)); }
.album-art-4 { background: linear-gradient(135deg, var(--dark-mid), var(--terra)); }
.album-art-5 { background: linear-gradient(135deg, var(--amber), var(--sage)); }
.album-art-6 { background: linear-gradient(135deg, var(--terra-dark), var(--gold)); }
.album-meta    { padding: 20px; }
.album-title   { font-family: 'Playfair Display', serif; font-size: 18px; font-weight: 700; margin-bottom: 4px; color: var(--dark); }
.album-year    { font-size: 12px; color: var(--text-light); font-family: 'Space Grotesk', sans-serif; letter-spacing: 1px; margin-bottom: 14px; }
.album-actions { display: flex; gap: 8px; }

/* ---- Song List ---- */
.song-list-item {
  display: flex; align-items: center; gap: 20px;
  padding: 18px 24px; border-radius: var(--radius-md);
  background: var(--cream); border: 1px solid var(--cream-deep);
  margin-bottom: 10px; transition: var(--transition); cursor: pointer;
}
.song-list-item:hover { border-color: var(--terra); box-shadow: var(--shadow-sm); }
.song-num  { font-family: 'Space Grotesk', sans-serif; font-size: 14px; font-weight: 700; color: var(--text-light); width: 28px; text-align: center; flex-shrink: 0; }
.song-art  { width: 50px; height: 50px; border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; font-size: 20px; flex-shrink: 0; }
.song-info { flex: 1; min-width: 0; }
.song-name { font-weight: 600; color: var(--dark); margin-bottom: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.song-album{ font-size: 12px; color: var(--text-light); font-family: 'Space Grotesk', sans-serif; }
.song-dur  { font-size: 13px; color: var(--text-light); font-family: 'Space Grotesk', sans-serif; flex-shrink: 0; }
.song-play {
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--terra); color: #fff; border: none; cursor: pointer;
  flex-shrink: 0; display: flex; align-items: center; justify-content: center;
  font-size: 13px; opacity: 1; transition: var(--transition);
}
.song-play:hover { transform: translateY(-1px); }
.song-dl {
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--amber); color: #fff; border: none; cursor: pointer;
  flex-shrink: 0; display: flex; align-items: center; justify-content: center;
  font-size: 15px; text-decoration: none; transition: var(--transition);
}
.song-dl:hover { background: var(--terra); transform: translateY(-1px); }

/* ---- Filter Buttons ---- */
.filter-row { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 40px; }
.filter-btn {
  padding: 8px 20px; border-radius: 100px;
  font-family: 'Space Grotesk', sans-serif; font-size: 13px; font-weight: 500;
  cursor: pointer; border: 1px solid var(--cream-deep);
  background: var(--cream); color: var(--text-muted); transition: var(--transition);
}
.filter-btn:hover, .filter-btn.active { background: var(--terra); color: #fff; border-color: var(--terra); }

/* ---- Cause / Charity Cards ---- */
.cause-card {
  background: var(--cream); border-radius: var(--radius-lg);
  overflow: hidden; border: 1px solid var(--cream-deep);
  transition: var(--transition);
}
.cause-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
.cause-img { height: 200px; display: flex; align-items: center; justify-content: center; font-size: 60px; }
.cause-img-1 { background: linear-gradient(135deg, var(--sage), var(--sage-light)); }
.cause-img-2 { background: linear-gradient(135deg, var(--amber), var(--gold)); }
.cause-img-3 { background: linear-gradient(135deg, var(--terra), var(--amber)); }
.cause-img-4 { background: linear-gradient(135deg, var(--dark-mid), var(--sage)); }
.cause-body    { padding: 28px; }
.cause-title   { font-family: 'Playfair Display', serif; font-size: 20px; font-weight: 700; margin-bottom: 8px; color: var(--dark); }
.cause-desc    { font-size: 14px; margin-bottom: 20px; }
.prog-labels   { display: flex; justify-content: space-between; font-size: 12px; margin-bottom: 8px; font-family: 'Space Grotesk', sans-serif; }
.prog-raised   { color: var(--sage); font-weight: 600; }
.prog-pct      { color: var(--text-light); }
.prog-bar      { height: 6px; background: var(--cream-deep); border-radius: 3px; margin-bottom: 20px; }
.prog-fill     { height: 100%; border-radius: 3px; background: linear-gradient(90deg, var(--sage), var(--sage-light)); }

/* ---- Forms ---- */
.form-group  { margin-bottom: 20px; }
.label-dark  { display: block; font-family: 'Space Grotesk', sans-serif; font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: var(--text-muted); margin-bottom: 8px; }
.label-light { display: block; font-family: 'Space Grotesk', sans-serif; font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: rgba(251,245,233,0.5); margin-bottom: 8px; }
.input-light {
  width: 100%; padding: 14px 18px;
  background: var(--cream-dark); border: 1px solid var(--cream-deep);
  border-radius: var(--radius-sm); color: var(--dark);
  font-size: 15px; font-family: 'DM Sans', sans-serif;
  outline: none; transition: var(--transition);
}
.input-light:focus { border-color: var(--terra); background: var(--cream); }
.input-light::placeholder { color: var(--text-light); }
.input-dark {
  width: 100%; padding: 14px 18px;
  background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--radius-sm); color: var(--cream);
  font-size: 15px; font-family: 'DM Sans', sans-serif;
  outline: none; transition: var(--transition);
}
.input-dark:focus { border-color: var(--amber); background: rgba(255,255,255,0.09); }
.input-dark::placeholder { color: rgba(251,245,233,0.25); }
textarea.input-light, textarea.input-dark { resize: vertical; min-height: 130px; }

/* ---- Testimonial Cards ---- */
.testimonial-card { background: var(--cream); border-radius: var(--radius-lg); padding: 36px; border: 1px solid var(--cream-deep); box-shadow: var(--shadow-sm); }
.t-quote { font-family: 'Playfair Display', serif; font-size: 19px; color: var(--dark); line-height: 1.6; margin-bottom: 24px; }
.t-quote::before { content: '\201C'; font-size: 48px; color: var(--terra); line-height: 0; vertical-align: -20px; margin-right: 6px; }
.t-author { display: flex; align-items: center; gap: 14px; }
.t-avatar  { width: 48px; height: 48px; border-radius: 50%; background: linear-gradient(135deg, var(--terra), var(--amber)); display: flex; align-items: center; justify-content: center; font-size: 20px; flex-shrink: 0; }
.t-name    { font-weight: 600; font-size: 14px; color: var(--dark); margin-bottom: 2px; font-family: 'Space Grotesk', sans-serif; }
.t-role    { font-size: 12px; color: var(--text-light); }

/* ---- Event Cards ---- */
.event-card {
  display: grid; grid-template-columns: 100px 1fr auto;
  gap: 24px; align-items: center;
  padding: 28px 32px;
  background: var(--cream); border: 1px solid var(--cream-deep);
  border-radius: var(--radius-md); margin-bottom: 14px;
  transition: var(--transition);
}
.event-card:hover { border-color: var(--terra); box-shadow: var(--shadow-sm); }
.event-date { text-align: center; background: var(--terra); color: #fff; border-radius: var(--radius-md); padding: 14px; }
.event-day   { font-family: 'Playfair Display', serif; font-size: 36px; font-weight: 900; line-height: 1; }
.event-month { font-family: 'Space Grotesk', sans-serif; font-size: 11px; letter-spacing: 2px; text-transform: uppercase; opacity: 0.8; }
.event-info h4 { color: var(--dark); margin-bottom: 6px; }
.event-loc { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-light); margin-top: 6px; font-family: 'Space Grotesk', sans-serif; }

/* ---- Product Cards ---- */
.product-card { background: var(--cream); border-radius: var(--radius-md); overflow: hidden; border: 1px solid var(--cream-deep); transition: var(--transition); }
.product-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
.product-img { height: 240px; display: flex; align-items: center; justify-content: center; font-size: 60px; position: relative; }
.prod-badge  { position: absolute; top: 14px; left: 14px; padding: 5px 12px; border-radius: 100px; font-size: 10px; letter-spacing: 1px; text-transform: uppercase; font-family: 'Space Grotesk', sans-serif; font-weight: 600; }
.badge-new  { background: var(--terra); color: #fff; }
.badge-best { background: var(--gold); color: var(--dark); }
.badge-dig  { background: var(--sage); color: #fff; }
.product-body  { padding: 20px; }
.product-name  { font-weight: 700; color: var(--dark); margin-bottom: 4px; font-family: 'Space Grotesk', sans-serif; }
.product-type  { font-size: 12px; color: var(--text-light); margin-bottom: 12px; }
.product-foot  { display: flex; align-items: center; justify-content: space-between; }
.product-price { font-family: 'Playfair Display', serif; font-size: 22px; font-weight: 700; color: var(--terra); }

/* ---- Gallery ---- */
.gallery-grid { columns: 3; gap: 16px; }
.gal-item {
  width: 100%; margin-bottom: 16px; break-inside: avoid;
  border-radius: var(--radius-md); overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: var(--transition); font-size: 40px;
}
.gal-item:hover { opacity: 0.88; transform: scale(0.985); }

/* ---- Contact Methods ---- */
.contact-method { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 24px; }
.c-icon { width: 50px; height: 50px; border-radius: var(--radius-sm); background: var(--cream-dark); display: flex; align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0; }
.c-label { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--text-light); font-family: 'Space Grotesk', sans-serif; margin-bottom: 4px; }
.c-value { font-weight: 600; color: var(--dark); font-size: 15px; }

/* ---- Floating Player ---- */
.floating-player {
  position: fixed; bottom: 24px; right: 24px;
  background: var(--dark); border-radius: var(--radius-lg);
  padding: 14px 18px; display: flex; align-items: center; gap: 14px;
  box-shadow: 0 20px 60px rgba(26,10,0,0.4); z-index: 900;
  min-width: 280px; border: 1px solid rgba(255,255,255,0.06);
  transform: translateY(120px); opacity: 0; transition: var(--transition);
}
.floating-player.up { transform: translateY(0); opacity: 1; }
.fp-art  { width: 44px; height: 44px; border-radius: 10px; background: linear-gradient(135deg, var(--terra), var(--amber)); display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; }
.fp-info { flex: 1; min-width: 0; }
.fp-title{ font-weight: 600; font-size: 13px; color: var(--cream); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fp-sub  { font-size: 11px; color: rgba(251,245,233,0.4); margin-top: 2px; }
.fp-ctrl { display: flex; align-items: center; gap: 8px; }
.fp-btn  { background: none; border: none; color: rgba(251,245,233,0.5); cursor: pointer; font-size: 13px; padding: 4px; transition: var(--transition); }
.fp-btn:hover { color: var(--amber); }
.fp-play { width: 34px; height: 34px; border-radius: 50%; background: var(--terra); color: #fff; border: none; cursor: pointer; font-size: 13px; display: flex; align-items: center; justify-content: center; transition: var(--transition); }
.fp-play:hover { background: var(--amber); }

/* ---- WhatsApp Float ---- */
.wa-float {
  position: fixed; bottom: 24px; left: 24px; z-index: 900;
  width: 54px; height: 54px; border-radius: 50%;
  background: #25D366; color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 26px; box-shadow: 0 8px 24px rgba(37,211,102,0.45);
  text-decoration: none; transition: var(--transition);
}
.wa-float:hover { transform: scale(1.1); box-shadow: 0 12px 32px rgba(37,211,102,0.55); }

/* ---- Footer ---- */
.footer { background: var(--charcoal); padding: 80px 0 40px; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 50px; margin-bottom: 60px; }
.footer-brand p { color: rgba(251,245,233,0.4); font-size: 14px; margin-top: 16px; max-width: 280px; }
.footer-col h5 { font-family: 'Space Grotesk', sans-serif; font-size: 11px; letter-spacing: 3px; text-transform: uppercase; color: rgba(251,245,233,0.3); margin-bottom: 20px; }
.footer-links  { list-style: none; }
.footer-links li { margin-bottom: 12px; }
.footer-links a { color: rgba(251,245,233,0.55); font-size: 14px; text-decoration: none; transition: var(--transition); }
.footer-links a:hover { color: var(--amber); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,0.06); padding-top: 28px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; }
.footer-copy { font-size: 13px; color: rgba(251,245,233,0.22); }
.social-row  { display: flex; gap: 10px; }
.social-btn  { width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,0.06); display: flex; align-items: center; justify-content: center; color: rgba(251,245,233,0.4); font-size: 15px; text-decoration: none; transition: var(--transition); }
.social-btn:hover { background: var(--terra); color: #fff; }

/* ---- Responsive ---- */
@media (max-width: 1024px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 36px; }
}
@media (max-width: 900px) {
  .container { padding: 0 24px; }
  .section   { padding: 70px 0; }
  .grid-2    { grid-template-columns: 1fr; gap: 40px; }
  .grid-3    { grid-template-columns: 1fr 1fr; gap: 20px; }
  .grid-4    { grid-template-columns: 1fr 1fr; gap: 16px; }
  .nav-links, .nav .btn { display: none; }
  .nav-hamburger { display: flex; }
  .event-card { grid-template-columns: 80px 1fr; }
  .event-card .btn { display: none; }
  .gallery-grid { columns: 2; }
}
@media (max-width: 600px) {
  h1 { letter-spacing: -1px; }
  .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .gallery-grid { columns: 1; }
  .footer-grid  { grid-template-columns: 1fr; }
  .floating-player { min-width: 240px; right: 16px; bottom: 16px; }
  .wa-float { bottom: 16px; left: 16px; }
}

/* ---- Mobile Menu ---- */
.mobile-menu {
  display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0;
  background: var(--cream); z-index: 999;
  flex-direction: column; align-items: center; justify-content: center; gap: 18px;
}
.mobile-menu.open { display: flex; }
.mobile-menu a { font-family: 'Playfair Display', serif; font-size: 34px; font-weight: 700; color: var(--dark); text-decoration: none; }
.mobile-menu a:hover { color: var(--terra); }
.mobile-close { position: absolute; top: 22px; right: 22px; width: 44px; height: 44px; background: var(--dark); border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; color: #fff; font-size: 20px; border: none; }

/* ---- Utilities ---- */
.text-center { text-align: center; }
.mt-8  { margin-top: 8px; }
.mt-16 { margin-top: 16px; }
.mt-24 { margin-top: 24px; }
.mt-40 { margin-top: 40px; }
.mt-60 { margin-top: 60px; }
.mb-40 { margin-bottom: 40px; }
.mb-60 { margin-bottom: 60px; }
.fade-up { opacity: 0; transform: translateY(28px); transition: opacity 0.6s ease, transform 0.6s ease; }
.fade-up.visible { opacity: 1; transform: translateY(0); }

/* ============================================================
   CART + CHECKOUT (added 2026-05-21)
============================================================ */
.cart-btn { position:relative; width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.12); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:var(--transition); color:#fff; text-decoration:none; font-size:18px; flex-shrink:0; }
.cart-btn:hover { background:var(--terra); border-color:var(--terra); }
.cart-count-badge { position:absolute; top:-4px; right:-4px; background:var(--terra); color:#fff; border-radius:50%; min-width:20px; height:20px; padding:0 5px; font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center; font-family:'Space Grotesk',sans-serif; box-shadow:0 2px 6px rgba(0,0,0,0.3); }
.cart-count-badge.empty { display:none; }

/* Drawer */
.cart-overlay { position:fixed; inset:0; background:rgba(26,10,0,0.55); backdrop-filter:blur(4px); z-index:1100; opacity:0; pointer-events:none; transition:opacity 0.3s; }
.cart-overlay.open { opacity:1; pointer-events:auto; }
.cart-drawer { position:fixed; top:0; right:0; width:min(440px, 100vw); height:100vh; background:var(--cream); z-index:1200; transform:translateX(100%); transition:transform 0.35s cubic-bezier(0.4,0,0.2,1); display:flex; flex-direction:column; box-shadow:-10px 0 40px rgba(0,0,0,0.18); }
.cart-drawer.open { transform:translateX(0); }
.cart-drawer-header { padding:22px 28px; border-bottom:1px solid var(--cream-deep); display:flex; align-items:center; justify-content:space-between; flex-shrink:0; }
.cart-drawer-header h3 { font-size:22px; }
.cart-drawer-close { width:36px; height:36px; border-radius:50%; background:var(--cream-dark); border:none; cursor:pointer; font-size:18px; color:var(--dark); display:flex; align-items:center; justify-content:center; }
.cart-drawer-body { flex:1; overflow-y:auto; padding:20px 28px; }
.cart-drawer-footer { padding:24px 28px; border-top:1px solid var(--cream-deep); background:var(--cream-dark); flex-shrink:0; }

.cart-item { display:grid; grid-template-columns:60px 1fr auto; gap:14px; align-items:center; padding:16px 0; border-bottom:1px solid var(--cream-deep); }
.cart-item:last-child { border-bottom:none; }
.cart-item-img { width:60px; height:60px; border-radius:var(--radius-sm); display:flex; align-items:center; justify-content:center; font-size:24px; flex-shrink:0; }
.cart-item-info { min-width:0; }
.cart-item-name { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:14px; color:var(--dark); margin-bottom:4px; line-height:1.3; }
.cart-item-price { font-size:13px; color:var(--text-muted); font-family:'Space Grotesk',sans-serif; }
.cart-qty-row { display:flex; align-items:center; gap:8px; margin-top:8px; }
.cart-qty-btn { width:26px; height:26px; border-radius:50%; background:var(--cream-deep); border:none; cursor:pointer; font-weight:700; color:var(--dark); font-size:14px; display:flex; align-items:center; justify-content:center; transition:var(--transition); font-family:'Space Grotesk',sans-serif; }
.cart-qty-btn:hover { background:var(--terra); color:#fff; }
.cart-qty-display { min-width:24px; text-align:center; font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:14px; color:var(--dark); }
.cart-item-remove { background:none; border:none; color:var(--text-light); cursor:pointer; font-size:18px; padding:4px 8px; align-self:flex-start; transition:var(--transition); }
.cart-item-remove:hover { color:var(--terra); }

.cart-empty { text-align:center; padding:60px 20px; color:var(--text-light); }
.cart-empty-icon { font-size:48px; margin-bottom:16px; opacity:0.4; }

.cart-summary-row { display:flex; justify-content:space-between; padding:10px 0; font-size:14px; color:var(--text-muted); font-family:'Space Grotesk',sans-serif; }
.cart-summary-total { font-family:'Playfair Display',serif; font-size:22px; font-weight:700; color:var(--dark); border-top:2px solid var(--cream-deep); padding-top:16px; margin-top:8px; display:flex; justify-content:space-between; align-items:baseline; }

/* Checkout page */
.checkout-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:50px; align-items:start; }
.checkout-section { background:var(--cream); border-radius:var(--radius-lg); padding:40px; border:1px solid var(--cream-deep); box-shadow:var(--shadow-sm); margin-bottom:24px; }
.checkout-section h3 { font-size:22px; margin-bottom:6px; }
.checkout-section .section-sub { font-size:13px; color:var(--text-light); margin-bottom:24px; font-family:'Space Grotesk',sans-serif; letter-spacing:1px; text-transform:uppercase; }

.payment-method-card { display:flex; align-items:center; gap:16px; padding:18px 20px; border-radius:var(--radius-md); background:var(--cream); border:2px solid var(--cream-deep); cursor:pointer; transition:var(--transition); margin-bottom:12px; position:relative; }
.payment-method-card:hover { border-color:var(--terra); background:var(--cream-dark); }
.payment-method-card.selected { border-color:var(--terra); background:rgba(196,98,45,0.06); }
.payment-method-card.disabled { opacity:0.55; cursor:not-allowed; }
.payment-method-card.disabled:hover { border-color:var(--cream-deep); background:var(--cream); }
.payment-method-icon { width:48px; height:48px; border-radius:50%; background:var(--cream-dark); display:flex; align-items:center; justify-content:center; font-size:22px; flex-shrink:0; }
.payment-method-info { flex:1; min-width:0; }
.payment-method-title { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:15px; color:var(--dark); margin-bottom:3px; }
.payment-method-desc { font-size:12px; color:var(--text-muted); line-height:1.5; }
.payment-method-radio { width:22px; height:22px; border-radius:50%; border:2px solid var(--cream-deep); flex-shrink:0; position:relative; }
.payment-method-card.selected .payment-method-radio { border-color:var(--terra); }
.payment-method-card.selected .payment-method-radio::after { content:''; position:absolute; inset:3px; background:var(--terra); border-radius:50%; }
.payment-method-card .coming-soon-tag { position:absolute; top:10px; right:14px; background:var(--cream-deep); color:var(--text-muted); font-size:10px; padding:3px 8px; border-radius:100px; font-family:'Space Grotesk',sans-serif; letter-spacing:1px; text-transform:uppercase; font-weight:600; }

.payment-instructions { background:var(--cream-dark); border-radius:var(--radius-md); padding:20px 22px; margin-top:12px; border-left:3px solid var(--terra); display:none; }
.payment-instructions.show { display:block; }
.payment-instructions h5 { font-size:13px; color:var(--terra); margin-bottom:10px; letter-spacing:1px; text-transform:uppercase; font-family:'Space Grotesk',sans-serif; }
.payment-instructions ol { padding-left:20px; margin:0; font-size:14px; line-height:1.85; color:var(--text-muted); }
.payment-instructions ol code { background:var(--cream); padding:1px 7px; border-radius:4px; font-family:'Space Grotesk',sans-serif; font-size:13px; color:var(--dark); font-weight:700; }

.order-summary { background:var(--cream); border-radius:var(--radius-lg); padding:32px; border:1px solid var(--cream-deep); box-shadow:var(--shadow-sm); position:sticky; top:100px; }
.order-summary h4 { font-family:'Space Grotesk',sans-serif; font-size:11px; letter-spacing:3px; text-transform:uppercase; color:var(--text-muted); margin-bottom:20px; }
.order-line { display:flex; justify-content:space-between; gap:10px; padding:10px 0; font-size:14px; color:var(--text-muted); border-bottom:1px solid var(--cream-deep); }
.order-line:last-of-type { border-bottom:none; }
.order-line-name { flex:1; }
.order-line-qty { color:var(--text-light); }
.order-line-price { font-family:'Space Grotesk',sans-serif; font-weight:600; color:var(--dark); white-space:nowrap; }

@media(max-width:900px) {
  .checkout-grid { grid-template-columns:1fr; }
  .order-summary { position:static; }
  .checkout-section { padding:28px 22px; }
}
