/*
Theme Name: DoRishta
Theme URI: https://dorishta.com
Author: Kusumit Pvt Ltd
Author URI: https://kusumit.com
Description: Official WordPress theme for DoRishta — India's trusted matrimony & matchmaking platform. Part of the MyDoApp ecosystem by Kusumit Pvt Ltd.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: Proprietary
Text Domain: dorishta
Tags: matrimony, matchmaking, india, relationships
*/

/* ============================================================
   CSS CUSTOM PROPERTIES
   ============================================================ */
:root {
  --rose:         #c2185b;
  --rose-mid:     #d81b60;
  --rose-light:   #f48fb1;
  --rose-pale:    #fce4ec;
  --rose-xpale:   #fff5f8;
  --gold:         #b8860b;
  --gold-mid:     #d4a017;
  --gold-pale:    #fdf8e1;
  --purple:       #6a1b9a;
  --purple-mid:   #7b1fa2;
  --purple-pale:  #f3e5f5;
  --teal:         #00796b;
  --teal-pale:    #e0f2f1;
  --concrete:     #f0ecf4;
  --concrete-mid: #d0ccd8;
  --concrete-dark:#9890a0;
  --ink:          #1a0f2e;
  --ink-mid:      #3a2f4a;
  --ink-soft:     #6a5f7a;
  --ink-xsoft:    #9a90aa;
  --white:        #fffbff;
  --card-bg:      #ffffff;
  --border:       #ede8f5;
  --border-dark:  #d5cfe3;
  --shadow-sm:    0 1px 4px rgba(194,24,91,0.07);
  --shadow-md:    0 4px 16px rgba(194,24,91,0.12);
  --shadow-lg:    0 8px 32px rgba(194,24,91,0.15);
  --radius-sm:    6px;
  --radius-md:    10px;
  --radius-lg:    16px;
  --radius-xl:    24px;
  --font-display: 'Tiro Devanagari Hindi', serif;
  --font-body:    'DM Sans', sans-serif;
}

/* ============================================================
   RESET & BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body { font-family: var(--font-body); background: var(--white); color: var(--ink); line-height: 1.6; -webkit-font-smoothing: antialiased; }
img  { max-width: 100%; height: auto; display: block; }
a    { color: inherit; text-decoration: none; }
ul   { list-style: none; }

h1,h2,h3,h4,h5,h6 { font-family: var(--font-body); font-weight: 600; line-height: 1.25; color: var(--ink); }
h1 { font-size: clamp(2rem, 5vw, 3.25rem); }
h2 { font-size: clamp(1.5rem, 3vw, 2.25rem); }
h3 { font-size: 1.2rem; }
p  { color: var(--ink-soft); line-height: 1.7; }
.hindi { font-family: var(--font-display); font-weight: 400; }

/* ============================================================
   LAYOUT
   ============================================================ */
