/**
 * Studio Feel Good — custom CSS (JupiterX Child)
 *
 * Loaded from: wp-content/themes/jupiterx-child/assets/css/style.css
 *
 * Conflict notes:
 * - Uses !important in several places to override JupiterX / WooCommerce defaults.
 * - Brand colors: green #3A4B3C / #3A4B3B / #9BB58A, orange #FC9D00
 * - Font: Montserrat (also loaded via Elementor/JupiterX — check for duplicate)
 * - If a style breaks after a JupiterX update, search this file first.
 */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600&display=swap');

/* ==========================================================================
   Contact page — link colors
   ========================================================================== */

.link-primary {
	color: #000000;
}

.link-primary:hover {
	color: #9BB58A;
	text-decoration: underline;
}

.link-primary:visited,
.link-primary:active {
	color: #3A4B3C;
}

/* ==========================================================================
   Shared form layout (livre blanc + newsletter)
   ========================================================================== */

.livre-blanc .lb-row {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto !important;
	grid-template-rows: auto !important;
	align-items: center !important;
	gap: 12px !important;
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
}

/* CF7 inserts <br> tags that break layout on WooCommerce pages. */
.livre-blanc .lb-row br {
	display: none !important;
}

.livre-blanc .wpcf7-form-control-wrap {
	grid-column: 1 !important;
	grid-row: 1 !important;
	min-width: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
}

.livre-blanc .wpcf7-form-control-wrap input[type="email"] {
	width: 100% !important;
	max-width: 100% !important;
}

.livre-blanc input.wpcf7-submit,
.livre-blanc input.newsletter-btn,
.livre-blanc:not(.newsletter) input[type="submit"] {
	grid-column: 2 !important;
	grid-row: 1 !important;
	width: auto !important;
	max-width: none !important;
	min-width: auto !important;
	justify-self: end;
}

.livre-blanc input[type="email"],
.livre-blanc input.wpcf7-submit,
.livre-blanc input.newsletter-btn,
.livre-blanc:not(.newsletter) input[type="submit"] {
	border-radius: 999px !important;
	-webkit-appearance: none;
	appearance: none;
}

.livre-blanc input[type="email"] {
	width: 100%;
	max-width: none;
	min-width: 0;
	padding: 14px 24px;
	font-size: 15px;
	font-family: "Montserrat", sans-serif;
	color: #3A4B3C;
	box-sizing: border-box;
	outline: none;
	transition: background-color 0.35s ease, box-shadow 0.35s ease, transform 0.35s ease, border-color 0.35s ease;
}

/* Livre blanc only — soft beige field */
.livre-blanc:not(.newsletter) input[type="email"] {
	background: #f8efde;
	border: 1px solid rgba(224, 210, 190, 0.4);
	box-shadow: 0 2px 14px rgba(190, 170, 145, 0.08);
}

.livre-blanc:not(.newsletter) input[type="email"]:focus {
	background: #FDFBF8;
	border-color: rgba(210, 190, 165, 0.55);
	box-shadow: 0 6px 24px rgba(190, 170, 145, 0.16);
	transform: translateY(-1px);
}

.livre-blanc:not(.newsletter) input[type="email"]::placeholder {
	color: #b0a596;
	opacity: 1;
	transition: opacity 0.3s ease;
}

.livre-blanc:not(.newsletter) input[type="email"]:focus::placeholder {
	opacity: 0.65;
}

/* ==========================================================================
   Livre blanc form (Contact Form 7)
   Markup: <div class="livre-blanc">
   ========================================================================== */

.livre-blanc:not(.newsletter) {
	max-width: 720px;
	width: 100%;
	margin: 0 auto;
	padding: 0;
}

.livre-blanc:not(.newsletter) input[type="submit"] {
	flex-shrink: 0;
	padding: 14px 28px;
	border: none;
	cursor: pointer;
	font-size: 15px;
	font-weight: 600;
	font-family: "Montserrat", sans-serif;
	background: #3A4B3C;
	color: #ffffff;
	white-space: nowrap;
	box-shadow: 0 2px 16px rgba(58, 75, 60, 0.3);
	transition: background-color 0.35s ease, box-shadow 0.35s ease, transform 0.35s ease;
}

