/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Tom Usborne
 Author URI:   https://tomusborne.com
 Template:     generatepress
 Version:      0.1
*/



/*** Fluent Booking Pro ***/

.page-id-13400 .fcal_inline_items > .el-input .el-input__wrapper, 
.page-id-13459 .fcal_inline_items > .el-input .el-input__wrapper,
.page-id-13470 .fcal_inline_items > .el-input .el-input__wrapper {
  padding: 3px 6px !important;
}

.page-id-13400 .fcal_author_avatar, .page-id-13400 .fcal_author_name,
.page-id-13459 .fcal_author_avatar, .page-id-13459 .fcal_author_name,
.page-id-13470 .fcal_author_avatar, .page-id-13459 .fcal_author_name { 
display: flex; 
justify-content: center;
}

.page-id-13400 .fcal_calendar_inner .fcal_side .fcal_author_name,
.page-id-13459 .fcal_calendar_inner .fcal_side .fcal_author_name,
.page-id-13470 .fcal_calendar_inner .fcal_side .fcal_author_name {
font-size: 1.2rem!important;
font-family: "Montserrat", system;
font-weight: 600!important;	
}


.page-id-13400 .fcal_calendar_inner .fcal_side,
.page-id-13459 .fcal_calendar_inner .fcal_side,
.page-id-13470 .fcal_calendar_inner .fcal_side {
width: 600px!important;	
}

/* Color Fluent Booking required fields asterisks in red */
.page-id-13400 .fluent_booking_app .fcal_input_label span,
.page-id-13459 .fluent_booking_app .fcal_input_label span,
.page-id-13470 .fluent_booking_app .fcal_input_label span {
    color: #D9383A !important;
    font-weight: bold;
    margin-left: 2px;
}

/* Hide payment by Paypal/Stripe on free call page and next paid sessions (after the first one) */
.page-id-13400 .site-footer .gb-element-b0fc6a9c p.gb-text:first-child,
.page-id-13470 .site-footer .gb-element-b0fc6a9c p.gb-text:first-child {
    display: none;
}

/* Display expected duration for free call */
.page-id-13400 .fcal_calendar_inner .fcal_icon_item.fcal_icon_item .fcal_duration_title,
.page-id-13459 .fcal_calendar_inner .fcal_icon_item.fcal_icon_item .fcal_duration_title,
.page-id-13470 .fcal_calendar_inner .fcal_icon_item.fcal_icon_item .fcal_duration_title {
    visibility: hidden;
    position: relative;
}

.page-id-13400 .fcal_calendar_inner .fcal_icon_item.fcal_icon_item .fcal_duration_title::after {
    content: "20 minutes";
    visibility: visible;
    position: absolute;
    left: 0;
    top: 0;
    white-space: nowrap;
}

.page-id-13459 .fcal_calendar_inner .fcal_icon_item.fcal_icon_item .fcal_duration_title::after,
.page-id-13470 .fcal_calendar_inner .fcal_icon_item.fcal_icon_item .fcal_duration_title::after {
    content: "1 Heure";
    visibility: visible;
    position: absolute;
    left: 0;
    top: 0;
    white-space: nowrap;
}


/* Changement modalités de session pour afficher le contenu */
/* 1. Allow items inside the title container to wrap onto a new line */
.page-id-13400 .fcal_multi_locations .fcal_multi_location_title,
.page-id-13459 .fcal_multi_locations .fcal_multi_location_title,
.page-id-13470 .fcal_multi_locations .fcal_multi_location_title {
    flex-wrap: wrap; 
}

/* 2. Transform the tooltip into a permanent visible block */
.page-id-13400 .fcal_multi_locations .fcal_location_tooltip,
.page-id-13459 .fcal_multi_locations .fcal_location_tooltip,
.page-id-13470 .fcal_multi_locations .fcal_location_tooltip {
    position: static;
    visibility: visible;
    opacity: 1;
    width: 100%;           
    margin-top: 0.5rem; 
    background: transparent; 
    color: #1B2533;
    border: none;
    padding: 0;
}

.page-id-13400 .fcal_multi_locations .fcal_location_tooltip li .fcal_loc_text,
.page-id-13459 .fcal_multi_locations .fcal_location_tooltip li .fcal_loc_text,
.page-id-13470 .fcal_multi_locations .fcal_location_tooltip li .fcal_loc_text {
	color: #1B2533;
}

.page-id-13400 .fcal_multi_locations .fcal_location_tooltip li.title,
.page-id-13459 .fcal_multi_locations .fcal_location_tooltip li.title,
.page-id-13470 .fcal_multi_locations .fcal_location_tooltip li.title {
	display: none;
}

/* 3. Clean up the internal list styling if needed */
.page-id-13400 .fcal_multi_locations .fcal_location_tooltip li,
.page-id-13459 .fcal_multi_locations .fcal_location_tooltip li,
.page-id-13470 .fcal_multi_locations .fcal_location_tooltip li {
    margin-bottom: 0.5rem;
}
.page-id-13400 .fcal_multi_locations .fcal_location_tooltip li:last-child,
.page-id-13459 .fcal_multi_locations .fcal_location_tooltip li:last-child,
.page-id-13470 .fcal_multi_locations .fcal_location_tooltip li:last-child {
    margin-bottom: 0;
}
.page-id-13400 .fcal_multi_locations .fcal_location_tooltip .title,
.page-id-13459 .fcal_multi_locations .fcal_location_tooltip .title,
.page-id-13470 .fcal_multi_locations .fcal_location_tooltip .title {
    font-weight: bold;
    margin-bottom: 0.5rem;
}

/* Créneau à réserver mis en avant */
.page-id-13400 .fcal_slot_info > .slot_time_range:not(.slot_timezone) > span,
.page-id-13459 .fcal_slot_info > .slot_time_range:not(.slot_timezone) > span,
.page-id-13470 .fcal_slot_info > .slot_time_range:not(.slot_timezone) > span {
    font-weight: 600;
	color: #993300
}

/* Insert and format "Nouveau créneau : " before the datetime */
.page-id-13400 .fcal_slot_info > .slot_time_range:not(.slot_timezone) > span::before,
.page-id-13459 .fcal_slot_info > .slot_time_range:not(.slot_timezone) > span::before,
.page-id-13470 .fcal_slot_info > .slot_time_range:not(.slot_timezone) > span::before {
    content: "Réservation pour : ";
    font-weight: normal;
	color: #000000;
	font-weight: bold;
}

/* Installments price */
.page-id-13459 .fcal_slot_payment_item .woocommerce-Price-amount::after {
    content: " TTC (ou 3 mensualités de 197 €)";
}


/* Redirect page for appel situation 20 min */
.page-id-13425 .rdv-dynamic-time,
.page-id-13462 .rdv-dynamic-time,
.page-id-13474 .rdv-dynamic-time {
    color: #993300;
    font-weight: 600;
}

/** FluentCRM - Page gérer les préférences de désinscription */

.fc_unsub .fluentcrm_unsubscribe_wrapper .fluentcrm_un_title img {
max-height: 130px;
}

