/*
 Theme Name:   Fribourg
 Theme URI:    https://fribourg.ch
 Description:  Thème enfant basé sur GeneratePress pour l'e-shop merchandising FRIBOURG.
 Author:       [[A_COMPLETER_AUTEUR]]
 Author URI:   [[A_COMPLETER_AUTEUR_URL]]
 Template:     generatepress
 Version:      1.0.1
 License:      GNU General Public License v2 or later
 License URI:  https://www.gnu.org/licenses/gpl-2.0.html
 Text Domain:  fribourg
*/

/* ==========================================================================
   Forcer le mode clair (empêche l'assombrissement auto de Samsung Internet /
   Chromium qui rend les logos SVG invisibles en mode sombre)
   ========================================================================== */
:root {
	color-scheme: only light;
}

/* ==========================================================================
   Fonts
   ========================================================================== */

/* NeueFreigeist — titres */
@font-face {
	font-family: 'NeueFreigeist';
	font-style: normal;
	font-weight: 100;
	src: url('fonts/NeueFreigeist/NeueFreigeist-Regular.woff2') format('woff2'),
		url('fonts/NeueFreigeist/NeueFreigeist-Regular.woff') format('woff');
	font-display: swap;
}

@font-face {
	font-family: 'NeueFreigeist';
	font-style: normal;
	font-weight: 500;
	src: url('fonts/NeueFreigeist/NeueFreigeist-Bold.woff2') format('woff2'),
		url('fonts/NeueFreigeist/NeueFreigeist-Bold.woff') format('woff');
	font-display: swap;
}

/* Switzer — textes de contenu */
@font-face {
	font-family: 'Switzer';
	font-style: normal;
	font-weight: 300;
	src: url('fonts/switzer/Switzer-Light.woff2') format('woff2'),
		url('fonts/switzer/Switzer-Light.woff') format('woff');
	font-display: swap;
}

@font-face {
	font-family: 'Switzer';
	font-style: normal;
	font-weight: 700;
	src: url('fonts/switzer/Switzer-Bold.woff2') format('woff2'),
		url('fonts/switzer/Switzer-Bold.woff') format('woff');
	font-display: swap;
}

/* -------------------------------------------------------------------------
   Attribution des fonts
   ------------------------------------------------------------------------- */

/* Titres : NeueFreigeist */
h1, h2, h3, h4, h5, h6,
.woocommerce-loop-product__title,
.product_title,
.page-title,
.entry-title {
	font-family: 'NeueFreigeist', sans-serif !important;
}

/* Titres pages intérieures */
h1, .entry-title {
	font-size: clamp(35px, calc(35px + (80 - 35) * ((100vw - 375px) / (1200 - 375))), 80px) !important;
	line-height: 1.1;
	margin-top: 100px;
}

h2 {
	font-size: clamp(22px, calc(22px + (25 - 22) * ((100vw - 375px) / (1200 - 375))), 25px) !important;
	line-height: 1.4;
}

@media (max-width: 768px) {
	h1, .entry-title {
		margin-top: 20px;
	}

	h2 {
		line-height: 1.1;
	}

	/* Réduire le padding des conteneurs GeneratePress en mobile */
	.separate-containers .inside-article,
	.separate-containers .comments-area,
	.separate-containers .page-header,
	.separate-containers .paging-navigation,
	.one-container .site-content,
	.inside-page-header {
		padding: 20px !important;
	}
}

/* Cacher le fil d'Ariane et le titre de page */
.woocommerce-breadcrumb,
nav.yoast-breadcrumbs,
.breadcrumbs,
.entry-header,
.page-header {
	display: none !important;
}


/* Contenu : Switzer */
body,
p,
li,
a,
span,
.price,
.woocommerce ul.products li.product .price {
	font-family: 'Switzer', sans-serif !important;
}

/* ==========================================================================
   Personnalisations Fribourg
   ========================================================================== */

/* -------------------------------------------------------------------------
   Grille catalogue — même hauteur par ligne
   ------------------------------------------------------------------------- */
ul.products {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: stretch !important;
}

/* -------------------------------------------------------------------------
   Vignettes produits
   ------------------------------------------------------------------------- */