.livre-blanc:not(.newsletter) input[type="submit"]:hover {
	background: #FC9D00;
	box-shadow: 0 6px 24px rgba(252, 157, 0, 0.35);
	transform: translateY(-2px);
}

.livre-blanc:not(.newsletter) input[type="submit"]:active {
	transform: translateY(0);
	box-shadow: 0 2px 10px rgba(58, 75, 60, 0.2);
	transition-duration: 0.15s;
}

.livre-blanc:not(.newsletter) .wpcf7-not-valid-tip {
	font-size: 13px;
	margin-top: 8px;
	padding-left: 22px;
}

.livre-blanc:not(.newsletter) .wpcf7-response-output {
	margin: 16px 0 0;
	padding: 12px 18px;
	border-radius: 12px;
	font-size: 14px;
	text-align: center;
}

/* ==========================================================================
   Newsletter form (Contact Form 7)
   Markup: <div class="livre-blanc newsletter">
   ========================================================================== */

.livre-blanc.newsletter {
	max-width: 620px;
	width: 100%;
	margin: 0 auto;
	padding: 0;
}

.livre-blanc.newsletter input[type="email"] {
	background: #ffffff;
	border: none;
	box-shadow: 0 2px 16px rgba(58, 75, 60, 0.1);
}

.livre-blanc.newsletter input[type="email"]:focus {
	background: #ffffff;
	box-shadow: 0 6px 28px rgba(58, 75, 60, 0.2);
	transform: translateY(-1px);
}

.livre-blanc.newsletter input[type="email"]::placeholder {
	color: #9aa89b;
	opacity: 1;
	transition: opacity 0.3s ease;
}

.livre-blanc.newsletter input[type="email"]:focus::placeholder {
	opacity: 0.6;
}

.livre-blanc.newsletter .newsletter-btn,
.livre-blanc.newsletter input.newsletter-btn {
	flex-shrink: 0;
	padding: 14px 32px;
	border: none;
	cursor: pointer;
	font-size: 15px;
	font-weight: 600;
	font-family: "Montserrat", sans-serif;
	background: #FC9D00;
	color: #ffffff;
	white-space: nowrap;
	box-shadow: 0 2px 16px rgba(252, 157, 0, 0.35);
	transition: background-color 0.35s ease, box-shadow 0.35s ease, transform 0.35s ease;
}

.livre-blanc.newsletter .newsletter-btn:hover,
.livre-blanc.newsletter input.newsletter-btn:hover {
	background: #3A4B3C;
	box-shadow: 0 6px 24px rgba(58, 75, 60, 0.3);
	transform: translateY(-2px);
}

.livre-blanc.newsletter .newsletter-btn:active,
.livre-blanc.newsletter input.newsletter-btn:active {
	transform: translateY(0);
	box-shadow: 0 2px 10px rgba(58, 75, 60, 0.2);
	transition-duration: 0.15s;
}

.livre-blanc.newsletter .wpcf7-not-valid-tip {
	font-size: 13px;
	margin-top: 8px;
	padding-left: 22px;
}

.livre-blanc.newsletter .wpcf7-response-output {
	margin: 16px 0 0;
	padding: 12px 18px;
	border-radius: 12px;
	font-size: 14px;
	text-align: center;
}

/* ==========================================================================
   Contact Form 7 — mobile
   ========================================================================== */