.fc_unsub form.fc_public_form .fc_field { 
margin-top: 25px; 
}

.fc_unsub .fluentcrm_unsubscribe_wrapper .fluentcrm_un_form_wrapper h3 {
text-align: center;
}


.fc_unsub form.fc_public_form #fluentcrm_preferences_submit {
	font-family: 'Montserrat', sans-serif;
	font-size: 1rem;
}

/** FluentCRM - Page de désinscription */
.fc_unsub .fluentcrm_un_form_wrapper .fluentcrm_un_form_wrapper_inner > p {
	margin-top: 25px; 
}

.fc_unsub .fluentcrm_form_item:has(.fluentcrm_radio_group) > label::after {
    content: " (Facultatif)";
    font-weight: normal;
    color: #666;
}


.fc_unsub #fluentcrm_unsubscribe_submit {
	display: flex;
    max-width: 400px;
    height: 54px;
    text-align: center;
    margin: auto;
	border-radius: 4px;
	background-color: #f5f5f5; /* Calm, neutral background */
    color: #444444;            /* Soft dark text */
    border: 1px solid #cccccc;
	cursor: pointer;
    transition: background 0.2s ease;
}

.fc_unsub #fluentcrm_unsubscribe_submit:hover {
    background-color: #e2e2e2; /* Slight shift on hover so they know it's a button */

}

/* 1. Add breathing room between each radio option */
.fc_unsub .fluentcrm_form_item .fluentcrm_radio_item, 
.fc_unsub .fluentcrm_form_item label {
    margin-bottom: 14px !important; /* Adjusts vertical gap between options */
    line-height: 1.6 !important;     /* Improves readability for the text */
    display: block;
}

/* 2. Fix spacing between the final radio option and the text field/CTA button */
.fc_unsub #fluentcrm_unsubscribe_submit {
    margin-top: 30px !important;    /* Explicitly pushes the button down */
}

/* 3. If there is a text area for the 'Autre raison' comment box, space it nicely too */
.fc_unsub .fluentcrm_form_item textarea,
.fc_unsub .fluentcrm_form_item .fluentcrm_comment_box {
    margin-top: 10px !important;
    margin-bottom: 20px !important;
}

.fc_unsub .fluentcrm_unsubscribe_wrapper .fluentcrm_un_form_wrapper {
margin-bottom: 20px;
}

/********* FluentCommunity Portal Login ************/
/***************************************************/

/* Aligner le texte au dessus des champs de connexion */

.fcom_layout_main .fcom_auth_description {
  text-align: center;
}

/* Styling the main Connexion button */
.fcom_layout_main .fcom_onboard_body .fcom_onboard_form #wp-submit {
    background-color: #0d4284 !important;
    border-color: #0d4284 !important;
    color: #ffffff !important;
	font-family: "Montserrat", sans-serif;
  	font-weight: 500;
}

/* Adding a hover effect for better UX */
.fcom_layout_main .fcom_onboard_body .fcom_onboard_form #wp-submit:hover {
    background-color: #093163 !important; /* A slightly darker blue for the hover state */
    border-color: #093163 !important;
    cursor: pointer;
}

.fluent_com_auth .fcom_spaced_divider::after {
  content: "🔒 Rappel : Pour garantir la meilleure expérience à tous, votre accès est strictement personnel. Merci de ne pas partager vos identifiants.";
  display: block; /* Forces the text to take its own line */
  font-size: 13px;
  color: #6c757d;
  font-style: italic;
  line-height: 1.5;
  text-align: center;
  margin-top: 15px;
}

/* Focus state for the email and password fields */
#fcom_user_login_form .input:focus {
    border-color: #0d4284;     
    outline: none;     
    box-shadow: 0 0 0 2px rgba(13, 66, 132, 0.2); 
}

#fcom_user_login_form .input {
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

/* Password Eye Toggle Positioning */
.fcom_form-group.login-password {
    position: relative !important;
}

.fcom-toggle-password {
    position: absolute;
    right: 15px;
    bottom: 12px; /* Positions it nicely inside the input, ignoring the label above */
    cursor: pointer;
    width: 20px;
    height: 20px;
    color: #6c757d;
    z-index: 10;
    transition: color 0.2s ease;
}

.fcom-toggle-password:hover {
    color: #19283a; /* Darkens on hover */
}

.fcom-toggle-password svg {
    width: 100%;
    height: 100%;
}

/* Prevent text from hiding behind the eye icon */
#user_pass {
    padding-right: 40px !important;
}

.fcom_reset_pass_text {
  font-size: 1rem;
}


/***** Fluentcommunity catalogue course *****/

/* Masquer le bouton d'inscription dans la vue du cours pour tout le portail */
.fcom_course_view_layout .custom_lockscreen .fcom_course_actions .fcom_primary_button { 
    display: none !important;
}

/*** PAGES/POSTS ***/

/* Summary (essentiel en 30s) */
.article-summary-header {
	font-family: "Montserrat", sans-serif;	
}

.article-summary-box ul {
  margin: -10px 0 1em 1.5em;
}

.article-summary-box ul li {
  margin-bottom: 0.75rem;
}


/* UL/LI in blog posts */
@media (max-width: 768px) {
	ol, ul {
  		margin: 0 0 1.5rem 2rem;
	}
}

/* Liens Table des matières */
.lwptoc_title {
  font-family: 'Montserrat';
  font-size: 0.95rem;
}

.lwptoc-light .lwptoc_i A {
  color: #3b8262!important;
}

.lwptoc-light .lwptoc_i A:hover {
	color: #2d634a!important;
}

/* Remove underline on hover ONLY for standard text links inside paragraphs */
p a:hover {
    text-decoration: none;
}

/* Fix caption size on images */
.entry-content .wp-block-image figcaption {
	font-size: 14px;
}

/* Fix lists on content */
.entry-content li {
  margin-bottom: 0.75em;
}
.entry-content li:last-child {
  margin-bottom: 0;
}

/* slightly less spacing for nested lists */
.entry-content li li {
  margin-bottom: 0.5em;
}

/* Reduce left margin for lists (3em originally) */
.entry-content ul, 
.entry-content ol {
    margin-left: 1.5em;
}

.inside-article .featured-image img {
  max-width: 100%;
  margin: auto;
  max-height: 400px;
  object-fit: cover;
  border-radius: 15px;
  box-shadow: 0 1px 3px 0 #f7f8f9;
  border: 1px solid #DDD;
}

/* Fix font-size/line-height for quiz in articles */
.entry-content .vff li { font-size: 1em; } 
.entry-content .vff p { line-height: 1.4; }

/* Fix spacing bottom of generic WP images */
.inside-article .wp-block-image {
  margin-bottom: 1.5rem;
}

.timespan {
	color: #6B7280;
}

.timespan::before {
  content: "🕑";
  margin-right: 5px;
}

.article-author-meta-top, .author-name-fancybox {
	font-family: "Montserrat", sans-serif;
}

.article-comment-meta a {
  text-decoration: none;
}

