/*
 * klamkidesign.pl — refonte front-office, direction B « atelier italien ».
 * Chargé par blocksy-child/functions.php ; exclu de l'UCSS LiteSpeed
 * (optm-ucss_file_exc_inline) pour que les classes posées par JS survivent.
 * Les URL sont absolues depuis la racine : LiteSpeed inline ce fichier.
 */

@font-face {
	font-family: 'Source Serif 4';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url(/wp-content/themes/blocksy-child/fonts/source-serif-4-600-latin-ext.woff2) format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Source Serif 4';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url(/wp-content/themes/blocksy-child/fonts/source-serif-4-600-latin.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	--kd-paper: #F7F3EC;      /* fond lin, chaud */
	--kd-paper-deep: #EFE8DC; /* bandes alternées, pied de page */
	--kd-mat: #FFFFFF;        /* passe-partout des photos (souvent sur fond blanc) */
	--kd-ink: #1C1A17;
	--kd-ink-soft: #5A544A;
	--kd-muted: #6B655B;
	--kd-line: #E2D9C9;
	--kd-gold: #7E5B00;       /* or « bronze » : 5,4:1 sur le lin, sert aussi au texte */
	--kd-serif: 'Source Serif 4', Georgia, 'Times New Roman', serif; /* lisible pour une clientèle 40+ (Bodoni écarté le 14/10) */

	/* Couleur globale Elementor « Main Y » (#D79B01, 2,45:1) → or lisible */
	--e-global-color-cd7e3f5: var(--kd-gold);
}
/* Le kit Elementor redéfinit « Main Y » sur body.elementor-kit-53 : la remise à :root
   ci-dessus restait sans effet. Ici on la reprend au même niveau, en plus spécifique. */
body.elementor-kit-53 { --e-global-color-cd7e3f5: var(--kd-gold); }
/* Ancien or écrit en dur : en-tête (survol, focus, page active), boîte d’accueil, accordéon, icônes SVG. */
[data-elementor-type="header"] .elementor-nav-menu a:hover,
[data-elementor-type="header"] .elementor-nav-menu a:focus,
[data-elementor-type="header"] .elementor-nav-menu a.elementor-item-active,
[data-elementor-type="header"] .elementor-menu-toggle:hover,
[data-elementor-type="header"] .elementor-menu-toggle:focus,
.elementor-element-423fe88:has(:hover) .elementor-icon-box-title,
.elementor-element-423fe88:has(:focus) .elementor-icon-box-title,
.bd-acc-toggle[aria-expanded="true"] .bd-acc-title { color: var(--kd-gold) !important; }
svg [fill="#D79B01" i] { fill: var(--kd-gold); }

/* ---------- Fond, encre ---------- */

body,
.ct-footer,
[data-elementor-type="header"] .e-con.e-parent,
[data-elementor-type="header"] .elementor-sticky--active {
	background-color: var(--kd-paper) !important;
}
body { color: var(--kd-ink); }
.ct-footer { background-color: var(--kd-paper-deep) !important; border-top: 1px solid var(--kd-line); }
.elementor-element-5234e3f,
.elementor-element-6b481cb { background-color: var(--kd-paper-deep) !important; }
.elementor-nav-menu--dropdown,
.elementor-nav-menu--dropdown .sub-menu,
.elementor-nav-menu .sub-menu { background-color: var(--kd-paper) !important; }

/* ---------- Typographie ---------- */

h1, h2,
.elementor-widget-heading h1.elementor-heading-title,
.elementor-widget-heading h2.elementor-heading-title,
.elementor-widget-woocommerce-product-title .product_title,
.hero-section .page-title {
	font-family: var(--kd-serif) !important;
	font-weight: 600 !important;
	letter-spacing: 0;
	line-height: 1.2 !important;
}
/* longs textes posés dans des widgets « titre » : rester en sans, à gauche.
   .elementor-element doublé pour passer devant la règle h1/h2 ci-dessus. */
.elementor-element.elementor-element-909c66a .elementor-heading-title,
.elementor-element.elementor-element-e398698 .elementor-heading-title,
.elementor-element.elementor-element-c775929 .elementor-heading-title {
	font-family: 'Kumbh Sans', sans-serif !important;
	font-weight: 400 !important;
	line-height: 1.7 !important;
	text-align: left !important;
}
/* sur-titres : petites capitales espacées */
.elementor-element.elementor-element-92a415d .elementor-heading-title,
.elementor-element.elementor-element-3d8eff5 .elementor-heading-title,
.elementor-element.elementor-element-849571d .elementor-heading-title,
.elementor-element.elementor-element-f27b6ba .elementor-heading-title {
	font-family: 'Kumbh Sans', sans-serif !important;
	font-weight: 600 !important;
	font-size: .78rem !important;
	letter-spacing: .18em !important;
	line-height: 1.4 !important;
	text-transform: uppercase;
	color: var(--kd-gold) !important;
}
.hero-section .page-title { font-size: clamp(2rem, 1.5rem + 2vw, 2.9rem); }

/* ---------- Liens dans le texte ---------- */

.elementor-widget-text-editor a,
.page-description a,
.woocommerce-product-details__short-description a,
.entry-content a,
.kd-cat-faq a,
.bd-acc-content a,
.woocommerce-cart-form a,
form.checkout a,
.woocommerce-form-login-toggle a,
.woocommerce-form-login a,
.lost_password a {
	color: var(--kd-gold);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}
.ct-breadcrumbs, .ct-breadcrumbs a,
.woocommerce-breadcrumb, .woocommerce-breadcrumb a { text-transform: none !important; }
.ct-breadcrumbs a, .woocommerce-breadcrumb a { color: var(--kd-gold) !important; }
.elementor-post__read-more { color: var(--kd-gold) !important; }
.elementor-post-date, .elementor-post__meta-data { color: var(--kd-muted) !important; }

/* ---------- Boutons ---------- */

.button, button.button, .single_add_to_cart_button, .checkout-button, #place_order,
.elementor-button {
	border-radius: 2px !important;
	letter-spacing: .02em;
}
.single_add_to_cart_button, .checkout-button, #place_order,
.woocommerce ul.products li.product .button, [data-products] .button {
	background-color: var(--kd-ink) !important;
	color: #fff !important;
}
.single_add_to_cart_button:hover, .checkout-button:hover, #place_order:hover,
.woocommerce ul.products li.product .button:hover, [data-products] .button:hover {
	background-color: var(--kd-gold) !important;
}

/* ---------- Photos produit : passe-partout blanc sur le lin ---------- */

[data-products] figure .ct-media-container,
.woocommerce ul.products li.product a img,
.elementor-widget-woocommerce-products ul.products li.product a img {
	background-color: var(--kd-mat);
}
[data-products] figure .ct-media-container {
	border: 1px solid var(--kd-line);
	padding: 7%;
}
.woocommerce-product-gallery .woocommerce-product-gallery__image,
.woocommerce-product-gallery .flex-viewport {
	background-color: var(--kd-mat);
}
.woocommerce-product-gallery .flex-viewport,
.woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__wrapper {
	border: 1px solid var(--kd-line);
}

/* Miniatures : grille fixe de 4 + place réservée avant l'initialisation (CLS) */
.woocommerce-product-gallery .flex-control-thumbs {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
	margin: 12px 0 0 !important;
	padding: 0 !important;
}
.woocommerce-product-gallery .flex-control-thumbs li {
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}
.woocommerce-product-gallery .flex-control-thumbs img {
	background: var(--kd-mat);
	border: 1px solid var(--kd-line);
	aspect-ratio: 1 / 1;
	object-fit: contain;
}
/* Avant le carrousel, Woo empile toutes les photos puis les replie : on montre
   la 1re en carré et on masque les autres jusqu'à l'apparition de .flex-viewport.
   shortcut: sans JS, seules la 1re photo reste visible ; acceptable, la galerie exige déjà JS. */
.woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__image:nth-child(n+2) { display: none !important; }
.woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__image:first-child img { width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: contain; }
.woocommerce-product-gallery:has(.woocommerce-product-gallery__image ~ .woocommerce-product-gallery__image):not(:has(.flex-control-thumbs))::after {
	content: "";
	display: block;
	margin-top: 12px;
	aspect-ratio: 4 / 1;
}

/* ---------- Fiche produit : prix et bouton sous le titre ---------- */

.elementor-element-2291eae,
.elementor-element-2291eae > .woocommerce-product-details__short-description {
	display: contents;
}
.elementor-element-5c33f6fb > .elementor-element-dc2dcfc { order: 2; }
.elementor-element-5c33f6fb > .elementor-element-ec7b5da { order: 4; }
/* réassurance sous le bouton (widget kdtrust1 du modèle 4507) */
.elementor-element-5c33f6fb > .elementor-element-kdtrust1 { order: 5; margin-top: -6px; }
.kd-trust {
	list-style: none;
	margin: 0;
	padding: 12px 0 0;
	border-top: 1px solid var(--kd-line);
	display: grid;
	gap: 6px;
	font-size: .86rem;
	line-height: 1.45;
	color: var(--kd-ink-soft);
}
.kd-trust li { position: relative; margin: 0; padding-left: 22px; }
.kd-trust li::before {
	content: "";
	position: absolute;
	left: 3px;
	top: .4em;
	width: 10px;
	height: 5px;
	border-left: 1.5px solid var(--kd-gold);
	border-bottom: 1.5px solid var(--kd-gold);
	transform: rotate(-45deg);
}
.elementor-element-2291eae > .woocommerce-product-details__short-description > * { order: 6; margin-top: 0; margin-bottom: 0; }
.elementor-element-2291eae .kd-delivery { order: 3; margin: -14px 0 0 !important; font-size: .85rem; opacity: 1; color: var(--kd-muted); }
.elementor-widget-woocommerce-product-images .woocommerce-product-gallery { margin-bottom: 0 !important; }
@media (max-width: 767px) {
	.elementor-element-188b22d8 .woocommerce-breadcrumb { font-size: .78rem !important; line-height: 1.45 !important; }
	.elementor-widget-woocommerce-product-title .product_title { font-size: 1.75rem !important; }
}
.elementor-element-5c33f6fb > .elementor-element-34dce18 { order: 7; }
.elementor-element-5c33f6fb > .elementor-element-0d3ff0c { order: 8; }
.woocommerce-product-details__short-description h2 {
	font-size: 1.3rem !important;
	margin-top: 8px !important;
}
.elementor-widget-woocommerce-product-price .price {
	font-size: 1.6rem;
	color: var(--kd-ink);
}
@media (max-width: 767px) { .elementor-widget-woocommerce-product-price .price { font-size: 1.4rem; } }
.elementor-widget-woocommerce-product-price .woocommerce-price-suffix { font-size: .8rem; color: var(--kd-muted); }
.elementor-widget-woocommerce-product-price .price { margin: 0 !important; }
/* « Zapytaj o ten model » : bouton secondaire en contour ; l'icône de joinchat
   (blanche) est réutilisée comme masque, teintée en vert WhatsApp foncé. */
.joinchat__woo-btn {
	position: relative;
	background-color: transparent !important;
	background-image: none !important;
	color: var(--kd-ink) !important;
	border: 1px solid var(--kd-line) !important;
	box-shadow: none !important;
}
.joinchat__woo-btn::before {
	content: "";
	position: absolute;
	left: 16px;
	top: 50%;
	width: 20px;
	height: 20px;
	transform: translateY(-50%);
	background-color: #128C7E;
	-webkit-mask: var(--joinchat-ico) center / contain no-repeat;
	mask: var(--joinchat-ico) center / contain no-repeat;
}

/* ---------- Catégorie ---------- */

