/**
 * Premium Partner Page Styles
 * BEM naming convention, responsive, accessible
 */

/* ==============================================
   CSS VARIABLES
   ============================================== */
:root {
	--pp-color-primary: #3B82F6;
	--pp-color-primary-hover: #2563EB;
	--pp-color-primary-dark: #1E3A8A;
	--pp-color-bg: #F8FAFF;
	--pp-color-bg-alt: #FFFFFF;
	--pp-color-text: #1E293B;
	--pp-color-text-muted: #64748B;
	--pp-color-border: #E2E8F0;
	--pp-color-success: #28a745;
	--pp-color-error: #dc3545;
	--pp-shadow-soft: 0 4px 12px rgba(30, 41, 59, 0.06);
	--pp-shadow-card: 0 6px 18px rgba(30, 41, 59, 0.08);
	--pp-radius: 12px;
	--premium-primary: #1366d6;
	--premium-accent: #00bcd4;
	--premium-bg: #f6f9ff;
	--premium-surface: #ffffff;
	--premium-text: #0f1724;
	--premium-muted: #6b7280;
	--premium-border: #e6eefc;
	--premium-radius: 12px;
	--premium-radius-sm: 8px;
	--premium-shadow-sm: 0 6px 20px rgba(15,23,36,0.06);
}

/* ==============================================
   BASE PAGE STYLING
   ============================================== */
.premium-partner-page {
	font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
	color: var(--pp-color-text);
	background: var(--pp-color-bg);
	line-height: 1.6;
	color: var(--premium-text);
	background: var(--premium-bg);
}

/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

/* ==============================================
   HERO SECTION
   ============================================== */
.hero-premium {
	padding: 80px 20px;
	background: linear-gradient(180deg, var(--pp-color-bg-alt) 0%, var(--pp-color-bg) 100%);
	background: linear-gradient(180deg, rgba(246,249,255,1) 0%, rgba(255,255,255,1) 100%);
}

.hero-premium__inner {
	max-width: 1200px;
	margin: 0 auto;
}

.hero-premium__container {
	display: flex;
	flex-direction: column;
	gap: 40px;
	align-items: center;
}

.hero-premium__text-column {
	width: 100%;
	text-align: left;
}

.hero-premium__title {
	color: var(--pp-color-primary);
	font-size: clamp(1.75rem, 2.6vw, 3rem);
	line-height: 1.2;
	font-weight: 700;
	margin: 0 0 24px;
	/* text block control */
	max-width: 70ch;
	word-break: keep-all;
	padding-left: 2rem; /* keep distance from left edge */
	/* optical left shift on desktop: translate left by ~12% */
	transform: translateX(-12%);
	/* visual balance: allow responsive centering override on small viewports */
}

.hero-premium__text {
	font-size: 1.125rem;
	color: var(--pp-color-text);
	margin: 0;
	line-height: 1.8;
	text-align: justify;
}

.hero-premium__image-column {
	width: 100%;
	display: flex;
	justify-content: center;
}

.hero-premium__image {
	width: 100%;
	max-width: 500px;
	height: auto;
	border-radius: var(--pp-radius);
	box-shadow: var(--pp-shadow-card);
}

.hero-premium__placeholder {
	padding: 60px;
	background: var(--pp-color-bg-alt);
	border: 2px dashed var(--pp-color-border);
	border-radius: var(--pp-radius);
	text-align: center;
	color: var(--pp-color-text-muted);
}

.hero-premium__placeholder i {
	font-size: 3rem;
	margin-bottom: 16px;
	display: block;
}

.hero-premium__placeholder-text {
	margin: 0;
	font-size: 1rem;
}

/* Desktop: Two-column layout */
@media (min-width: 768px) {
	.hero-premium__container {
		flex-direction: row;
		align-items: center;
	}
	
	.hero-premium__text-column {
		width: 50%;
	}
	
	.hero-premium__image-column {
		width: 48%;
	}
	
	.hero-premium__title {
		font-size: clamp(2.5rem, 3.2vw, 3.5rem);
	}
}

/* Mobile: center title and remove left shift */
@media (max-width: 767px) {
	.hero-premium__title {
		transform: none !important;
		padding-left: 0.75rem;
		text-align: center;
		margin-bottom: 1.5rem;
	}
}

