/* Affidy Child — front-end styles. Loaded after GeneratePress + child style.css. */

:root {
	--affidy-color-brand: #0f6e5c;
	--affidy-color-brand-bright: #14b8a6;
	--affidy-color-coral: #ff6b4a;
	--affidy-color-coral-soft: #ffe4d9;
	--affidy-color-gold: #ffb347;
	--affidy-color-brand-soft: #e3f3ef;
	--affidy-color-ink: #14181a;
	--affidy-color-muted: #5b6670;
	--affidy-color-bg-alt: #f4f7f6;
	--affidy-radius: 6px;
	--affidy-radius-lg: 14px;
	--affidy-space-sm: 0.5rem;
	--affidy-space-md: 1rem;
	--affidy-space-lg: 2rem;

	/* Tropical Da Nang gradient system: teal (sea) -> coral/gold (sunset). */
	--affidy-gradient-brand: linear-gradient(135deg, #0f6e5c 0%, #14b8a6 100%);
	--affidy-gradient-sunset: linear-gradient(135deg, #ff6b4a 0%, #ffb347 100%);
	--affidy-gradient-cta: linear-gradient(135deg, #0f6e5c 0%, #14b8a6 55%, #ff8a5c 100%);
	--affidy-gradient-text: linear-gradient(120deg, #0f6e5c 0%, #14b8a6 45%, #ff6b4a 100%);
	--affidy-shadow-glow-brand: 0 10px 28px rgba(20, 184, 166, 0.28);
	--affidy-shadow-glow-coral: 0 12px 30px rgba(255, 107, 74, 0.32);
	--affidy-shadow-soft: 0 4px 20px rgba(15, 110, 92, 0.1);
}

/* Defensive centering fix: on a live test install the GeneratePress main
   container rendered flush-left instead of centered (observed via screenshot,
   not reproducible in this dev environment without a live WP instance).
   .grid-container is GeneratePress's standard content-width wrapper class —
   force it centered regardless of what left it uncentered. */
.grid-container {
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Scroll-reveal enhancement layer (assets/js/main.js toggles .is-visible via
   IntersectionObserver). Elements are invisible-by-default only once JS has
   added .affidy-reveal, so this degrades to "always visible" with no JS. */
.affidy-reveal {
	opacity: 0;
	transform: translateY(18px);
	transition: opacity 0.6s ease, transform 0.6s ease;
	transition-delay: calc(var(--affidy-reveal-order, 0) * 70ms);
}

.affidy-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
	.affidy-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
}

/* Trust badges (template-parts/trust-badges.php) */
.affidy-trust-badges {
	display: flex;
	flex-wrap: wrap;
	gap: var(--affidy-space-sm);
	margin: var(--affidy-space-md) 0;
}

.affidy-trust-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.35rem 0.75rem;
	background: var(--affidy-color-bg-alt);
	color: var(--affidy-color-ink);
	border-radius: 999px;
	font-size: 0.85rem;
	line-height: 1.2;
}

/* Verified Business page (page-templates/template-about-verified.php) */
.affidy-verified-subtitle {
	color: var(--affidy-color-muted);
	font-size: 0.95rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.affidy-business-summary dl {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: var(--affidy-space-sm) var(--affidy-space-lg);
	margin: var(--affidy-space-md) 0;
}

/* max-content sizes the label column to its longest unwrapped line ("Business
   Registration No.") regardless of viewport — on a narrow phone that can
   force the row wider than the screen. Stack to one column instead of
   trying to fit both side by side. */
@media (max-width: 560px) {
	.affidy-business-summary dl {
		grid-template-columns: 1fr;
		gap: 0.15rem var(--affidy-space-lg);
	}

	.affidy-business-summary dd {
		margin: 0 0 var(--affidy-space-sm);
	}
}

.affidy-business-summary dt {
	font-weight: 600;
	color: var(--affidy-color-muted);
}

.affidy-business-summary dd {
	margin: 0;
	overflow-wrap: anywhere;
}

/* Destination guide summary panel (template-parts/content-destination-guide.php) */
.affidy-destination-country {
	font-size: 0.9rem;
	font-weight: 400;
	color: var(--affidy-color-muted);
}

.affidy-destination-summary {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: var(--affidy-space-md);
	margin: var(--affidy-space-lg) 0;
	padding: var(--affidy-space-md);
	background: var(--affidy-color-bg-alt);
	border-radius: var(--affidy-radius);
}

.affidy-destination-stat {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.affidy-destination-stat-wide {
	grid-column: 1 / -1;
}

.affidy-destination-stat-label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--affidy-color-muted);
}

.affidy-destination-stat-value {
	font-weight: 600;
	color: var(--affidy-color-ink);
}

/* GeneratePress's own footer credit bar ("Built with GeneratePress") — its
   text is already emptied via the generate_copyright filter in
   inc/footer-compliance.php; this backstops the wrapping .site-info bar in
   case GeneratePress still renders visible padding/border around empty
   text (not verified against a live GeneratePress install). Our own
   affidy-site-footer below fully replaces it. */
.site-info {
	display: none;
}

/* Site-wide footer (inc/footer-compliance.php) — brand + link columns,
   modeled on the column-footer pattern used by savvynomad.io / safetywing.com. */
.affidy-site-footer {
	position: relative;
	margin-top: var(--affidy-space-lg);
	background: var(--affidy-color-ink);
	color: #b7c0c4;
}

.affidy-site-footer::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, #0f6e5c, #14b8a6, #ff8a5c, #ffb347);
}

.affidy-footer-columns {
	max-width: 1200px;
	margin: 0 auto;
	padding: var(--affidy-space-lg) var(--affidy-space-md);
	display: grid;
	grid-template-columns: 1.4fr repeat(3, 1fr);
	gap: var(--affidy-space-lg);
}

.affidy-footer-col-brand .affidy-footer-logo {
	margin: 0 0 var(--affidy-space-sm);
	font-size: 1.35rem;
	font-weight: 700;
	color: #fff;
}

.affidy-footer-col-brand .affidy-footer-tagline {
	margin: 0;
	max-width: 32ch;
	font-size: 0.9rem;
	line-height: 1.5;
	color: #9aa4a8;
}

.affidy-footer-col h3 {
	margin: 0 0 var(--affidy-space-sm);
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #fff;
}

.affidy-footer-col ul {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.affidy-footer-col a {
	color: #b7c0c4;
	font-size: 0.9rem;
	text-decoration: none;
	transition: color 0.15s ease;
}

.affidy-footer-col a:hover,
.affidy-footer-col a:focus {
	color: var(--affidy-color-gold);
	text-decoration: underline;
}

.affidy-footer-compliance {
	max-width: 1200px;
	margin: 0 auto;
	padding: var(--affidy-space-md);
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	font-size: 0.8rem;
	color: #8b969b;
	text-align: center;
}

.affidy-footer-brand-line strong {
	color: #fff;
}

.affidy-footer-legal-nav ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--affidy-space-md);
	list-style: none;
	margin: var(--affidy-space-sm) 0;
	padding: 0;
}

.affidy-footer-legal-nav a {
	color: #b7c0c4;
}

.affidy-footer-legal-nav a:hover,
.affidy-footer-legal-nav a:focus {
	color: #fff;
}

.affidy-footer-photo-credits {
	margin: 0.35rem 0 0;
	font-size: 0.62rem;
	color: #444d51;
}

.affidy-footer-photo-credits a {
	color: #55606a;
}

.affidy-footer-photo-credits a:hover,
.affidy-footer-photo-credits a:focus {
	color: #b7c0c4;
}

@media (max-width: 720px) {
	.affidy-footer-columns {
		grid-template-columns: 1fr 1fr;
	}

	.affidy-footer-col-brand {
		grid-column: 1 / -1;
	}
}

@media (max-width: 480px) {
	.affidy-footer-columns {
		grid-template-columns: 1fr;
	}
}

/* Shared gradient-CTA button treatment — applied to every primary button
   across the site (hero, Start Here steps, Deals, event page) so the
   "tropical sunset" gradient + glow + shine-sweep reads as one system. */
.affidy-home-hero-cta,
.affidy-start-links a,
.affidy-deal-cta,
.affidy-event-booking-cta {
	position: relative;
	overflow: hidden;
	background: var(--affidy-gradient-cta);
	background-size: 200% 200%;
	background-position: 0% 50%;
	color: #fff;
	border: none;
	box-shadow: var(--affidy-shadow-glow-brand);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background-position 0.5s ease;
}

.affidy-home-hero-cta::after,
.affidy-start-links a::after,
.affidy-deal-cta::after,
.affidy-event-booking-cta::after {
	content: '';
	position: absolute;
	top: 0;
	left: -60%;
	width: 40%;
	height: 100%;
	background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.55), transparent);
	transform: skewX(-20deg);
	transition: left 0.6s ease;
}