/* Carte produit : fond, bordure, coins arrondis, hover */
ul.products li.product {
	display: flex !important;
	flex-direction: column !important;
	position: relative;
	background: #fff;
	/* border: 1px solid #e5e7eb; */
	border-radius: 8px;
	padding: 16px 16px 20px !important;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

ul.products li.product:hover {
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
	transform: translateY(-2px);
}

/* Marges entre vignettes — 3 colonnes */
ul.products li.product {
	margin-right: 15px !important;
	margin-bottom: 15px !important;
	width: calc(33.333% - 10px) !important;
}

ul.products li.product:nth-child(3n) {
	margin-right: 0 !important;
}

/* Image — conteneur uniforme (hauteur fixe, image centrée) */
ul.products li.product a img,
ul.products li.product img.attachment-woocommerce_thumbnail {
	width: 100%;
	height: 280px;
	object-fit: contain;
	background: #fff;
	border-radius: 6px;
	padding: 12px;
	margin-bottom: 12px;
}

/* Titre produit */
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2 {
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.35;
	color: #1a1a1a;
	margin: 0 0 6px;
	text-align: center;
}

/* Prix */
.woocommerce:where(body:not(.woocommerce-uses-block-theme)) ul.products li.product .price {
	color: #000;
}

.woocommerce ul.products li.product .price {
	display: block;
	font-weight: 200;
	margin-bottom: .5em;
	font-size: 1.2em;
	margin-top: .9em !important;
	text-align: center;
}

/* Lien produit : prend toute la hauteur dispo */
ul.products li.product a.woocommerce-LoopProduct-link {
	display: flex;
	flex-direction: column;
	flex: 1;
}

/* Pousser le prix en bas du lien (juste avant le bouton) */
ul.products li.product a.woocommerce-LoopProduct-link .price {
	margin-top: auto;
}

/* -------------------------------------------------------------------------
   Icônes produit (+ panier / oeil voir) — overlay sur l'image
   ------------------------------------------------------------------------- */

/* Conteneur des icônes */
.fribourg-product-icons {
	position: absolute;
	top: 12px;
	right: 12px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	opacity: 0;
	transform: translateX(8px);
	transition: opacity 0.25s ease, transform 0.25s ease;
	z-index: 2;
}

/* Apparaît au hover de la carte */
ul.products li.product:hover .fribourg-product-icons {
	opacity: 1;
	transform: translateX(0);
}

/* Chaque icône */
.fribourg-icon-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: clamp(34px, calc(34px + (44 - 34) * ((100vw - 375px) / (1200 - 375))), 44px);
	height: clamp(34px, calc(34px + (44 - 34) * ((100vw - 375px) / (1200 - 375))), 44px);
	background: #1a1a1a;
	color: #fff;
	border-radius: 50%;
	text-decoration: none;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
	transition: background 0.2s ease, transform 0.15s ease;
}

.fribourg-icon-btn:hover {
	background: #333;
	transform: scale(1.1);
	color: #fff;
}

.fribourg-icon-btn svg {
	display: block;
}

/* Cacher le bouton WooCommerce par défaut (remplacé par icônes) */
ul.products li.product > .button,
ul.products li.product > a.add_to_cart_button {
	display: none !important;
}

/* Masquer le lien "Voir le panier" après ajout AJAX */
ul.products li.product .added_to_cart {
	display: none !important;
}

/* -------------------------------------------------------------------------
   Responsive — images plus petites sur mobile
   ------------------------------------------------------------------------- */
@media (max-width: 960px) {
	/* 2 colonnes à partir de 960px */
	ul.products li.product {
		width: calc(50% - 8px) !important;
		margin-right: 15px !important;
	}

	ul.products li.product:nth-child(3n) {
		margin-right: 15px !important;
	}

	ul.products li.product:nth-child(2n) {
		margin-right: 0 !important;
	}
}

@media (max-width: 768px) {
	ul.products li.product a img,
	ul.products li.product img.attachment-woocommerce_thumbnail {
		height: 180px;
	}

	/* Icônes toujours visibles sur mobile */
	.fribourg-product-icons {
		opacity: 1 !important;
		transform: translateX(0) !important;
	}
}

/* -------------------------------------------------------------------------
   Badge "En rupture" (si stock vide)
   ------------------------------------------------------------------------- */
ul.products li.product .woocommerce-loop-product__link .onsale {
	background: #1a1a1a;
	color: #fff;
	border-radius: 4px;
	font-size: 0.75rem;
	font-weight: 600;
	padding: 4px 10px;
}

/* Badge "Rupture de stock" sur la vignette catalogue */
ul.products li.product {
	position: relative;
}

ul.products li.product .fribourg-oos-badge {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 5;
	background: #b3261e;
	color: #fff;
	border-radius: 4px;
	font-size: 0.75rem;
	font-weight: 600;
	padding: 4px 10px;
	text-transform: none;
	pointer-events: none;
}

/* Page détail : texte "En rupture de stock" en rouge, sans cadre */
.woocommerce div.product p.stock.out-of-stock,
.woocommerce div.product .stock.out-of-stock {
	color: #b3261e;
	background: none;
	border: none;
	padding: 0;
	font-weight: 600;
}

/* Bouton "Voir tous les produits" (page détail) */
.fribourg-view-all {
	clear: both;
	text-align: center;
	margin: 30px 0 40px;
}

.woocommerce .fribourg-view-all__btn,
.fribourg-view-all__btn {
	display: inline-block;
	background: #000 !important;
	background-color: #000 !important;
	color: #fff !important;
	padding: 14px 34px !important;
	border: none !important;
	border-radius: 4px !important;
	font-weight: 600;
	text-decoration: none !important;
	transition: opacity 0.2s ease;
}

.woocommerce .fribourg-view-all__btn:hover,
.fribourg-view-all__btn:hover {
	opacity: 0.85;
	background: #333 !important;
	background-color: #333 !important;
	color: #fff !important;
}