/* Brand name emphasis */
.hero-premium__title .brand-name {
	color: var(--pp-color-primary);
	font-weight: 800;
	-webkit-font-smoothing: antialiased;
}

/* Ensure subtitle and CTAs have consistent rhythm */
.hero-premium__text p, .hero-premium__subtitle {
	margin-bottom: 1.5rem;
}

/* ==============================================
   BENEFITS SECTION
   ============================================== */
.premium-benefits {
	padding: 80px 20px;
	background: var(--pp-color-bg-alt);
}

.premium-benefits__inner {
	max-width: 1200px;
	margin: 0 auto;
	text-align: center;
}

.premium-benefits__title {
	color: var(--pp-color-primary);
	font-size: 2rem;
	font-weight: 700;
	margin: 0 0 16px;
}

.premium-benefits__subtitle {
	color: var(--pp-color-text-muted);
	font-size: 1.125rem;
	margin: 0 0 48px;
}

.premium-benefits__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
	align-items: stretch; /* ensure grid children stretch to equal height rows */
}

.benefit-card {
	background: var(--pp-color-bg-alt);
	border: 1px solid var(--pp-color-border);
	border-radius: var(--pp-radius);
	padding: 28px;
	box-shadow: var(--pp-shadow-soft);
	transition: transform 0.32s cubic-bezier(.2,.9,.2,1), box-shadow 0.32s cubic-bezier(.2,.9,.2,1);
	display: flex;
	flex-direction: column;
	gap: 18px;
	/* Consistent modern card height */
	min-height: 320px;
	/* Ensure content is distributed so heads/tails align and cards stay balanced */
	justify-content: space-between;
}

.benefit-card:hover {
	transform: translateY(-6px) scale(1.04);
	box-shadow: 0 20px 50px rgba(15,23,36,0.10);
}

.benefit-card:hover .benefit-card__icon i {
	transform: rotate(6deg) scale(1.06);
	filter: drop-shadow(0 6px 14px rgba(21,82,209,0.12));
}

/* Reveal animation for benefit cards (fade + slide up) */
.benefit-card.reveal-on-scroll {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}
.benefit-card.reveal-on-scroll.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.benefit-card__icon {
	margin-bottom: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin-left: auto;
	margin-right: auto;
	border-radius: 12px;
	background: linear-gradient(180deg, rgba(30,64,175,0.06), rgba(21,82,209,0.04));
}

.benefit-card__icon i {
	font-size: 40px;
	color: var(--pp-color-primary);
	transition: transform 0.36s ease, filter 0.36s ease;
}

.benefit-card__title {
	color: var(--pp-color-text);
	font-size: 1.125rem;
	font-weight: 700;
	margin: 0 0 8px;
	line-height: 1.28;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	line-clamp: 2;
	min-height: 3.2rem; /* reserve height for up to 2 lines */
}

.benefit-card__description {
	/* Show full paragraph content without truncation */
	color: var(--pp-color-text-muted);
	margin: 0 auto;
	font-size: 1rem;
	line-height: 1.6;
	max-width: 90%;
	display: block;
	overflow: visible !important;
	text-overflow: unset !important;
	white-space: normal !important;
	-webkit-line-clamp: unset !important;
	/* standard property for newer browsers */
	line-clamp: unset !important;
	-webkit-box-orient: unset !important;
	max-height: none !important;
	flex: 0 0 auto;
}

@media (min-width: 768px) {
	.premium-benefits__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1200px) {
	.premium-benefits__grid {
		grid-template-columns: repeat(4, 1fr);
	}

	/* Ensure inner content aligns: make each card stretch and distribute space vertically */
	.benefit-card { justify-content: space-between; }
}

/* Optional small JS-free trick to ensure titles same height across cards: we set a conservative min-height */
.premium-benefits .benefit-card__title { min-height: 3.2rem; }

/* Accessibility: reduce motion */
@media (prefers-reduced-motion: reduce) {
	.benefit-card, .benefit-card:hover { transform: none !important; box-shadow: var(--pp-shadow-soft) !important; }
}

/* ==============================================
   PACKAGES SECTION
   ============================================== */
.premium-packages {
	padding: 80px 20px;
	background: var(--pp-color-bg);
}