.affidy-home-hero-cta:hover,
.affidy-start-links a:hover,
.affidy-deal-cta:hover,
.affidy-event-booking-cta:hover,
.affidy-home-hero-cta:focus-visible,
.affidy-start-links a:focus-visible,
.affidy-deal-cta:focus-visible,
.affidy-event-booking-cta:focus-visible {
	transform: translateY(-2px) scale(1.03);
	box-shadow: var(--affidy-shadow-glow-coral);
	background-position: 100% 50%;
}

.affidy-home-hero-cta:hover::after,
.affidy-start-links a:hover::after,
.affidy-deal-cta:hover::after,
.affidy-event-booking-cta:hover::after,
.affidy-home-hero-cta:focus-visible::after,
.affidy-start-links a:focus-visible::after,
.affidy-deal-cta:focus-visible::after,
.affidy-event-booking-cta:focus-visible::after {
	left: 130%;
}

@media (prefers-reduced-motion: reduce) {
	.affidy-home-hero-cta,
	.affidy-start-links a,
	.affidy-deal-cta,
	.affidy-event-booking-cta {
		transition: none;
	}

	.affidy-home-hero-cta::after,
	.affidy-start-links a::after,
	.affidy-deal-cta::after,
	.affidy-event-booking-cta::after {
		display: none;
	}
}