.article-comment-meta a:hover {
  text-decoration: underline;
}

.lwptoc_itemWrap .lwptoc_itemWrap .lwptoc_item_label::before {
    content: "\203A"; /* This is the hex code for a sleek chevron: › */
    margin-right: 6px;
    font-weight: bold;
    opacity: 0.7; /* Makes the chevron slightly softer than the text */
    display: inline-block;
}

.wp-singular blockquote {
  border-left: 5px solid rgb(28, 74, 90);
  background: #1824480a;
  font-size: 1.1rem;
}

.wp-singular .avatar.avatar-80.photo.dynamic-author-image.dynamic-author-image-rounded {
  object-fit: cover;
  aspect-ratio: 1;
}

/* Novashare CTA */
.ns-inline-cta {
  font-weight: bold;
  margin-bottom: 20px;
}

/* Related posts slider */
/* Set up the horizontal scrolling container */
.swipeable-related-posts {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    gap: 15px;
    padding-bottom: 15px;
    scroll-behavior: smooth; /* Ensures smooth sliding when arrows are clicked */
}

/* Hide the default scrollbar */
.swipeable-related-posts::-webkit-scrollbar {
    display: none;
}
.swipeable-related-posts {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.swipeable-related-posts > .gb-loop-item {
    flex: 0 0 auto;
    width: 149px;
    scroll-snap-align: start;
}

.swipeable-related-posts img {
    transition: transform 0.3s ease;
    border-radius: 5px;
}
.swipeable-related-posts img:hover {
    transform: scale(1.03);
}

.related-posts-title-post {
	font-family: sans-serif;
}

.related-posts-title-post a {
	color: #2c3e50;
}

.related-posts-title-post a:hover {
	color: #000000;
}

/* Desktop Arrows Styling */
.related-posts-wrapper {
    position: relative; 
}

.slider-arrow {
    position: absolute;
    top: -35px; 
    width: 25px;
    height: 25px;
    border: none;
    cursor: pointer;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    color: #FFFFFF;
    transition: color 0.2s ease, transform 0.2s ease;
    padding: 0;
    box-shadow: none;
}

/* Align them right next to each other on the far right */
.next-arrow { 
    right: 0; 
}

.prev-arrow { 
    right: 30px; 
    left: auto; 
}

/* Hide on mobile/tablets where native swiping is better */
@media (max-width: 768px) {
    .slider-arrow {
        display: none;
    }
}

/* LARGE DESKTOP VIEW */
@media (min-width: 1200px) {
    .one-container .site-content {
      padding-left: 200px;
      padding-right: 200px;
      padding-top: 40px;
      padding-bottom: 40px;
      box-shadow: 0 10px 30px rgba(0,0,0,0.08);
    }
}

/** MENTIONS LEGALES **/

#matomo-opt-out-form-embed {
  padding-bottom: 20px;
}

label[for="trackVisits"] {
  margin-left: 10px;
}


/** PAGE DES TESTS DE PERSONNALITE */
.page-id-6102 .ns-inline-cta {
  display: none;
}

.ff_conv_app .ff-btn.o-btn-action.ff-btn-lg.default {
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
}

/* Appuyer sur entrée - Quiz */
.f-enter-desc {
  display: none !important;
}

@media screen and (max-width:1023px) {
	.f-key-hint {
	  display: none !important;
	}
    body .ff_conv_app_frame .vff .ff_conv_section_wrapper .ff_conv_input {
        padding-left: 20px !important;
        padding-right: 0px !important;
    }

}

/** PAGE DES MANIFESTES **/
.page-id-2082 .ns-inline-cta {
  display: none;
}

/***** CATEGORIES *****/
.archive .taxonomy-description {
  margin-bottom: 60px;
}

.read-more-container > a, .read-more-button-container > a {
  border-radius: 20px;
  background: #3b8262;
  letter-spacing: 0.2px;
}

.read-more-container > a:hover, .read-more-button-container > a:hover {
  background: #2d634a;
}

@media (max-width: 768px) {
	.read-more-container, .read-more-button-container {
	  display: flex;
	  justify-content: center;
	}
	.read-more-container > a, .read-more-button-container > a  {
	  width: 60%;
	  text-align: center;
	}
	
}

/* Categories pagination */
.paging-navigation {
    margin-top: 50px;
    margin-bottom: 30px;
    text-align: center;
}

.paging-navigation .nav-links {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
	font-family: "Montserrat", sans-serif;
}

.paging-navigation .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 42px;
    padding: 0 15px;
    background-color: #f7f9fa;
    color: #55555e;
    border-radius: 6px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.2s ease-in-out;
	text-transform: capitalize;
}

.paging-navigation .page-numbers.current {
    background-color: #55555e;
    color: #ffffff;
}

.paging-navigation .next.page-numbers, .paging-navigation .prev.page-numbers {
	gap: 6px;
}

.paging-navigation a.page-numbers:hover {
    background-color: #e2e4e6;
}

.paging-navigation .next.page-numbers span,
.paging-navigation .prev.page-numbers span {
    font-weight: 900;
    font-size: 1.2em;
}

@media (max-width: 768px) {
    .paging-navigation .next.page-numbers,
    .paging-navigation .prev.page-numbers {
        font-size: 0;
        width: 50px;
        padding: 0;
        justify-content: center;
		gap: 0;
    }
    
    .paging-navigation .next.page-numbers span,
    .paging-navigation .prev.page-numbers span {
        font-size: 24px; 
        line-height: 1;
    }
}

/* --- Page d'Accueil --- */
.home #content {
	padding: 0!important;
}

/* Overlay categories cards setup */
.home .homepage-test-cta {
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
}

.home-card-reveal {
    position: relative;
    overflow: hidden;
}

.home-card-reveal::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(24, 36, 72, 0.7); 
    transition: opacity 0.4s ease-in-out;
    z-index: 1;
    border-radius: 6px;
}

.home-card-reveal:hover::before {
    opacity: 0.4;
}

.home-card-reveal > * {
    position: relative;
    z-index: 2; 
}

/* --- Page: Mes ouvrages --- */
@media (min-width: 1200px) {
	.page-id-12453 #content {
		padding: 0!important;
	}

	.page-id-12453 h1.entry-title {
		padding-top: 80px;
		padding-left: 200px;
		padding-right: 200px;
		padding-bottom: 40px;
	}
}
.page-id-12453 .cta-button-my-books {
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
}

/* --- Page d'auteur --- */
.page-id-86 .author-programme-30J-cta, .page-id-86 .author-test-cta {
  font-family: "Montserrat", sans-serif;
}

.page-id-86 .author-test-cta {
	font-weight: 500;
}

/* --- 404 Page Custom Button Links --- */
body.error404 form.search-form {
	width: 100%;
	display: flex;
	justify-content: center;
	margin-top: 3rem;
}

body.error404 .search-submit {
	padding: 9px 15px;
}

@media (min-width: 769px) {
	body.error404 .search-form .search-field {
		min-width: 500px;
	}
}

