/*
 * pawsumes.css — Shared design system
 * Pawsumes 毛緣 · FurLifeHub
 *
 * Contents:
 *   1. Design tokens (CSS custom properties)
 *   2. Base reset
 *   3. Animations & utilities
 *   4. Navbar
 *   5. Buttons
 *   6. Badges
 *   7. Section labels
 *   8. Footer
 *   9. MDB overrides
 *
 * Page-specific styles live in:
 *   pawsumes-home.css      — homepage only
 *   pawsumes-shelters.css  — shelter directory + org profile
 *
 * Font dependencies (load in each HTML <head>):
 *   Fraunces · Playfair Display · DM Sans · Noto Serif TC
 *   via Google Fonts
 *
 * Framework dependency:
 *   MDB5 (mdb-ui-kit@7.3.2) — load before this file
 */


/* ══════════════════════════════════════════════════════════
   1. DESIGN TOKENS
   All colour, spacing, and border values as CSS variables.
   --paw- prefix used throughout to avoid collisions with
   MDB5 and Bootstrap variables.
══════════════════════════════════════════════════════════ */

:root {
  /* Palette */
  --paw-cream:      #F5F0E8;
  --paw-cream-dk:   #EDE6D8;
  --paw-cream-dkr:  #E2D9CC;
  --paw-forest:     #2C5F2D;
  --paw-forest-dk:  #1E4520;
  --paw-forest-lt:  #3A7A3B;
  --paw-sage:       #6B9E6C;
  --paw-mint:       #A8C5A0;
  --paw-coral:      #D4704A;
  --paw-coral-dk:   #B85A38;
  --paw-gold:       #C9972A;
  --paw-bark:       #4A3728;
  --paw-bark-lt:    #8B7355;
  --paw-bark-xlt:   #B8A48A;
  --paw-ink:        #1A2E1A;
  --paw-white:      #FFFFFF;

  /* Semantic */
  --paw-divider:    rgba(74,55,40,0.10);
  --paw-card-bdr:   rgba(74,55,40,0.09);

  /* Per-element custom properties (set inline on elements) */
  /* --logo-bg   — org logo background colour  */
  /* --photo-bg  — animal photo placeholder    */
}


/* ══════════════════════════════════════════════════════════
   2. BASE RESET
══════════════════════════════════════════════════════════ */

html {
  scroll-behavior: smooth;
}

body {
  font-family: 'DM Sans', sans-serif;
  background: var(--paw-cream);
  color: var(--paw-ink);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}


/* ══════════════════════════════════════════════════════════
   3. ANIMATIONS & UTILITIES
══════════════════════════════════════════════════════════ */

/* Fade-up entrance — apply .fu + .d1–.d6 to stagger */
@keyframes paw-fade-up {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}

.fu   { animation: paw-fade-up 0.72s cubic-bezier(0.22,1,0.36,1) both; }
.d1   { animation-delay: 0.06s; }
.d2   { animation-delay: 0.14s; }
.d3   { animation-delay: 0.22s; }
.d4   { animation-delay: 0.32s; }
.d5   { animation-delay: 0.44s; }
.d6   { animation-delay: 0.56s; }

/* Shimmer loading placeholder */
@keyframes paw-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* Pulsing dot — used for live/active status indicators */
@keyframes paw-pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.35; }
}

.paw-pulse-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--paw-forest);
  flex-shrink: 0;
  animation: paw-pulse 2s infinite;
}


/* ══════════════════════════════════════════════════════════
   4. NAVBAR
   Class: .paw-nav (homepage) / .paw-navbar (shelter pages)
   Both variants share identical visual treatment; two
   selector groups keep backward compatibility.
══════════════════════════════════════════════════════════ */

.paw-nav,
.paw-navbar {
  background-color: rgba(245,240,232,0.96) !important;
  backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--paw-divider);
  min-height: 68px;
  padding: 0;
}

/* Brand wordmark */
.paw-brand,
.paw-brand-en {
  font-family: 'Fraunces', serif;
  font-size: 22px;
  font-weight: 600;
  color: var(--paw-ink);
  letter-spacing: -0.04em;
  line-height: 1;
  display: block;
}