/* Home (front-page.php) — warm, trust-first layout modeled on
   safetywing.com's homepage pattern: hero -> browse-by-need -> why-us ->
   secondary resources. Tropical Da Nang palette: animated teal/coral/gold
   glow blobs behind the hero, gradient-text brand name, colorful icon
   circles that cycle through the palette per card. */
.affidy-home-hero {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 70vh;
	text-align: center;
	padding: var(--affidy-space-lg) var(--affidy-space-md) calc(var(--affidy-space-lg) * 1.25);
	border-radius: 0 0 var(--affidy-radius-lg) var(--affidy-radius-lg);
	background: var(--affidy-color-ink);
}

.affidy-home-hero-media {
	position: absolute;
	inset: 0;
}

.affidy-home-hero-media picture,
.affidy-archive-hero-media picture {
	display: contents;
}

.affidy-home-hero-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	animation: affidyHeroZoom 22s ease-in-out infinite alternate;
}

@keyframes affidyHeroZoom {
	0% {
		transform: scale(1);
	}
	100% {
		transform: scale(1.1);
	}
}

.affidy-home-hero-scrim {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 15% 20%, rgba(255, 107, 74, 0.4), transparent 45%),
		radial-gradient(circle at 85% 8%, rgba(255, 179, 71, 0.35), transparent 50%),
		linear-gradient(190deg, rgba(6, 34, 28, 0.35) 0%, rgba(6, 34, 28, 0.32) 45%, rgba(6, 34, 28, 0.78) 100%);
	background-size: 160% 160%;
	animation: affidyHeroDrift 16s ease-in-out infinite alternate;
}

@keyframes affidyHeroDrift {
	0% {
		background-position: 0% 0%;
	}
	100% {
		background-position: 100% 40%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.affidy-home-hero-media img,
	.affidy-home-hero-scrim {
		animation: none;
	}
}

.affidy-home-hero-content {
	position: relative;
	z-index: 1;
	max-width: 640px;
}

.affidy-home-brand {
	font-size: 2.75rem;
	margin-bottom: var(--affidy-space-sm);
	color: #fff;
	text-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
}

.affidy-home-tagline {
	font-size: 1.35rem;
	font-weight: 600;
	color: var(--affidy-color-gold);
	text-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
	margin: 0 0 var(--affidy-space-sm);
}

.affidy-home-hero-content .affidy-home-subtext {
	color: rgba(255, 255, 255, 0.92);
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.3);
}

.affidy-home-subtext {
	max-width: 46ch;
	margin: 0 auto var(--affidy-space-md);
	color: var(--affidy-color-muted);
	line-height: 1.6;
}

.affidy-home-hero-cta {
	display: inline-block;
	margin-bottom: var(--affidy-space-lg);
	padding: 0.85rem 2rem;
	border-radius: 999px;
	font-weight: 600;
	text-decoration: none;
	font-size: 1.05rem;
}

/* Mobile: 70vh/45vh (set for desktop above) makes visitors scroll further
   than necessary just to reach "Problems Solved" — shrink the hero so the
   value prop shows sooner. dvh tracks the actually-visible viewport on
   modern mobile browsers (excludes the address bar); vh, listed first so it
   still works as the fallback, approximates it on older browsers. */
@media (max-width: 600px) {
	.affidy-home-hero {
		min-height: 56vh;
		min-height: 56dvh;
		padding: var(--affidy-space-lg) var(--affidy-space-sm);
	}

	.affidy-home-brand {
		font-size: 2rem;
	}

	.affidy-home-tagline {
		font-size: 1.1rem;
	}

	.affidy-archive-hero {
		min-height: 34vh;
		min-height: 34dvh;
	}
}

.affidy-home-solved,
.affidy-home-browse,
.affidy-home-why,
.affidy-home-entries {
	margin: var(--affidy-space-lg) 0;
}

.affidy-home-solved h2,
.affidy-home-browse h2,
.affidy-home-why h2,
.affidy-home-entries h2 {
	text-align: center;
	margin-bottom: var(--affidy-space-sm);
}

.affidy-home-section-subtext {
	max-width: 56ch;
	margin: 0 auto var(--affidy-space-lg);
	text-align: center;
	color: var(--affidy-color-muted);
	line-height: 1.6;
}

.affidy-home-solved {
	padding: var(--affidy-space-lg) var(--affidy-space-md);
	background: var(--affidy-color-bg-alt);
	border-radius: var(--affidy-radius-lg);
}