.premium-packages__inner {
	max-width: 1200px;
	margin: 0 auto;
	text-align: center;
}

.premium-packages__title {
	color: var(--pp-color-primary);
	font-size: 2rem;
	font-weight: 700;
	margin: 0 0 16px;
}

.premium-packages__subtitle {
	color: var(--pp-color-text-muted);
	font-size: 1.125rem;
	margin: 0 0 48px;
}

.premium-packages__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}

.package-card {
	background: var(--pp-color-bg-alt);
	border: 1px solid var(--pp-color-border);
	border-radius: var(--pp-radius);
	padding: 32px;
	box-shadow: var(--pp-shadow-soft);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.package-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--pp-shadow-card);
}

.package-card--featured {
	border-color: var(--pp-color-primary);
	border-width: 2px;
}

.package-card__title {
	color: var(--pp-color-primary);
	font-size: 1.5rem;
	font-weight: 700;
	margin: 0 0 12px;
}

.package-card__description {
	color: var(--pp-color-text-muted);
	margin: 0 0 24px;
	font-size: 1rem;
}

.package-card__cta {
	display: inline-block;
}

@media (min-width: 768px) {
	.premium-packages__grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* ==============================================
   FORM SECTION
   ============================================== */
.premium-form {
	padding: 80px 20px;
	background: var(--pp-color-bg-alt);
}

.premium-form__inner {
	max-width: 800px;
	margin: 0 auto;
}

.premium-form__title {
	color: var(--pp-color-primary);
	font-size: 2rem;
	font-weight: 700;
	margin: 0 0 16px;
	text-align: center;
}

.premium-form__subtitle {
	color: var(--pp-color-text-muted);
	font-size: 1.125rem;
	margin: 0 0 40px;
	text-align: center;
}

.premium-form__container {
	background: var(--pp-color-bg-alt);
	border: 1px solid var(--pp-color-border);
	border-radius: var(--pp-radius);
	padding: 40px;
	box-shadow: var(--pp-shadow-soft);
}

.premium-form__form {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.premium-form__row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}

.premium-form__field {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.premium-form__field--checkbox {
	flex-direction: row;
	align-items: flex-start;
	gap: 12px;
}

.premium-form__label {
	color: var(--pp-color-text);
	font-weight: 600;
	font-size: 0.9375rem;
}

.premium-form__label--checkbox {
	font-weight: 400;
	cursor: pointer;
}

.required {
	color: var(--pp-color-error);
}

.premium-form__input,
.premium-form__select,
.premium-form__textarea {
	width: 100%;
	padding: 12px 16px;
	border: 1px solid var(--pp-color-border);
	border-radius: 8px;
	font-size: 1rem;
	font-family: inherit;
	color: var(--pp-color-text);
	background: var(--pp-color-bg-alt);
	transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.premium-form__input:focus,
.premium-form__select:focus,
.premium-form__textarea:focus {
	outline: none;
	border-color: var(--pp-color-primary);
	box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.premium-form__input:invalid:not(:placeholder-shown),
.premium-form__textarea:invalid:not(:placeholder-shown) {
	border-color: var(--pp-color-error);
}

.premium-form__textarea {
	resize: vertical;
	min-height: 120px;
}

.premium-form__checkbox {
	width: 20px;
	height: 20px;
	margin-top: 2px;
	cursor: pointer;
	flex-shrink: 0;
}

.premium-form__description {
	color: var(--pp-color-text-muted);
	font-size: 0.875rem;
	margin-top: 4px;
}

.premium-form__error {
	color: var(--pp-color-error);
	font-size: 0.875rem;
	margin-top: 4px;
	display: none;
}

.premium-form__error.is-visible {
	display: block;
}

.premium-form__messages {
	margin-top: 16px;
	padding: 16px;
	border-radius: 8px;
	display: none;
}

.premium-form__messages.is-visible {
	display: block;
}

.premium-form__messages--success {
	background: #d4edda;
	border: 1px solid #c3e6cb;
	color: #155724;
}

.premium-form__messages--error {
	background: #f8d7da;
	border: 1px solid #f5c6cb;
	color: #721c24;
}

.premium-form__submit {
	width: 100%;
	padding: 14px 20px;
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	border: none;
	color: #fff;
	background: linear-gradient(90deg, var(--pp-color-primary), var(--pp-color-primary-hover));
	border-radius: var(--premium-radius-sm);
	transition: transform 0.3s ease, box-shadow 0.3s ease, opacity 0.18s ease;
	will-change: transform;
	width: 100%;
}

.premium-form__submit:hover {
	transform: scale(1.03);
	box-shadow: var(--pp-shadow-card);
}

.premium-form__submit:active {
	transform: scale(0.98);
}

.premium-form__submit:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.premium-form__submit:focus {
	outline: 3px solid rgba(59,130,246,0.3);
	outline-offset: 2px;
}

.premium-form__submit-spinner {
	display: inline-block;
}

.premium-form__submit-text {
	flex: 1;
	text-align: center;
}

.premium-form__submit i {
	font-size: 1.1rem;
}

@media (min-width: 768px) {
	.premium-form__row {
		grid-template-columns: repeat(2, 1fr);
	}
	
	.premium-form__container {
		padding: 48px;
	}
}

/* ==============================================
   CONTACT SECTION
   ============================================== */
.premium-contact {
	padding: 80px 20px;
	background: var(--pp-color-bg);
}

.premium-contact__inner {
	max-width: 800px;
	margin: 0 auto;
	text-align: center;
}

.premium-contact__title {
	color: var(--pp-color-primary);
	font-size: 2rem;
	font-weight: 700;
	margin: 0 0 16px;
}

.premium-contact__subtitle {
	color: var(--pp-color-text-muted);
	font-size: 1.125rem;
	margin: 0 0 48px;
}

.premium-contact__info {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
	margin-bottom: 40px;
}

.premium-contact__item {
	display: flex;
	align-items: flex-start;
	gap: 20px;
	text-align: left;
}

.premium-contact__icon {
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--pp-color-primary);
	color: #fff;
	border-radius: 50%;
}

.premium-contact__icon i {
	font-size: 1.25rem;
}

.premium-contact__content {
	flex: 1;
}

.premium-contact__item-title {
	color: var(--pp-color-text);
	font-size: 1.125rem;
	font-weight: 600;
	margin: 0 0 8px;
}

.premium-contact__item-text {
	color: var(--pp-color-text-muted);
	margin: 0;
}

.premium-contact__link {
	color: var(--pp-color-primary);
	text-decoration: none;
	transition: color 0.3s ease;
}

.premium-contact__link:hover {
	color: var(--pp-color-primary-hover);
	text-decoration: underline;
}

.premium-contact__link:focus {
	outline: 2px solid var(--pp-color-primary);
	outline-offset: 2px;
	border-radius: 4px;
}

.premium-contact__cta {
	margin-top: 32px;
}

@media (min-width: 768px) {
	.premium-contact__info {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ==============================================
   BUTTON STYLES
   ============================================== */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 24px;
	border-radius: 8px;
	font-weight: 600;
	text-decoration: none;
	border: none;
	cursor: pointer;
	transition: all 0.3s ease;
	font-size: 1rem;
}

.btn:focus {
	outline: 2px solid var(--pp-color-primary);
	outline-offset: 2px;
}

.btn--primary {
	background: var(--pp-color-primary);
	color: #fff;
}

.btn--primary:hover {
	background: var(--pp-color-primary-hover);
	color: #fff;
	transform: translateY(-2px);
	box-shadow: var(--pp-shadow-soft);
}

.btn--secondary {
	background: var(--pp-color-bg-alt);
	color: var(--pp-color-primary);
	border: 1px solid var(--pp-color-border);
}

.btn--secondary:hover {
	border-color: var(--pp-color-primary);
	color: var(--pp-color-primary-hover);
	box-shadow: var(--pp-shadow-soft);
}

/* ==============================================
   REVEAL ON SCROLL
   ============================================== */
.reveal-on-scroll {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.reveal-on-scroll.is-visible {
	opacity: 1;
	transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
	.reveal-on-scroll {
		opacity: 1;
		transform: none;
	}
}

/* ==============================================
   RESPONSIVE ADJUSTMENTS
   ============================================== */
@media (max-width: 767px) {
	.hero-premium {
		padding: 60px 16px;
	}
	
	.hero-premium__title {
		font-size: 2rem;
	}
	
	.premium-benefits,
	.premium-packages,
	.premium-form,
	.premium-contact {
		padding: 60px 16px;
	}
	
	.premium-form__container {
		padding: 24px;
	}
}

/* ==============================================
   PREMIUM PACKS (cards) - specific styles
   ============================================== */
.premium-packs__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 24px;
}

.premium-packs__title {
	color: var(--pp-color-primary);
	font-size: 2.25rem;
	font-weight: 700;
	margin: 0 0 12px;
	text-align: center;
}

.premium-packs__subtitle {
	color: var(--pp-color-text-muted);
	font-size: 1.125rem;
	margin: 0 0 40px;
	text-align: center;
	max-width: 620px;
	margin-left: auto;
	margin-right: auto;
}

.premium-packs__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	align-items: start;
}

.premium-pack {
	background: var(--premium-surface);
	border: 1px solid var(--premium-border);
	border-radius: var(--premium-radius);
	padding: 28px;
	box-shadow: var(--premium-shadow-sm);
	transition: transform .35s ease, box-shadow .35s ease;
	position: relative;
	overflow: visible;
}

.premium-pack:hover {
	transform: translateY(-8px);
	box-shadow: 0 12px 30px rgba(15,23,36,0.08);
}

.premium-pack__inner {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.premium-pack__badge {
	position: absolute;
	top: -10px;
	right: 18px;
	background: linear-gradient(90deg,#1e40af,#1552d1);
	color: #fff;
	padding: 6px 12px;
	border-radius: 999px;
	font-size: 0.8125rem;
	font-weight: 700;
	box-shadow: 0 6px 18px rgba(21,82,209,0.12);
}

.premium-pack--recommended {
	background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(244,250,255,0.95));
	border: 2px solid rgba(21,82,209,0.12);
}

.premium-pack__header {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	text-align: center;
}

.premium-pack__icon i {
	font-size: 36px;
	color: var(--pp-color-primary);
}

.premium-pack__title {
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--premium-text);
	margin: 0;
}

.premium-pack__tagline {
	margin: 0;
	color: var(--premium-muted);
}

.premium-pack__features {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
	color: var(--premium-muted);
	font-size: 0.9875rem;
}

.premium-pack__features li i {
	margin-right: 8px;
	color: var(--pp-color-primary);
}

.premium-pack__actions {
	margin-top: 6px;
	display: flex;
	justify-content: center;
	width: 100%;
}

.premium-pack__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 20px;
	min-height: 48px;
	border-radius: 10px;
	color: #fff;
	text-decoration: none;
	cursor: pointer;
	font-weight: 700;
	background: linear-gradient(90deg,#1e40af,#1552d1);
	box-shadow: 0 6px 18px rgba(21,82,209,0.12);
	transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;
	width: 100%;
	white-space: normal;
	text-align: center;
	font-size: clamp(0.9rem, 2vw, 1rem);
}

.premium-pack__btn:active {
	transform: scale(.995);
}

.premium-pack__btn:focus {
	outline: 3px solid rgba(29,78,216,0.18);
	outline-offset: 3px;
}

/* Ensure anchor-role=button remains accessible when JS not available */
.premium-pack__btn[role="button"] {
	display: inline-block;
}

/* Highlight pulse for form after prefill */
.premium-form.pulse-highlight {
	box-shadow: 0 0 0 4px rgba(21,82,209,0.12);
	transition: box-shadow 0.35s ease;
}

/* Desktop 3-column layout */
@media (min-width: 769px) {
	.premium-packs__grid {
		grid-template-columns: repeat(3, 1fr);
	}
	/* Make all cards equal height and keep CTA at bottom */
	.premium-packs__grid { align-items: stretch; }
	.premium-pack { display: flex; flex-direction: column; }
	.premium-pack__inner { display: flex; flex-direction: column; flex: 1; }
	.premium-pack__actions { margin-top: auto; }
}

/* Mobile: single column */
@media (max-width: 768px) {
	.premium-packs__inner { padding: 0 16px; }
	.premium-packs__grid { grid-template-columns: 1fr; }
}

/* small utility */
.container { max-width: 1200px; margin: 0 auto; }