.paw-brand em,
.paw-brand-en em {
  color: var(--paw-forest);
  font-style: italic;
}

/* Chinese subtitle under brand */
.paw-brand-zh {
  font-family: 'Noto Serif TC', serif;
  font-size: 10px;
  color: var(--paw-bark-lt);
  letter-spacing: 0.18em;
  display: block;
  margin-top: 2px;
}

/* Nav links */
.paw-nav .nav-link,
.paw-navbar .nav-link {
  color: var(--paw-bark) !important;
  font-size: 13px;
  opacity: 0.65;
  transition: opacity 0.18s;
  padding: 0.5rem 0.8rem;
}

.paw-nav .nav-link:hover,
.paw-nav .nav-link.active,
.paw-navbar .nav-link:hover,
.paw-navbar .nav-link.active {
  opacity: 1;
  font-weight: 500;
}

/* Mobile collapse */
@media (max-width: 991px) {
  .paw-nav .navbar-collapse,
  .paw-navbar .navbar-collapse {
    background: rgba(245,240,232,0.98);
    padding: 12px 0 16px;
    border-top: 1px solid var(--paw-divider);
  }
}


/* ══════════════════════════════════════════════════════════
   5. BUTTONS
   Naming convention: .btn-paw-{variant}
   Variants: (primary), sm, outline, coral, ghost,
             white, white-outline, onboard
══════════════════════════════════════════════════════════ */

/* Primary — forest green, pill shape */
.btn-paw,
.btn-paw-primary {
  background: var(--paw-forest);
  color: var(--paw-cream) !important;
  border: none;
  border-radius: 100px;
  font-size: 14px;
  font-weight: 500;
  padding: 11px 28px;
  transition: all 0.22s;
  font-family: 'DM Sans', sans-serif;
  cursor: pointer;
}

.btn-paw:hover,
.btn-paw-primary:hover {
  background: var(--paw-forest-dk);
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(44,95,45,0.22) !important;
}

/* Small size modifier */
.btn-paw-sm { padding: 8px 20px; font-size: 13px; }

/* Outline — dark ink border */
.btn-paw-outline {
  background: none;
  border: 1.5px solid var(--paw-ink);
  color: var(--paw-ink) !important;
  border-radius: 100px;
  font-size: 13px;
  font-weight: 500;
  padding: 9px 22px;
  transition: all 0.2s;
  font-family: 'DM Sans', sans-serif;
  cursor: pointer;
}

.btn-paw-outline:hover {
  background: var(--paw-ink);
  color: var(--paw-cream) !important;
}

/* Coral — call-to-action / adopt */
.btn-paw-coral {
  background: var(--paw-coral);
  color: #fff !important;
  border: none;
  border-radius: 100px;
  font-size: 14px;
  font-weight: 500;
  padding: 11px 28px;
  transition: all 0.22s;
  font-family: 'DM Sans', sans-serif;
  cursor: pointer;
}

.btn-paw-coral:hover {
  background: var(--paw-coral-dk);
  transform: translateY(-1px);
}

/* Ghost — text-only underline link style */
.btn-paw-ghost {
  background: none;
  border: none;
  color: var(--paw-bark-lt);
  font-size: 13px;
  text-decoration: underline;
  text-underline-offset: 3px;
  font-family: 'DM Sans', sans-serif;
  cursor: pointer;
  padding: 0;
  transition: color 0.18s;
}

.btn-paw-ghost:hover { color: var(--paw-forest); }

/* White — for use on dark (forest green) backgrounds */
.btn-paw-white {
  background: #fff;
  color: var(--paw-forest) !important;
  border: none;
  border-radius: 100px;
  font-size: 14px;
  font-weight: 600;
  padding: 12px 28px;
  transition: all 0.22s;
  font-family: 'DM Sans', sans-serif;
  cursor: pointer;
}

.btn-paw-white:hover {
  background: var(--paw-cream);
  transform: translateY(-1px);
}