@media (max-width: 768px) {
	.wpcf7-form p:not(.lb-row) {
		display: flex !important;
		flex-direction: column !important;
		gap: 15px !important;
	}

	.livre-blanc:not(.newsletter) .lb-row,
	.livre-blanc.newsletter .lb-row {
		grid-template-columns: 1fr !important;
		gap: 12px !important;
	}

	.livre-blanc .wpcf7-form-control-wrap {
		grid-column: 1 !important;
		grid-row: auto !important;
		width: 100% !important;
	}

	.livre-blanc input.wpcf7-submit,
	.livre-blanc input.newsletter-btn,
	.livre-blanc:not(.newsletter) input[type="submit"] {
		grid-column: 1 !important;
		grid-row: auto !important;
		width: 100% !important;
		justify-self: stretch;
	}

	.livre-blanc input[type="email"] {
		width: 100% !important;
		padding: 15px 22px !important;
		font-size: 16px !important;
	}

	.livre-blanc:not(.newsletter) input[type="submit"],
	.livre-blanc.newsletter .newsletter-btn,
	.livre-blanc.newsletter input.newsletter-btn {
		padding: 15px 22px !important;
		font-size: 16px !important;
		border-radius: 999px !important;
		white-space: normal;
	}

	.livre-blanc input[type="email"] {
		border-radius: 999px !important;
	}

	.wpcf7-form:not(:has(.livre-blanc)) input[type="email"],
	.wpcf7-form:not(:has(.livre-blanc)) input[type="text"] {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
		padding: 15px !important;
		font-size: 16px !important;
	}

	.wpcf7 input[type="submit"]:not(.newsletter-btn),
	.wpcf7-submit:not(.newsletter-btn) {
		width: 100% !important;
		max-width: 100% !important;
		padding: 15px 20px !important;
		box-sizing: border-box !important;
		display: block !important;
		margin: 0 !important;
	}
}

/* ==========================================================================
   Column order — mobile (2-1-4-3)
   ========================================================================== */

@media (max-width: 768px) {
	.colonne-1 {
		order: 2 !important;
	}

	.colonne-2 {
		order: 1 !important;
	}

	.colonne-3 {
		order: 4 !important;
	}

	.colonne-4 {
		order: 3 !important;
	}
}

/* ==========================================================================
   Mobile navigation menu (JupiterX Raven)
   Fix: header container uses overflow:hidden — dropdown is clipped on open.
   JupiterX uses .jupiterx-header (not .elementor-location-header).
   ========================================================================== */

@media (max-width: 1024px) {
	header.jupiterx-header,
	header.jupiterx-header .e-con,
	header.jupiterx-header .elementor-element,
	header.jupiterx-header .elementor-widget-container,
	.elementor-widget-raven-nav-menu,
	.elementor-widget-raven-nav-menu .elementor-widget-container {
		overflow: visible !important;
	}

	header.jupiterx-header {
		z-index: 1000;
	}

	.elementor-widget-raven-nav-menu {
		position: static;
		z-index: 1001;
	}

	.raven-nav-menu-toggle {
		position: relative;
		z-index: 1002;
	}

	.raven-nav-menu-toggle-button {
		pointer-events: auto !important;
		cursor: pointer !important;
	}

	/* Keep Raven stretch dropdown positioning (do not force relative). */
	.raven-nav-menu-stretch .raven-nav-menu-mobile.raven-nav-menu-dropdown {
		position: absolute !important;
		left: 0;
		right: 0;
		z-index: 1003;
		width: 100%;
	}

	.raven-nav-menu-mobile.raven-nav-menu-active,
	.raven-breakpoint-mobile .raven-nav-menu-active.raven-nav-menu-dropdown,
	.raven-breakpoint-tablet .raven-nav-menu-active.raven-nav-menu-dropdown,
	.raven-breakpoint-desktop .raven-nav-menu-active.raven-nav-menu-dropdown {
		display: block !important;
		visibility: visible !important;
		opacity: 1 !important;
	}
}

.raven-nav-menu-dropdown .menu-item a {
	padding: 15px 15px !important;
	font-weight: 700 !important;
}

.raven-nav-menu-dropdown {
	padding: 20px 20px !important;
	background-color: #ffffff !important;
}

.raven-nav-menu-full-screen.raven-nav-menu-active {
	z-index: 999999 !important;
}

/* ==========================================================================
   Header overlap — search, 404, non-shop archives (no hero section)
   ========================================================================== */

body.search .jupiterx-main-content,
body.error404 .jupiterx-main-content,
body.archive:not(.post-type-archive-product):not(.tax-product_cat) .jupiterx-main-content {
	padding-top: 200px;
}