/* -------------------------------------------------------------------------
   Navigation
   ------------------------------------------------------------------------- */
/* Header fixe */
.site-header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 999;
	background: #000;
	/*box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);*/
}

.site-header,
.site-header a,
.main-navigation .main-nav ul li a {
	color: #fff !important;
	font-weight: 600;
}

/* Lien actif et hover : texte noir, fond blanc */
.main-navigation .main-nav ul li.current-menu-item > a,
.main-navigation .main-nav ul li a:hover {
	color: #1a1a1a !important;
	background: #fff;
}

/* Compenser la hauteur du header fixe */
body {
	padding-top: 60px;
}

/* Homepage : hero collé au header, pas de padding-top, titre caché */
body.home {
	padding-top: 0;
}

body.home .entry-title,
body.home .wp-block-post-title {
	display: none !important;
}

body.home .site-content {
	padding-top: 0 !important;
	margin-top: 0 !important;
}

body.home .inside-article {
	padding-top: 0 !important;
	margin-top: 0 !important;
}

body.home .entry-content {
	margin-top: 0 !important;
	padding-top: 0 !important;
}

/* Compenser la barre admin WordPress (quand connecté) */
.admin-bar .site-header {
	top: 32px;
}

.inside-header {
	padding: 10px 40px;
}

.main-navigation .main-nav ul li a {
	padding-left: 20px;
	padding-right: 20px;
	line-height: 40px;
}

/* -------------------------------------------------------------------------
   Footer
   ------------------------------------------------------------------------- */
.fribourg-footer {
	background: #fff;
	color: #1a1a1a;
	font-family: 'Switzer', sans-serif;
	font-size: 0.9rem;
	line-height: 1.6;
	margin-top: 60px;
}

/* Partie haute : logo + colonnes */
.fribourg-footer__top {
	display: flex;
	gap: 40px;
	max-width: 1400px;
	margin: 0 auto;
	padding: 50px 40px 40px;
	align-items: flex-start;
}

/* Logo */
.fribourg-footer__logo {
	flex: 0 0 120px;
}

.fribourg-footer__logo img {
	width: 100px;
	height: auto;
}

/* Colonnes */
.fribourg-footer__col {
	flex: 1;
}

.fribourg-footer__col h4 {
	font-family: 'NeueFreigeist', sans-serif;
	font-size: 1rem;
	font-weight: 500;
	margin: 0 0 12px;
}

.fribourg-footer__col p {
	margin: 0 0 8px;
}

.fribourg-footer__col a {
	color: #1a1a1a;
	text-decoration: none;
}

.fribourg-footer__col a:hover {
	text-decoration: underline;
}

/* Bouton footer */
.fribourg-footer__btn {
	display: block;
	width: fit-content;
	margin-top: 12px;
	padding: 8px 20px;
	background: #1a1a1a;
	border: 2px solid #1a1a1a;
	border-radius: 4px;
	font-weight: 600;
	font-size: 0.85rem;
	color: #fff !important;
	text-decoration: none !important;
	transition: text-decoration 0.2s ease;
}

.fribourg-footer__btn:hover {
	text-decoration: underline !important;
	color: #fff !important;
}

/* Réseaux sociaux */
.fribourg-footer__social-icons {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 8px;
}

.fribourg-footer__social-icons a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	color: #1a1a1a;
	transition: opacity 0.2s ease;
}

.fribourg-footer__social-icons a:hover {
	opacity: 0.6;
}

/* Barre bas de footer */
.fribourg-footer__bottom {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	max-width: 1400px;
	margin: 0 auto;
	padding: 20px 40px;
	border-top: 1px solid #ddd;
	font-size: 0.8rem;
	color: #666;
}

.fribourg-footer__bottom a {
	color: #666;
	text-decoration: none;
}

.fribourg-footer__bottom a:hover {
	color: #1a1a1a;
	text-decoration: underline;
}

/* Séparateurs entre les liens du bas */
.fribourg-footer__bottom > *:not(:last-child)::after {
	content: '|';
	margin-left: 20px;
	color: #ccc;
}

/* Masquer le sélecteur de langue WPML du footer */
.wpml-ls-statics-footer {
	display: none !important;
}

/* Masquer la bannière WPML "site de développement" */
.otgs-development-site-front-end {
	display: none;
}

/* Masquer le footer par défaut GeneratePress */
.site-info {
	display: none;
}

/* Footer responsive */
@media (max-width: 768px) {
	.fribourg-footer__top {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 50px;
		padding: 30px 20px;
	}

	.fribourg-footer__logo {
		flex: 0 0 auto;
		text-align: left;
	}

	.fribourg-footer__logo img {
		width: 50px;
		height: auto;
	}

	/* Contact à côté du logo */
	.fribourg-footer__col {
		flex: 1;
	}

	/* Suivez-nous sur sa propre ligne, pleine largeur */
	.fribourg-footer__social {
		flex: 0 0 100%;
	}

	.fribourg-footer__bottom {
		flex-direction: column;
		gap: 8px;
		text-align: center;
	}

	.fribourg-footer__bottom > *::after {
		display: none !important;
	}
}