/* White outline — secondary on dark backgrounds */
.btn-paw-white-outline {
  background: none;
  border: 1.5px solid rgba(255,255,255,0.35);
  color: #fff !important;
  border-radius: 100px;
  font-size: 13px;
  font-weight: 500;
  padding: 10px 24px;
  transition: all 0.2s;
  font-family: 'DM Sans', sans-serif;
  cursor: pointer;
}

.btn-paw-white-outline:hover {
  background: rgba(255,255,255,0.14);
  border-color: rgba(255,255,255,0.6);
}

/* Onboard CTA — full-width coral, used inside dark cards */
.btn-onboard {
  width: 100%;
  background: var(--paw-coral);
  color: #fff !important;
  border: none;
  border-radius: 10px;
  padding: 12px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  font-family: 'DM Sans', sans-serif;
  transition: background 0.2s;
}

.btn-onboard:hover { background: var(--paw-coral-dk); }


/* ══════════════════════════════════════════════════════════
   6. BADGES
   Organisation type labels — used in org cards and profiles.
══════════════════════════════════════════════════════════ */

.org-badge,
.org-badge-sm {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 9px;
  border-radius: 100px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.badge-gov,
.bg-gov      { background: #EDF3ED; color: var(--paw-forest); }
.badge-npo,
.bg-npo      { background: #FFF3E0; color: #C9720A; }
.badge-rescue,
.bg-comm     { background: #F0F0FF; color: #5055A0; }
.badge-informal { background: var(--paw-cream-dk); color: var(--paw-bark-lt); }
.badge-verified,
.bg-verified { background: #EDF3ED; color: var(--paw-forest); }


/* ══════════════════════════════════════════════════════════
   7. SECTION LABELS
   Eyebrow text and section titles shared across all pages.
══════════════════════════════════════════════════════════ */

.sec-eyebrow {
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--paw-sage);
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.sec-eyebrow::before {
  content: '';
  width: 24px; height: 1px;
  background: var(--paw-sage);
}

.sec-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(24px, 3vw, 34px);
  font-weight: 700;
  color: var(--paw-ink);
  letter-spacing: -0.02em;
}

.sec-title em {
  font-style: italic;
  color: var(--paw-forest);
}


/* ══════════════════════════════════════════════════════════
   8. FOOTER
   Shared across all pages; both name variants included for
   backward compatibility during migration.
══════════════════════════════════════════════════════════ */

.paw-footer {
  border-top: 1px solid var(--paw-divider);
  background: var(--paw-cream);
  padding: 48px 0 32px;
}

/* Homepage footer logo style */
.footer-logo {
  font-family: 'Fraunces', serif;
  font-size: 20px;
  font-weight: 600;
  color: var(--paw-ink);
  letter-spacing: -0.04em;
}

.footer-logo em { color: var(--paw-forest); font-style: italic; }

/* Shelter pages footer logo style */
.paw-footer-logo {
  font-family: 'Fraunces', serif;
  font-size: 17px;
  font-weight: 600;
  color: var(--paw-ink);
  letter-spacing: -0.03em;
}

.paw-footer-logo em { color: var(--paw-forest); font-style: italic; }

.footer-tagline {
  font-size: 13px;
  color: var(--paw-bark-lt);
  margin-top: 6px;
  font-weight: 300;
  max-width: 240px;
  line-height: 1.6;
}

.footer-col-title {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--paw-bark-xlt);
  font-weight: 600;
  margin-bottom: 14px;
}

.footer-link {
  display: block;
  font-size: 13px;
  color: var(--paw-bark-lt);
  text-decoration: none;
  margin-bottom: 8px;
  opacity: 0.7;
  transition: opacity 0.18s;
}

.footer-link:hover    { opacity: 1; color: var(--paw-forest); }

.paw-footer a:not(.siteName) {
  color: var(--paw-bark-lt);
  text-decoration: none;
  font-size: 12px;
  opacity: 0.55;
  transition: opacity 0.2s;
}

.paw-footer a:hover   { opacity: 1; color: var(--paw-bark-lt); }

.footer-bottom {
  border-top: 1px solid var(--paw-divider);
  padding-top: 24px;
  margin-top: 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}

.footer-copy,
.paw-footer-copy {
  font-size: 11px;
  color: var(--paw-bark-lt);
  opacity: 0.45;
}

.footer-hub-link {
  font-size: 12px;
  color: var(--paw-bark-lt);
  text-decoration: none;
  opacity: 0.5;
  transition: opacity 0.18s;
}

.footer-hub-link:hover { opacity: 1; }


/* ══════════════════════════════════════════════════════════
   9. MDB5 OVERRIDES
══════════════════════════════════════════════════════════ */

/* Remove MDB's default card shadow — we set our own per component */
.card { box-shadow: none !important; }

/* ══════════════════════════════════════════════════════════
   4. FEATURED ANIMALS SECTION
══════════════════════════════════════════════════════════ */

.animals-section  { background: var(--paw-cream-dk); padding: 72px 0; }
.animals-header   { margin-bottom: 32px; }

.animals-scroll {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
}

@media (max-width: 1100px) { .animals-scroll { grid-template-columns: repeat(3, 1fr); } }
@media (max-width:  700px) { .animals-scroll { grid-template-columns: repeat(2, 1fr); } }

.animal-card {
  background: #fff;
  border: 1px solid var(--paw-card-bdr);
  border-radius: 18px;
  overflow: hidden;
  cursor: pointer;
  transition: all 0.22s;
}

.animal-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 40px rgba(44,95,45,0.12) !important;
}

/* Photo container */
.animal-photo {
  min-height: 140px;
  position: relative;
  overflow: hidden;
  background: linear-gradient(
    90deg,
    var(--photo-bg, var(--paw-cream-dkr)) 25%,
    var(--paw-cream-dk) 50%,
    var(--photo-bg, var(--paw-cream-dkr)) 75%
  );
  background-size: 200% 100%;
  /* animation: paw-shimmer 1.4s infinite; */
}

.animal-photo:has(img) { animation: none; background: var(--photo-bg, var(--paw-cream-dkr)); }

.animal-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  transition: transform 0.3s ease;
}

.animal-card:hover .animal-photo img { transform: scale(1.04); }

.animal-photo-fallback {
  width: 100%; height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 52px;
  background: var(--photo-bg, var(--paw-cream-dkr));
}

.animal-badge {
  position: absolute; top: 10px; left: 10px;
  background: rgba(30,69,32,0.88);
  color: #fff;
  padding: 3px 9px;
  border-radius: 6px;
  font-size: 9px; font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.animal-badge.urgent { background: rgba(180,45,30,0.88); }
.animal-badge.new    { background: rgba(44,95,45,0.88); }

.animal-org {
  position: absolute; bottom: 8px; left: 8px; right: 8px;
  background: rgba(0,0,0,0.7);
  backdrop-filter: blur(4px);
  color: rgba(255,255,255,0.8);
  font-size: 10px;
  padding: 3px 8px;
  border-radius: 6px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.animal-body  { padding: 14px 16px 16px; }
.animal-name  { font-size: 15px; font-weight: 600; color: var(--paw-ink); margin-bottom: 3px; }
.animal-meta  { font-size: 11px; color: var(--paw-bark-lt); margin-bottom: 10px; }
.animal-tags  { display: flex; gap: 4px; flex-wrap: wrap; }
.animal-tag   { background: var(--paw-cream-dk); color: var(--paw-bark); padding: 2px 8px; border-radius: 100px; font-size: 10px; }
.animal-tag.tag-g { background: #EDF3ED; color: var(--paw-forest); }

/* Hold animal cards */
.hold-card {
  background: #fff;
  border: 1.5px solid rgba(201,151,42,0.25);
  border-radius: 18px;
  overflow: hidden;
  cursor: pointer;
  transition: all 0.22s;
}

.hold-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(201,151,42,0.15) !important;
  border-color: rgba(201,151,42,0.5);
}

/* Hold photo — same pattern as .animal-photo */
.hold-photo {
  min-height: 150px;
  position: relative;
  overflow: hidden;
  background: linear-gradient(
    90deg,
    var(--photo-bg, var(--paw-cream-dkr)) 25%,
    var(--paw-cream-dk) 50%,
    var(--photo-bg, var(--paw-cream-dkr)) 75%
  );
  background-size: 200% 100%;
  /* animation: paw-shimmer 1.4s infinite; */
}

.hold-photo:has(img) { animation: none; background: var(--photo-bg, var(--paw-cream-dkr)); }

.hold-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  transition: transform 0.3s ease;
}

.hold-card:hover .hold-photo img { transform: scale(1.04); }

.hold-photo-fallback {
  width: 100%; height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 52px;
  background: var(--photo-bg, var(--paw-cream-dkr));
}

/* Gold "In hold" badge */
@keyframes paw-pulse-dot { 0%,100%{opacity:1} 50%{opacity:0.3} }

.hold-badge {
  position: absolute; top: 10px; left: 10px;
  background: rgba(201,151,42,0.92);
  color: #fff;
  padding: 3px 10px;
  border-radius: 6px;
  font-size: 9px; font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  display: flex; align-items: center; gap: 5px;
}

.hold-badge-dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: #fff;
  animation: paw-pulse-dot 1.6s infinite;
}

/* Days-left countdown pill */
.hold-countdown {
  position: absolute; bottom: 10px; right: 10px;
  background: rgba(26,46,26,0.75);
  backdrop-filter: blur(4px);
  color: #fff;
  padding: 4px 10px;
  border-radius: 100px;
  font-size: 10px; font-weight: 600;
  display: flex; align-items: center; gap: 5px;
}

.hold-countdown-num {
  font-family: 'Playfair Display', serif;
  font-size: 14px; font-weight: 700;
  color: var(--paw-gold);
}

/* Hold card body */
.hold-card-body    { padding: 14px 16px 16px; }
.hold-card-id      { font-size: 10px; color: var(--paw-bark-xlt); margin-bottom: 4px; letter-spacing: 0.06em; }
.hold-card-kind    { font-size: 12px; font-weight: 600; color: var(--paw-bark-lt); margin-bottom: 4px; display: flex; align-items: center; gap: 6px; }
.hold-card-name    { font-size: 15px; font-weight: 600; color: var(--paw-ink); margin-bottom: 6px; }
.hold-card-attrs   { display: flex; gap: 5px; flex-wrap: wrap; margin-bottom: 10px; }
.hold-attr         { background: var(--paw-cream-dk); color: var(--paw-bark); padding: 2px 8px; border-radius: 100px; font-size: 10px; }
.hold-card-shelter { font-size: 12px; color: var(--paw-bark-lt); display: flex; align-items: flex-start; gap: 5px; line-height: 1.45; margin-bottom: 10px; }
.hold-card-found   { font-size: 11px; color: var(--paw-bark-xlt); display: flex; align-items: flex-start; gap: 5px; line-height: 1.45; margin-bottom: 12px; font-style: italic; }
.hold-card-cta     { display: flex; align-items: center; justify-content: space-between; padding-top: 10px; border-top: 1px solid var(--paw-divider); }
.hold-card-tel     { font-size: 12px; color: var(--paw-forest); text-decoration: none; font-weight: 600; display: flex; align-items: center; gap: 5px; }
.hold-card-tel:hover { color: var(--paw-forest-dk); }

/* Filter bar */
.paw-filter-bar {
  background: #fff; border-bottom: 1px solid var(--paw-divider);
  padding: 12px 0; position: sticky; top: 68px; z-index: 100;
}
.paw-chip {
  display: flex; align-items: center; gap: 6px;
  background: var(--paw-cream-dk); border: 1px solid var(--paw-divider);
  color: var(--paw-bark); padding: 7px 16px;
  border-radius: 100px; font-size: 12px; cursor: pointer;
  transition: all 0.18s; white-space: nowrap; font-family: 'DM Sans',sans-serif;
}
.paw-chip.chip-on { background: var(--paw-forest); border-color: var(--paw-forest); color: #fff; }
.paw-chip-sep { width: 1px; height: 24px; background: var(--paw-divider); flex-shrink: 0; }
.paw-sort-select {
  border: 1px solid var(--paw-divider); border-radius: 10px; padding: 7px 14px;
  font-family: 'DM Sans',sans-serif; font-size: 13px; color: var(--paw-bark);
  background: var(--paw-cream-dk); cursor: pointer; outline: none;
}

/* Decorative oversized letterform */
.hero-glyph {
  position: absolute;
  right: -60px; top: -40px;
  font-family: 'Fraunces', serif;
  font-size: clamp(320px, 42vw, 580px);
  font-weight: 200;
  font-style: italic;
  color: transparent;
  -webkit-text-stroke: 1px rgba(168,197,160,0.1);
  line-height: 1;
  pointer-events: none;
  user-select: none;
  z-index: 1;
}

/* ══════════════════════════════════════════════════════════
   1. BRAND NAME EXPLAINER
   "paws + résumés" annotation in the hero eyebrow
══════════════════════════════════════════════════════════ */

.brand-explainer {
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: none;
  color: rgba(168,197,160,0.45);
  font-weight: 400;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding-left: 10px;
  border-left: 1px solid rgba(168,197,160,0.2);
}

.brand-paws,
.brand-resumes {
  color: rgba(168,197,160,0.7);
  font-weight: 600;
  font-style: italic;
}

/* ══════════════════════════════════════════════════════════
   2. HERO
══════════════════════════════════════════════════════════ */

.hero {
  min-height: 92vh;
  background: var(--paw-forest);
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-bottom: 0;
}

/* Layered radial gradients */
.hero::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 8% 90%,  rgba(201,151,42,0.12)  0%, transparent 45%),
    radial-gradient(ellipse at 92% 15%, rgba(168,197,160,0.14) 0%, transparent 50%),
    radial-gradient(ellipse at 50% 50%, rgba(44,95,45,0.4)     0%, transparent 70%);
  pointer-events: none;
}