.affidy-home-solved-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: var(--affidy-space-md);
	max-width: 1000px;
	margin: 0 auto;
}

.affidy-home-solved-card {
	overflow: hidden;
	background: #fff;
	border-radius: var(--affidy-radius-lg);
	text-align: center;
	box-shadow: var(--affidy-shadow-soft);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.affidy-home-solved-card:hover,
.affidy-home-solved-card:focus-within {
	transform: translateY(-4px);
	box-shadow: var(--affidy-shadow-glow-coral);
}

.affidy-home-solved-card-image {
	overflow: hidden;
}

.affidy-home-solved-card-image img {
	display: block;
	width: 100%;
	height: 140px;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.affidy-home-solved-card:hover .affidy-home-solved-card-image img,
.affidy-home-solved-card:focus-within .affidy-home-solved-card-image img {
	transform: scale(1.08);
}

.affidy-home-solved-card-body {
	padding: var(--affidy-space-lg) var(--affidy-space-md);
}

.affidy-home-solved-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	margin-bottom: var(--affidy-space-sm);
	border-radius: 999px;
	font-size: 1.5rem;
	background: var(--affidy-gradient-brand);
}

.affidy-home-solved-card:nth-child(3n+2) .affidy-home-solved-icon {
	background: var(--affidy-gradient-sunset);
}

.affidy-home-solved-card:nth-child(3n+3) .affidy-home-solved-icon {
	background: linear-gradient(135deg, #14b8a6 0%, #ffb347 100%);
}

.affidy-home-solved-card h3 {
	margin: 0 0 0.35rem;
	color: var(--affidy-color-brand);
}

.affidy-home-solved-card p {
	margin: 0;
	font-size: 0.9rem;
	color: var(--affidy-color-muted);
}

.affidy-home-browse-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: var(--affidy-space-md);
}

.affidy-home-browse-card {
	display: block;
	overflow: hidden;
	background: #fff;
	border-radius: var(--affidy-radius-lg);
	color: inherit;
	text-decoration: none;
	text-align: center;
	box-shadow: var(--affidy-shadow-soft);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.affidy-home-browse-card:hover,
.affidy-home-browse-card:focus {
	transform: translateY(-4px) scale(1.01);
	box-shadow: var(--affidy-shadow-glow-brand);
}

.affidy-home-browse-card-image {
	overflow: hidden;
}

.affidy-home-browse-card-image img {
	display: block;
	width: 100%;
	height: 170px;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.affidy-home-browse-card:hover .affidy-home-browse-card-image img,
.affidy-home-browse-card:focus .affidy-home-browse-card-image img {
	transform: scale(1.08);
}

.affidy-home-browse-card-body {
	padding: var(--affidy-space-lg) var(--affidy-space-md);
}

.affidy-home-browse-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	margin-bottom: var(--affidy-space-sm);
	border-radius: 999px;
	font-size: 1.5rem;
	background: var(--affidy-gradient-brand);
}

.affidy-home-browse-card:nth-child(3n+2) .affidy-home-browse-icon {
	background: var(--affidy-gradient-sunset);
}

.affidy-home-browse-card:nth-child(3n+3) .affidy-home-browse-icon {
	background: linear-gradient(135deg, #14b8a6 0%, #ffb347 100%);
}

.affidy-home-browse-card h3 {
	margin: 0 0 0.35rem;
}

.affidy-home-browse-card p {
	margin: 0;
	font-size: 0.9rem;
	color: var(--affidy-color-muted);
}

.affidy-home-why {
	position: relative;
	overflow: hidden;
	padding: calc(var(--affidy-space-lg) * 1.5) var(--affidy-space-md);
	border-radius: var(--affidy-radius-lg);
}

.affidy-home-why-media {
	position: absolute;
	inset: 0;
}

.affidy-home-why-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.affidy-home-why-scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(160deg, rgba(15, 110, 92, 0.9) 0%, rgba(15, 110, 92, 0.78) 45%, rgba(20, 24, 26, 0.85) 100%);
}

.affidy-home-why h2,
.affidy-home-why-grid {
	position: relative;
	z-index: 1;
}

.affidy-home-why h2 {
	color: #fff;
}

.affidy-home-why-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: var(--affidy-space-lg);
}

.affidy-home-why-item {
	text-align: center;
	padding: var(--affidy-space-md) var(--affidy-space-sm) 0;
	position: relative;
}

.affidy-home-why-item::before {
	content: '';
	display: block;
	width: 2.5rem;
	height: 3px;
	margin: 0 auto var(--affidy-space-sm);
	border-radius: 999px;
	background: var(--affidy-gradient-sunset);
}

.affidy-home-why-item h3 {
	margin: 0 0 0.35rem;
	color: #fff;
}

.affidy-home-why-item p {
	margin: 0;
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.9rem;
}

.affidy-home-entries-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: var(--affidy-space-md);
	max-width: 640px;
	margin: 0 auto;
}