/* =========================================================================
   Sidebar navigation à gauche (pages 210 & 258)
   ========================================================================= */

/* Masquer le header standard quand la sidebar est présente */
body:has(.fribourg-sidebar) .site-header {
	display: none !important;
}

/* Pas de padding-top (plus de header horizontal) */
body:has(.fribourg-sidebar) {
	padding-top: 0 !important;
}

/* Sidebar fixe à gauche — 200px @ 769px → 300px @ 1200px */
.fribourg-sidebar {
	position: fixed;
	top: 0;
	left: 0;
	width: clamp(200px, calc(200px + 100 * (100vw - 769px) / 431), 300px);
	height: 100vh;
	background: #000;
	color: #fff;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 30px clamp(15px, calc(15px + 15 * (100vw - 769px) / 431), 30px);
	z-index: 1000;
	box-sizing: border-box;
}

/* Barre admin WordPress */
.admin-bar .fribourg-sidebar {
	top: 32px;
	height: calc(100vh - 32px);
}

/* Partie haute : logo + tagline */
.fribourg-sidebar__top {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-bottom: 40px;
}

.fribourg-sidebar__logo img {
	width: clamp(80px, calc(80px + (100 - 80) * ((100vw - 769px) / (1200 - 769))), 100px);
	height: auto;
	margin-bottom: 0px;
	margin-top: 20px;
}


/* Liens de navigation */
.fribourg-sidebar__menu {
	display: flex;
	flex-direction: column;
	gap: 12px;
	width: 100%;
	padding-left: 20px;
	list-style: none;
}

.fribourg-sidebar__menu li {
	list-style: none;
	margin: 0;
	padding: 0;
}

.fribourg-sidebar__menu a {
	color: #fff;
	text-decoration: none;
	font-family: 'Switzer', sans-serif;
	font-size: 1em;
	font-weight: 400;
	padding: 12px 0;
	display: block;
	border-bottom: 1px solid rgba(255, 255, 255, 0.15);
	transition: opacity 0.2s ease;
}

.fribourg-sidebar__menu li:first-child a {
	border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.fribourg-sidebar__menu a:hover {
	opacity: 0.7;
	text-decoration: underline;
}

.fribourg-sidebar__menu li.current-menu-item a,
.fribourg-sidebar__menu li.current-menu-ancestor a,
.fribourg-sidebar__menu li.current-menu-parent a {
	font-weight: 900;
	padding-left: 20px;
	position: relative;
}

.fribourg-sidebar__menu li.current-menu-item a::before,
.fribourg-sidebar__menu li.current-menu-ancestor a::before,
.fribourg-sidebar__menu li.current-menu-parent a::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 0;
	height: 0;
	border-top: 4px solid transparent;
	border-bottom: 4px solid transparent;
	border-left: 6px solid #fff;
}

/* Icônes sous le menu */
.fribourg-sidebar__icons {
	margin-top: 30px;
	display: flex;
	gap: 35px;
}

.fribourg-sidebar__icons a {
	color: #fff;
	text-decoration: none;
	transition: opacity 0.2s ease;
}

.fribourg-sidebar__svg-icon {
	width: 30px;
	height: 30px;
}

.fribourg-sidebar__icons a:hover {
	opacity: 0.7;
}

/* Compteur d'articles sur l'icône panier */
.fribourg-cart-link {
	position: relative;
	display: inline-flex;
}

.fribourg-cart-count {
	position: absolute;
	top: -8px;
	right: -10px;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 9px;
	background: #b3261e;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	line-height: 18px;
	text-align: center;
	box-sizing: border-box;
	pointer-events: none;
}

.fribourg-cart-count--hidden {
	display: none;
}

/* Sélecteur de langues sidebar */
.fribourg-sidebar__langs {
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
	display: flex;
	justify-content: center;
	gap: 25px;
	width: 100%;
}

.fribourg-sidebar__lang {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border: 1px solid rgba(255, 255, 255, 0.4);
	border-radius: 6px;
	color: #fff !important;
	text-decoration: none !important;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	transition: all 0.2s ease;
}

.fribourg-sidebar__lang:hover {
	background: rgba(255, 255, 255, 0.15);
	border-color: #fff;
}

.fribourg-sidebar__lang--active {
	background: #fff;
	color: #000 !important;
	border-color: #fff;
}

.fribourg-sidebar__lang--active:hover {
	background: #fff;
}

/* Bouton fermer sidebar (mobile only) */
.fribourg-sidebar__close {
	display: none;
}

.fribourg-sidebar__close button {
	background: none;
	border: none;
	color: #fff;
	cursor: pointer;
	padding: 5px;
}

/* ---- Header mobile (pages sidebar) ---- */
.fribourg-mobile-header {
	display: none;
}

.fribourg-mobile-overlay {
	display: none;
}