/* Dot grid texture */
.hero::after {
  content: '';
  position: absolute; inset: 0;
  background-image: radial-gradient(circle, rgba(168,197,160,0.12) 1px, transparent 1px);
  background-size: 32px 32px;
  pointer-events: none;
}

/* Decorative oversized letterform */
.hero-content {
  position: relative;
  z-index: 2;
  padding: 100px 0 60px;
}

.hero-eyebrow {
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(168,197,160,0.7);
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}

.hero-eyebrow::before {
  content: '';
  width: 24px; height: 1px;
  background: var(--paw-mint);
  opacity: 0.6;
}

.hero-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(52px, 7vw, 96px);
  font-weight: 300;
  color: #fff;
  letter-spacing: -0.04em;
  line-height: 0.92;
  margin-bottom: 14px;
}

.hero-title em { font-style: italic; color: var(--paw-mint); }

.hero-title .hero-zh {
  display: block;
  font-family: 'Fraunces', serif;
  font-size: clamp(20px, 2.5vw, 36px);
  font-weight: 200;
  font-style: italic;
  color: rgba(168,197,160,0.5);
  margin-top: 4px;
}

.hero-sub {
  font-size: clamp(14px, 1.5vw, 17px);
  color: rgba(255,255,255,0.5);
  font-weight: 300;
  line-height: 1.75;
  max-width: 480px;
  margin-bottom: 36px;
}

