/*
Theme Name:   GeneratePress Child
Theme URI:    https://generatepress.com
Description:  GeneratePress Child Theme
Author:       Valesca Haddadi
Author URI:   https://ultrasapien.me
Template:     generatepress
Version:      1.0.0
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Tags:         light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready
Text Domain:  generatepress_child
*/

/* Add Your Custom CSS Below This Line */
/* === Consolidated CSS from Landingpage.html === */
/* === @font-face Declarations === */
/* --- Ensure these paths and filenames match your files in assets/fonts/ --- */

/* === @font-face Declarations === */
@font-face {
    font-family: 'Montserrat';
    src: url('assets/fonts/montserrat-regular.woff2') format('woff2'),
         url('assets/fonts/montserrat-regular.woff') format('woff');
    font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Montserrat';
    src: url('assets/fonts/montserrat-light.woff2') format('woff2'),
         url('assets/fonts/montserrat-light.woff') format('woff');
    font-weight: 300; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Raleway';
    src: url('assets/fonts/raleway-regular.woff2') format('woff2'),
         url('assets/fonts/raleway-regular.woff') format('woff');
    font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Raleway';
    src: url('assets/fonts/raleway-light.woff2') format('woff2'),
         url('assets/fonts/raleway-light.woff') format('woff');
    font-weight: 300; font-style: normal; font-display: swap;
}
@font-face {
    font-family: 'Raleway';
    src: url('assets/fonts/raleway-medium.woff2') format('woff2'),
         url('assets/fonts/raleway-medium.woff') format('woff');
    font-weight: 500; font-style: normal; font-display: swap;
}

/* === Global Font Application & CSS Reset === */
html {
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    /* overflow-x: hidden; /* Let's try without this first, fix the cause */
}

*,
*::before,
*::after {
    box-sizing: inherit;
    margin: 0;
    padding: 0;
}

body {
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    line-height: 1.6;
    background: #000; /* Base background */
    color: #fff;
    width: 100%; /* Ensure body attempts to use full viewport width */
    min-width: 100%;
    overflow-x: hidden; /* Apply here if still needed after fixing width issues */
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Raleway', sans-serif;
    font-weight: 300;
    line-height: 1.2;
    color: #fff;
}

/* Ensure main content area on front page is truly full width */
/* This targets the <main class="site-main front-page-main"> tag */
body.home > .site-main.front-page-main, /* Highly specific for GP */
body.home .front-page-main, /* Alternative high specificity */
.front-page-main { /* General fallback for your class */
    max-width: none;
    width: 100%;
    min-width: 100%;
    padding-left: 0;
    padding-right: 0;
    margin-left: 0;
    margin-right: 0;
    float: none; /* Just in case */
}

/* Common styling for your direct section children of .front-page-main */
/* This ensures the SECTION elements themselves are full-width for their backgrounds */
.front-page-main > .consultationshero-container,
.front-page-main > .welcome-section,
.front-page-main > .modalities-section,
.front-page-main > .mastery-section,
.front-page-main > .faq-section,
.front-page-main > .evolution-section,
.front-page-main > .supportform-section {
    width: 100%;
    min-width: 100%;
    padding-left: 0;  /* Section backgrounds go edge to edge */
    padding-right: 0; /* Section backgrounds go edge to edge */
    float: none;      /* Just in case */
    clear: both;      /* Just in case */
    /* Vertical padding will be applied to the section or an inner wrapper */
}


/* === Consolidated CSS from Landingpage.html === */