@media screen and (max-width: 768px) {
	/* Masquer la sidebar sur mobile */
	.fribourg-sidebar {
		position: fixed;
		transform: translateX(-100%);
		transition: transform 0.3s ease;
		z-index: 1001;
	}

	/* Logo de la sidebar plus petit en mobile */
	.fribourg-sidebar__logo img {
		width: 50px !important;
	}

	/* Afficher la sidebar quand menu ouvert */
	.fribourg-menu-open .fribourg-sidebar {
		transform: translateX(0);
	}

	/* Bouton fermer visible */
	.fribourg-menu-open .fribourg-sidebar__close {
		display: flex;
		justify-content: flex-end;
		margin-bottom: 10px;
	}

	/* Overlay sombre */
	.fribourg-mobile-overlay {
		display: none;
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(0, 0, 0, 0.5);
		z-index: 1000;
	}

	.fribourg-menu-open .fribourg-mobile-overlay {
		display: block;
	}

	/* Header mobile horizontal */
	.fribourg-mobile-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 60px;
		background: #000;
		padding: 0 20px;
		z-index: 999;
		box-sizing: border-box;
	}

	.admin-bar .fribourg-mobile-header {
		top: 32px;
	}

	/* Logo mobile */
	.fribourg-mobile-header__logo img {
		height: 30px;
		width: auto;
	}

	/* Icônes et hamburger */
	.fribourg-mobile-header__right {
		display: flex;
		align-items: center;
		gap: 16px;
	}

	.fribourg-mobile-header__icon {
		color: #fff;
		text-decoration: none;
	}

	.fribourg-mobile-header__toggle {
		background: none;
		border: none;
		color: #fff;
		cursor: pointer;
		padding: 4px;
		display: flex;
		align-items: center;
	}

	/* Contenu : plus de margin-left */
	body:has(.fribourg-sidebar) .site-content,
	body:has(.fribourg-sidebar) .fribourg-footer {
		margin-left: 0 !important;
	}

	/* Padding-top pour compenser le header mobile */
	body:has(.fribourg-sidebar) {
		padding-top: 60px !important;
	}
}

/* Décaler le contenu principal vers la droite (suit la largeur de la sidebar) */
body:has(.fribourg-sidebar) .site-content {
	margin-left: clamp(200px, calc(200px + 100 * (100vw - 769px) / 431), 300px);
}

body:has(.fribourg-sidebar) .fribourg-footer {
	margin-left: clamp(200px, calc(200px + 100 * (100vw - 769px) / 431), 300px);
}

/* Conteneur sur les pages avec sidebar */
body:has(.fribourg-sidebar) .site-content .grid-container,
body:has(.fribourg-sidebar) .site-content .inside-article {
	max-width: 1600px;
}

/* Pages avec sidebar : cacher le titre (sauf page détail produit) */
body:has(.fribourg-sidebar) .wp-block-post-title,
body:has(.fribourg-sidebar) .entry-title {
	display: none !important;
}

body.single-product:has(.fribourg-sidebar) .product_title {
	display: block !important;
}

/* Réafficher le titre des pages Panier et Commander */
body:has(.fribourg-sidebar) .entry-title.fribourg-shop-title {
	display: block !important;
}

/* Panier / checkout / confirmation mobile : empêcher le bloc de déborder (align pleine largeur) */
@media (max-width: 768px) {
	.woocommerce-cart .alignfull,
	.woocommerce-cart .alignwide,
	.woocommerce-checkout .alignfull,
	.woocommerce-checkout .alignwide,
	.woocommerce-order-received .alignfull,
	.woocommerce-order-received .alignwide {
		margin-left: auto !important;
		margin-right: auto !important;
		max-width: 100% !important;
		width: 100% !important;
	}

	/* Confirmation : empiler les adresses (facturation / livraison) */
	.wc-block-order-confirmation-address-wrapper,
	.woocommerce-order-confirmation-address-wrapper {
		display: flex !important;
		flex-direction: column !important;
		gap: 20px;
	}

	.wc-block-order-confirmation-address-wrapper > .wp-block-column,
	.woocommerce-order-confirmation-address-wrapper > .wp-block-column {
		flex: 0 0 100% !important;
		max-width: 100% !important;
		min-width: 100% !important;
	}

	/* Confirmation : empiler les infos du récap (n° commande, date, total…) */
	.wc-block-order-confirmation-summary ul li {
		width: 100% !important;
	}
}

/* Pages avec sidebar + hero : coller le hero (seulement les pages avec le bloc hero) */
body:has(.fribourg-sidebar):has(.ed-hero-header) .site-content,
body:has(.fribourg-sidebar):has(.ed-hero-header) .inside-article,
body:has(.fribourg-sidebar):has(.ed-hero-header) .entry-content,
body:has(.fribourg-sidebar):has(.ed-hero-header) .site-main,
body:has(.fribourg-sidebar):has(.ed-hero-header) .container {
	padding-top: 0 !important;
	margin-top: 0 !important;
}

body:has(.fribourg-sidebar):has(.ed-hero-header) .inside-article > *:first-child {
	margin-top: 0 !important;
}