.affidy-home-entry-card {
	display: block;
	padding: var(--affidy-space-lg);
	background: var(--affidy-color-bg-alt);
	border-radius: var(--affidy-radius);
	color: inherit;
	text-decoration: none;
	border-left: 3px solid transparent;
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}

.affidy-home-entry-card:hover,
.affidy-home-entry-card:focus {
	background: #fff;
	border-left-color: var(--affidy-color-coral);
	box-shadow: var(--affidy-shadow-soft);
	transform: translateX(3px);
}

.affidy-home-entry-card h3 {
	margin-top: 0;
}

/* Destination Guide archive (archive-destination_guide.php) — "pick a city" grid */
.affidy-archive-hero {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 45vh;
	text-align: center;
	padding: var(--affidy-space-lg) var(--affidy-space-md);
	border-radius: 0 0 var(--affidy-radius-lg) var(--affidy-radius-lg);
	background: var(--affidy-color-ink);
}

.affidy-archive-hero-media {
	position: absolute;
	inset: 0;
}

.affidy-archive-hero-media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	animation: affidyHeroZoom 22s ease-in-out infinite alternate;
}

.affidy-archive-hero-scrim {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 15% 20%, rgba(255, 107, 74, 0.35), transparent 45%),
		radial-gradient(circle at 85% 10%, rgba(255, 179, 71, 0.3), transparent 50%),
		linear-gradient(190deg, rgba(6, 34, 28, 0.4) 0%, rgba(6, 34, 28, 0.35) 45%, rgba(6, 34, 28, 0.8) 100%);
	background-size: 160% 160%;
	animation: affidyHeroDrift 16s ease-in-out infinite alternate;
}

@media (prefers-reduced-motion: reduce) {
	.affidy-archive-hero-media img,
	.affidy-archive-hero-scrim {
		animation: none;
	}
}

.affidy-archive-hero-content {
	position: relative;
	z-index: 1;
	max-width: 640px;
}

.affidy-archive-hero-content h1 {
	color: #fff;
	text-shadow: 0 4px 24px rgba(0, 0, 0, 0.35);
}

.affidy-archive-hero-content .affidy-home-subtext {
	color: rgba(255, 255, 255, 0.92);
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.3);
}

.affidy-archive-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: var(--affidy-space-md);
	margin: var(--affidy-space-lg) 0;
}

.affidy-archive-card {
	display: block;
	background: #fff;
	border-radius: var(--affidy-radius-lg);
	color: inherit;
	text-decoration: none;
	overflow: hidden;
	box-shadow: var(--affidy-shadow-soft);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.affidy-archive-card:hover,
.affidy-archive-card:focus {
	transform: translateY(-4px);
	box-shadow: var(--affidy-shadow-glow-coral);
}

.affidy-archive-card-image {
	overflow: hidden;
}

.affidy-archive-card-image img {
	display: block;
	width: 100%;
	height: 180px;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.affidy-archive-card:hover .affidy-archive-card-image img,
.affidy-archive-card:focus .affidy-archive-card-image img {
	transform: scale(1.06);
}

.affidy-archive-card-body {
	padding: var(--affidy-space-md);
}

.affidy-archive-card-body h2 {
	margin: 0 0 0.35rem;
	font-size: 1.2rem;
}

.affidy-archive-card-body p {
	margin: 0 0 var(--affidy-space-sm);
	color: var(--affidy-color-muted);
	font-size: 0.9rem;
}

.affidy-archive-card-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.affidy-archive-empty {
	text-align: center;
	padding: var(--affidy-space-lg);
	color: var(--affidy-color-muted);
}

.affidy-archive-crosslink {
	text-align: center;
	padding-top: var(--affidy-space-md);
	border-top: 1px solid #e2e8e6;
}

/* Blog (page-templates/template-blog.php) — reuses .affidy-archive-hero for
   its header band; card grid mirrors .affidy-archive-card's visual language. */
.affidy-blog-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: var(--affidy-space-md);
	margin: var(--affidy-space-lg) 0;
}

.affidy-blog-card {
	display: block;
	background: #fff;
	border-radius: var(--affidy-radius-lg);
	color: inherit;
	text-decoration: none;
	overflow: hidden;
	box-shadow: var(--affidy-shadow-soft);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.affidy-blog-card:hover,
.affidy-blog-card:focus {
	transform: translateY(-4px);
	box-shadow: var(--affidy-shadow-glow-coral);
}

.affidy-blog-card-image {
	overflow: hidden;
}

.affidy-blog-card-image img {
	display: block;
	width: 100%;
	height: 190px;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.affidy-blog-card:hover .affidy-blog-card-image img,
.affidy-blog-card:focus .affidy-blog-card-image img {
	transform: scale(1.08);
}

.affidy-blog-card-body {
	padding: var(--affidy-space-md);
}

.affidy-blog-card-date {
	display: block;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--affidy-color-muted);
	margin-bottom: 0.35rem;
}

.affidy-blog-card-body h2 {
	margin: 0 0 0.5rem;
	font-size: 1.15rem;
	color: var(--affidy-color-ink);
}

.affidy-blog-card-body p {
	margin: 0 0 var(--affidy-space-sm);
	color: var(--affidy-color-muted);
	font-size: 0.9rem;
	line-height: 1.5;
}

.affidy-blog-card-readmore {
	font-weight: 600;
	color: var(--affidy-color-brand-bright);
}

.affidy-blog-pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	margin: var(--affidy-space-lg) 0;
}

.affidy-blog-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.25rem;
	height: 2.25rem;
	padding: 0 0.6rem;
	border-radius: var(--affidy-radius);
	background: var(--affidy-color-bg-alt);
	color: var(--affidy-color-ink);
	text-decoration: none;
	font-weight: 600;
}