.retour-accueil-404 {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background-color: #55575f;
    color: #ffffff;
    padding: 12px 24px;
    text-decoration: none;
    border-radius: 30px; 
	font-family: "Montserrat", sans-serif;
    font-weight: 500;
    transition: all 0.3s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.retour-accueil-404:hover,
.retour-accueil-404:focus {
    background-color: #425e75;
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

/***** Thank You Lead Magnet ******/
/******************************************/

.thank-you-cta {
	font-family: "Montserrat", sans-serif;
}

/***** LANDING PAGE: 30J pour Changer ******/
/******************************************/

/* id-7343 = Page generique ; id-12120 = Productivité : id-12155 = Confiance ; id-12165 = Bien-être ; id-12182 = Sens ; id-12188 = Relations  */
.page-id-7343 #content, 
.page-id-12120 #content, 
.page-id-12155 #content, 
.page-id-12165 #content, 
.page-id-12182 #content,
.page-id-12188 #content {
  padding-top: 0!important;
  padding-bottom: 0!important;
  padding-left: 0!important;
  padding-right: 0!important;
}

.quote-cta-30J > p {
	font-family: "Montserrat", sans-serif;
}

.button-cta-30J-landing {
  font-family: "Montserrat", sans-serif;
  white-space: nowrap;
}

/* Container styling */
#sticky-mobile-cta {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background-color: #ffffff; /* White background to frame the button */
    box-shadow: 0 -4px 10px rgba(0,0,0,0.08); /* Soft shadow above */
    padding: 12px 20px 20px 20px; /* Extra padding on bottom for mobile swipe areas */
    z-index: 9999;
    transition: transform 0.3s ease-in-out;
    display: flex;
    justify-content: center;
    align-items: center;
	font-family: "Montserrat", sans-serif;
}

#sticky-mobile-cta a {
    background-color: #4caf50;
    color: #ffffff;
    font-weight: 700;
    font-size: 16px; /* Slightly smaller than your main 18px CTA */
    padding: 10px 15px;
	line-height: 1.2;
	white-space: nowrap;
    border-radius: 50px;
    text-decoration: none;
    width: 100%;
    max-width: 350px;
    text-align: center;
    box-shadow: 0px 2px 4px rgba(0,0,0,0.15);
}

#sticky-mobile-cta.hidden-cta {
    transform: translateY(120%); /* Pushes it down entirely out of view */
}

/************** COMMENTS SECTION *********************/
/*****************************************************/

.one-container .comments-area {
  margin-top: 80px;
  margin-bottom: 2rem !important;
}

/* Create a unified "Card" for the entire comment */
.comment-body {
  padding: 25px;
  margin-bottom: 20px;
  background-color: #fcfcfc;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 8px;
}

/* Fix avatar/name/date placement */
.comment-meta {
  display: flex;
  align-items: flex-start;
  margin-bottom: 15px;
}

.comment-meta .avatar {
  float: none;
  margin-right: 15px;
  border-radius: 50%;
}

.comment-author-info {
  display: block; 
}

.comment-author cite {
  font-family: "Montserrat", sans-serif;
  text-transform: capitalize;
}

.comment-content {
  padding: 0; 
  border: none; 
  margin-top: 15px;
}

/* Handle Replies (Indentation only, no messy lines or negative margins) */
.comment .children {
  padding-left: 40px;
  margin-top: 0;
  border-left: none;
}

/* Make the spacing slightly tighter for deep replies */
.comment .children .comment-body {
  margin-bottom: 15px;
  background-color: #ffffff;
}

/* Remove the old bottom border on parent threads completely */
.depth-1.parent > .children {
  border-bottom: none;
}

/* Smaller font for Comments title */
.comments-title,
.comment-reply-title {
  font-size: 24px;
  font-weight: 700;
  margin-top: 1.5em;
  margin-bottom: 1em;
}

/* Comment "reply" button */
.comment-reply-link {
  display: inline-block;
  margin-top: 15px;
  padding: 8px 18px; 
  background-color: #f5f5f5;
  color: #333333;
  border: 1px solid #dddddd;
  border-radius: 4px;
  font-size: 14px; 
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s ease;
}

.comment-reply-link:hover,
.comment-reply-link:focus {
  background-color: #e5e5e5;
  color: #000000;
  border-color: #cccccc;
}

/* Comment "publish a comment" button */
.comment-form #submit {
  background-color: #2c3e50;
  color: #ffffff;
  border: none;
  border-radius: 4px;
  padding: 12px 28px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.comment-form #submit:hover,
.comment-form #submit:focus {
  background-color: #1a252f;
  transform: translateY(-1px);
  box-shadow: 0 4px 6px rgba(0,0,0,0.15);
}

.comment-form input[type="text"],
.comment-form input[type="email"] {
  width: 50%;
  min-width: 250px;
  padding: 14px 16px; 
  font-size: 16px; 
  color: #333333; 
  background-color: #f9f9f9; 
  border: 1px solid #d1d1d1; 
  border-radius: 4px; 
  box-sizing: border-box; 
  transition: all 0.2s ease; 
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.02); 
}

.comment-form input[type="text"]:focus,
.comment-form input[type="email"]:focus,
.comment-form textarea:focus {
  background-color: #ffffff;
  border-color: #2c3e50;
  outline: none;
  box-shadow: 0 0 0 3px rgba(44, 62, 80, 0.15);
}

.comment-form p {
  margin-bottom: 15px;
  margin-top: 15px;
}

.comment-form label {
  display: block;
  color: #444444;
  font-size: 15px;
}

.comment-form-fc-consent.comment-form-cookies-consent {
  font-weight: 600;
}

.comment-form textarea {
  width: 100%;
  min-height: 120px; 
  resize: vertical; 
  padding: 14px 16px; 
  font-size: 16px; 
  color: #333333; 
  background-color: #f9f9f9; 
  border: 1px solid #d1d1d1; 
  border-radius: 4px; 
  box-sizing: border-box; 
  transition: all 0.2s ease; 
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.02); 
}

.required-field-message,
.comment-notes {
  display: none !important;
}

/* MOBILE VIEW ONLY */
@media (max-width: 768px) {
    /* Comments */
    .comment-content,
    .comment-body {
        padding: 15px; 
    }

    .comment .children {
        padding-left: 15px; 
    }

    .comment-meta .avatar {
        width: 40px;
        height: 40px;
        margin-right: 10px;
    }

    .comments-title,
    .comment-reply-title {
        font-size: 22px;
    }
    
    .comment-reply-link {
        padding: 12px 24px;
        font-size: 15px;
    }
    .comment-form #submit {
        width: 100%;
        padding: 15px 20px;
        font-size: 18px;
    }   

    .comment-form input[type="text"],
    .comment-form input[type="email"] {
        width: 100%; /* Now they safely expand to fill small mobile screens */
    }   
}


/*********** MENU HEADER ************/

/* Fix Scrollbar Drift on Search */
body:has(#gp-search.gp-modal--open) {
    padding-right: var(--scroll-width) !important;
}