/* Hero content — positionnement responsive */
.hero-content {
	left: clamp(40vw, calc(1200px - 20vw), 55vw) !important;
}

@media screen and (max-width: 1600px) {
	.hero-content {
		left: clamp(55vw, calc(103px + 48.57vw), 60vw) !important;
	}
}

@media screen and (max-width: 1150px) {
	.hero-text {
		max-width: clamp(550px, calc(550px + (800 - 550) * ((100vw - 769px) / (1150 - 769))), 800px) !important;
	}
}

@media screen and (max-width: 769px) {
	.hero-content {
		left: 55% !important;
	}

	.hero-title {
		margin-bottom: -50px !important;
	}

	/* Cacher l'indicateur de scroll du hero en mobile */
	.hero-scroll-indicator {
		display: none !important;
	}
}

@media screen and (max-width: 580px) {
	.hero-content {
		left: 50% !important;
	}
}


/* =========================================================================
   Page détail produit
   ========================================================================= */

/* Prix : noir et plus grand */
.single-product .summary .price,
.single-product .summary .price .woocommerce-Price-amount {
	color: #000 !important;
	font-size: 2.5rem !important;
	font-weight: 100;
	margin-bottom: 1em;
}

/* Form cart : margin */
.woocommerce div.product form.cart {
	margin-bottom: 0em;
}

/* Badge acheteur interne */
.fribourg-internal-badge {
	display: inline-block;
	background: none;
	color: #cc0000;
	font-size: 0.65em;
	font-weight: 600;
	vertical-align: middle;
	margin-left: 8px;
	letter-spacing: 0.03em;
}

/* Titre produit */
.woocommerce div.product .product_title {
	clear: none;
	margin-top: 50px;
	padding: 0;
	font-size: clamp(35px, calc(35px + (50 - 35) * ((100vw - 375px) / (1200 - 375))), 50px) !important;
	line-height: 1.1;
	margin-bottom: .5em;
}

/* Titre produit au-dessus de l'image (mobile uniquement) */
.fribourg-mobile-product-title {
	display: none;
}

@media (max-width: 768px) {
	.fribourg-mobile-product-title {
		display: block;
		font-family: 'NeueFreigeist', sans-serif;
		font-size: clamp(35px, calc(35px + (50 - 35) * ((100vw - 375px) / (1200 - 375))), 50px);
		line-height: 1.1;
		margin: 0 0 20px;
	}

	/* Cacher le titre d'origine (dans le résumé) en mobile */
	body.single-product .summary .product_title {
		display: none !important;
	}
}

/* Paragraphes */
.single-product .summary p {
	margin-bottom: 2em;
}

/* Bouton "Ajouter au panier" : noir */
.single-product .summary .single_add_to_cart_button {
	background: #000 !important;
	color: #fff !important;
	border: none;
	border-radius: 6px;
	padding: 12px 24px;
	font-size: 0.9rem;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s ease;
}

.single-product .summary .single_add_to_cart_button:hover {
	background: #333 !important;
}

/* Espace sous l'image produit */
.woocommerce div.product div.images {
	margin-bottom: 8em;
}

@media (max-width: 768px) {
	.woocommerce div.product div.images {
		margin-bottom: 2em;
	}
}

/* Masquer la catégorie sur la page produit */
.single-product .summary .posted_in {
	display: none;
}

/* Stock : style */
.woocommerce div.product p.stock {
	font-size: 1em;
	font-weight: 700;
}

.woocommerce:where(body:not(.woocommerce-uses-block-theme)) div.product .stock {
	color: #000;
}

/* Stock : déplacer en dessous du bouton via order */
.single-product .summary {
	display: flex;
	flex-direction: column;
}

.single-product .summary .product_title {
	order: 1;
}

.single-product .summary .price {
	order: 2;
}

.single-product .summary .woocommerce-product-details__short-description {
	order: 3;
}

.single-product .summary form.cart {
	order: 4;
}

.single-product .summary .stock {
	order: 5;
	margin-top: 10px;
}

.single-product .summary .product_meta {
	order: 6;
}

/* =========================================================================
   Page Panier (WooCommerce Block Cart)
   ========================================================================= */

/* Titre "Panier" */
.woocommerce-cart .entry-title,
.woocommerce-cart .wp-block-post-title {
	font-size: 2.5rem;
	font-weight: 700;
	margin-bottom: 1em;
}

/* Table items : nettoyage complet des bordures WooCommerce */
table.wc-block-cart-items {
	border: none !important;
	border-collapse: collapse !important;
	border-spacing: 0 !important;
	background: none !important;
}

table.wc-block-cart-items td,
table.wc-block-cart-items th {
	border-bottom: none !important;
	border-left: none !important;
	border-right: none !important;
	background: none !important;
}

/* En-têtes (PRODUIT, TOTAL) */
.wc-block-cart-items__header th {
	font-size: 1rem !important;
	font-weight: 600 !important;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #666;
	padding: 8px 16px 12px 0 !important;
	border-bottom: 1px solid #ddd !important;
}

