/*
 * 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    */

	--cream:#F5F0E8;
	--cream-dk:#EDE6D8;
	--cream-dkr:#E2D9CC;
	--forest:#2C5F2D;
	--forest-dk:#1E4520;
	--forest-lt:#3A7A3B;
	--sage:#6B9E6C;
	--mint:#A8C5A0;
	--coral:#D4704A;
	--coral-dk:#B85A38;
	--gold:#C9972A;
	--bark:#4A3728;
	--bark-lt:#8B7355;
	--bark-xlt:#B8A48A;
	--ink:#1A2E1A;
	--white:#FFFFFF;
	--divider:rgba(74,55,40,0.1);
	--card-bdr:rgba(74,55,40,0.09);
}

/* ══════════════════════════════════════════════════════════
   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(1, 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: 50vh; */

	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);
	color:#fff;
}

.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;
}

.disclaimer-bar
{
    background: var(--paw-cream);
    border-bottom: 1px solid #F0D5BC;
    padding: 12px 0;
    font-size: 13px;
    color: #7A5530;
    text-align: center;
}

	.disclaimer-bar a
	{
		color:var(--paw-sage);
		font-weight:600;
		margin-left:.5rem;
		border-bottom:1px solid rgba(224,123,57,.3);
	}

	.disclaimer-bar a:hover
	{
		color:var(--sage);
	}

/* Custom */

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

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