.affidy-blog-pagination .page-numbers.current {
	background: var(--affidy-gradient-brand);
	color: #fff;
}

.affidy-blog-pagination .page-numbers:hover:not(.current) {
	background: var(--affidy-color-brand-soft);
}

/* Single blog post (falls back to GeneratePress's own single.php — this
   theme has no custom single.php, see project decision in the handoff notes
   about keeping scope to the templates that need full custom layout).
   Polishes typography/links so a post reads consistently with the rest of
   the site instead of GeneratePress's unstyled defaults. */
.entry-content h2 {
	color: var(--affidy-color-brand);
	margin-top: var(--affidy-space-lg);
}

.entry-content a {
	color: var(--affidy-color-brand-bright);
	text-decoration-thickness: 1.5px;
}

.entry-content a:hover {
	color: var(--affidy-color-coral);
}

.entry-content img {
	max-width: 100%;
	height: auto;
	border-radius: var(--affidy-radius-lg);
	margin: var(--affidy-space-md) 0;
	display: block;
	box-shadow: var(--affidy-shadow-soft);
}

.entry-content figcaption {
	font-size: 0.8rem;
	color: var(--affidy-color-muted);
	text-align: center;
	margin-top: -0.5rem;
	margin-bottom: var(--affidy-space-md);
}

.affidy-article-kit-embed {
	margin-top: var(--affidy-space-lg);
	padding: var(--affidy-space-lg);
	background: var(--affidy-color-bg-alt);
	border-radius: var(--affidy-radius-lg);
	border-left: 3px solid var(--affidy-color-brand-bright);
}

/* Start Here (page-templates/template-start-here.php) */
.affidy-start-hero {
	text-align: center;
	padding: var(--affidy-space-lg) 0;
}

.affidy-start-steps-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: var(--affidy-space-md);
	list-style: none;
	margin: var(--affidy-space-md) 0;
	padding: 0;
	counter-reset: affidy-step;
}

.affidy-start-steps-list li {
	padding: var(--affidy-space-md);
	background: var(--affidy-color-bg-alt);
	border-radius: var(--affidy-radius);
	border-top: 3px solid var(--affidy-color-brand-bright);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.affidy-start-steps-list li:hover {
	transform: translateY(-3px);
	box-shadow: var(--affidy-shadow-soft);
}

.affidy-start-steps-list li:nth-child(3n+2) {
	border-top-color: var(--affidy-color-coral);
}

.affidy-start-steps-list li:nth-child(3n+3) {
	border-top-color: var(--affidy-color-gold);
}

.affidy-start-links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--affidy-space-md);
	margin: var(--affidy-space-lg) 0;
}

.affidy-start-links a {
	padding: 0.6rem 1.2rem;
	border-radius: var(--affidy-radius);
	text-decoration: none;
}

/* Deals (page-templates/template-deals.php) */
.affidy-deals-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: var(--affidy-space-md);
	margin: var(--affidy-space-lg) 0;
}

.affidy-deal-card {
	padding: var(--affidy-space-md);
	background: var(--affidy-color-bg-alt);
	border-radius: var(--affidy-radius);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.affidy-deal-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--affidy-shadow-soft);
}

.affidy-deal-category {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--affidy-color-muted);
}

.affidy-deal-cta {
	display: inline-block;
	margin-top: var(--affidy-space-sm);
	padding: 0.5rem 1rem;
	border-radius: var(--affidy-radius);
	text-decoration: none;
}

/* Affiliate World Dubai event page (page-templates/template-event-dubai.php) */
.affidy-event-booking-cta {
	display: inline-block;
	padding: 0.75rem 1.5rem;
	border-radius: var(--affidy-radius);
	text-decoration: none;
	font-weight: 600;
}

.affidy-event-credibility,
.affidy-event-booking,
.affidy-event-kit-embed {
	margin: var(--affidy-space-lg) 0;
}