/* Hero Section (First Container) */
.consultationshero-container {
    position: relative;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    background: #000; /* Will be full-width */
}
.consultationshero { /* Content wrapper within hero */
    position: relative; z-index: 1; color: white;
    max-width: 1400px; margin: 0 auto; padding: 20px;
}
/* ... rest of hero styles as previously provided ... */
.animation-consultations-container { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; z-index: 0;}
.consultationshero-container::before, .consultationshero-container::after { content: ''; position: absolute; width: 350px; height: 300px; filter: blur(150px); z-index: 0; top: 2%;}
.consultationshero-container::before { background: #b8860b; left: -5%; opacity: 0.3;}
.consultationshero-container::after { background: #3a126f; right: -5%; opacity: 0.9;}
.consultationshero-container svg { width: 50%; max-width: 550px; height: auto; opacity: 0.6;}
.consultationshero h2 { font-size: 2.5rem; margin-bottom: 1rem; letter-spacing: 0.1em;}
.consultationshero p { font-size: 1.2rem; opacity: 0.8; letter-spacing: 0.05em; line-height: 2rem; color:white!important;}
.consultationshero-container circle { fill: none; stroke: rgba(255, 120, 50, 0.5); stroke-width: 0.7;}
.glow-consultations { stroke: rgba(255, 180, 100, 0.9); stroke-width: 1; filter: drop-shadow(0 0 10px rgba(255, 180, 100, 1)); animation: energyFlowConsultations 6s infinite ease-in-out alternate;}
@keyframes energyFlowConsultations { 0% { stroke-opacity: 0.2; } 30% { stroke-opacity: 0.8; } 60% { stroke-opacity: 0.4; } 100% { stroke-opacity: 0.2; }}
@media (max-width: 768px) { .consultationshero h2 { font-size: 2rem; } .consultationshero p { font-size: 1rem; } .consultationshero-container svg { max-width: 500px; } .consultationshero-container::before, .consultationshero-container::after { width: 200px; height: 150px; filter: blur(100px); } .consultationshero-container::before { left: -10%; } .consultationshero-container::after { right: -10%; }}
@media (max-width: 480px) { .consultationshero h2 { margin-top: 60px; font-size: 1.5rem; line-height: 40px; } .consultationshero p { font-size: 0.9rem; } .consultationshero-container svg { max-width: 550px; } .consultationshero-container::before, .consultationshero-container::after { width: 150px; height: 110px; filter: blur(70px); }}


/* Welcome Section (Second Container) */
.welcome-section {
   background: #000; /* Full-width background */
   min-height: 100vh; /* Or use padding */
   padding-top: 4rem;    /* Vertical padding on the section */
   padding-bottom: 4rem;
}
.welcome-section-content-wrapper { /* Inner wrapper for content */
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
    max-width: 1400px; /* Adjust as needed */
    margin: 0 auto; /* Center the wrapper */
    padding: 0 8rem; /* Horizontal padding FOR THE CONTENT, adjust from original 4rem 8rem */
}
/* ... rest of welcome styles as before, targeting elements within the wrapper ... */
.welcome-content { max-width: 700px; }
.welcome-title { font-size: 2.5rem; line-height: 1.1; margin-bottom: 2rem; letter-spacing: 0.05em; }
.welcome-text { color: rgba(255, 255, 255, 0.8); font-size: 1.2rem; line-height: 1.8; text-align: justify; max-width: 90%; }
.image-container { position: relative; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; }
.profile-image { width: 70%; max-width: 600px; height: auto; border-radius: 8px; object-fit: cover; }
@media (max-width: 1280px) { .welcome-section-content-wrapper { padding: 0 4rem; gap: 2rem; } .welcome-title { font-size: 3rem; } .welcome-text { font-size: 1rem; } }
@media (max-width: 1024px) { .welcome-section-content-wrapper { grid-template-columns: 1fr; padding: 0 2rem; text-align: center; } .welcome-content { margin: 0 auto; } .welcome-text { margin: 0 auto; } .profile-image { max-width: 500px; } }
@media (max-width: 768px) { .welcome-section { padding-top: 2rem; padding-bottom: 2rem; } .welcome-section-content-wrapper { padding: 0 1.5rem; } .welcome-title { font-size: 1.5rem; line-height: 40px; } .welcome-text { font-size: 0.9rem; } .profile-image { max-width: 100%; } }


/* Modalities Section (Third Container) */
.modalities-section {
    background: #101010; /* Full-width background */
    padding-top: 4rem;     /* Vertical padding on section */
    padding-bottom: 4rem;
    text-align: center;
    position: relative;
    overflow: hidden; /* For ::before */
}

.modalities-section::before {
    content: ''; position: absolute; width: 250px; height: 200px;
    filter: blur(130px); z-index: 0; top: 2%;
    background: #b8860b; left: -5%; opacity: 0.3;
}

.modalities-title, .modalities-grid {
    position: relative; z-index: 1;
}

.modalities-title {
    font-size: 3.5rem; letter-spacing: 0.1em; margin-bottom: 4rem;
}

.modalities-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* CHANGED to 3 columns for desktop */
    gap: 2rem;
    max-width: 1250px; /* ADJUSTED max-width for 3 cards, play with this value */
    margin: 0 auto;
    padding: 0 2rem; /* Horizontal padding for grid content */
}

.modality-card {
    background: rgba(20, 20, 20, 0.95); padding: 1.5rem; border-radius: 8px;
    display: flex; flex-direction: column; justify-content: space-between;
    min-height: 450px; /* Or adjust if 3 cards allow for different height dynamics */
}

/* ... (rest of .card-title, .card-subtitle, etc. styles remain the same) ... */
.card-title { letter-spacing: 0.1em; font-size: 1.5rem; font-weight: 500; line-height: 32px; margin-bottom: 1rem;}
.card-subtitle { color: rgba(255,255,255,0.8); font-size: 1rem; margin-bottom: 2rem;}
.features-list { list-style: none; padding: 0; margin: 0 0 2rem; margin-top: 60px; text-align: left;}
.features-list li { font-size: 0.9rem; margin-bottom: 0.75rem; padding-left: 1rem; position: relative; line-height: 1.4;}
.features-list li:before { content: "•"; position: absolute; left: 0;}
.price { font-size: 1.5rem; margin-bottom: 2.5rem;}
.book-button { background: #3a126f; color: white; padding: 0.75rem 1.5rem; border-radius: 9999px; text-decoration: none; font-size: 1rem; transition: background-color 0.3s; border: none; cursor: pointer; width: 70%;} /* Consider changing width to auto or max-width */
.book-button:hover { background-color: #4c1e8a;}
.apply-link { color: #CFB53B; text-decoration: none; font-size: 0.9rem; line-height: 32px;}
.apply-link:hover { text-decoration: underline;}


@media (max-width: 1200px) { /* Breakpoint for tablet */
    .modalities-grid {
        /* Option A: Drop to 2 columns */
        grid-template-columns: repeat(2, 1fr);
        max-width: 800px; /* Max width for 2 cards */
        /* Option B: Or let it try to fit 3 if using auto-fit, then drop to 2 */
        /* If you used repeat(auto-fit, minmax(280px, 1fr)) above,
           you might only adjust max-width here or remove the grid-template-columns override */
    }
}

@media (max-width: 992px) { /* Optional: A new breakpoint if needed for 3 cards stacking earlier */
    .modalities-grid {
        /* If you want 3 cards to stack to 1 earlier, or go 2 then 1. */
        /* Example: Still 2 columns, or could be 1fr here if cards are wide */
         grid-template-columns: repeat(2, 1fr); /* Or 1fr if they should stack sooner */
         max-width: 700px; /* Adjust for 2 columns */
    }
}


@media (max-width: 768px) { /* Breakpoint for mobile */
    .modalities-section {
        padding-top: 2rem; padding-bottom: 2rem;
    }
    .modalities-title {
        font-size: 2rem; margin-bottom: 2rem;
    }
    .modalities-grid {
        grid-template-columns: 1fr; /* Stack to 1 column */
        gap: 1.5rem;
        padding: 0 1rem;
        max-width: 500px; /* Max width for a single card stack */
    }
    .modality-card {
        min-height: auto; padding: 1.5rem;
    }
    .card-title { font-size: 1.3rem; }
    .card-subtitle { font-size: 1rem; }
    .features-list li { font-size: 0.9rem; }
    .price{ font-size: 1.3rem; }
}


/* Mastery Section (Fourth Container) */
.mastery-section {
    min-height: 120vh;
    display: grid; /* Grid for its direct column children */
    grid-template-columns: 30% 40% 30%;
    position: relative;
    overflow: hidden; /* For negative margins of title or ::before/::after */
    /* No padding here; padding is on the columns */
}
.mastery-section > .title-column { padding-left: 8rem; display: flex; flex-direction: column; }
.mastery-section > .areas-list { padding-right: 8%; align-self: center; }
/* ... rest of mastery styles as before ... */
.mastery-section-title { font-size: 3.5rem; letter-spacing: 0.1em; margin-bottom: 1rem; margin-top: 3rem; margin-right: -200px; line-height: 90px;}
.mastery-section-description { font-size: 1rem; opacity: 0.8; letter-spacing: 0.05em; line-height: 2rem; color:white!important; max-width: 80%; margin-top: 270px;}
.image-column { position: relative; height: 120vh; display: flex; align-items: end; justify-content: center;}
.statue-image { width: 90%; height: 100%; object-fit: contain;}
.areas-list { list-style: none; padding: 0; }
.areas-list li { font-size: 1.1rem; letter-spacing: 0.05em; padding-left: 1.5rem; position: relative; line-height: 4rem;}
.areas-list li::before { content: '•'; position: absolute; left: 0; color: #3a126f; font-size: 1.25rem;}
@media (max-width: 1440px) { .mastery-section-title { font-size: 3rem; margin-right: -100px; line-height: 70px; } .mastery-section-description { margin-top: 200px; } .areas-list li { font-size: 1rem; line-height: 3rem; } }
@media (max-width: 1024px) { .mastery-section { grid-template-columns: 1fr; padding: 2rem; min-height: auto; display: flex; flex-direction: column; } .mastery-section > .title-column { padding-left: 0; text-align: center; } .mastery-section-title { margin-right: 0; line-height: 1.3; font-size: 2.8rem; margin-top: 1rem; } .mastery-section-description { margin: 2rem auto; max-width: 600px; text-align: center; } .image-column { order: 3; height: auto; margin-top: 2rem; } .statue-image { max-width: 300px; height: auto; margin: 0 auto; } .mastery-section > .areas-list { padding-right: 0; order: 2; margin: 2rem auto; max-width: 600px; } .areas-list li { line-height: 2.5rem; text-align: left; } }
@media (max-width: 768px) { .mastery-section { padding: 1rem; } .mastery-section-title { font-size: 2.5rem; line-height: 1.3; letter-spacing: 0.05em; margin-bottom: 0.5rem; } .mastery-section-description { font-size: 0.9rem; margin: 1rem auto; } .statue-image { max-width: 250px; } .areas-list li { font-size: 0.9rem; line-height: 2rem; letter-spacing: 0.03em; padding-left: 1rem; } }
@media (max-width: 480px) { .mastery-section-title { font-size: 2rem; line-height: 1.3; } .statue-image { max-width: 200px; } .areas-list li { line-height: 1.8rem; } }


/* FAQ Section (Fifth Container) */
.faq-section {
   background: #000; /* Full-width background */
   padding-top: 4rem;
   padding-bottom: 4rem;
}
.faq-section-content-wrapper { /* Inner wrapper for content */
   max-width: 1200px;
   margin: 0 auto;
   padding: 0 2rem; /* Horizontal padding for the content */
}
/* ... rest of FAQ styles as before ... */
.faq-title { font-size: 2.5rem; margin-bottom: 3rem;}
.faq-container { display: flex; flex-direction: column; gap: 1rem;}
.faq-item { border-bottom: 1px solid rgba(255,255,255,0.1);}
.faq-question { width: 100%; display: flex; justify-content: space-between; align-items: center; padding: 0.6rem 0; background: none; border: none; color: white; text-align: left; cursor: pointer; font-size: 1rem; transition: color 0.3s ease;}
.faq-question:hover { color: #CFB53B;}
.faq-icon { width: 24px; height: 24px; position: relative; transform: rotate(0deg); transition: transform 0.3s ease; flex-shrink: 0;}
.faq-icon::before, .faq-icon::after { content: ''; position: absolute; background: #CFB53B; transition: transform 0.3s ease;}
.faq-icon::before { width: 2px; height: 100%; left: 50%; transform: translateX(-50%);}
.faq-icon::after { width: 100%; height: 2px; top: 50%; transform: translateY(-50%);}
.faq-item[data-open="true"] .faq-icon::before { transform: translateX(-50%) rotate(90deg);}
.faq-answer { max-height: 0; overflow: hidden; padding: 0 2rem 0 0; opacity: 0; transition: max-height 0.3s ease-out, opacity 0.3s ease-out, padding-bottom 0.3s ease-out;}
.faq-answer p { line-height: 1.6; margin-bottom: 1rem; font-size: 0.9rem; text-align: justify; padding-top: 0.5rem;}
.faq-answer p:last-child { margin-bottom: 0;}
.faq-item[data-open="true"] .faq-answer { max-height: 500px; padding-bottom: 1.5rem; opacity: 1;}
.faq-item[data-open="true"] .faq-question { color: #CFB53B;}
@media (max-width: 768px) { .faq-section { padding-top: 2rem; padding-bottom: 2rem; } .faq-section-content-wrapper { padding: 0 1rem; } .faq-title { font-size: 2rem; margin-bottom: 2rem; } .faq-question { font-size: 1rem; padding: 1rem 0; }}


/* Evolution Section (Sixth Container) */
.evolution-section {
   text-align: center;
   min-height: 100vh;
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   padding-top: 4rem; /* Vertical padding on section */
   padding-bottom: 4rem;
}
/* .evolution-title and .booking-container already handle their own max-width and centering */
/* ... rest of evolution styles as before ... */
.evolution-title { font-size: 3.5rem; margin-bottom: 2rem; letter-spacing: 0.05em; line-height: 1.2; max-width: 1200px; margin-left: auto; margin-right: auto; padding: 0 1rem;}
.booking-container { width: 100%; max-width: 1200px; margin: 0 auto; border-radius: 8px; overflow: hidden; position: relative;}
.embedded-booking { width: 100%; min-height: 768px; border: none;}
.form-button { display: inline-block; background: #3a126f; color: white; padding: 1rem 3rem; border-radius: 9999px; font-size: 1.125rem; text-decoration: none; margin-top: 2rem; transition: background-color 0.3s;}
.form-button:hover { background: #4a1b8f;}
@media (max-width: 1024px) { .evolution-title { font-size: 3rem; }}
@media (max-width: 768px) { .evolution-section { padding-top: 2rem; padding-bottom: 2rem; min-height: auto; } .evolution-title { font-size: 2.5rem; } .embedded-booking { min-height: 600px; }}
@media (max-width: 480px) { .evolution-title { font-size: 2rem; } .form-button { padding: 0.875rem 2rem; font-size: 1rem; width: 90%; max-width: 300px; }}


/* Support Form Section (Seventh Container) */
.supportform-section {
  background: #101010; /* Full-width background */
  text-align: center;
  padding: 4rem 1rem; /* This section already has its own padding for content */
}
/* .supportform-description has max-width and margin: auto for centering */
/* ... rest of support form styles as before ... */
.supportform-title { font-size: 2.5rem; letter-spacing: 0.1em; margin-bottom: 2rem;}
.supportform-description { max-width: 800px; margin: 0 auto 2rem; line-height: 1.6; font-size: 1.1rem; }
.supportform-button { background: #3a126f; color: #fff; border: none; padding: 0.75rem 3rem; border-radius: 25px; font-size: 1rem; cursor: pointer; transition: background-color 0.3s;}
.supportform-button:hover { background-color: #4a1b8f;}
.supportform-modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.9); z-index: 1000; overflow-y: auto;}
.supportform-modal-content { position: relative; background: #000; margin: 5vh auto; padding: 2rem; width: 90%; max-width: 800px; border-radius: 4px; border: 1px solid #333;}
.supportform-close { position: absolute; top: 1rem; right: 1.5rem; color: #B88846; font-size: 2.5rem; font-weight: bold; line-height: 1; cursor: pointer; padding: 0.25rem;}
.supportform-close:hover { color: #fff;}
.supportform-modal-title { color: #B88846; font-size: 2rem; margin-bottom: 0.5rem; text-align: center; letter-spacing: 0.1em;}
.supportform-modal-subtitle { color: #fff; margin-bottom: 2.5rem; text-align: center; font-size: 1.1rem;}
.supportform-row { display: flex; gap: 1.5rem; margin-bottom: 1.5rem;}
.supportform-row .supportform-input-group { flex: 1;}
.supportform-input-group { margin-bottom: 1.5rem; text-align: left;}
.supportform-input-group label { display: block; margin-bottom: 0.75rem; font-size: 0.95rem; color: #fff; line-height: 1.4;}
.supportform-subtext { color: #ccc; margin: -0.5rem 0 0.75rem; font-size: 0.9rem; line-height: 1.6;}
.supportform-input-group input[type="text"], .supportform-input-group input[type="email"], .supportform-input-group textarea { width: 100%; padding: 0.75rem; background: #111; border: 1px solid #333; border-radius: 4px; color: #fff; font-size: 1rem; outline: none; transition: border-color 0.3s ease; font-family: 'Montserrat', sans-serif;}
.supportform-input-group input[type="text"]:focus, .supportform-input-group input[type="email"]:focus, .supportform-input-group textarea:focus { border-color: #B88846;}
.supportform-input-group input[type="text"], .supportform-input-group input[type="email"] { height: 42px;}
.supportform-input-group textarea { min-height: 80px; resize: vertical; margin-top: 5px;}
.supportform-input-group input::placeholder { color: #777; opacity: 1;}
.supportform-submit { background: #3a126f; color: #fff; border: none; padding: 0.75rem 2.5rem; border-radius: 4px; font-size: 1.2rem; cursor: pointer; display: block; margin: 1.5rem auto 0; min-width: 200px; transition: background-color 0.3s ease; font-weight: 400;}
.supportform-submit:hover { background-color: #4a1b8f;}
@media (max-width: 768px) { .supportform-row { flex-direction: column; gap: 0; } .supportform-row .supportform-input-group { margin-bottom: 1.5rem; } .supportform-modal-content { padding: 2rem 1.5rem; margin: 2.5vh auto; } .supportform-modal-title { font-size: 1.8rem; } .supportform-title { font-size: 2.2rem; } .supportform-description { font-size: 1rem; }}
@media (max-width: 480px) { .supportform-modal-content { padding: 1.5rem 1rem; } .supportform-modal-subtitle{ line-height: 1.5; font-size: 1rem; } .supportform-submit { width: 100%; padding: 0.875rem 1.5rem; font-size: 1.1rem; } .supportform-description { font-size: 0.9rem; } .supportform-title{ font-size: 1.8rem; } .supportform-input-group label, .supportform-subtext { font-size: 0.9rem; }}


/* === Minimal Footer Styles === */
.site-footer-minimal {
    color: #777;
    padding: 1rem 1rem;
    text-align: center;
    font-size: 0.9rem;
    width: 100%;
    min-width: 100%;
}

.footer-content-minimal p {
    margin: 0;
    padding: 0;
}