/* Lignes produit : séparation entre chaque produit */
.wc-block-cart-items__row {
	border: none !important;
}

.wc-block-cart-items__row td {
	padding: 20px 20px 20px 20px !important;
	vertical-align: top;
	border-bottom: 1px solid #ddd !important;
}

/* Grille responsive native WooCommerce : 2e colonne flexible (évite le débordement) */
.is-medium table.wc-block-cart-items .wc-block-cart-items__row,
.is-mobile table.wc-block-cart-items .wc-block-cart-items__row,
.is-small table.wc-block-cart-items .wc-block-cart-items__row {
	column-gap: 0px;
	display: grid;
	grid-template-columns: 80px 1fr;
	padding: 16px 0px;
}

/* Image produit */
.wc-block-cart-item__image img {
	border-radius: 8px !important;
	background: #f5f5f5;
	object-fit: contain;
}

/* Nom produit */
.editor-styles-wrapper table.wc-block-cart-items .wc-block-cart-items__row .wc-block-components-product-name,
table.wc-block-cart-items .wc-block-cart-items__row .wc-block-components-product-name {
	display: block;
	font-size: 18px;
	line-height: 1;
	font-weight: 600;
	max-width: max-content;
	color: #000 !important;
	text-decoration: none !important;
}

.wc-block-cart-items__row .wc-block-components-product-name:hover {
	text-decoration: underline !important;
}

/* Prix produit (unitaire) */
.editor-styles-wrapper table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__prices,
table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__prices {
	font-size: 18px;
	line-height: 30px;
	color: #000;
}

/* Prix produit (total ligne) */
.editor-styles-wrapper table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__total,
table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__total {
	font-size: 18px;
	line-height: 1.8;
	text-align: right;
	font-weight: 600;
	color: #000;
}

/* Sélecteur quantité (+/-) */
.wc-block-components-quantity-selector {
	border: 1px solid #ddd !important;
	border-radius: 6px !important;
}

/* Lien "Supprimer l'élément" */
.wc-block-cart-item__remove-link {
	color: #000 !important;
	text-decoration: underline !important;
	font-size: 0.8rem !important;
}

.wc-block-cart-item__remove-link:hover {
	color: #666 !important;
}

/* ---- Sidebar : Total Panier ---- */

/* Titre "TOTAL PANIER" */
.wc-block-cart__totals-title {
	font-size: 1rem !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.05em;
	color: #000;
	border-bottom: 0px solid #ddd !important;
}

/* Sidebar : fond blanc, hauteur auto */
.wc-block-cart .wc-block-components-sidebar {
	background: #ffffff;
	border-radius: 10px;
	padding: 25px 25px;
	align-self: flex-start;
	position: sticky;
	top: 80px;
}

/* Totals wrapper : séparation et espacement */
.wc-block-components-totals-wrapper {
	border-top: 1px solid hsla(0, 0%, 7%, .11);
	padding: 25px 0;
}

/* Total estimé : gros chiffre */
.wc-block-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-weight: 600;
	color: #000;
}

.wc-block-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-size: 2rem !important;
	font-weight: 700 !important;
	color: #000;
}

/* Conteneur bouton commande : centré */
.wc-block-cart .wc-block-cart__submit-container {
	padding: 0;
	margin-top: 50px;
	display: flex;
	justify-content: center;
}

/* Bouton "Valider la commande" */
.wc-block-cart__submit-button {
	background: #000 !important;
	color: #fff !important;
	border: none !important;
	border-radius: 50px !important;
	padding: 16px 40px !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	text-align: center;
	transition: background 0.2s ease;
	min-height: 52px;
	width: auto !important;
	text-decoration: none;
}

.wc-block-cart__submit-button:hover {
	background: #333 !important;
}

.wc-block-cart__submit-button:focus {
	box-shadow: 0 0 0 2px #333 !important;
}

/* Désactiver le bouton "Valider la commande" collant en bas (mobile) */
@media (max-width: 782px) {
	.wc-block-cart .wc-block-cart__submit-container--sticky {
		position: static !important;
		padding: 0 !important;
		background: none !important;
		box-shadow: none !important;
	}

	.wc-block-cart .wc-block-cart__submit-container--sticky:before {
		display: none !important;
	}

	/* Supprimer l'espace vide sous le bouton panier */
	.wc-block-cart .wc-block-cart__submit-container {
		margin-bottom: 0 !important;
	}

	.wp-block-woocommerce-cart-accepted-payment-methods-block {
		margin-top: 12px !important;
		margin-bottom: 0 !important;
	}
}

/* Réduire l'espace vide avant le footer sur les pages WooCommerce (mobile) */
@media (max-width: 768px) {
	.woocommerce-cart .inside-article,
	.woocommerce-checkout .inside-article,
	.woocommerce-order-received .inside-article {
		padding-bottom: 15px !important;
	}

	.woocommerce-cart .fribourg-footer,
	.woocommerce-checkout .fribourg-footer,
	.woocommerce-order-received .fribourg-footer {
		margin-top: 20px !important;
	}

	.woocommerce-order .woocommerce-customer-details,
	.woocommerce-order .col2-set {
		margin-bottom: 0 !important;
	}
}