.hero-sub strong { color: rgba(255,255,255,0.8); font-weight: 500; }

/* Search bar */
.hero-search {
  background: rgba(255,255,255,0.1);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 16px;
  padding: 6px 6px 6px 20px;
  display: flex;
  align-items: center;
  gap: 12px;
  max-width: 50vw;
}

.hero-search-icon { color: rgba(255,255,255,0.45); font-size: 16px; flex-shrink: 0; }

.hero-search input {
  flex: 1;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: none;
  color: #fff;
  font-family: 'DM Sans', sans-serif;
  font-size: 15px;
  padding: 8px 0;
}

.hero-search input::placeholder { color: rgba(255,255,255,0.35); }

.hero-search-divider {
  width: 1px; height: 24px;
  background: rgba(255,255,255,0.18);
  flex-shrink: 0;
}

.hero-search-location {
  display: flex;
  align-items: center;
  gap: 6px;
  color: rgba(255,255,255,0.5);
  font-size: 13px;
  white-space: nowrap;
  cursor: pointer;
  padding: 0 6px;
}

.hero-search-btn {
  background: var(--paw-coral);
  color: #fff;
  border: none;
  border-radius: 12px;
  padding: 10px 22px;
  font-size: 13px;
  font-weight: 600;
  font-family: 'DM Sans', sans-serif;
  cursor: pointer;
  transition: background 0.2s;
  white-space: nowrap;
  flex-shrink: 0;
}

