/**
 * Fluent Access Levels — strona bookingu konsultacji.
 * Style w design systemie NeuroExpert (fonty Title/Para, paleta #1577af,
 * karty 16–20px, delikatne cienie, przyciski pill 700).
 *
 * Niska specyficzność, box-sizing zdeterminowany. Można wyłączyć nie ładując
 * tego arkusza (moduł rejestruje go warunkowo).
 */

.fal-booking-wrap,
.fal-booking-card,
.fal-consultation-cta {
	--fb-primary: #1577af;
	--fb-primary-dk: #11618e;
	--fb-primary-bg: #eaf4fa;
	--fb-heading: #0f172a;
	--fb-body: #475569;
	--fb-muted: #64748b;
	--fb-border: #e2e8f0;
	--fb-border-med: #cbd5e1;
	--fb-white: #ffffff;
	--fb-font-title: 'Title', Merriweather, Georgia, serif;
	--fb-font-body: 'Para', Inter, system-ui, -apple-system, 'Segoe UI', sans-serif;
}

.fal-booking-wrap,
.fal-booking-wrap *,
.fal-booking-card,
.fal-booking-card *,
.fal-consultation-cta,
.fal-consultation-cta * {
	box-sizing: border-box;
}

/* =========================================================
   Wrapper natywnego widgetu FluentBooking
========================================================= */
.fal-booking-wrap {
	max-width: 1000px;
	margin: clamp(24px, 4vw, 48px) auto;
	padding: clamp(16px, 2.5vw, 28px);
	background: var(--fb-white);
	border: 1px solid var(--fb-border);
	border-radius: 20px;
	box-shadow: 0 14px 36px rgba(15, 23, 42, 0.08);
	font-family: var(--fb-font-body);
}

/* =========================================================
   Karta komunikatu / bramki
========================================================= */
.fal-booking-card {
	max-width: 620px;
	margin: clamp(24px, 4vw, 48px) auto;
	padding: clamp(24px, 3vw, 36px);
	background: var(--fb-white);
	border: 1px solid var(--fb-border);
	border-radius: 20px;
	box-shadow: 0 14px 36px rgba(15, 23, 42, 0.08);
	text-align: center;
	font-family: var(--fb-font-body);
}

.fal-booking-card-title {
	margin-bottom: 8px;
	font-family: var(--fb-font-title);
	font-size: clamp(1.25rem, 2.4vw, 1.6rem);
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: -0.01em;
	color: var(--fb-heading);
}

.fal-booking-card-text {
	max-width: 46ch;
	margin: 0 auto 18px;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--fb-body);
}

.fal-booking-card-text:last-child {
	margin-bottom: 0;
}

/* Wariant zablokowany — kłódka nad tytułem */
.fal-booking-locked .fal-booking-lock {
	width: 56px;
	height: 56px;
	margin: 0 auto 16px;
	border-radius: 50%;
	background-color: var(--fb-primary-bg);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%231577af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2' ry='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 26px 26px;
}

/* =========================================================
   Przyciski
========================================================= */
.fal-booking-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 12px 26px;
	border: 1px solid var(--fb-primary);
	border-radius: 9999px;
	background: var(--fb-primary);
	color: #fff;
	font-family: var(--fb-font-body);
	font-size: 0.98rem;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	box-shadow: 0 4px 16px rgba(21, 119, 175, 0.18);
	transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.fal-booking-btn:hover,
.fal-booking-btn:focus {
	background: var(--fb-primary-dk);
	border-color: var(--fb-primary-dk);
	color: #fff;
	text-decoration: none;
	box-shadow: 0 14px 28px rgba(21, 119, 175, 0.22);
	transform: translateY(-1px);
}

.fal-booking-btn:focus-visible {
	outline: 3px solid rgba(21, 119, 175, 0.22);
	outline-offset: 3px;
}

