/* Formularz kontaktowy (WPForms) - dawniej render_contact_form_styles(), wp_head, tylko is_page() */
			.ff-contact-form-card .wpforms-container {
				margin: 0 !important;
			}

			.ff-contact-form-card .wpforms-field {
				padding: 0 !important;
				margin-bottom: 14px !important;
			}

			.ff-contact-form-card .wpforms-field-label {
				margin-bottom: 6px !important;
				font-size: 13px !important;
				font-weight: 600 !important;
				color: #241f19 !important;
			}

			.ff-contact-form-card input,
			.ff-contact-form-card select,
			.ff-contact-form-card textarea {
				width: 100% !important;
				border: 1px solid #e6d9c6 !important;
				border-radius: 16px !important;
				background: #fffdfa !important;
				color: #241f19 !important;
				padding: 14px 16px !important;
				font-size: 15px !important;
				line-height: 1.4 !important;
				box-sizing: border-box !important;
			}

			.ff-contact-form-card textarea {
				min-height: 150px !important;
				resize: vertical !important;
			}

			.ff-contact-form-card input::placeholder,
			.ff-contact-form-card textarea::placeholder {
				color: #a69987 !important;
			}

			.ff-contact-form-card input:focus,
			.ff-contact-form-card select:focus,
			.ff-contact-form-card textarea:focus {
				outline: none !important;
				border-color: #c9a563 !important;
				box-shadow: 0 0 0 4px rgba(197, 155, 82, 0.12) !important;
			}

			.ff-contact-form-card .wpforms-submit {
				display: inline-flex !important;
				align-items: center !important;
				justify-content: center !important;
				min-height: 56px !important;
				padding: 0 30px !important;
				border: 0 !important;
				border-radius: 999px !important;
				background: #111 !important;
				color: #fff !important;
				font-size: 13px !important;
				font-weight: 700 !important;
				letter-spacing: 0.16em !important;
				text-transform: uppercase !important;
				transition: background 0.22s ease, transform 0.22s ease, box-shadow 0.22s ease !important;
			}

			.ff-contact-form-card .wpforms-submit:hover {
				background: #2c2c2c !important;
				transform: translateY(-2px) !important;
				box-shadow: 0 12px 30px rgba(0, 0, 0, 0.14) !important;
			}

			.ff-contact-form-card .wpforms-field-row {
				margin: 0 -7px !important;
			}

			.ff-contact-form-card .wpforms-one-half {
				padding: 0 7px !important;
			}

			@media (max-width: 767px) {
				.ff-contact-form-card .wpforms-submit {
					width: 100% !important;
				}
			}

/* Odstep naglowka mobile - dawniej render_mobile_header_spacing_styles(), wp_head, wszystkie strony front */
			@media (max-width: 921px) {
				body:not(.home):not(.blog):not(.archive) #content.site-content,
				body:not(.home):not(.blog):not(.archive) .site-content {
					padding-top: 88px !important;
				}

				body:not(.home):not(.blog):not(.archive) .ast-container,
				body:not(.home):not(.blog):not(.archive) .site-content > .ast-container {
					padding-top: 0 !important;
				}
			}

/* Fix licznika kategorii (bug WooCommerce blocks + Elementor) - dawniej render_category_count_fix_styles() */
			/*
			 * Blok "Kategorie produktow" WooCommerce renderuje licznik jako
			 * <span aria-hidden="true">7</span><span class="screen-reader-text">7 produktow</span>.
			 * Regula Elementora (.screen-reader-text span{top:0 !important}) rozbija standardowy
			 * clip, przez co etykieta dla czytnikow ekranu pokazuje sie obok liczby ("77").
			 * Wymuszamy poprawne ukrycie tekstu dla czytnikow ekranu w obrebie licznika.
			 */
			.wc-block-product-categories-list-item-count .screen-reader-text {
				position: absolute !important;
				width: 1px !important;
				height: 1px !important;
				padding: 0 !important;
				margin: -1px !important;
				overflow: hidden !important;
				clip: rect(0, 0, 0, 0) !important;
				white-space: nowrap !important;
				border: 0 !important;
			}

