/*
 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
*/

/* ==========================================================================
   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: clamp(0px, calc(0px + (100 - 0) * ((100vw - 375px) / (1200 - 375))), 100px);
}

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

/* 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
   ========================================================================== */

/* -------------------------------------------------------------------------
   Réglage css du système
   ------------------------------------------------------------------------- */
.wp-block-spacer {
    clear: both;
    height: clamp(15px, calc(15px + (50 - 15) * ((100vw - 375px) / (1200 - 375))), 50px) !important;
}

.woocommerce ul.products li.product .onsale {
    top: 0;
    right: auto;
    left: 0;
    margin: -.5em -.5em 0 0;
}

.woocommerce div.product div.images {
    margin-bottom: clamp(0px, calc(0px + 128 * ((100vw - 375px) / (1200 - 375))), 128px) !important;
}

.woocommerce span.onsale {
	 background: #1a1a1a;
    color: #fff;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 4px 10px;

    min-height: 3.236em;
    min-width: 3.236em;
    position: absolute;
    text-align: center;
    line-height: 3.236;
    top: -.5em;
    left: -.5em;
    margin: 0;
    z-index: 9;
}

ul.products li.product .woocommerce-loop-product__title, ul.products li.product h2 {
    line-height: 1.1 !important;
}

/* -------------------------------------------------------------------------
   Slider images
   ------------------------------------------------------------------------- */
.fribourg-ps__info h3{
    font-size: 20px !important;
}

.fribourg-ps__price {
    font-size: 20px !important;
    color: #333;
}


/* -------------------------------------------------------------------------
   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: 1em;
	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;
}

/* -------------------------------------------------------------------------
   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,
body.page-id-2 {
	padding-top: 0;
}

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

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

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

body.home .entry-content,
body.page-id-2 .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;
}

/* Icône compte dans le header */
.fribourg-header-account {
	list-style: none;
}

.fribourg-header-account .fribourg-header-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 10px;
	line-height: 40px;
	color: #fff !important;
	transition: opacity 0.2s ease;
}

.fribourg-header-account .fribourg-header-icon:hover {
	opacity: 0.7;
}

.fribourg-header-account .fribourg-header-icon svg {
	vertical-align: middle;
}

/* Sélecteur de langue WPML */
.fribourg-lang-switcher {
	position: relative;
	cursor: pointer;
	padding: 0 12px;
	display: flex;
	align-items: center;
	line-height: 40px;
}

.fribourg-lang-current {
	color: #fff !important;
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.05em;
}

/* Dropdown au hover */
.fribourg-lang-dropdown {
	display: none;
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	background: #000;
	border-radius: 6px;
	padding: 6px 0;
	margin: 0;
	list-style: none;
	min-width: 50px;
	z-index: 1000;
}

.fribourg-lang-switcher:hover .fribourg-lang-dropdown {
	display: block;
}

.fribourg-lang-dropdown li {
	margin: 0;
	padding: 0;
}

.fribourg-lang-dropdown li a {
	display: block;
	padding: 6px 14px;
	color: #fff !important;
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-decoration: none !important;
	text-align: center;
	transition: background 0.15s ease;
}

.fribourg-lang-dropdown li a:hover {
	background: #333;
}

/* -------------------------------------------------------------------------
   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: inline-block;
	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: column;
		gap: 30px;
		padding: 30px 20px;
	}

	.fribourg-footer__logo {
		flex: none;
		text-align: center;
	}

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

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

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

/* 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;
}






/* 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;
	filter: brightness(0) invert(1);
}


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

.fribourg-sidebar__menu a {
	color: #fff;
	text-decoration: none;
	font-family: 'Switzer', sans-serif;
	font-size: 1em;
	font-weight: 400;
	padding: 12px 0;
	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 a.active {
	font-weight: 900;
	padding-left: 20px;
	position: relative;
}

.fribourg-sidebar__menu a.active::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;
	filter: brightness(0) invert(1);
}

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

/* 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;
	}

	/* 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;
		filter: brightness(0) invert(1);
	}

	/* 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: 10px !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;
}

/* 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: 150px !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: clamp(32px, calc(32px + (40 - 32) * ((100vw - 375px) / (1200 - 375))), 40px) !important;
	font-weight: 100;
	margin-bottom: 1em;
}

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

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

/* 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;
}

/* 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 0 20px 16px !important;
	vertical-align: top;
	border-bottom: 1px solid #ddd !important;
}

/* 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: 20px;
	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;
}

/* 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;
}

/* 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;
}