/* =========================================================
   Przycisk na produkcie konsultacji (sklep)
========================================================= */
.fal-consultation-cta {
	margin: 18px 0 4px;
	font-family: var(--fb-font-body);
}

/* Stan zablokowany — wyszarzony, nieklikalny, ale widoczny (SEO) */
.fal-consultation-btn.is-locked {
	background: #f1f5f9;
	border-color: var(--fb-border-med);
	color: var(--fb-muted);
	box-shadow: none;
	cursor: not-allowed;
	pointer-events: none;
}

.fal-consultation-note {
	margin: 10px 0 0;
	font-size: 0.86rem;
	line-height: 1.5;
	color: var(--fb-muted);
}

.fal-consultation-note a {
	color: var(--fb-primary);
	font-weight: 600;
	text-decoration: underline;
}

.fal-consultation-note a:hover {
	color: var(--fb-primary-dk);
}

/* --------------------------------------------------------------------------
   Przycisk „Umów konsultację" ZASTĘPUJĄCY natywny.
   Emituje klasę `.fluent-cart-add-to-cart-button`, więc dziedziczy pełny wygląd
   z arkusza motywu (fluent-cart.css: width calc(100% - 48px), margin auto 24px
   24px, radius, kolory) — te reguły mają `!important` i wygrywają. Poniżej tylko
   to, czego motyw NIE ustawia: wygląd stanu zablokowanego i notka pod spodem.
   -------------------------------------------------------------------------- */

/* Stan zablokowany — wyszarzony, nieklikalny. Selektor wzmocniony i z
   `!important`, bo reguła motywu dla `.fluent-cart-add-to-cart-button`
   też jest `!important` (inaczej tło pozostałoby niebieskie). */
.fal-consultation-btn.is-locked,
.fct-products-wrapper .fct-product-card .fal-consultation-btn.is-locked,
.fct-single-product-page .fal-consultation-btn.is-locked {
	background: #f1f5f9 !important;
	border: 1px solid var(--fb-border-med) !important;
	color: var(--fb-muted) !important;
	box-shadow: none !important;
	cursor: not-allowed !important;
	pointer-events: none !important;
	text-decoration: none !important;
}

/* Notka bramki w KARCIE archiwum — te same 24px marginesu bocznego co reszta
   karty, żeby tekst nie kleił się do krawędzi. */
.fct-products-wrapper .fct-product-card .fal-consultation-note {
	margin: -14px 24px 22px !important;
	padding: 0 !important;
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--fb-muted);
}

/* Notka na stronie produktu. */
.fct-single-product-page .fal-consultation-note {
	margin: 10px 0 0;
	padding: 0;
}

/* Box model musi być taki sam jak natywnego przycisku, inaczej padding
   dodaje się do `width: calc(100% - 48px)` z motywu i przycisk wystaje z karty. */
.fal-consultation-btn {
	box-sizing: border-box;
}

/* Fallback wygląd, gdy motyw NIE styluje klasy natywnej (inny szablon/motyw). */
a.fal-consultation-btn,
span.fal-consultation-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 14px 20px;
	border-radius: 10px;
	background: var(--fb-primary);
	color: #fff;
	font-family: var(--fb-font-body);
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
}

a.fal-consultation-btn:hover {
	background: var(--fb-primary-dk);
	color: #fff;
	text-decoration: none;
}

/* =========================================================
   Ukrycie natywnych przycisków zakupu na produkcie konsultacji
   (kupno tylko przez booking — nigdy bezpośrednio ze sklepu)
========================================================= */
body.fal-consultation-product [data-fluent-cart-direct-checkout-button],
body.fal-consultation-product [data-fluent-cart-add-to-cart-button],
body.fal-consultation-product .fluent-cart-add-to-cart-button,
body.fal-consultation-product .fluent-cart-direct-checkout-button {
	display: none !important;
}

@media (prefers-reduced-motion: reduce) {
	.fal-booking-btn {
		transition: none;
	}
	.fal-booking-btn:hover {
		transform: none;
	}
}