/* Drugi CTA w hero na home - dawniej render_home_hero_secondary_cta_styles(), tylko is_front_page() */
			.ff-hero-actions {
				display: flex;
				flex-wrap: wrap;
				align-items: center;
				justify-content: center;
				gap: 14px;
			}

			.ff-hero-btn.ff-hero-btn-secondary {
				background: rgba(255, 253, 249, 0.94) !important;
				color: #1f1b16 !important;
				border: 1px solid rgba(191, 154, 88, 0.36) !important;
				box-shadow: 0 10px 24px rgba(56, 40, 16, 0.08) !important;
			}

			.ff-hero-btn.ff-hero-btn-secondary:hover,
			.ff-hero-btn.ff-hero-btn-secondary:focus-visible {
				background: #fffaf1 !important;
				border-color: rgba(191, 154, 88, 0.7) !important;
				transform: translateY(-2px);
			}

			.ff-bottom-cta__actions {
				display: flex;
				flex-wrap: wrap;
				align-items: center;
				justify-content: center;
				gap: 14px;
			}

			.ff-bottom-cta__btn.ff-bottom-cta__btn-secondary {
				background: rgba(255, 253, 249, 0.94) !important;
				color: #1f1b16 !important;
				border: 1px solid rgba(191, 154, 88, 0.36) !important;
				box-shadow: 0 10px 24px rgba(56, 40, 16, 0.08) !important;
			}

			.ff-bottom-cta__btn.ff-bottom-cta__btn-secondary:hover,
			.ff-bottom-cta__btn.ff-bottom-cta__btn-secondary:focus-visible {
				background: #fffaf1 !important;
				border-color: rgba(191, 154, 88, 0.7) !important;
				transform: translateY(-2px);
			}

			.ff-side-teaser {
				position: fixed;
				right: 18px;
				top: 50%;
				z-index: 9998;
				width: min(330px, calc(100vw - 28px));
				padding: 22px 20px 18px;
				border: 1px solid rgba(210, 174, 102, 0.42);
				border-radius: 24px;
				background:
					radial-gradient(circle at top right, rgba(214, 167, 87, 0.18), rgba(214, 167, 87, 0) 34%),
					linear-gradient(160deg, rgba(36, 31, 25, 0.98), rgba(21, 19, 17, 0.98));
				box-shadow: 0 26px 62px rgba(20, 14, 9, 0.34);
				backdrop-filter: blur(10px);
				-webkit-backdrop-filter: blur(10px);
				transform: translate3d(calc(100% + 30px), -50%, 0);
				opacity: 0;
				visibility: hidden;
				transition: transform 0.36s ease, opacity 0.36s ease, visibility 0.36s ease;
			}

			.ff-side-teaser::before {
				content: "";
				position: absolute;
				inset: 16px auto 16px 0;
				width: 4px;
				border-radius: 999px;
				background: linear-gradient(180deg, #f0c86b, #b78032);
			}

			.ff-side-teaser.is-visible {
				transform: translate3d(0, -50%, 0);
				opacity: 1;
				visibility: visible;
			}

			.ff-side-teaser__badge {
				display: inline-flex;
				align-items: center;
				gap: 8px;
				margin-bottom: 14px;
				padding: 8px 12px;
				border: 1px solid rgba(240, 200, 107, 0.18);
				border-radius: 999px;
				background: rgba(255, 247, 231, 0.08);
				color: #f0c86b;
				font-size: 11px;
				font-weight: 700;
				letter-spacing: 0.14em;
				text-transform: uppercase;
			}

			.ff-side-teaser__badge::before {
				content: "";
				width: 8px;
				height: 8px;
				border-radius: 999px;
				background: #f0c86b;
				box-shadow: 0 0 0 6px rgba(240, 200, 107, 0.12);
				flex: 0 0 auto;
			}

			.ff-side-teaser__close {
				position: absolute;
				top: 12px;
				right: 12px;
				width: 30px;
				height: 30px;
				display: inline-flex;
				align-items: center;
				justify-content: center;
				border: 1px solid rgba(240, 200, 107, 0.12);
				border-radius: 999px;
				background: rgba(255, 247, 231, 0.08);
				color: #f0c86b;
				cursor: pointer;
				font-size: 18px;
				line-height: 1;
			}

			.ff-side-teaser__eyebrow {
				display: inline-block;
				margin-bottom: 10px;
				padding-right: 28px;
				font-size: 11px;
				font-weight: 700;
				letter-spacing: 0.16em;
				text-transform: uppercase;
				color: #dcb26b;
			}

			.ff-side-teaser__title {
				margin: 0 0 8px;
				max-width: 250px;
				font-size: 30px;
				line-height: 0.96;
				color: #fff8ee;
				text-wrap: balance;
			}

			.ff-side-teaser__text {
				margin: 0 0 18px;
				font-size: 14px;
				line-height: 1.72;
				color: rgba(255, 248, 238, 0.78);
			}

			.ff-side-teaser__coupon {
				display: grid;
				gap: 4px;
				margin: 0 0 18px;
				padding: 12px 14px;
				border: 1px solid rgba(240, 200, 107, 0.18);
				border-radius: 16px;
				background: rgba(255, 247, 231, 0.08);
			}

			.ff-side-teaser__coupon-label {
				font-size: 10px;
				font-weight: 700;
				letter-spacing: 0.16em;
				text-transform: uppercase;
				color: #dcb26b;
			}

			.ff-side-teaser__coupon-code {
				font-size: 20px;
				line-height: 1.1;
				letter-spacing: 0.08em;
				text-transform: uppercase;
				color: #fff8ee;
			}

			.ff-side-teaser__coupon-note {
				font-size: 12px;
				line-height: 1.5;
				color: rgba(255, 248, 238, 0.72);
			}

			.ff-side-teaser__button {
				display: inline-flex;
				align-items: center;
				justify-content: center;
				width: 100%;
				min-height: 46px;
				padding: 0 18px;
				border-radius: 16px;
				background: linear-gradient(180deg, #f0c86b, #c58a39);
				color: #241f19 !important;
				font-size: 14px;
				font-weight: 800;
				letter-spacing: 0.04em;
				text-decoration: none !important;
				box-shadow: 0 14px 28px rgba(197, 138, 57, 0.24);
				transition: transform 0.24s ease, box-shadow 0.24s ease;
			}

			.ff-side-teaser__button:hover,
			.ff-side-teaser__button:focus-visible {
				transform: translateY(-2px);
				box-shadow: 0 18px 36px rgba(197, 138, 57, 0.3);
			}

			@media (max-width: 767px) {
				.ff-hero-actions {
					width: min(100%, 320px);
					max-width: 320px;
					margin: 0 auto 24px !important;
					flex-direction: column;
					align-items: center;
					justify-content: center;
					gap: 12px;
				}

				.ff-hero-actions .ff-hero-btn {
					display: flex !important;
					width: 100%;
					max-width: none;
					min-height: 56px;
					box-sizing: border-box;
					margin: 0;
					text-align: center;
					justify-content: center;
					padding-inline: 24px;
				}

				.ff-hero-actions .ff-hero-btn-secondary {
					display: flex !important;
					width: 100%;
				}

				.ff-bottom-cta__actions {
					width: 100%;
					flex-direction: column;
					align-items: center;
					justify-content: center;
					gap: 12px;
				}

				.ff-bottom-cta__actions .ff-bottom-cta__btn {
					display: flex !important;
					width: min(100%, 320px);
					max-width: 320px;
					min-height: 54px;
					box-sizing: border-box;
					margin-inline: auto;
					text-align: center;
					justify-content: center;
					padding-inline: 24px;
				}

				.ff-side-teaser {
					right: 12px;
					top: auto;
					bottom: 84px;
					width: min(320px, calc(100vw - 52px));
					padding: 18px 16px 14px;
					border-radius: 20px;
					transform: translate3d(calc(100% + 24px), 0, 0);
				}

				.ff-side-teaser.is-visible {
					transform: translate3d(0, 0, 0);
				}

				.ff-side-teaser__title {
					max-width: none;
					font-size: 25px;
				}
			}
			.ff-how-it-works {
				padding: 32px 20px 72px;
				background: var(--ff-cream);
			}

			.ff-how-wrap {
				max-width: 1240px;
				margin: 0 auto;
			}

			.ff-how-head {
				text-align: center;
				max-width: 680px;
				margin: 0 auto 42px;
			}

			.ff-how-eyebrow {
				display: inline-block;
				margin-bottom: 10px;
				font-size: 12px;
				font-weight: 600;
				letter-spacing: 0.22em;
				text-transform: uppercase;
				color: var(--ff-label);
			}

			.ff-how-head h2 {
				margin: 0 0 12px;
				font-family: "Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
				font-weight: 700;
				font-size: 36px;
				line-height: 1.15;
				color: var(--ff-ink);
			}

			.ff-how-head p {
				margin: 0;
				font-size: 16px;
				line-height: 1.7;
				color: var(--ff-body);
			}

			.ff-how-grid {
				display: grid;
				grid-template-columns: repeat(4, minmax(0, 1fr));
				gap: 22px;
			}

			.ff-how-card {
				padding: 30px 24px;
				border: 1px solid var(--ff-border);
				border-radius: 16px;
				background: #fff;
				text-align: center;
				transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
			}

			.ff-how-card:hover {
				transform: translateY(-6px);
				box-shadow: 0 18px 40px rgba(40, 28, 10, 0.08);
				border-color: #dbc399;
			}

			.ff-how-icon {
				width: 62px;
				height: 62px;
				margin: 0 auto 18px;
				border-radius: 16px;
				background: #faf4ea;
				color: var(--ff-accent);
				display: flex;
				align-items: center;
				justify-content: center;
			}

			.ff-how-icon svg {
				width: 28px;
				height: 28px;
			}

			.ff-how-step {
				display: inline-block;
				margin-bottom: 10px;
				font-size: 11px;
				font-weight: 700;
				letter-spacing: 0.16em;
				text-transform: uppercase;
				color: var(--ff-label);
			}

			.ff-how-card h3 {
				margin: 0 0 10px;
				font-size: 20px;
				line-height: 1.3;
				color: var(--ff-ink);
			}

			.ff-how-card p {
				margin: 0;
				font-size: 14px;
				line-height: 1.75;
				color: var(--ff-body);
			}

			@media (max-width: 991px) {
				.ff-how-grid {
					grid-template-columns: repeat(2, minmax(0, 1fr));
				}

				.ff-how-head h2 {
					font-size: 30px;
				}
			}

			@media (max-width: 640px) {
				.ff-how-it-works {
					padding: 24px 16px 54px;
				}

				.ff-how-grid {
					grid-template-columns: 1fr;
					gap: 16px;
				}

				.ff-how-head {
					margin-bottom: 30px;
				}

				.ff-how-head h2 {
					font-size: 26px;
				}

				.ff-how-head p {
					font-size: 15px;
				}

				.ff-how-card {
					padding: 24px 20px;
				}
			}

			/* Ikony zaufania pod "Jak to dziala" (widgety Elementor Icon Box id 8a54871/807a959/aa1dce2) -
			   domyslnie czarne z globalnej palety Astry, tutaj dopasowane do zlotej palety hero/how-it-works. */
			.elementor-element-8a54871 .elementor-icon,
			.elementor-element-807a959 .elementor-icon,
			.elementor-element-aa1dce2 .elementor-icon {
				color: var(--ff-ink) !important;
				background-color: var(--ff-accent) !important;
			}
			.elementor-element-8a54871 .elementor-icon-box-title,
			.elementor-element-807a959 .elementor-icon-box-title,
			.elementor-element-aa1dce2 .elementor-icon-box-title,
			.elementor-element-8a54871 .elementor-icon-box-title a,
			.elementor-element-807a959 .elementor-icon-box-title a,
			.elementor-element-aa1dce2 .elementor-icon-box-title a {
				color: var(--ff-ink) !important;
				letter-spacing: 0.16em;
			}
			.elementor-element-8a54871,
			.elementor-element-807a959 {
				border-color: var(--ff-border) !important;
			}