@media (max-width: 768px) {
	body.search .jupiterx-main-content,
	body.error404 .jupiterx-main-content,
	body.archive:not(.post-type-archive-product):not(.tax-product_cat) .jupiterx-main-content {
		padding-top: 90px;
	}
}

/* ==========================================================================
   WooCommerce shop — header overlap (separate from archives/search/404)
   ========================================================================== */

body.woocommerce-shop .jupiterx-main-content,
body.post-type-archive-product .jupiterx-main-content,
body.tax-product_cat .jupiterx-main-content {
	padding-top: 150px;
}

body.woocommerce-shop .woocommerce-products-header,
body.post-type-archive-product .woocommerce-products-header,
body.tax-product_cat .woocommerce-products-header {
	margin-bottom: 1rem;
}

@media (max-width: 768px) {
	body.woocommerce-shop .jupiterx-main-content,
	body.post-type-archive-product .jupiterx-main-content,
	body.tax-product_cat .jupiterx-main-content {
		padding-top: 90px;
	}
}

/* ==========================================================================
   WooCommerce checkout steps
   ========================================================================== */

span.jupiterx-wc-step-number {
	background: #3a4b3b !important;
}

.jupiterx-wc-step-active span.jupiterx-wc-step-number {
	background: #fc9d00 !important;
}

/* ==========================================================================
   WooCommerce — My Account navigation
   ========================================================================== */

.woocommerce .woocommerce-MyAccount-navigation ul li.is-active {
	background-color: #3A4B3B !important;
}

.woocommerce .woocommerce-MyAccount-navigation ul li.is-active a {
	color: #ffffff !important;
	border-left: 3px solid #fc9d00 !important;
}

.woocommerce .woocommerce-MyAccount-navigation ul li a {
	display: block;
	padding: 12px 20px;
	color: #3A4B3B !important;
	border-left: 3px solid #9ab58a !important;
	text-decoration: none !important;
	font-family: 'Montserrat', sans-serif !important;
	font-weight: 500 !important;
	background-color: transparent !important;
	box-sizing: border-box;
	box-shadow: none !important;
	outline: none !important;
	transition: all 0.3s ease;
}

.woocommerce .woocommerce-MyAccount-navigation ul li a:hover {
	background-color: #9ab58a !important;
	color: #ffffff !important;
}

.woocommerce .woocommerce-MyAccount-navigation ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.woocommerce-MyAccount-content {
	font-family: 'Montserrat', sans-serif !important;
	color: #3A4B3B !important;
}

/* JupiterX sets `.woocommerce form input { width: 100% }` — cap login/register width.
   Note: /mon-compte/ uses Elementor shortcode (no .woocommerce-MyAccount-content when logged out). */
.woocommerce form.woocommerce-form-login,
.woocommerce form.woocommerce-form-register,
.woocommerce form.lost_reset_password,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-form-login,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-form-register,
.woocommerce-account .woocommerce-MyAccount-content .lost_reset_password {
	max-width: 480px !important;
	width: 100% !important;
}

.woocommerce form.woocommerce-form-login .form-row-wide,
.woocommerce form.woocommerce-form-register .form-row-wide,
.woocommerce form.lost_reset_password .form-row-wide {
	max-width: 480px !important;
}

.woocommerce form.woocommerce-form-login .input-text,
.woocommerce form.woocommerce-form-register .input-text,
.woocommerce form.lost_reset_password .input-text {
	max-width: 100% !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

.woocommerce-MyAccount-content .button,
.woocommerce button[type="submit"] {
	background-color: #fc9d00 !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: 25px !important;
	font-family: 'Montserrat', sans-serif !important;
	font-weight: 600 !important;
}

.woocommerce-MyAccount-content .button:hover {
	background-color: #3A4B3B !important;
}

/* JupiterX compiler sets WooCommerce fields to orange (#fc9d00) — override here. */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row input[type="email"],
.woocommerce form .form-row input[type="password"],
.woocommerce form .form-row input[type="tel"],
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	background-color: #ffffff !important;
	border: 1px solid rgba(58, 75, 60, 0.25) !important;
	color: #3A4B3C !important;
	border-radius: 8px !important;
	box-shadow: none !important;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row input[type="email"]:focus,
.woocommerce form .form-row input[type="password"]:focus,
.woocommerce form .form-row input[type="tel"]:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
	background-color: #ffffff !important;
	border-color: #3A4B3C !important;
	outline: none !important;
	box-shadow: 0 0 0 2px rgba(58, 75, 60, 0.12) !important;
}