.main-navigation .inside-navigation {
	padding-left: 0;
}

@font-face {
    font-family: 'Trajan Pro Subset';
    src: url('./fonts/trajan-pro-subset.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

.main-title, 
.site-branding {
    font-family: 'Trajan Pro Subset', sans-serif;
    font-weight: initial;
}

/* Ensure non-link dropdown parents show a pointer cursor */
.menu-item-has-children > a {
    cursor: pointer;
}

.main-navigation .main-nav ul li.menu-item-11498 > a::before {
    content: "";
    width: 20px;
    height: 20px;
    vertical-align: text-bottom;
    /* The SVG is URL-encoded right into the CSS */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;    
    
    display: inline-block;
    margin-right: 8px; /* Adds a nice gap between the key and the text */
}

.main-navigation .main-nav ul ul li a {
    letter-spacing: 0.02em;
}

/* Globally prevent scroll chaining for the off-canvas menu */
#generate-slideout-menu {
    overscroll-behavior: contain;
    overflow-y: auto; 
}

/* Fix menu item selected + dropdown */
.main-navigation .main-nav ul li[class*="current-menu-"] > a {
  background-color: transparent;
  color: #4CAF50;
}

.main-navigation .main-nav ul ul li[class*="current-menu-"] > a {
  color: #FFFFFF;
  font-weight: 600;
}

/* --- GLOBAL CTA BUTTON STYLES --- */
/* Extracted to prevent repeating colors/weights in multiple media queries */
.main-navigation .main-nav ul li.menu-item-7872 a,
.slideout-navigation .main-nav ul li.menu-item-7872 a {
    background-color: #4CAF50; 
    color: #ffffff !important;
    font-weight: 600;
    border-radius: 50px;
    text-transform: capitalize;
}

/* DESKTOP VIEW */
@media (min-width: 1025px) {
    
    /* Top Bar */
    .clickable-top-bar {
        position: relative;
    }
    
    .clickable-top-bar a {
        color: #FFFFFF;
        text-decoration: none;
    }

    .clickable-top-bar a::after {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 10;
    }
    
    /* Sticky Header */
    #sticky-navigation .inside-navigation {
      height: 60px;
      align-content: center;
      box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.2);
    }
    /* Close the gap from the dropdown on the sticky header */
    .main-navigation.is_stuck .main-nav > ul > li.menu-item-has-children > .sub-menu {
        margin-top: -7px !important;
    }
    
    /* 1. Gives the logo some breathing room */
    .inside-navigation {
        padding-left: 40px; 
        /* 2. Forces the menu to stay "boxed" */
        padding-right: calc((100vw - 1200px) / 2);
    }
    
    /* Turn Connexion into an Icon Only (Desktop) */
    .main-navigation .main-nav ul li.menu-item-11498 > a {
        font-size: 0 !important; /* Hides the text */
        padding-left: 14px;
        padding-right: 14px;
    }

    .main-navigation a[data-gpmodal-trigger="gp-search"] {
        padding: 12px 16px;
    }
    
    .main-navigation .main-nav ul li.menu-item-11498 > a::before {
        font-size: 18px !important; /* Forces the emoji to stay visible */
        margin-right: 0; /* Removes the gap since the text is gone */
    }    
}

/* LARGE DESKTOP VIEW */
@media (min-width: 1200px) {
    .nav-align-right .navigation-branding {
        margin-right: 40px!important;
    }
}

/* TABLET & DESKTOP VIEW */
@media (min-width: 769px) {
    
    .main-navigation .main-nav > ul > li > a, 
    .main-navigation .menu-bar-item > a {
        line-height: 1!important; 
        padding: 13px 18px; 
        margin: 15px 2px; 
        border-radius: 4px; 
        transition: all 0.2s ease-in-out; 
    }
    
    /* Add a subtle shadow to the dropdown menus */
    .main-navigation ul ul {
        box-shadow: 0 4px 12px rgba(0,0,0,0.3);
        border: 1px solid #333;
    }
    
    /* The Green CTA Button - Positioning & Sizing */
    .main-navigation .main-nav > ul > li.menu-item-7872 > a {
        line-height: 1 !important; 
        padding: 12px 20px; 
        box-shadow: 0 2px 4px rgba(0,0,0,0.15); 
        align-self: center; 
        margin-right: 15px;
    }

    /* CTA Button Hover State */
    .main-navigation .main-nav > ul > li.menu-item-7872 > a:hover {
        background-color: #388E3C; 
        box-shadow: 0 4px 8px rgba(0,0,0,0.25); 
    }
}

/* MOBILE & TABLET OFF-CANVAS VIEW */
@media (max-width: 1024px) {
    
    /* CTA Button Mobile/Tablet Positioning & Sizing */
    .main-navigation .main-nav ul li.menu-item-7872 a,
    .slideout-navigation .main-nav ul li.menu-item-7872 a {
        line-height: 1.5em !important;
        margin: 20px 5px 15px 5px; 
        padding: 14px 6px;
        text-align: center;
        text-wrap: nowrap;
        box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    }

    /* Quiz Button on Off-canvas */
    .offcanvas-quiz-feature {
        /* Use margin to create a guaranteed unclickable "safe zone" where the hamburger icon was */
        margin-top: 60px; 
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        margin-bottom: 10px;
    }

    .offcanvas-quiz-feature a {
        display: block;
        /* Move the padding directly to the link to create a large, fat-finger-friendly touch target */
        padding: 10px 43px 20px 25px; 
        font-weight: 600;
        font-size: 16px;
        color: #FFFFFF;
        text-decoration: none;
        transition: color 0.2s ease-in-out;
    }

    .offcanvas-quiz-feature a:hover {
        color: #4caf50; /* Darken or change color on tap/hover */
    }
    
    /* Active/Tap state for the mobile CTA */
    .main-navigation .main-nav ul li.menu-item-7872 a:active,
    .slideout-navigation .main-nav ul li.menu-item-7872 a:active {
        background-color: #388E3C;
        transform: translateY(1px); 
    }
    
    .main-navigation .main-nav ul ul li > a {
        line-height: 1.5em;
    }
    
   /* Separator Line (A propos) */
   .slideout-navigation .main-nav ul li.menu-item-11498 {
        border-top: 1px solid rgba(255, 255, 255, 0.08); 
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);        
        margin-top: 15px;
        padding-bottom: 5px;
        padding-top: 5px;
    }
    
    /* Social Icons */
   .slideout-navigation .slideout-widget {
        margin: unset!important;
    }
   .slideout-navigation .slideout-widget .wp-block-social-links {
        display: flex !important;
        flex-wrap: nowrap !important;
        justify-content: center !important;
        margin-top: 30px;
        gap: 12px;
    }

    .slideout-navigation .slideout-widget .wp-block-social-link a {
        padding: 12px !important; 
        display: flex; 
        align-items: center;
        justify-content: center;
        border-radius: 50%; 
        transition: transform 0.2s ease-in-out;
    }

    .slideout-navigation .slideout-widget .wp-block-social-link a svg {
        width: 24px !important; 
        height: 24px !important;
    }

    .slideout-navigation .slideout-widget .wp-block-social-link a:active {
        transform: scale(0.9);
    }
    
    .slideout-navigation .slideout-widget.widget_block.widget_text {
        width: 100%!important;
    }
    
    .slideout-navigation .slideout-widget p.restons-connectes {
        text-align: center;
        font-size: 1em; 
        color: rgba(255, 255, 255, 0.6); 
        margin-top: 20px;
        margin-bottom: -10px; 
        font-weight: 400;
    }
}