/* Sample rental listings (inc/sample-listings.php) */
.affidy-listing-quickspecs {
	font-size: 1.1rem;
	font-weight: 600;
	padding: 0.75rem 1rem;
	background: var(--affidy-color-bg-alt);
	border-radius: var(--affidy-radius);
	border-left: 3px solid var(--affidy-color-brand-bright);
	display: inline-block;
}

.affidy-listing-specs {
	width: 100%;
	border-collapse: collapse;
	margin: var(--affidy-space-md) 0;
}

.affidy-listing-specs th,
.affidy-listing-specs td {
	text-align: left;
	padding: 0.5rem;
	border-bottom: 1px solid #e2e8e6;
}

.affidy-listing-specs th {
	width: 40%;
	color: var(--affidy-color-muted);
	font-weight: 600;
}

.affidy-listing-kit-embed {
	margin-top: var(--affidy-space-lg);
	padding-top: var(--affidy-space-md);
	border-top: 2px solid var(--affidy-color-brand);
}

/* Safety page (page-templates/template-safety.php) */
.affidy-safety-section {
	margin: var(--affidy-space-lg) 0;
	padding: var(--affidy-space-md);
	background: var(--affidy-color-bg-alt);
	border-radius: var(--affidy-radius);
	border-left: 3px solid var(--affidy-color-brand-bright);
}

.affidy-safety-section h2 {
	margin-top: 0;
}

.affidy-safety-cta {
	text-align: center;
	margin: var(--affidy-space-lg) 0;
}

/* Eradicate Verified Business and Safety from Header Navigation (Deals PHẢI hiện trên menu) */
.main-navigation li:has(a[href*="/verified-business/"]),
.main-navigation li:has(a[href*="/safety/"]),
#site-navigation li:has(a[href*="/verified-business/"]),
#site-navigation li:has(a[href*="/safety/"]),
.main-nav li:has(a[href*="/verified-business/"]),
.main-nav li:has(a[href*="/safety/"]),
.main-navigation a[href*="/verified-business/"],
.main-navigation a[href*="/safety/"],
#site-navigation a[href*="/verified-business/"],
#site-navigation a[href*="/safety/"],
.main-nav a[href*="/verified-business/"],
.main-nav a[href*="/safety/"] {
	display: none !important;
}


/* ============================================================
   MOBILE HEADER FIX — GeneratePress default header is oversized
   on small screens (100px tall from generous desktop padding).
   ============================================================ */