/* Coupon : style discret */
.wc-block-cart .wc-block-components-totals-coupon .wc-block-components-panel__button {
	color: #000;
}

/* Lien "Continuer les achats" (si affiché) */
.wc-block-cart .wc-block-components-sidebar a.wc-block-components-checkout-return-to-cart-button,
.woocommerce-cart .return-to-shop a,
.woocommerce-cart a.wc-backward {
	color: #000;
	text-decoration: underline;
	font-weight: 500;
}

/* Masquer bordures inutiles dans le résumé */
.wc-block-cart .wp-block-woocommerce-cart-order-summary-totals-block {
	border-top: none !important;
}

/* Metadata produit (variations, stock) – masqué */
.wc-block-cart .wc-block-components-product-metadata {
	color: #555;
	font-size: 0.85rem;
	display: none;
}

/* ==========================================================================
   Page Mon compte (WooCommerce MyAccount)
   ========================================================================= */

/* Layout principal : navigation + contenu côte à côte */
.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
	vertical-align: top;
}

/* ---- Navigation latérale ---- */
.woocommerce-MyAccount-navigation ul {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.woocommerce-MyAccount-navigation ul li {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border-bottom: 1px solid #ddd;
}

.woocommerce-MyAccount-navigation ul li:first-child {
	border-top: 1px solid #ddd;
}

.woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: 16px 12px;
	color: #333 !important;
	text-decoration: none !important;
	font-size: 0.95rem;
	font-weight: 400;
	transition: background 0.15s ease, color 0.15s ease;
}

.woocommerce-MyAccount-navigation ul li a:hover {
	background: #f5f5f5;
	color: #000 !important;
}

.woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--dashboard.is-active a {
	font-weight: 600;
	color: #000 !important;
	background: #f5f5f5;
}

/* ---- Contenu principal ---- */
.woocommerce-MyAccount-content {
	padding-left: 40px;
}

.woocommerce-MyAccount-content p {
	font-size: 0.95rem;
	line-height: 1.7;
	color: #333;
}

.woocommerce-MyAccount-content a {
	color: #000;
	text-decoration: underline;
}

.woocommerce-MyAccount-content a:hover {
	color: #555;
}

/* Lien "Modifier" adresses */
.woocommerce-account .addresses .title .edit {
	float: left;
	margin-bottom: 20px;
	font-weight: 600;
}

/* Conteneur colonnes adresses */
.woocommerce .col2-set,
.woocommerce-page .col2-set {
	display: flex !important;
	gap: 30px;
}

/* Colonnes adresses (facturation / livraison) */
.woocommerce .col2-set .col-1,
.woocommerce-page .col2-set .col-1,
.woocommerce .col2-set .col-2,
.woocommerce-page .col2-set .col-2 {
	float: none;
	width: 50%;
	flex: 1;
	background-color: #fff;
	padding: 25px 25px;
	border-radius: 15px;
}

/* Adresses : empiler en mobile */
@media (max-width: 768px) {
	.woocommerce .col2-set,
	.woocommerce-page .col2-set {
		flex-direction: column !important;
	}

	.woocommerce .col2-set .col-1,
	.woocommerce-page .col2-set .col-1,
	.woocommerce .col2-set .col-2,
	.woocommerce-page .col2-set .col-2 {
		width: 100% !important;
		flex: 0 0 100% !important;
	}

	/* Récap commande (n° / date / total / paiement) : empiler */
	.woocommerce ul.woocommerce-order-overview {
		display: flex !important;
		flex-direction: column !important;
	}

	.woocommerce ul.woocommerce-order-overview li {
		width: 100% !important;
		float: none !important;
		border: none !important;
		border-bottom: 1px solid #ddd !important;
		padding: 10px 0 !important;
		margin: 0 !important;
		text-align: left !important;
	}
}

/* Bouton "Se déconnecter" */
.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout {
	border-bottom: none;
}

.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout a {
	display: inline-block !important;
	background: #cc0000 !important;
	color: #fff !important;
	padding: 12px 30px !important;
	border-radius: 50px !important;
	font-weight: 600 !important;
	font-size: 0.9rem !important;
	margin-top: 30px;
	text-align: center;
	transition: background 0.2s ease;
}

.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--customer-logout a:hover {
	background: #990000 !important;
	color: #fff !important;
}

/* Contact */
.nf-form-fields-required {
	display: none;
}

.nf-after-field .nf-error-msg {
	margin-right: 10px;
	display: none;
}

.nf-error-msg {
	color: #e80000;
	display: none;
}


input[type=submit] {
	background: #000 !important;
	border-radius: 15px;
}

.col-contact {
	background-color: #eee;
	padding: 50px;
	border-radius: 15px;
	box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 4px;
}

:where(.wp-block-columns.is-layout-flex) {
	gap: 5px;
}

:where(.wp-block-columns) {
	margin-bottom: 5px;
}