.hero-search-btn:hover { background: var(--paw-coral-dk); }

/* Quick filter pills */
.hero-quick-filters { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }

.hero-qf {
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.16);
  color: rgba(255,255,255,0.65);
  padding: 6px 16px;
  border-radius: 100px;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.18s;
  font-family: 'DM Sans', sans-serif;
}

.hero-qf:hover { background: rgba(255,255,255,0.18); color: #fff; }

/* Stats row */
.hero-stats { display: flex; gap: 36px; flex-wrap: wrap; }

.hero-stat-num {
  font-family: 'Playfair Display', serif;
  font-size: 28px;
  font-weight: 700;
  color: #fff;
  line-height: 1;
}

.hero-stat-label { font-size: 11px; color: rgba(168,197,160,0.65); margin-top: 4px; }

/* Wave transition to cream */
.hero-wave {
  position: relative;
  z-index: 2;
  height: 64px;
  overflow: hidden;
  margin-top: auto;
  background: transparent;
}

.hero-wave svg { display: block; width: 100%; height: 100%; }

/* Org mini */
.paw-org-mini { background: var(--paw-cream-dk); border-radius: 14px; padding: 16px 18px; display: flex; gap: 14px; align-items: center; margin-bottom: 16px; cursor: pointer; transition: all 0.2s; }
.paw-org-mini:hover { background: var(--paw-cream-dkr); }
.paw-org-mini-logo { width: 48px; height: 48px; border-radius: 12px; background: var(--paw-forest); display: flex; align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0; color: #fff; }
.paw-org-mini-name { font-size: 14px; font-weight: 600; color: var(--paw-ink); }
.paw-org-mini-sub { font-size: 12px; color: var(--paw-bark-lt); margin-top: 2px; }

/* ══════════════════════════════════════════════════════════
   13. ASIDE / CONTACT CARD
══════════════════════════════════════════════════════════ */

.aside-card {
  background: #fff;
  border: 1px solid var(--paw-card-bdr);
  border-radius: 18px;
  overflow: hidden;
  margin-bottom: 16px;
}

.aside-card-header  { background: var(--paw-forest); padding: 18px 22px; }
.aside-card-title   { font-size: 15px; font-weight: 600; color: #fff; margin-bottom: 3px; }
.aside-card-sub     { font-size: 12px; color: var(--paw-mint); opacity: 0.8; }
.aside-card-body    { padding: 18px 22px; }
.aside-row          { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 12px; }
.aside-row:last-child { margin-bottom: 0; }
.aside-row-icon     { font-size: 16px; flex-shrink: 0; margin-top: 1px; }
.aside-row-text     { font-size: 13px; color: var(--paw-bark); line-height: 1.5; }
.aside-row-text a   { color: var(--paw-forest); text-decoration: none; }
.aside-card-cta     { padding: 0 22px 20px; }

/* ── utility ── */
.text-forest { color: var(--paw-forest) !important; }
.text-sage { color: var(--paw-sage) !important; }
.bg-cream    { background: var(--paw-cream) !important; }

/* Custom */

.form-label.select-fake-value.active
{
	color: #FFFFFF;
}

.hero-search-location #select-wrapper-searchCity .select-arrow
{
	color: #FFFFFF;
}