@media (max-width: 768px) {
  .site-header {
    min-height: 0 !important;
  }
  .inside-header {
    padding: 6px 14px !important;
    min-height: 0 !important;
  }
  .main-title {
    font-size: 17px !important;
    line-height: 1.2 !important;
  }
  .site-logo {
    max-height: 28px !important;
  }
  .menu-toggle {
    padding: 0 6px !important;
    height: 36px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  .menu-toggle .mobile-menu-control-wrapper,
  .menu-toggle svg,
  .menu-toggle .gp-icon {
    width: 18px !important;
    height: 18px !important;
  }
}

/* ============================================================
   RESPONSIVE HEADING SCALE — prevents oversized headings from
   wrapping awkwardly on mobile (e.g. "The Problems Most Nomads
   & Expats Run Into" was rendering at a fixed 35px on phones).
   ============================================================ */
h1, .entry-title, .page-title {
  font-size: clamp(1.75rem, 1.1rem + 3vw, 3rem);
  line-height: 1.15;
}

h2 {
  font-size: clamp(1.4rem, 0.95rem + 2.2vw, 2.1rem);
  line-height: 1.25;
}

h3 {
  font-size: clamp(1.15rem, 0.95rem + 1vw, 1.4rem);
  line-height: 1.3;
}

/* ============================================================
   HOMEPAGE DARK-THEME SYNC — matches the visual language of
   /rentals/ (dark background, emerald/pink/blue accent trio,
   glassy dark cards) while keeping all homepage copy unchanged.
   Scoped to body.home so no other page is affected.
   ============================================================ */
body.home {
  background: #121418;
}

body.home .affidy-home-section-subtext,
body.home .affidy-home-solved-card p,
body.home .affidy-home-browse-card p,
body.home .affidy-home-entry-card p {
  color: #94a3b8 !important;
}

body.home .affidy-home-solved h2,
body.home .affidy-home-browse h2,
body.home .affidy-home-entries h2,
body.home .affidy-home-entry-card h3 {
  color: #f1f5f9 !important;
}

body.home .affidy-home-solved {
  background: #171a20;
}

body.home .affidy-home-solved-card,
body.home .affidy-home-browse-card {
  background: #1a1d24;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: none;
}

body.home .affidy-home-solved-card:hover,
body.home .affidy-home-solved-card:focus-within,
body.home .affidy-home-browse-card:hover,
body.home .affidy-home-browse-card:focus {
  border-color: rgba(16, 185, 129, 0.4);
  box-shadow: 0 10px 28px rgba(16, 185, 129, 0.18);
}

body.home .affidy-home-solved-card h3,
body.home .affidy-home-browse-card h3 {
  color: #34d399 !important;
}

body.home .affidy-home-solved-icon,
body.home .affidy-home-browse-icon {
  background: linear-gradient(135deg, #10b981 0%, #34d399 100%);
}

body.home .affidy-home-solved-card:nth-child(3n+2) .affidy-home-solved-icon,
body.home .affidy-home-browse-card:nth-child(3n+2) .affidy-home-browse-icon {
  background: linear-gradient(135deg, #ff385c 0%, #fb7185 100%);
}

body.home .affidy-home-solved-card:nth-child(3n+3) .affidy-home-solved-icon,
body.home .affidy-home-browse-card:nth-child(3n+3) .affidy-home-browse-icon {
  background: linear-gradient(135deg, #38bdf8 0%, #818cf8 100%);
}

body.home .affidy-home-entry-card {
  background: #1a1d24;
  border-left: 3px solid transparent;
}

body.home .affidy-home-entry-card:hover,
body.home .affidy-home-entry-card:focus {
  background: #20242c;
  border-left-color: #ff385c;
  box-shadow: none;
}

body.home .affidy-home-hero-cta {
  background: linear-gradient(135deg, #0f6e5c 0%, #10b981 55%, #38bdf8 100%);
  box-shadow: 0 10px 28px rgba(16, 185, 129, 0.3);
}

body.home .affidy-home-hero-cta:hover,
body.home .affidy-home-hero-cta:focus-visible {
  box-shadow: 0 12px 30px rgba(56, 189, 248, 0.35);
}

body.home .site-header,
body.home .main-navigation,
body.home .main-navigation ul {
  background: #121418 !important;
}

body.home .main-title,
body.home .main-title a {
  color: #f1f5f9 !important;
}

body.home .main-navigation a,
body.home .menu-toggle,
body.home .mobile-bar-items a {
  color: #e2e8f0 !important;
}

body.home .main-navigation a:hover,
body.home .main-navigation a:focus {
  color: #34d399 !important;
}

body.home .menu-toggle {
  background: transparent !important;
}

/* Chỉ cho MENU THẢ XUỐNG trên điện thoại: căn giữa + mỗi mục full chiều ngang.
   (Trước đây áp dụng cả máy tính => menu ngang bị xếp dọc từng dòng, header cao 280px) */
@media (max-width: 768px) {
  body.home .main-navigation ul,
  body.home .main-navigation li,
  body.home .main-navigation a {
    text-align: center !important;
  }

  body.home .main-navigation .menu-item,
  body.home .main-navigation li {
    width: 100% !important;
  }
}

/* Footer: tighten up excess whitespace */
body.home .affidy-footer-columns,
.affidy-footer-columns {
  padding: 1.5rem var(--affidy-space-md) 1rem !important;
  gap: 1.5rem !important;
}

.affidy-footer-col ul {
  gap: 0.45rem !important;
}

.affidy-footer-compliance {
  padding: 0.75rem 1rem !important;
}

.affidy-footer-legal-nav ul {
  margin: 0.35rem 0 !important;
}

/* ============================================================
   BLOG SEO/GEO (v129): khung tóm tắt, bảng số liệu, ghi chú nguồn
   ============================================================ */
.single-post .entry-content .aha-key-takeaways {
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  border-left: 5px solid #10b981;
  border-radius: 12px;
  padding: 16px 20px;
  margin: 0 0 1.6em;
}
.single-post .entry-content .aha-key-takeaways p { margin: 0 0 8px; color: #065f46; }
.single-post .entry-content .aha-key-takeaways ul { margin: 0 0 0 1.1em; }
.single-post .entry-content .aha-key-takeaways li { margin: 0 0 6px; color: #064e3b; }
.single-post .entry-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 1em 0 1.6em;
  font-size: 15px;
  display: block;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.single-post .entry-content th,
.single-post .entry-content td {
  border: 1px solid #e5e7eb;
  padding: 9px 12px;
  text-align: left;
  vertical-align: top;
  min-width: 110px;
}
.single-post .entry-content thead th { background: #f3f4f6; font-weight: 700; }
.single-post .entry-content tbody tr:nth-child(even) td { background: #fafafa; }
.single-post .entry-content .aha-data-note {
  font-size: 14px;
  color: #6b7280;
  border-top: 1px solid #e5e7eb;
  padding-top: 12px;
  margin-top: 2em;
}
.single-post .entry-content h3 { margin-top: 1.4em; }

/* Bảng trong bài blog trên điện thoại: bỏ độ rộng tối thiểu 110px mỗi ô để bảng 4–6 cột vừa màn hình */
@media (max-width: 600px) {
	.single-post .entry-content table { font-size: 13px; line-height: 1.35; }
	.single-post .entry-content th, .single-post .entry-content td { min-width: 0 !important; padding: 8px 6px !important; }
}