/* repli de la description (règles du module retirées par l'UCSS) */
.page-description.kd-desc-collapsible {
	max-height: 7.5em;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(#000 60%, transparent);
	mask-image: linear-gradient(#000 60%, transparent);
}
.page-description.kd-desc-collapsible.is-open { max-height: none; -webkit-mask-image: none; mask-image: none; }
.kd-desc-toggle {
	display: inline-block;
	margin: .25em 0 1em;
	padding: 6px 0 !important;
	border: 0 !important;
	background: none !important;
	color: var(--kd-gold) !important;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}
.kd-desc-toggle[hidden] { display: none; }
@media (min-width: 690px) { .kd-desc-toggle { display: none !important; } }

@media (max-width: 689.98px) {
	[data-products] {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		column-gap: 14px !important;
		row-gap: 28px !important;
	}
	[data-products] .woocommerce-loop-product__title { font-size: .92rem !important; line-height: 1.35; }
	[data-products] .kd-delivery { font-size: .72rem; }
	[data-products] .price .woocommerce-price-suffix { display: block; font-size: .72rem; }
	[data-products] .button { width: 100%; padding-left: 8px !important; padding-right: 8px !important; font-size: .85rem; }
}

/* ---------- Accueil ---------- */

.bd-ch-figure { position: relative; overflow: hidden; }
/* la figure doit prendre toute la hauteur de la tuile (400 px), sinon overflow:hidden masque la photo ;
   le titre perd alors le décalage de -390 px que le module prévoyait pour une figure de hauteur nulle */
.bd-ch a.bd-ch-link { height: 100%; }
.bd-ch .bd-ch-title { margin-bottom: 0; }
.bd-ch-figure::after {
	content: "";
	position: absolute;
	inset: 45% 0 0 0;
	background: linear-gradient(to top, rgba(28, 26, 23, .62), rgba(28, 26, 23, 0));
	pointer-events: none;
}
.bd-ch-title {
	position: absolute !important;
	z-index: 1;
	color: #fff !important;
	text-shadow: 0 1px 2px rgba(0, 0, 0, .25);
}
/* héros : halo lin sous le texte posé sur la photo floue */
.elementor-element-646b806 .elementor-heading-title { text-shadow: 0 0 18px rgba(247, 243, 236, .95), 0 0 42px rgba(247, 243, 236, .8); }
.elementor-element.elementor-element-9dad719 .elementor-heading-title {
	font-size: 1.12rem !important;
	font-weight: 500 !important;
	line-height: 1.4 !important; /* 1,0 hérité : deux lignes collées sur téléphone */
	margin-top: 10px;
	color: var(--kd-ink) !important;
	text-shadow: 0 0 10px #F7F3EC, 0 0 22px #F7F3EC, 0 0 40px rgba(247, 243, 236, .9);
}
.elementor-element-7e0b7a5 .elementor-button { background: var(--kd-ink) !important; color: #fff !important; border-color: var(--kd-ink) !important; padding: 16px 30px !important; }
.elementor-element-7e0b7a5 .elementor-button:hover { background: var(--kd-gold) !important; border-color: var(--kd-gold) !important; }
.elementor-divider-separator { --divider-color: #CDBFA6 !important; border-color: #CDBFA6 !important; }
/* logo répété dans la section « Klamki do drzwi ukrytych » : réduit */
.elementor-element-976a074 img { max-width: 170px !important; }
.elementor-element-c66137e img { max-width: 220px !important; }
@media (max-width: 767px) {
	.elementor-element-646b806 .elementor-heading-title { padding-left: 16px; padding-right: 16px; }
	.elementor-widget-text-editor p { text-align: left; }
	/* engagements (doradztwo, dostawa…) en 2 colonnes au lieu de 5 blocs empilés */
	.elementor-element-98709a3 { flex-wrap: wrap !important; }
	.elementor-element-98709a3 > .e-con { --width: 50% !important; width: 50% !important; flex: 0 0 50% !important; border-color: var(--kd-line) !important; border-width: 0 0 1px 0 !important; padding: 18px 8px !important; }
	.elementor-element-98709a3 > .e-con:last-child { --width: 100% !important; width: 100% !important; flex-basis: 100% !important; border-bottom: 0 !important; }
	.elementor-element-98709a3 .elementor-icon-box-title { font-size: .82rem !important; letter-spacing: .06em; }
	.elementor-element-98709a3 .elementor-icon-box-description { font-size: .82rem !important; line-height: 1.45 !important; }
}

/* ---------- Panier ---------- */

.woocommerce-cart .coupon { display: flex; gap: 8px; align-items: stretch; }
.woocommerce-cart .coupon .input-text { flex: 1 1 auto; min-width: 0; }
.woocommerce-cart .coupon .button {
	background: transparent !important;
	color: var(--kd-ink) !important;
	border: 1px solid var(--kd-ink) !important;
	width: auto !important;
}
.woocommerce-cart button[name="update_cart"] {
	background: transparent !important;
	color: var(--kd-muted) !important;
	border: 0 !important;
	text-decoration: underline;
	padding: 8px 0 !important;
	width: auto !important;
}
.woocommerce-cart button[name="update_cart"]:disabled { display: none; }
.woocommerce-cart .product-remove a { display: inline-flex; padding: 12px; margin: -12px; }
@media (max-width: 689.98px) {
	.woocommerce-cart .wc-proceed-to-checkout {
		position: fixed;
		left: 0; right: 0; bottom: 0;
		z-index: 50;
		margin: 0;
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
		background: var(--kd-paper);
		border-top: 1px solid var(--kd-line);
	}
	/* laisse libre le bouton Cookiebot en bas à gauche (non modifié) */
	.woocommerce-cart .wc-proceed-to-checkout { padding-left: 76px; }
	.woocommerce-cart .wc-proceed-to-checkout .checkout-button { margin: 0 !important; }
	.woocommerce-cart { padding-bottom: 76px; }
}
/* la bulle WhatsApp masque les boutons de paiement */
.woocommerce-cart .joinchat, .woocommerce-checkout .joinchat { display: none !important; }

/* ---------- Cibles tactiles ---------- */

[data-elementor-type="header"] .elementor-icon,
[data-elementor-type="header"] .elementor-menu-cart__toggle_button,
[data-elementor-type="header"] .dgwt-wcas-search-icon,
[data-elementor-type="header"] .kd-account-icon a {
	position: relative;
}
[data-elementor-type="header"] .elementor-menu-cart__toggle_button::before,
[data-elementor-type="header"] .dgwt-wcas-search-icon::before,
[data-elementor-type="header"] a[aria-label="Moje konto"]::before {
	content: "";
	position: absolute;
	inset: -12px;
}
.ct-footer .menu a, .ct-footer li a { display: inline-block; padding: 6px 0; }
.show-password-input { padding: 10px !important; }

/* ---------- Pages légales ---------- */

.page-id-2090 .entry-content p, .page-id-2090 .entry-content li { text-align: left !important; }

/* ---------- Carrousels « akcesoria » et « Może spodoba się również » (snippets WPCode 4714 / 4722) ---------- */

/* la grille 2 colonnes des catégories ne doit pas couper chaque vignette en deux */
.custom-accessories-slider [data-products],
.custom-related-products-slider [data-products] { grid-template-columns: minmax(0, 1fr) !important; }
.custom-accessories-slider .swiper-button-prev, .custom-accessories-slider .swiper-button-next,
.custom-related-products-slider .swiper-button-prev, .custom-related-products-slider .swiper-button-next {
	width: 38px !important;
	height: 38px !important;
	border-radius: 50%;
	background: rgba(28, 26, 23, .82) !important;
	color: #fff !important;
	box-shadow: 0 2px 8px rgba(28, 26, 23, .18);
}
.custom-accessories-slider .swiper-button-prev::after, .custom-accessories-slider .swiper-button-next::after,
.custom-related-products-slider .swiper-button-prev::after, .custom-related-products-slider .swiper-button-next::after {
	font-size: 15px !important;
	font-weight: 700;
}
/* au début ou à la fin, la flèche reste visible (pâle) : on comprend qu'on peut défiler */
.custom-accessories-slider .swiper-button-disabled,
.custom-related-products-slider .swiper-button-disabled { opacity: .3 !important; pointer-events: none; }
@media (max-width: 767px) {
	/* centrées sur la photo : 2 vignettes ≈ (100vw − marges) / 2, centre ≈ 25vw − 8px */
	.custom-accessories-slider .swiper-button-prev, .custom-accessories-slider .swiper-button-next,
	.custom-related-products-slider .swiper-button-prev, .custom-related-products-slider .swiper-button-next {
		top: calc(25vw - 8px) !important;
		margin-top: 0 !important;
		transform: translateY(-50%);
	}
	.custom-accessories-slider .swiper-button-prev, .custom-related-products-slider .swiper-button-prev { left: 4px !important; }
	.custom-accessories-slider .swiper-button-next, .custom-related-products-slider .swiper-button-next { right: 4px !important; }
}

/* titres de section un peu moins hauts sur téléphone (3 lignes → 2) */
@media (max-width: 767px) {
	.elementor-widget-heading h2.elementor-heading-title { font-size: clamp(1.6rem, 7vw, 2rem) !important; }
}

/* ---------- Page Kontakt (11) : formulaire + cartes de contact ---------- */

.page-id-11 .kd-contact-lead { max-width: 560px; margin: 0 auto; text-align: center; color: var(--kd-ink-soft); font-size: 1.05rem; }
.page-id-11 .kd-contact-grid { gap: 40px; align-items: flex-start; }
.page-id-11 .kd-contact-form-col,
.page-id-11 .kd-cc {
	background: var(--kd-mat);
	border: 1px solid var(--kd-line);
	border-radius: 4px;
}
.page-id-11 .kd-contact-form-col { padding: 28px 28px 24px !important; }
.page-id-11 .kd-contact-form-col h2 { font-size: 1.6rem !important; margin: 0 0 4px; }
.page-id-11 .kd-contact-form-note { margin: 0 0 18px; color: var(--kd-muted); font-size: .92rem; }
.kd-contact-cards { display: grid; gap: 14px; }
.kd-cc { padding: 18px 20px; }
.kd-cc p { margin: 0; }
.kd-cc-label { font-size: .74rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--kd-gold); margin-bottom: 6px !important; }
.kd-cc-value { font-size: 1.15rem; font-weight: 600; }
.kd-cc-value a { color: var(--kd-ink) !important; text-decoration: none !important; }
.kd-cc-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px !important; }
.kd-cc-actions a {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 44px; padding: 0 18px; border-radius: 2px;
	font-weight: 600; font-size: .92rem; text-decoration: none !important;
	border: 1px solid var(--kd-ink); color: var(--kd-ink) !important; background: transparent;
}
.kd-cc-actions a.kd-btn-wa { background: #128C7E; border-color: #128C7E; color: #fff !important; }
.kd-cc-actions a.kd-btn-wa::before {
	content: ""; width: 18px; height: 18px; background: #fff;
	-webkit-mask: var(--joinchat-ico) center / contain no-repeat; mask: var(--joinchat-ico) center / contain no-repeat;
}
.page-id-11 .kd-company { max-width: 760px; margin: 0 auto; text-align: center; font-size: .82rem; line-height: 1.6; color: var(--kd-muted); }
.page-id-11 .kd-company strong { color: var(--kd-ink-soft); }

/* formulaire WPForms (balisage classique) */
.page-id-11 .wpforms-container { margin: 0 !important; }
.page-id-11 .wpforms-field { padding: 0 0 16px !important; }
.page-id-11 .wpforms-field-label { font-weight: 600 !important; font-size: .92rem !important; margin-bottom: 6px !important; color: var(--kd-ink) !important; }
.page-id-11 .wpforms-required-label { color: var(--kd-gold) !important; }
.page-id-11 .wpforms-field input[type=text],
.page-id-11 .wpforms-field input[type=email],
.page-id-11 .wpforms-field textarea {
	width: 100% !important; max-width: 100% !important;
	background: var(--kd-paper) !important;
	border: 1px solid #D6CCBA !important; border-radius: 2px !important;
	padding: 12px 14px !important; font-size: 1rem !important; color: var(--kd-ink) !important;
	box-shadow: none !important;
}
.page-id-11 .wpforms-field textarea { min-height: 150px !important; }
.page-id-11 .wpforms-field input:focus,
.page-id-11 .wpforms-field textarea:focus { outline: 2px solid var(--kd-gold) !important; outline-offset: 1px; background: #fff !important; }
.page-id-11 .wpforms-field-checkbox li { display: flex !important; gap: 10px; align-items: flex-start; }
.page-id-11 .wpforms-field-checkbox input { margin-top: 4px !important; width: 18px; height: 18px; flex: none; accent-color: var(--kd-ink); }
.page-id-11 .wpforms-field-checkbox label { font-size: .86rem !important; line-height: 1.5 !important; color: var(--kd-ink-soft) !important; }
.page-id-11 .wpforms-field-description { font-size: .78rem !important; color: var(--kd-muted) !important; }
.page-id-11 .wpforms-submit-container { padding-top: 6px !important; }
.page-id-11 button.wpforms-submit {
	width: 100%; min-height: 50px; border: 0 !important; border-radius: 2px !important;
	background: var(--kd-ink) !important; color: #fff !important; font-weight: 600 !important; font-size: 1rem !important;
}
.page-id-11 button.wpforms-submit:hover { background: var(--kd-gold) !important; }
.page-id-11 label.wpforms-error, .page-id-11 em.wpforms-error { color: #A3261B !important; font-size: .85rem !important; }

/* message après envoi : carte sobre au lieu du bandeau vert */
.page-id-11 .wpforms-confirmation-container-full {
	position: relative;
	background: var(--kd-mat) !important; border: 1px solid var(--kd-line) !important; border-radius: 4px;
	padding: 28px 24px 24px 76px !important; color: var(--kd-ink-soft) !important; margin: 0 !important;
}
.page-id-11 .wpforms-confirmation-container-full::before {
	content: ""; position: absolute; left: 24px; top: 28px; width: 36px; height: 36px; border-radius: 50%;
	background: var(--kd-ink);
}
.page-id-11 .wpforms-confirmation-container-full::after {
	content: ""; position: absolute; left: 36px; top: 38px; width: 12px; height: 7px;
	border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg);
}
.page-id-11 .wpforms-confirmation-container-full p { margin: 0 0 10px !important; }
.page-id-11 .wpforms-confirmation-container-full .kd-thanks-title {
	font-family: var(--kd-serif); font-weight: 600; font-size: 1.45rem; color: var(--kd-ink); line-height: 1.25;
}

@media (max-width: 767px) {
	.page-id-11 .kd-contact-grid { gap: 20px; }
	.page-id-11 .kd-contact-aside { order: -1; }
	.page-id-11 .kd-contact-form-col { padding: 22px 18px 18px !important; }
	.kd-cc-actions a { flex: 1 1 auto; }
}
.page-id-11 .kd-contact-grid { display: flex; flex-wrap: wrap; max-width: 1080px; margin: 36px auto 0; text-align: left; }
.page-id-11 .kd-contact-form-col { flex: 1 1 520px; }
.page-id-11 .kd-contact-aside { flex: 1 1 300px; }
.page-id-11 .kd-company { margin-top: 40px !important; }
/* message envoyé : dans la carte du formulaire, sans second cadre ; titre et note masqués */
.page-id-11 .kd-contact-form-col .wpforms-confirmation-container-full { border: 0 !important; padding: 4px 0 0 56px !important; background: transparent !important; }
.page-id-11 .kd-contact-form-col .wpforms-confirmation-container-full::before { left: 0; top: 2px; }
.page-id-11 .kd-contact-form-col .wpforms-confirmation-container-full::after { left: 12px; top: 12px; }
.page-id-11 .kd-contact-form-col:has(.wpforms-confirmation-container-full) > h2,
.page-id-11 .kd-contact-form-col:has(.wpforms-confirmation-container-full) > .kd-contact-form-note { display: none; }
.page-id-11 a[href^="tel:"] { white-space: nowrap; }
/* la page a déjà ses boutons WhatsApp : pas de bulle flottante */
.page-id-11 .joinchat { display: none !important; }

/* ---------- Page O nas (1207) ---------- */

.kd-about { text-align: left; color: var(--kd-ink); }
.kd-about figure { margin: 0; }
.kd-about .kd-about-img { display: block; width: 100%; height: auto; border-radius: 4px; }
.kd-about h2 { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.2rem) !important; margin: 0 0 16px; }
.kd-about h3 { font-family: var(--kd-serif); font-weight: 600; font-size: 1.25rem; margin: 0 0 10px; }
.kd-about p { line-height: 1.7; }
.kd-about section { margin-top: 72px; }

.kd-about-hero { display: grid; grid-template-columns: 1.05fr 1fr; gap: 48px; align-items: center; }
.kd-about-eyebrow { font-size: .78rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--kd-gold); margin: 0 0 10px; }
.kd-about-hero h1 { font-size: clamp(2.4rem, 1.8rem + 2vw, 3.4rem) !important; margin: 0; }
.kd-about-tagline { font-family: var(--kd-serif); font-size: clamp(1.35rem, 1.1rem + .8vw, 1.75rem); line-height: 1.3 !important; color: var(--kd-gold); margin: 8px 0 20px; }
.kd-about-lead { font-size: 1.08rem; color: var(--kd-ink-soft); margin: 0; max-width: 540px; }
.kd-about-hero-img .kd-about-img { aspect-ratio: 4 / 3; object-fit: cover; }

.kd-about-story { display: grid; grid-template-columns: 1fr 1.1fr; gap: 48px; align-items: center; }
.kd-about-story .kd-about-img { aspect-ratio: 4 / 3; object-fit: cover; }
.kd-about-story p { color: var(--kd-ink-soft); margin: 0 0 14px; }

.kd-about-pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.kd-pillar { background: var(--kd-mat); border: 1px solid var(--kd-line); border-radius: 4px; padding: 26px 24px; }
.kd-pillar p { color: var(--kd-ink-soft); margin: 0; font-size: .97rem; }
.kd-pillar .kd-pillar-num { font-family: var(--kd-serif); font-weight: 600; font-size: 1.1rem; color: var(--kd-gold); margin: 0 0 14px; padding-bottom: 12px; border-bottom: 1px solid var(--kd-line); }

.kd-about-trust { display: grid; grid-template-columns: 1.2fr 1fr; gap: 48px; align-items: center; background: var(--kd-paper-deep); border-radius: 4px; padding: 40px; }
.kd-about-trust ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.kd-about-trust li { position: relative; padding-left: 30px; color: var(--kd-ink-soft); line-height: 1.6; }
.kd-about-trust li::before {
	content: ""; position: absolute; left: 4px; top: .45em; width: 12px; height: 6px;
	border-left: 2px solid var(--kd-gold); border-bottom: 2px solid var(--kd-gold); transform: rotate(-45deg);
}
.kd-about-trust .kd-about-img { aspect-ratio: 3 / 2; object-fit: cover; }

.kd-about-cta { text-align: center; padding: 8px 0 0; }
.kd-about-cta p { color: var(--kd-ink-soft); margin: 0 0 22px; }
.kd-about-cta-buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.kd-about-btn {
	display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 28px;
	border: 1px solid var(--kd-ink); border-radius: 2px; background: var(--kd-ink); color: #fff !important;
	font-weight: 600; text-decoration: none !important;
}
.kd-about-btn:hover { background: var(--kd-gold); border-color: var(--kd-gold); }
.kd-about-btn-ghost { background: transparent; color: var(--kd-ink) !important; }
.kd-about-btn-ghost:hover { color: #fff !important; }

@media (max-width: 900px) {
	.kd-about-hero, .kd-about-story, .kd-about-trust { grid-template-columns: 1fr; gap: 24px; }
	.kd-about-pillars { grid-template-columns: 1fr; gap: 14px; }
	.kd-about section { margin-top: 48px; }
	.kd-about-trust { padding: 26px 20px; }
	.kd-about-story figure { order: 2; }
	.kd-about-btn { flex: 1 1 100%; }
}

/* ---------- Cibles tactiles et lecture (audit du 19/10) ---------- */

/* zone de clic portée à 44 px sans changer le dessin, comme pour les icônes d'en-tête */
[data-elementor-type="header"] .elementor-menu-toggle,
.elementor-post__read-more { position: relative; }
[data-elementor-type="header"] .elementor-menu-toggle::before,
.elementor-swiper-button::before,
.elementor-post__read-more::before {
	content: "";
	position: absolute;
	inset: -7px;
}
.elementor-post__read-more::before { inset: -15px 0; }
[data-products] .button { min-height: 44px; }
.kd-cat-faq p { max-width: 75ch; }
/* le repli de la description ne vaut que sur téléphone (comme dans le module) : au-delà,
   le bouton est masqué, le texte doit donc être entier */
@media (min-width: 690px) {
	.page-description.kd-desc-collapsible { max-height: none; -webkit-mask-image: none; mask-image: none; }
}
/* accueil : le grand titre du héros devient le h1 ; il garde sur téléphone la taille des h2 */
@media (max-width: 767px) {
	.elementor-element-c6aef5d h1.elementor-heading-title { font-size: clamp(1.6rem, 7vw, 2rem) !important; }
}

/* ---------- Finition : encre, rayons (audit du 19/10) ---------- */

/* noirs résiduels (#000, #050505, gris Blocksy #3D3D3D) → encre ; html:root passe devant le :root de Blocksy */
html:root {
	--theme-palette-color-1: var(--kd-ink);
	--theme-palette-color-2: var(--kd-ink);
	--theme-palette-color-3: var(--kd-ink);
	--theme-palette-color-4: var(--kd-ink);
	--theme-form-field-border-radius: 2px;
}
body.elementor-kit-53 { --e-global-color-secondary: var(--kd-ink); --e-global-color-text: var(--kd-ink); }
/* noir écrit en dur dans une CSS additionnelle (prix, titres de vignettes, pagination, menu du pied de page) */
body .woocommerce-Price-amount bdi,
body .woocommerce-LoopProduct-link,
body .ct-pagination a,
body footer .menu-item a,
.elementor-element-98709a3 .elementor-icon-box-title { color: var(--kd-ink) !important; }
/* le bouton d'ajout au panier avait sa propre règle (#050505, survol gris) plus spécifique */
.single_add_to_cart_button.button.alt { background: var(--kd-ink) !important; border-color: var(--kd-ink) !important; }
.single_add_to_cart_button.button.alt:hover,
.single_add_to_cart_button.button.alt:focus { background: var(--kd-gold) !important; border-color: var(--kd-gold) !important; }
/* rayons : 2 px pour les commandes, 4 px pour les passe-partout */
/* les champs passent par la variable Blocksy ci-dessus */
.ct-pagination a, .ct-pagination span, .joinchat__woo-btn { border-radius: 2px !important; }
[data-products] figure .ct-media-container { border-radius: 4px; }
.joinchat__woo-btn { font-family: inherit !important; }
.kd-cat-faq p { max-width: 65ch; }

/* ---------- E-mail et réseaux sociaux : de l'en-tête au pied de page (19/10) ---------- */

/* en-tête : le bandeau garde seulement la promesse, centrée (en-tête 3952 de l’accueil, 3979 des autres pages) */
[data-elementor-type="header"] .elementor-element-20d2e95,
[data-elementor-type="header"] .elementor-element-a08a31b,
[data-elementor-type="header"] .elementor-element-4b9c48a,
[data-elementor-type="header"] .elementor-element-0e86e6a { display: none !important; }
/* pied de page : contact en 4e colonne à droite d'INFO (comme millapoignees.fr), copyright seul en bas (20/10) */
.ct-footer [data-column="copyright"] { --horizontal-alignment: center; }
.ct-footer [data-column="widget-area-4"] .ct-widget { margin: 0; }
.kd-footer-contact { margin: 0 0 10px; }
.kd-footer-contact a { color: var(--kd-ink) !important; text-decoration: underline; text-underline-offset: 3px; }
.kd-footer-note { color: var(--kd-muted); font-size: .85em; }
.kd-footer-social.wp-block-social-links { display: flex; gap: 4px; margin: 6px 0 0 -11px; padding: 0; list-style: none; }
.kd-footer-social .wp-social-link { margin: 0; background: none !important; color: var(--kd-gold) !important; }
.kd-footer-social .wp-social-link a { display: flex; padding: 11px; color: inherit !important; }
.kd-footer-social .wp-social-link svg { width: 22px; height: 22px; fill: currentColor; }
.kd-footer-social .wp-social-link a:hover { color: var(--kd-ink) !important; }
/* Blocksy ne régénère pas sa CSS de grille quand on change les rangées hors de l'outil de personnalisation : on la pose ici */
@media (min-width: 1000px) {
	[data-footer] .ct-footer [data-row="middle"] > div.ct-container { --grid-template-columns: 1.3fr 1fr 1fr 1fr; }
	[data-footer] .ct-footer [data-row="bottom"] > div.ct-container { --grid-template-columns: 1fr; }
}
@media (max-width: 999.98px) {
	.ct-footer [data-row="bottom"] { padding-bottom: 72px; } /* la bulle WhatsApp ne couvre plus le copyright */
}


/* ---------- En-tête général et description de catégorie (20/10) ---------- */

/* en-tête 3979 : le conteneur vide de l'e-mail et des icônes ne décale plus la promesse, qui reste centrée */
[data-elementor-type="header"] .elementor-element-11d9123 { display: none !important; }
[data-elementor-type="header"] .elementor-element-27f8886 { justify-content: center !important; }
[data-elementor-type="header"] .elementor-element-07b5b18 { --width: auto !important; width: auto !important; justify-content: center !important; text-align: center; }
/* description de catégorie : la classe est dans le HTML dès le départ (l'identifiant #kd-category-description,
   posé par le script du module, faisait rétrécir le texte après l'affichage) ; sur ordinateur, deux colonnes */
.page-description p { max-width: 65ch; }
@media (min-width: 1000px) {
	.page-description { max-width: none; }
	/* deux colonnes seulement s'il y a au moins deux paragraphes, sinon la 2e resterait vide */
	.page-description:has(> p + p) { column-count: 2; column-gap: 56px; column-rule: 1px solid var(--kd-line); }
	.page-description:has(> p + p) p { max-width: none; margin-top: 0; break-inside: avoid-column; }
}

/* en-tête : menu centré entre le logo et les icônes, sur l'axe de la promesse du bandeau (≥ 1025 px, au-dessous : burger) */
@media (min-width: 1025px) {
	[data-elementor-type="header"] .elementor-element-kdgrp1,
	[data-elementor-type="header"] .elementor-element-kdgrp2 { flex: 1 1 auto !important; --width: auto !important; }
	/* le logo garde sa place (160 px) : sans cela le groupe du menu l'écrase et le centre se décale */
	/* en-tête 3979 (toutes les pages) : logo c029b29 / menu e6181a8 ; en-tête 3952 (accueil) : logo fe861f4 / menu fe02a27 */
	[data-elementor-type="header"] .elementor-element-c029b29,
	[data-elementor-type="header"] .elementor-element-fe861f4 { flex: 0 0 160px !important; --width: 160px !important; width: 160px !important; }
	[data-elementor-type="header"] .elementor-element-c029b29 > .elementor-element-3dd8d8f,
	[data-elementor-type="header"] .elementor-element-fe861f4 > .elementor-element-ff76d66 { width: 100% !important; }
	[data-elementor-type="header"] .elementor-element-e6181a8,
	[data-elementor-type="header"] .elementor-element-fe02a27 { flex: 1 1 auto !important; --width: auto !important; margin-right: auto; }
	[data-elementor-type="header"] .elementor-element-e6181a8 nav,
	[data-elementor-type="header"] .elementor-element-fe02a27 nav { width: 100%; }
	[data-elementor-type="header"] .elementor-element-e6181a8 ul.elementor-nav-menu,
	[data-elementor-type="header"] .elementor-element-fe02a27 ul.elementor-nav-menu { justify-content: center !important; width: 100%; }
}

/* ── Tablette et mobile (20/10) ─────────────────────────────────────────────── */
/* Pied de page : 2×2 sur tablette ; sur mobile, SKLEP | INFO côte à côte, présentation et KONTAKT en pleine largeur. */
@media (min-width: 690px) and (max-width: 999.98px) {
	[data-footer] .ct-footer [data-row="middle"] > div.ct-container { --grid-template-columns: repeat(2, minmax(0, 1fr)) !important; column-gap: 40px; row-gap: 36px; }
}
@media (max-width: 689.98px) {
	[data-footer] .ct-footer [data-row="middle"] > div.ct-container { --grid-template-columns: repeat(2, minmax(0, 1fr)) !important; column-gap: 24px; row-gap: 32px; }
	[data-footer] .ct-footer [data-row="middle"] [data-column]:first-child,
	[data-footer] .ct-footer [data-row="middle"] [data-column]:last-child { grid-column: 1 / -1; }
}
/* Description de catégorie repliée aussi sur tablette : les produits remontent de 693 à 444 px. */
@media (min-width: 690px) and (max-width: 999.98px) {
	.page-description.kd-desc-collapsible { max-height: 7.5em !important; overflow: hidden; -webkit-mask-image: linear-gradient(#000 60%, transparent) !important; mask-image: linear-gradient(#000 60%, transparent) !important; }
	.page-description.kd-desc-collapsible.is-open { max-height: none !important; -webkit-mask-image: none !important; mask-image: none !important; }
	.kd-desc-toggle:not([hidden]) { display: inline-block !important; }
}
/* Fiche produit sur tablette : quantité + « Dodaj do koszyka » sur une ligne, WhatsApp dessous (il débordait de 16 px). */
@media (min-width: 768px) and (max-width: 1024px) {
	.elementor-widget-woocommerce-product-add-to-cart form.cart { display: flex !important; flex-wrap: wrap !important; gap: 10px; }
	.elementor-widget-woocommerce-product-add-to-cart form.cart .single_add_to_cart_button { flex: 1 1 auto; width: auto !important; margin-left: 0 !important; white-space: nowrap; }
	.elementor-widget-woocommerce-product-add-to-cart .joinchat__woo-btn__wrapper { flex: 0 0 100% !important; width: 100% !important; margin: 0 !important; }
	.elementor-widget-woocommerce-product-add-to-cart .joinchat__woo-btn { width: 100% !important; margin-left: 0 !important; justify-content: center; }
}

/* ── Filtres (20/10) ─────────────────────────────────────────────────────────── */
/* Curseur de prix BeRocket (jQuery UI) et flèche des rubriques : leurs styles manquaient (classes posées par
   JavaScript, retirées par l'UCSS de LiteSpeed) — le curseur était invisible, à toutes les largeurs. */
#sidebar .bapf_slidr_main.ui-slider { position: relative; height: 4px; margin: 16px 11px 10px; border-radius: 2px; background: var(--kd-line); }
#sidebar .bapf_slidr_main .ui-slider-range { position: absolute; top: 0; height: 100%; background: var(--kd-ink); }
#sidebar .bapf_slidr_main .ui-slider-handle { position: absolute; top: 50%; z-index: 2; width: 22px; height: 22px; margin: -11px 0 0 -11px; border: 2px solid var(--kd-ink); border-radius: 50%; background: #fff; cursor: grab; touch-action: none; }
#sidebar .bapf_colaps_smb.fa-chevron-down::before { content: "\f078"; }
#sidebar .bapf_colaps_smb.fa-chevron-up::before { content: "\f077"; }
/* Sous 1000 px : bouton « Filtry » sur la ligne du tri, colonne #sidebar en panneau latéral (script dans functions.php).
   « Pokaż produkty » est aligné à droite pour laisser libre le badge Cookiebot, en bas à gauche. */
@media (max-width: 999.98px) {
	.woo-listing-top { display: flex; align-items: center; gap: 12px; }
	.kd-filter-btn { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px; margin: 0 auto 0 0; border: 1px solid var(--kd-line); border-radius: 2px; background: var(--kd-mat); color: var(--kd-ink); font-size: 15px; font-weight: 500; line-height: 1; cursor: pointer; }
	.kd-filter-btn svg { width: 16px; height: 16px; }
	html #sidebar { display: flex !important; flex-direction: column; position: fixed !important; top: 0; bottom: 0; left: 0; z-index: 100000; width: min(360px, 88vw); max-width: none; height: 100%; margin: 0; padding: 0; background: var(--kd-paper); box-shadow: 0 0 40px rgba(28, 26, 23, .18); transform: translateX(-105%); visibility: hidden; transition: transform .25s ease, visibility 0s .25s; }
	.kd-filters-open #sidebar { transform: none; visibility: visible; transition: transform .25s ease; }
	#sidebar .ct-sidebar { flex: 1; overflow-y: auto; padding: 8px 20px 20px; position: static !important; }
	#sidebar .bapf_head h3 { margin: 18px 0 6px; font-size: 17px; }
	#sidebar .bapf_body li { display: flex; align-items: center; gap: 10px; min-height: 40px; margin: 0; }
	#sidebar .bapf_body li label { flex: 1; padding: 6px 0; font-size: 15px; line-height: 1.3; cursor: pointer; }
	#sidebar .bapf_body input[type="checkbox"] { flex: 0 0 20px; width: 20px; height: 20px; margin: 0; accent-color: var(--kd-ink); }
	.kd-filter-head { display: flex; justify-content: space-between; align-items: center; padding: 10px 12px 10px 20px; border-bottom: 1px solid var(--kd-line); font-family: var(--kd-serif); font-size: 20px; font-weight: 600; color: var(--kd-ink); }
	.kd-filter-close { width: 44px; height: 44px; padding: 0; border: 0; background: none; color: var(--kd-ink); font-size: 30px; line-height: 1; cursor: pointer; }
	.kd-filter-foot { display: flex; justify-content: flex-end; padding: 12px 20px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--kd-line); }
	.kd-filter-done { height: 48px; padding: 0 28px; border: 0; border-radius: 2px; background: var(--kd-ink); color: #fff; font-size: 16px; font-weight: 600; cursor: pointer; }
	.kd-filter-overlay { position: fixed; inset: 0; z-index: 99999; background: rgba(28, 26, 23, .35); opacity: 0; visibility: hidden; transition: opacity .25s, visibility 0s .25s; }
	.kd-filters-open .kd-filter-overlay { opacity: 1; visibility: visible; transition: opacity .25s; }
	html.kd-filters-open, .kd-filters-open body { overflow: hidden; }
}
@media (min-width: 1000px) {
	.kd-filter-btn, .kd-filter-head, .kd-filter-foot, .kd-filter-overlay { display: none !important; }
}

/* Menu (20/10) : « Zobacz wszystkie klamki » en tête du sous-menu « Klamki do drzwi » — en gras, flèche, filet. */
[data-elementor-type="header"] .elementor-nav-menu .kd-menu-all > a { font-weight: 600 !important; color: var(--kd-ink) !important; }
[data-elementor-type="header"] .elementor-nav-menu .kd-menu-all > a::after { content: "\2192"; content: "\2192" / ""; margin-left: 6px; }
[data-elementor-type="header"] .elementor-nav-menu--main .kd-menu-all { border-bottom: 1px solid var(--kd-line); }

/* ── Koszyk, zamówienie, konto (23/10, audyt Impeccable) ─────────────────────── */
/* Przyciski zbudowane jako linki (a.button) przejmowały złoty kolor linków z Elementora: złoty na czarnym, 2,8:1. */
.woocommerce a.button, a.button.wc-backward, a.button.wc-forward { color: #fff !important; }
.woocommerce a.button:hover, .woocommerce a.button:focus-visible { color: #fff !important; background-color: var(--kd-gold) !important; border-color: var(--kd-gold) !important; }
/* Główne przyciski zakupu: 48 px, pozostałe przyciski WooCommerce: 44 px (cel dotyku). */
.checkout-button, #place_order { min-height: 48px; display: inline-flex !important; align-items: center; justify-content: center; }
.woocommerce .button, .woocommerce button.button { min-height: 44px; }
/* Ilość w koszyku: −/+ były polami 21×21 px, a cyfra miała 12,6 px (iPhone powiększał ekran po dotknięciu). */
.woocommerce-cart-form .quantity[data-type="type-2"] { --quantity-width: 128px !important; --quantity-height: 44px !important; width: 128px !important; height: 44px !important; }
.woocommerce-cart-form .quantity[data-type="type-2"] .ct-decrease,
.woocommerce-cart-form .quantity[data-type="type-2"] .ct-increase { width: 40px !important; height: 40px !important; top: 2px !important; justify-content: center; align-items: center; display: flex !important; cursor: pointer; }
.woocommerce-cart-form .quantity[data-type="type-2"] .ct-decrease { left: 2px !important; }
.woocommerce-cart-form .quantity[data-type="type-2"] .ct-increase { right: 2px !important; left: auto !important; }
.woocommerce-cart-form .quantity[data-type="type-2"] input.qty { width: 100% !important; height: 100% !important; font-size: 16px !important; padding-left: 42px !important; padding-right: 42px !important; }

/* Moje konto → Zamówienia: jeden przycisk główny (Zobacz), reszta obrysowana; status anulowany wyciszony. */
.woocommerce-orders-table__cell-order-actions .button { min-height: 40px; padding: 0 16px !important; font-size: 14px !important; white-space: nowrap; }
.woocommerce-orders-table__cell-order-actions .button.invoice,
.woocommerce-orders-table__cell-order-actions .button.klamki_withdrawal { background: transparent !important; color: var(--kd-ink) !important; border: 1px solid var(--kd-ink) !important; }
.woocommerce-orders-table__cell-order-actions .button.invoice:hover,
.woocommerce-orders-table__cell-order-actions .button.klamki_withdrawal:hover { background: var(--kd-ink) !important; color: #fff !important; }
.woocommerce-orders-table__row--status-cancelled .woocommerce-orders-table__cell-order-status,
.woocommerce-orders-table__row--status-failed .woocommerce-orders-table__cell-order-status { color: var(--kd-muted) !important; }
.woocommerce-orders-table__cell-order-status::before { color: var(--kd-ink) !important; }
.woocommerce-orders-table__row--status-processing .woocommerce-orders-table__cell-order-status,
.woocommerce-orders-table__row--status-on-hold .woocommerce-orders-table__cell-order-status,
.woocommerce-orders-table__row--status-pending .woocommerce-orders-table__cell-order-status { color: var(--kd-gold) !important; font-weight: 600; }
@media (min-width: 769px) {
	td.woocommerce-orders-table__cell-order-actions { display: flex !important; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
	td.woocommerce-orders-table__cell-order-actions .button { margin: 0 !important; display: inline-flex !important; align-items: center; }
	td.woocommerce-orders-table__cell-order-actions .button.view { order: 1; }
	td.woocommerce-orders-table__cell-order-actions .button.invoice { order: 2; }
	td.woocommerce-orders-table__cell-order-actions .button.klamki_withdrawal { order: 3; }
}
@media (max-width: 768px) {
	/* Karta zamówienia: Zobacz + Faktura obok siebie, „Odstąp od umowy tutaj” (brzmienie wymagane przez dyrektywę UE) pod spodem, na całą szerokość. */
	.woocommerce-account table.shop_table_responsive tr.woocommerce-orders-table__row { display: block; padding: 8px 0 16px; border-bottom: 1px solid var(--kd-line); }
	.woocommerce-account table.shop_table_responsive tr.woocommerce-orders-table__row td,
	.woocommerce-account table.shop_table_responsive tr.woocommerce-orders-table__row th { padding-top: 8px !important; padding-bottom: 8px !important; }
	/* Blocksy ukrywał numer zamówienia na telefonie: karta nie mówiła, którego zamówienia dotyczy. */
	.woocommerce-account table.shop_table_responsive tr.woocommerce-orders-table__row th.woocommerce-orders-table__cell-order-number { display: block !important; padding: 6px 0 4px !important; text-align: left !important; border: 0 !important; font-family: var(--kd-serif); font-size: 18px; font-weight: 600; }
	.woocommerce-account table.shop_table_responsive tr.woocommerce-orders-table__row th.woocommerce-orders-table__cell-order-number::before { content: attr(data-title) " " !important; float: none !important; display: inline !important; font-weight: 600; }
	.woocommerce-account table.shop_table_responsive tr.woocommerce-orders-table__row th.woocommerce-orders-table__cell-order-number a { color: var(--kd-ink) !important; text-decoration: none; }
	td.woocommerce-orders-table__cell-order-actions { display: flex !important; flex-wrap: wrap; gap: 8px; padding-top: 12px !important; }
	td.woocommerce-orders-table__cell-order-actions::before { display: none !important; }
	td.woocommerce-orders-table__cell-order-actions .button { flex: 1 1 calc(50% - 4px); min-height: 44px; margin: 0 !important; display: inline-flex !important; align-items: center; justify-content: center; }
	td.woocommerce-orders-table__cell-order-actions .button.view { order: 1; }
	td.woocommerce-orders-table__cell-order-actions .button.invoice { order: 2; }
	td.woocommerce-orders-table__cell-order-actions .button.klamki_withdrawal { order: 3; flex-basis: 100%; }
	/* Menu konta: 2 kolumny zamiast 6 wierszy, które zajmowały cały pierwszy ekran. */
	.woocommerce-MyAccount-navigation ul { display: grid !important; grid-template-columns: 1fr 1fr; gap: 0; }
	.woocommerce-MyAccount-navigation ul li:last-child:nth-child(odd) { grid-column: 1 / -1; }
	.woocommerce-MyAccount-navigation ul li a { padding-left: 14px !important; padding-right: 10px !important; }
}

/* Zamówienie: jeden kraj dostawy (Polska), więc lista wyboru kraju była zbędna; NIP mówił to samo trzy razy. */
#billing_country_field, #shipping_country_field { display: none !important; }
#vat_number_field .description { display: none !important; }
form.checkout .payment_box, form.checkout .payment_box p, form.checkout .payment_box div, form.checkout .payment_box span,
.woocommerce-privacy-policy-text, .woocommerce-privacy-policy-text p { font-size: 14px !important; line-height: 1.5 !important; }
/* Przełącznik „Chcę fakturę na firmę” i linia zaufania nad przyciskiem (skrypt w functions.php). */
.kd-invoice-toggle { margin: 4px 0 18px !important; }
.kd-invoice-toggle label { display: flex !important; align-items: center; gap: 10px; min-height: 44px; font-size: 16px; cursor: pointer; }
.kd-invoice-toggle input { width: 20px; height: 20px; margin: 0; accent-color: var(--kd-ink); }
form.checkout.kd-no-company #billing_company_field, form.checkout.kd-no-company #vat_number_field { display: none !important; }
.kd-checkout-trust { margin: 0 0 14px; font-size: 14px; line-height: 1.5; color: var(--kd-ink-soft); text-align: center; }

/* Koszyk na telefonie (23/10): pole kuponu zwinięte pod linkiem „Masz kod rabatowy?” (skrypt w functions.php). */
.kd-coupon-toggle { display: none; }
@media (max-width: 689.98px) {
	.kd-coupon-toggle { display: inline-flex !important; align-items: center; min-height: 44px; padding: 0 !important; margin: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; color: var(--kd-ink) !important; font-size: 15px !important; font-weight: 400 !important; letter-spacing: 0 !important; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; cursor: pointer; }
	.woocommerce-cart-form .coupon:not(.is-open) { display: none !important; }
}

/* ── Dodawanie do koszyka i mini-koszyk (23/10) ─────────────────────────────── */
/* Po dodaniu Blocksy podmieniał „Dodaj do koszyka” na „Zobacz koszyk” w identycznym wyglądzie: nic nie było widać. */
:root { --kd-ok: #2F6B45; } /* zieleń potwierdzenia: 5,7:1 na lnie */
a.added_to_cart { background: transparent !important; color: var(--kd-ink) !important; border: 1px solid var(--kd-ink) !important; box-shadow: none !important; }
a.added_to_cart:hover, a.added_to_cart:focus-visible { background: var(--kd-ink) !important; color: #fff !important; }
.ct-woo-card-actions:has(.added_to_cart) { flex-wrap: wrap; }
.ct-woo-card-actions:has(.added_to_cart)::before {
	content: "Dodano do koszyka";
	flex: 0 0 100%; display: block; margin: 0 0 8px; padding-left: 24px;
	font-size: 14px; font-weight: 600; line-height: 18px; color: var(--kd-ok);
	background: no-repeat left center / 18px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Ccircle cx='9' cy='9' r='9' fill='%232F6B45'/%3E%3Cpath d='M5 9.2l2.6 2.6L13 6.4' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	animation: kd-added .45s cubic-bezier(.16, 1, .3, 1) both;
}
@keyframes kd-added { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
/* Licznik w nagłówku podskakuje przy każdym dodaniu (klasa z functions.php). */
.elementor-button-icon-qty.kd-bump { animation: kd-bump .6s cubic-bezier(.16, 1, .3, 1); }
@keyframes kd-bump { 0% { transform: scale(1); } 35% { transform: scale(1.45); } 100% { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) {
	.ct-woo-card-actions:has(.added_to_cart)::before, .elementor-button-icon-qty.kd-bump { animation: none; }
}
/* Mini-koszyk: płatność na pierwszym planie, „Zobacz koszyk” obrysowany; oba w jednej linii (wcześniej szare, 62 px w dwóch liniach). */
.elementor-menu-cart__footer-buttons { display: flex !important; flex-direction: column; gap: 10px !important; }
.elementor-menu-cart__footer-buttons .elementor-button { width: 100% !important; min-height: 48px; display: flex !important; align-items: center; justify-content: center; padding: 0 16px !important; white-space: nowrap; font-size: 16px !important; font-weight: 600 !important; border-radius: 2px !important; }
.elementor-menu-cart__footer-buttons .elementor-button--checkout { order: 1; background: var(--kd-ink) !important; color: #fff !important; border: 1px solid var(--kd-ink) !important; }
.elementor-menu-cart__footer-buttons .elementor-button--checkout:hover { background: var(--kd-gold) !important; border-color: var(--kd-gold) !important; }
.elementor-menu-cart__footer-buttons .elementor-button--view-cart { order: 2; background: transparent !important; color: var(--kd-ink) !important; border: 1px solid var(--kd-ink) !important; }
.elementor-menu-cart__footer-buttons .elementor-button--view-cart:hover { background: var(--kd-ink) !important; color: #fff !important; }
/* Komunikaty sukcesu WooCommerce (np. „…został dodany do koszyka” na karcie produktu): zielone potwierdzenie zamiast szarego dzwonka informacji. */
.woocommerce-message { background: #EAF1EC !important; border: 1px solid #CBDDD0 !important; color: var(--kd-ink) !important; }
.woocommerce-message::before { content: "" !important; font-family: inherit !important; width: 18px !important; height: 18px !important; color: transparent !important; -webkit-mask: none !important; mask: none !important; background: no-repeat center / 18px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Ccircle cx='9' cy='9' r='9' fill='%232F6B45'/%3E%3Cpath d='M5 9.2l2.6 2.6L13 6.4' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important; }
/* Karta produktu: tytuły akordeonu (Opis produktu / FAQ / Dostawa) są od 02.11 nagłówkami H2 (ClickUp „Balisage Sémantique - Produits”). Wygląd jak wcześniej, gdy były <div>: bez kroju i rozmiaru nagłówków motywu. */
.elementor-element-34dce18 .elementor-tab-title { font-family: "Kumbh Sans", sans-serif !important; font-size: 16px !important; font-weight: 700 !important; line-height: 16px !important; letter-spacing: normal !important; margin: 0 !important; text-wrap: wrap; }
/* Kontakt (02.11): formularz Elementor Pro (szablon „Formularz kontaktowy (Kontakt)”) zamiast WPForms 2234 — ten sam wygląd co wyżej. */
.page-id-11 .kd-contact-form-col .elementor-form { margin: 0; }
.page-id-11 .kd-contact-form-col .elementor-field-label { font-weight: 600 !important; font-size: .92rem !important; margin-bottom: 6px !important; color: var(--kd-ink) !important; }
.page-id-11 .kd-contact-form-col .elementor-mark-required .elementor-field-label::after { color: var(--kd-gold) !important; }
.page-id-11 .kd-contact-form-col .elementor-field-textual {
	width: 100% !important; max-width: 100% !important; min-height: 0 !important;
	background: var(--kd-paper) !important;
	border: 1px solid #D6CCBA !important; border-radius: 2px !important;
	padding: 12px 14px !important; font-size: 1rem !important; line-height: 1.4 !important; color: var(--kd-ink) !important;
	box-shadow: none !important;
}
.page-id-11 .kd-contact-form-col textarea.elementor-field-textual { min-height: 150px !important; }
.page-id-11 .kd-contact-form-col .elementor-field-textual:focus { outline: 2px solid var(--kd-gold) !important; outline-offset: 1px; background: #fff !important; }
.page-id-11 .kd-contact-form-col .elementor-field-type-acceptance .elementor-field-option { display: flex !important; gap: 10px; align-items: flex-start; }
.page-id-11 .kd-contact-form-col .elementor-field-type-acceptance input { margin-top: 4px !important; width: 18px; height: 18px; flex: none; accent-color: var(--kd-ink); }
.page-id-11 .kd-contact-form-col .elementor-field-type-acceptance .elementor-field-option label { font-size: .86rem !important; line-height: 1.5 !important; color: var(--kd-ink-soft) !important; font-weight: 400 !important; }
.page-id-11 .kd-contact-form-col .kd-form-note { margin: -8px 0 0; font-size: .78rem; line-height: 1.5; color: var(--kd-muted); }
.page-id-11 .kd-contact-form-col .elementor-field-type-submit .elementor-button {
	width: 100%; min-height: 50px; border: 0 !important; border-radius: 2px !important;
	background: var(--kd-ink) !important; color: #fff !important; font-weight: 600 !important; font-size: 1rem !important;
}
.page-id-11 .kd-contact-form-col .elementor-field-type-submit .elementor-button:hover { background: var(--kd-gold) !important; }
.page-id-11 .kd-contact-form-col .elementor-message-danger,
.page-id-11 .kd-contact-form-col .elementor-help-inline { color: #A3261B !important; font-size: .85rem !important; }
.page-id-11 .kd-contact-form-col .elementor-message-success { position: relative; margin-top: 18px; padding: 4px 0 0 56px; color: var(--kd-ink-soft) !important; font-size: 1rem; line-height: 1.6; }
.page-id-11 .kd-contact-form-col .elementor-message-success::before {
	content: "" !important; position: absolute; left: 0; top: 2px; width: 36px; height: 36px; border-radius: 50%; background: var(--kd-ink);
}
.page-id-11 .kd-contact-form-col .elementor-message-success::after {
	content: ""; position: absolute; left: 12px; top: 12px; width: 12px; height: 7px;
	border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg);
}