/* TABLET ONLY OFF-CANVAS VIEW */
@media (min-width: 769px) and (max-width: 1024px) {
    
    .main-navigation .main-nav ul li > a,
    .slideout-navigation .main-nav ul li > a {
        padding-top: 1.5em;
        padding-bottom: 1.5em;
    }

    .main-navigation .main-nav > ul > li > a {
        line-height: 1.5em!important;
    }
}

/* MOBILE VIEW ONLY MENU */
@media (max-width: 768px) {
    
    /* Hide the word "Menu" next to the hamburger icon */
    .mobile-header-navigation .mobile-menu {
        display: none !important;
    }

    /* Turn the header wrapper into a Flexbox container */
    .mobile-header-navigation .inside-navigation {
        display: flex;
        flex-wrap: wrap; 
        align-items: center;
    }

    /* Move the Search Icon to the Left */
    .mobile-header-navigation .menu-bar-items {
        order: 1;
        flex: 1;
        flex-grow: 0;
        text-align: left;
    }

    /* Keep the Branding in the Center */
    .mobile-header-navigation .site-logo.mobile-header-logo {
        order: 2;
        flex: 2;
        text-align: center;
        margin-left: 0;
        margin-right: 0;
        justify-content: center;
    }

    /* Move the Hamburger Toggle to the Right */
    .mobile-header-navigation .menu-toggle {
        order: 3;
        flex: 1; 
        text-align: right;
        justify-content: flex-end; 
        width: auto;
    }

    /* Push the actual dropdown menu below the header when tapped */
    .mobile-header-navigation #mobile-menu {
        order: 4;
        flex-basis: 100%;
    }
    
    /* Optimize Touch Targets for Dropdown Arrows */
    .main-navigation .main-nav ul li.menu-item-has-children .dropdown-menu-toggle,
    .slideout-navigation .main-nav ul li.menu-item-has-children .dropdown-menu-toggle {
        padding: 0px 25px;
    }
    
    /* Spacing for all mobile menu links */
    .main-navigation .main-nav ul li > a,
    .slideout-navigation .main-nav ul li > a {
        padding-top: 5px;
        padding-bottom: 5px;
    }
    
    /* Offcanvas fix */
    #generate-slideout-menu {
        height: 100dvh; /* Adapts to mobile browser address bars */
        padding-bottom: 80px !important; /* Extra space to scroll past the last item */
    }
    body.slide-opened {
        overflow: hidden !important;
    }
}


/* Woocommerce reset password */
/*****************************/

.page-id-7503 .woocommerce-ResetPassword p.form-row:last-of-type {
  display: flex;
  justify-content: center;
  padding-top: 20px;
}


.page-id-7503 .entry-content ul {
	margin-left: 0!important;	
}


/* Woocommerce Checkout */
/************************/

/* Header Checkout */
.header-checkout-penserchanger {
	font-family: 'Trajan Pro Subset', sans-serif;	
}


/* 1. Limit the width and center the entire checkout form */
form.woocommerce-checkout {
    max-width: 800px !important;
    margin: 0 auto !important;
    background: #ffffff;
    padding: 40px;
    border-radius: 12px;
}

/* Center the coupon toggle to match the form width */
.woocommerce-form-coupon-toggle,
form.woocommerce-checkout-form-coupon {
    max-width: 600px;
    margin: 0 auto 20px auto;
}

/* 2. Force single column layout */
.woocommerce-checkout .col2-set {
    width: 100% !important;
}
.woocommerce-checkout .col2-set .col-1 {
    width: 100% !important;
    float: none !important;
    padding: 0 !important;
}

/* 3. Hide the empty right column entirely */
.woocommerce-checkout .col2-set .col-2 {
    display: none !important;
}


/* Coupons on Woocommerce Checkout */
/* Simplify the coupon toggle banner */
.woocommerce-form-coupon-toggle .woocommerce-info {
    background: transparent;
    border: none;
    color: var(--contrast-2); /* Uses your GP contrast color */
    padding: 0;
    margin-bottom: 20px;
    display: flex;
    justify-content: center;
    gap: 5px;
}

/* Remove the default WooCommerce icon */
.woocommerce-form-coupon-toggle .woocommerce-info::before {
    display: none; 
}

/* Style the "Cliquez ici" link */
.woocommerce-form-coupon-toggle .woocommerce-info a.showcoupon {
    color: var(--accent); /* Uses your GP blue accent color */
    text-decoration: none;
    font-weight: 600;
}

.woocommerce-form-coupon-toggle .woocommerce-info a.showcoupon:hover {
    text-decoration: underline;
}

/* Restructure the coupon form to a neat inline row */
form.woocommerce-form-coupon {
    display: flex;
    gap: 10px;
    padding: 20px;
    background: var(--base-2); /* Subtle gray background matching your theme */
    border-radius: 8px;
    border: 1px solid #eeeeee;
    margin: 0 auto 30px auto !important;
    max-width: 600px;
}

/* Style the input and button to match heights */
form.woocommerce-form-coupon .form-row {
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    width: auto;
}

/* Make the input take up the remaining space */
form.woocommerce-form-coupon .form-row-first {
    flex-grow: 1;
}

/* Keep the button size fixed to its text */
form.woocommerce-form-coupon .form-row-last {
    flex-shrink: 0;
}

form.woocommerce-form-coupon input.input-text {
    width: 100%;
    height: 48px;
    padding: 10px 15px;
    border-radius: 6px;
    border: 1px solid #ccc;
    font-size: 16px;
}

form.woocommerce-form-coupon button.button {
    height: 48px;
    padding: 0 20px;
    border-radius: 6px;
    font-weight: 600;
    white-space: nowrap;
}

/* Mobile adjustments: Stack them cleanly on very small screens */
@media (max-width: 480px) {
    .woocommerce-form-coupon-toggle .woocommerce-info {
        flex-wrap: wrap;
    }
    
    form.woocommerce-form-coupon {
        flex-direction: column;
    }
    form.woocommerce-form-coupon button.button {
        width: 100%;
    }
}

/* 4. Improve Input Fields */
.woocommerce-checkout .form-row {
    margin-bottom: 20px;
}
.woocommerce-checkout .form-row input.input-text {
    width: 100%;
    padding: 14px 15px;
    border-radius: 6px;
    border: 1px solid #ccc;
    font-size: 16px;
}
.woocommerce-checkout .form-row input.input-text:focus {
    border-color: var(--accent); /* Uses your GeneratePress accent color */
    box-shadow: 0 0 0 1px var(--accent);
}