.woocommerce form .form-row input.input-text:-webkit-autofill,
.woocommerce form .form-row input[type="email"]:-webkit-autofill,
.woocommerce form .form-row input[type="password"]:-webkit-autofill {
	-webkit-box-shadow: 0 0 0 1000px #ffffff inset !important;
	-webkit-text-fill-color: #3A4B3C !important;
}

/* ==========================================================================
   CookieYes — consent banner (white theme, brand buttons)
   Plugin: Cookie Law Info / CookieYes (.cky-*)
   ========================================================================== */

.cky-consent-container {
	background-color: #ffffff !important;
	background: #ffffff !important;
	border: 1px solid rgba(58, 75, 60, 0.12) !important;
	box-shadow: 0 8px 32px rgba(58, 75, 60, 0.12) !important;
	border-radius: 8px !important;
	overflow: hidden !important;
}

.cky-consent-container .cky-consent-bar,
.cky-consent-container [data-cky-tag="notice"] {
	background-color: #ffffff !important;
	background: #ffffff !important;
	border: none !important;
	box-shadow: none !important;
	border-radius: 0 !important;
}

.cky-consent-container .cky-notice,
.cky-consent-container .cky-notice-group,
.cky-consent-container .cky-notice-des,
.cky-consent-container .cky-notice-btn-wrapper,
.cky-consent-container .cky-custom-brand-logo-wrapper {
	background: transparent !important;
	background-color: transparent !important;
	border: none !important;
	box-shadow: none !important;
}

.cky-consent-container .cky-title,
.cky-consent-container .cky-notice-des,
.cky-consent-container .cky-notice-des p,
.cky-consent-container .cky-show-desc-btn,
.cky-consent-container .cky-link,
.cky-consent-container .cky-policy {
	color: #3A4B3C !important;
}

.cky-consent-container .cky-link:hover,
.cky-consent-container .cky-policy:hover,
.cky-consent-container .cky-show-desc-btn:hover {
	color: #FC9D00 !important;
}

.cky-consent-container .cky-notice-btn-wrapper .cky-btn {
	border-radius: 999px !important;
	font-family: "Montserrat", sans-serif !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease, transform 0.2s ease !important;
}

.cky-consent-container .cky-btn-accept,
.cky-consent-container .cky-btn[data-cky-tag="accept-button"],
.cky-consent-container .cky-btn[data-cky-tag="detail-accept-button"] {
	background-color: #FC9D00 !important;
	border-color: #FC9D00 !important;
	color: #ffffff !important;
}

.cky-consent-container .cky-btn-accept:hover,
.cky-consent-container .cky-btn[data-cky-tag="accept-button"]:hover,
.cky-consent-container .cky-btn[data-cky-tag="detail-accept-button"]:hover {
	background-color: #3A4B3C !important;
	border-color: #3A4B3C !important;
	color: #ffffff !important;
}

.cky-consent-container .cky-btn-reject,
.cky-consent-container .cky-btn[data-cky-tag="reject-button"],
.cky-consent-container .cky-btn[data-cky-tag="detail-reject-button"] {
	background-color: #3A4B3C !important;
	border-color: #3A4B3C !important;
	color: #ffffff !important;
}

.cky-consent-container .cky-btn-reject:hover,
.cky-consent-container .cky-btn[data-cky-tag="reject-button"]:hover,
.cky-consent-container .cky-btn[data-cky-tag="detail-reject-button"]:hover {
	background-color: #FC9D00 !important;
	border-color: #FC9D00 !important;
	color: #ffffff !important;
}