.container      { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.container-wide { max-width: 1400px; margin: 0 auto; padding: 0 24px; }
.section    { padding: 80px 0; }
.section-sm { padding: 48px 0; }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.grid-4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
@media(max-width:1024px){ .grid-3{grid-template-columns:1fr 1fr;} .grid-4{grid-template-columns:1fr 1fr;} }
@media(max-width:768px) { .grid-2,.grid-3,.grid-4{grid-template-columns:1fr;} .section{padding:48px 0;} .hidden-mobile{display:none;} }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn { display:inline-flex; align-items:center; gap:8px; padding:12px 24px; border-radius:var(--radius-md); font-family:var(--font-body); font-size:14px; font-weight:600; cursor:pointer; border:none; transition:all 0.2s; text-decoration:none; white-space:nowrap; }
.btn-primary   { background:var(--rose-mid); color:#fff; }
.btn-primary:hover   { background:var(--rose); transform:translateY(-1px); box-shadow:var(--shadow-md); }
.btn-secondary { background:transparent; color:var(--rose-mid); border:1.5px solid var(--rose-mid); }
.btn-secondary:hover { background:var(--rose-pale); }
.btn-gold      { background:var(--gold-mid); color:#fff; }
.btn-gold:hover      { background:var(--gold); transform:translateY(-1px); }
.btn-purple    { background:var(--purple-mid); color:#fff; }
.btn-purple:hover    { background:var(--purple); transform:translateY(-1px); }
.btn-ghost     { background:rgba(255,255,255,0.12); color:#fff; border:1px solid rgba(255,255,255,0.3); }
.btn-ghost:hover     { background:rgba(255,255,255,0.2); }
.btn-lg  { padding:16px 32px; font-size:16px; }
.btn-sm  { padding:8px 16px; font-size:12px; }
.btn-xs  { padding:5px 12px; font-size:11px; font-weight:600; }

/* ============================================================
   BADGES
   ============================================================ */
.badge { display:inline-flex; align-items:center; gap:4px; padding:3px 10px; border-radius:20px; font-size:11px; font-weight:600; }
.badge-verified  { background:#e8f5e9; color:#2e7d32; }
.badge-premium   { background:var(--gold-pale); color:var(--gold); border:1px solid var(--gold-mid); }
.badge-new       { background:var(--rose-pale); color:var(--rose); }
.badge-online    { background:#e8f5e9; color:#2e7d32; }
.tag { display:inline-block; padding:3px 10px; border-radius:20px; font-size:11px; background:var(--concrete); color:var(--ink-mid); }

/* ============================================================
   SECTION HEADINGS
   ============================================================ */
.section-head { text-align:center; margin-bottom:48px; }
.section-head .overline { display:inline-block; font-size:11px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--rose-mid); margin-bottom:12px; }
.section-head h2 { margin-bottom:16px; }
.section-head p  { max-width:560px; margin:0 auto; }

/* ============================================================
   HEADER
   ============================================================ */
#site-header { position:sticky; top:0; z-index:1000; background:var(--ink); border-bottom:1px solid rgba(255,255,255,0.07); }
.header-inner { display:flex; align-items:center; height:64px; gap:28px; }
.site-logo { display:flex; align-items:baseline; gap:6px; flex-shrink:0; }
.logo-do     { font-size:22px; font-weight:700; color:#fff; letter-spacing:-0.5px; }
.logo-rishta { font-size:22px; font-weight:700; color:var(--rose-light); letter-spacing:-0.5px; }
.logo-hindi  { font-family:var(--font-display); font-size:13px; color:rgba(255,255,255,0.3); margin-left:4px; }
#primary-nav { display:flex; align-items:center; gap:2px; }
.nav-item a  { font-size:13px; font-weight:500; color:rgba(255,255,255,0.55); padding:8px 12px; border-radius:var(--radius-sm); transition:all 0.15s; display:block; }
.nav-item a:hover, .nav-item.current-menu-item a { color:#fff; background:rgba(255,255,255,0.08); }
.header-actions { margin-left:auto; display:flex; align-items:center; gap:10px; }
.menu-toggle { display:none; background:none; border:none; cursor:pointer; padding:8px; color:#fff; font-size:22px; }
@media(max-width:768px){ .menu-toggle{display:block;} #primary-nav{display:none;} #primary-nav.open{display:flex;flex-direction:column;position:absolute;top:64px;left:0;right:0;background:var(--ink);padding:16px;gap:4px;border-bottom:1px solid rgba(255,255,255,0.1);z-index:999;} }

/* ============================================================
   HERO
   ============================================================ */
.hero { background:var(--ink); padding:72px 0 0; overflow:hidden; position:relative; }
.hero::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 55% 70% at 75% 40%, rgba(194,24,91,0.2) 0%,transparent 65%), radial-gradient(ellipse 35% 50% at 15% 70%, rgba(106,27,154,0.12) 0%,transparent 60%); pointer-events:none; }
.hero-grid { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
@media(max-width:768px){ .hero-grid{grid-template-columns:1fr;} }
.hero-overline { display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; color:var(--rose-light); margin-bottom:20px; }
.hero-overline::before { content:''; width:24px; height:2px; background:var(--rose-light); border-radius:2px; }
.hero h1 { color:#fff; margin-bottom:20px; }
.hero h1 span { color:var(--rose-light); }
.hero-desc { font-size:1.05rem; color:rgba(255,255,255,0.58); margin-bottom:32px; line-height:1.8; }
.hero-ctas { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:44px; }
.hero-stats { display:flex; gap:28px; padding-top:28px; border-top:1px solid rgba(255,255,255,0.1); }
.hero-stat .val   { font-size:1.6rem; font-weight:700; color:#fff; line-height:1; }
.hero-stat .label { font-size:11px; color:rgba(255,255,255,0.4); margin-top:4px; }

/* Profile mosaic in hero */
.profile-mosaic { display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px; padding-bottom:40px; }
.mosaic-card { background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.1); border-radius:var(--radius-lg); padding:14px; text-align:center; transition:all 0.2s; }
.mosaic-card:hover { background:rgba(255,255,255,0.1); transform:translateY(-2px); }
.mosaic-avatar { width:52px; height:52px; border-radius:50%; margin:0 auto 8px; display:flex; align-items:center; justify-content:center; font-size:20px; font-weight:700; color:#fff; }
.mosaic-name  { font-size:12px; font-weight:600; color:#fff; margin-bottom:2px; }
.mosaic-age   { font-size:11px; color:rgba(255,255,255,0.45); margin-bottom:6px; }
.mosaic-tag   { font-size:10px; padding:2px 8px; border-radius:20px; background:rgba(255,255,255,0.1); color:rgba(255,255,255,0.6); }

/* ============================================================
   TRUST / PROMISE BAR
   ============================================================ */
.trust-bar { background:var(--rose-pale); border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:14px 0; }
.trust-inner { display:flex; align-items:center; justify-content:center; gap:36px; flex-wrap:wrap; }
.trust-item  { display:flex; align-items:center; gap:8px; font-size:13px; font-weight:500; color:var(--rose); }
.trust-icon  { font-size:16px; color:var(--rose-mid); }

/* ============================================================
   PROFILE CARDS
   ============================================================ */
.profile-card { background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; transition:all 0.2s; cursor:pointer; position:relative; }
.profile-card:hover { border-color:var(--rose-light); transform:translateY(-3px); box-shadow:var(--shadow-md); }
.profile-card.premium { border-color:var(--gold-mid); }

.pc-photo { width:100%; height:200px; background:var(--concrete); display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; }
.pc-photo-avatar { width:90px; height:90px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:32px; font-weight:700; color:#fff; }
.pc-photo-blur { filter:blur(8px); opacity:0.7; }
.pc-lock { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; background:rgba(255,255,255,0.15); backdrop-filter:blur(2px); }
.pc-lock-icon { font-size:24px; margin-bottom:4px; }
.pc-lock-text { font-size:11px; font-weight:600; color:var(--rose); }
.pc-online-dot { position:absolute; top:12px; left:12px; width:10px; height:10px; border-radius:50%; background:#4caf50; border:2px solid #fff; }
.pc-premium-badge { position:absolute; top:12px; right:12px; background:var(--gold-mid); color:#fff; font-size:10px; font-weight:700; padding:3px 9px; border-radius:20px; }

.pc-body { padding:16px; }
.pc-name  { font-size:15px; font-weight:600; margin-bottom:3px; }
.pc-meta  { font-size:12px; color:var(--ink-soft); margin-bottom:10px; line-height:1.6; }
.pc-tags  { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:12px; }
.pc-tag   { font-size:10px; padding:2px 8px; border-radius:20px; background:var(--rose-pale); color:var(--rose); }

.pc-actions { display:flex; gap:8px; }
.pc-btn-interest { flex:1; background:var(--rose-mid); color:#fff; border:none; border-radius:var(--radius-sm); padding:9px; font-size:12px; font-weight:600; cursor:pointer; font-family:var(--font-body); transition:background 0.15s; display:flex; align-items:center; justify-content:center; gap:5px; }
.pc-btn-interest:hover { background:var(--rose); }
.pc-btn-interest.sent { background:var(--concrete); color:var(--ink-soft); cursor:default; }
.pc-btn-shortlist { width:36px; height:36px; border:1px solid var(--border); border-radius:var(--radius-sm); background:none; cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:16px; transition:all 0.15s; }
.pc-btn-shortlist:hover { border-color:var(--rose-mid); background:var(--rose-pale); }
.pc-btn-shortlist.saved { border-color:var(--rose-mid); background:var(--rose-pale); }

.compatibility-bar { margin-bottom:12px; }
.comp-label { display:flex; justify-content:space-between; font-size:11px; margin-bottom:4px; }
.comp-label span:first-child { color:var(--ink-soft); }
.comp-label span:last-child  { font-weight:600; color:var(--rose); }
.comp-track { height:4px; background:var(--concrete); border-radius:20px; overflow:hidden; }
.comp-fill  { height:100%; background:linear-gradient(90deg, var(--rose-mid), var(--gold-mid)); border-radius:20px; }

/* ============================================================
   MEMBERSHIP PLANS
   ============================================================ */
.plan-card { background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius-xl); padding:32px 28px; position:relative; overflow:hidden; transition:all 0.2s; }
.plan-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-md); }
.plan-card.featured { border-color:var(--rose-mid); border-width:2px; }
.plan-card.featured::before { content:'Most Popular'; position:absolute; top:18px; right:-28px; background:var(--rose-mid); color:#fff; font-size:10px; font-weight:700; padding:4px 40px; transform:rotate(45deg); letter-spacing:0.05em; }
.plan-name   { font-size:11px; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--rose-mid); margin-bottom:8px; }
.plan-price  { font-size:2.2rem; font-weight:700; color:var(--ink); line-height:1; margin-bottom:4px; }
.plan-price span { font-size:1rem; font-weight:400; color:var(--ink-soft); }
.plan-period { font-size:12px; color:var(--ink-soft); margin-bottom:20px; }
.plan-divider{ height:1px; background:var(--border); margin-bottom:20px; }
.plan-features { display:flex; flex-direction:column; gap:10px; margin-bottom:28px; }
.plan-feat   { display:flex; align-items:flex-start; gap:8px; font-size:13px; color:var(--ink-mid); }
.plan-feat-icon { color:var(--rose-mid); flex-shrink:0; margin-top:2px; }
.plan-feat.disabled { color:var(--concrete-dark); }
.plan-feat.disabled .plan-feat-icon { color:var(--concrete-mid); }

/* ============================================================
   SEARCH FILTERS
   ============================================================ */
.search-hero-box { background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.12); border-radius:var(--radius-lg); padding:24px; }
.shb-title { font-size:13px; font-weight:600; color:rgba(255,255,255,0.5); letter-spacing:0.06em; text-transform:uppercase; margin-bottom:16px; }
.shb-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px; }
.shb-select { width:100%; font-family:var(--font-body); font-size:13px; color:#fff; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.15); border-radius:var(--radius-md); padding:11px 13px; outline:none; transition:border-color 0.2s; }
.shb-select:focus { border-color:var(--rose-light); }
.shb-select option { background:var(--ink); }

/* ============================================================
   LISTING SIDEBAR + ADVANCED SEARCH
   ============================================================ */
.listing-layout  { display:flex; gap:24px; align-items:flex-start; }
.listing-sidebar { width:260px; flex-shrink:0; position:sticky; top:80px; }
.listing-main    { flex:1; min-width:0; }
.filter-card { background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius-lg); padding:20px; margin-bottom:14px; }
.filter-title { font-size:11px; font-weight:700; letter-spacing:0.07em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:12px; }
.filter-opt   { display:flex; align-items:center; gap:8px; padding:5px 6px; border-radius:var(--radius-sm); font-size:13px; color:var(--ink-mid); cursor:pointer; transition:background 0.12s; }
.filter-opt:hover { background:var(--rose-pale); color:var(--rose); }
.filter-opt input[type=checkbox] { accent-color:var(--rose-mid); }
.filter-count { margin-left:auto; font-size:11px; color:var(--concrete-dark); }
.range-row { display:flex; gap:6px; }
.range-input { flex:1; font-family:var(--font-body); font-size:12px; border:1px solid var(--border); border-radius:var(--radius-sm); padding:6px 8px; outline:none; color:var(--ink); }
.chips-bar { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:16px; }
.chip { font-size:12px; padding:5px 12px; border-radius:20px; border:1px solid var(--border); background:var(--white); color:var(--ink-mid); cursor:pointer; transition:all 0.15s; font-family:var(--font-body); }
.chip:hover  { border-color:var(--rose-mid); color:var(--rose); }
.chip.active { background:var(--rose-pale); border-color:var(--rose-mid); color:var(--rose); font-weight:500; }

/* ============================================================
   PROFILE DETAIL PAGE
   ============================================================ */
.pd-hero { background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius-xl); padding:28px; display:flex; gap:24px; margin-bottom:24px; }
.pd-photo-wrap { width:200px; flex-shrink:0; }
.pd-photo-main { width:200px; height:260px; border-radius:var(--radius-lg); background:var(--concrete); display:flex; align-items:center; justify-content:center; font-size:64px; font-weight:700; color:#fff; overflow:hidden; }
.pd-name  { font-size:1.5rem; font-weight:700; margin-bottom:4px; }
.pd-id    { font-size:12px; color:var(--ink-soft); margin-bottom:10px; }
.pd-quick { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.pd-quick-item { display:flex; align-items:center; gap:5px; font-size:13px; color:var(--ink-mid); background:var(--concrete); padding:5px 10px; border-radius:20px; }
.pd-section { background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius-lg); padding:22px; margin-bottom:16px; }
.pd-section h3 { font-size:14px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:14px; }
.pd-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.pd-detail-item { font-size:13px; }
.pd-detail-label { color:var(--ink-soft); font-size:11px; text-transform:uppercase; letter-spacing:0.04em; margin-bottom:2px; }
.pd-detail-val   { font-weight:500; color:var(--ink); }

/* ============================================================
   FORMS
   ============================================================ */
.form-group { margin-bottom:16px; }
.form-label { display:block; font-size:11px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:6px; }
.form-input, .form-select, .form-textarea { width:100%; font-family:var(--font-body); font-size:14px; color:var(--ink); background:var(--white); border:1px solid var(--border); border-radius:var(--radius-md); padding:12px 14px; outline:none; transition:border-color 0.2s; }
.form-input:focus, .form-select:focus, .form-textarea:focus { border-color:var(--rose-mid); }
.form-input::placeholder, .form-textarea::placeholder { color:var(--concrete-dark); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media(max-width:480px){ .form-row{grid-template-columns:1fr;} }

/* ============================================================
   SUCCESS STORIES
   ============================================================ */
.story-card { background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius-xl); padding:28px; position:relative; overflow:hidden; }
.story-card::before { content:'❤'; position:absolute; top:20px; right:20px; font-size:28px; opacity:0.15; }
.story-couple { display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.story-avatar { width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:18px; font-weight:700; color:#fff; }
.story-heart  { font-size:20px; color:var(--rose-mid); }
.story-names  { font-size:15px; font-weight:600; }
.story-loc    { font-size:12px; color:var(--ink-soft); }
.story-text   { font-size:13px; color:var(--ink-soft); line-height:1.7; font-style:italic; margin-bottom:12px; }
.story-meta   { font-size:11px; color:var(--concrete-dark); }

/* ============================================================
   TESTIMONIALS / REVIEWS
   ============================================================ */
.testimonial-card { background:var(--card-bg); border:1px solid var(--border); border-radius:var(--radius-lg); padding:24px; }
.testimonial-stars { color:#f59e0b; font-size:14px; letter-spacing:2px; margin-bottom:10px; }
.testimonial-text  { font-size:13px; color:var(--ink-soft); line-height:1.7; font-style:italic; margin-bottom:14px; }
.t-avatar { width:38px; height:38px; border-radius:50%; background:var(--rose-mid); display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; color:#fff; }

/* ============================================================
   STATS
   ============================================================ */
.stats-section { background:var(--rose-pale); }
.stat-box { text-align:center; padding:24px; }
.stat-number { font-size:clamp(2rem,4vw,3rem); font-weight:700; color:var(--rose); line-height:1; }
.stat-suffix { font-size:1.5rem; color:var(--rose-mid); }
.stat-name   { font-size:13px; color:var(--ink-soft); margin-top:6px; }

/* ============================================================
   CTA BANNER
   ============================================================ */
.cta-banner { background:linear-gradient(135deg, var(--rose) 0%, var(--purple-mid) 100%); padding:64px 0; text-align:center; position:relative; overflow:hidden; }
.cta-banner::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at center,rgba(255,255,255,0.08) 0%,transparent 60%); pointer-events:none; }
.cta-banner h2 { color:#fff; margin-bottom:12px; }
.cta-banner p  { color:rgba(255,255,255,0.7); margin-bottom:28px; }
.cta-buttons   { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }

/* ============================================================
   PAGE HERO (inner pages)
   ============================================================ */
.page-hero { background:var(--ink); padding:48px 0; }
.page-hero h1 { color:#fff; font-size:clamp(1.5rem,3vw,2.25rem); }
.page-hero p  { color:rgba(255,255,255,0.5); margin-top:8px; }
.breadcrumb   { padding:10px 0; font-size:12px; color:var(--ink-soft); display:flex; align-items:center; gap:6px; }
.breadcrumb a { color:var(--rose-mid); }
.breadcrumb-sep { color:var(--concrete-mid); }

/* ============================================================
   FOOTER
   ============================================================ */
#site-footer { background:var(--ink); color:rgba(255,255,255,0.55); padding:64px 0 24px; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:40px; margin-bottom:48px; }
@media(max-width:768px){ .footer-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:480px){ .footer-grid{grid-template-columns:1fr;} }
.footer-brand p { font-size:13px; color:rgba(255,255,255,0.4); margin-top:12px; line-height:1.7; }
.footer-col h4  { font-size:12px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase; color:rgba(255,255,255,0.35); margin-bottom:14px; }
.footer-links   { display:flex; flex-direction:column; gap:8px; }
.footer-links a { font-size:13px; color:rgba(255,255,255,0.5); transition:color 0.15s; }
.footer-links a:hover { color:var(--rose-light); }
.footer-bottom  { border-top:1px solid rgba(255,255,255,0.08); padding-top:24px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }
.footer-bottom p{ font-size:12px; color:rgba(255,255,255,0.25); }

/* ============================================================
   UTILITIES & ANIMATIONS
   ============================================================ */
.text-rose   { color:var(--rose-mid); }
.text-gold   { color:var(--gold-mid); }
.text-soft   { color:var(--ink-soft); }
.text-center { text-align:center; }
.fw-600 { font-weight:600; }
.mt-16 { margin-top:16px; } .mt-24 { margin-top:24px; } .mt-32 { margin-top:32px; }
.mb-16 { margin-bottom:16px; } .mb-24 { margin-bottom:24px; } .mb-32 { margin-bottom:32px; }

@keyframes fadeInUp { from{opacity:0;transform:translateY(20px);} to{opacity:1;transform:translateY(0);} }
.fade-in-up { animation:fadeInUp 0.5s ease forwards; }
.delay-1 { animation-delay:0.1s; }
.delay-2 { animation-delay:0.2s; }
.delay-3 { animation-delay:0.3s; }

@keyframes heartbeat { 0%,100%{transform:scale(1);} 50%{transform:scale(1.15);} }
.heartbeat { animation:heartbeat 1.8s ease-in-out infinite; display:inline-block; }

/* Progress bar */
.progress-bar  { height:6px; background:var(--concrete); border-radius:20px; overflow:hidden; }
.progress-fill { height:100%; background:linear-gradient(90deg,var(--rose-mid),var(--gold-mid)); border-radius:20px; transition:width 0.8s ease; }