/* Notice Woocommerce */

/* Disable login on checkout */
.woocommerce-form-login-toggle {
  display: none!important;
}


/* Style the main error box to look modern and polite */
.woocommerce-NoticeGroup.woocommerce-NoticeGroup-checkout .woocommerce-error {
    background-color: #fef2f2; /* A very soft, pastel red/pink */
    border: 1px solid #fecaca; /* A subtle red border */
    border-radius: 8px; /* Matches your payment buttons */
    color: #991b1b; /* A readable, dark red */
    font-family: "Montserrat", sans-serif !important;
    padding: 16px 20px;
    margin-bottom: 25px;
	margin-left: 0px;
    box-shadow: 0 2px 4px rgba(220, 38, 38, 0.05);
}

/* Format the text inside the box */
.woocommerce-NoticeGroup.woocommerce-NoticeGroup-checkout .woocommerce-error li {
    font-size: 0.95rem;
    font-weight: 500;
    margin-bottom: 8px;
    list-style-type: none; /* Removes the ugly default bullet points */
    display: flex;
    align-items: center;
}

.woocommerce-NoticeGroup.woocommerce-NoticeGroup-checkout .woocommerce-error li:last-child {
    margin-bottom: 0;
}

/* Add a little warning icon before the text */
.woocommerce-NoticeGroup.woocommerce-NoticeGroup-checkout .woocommerce-error li::before {
    content: "⚠️";
    margin-right: 10px;
    font-size: 1.1rem;
}

/* Formulaire Email/Prénom/Nom */
/* Force Montserrat on all checkout text */
.woocommerce-checkout h3,
.woocommerce-checkout label,
.woocommerce-checkout input.input-text,
.woocommerce-checkout .woocommerce-review-order-table,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
    font-family: "Montserrat", sans-serif !important;
}

/* Style the Section Headings */
.woocommerce-checkout h3 {
    font-size: 1.4rem;
    color: #1e293b;
    font-weight: 700;
    margin-bottom: 20px;
    border-bottom: 2px solid #f1f5f9;
    padding-bottom: 10px;
}

/* Style the Input Labels */
.woocommerce-billing-fields label {
    color: #4a5568;
    font-weight: 600; /* Makes them pop slightly */
    font-size: 0.95rem;
    margin-bottom: 8px;
    display: block;
}

/* Red asterisk styling */
.woocommerce-billing-fields label .required {
    color: #e63946;
    text-decoration: none;
}

/* Style the Input Boxes (The SaaS Look) */
.woocommerce-checkout input.input-text {
    width: 100%;
    padding: 14px 16px;
    border: 1px solid #cbd5e1 !important; /* Soft grey border */
    border-radius: 8px; /* Matches the payment cards */
    background-color: #ffffff;
    color: #1e293b;
    font-size: 1rem;
    box-shadow: 0 1px 2px rgba(0,0,0,0.02);
    transition: all 0.3s ease;
}

/* The Focus State (When typing) */
.woocommerce-checkout input.input-text:focus {
    outline: none;
    border-color: #4CAF50 !important; /* Turns your brand green */
    box-shadow: 0 0 0 3px rgba(76, 175, 80, 0.15) !important; /* Adds a soft green glow */
}

/* Smooth out the default WooCommerce green validation border */
.woocommerce-checkout .woocommerce-validated input.input-text {
    border-color: #4CAF50 !important;
}


/* 6. Style the Order table */
#order_review, 
#order_review_heading {
    width: 100% !important;
}

h3#order_review_heading {
    margin-top: 30px;
    padding-top: 20px !important; /* Kept your prioritized 20px padding */
    font-size: 1.4em;
}

/* Reset Table Basics & Typography */
table.woocommerce-checkout-review-order-table {
  width: 100%;
  border-collapse: collapse;
  font-family: "Montserrat", sans-serif !important; /* Force the modern font */
  color: #1e293b;
  margin-bottom: 2rem;
}

/* Style the Headers (Produit & Sous-total) */
table.woocommerce-checkout-review-order-table thead th {
  text-align: left;
  padding: 16px 20px;
  background-color: #f8fafc; /* A very subtle, clean grey */
  border-top: 1px solid #e2e8f0;
  border-bottom: 2px solid #e2e8f0;
  color: #64748b;
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Right-align the price columns for a neat ledger look */
table.woocommerce-checkout-review-order-table thead th.product-total,
table.woocommerce-checkout-review-order-table tbody td.product-total,
table.woocommerce-checkout-review-order-table tfoot td {
  text-align: right;
}

/* Row Borders and Cell Padding */
table.woocommerce-checkout-review-order-table tbody tr,
table.woocommerce-checkout-review-order-table tfoot tr {
  border-bottom: 1px solid #e2e8f0;
}
table.woocommerce-checkout-review-order-table tfoot tr:last-child {
  border-bottom: none; /* Clean finish at the bottom */
}

table.woocommerce-checkout-review-order-table th,
table.woocommerce-checkout-review-order-table td {
  padding: 20px;
  vertical-align: middle;
  background-color: transparent !important; /* Removes default woo grey blocks */
}

/* Disable the variation for the paid sessions */
.woocommerce-checkout dl.variation {
    display: none;
}

/* Product Alignment */
table.woocommerce-checkout-review-order-table td.product-name {
  display: flex;
  align-items: center;
  gap: 16px; /* Creates perfect spacing between image, title, and quantity */
  border-bottom: none; /* Prevents flexbox border glitches */
}

/* Product Image Styling */
table.woocommerce-checkout-review-order-table .product-item-thumbnail img {
  border-radius: 6px;
  width: 65px;
  height: auto;
}

/* Product Link and Quantity Text (non-clickable) */
table.woocommerce-checkout-review-order-table td.product-name {
  color: #1e293b;
  font-weight: 600;
  text-decoration: none;
  font-size: 1rem;
}

table.woocommerce-checkout-review-order-table .product-quantity {
  color: #64748b;
  font-weight: 500;
  font-size: 0.9rem;
}

/* Footer Styling (Subtotal & Total) */
table.woocommerce-checkout-review-order-table tfoot th {
  text-align: left;
  font-weight: 500;
  color: #4a5568;
}

/* Final price */
table.woocommerce-checkout-review-order-table tr.order-total th,
table.woocommerce-checkout-review-order-table tr.order-total td {
  font-size: 1.15rem; /* Slightly reduced from before */
  font-weight: 700;
  color: #1e293b; /* A solid, trustworthy dark slate */
  padding-top: 20px; 
}

table.woocommerce-checkout-review-order-table tr.order-total td strong {
  color: inherit; /* Inherits the dark slate color */
}

/* 6. Style the Payment Box */
#payment.woocommerce-checkout-payment {
    background: var(--base-2); /* Uses your GP light gray base */
    border-radius: 8px;
    padding: 0px;
    margin-top: 50px;
}
#payment ul.payment_methods {
    border-bottom: none;
    padding: 0 0 15px 0;
}
#payment div.payment_box {
    background-color: #ffffff;
    border: 1px solid #eeeeee;
    border-radius: 6px;
    box-shadow: none;
}