.cky-consent-container .cky-btn-customize,
.cky-consent-container .cky-btn-preferences,
.cky-consent-container .cky-btn[data-cky-tag="settings-button"],
.cky-consent-container .cky-btn[data-cky-tag="detail-settings-button"] {
	background-color: transparent !important;
	border-color: #3A4B3C !important;
	color: #3A4B3C !important;
}

.cky-consent-container .cky-btn-customize:hover,
.cky-consent-container .cky-btn-preferences:hover,
.cky-consent-container .cky-btn[data-cky-tag="settings-button"]:hover,
.cky-consent-container .cky-btn[data-cky-tag="detail-settings-button"]:hover {
	background-color: #3A4B3C !important;
	border-color: #3A4B3C !important;
	color: #ffffff !important;
}

.cky-consent-container .cky-banner-btn-close,
.cky-consent-container .cky-btn-close {
	color: #3A4B3C !important;
	opacity: 0.7;
}

.cky-consent-container .cky-banner-btn-close:hover,
.cky-consent-container .cky-btn-close:hover {
	opacity: 1;
}

/* Preferences modal */
.cky-modal,
.cky-preference-center,
.cky-preference-header,
.cky-preference-body-wrapper,
.cky-accordion-wrapper {
	background-color: #ffffff !important;
	color: #3A4B3C !important;
}

.cky-preference-title,
.cky-accordion-header,
.cky-accordion-header-des,
.cky-cookie-des-table,
.cky-cookie-des-table p {
	color: #3A4B3C !important;
}

.cky-prefrence-btn-wrapper {
	background-color: #ffffff !important;
	border-top: 1px solid rgba(58, 75, 60, 0.12) !important;
}

.cky-prefrence-btn-wrapper .cky-btn {
	border-radius: 999px !important;
	font-family: "Montserrat", sans-serif !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease !important;
}

.cky-prefrence-btn-wrapper .cky-btn-accept,
.cky-prefrence-btn-wrapper .cky-btn[data-cky-tag="detail-accept-button"] {
	background-color: #FC9D00 !important;
	border-color: #FC9D00 !important;
	color: #ffffff !important;
}

.cky-prefrence-btn-wrapper .cky-btn-accept:hover,
.cky-prefrence-btn-wrapper .cky-btn[data-cky-tag="detail-accept-button"]:hover {
	background-color: #3A4B3C !important;
	border-color: #3A4B3C !important;
	color: #ffffff !important;
}

.cky-prefrence-btn-wrapper .cky-btn-reject,
.cky-prefrence-btn-wrapper .cky-btn[data-cky-tag="detail-reject-button"] {
	background-color: #3A4B3C !important;
	border-color: #3A4B3C !important;
	color: #ffffff !important;
}

.cky-prefrence-btn-wrapper .cky-btn-reject:hover,
.cky-prefrence-btn-wrapper .cky-btn[data-cky-tag="detail-reject-button"]:hover {
	background-color: #FC9D00 !important;
	border-color: #FC9D00 !important;
	color: #ffffff !important;
}

/* "Enregistrer mes préférences" — overrides plugin inline blue (#1578F7) */
.cky-prefrence-btn-wrapper .cky-btn[data-cky-tag="detail-save-button"],
.cky-preference-center .cky-btn[data-cky-tag="detail-save-button"],
.cky-modal .cky-btn[data-cky-tag="detail-save-button"] {
	background-color: #3A4B3C !important;
	border-color: #3A4B3C !important;
	color: #ffffff !important;
}

.cky-prefrence-btn-wrapper .cky-btn[data-cky-tag="detail-save-button"]:hover,
.cky-preference-center .cky-btn[data-cky-tag="detail-save-button"]:hover,
.cky-modal .cky-btn[data-cky-tag="detail-save-button"]:hover {
	background-color: #FC9D00 !important;
	border-color: #FC9D00 !important;
	color: #ffffff !important;
}

.cky-btn-revisit-wrapper .cky-btn-revisit {
	background-color: #3A4B3C !important;
	border-color: #3A4B3C !important;
}