/* Base style for all payment method labels (Unchecked) */
#payment .payment_methods > .wc_payment_method > label {
  padding: 16px 20px!important;
  background-color: #ffffff!important; /* Clean white background */
  border: 1px solid #e2e8f0; /* Very subtle light gray border */
  border-radius: 8px; /* Matches the rounded corners of your checkout button */
  display: block;
  cursor: pointer;
  color: #4a5568; /* Soft dark gray, much easier to read than black */
  transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
  margin-bottom: 8px; /* Breathing room between options */
}

/* Hover effect to make it feel interactive */
#payment .payment_methods > .wc_payment_method > label:hover {
  border-color: #cbd5e1; /* Border gets slightly darker on hover */
  background-color: #f8fafc;
}

/* The Checked/Active State */
#payment .payment_methods li.wc_payment_method > input[type="radio"]:first-child:checked + label {
  font-weight: 700;
  color: #1e293b; /* Darker text for the selected option */
  background-color: #f6fcf7; /* A very faint tint of your green color */
  border: 2px solid #4CAF50; /* Strong green border to show it's selected */
  padding: 15px 19px; /* Reduced by 1px to compensate for the thicker 2px border, preventing the layout from jumping */
}


/* The Icon Color */
#payment .payment_methods li.wc_payment_method > input[type="radio"]:first-child:checked + label::before {
  content: "\e03c";
  color: #4CAF50; /* Changes the icon from harsh black to your trust-building green */
}

/* Font for payment methods + terms */
#payment .payment_methods > .wc_payment_method > label,
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
    font-family: "Montserrat", sans-serif !important;
}

.woocommerce-checkout .input-checkbox {
	width: 0.9rem;
    height: 0.9rem;	
}

/* Hide Apple Pay button when not used */
.woocommerce-checkout .wc-stripe-applepay-button {
    min-height: 0 !important;
    margin-bottom: 0 !important;
}

/* Microcopy text "Accès immédiat dès validation du paiement" */
.checkout-microcopy {
    display: block;
    width: 100%;
    clear: both;
    position: relative;
    z-index: 10;
    text-align: center;
    font-size: 0.85rem;
    color: #64748b; 
    margin-top: 20px; /* Increased slightly to give PayPal/GPay buttons room to breathe */
    padding-bottom: 10px;
    font-family: "Montserrat", sans-serif !important;
    font-weight: 500;
}

/* 7. The "Commander" (Pay) Button */
#payment #place_order {
    width: 100%;
    padding: 18px;
    font-size: 1.3rem!important;
    font-weight: 700;
    border-radius: 8px;
    margin-top: 15px;
	font-family: "Montserrat", sans-serif!important;
    background-color: #4CAF50; /* Standard Woo Green, or change to your brand color */
    color: white;
    transition: all 0.3s ease;
}

#payment #place_order:hover {
    background-color: #388E3C;
    transform: translateY(-2px);
}

/* Hide PayPal "What is this" link and logo image */
#payment .payment_method_paypal img,
#payment .payment_method_paypal a.about_paypal {
    display: none !important;
}

/* Remove the Google Pay and PayPal empty form */
div.payment_box.payment_method_stripe_payment_request.wc-stripe-no-methods, div.payment_box.payment_method_ppcp {
	display: none!important;
}

/* 5. Clean up the Order Review Table */
@media (min-width: 769px) {
    .woocommerce table.shop_table .product-name {
        display: flex;
    }
    .woocommerce table.shop_table .product-item-thumbnail {
        padding-right: 1.5em;
    }
    .woocommerce table.shop_table .product-name a, .woocommerce table.shop_table .product-name .product-quantity {
        align-content: center;
        margin-right: 5px;
    }
}

/* Mobile Adjustments */
@media (max-width: 768px) {
    form.woocommerce-checkout {
        padding: 0px!important;
        box-shadow: none; /* Let it sit flat on mobile */
        border: none!important;
    }
}

/*** THANK YOU PAGE - WOOCOMMERCE ***/
/* Custom Thank You Page Styling */
.custom-thankyou-welcome {
    text-align: center;
    padding: 40px 15px;
    font-family: "Montserrat", sans-serif !important;
}

.custom-thankyou-welcome h1 {
    color: #4CAF50;
    font-weight: 700;
    font-size: 2rem;
    margin-bottom: 20px;
    line-height: 1.3;
}

.custom-thankyou-welcome .welcome-subtitle {
    font-size: 1.1rem;
    color: #4a5568;
    margin-bottom: 35px;
    line-height: 1.6;
}

.custom-thankyou-welcome .welcome-next-steps {
    background-color: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    padding: 30px;
    max-width: 600px;
    margin: 0 auto 35px;
    text-align: left;
}

.custom-thankyou-welcome .welcome-next-steps h3 {
    font-size: 1.2rem;
    color: #1e293b;
    margin-top: 0;
    margin-bottom: 15px;
    font-weight: 700;
}

.custom-thankyou-welcome .welcome-next-steps ul {
    color: #4a5568;
    line-height: 1.6;
    padding-left: 20px;
    margin-bottom: 0;
}

.custom-thankyou-welcome .welcome-btn {
    display: inline-block!important;
    background-color: #4CAF50!important;
    color: white!important;
    padding: 18px 36px!important;
    border-radius: 8px!important;
    font-weight: 700!important;
    font-size: 1.2rem!important;
    text-decoration: none!important;
    transition: all 0.3s ease;
}

.custom-thankyou-welcome .welcome-btn:hover {
    background-color: #43A047!important;
    color: white;
}

.custom-thankyou-welcome .welcome-fallback {
    margin-top: 25px;
    font-size: 0.9rem;
    color: #64748b;
}

.custom-thankyou-welcome .welcome-fallback a {
    color: #4CAF50;
    text-decoration: underline;
}

/* Style spécifique pour le bouton de relance sur la page d'échec/annulation */
.woocommerce-thankyou-order-failed-actions .button.pay {
    background-color: #388E3C !important; /* Vert rassurant et engageant */
    color: #ffffff !important;
    font-weight: bold;
    font-size: 16px;
    padding: 14px 28px;
    border-radius: 5px; /* Adoucit les angles, plus humain que le carré strict */
    text-decoration: none;
    display: inline-block;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* Lèger effet de profondeur 3D */
    transition: all 0.3s ease;
}

/* Effet au survol de la souris */
.woocommerce-thankyou-order-failed-actions .button.pay:hover {
    background-color: #2e7d32 !important; /* Vert légèrement plus foncé */
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    transform: translateY(1px); /* Donne l'impression d'enfoncer le bouton */
}

.woocommerce-notice.woocommerce-notice--error.woocommerce-thankyou-order-failed-actions {
    display: flex;
    justify-content: center;
}

@media (min-width: 769px) {
	.woocommerce-order-received .woocommerce table.shop_table .product-name .product-quantity { 
		margin-left: 5px; 
	}
}
