/* =============================================================================
   sophe_container — frame_class CSS
   ============================================================================= */

@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@200;300;400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto+Condensed:wght@300;400;500;700&display=swap');

/* Font variables */
:root {
    --font-oswald: 'Oswald', sans-serif;
    --font-roboto: 'Roboto Condensed', sans-serif;
}

/* bouton autoscroll vert */
.scroll-top {
    --scrolltop-bg: #3ba49e;
}

.dropdown-menu {
    --bs-dropdown-bg: #5bc4be;
}
main#page-content {
    min-height: 500px;
}

.navbar {
    --bs-navbar-color: rgba(0, 0, 0, 1);
    --bs-navbar-hover-color: rgba(255, 255, 255, 1);
    --bs-navbar-disabled-color: rgba(255, 255, 255, 0.3);
}
/* espace entre les items de menu */
.navbar-mainnavigation {
    --mainnavigation-nav-spacing-x: 2.75em;
}
/* on centre le menu */
.container-mainnavigation {
    gap: 0 0rem;
    width: auto;
}

:root {
    --cookieconsent-bg: #3ba49e;
}

h1, .h1 { font-family: var(--font-roboto); font-weight:400; font-size:28px; }
h2, .h2 { font-family: var(--font-roboto); font-weight:400; font-size:24px; }
h3, .h3 { font-family: var(--font-roboto); font-weight:400; font-size:20px; }
h4, .h4 { font-family: var(--font-roboto); font-weight:400; font-size:18px; }
h5, .h5 { font-family: var(--font-roboto); font-weight:400; font-size:16px; }
h6, .h5 { font-family: var(--font-roboto); font-weight:400; font-size:14px; }


a {
    color: rgb(91 196 190);
    text-decoration: underline;
}

.card div.card-info-email a,  .card div.card-info-phone a{
    color: rgb(91 196 190);
}
div.card-body {
     font-family: var(--font-roboto); 
}


p {
    font-family: var(--font-roboto);
    font-weight:300;
    font-size:16px;  
}


/* section footer */
.footer-section-meta {
    background: #5BC4BE;
    --frame-color: #ffffff;
    --frame-background: #5BC4BE;
    --frame-link-color: #3D9BE9;
    --frame-link-hover-color: #ffffff;
}


/* Therapists card — horizontal layout: image left, body right */
.card {
    --bs-card-spacer-y: 1.2rem;
    --bs-card-spacer-x: 0.5rem;
}

.card-group-element-item .card {
    flex-direction: row;
}

.card-group-element-item .card-img-top {
    width: 50%;
    flex-shrink: 0;
    padding: 1rem;  
}

.card-group-element-item .card-img-top picture,
.card-group-element-item .card-img-top img {
    width: 100%;
    display: block;
}


/* arrondi des photos */
.card-group-element-item .card-img-top img {
    width: 100%;
    border-radius: 0.25rem;
    box-shadow: 0 2px 8px rgba(91, 196, 190, 0.6);  
}

.card-group-element-item .card-body {
    width: 50%;
}

.card-group-element-item .card {
    position: relative;
}

/* logo sociaux */
.card-group-element-item .card-footer {
    position: absolute;
    top: 90%;
    right: 2px;
    background: transparent;
    border: none;
    padding: 0.5rem;
}

/* liens sociaux violet rond */
.footer-sociallinks .sociallinks-item {
    width: auto;
    background-color: #550e9b;
    border-radius: 2rem; overflow: hidden;
}

.sociallinks-link-icon {
    font-size: 1.45rem;
    opacity: 1;
}

/* affichage pour smartphone */
@media (max-width: 900px) {
    .card-group-element-item .card {
        flex-direction: column;
    }

    .card-group-element-item .card-img-top,
    .card-group-element-item .card-body {
        width: 100%;
    }

}

/* position des titres dans les blocs d'accueil */
DIV#c113 .textpic-item.textpic-text, DIV#c114 .textpic-item.textpic-text, DIV#c115 .textpic-item.textpic-text {
    position: absolute;
    width: 97%;
    left: 6%;
    background-color: white;
    top: 81%;
    padding: 8px;
    height: 22%;
}

/* --- Backgrounds --- */
.frame-bg-light     { background-color: var(--bs-light); padding: 1.5rem; }
.frame-bg-white     { background-color: #fff; padding: 1.5rem; }
.frame-bg-primary   { background-color: var(--bs-primary); color: #fff; padding: 1.5rem; }
.frame-bg-secondary { background-color: var(--bs-secondary); color: #fff; padding: 1.5rem; }
.frame-bg-dark      { background-color: var(--bs-dark); color: #fff; padding: 1.5rem; }

/* --- Effects --- */
.frame-rounded { border-radius: .5rem; overflow: hidden; }
.frame-shadow  { box-shadow: 0 .5rem 1rem rgba(0,0,0,.15); }

/* --- Bordered --- */
.frame-bordered {
    border: 1px solid var(--bs-border-color);
    border-radius: .5rem;
    overflow: hidden;
    padding: 1.5rem;
    margin: 1rem;
}
.frame-bordered-primary {
    border: 2px solid var(--bs-primary);
    border-radius: .5rem;
    overflow: hidden;
    padding: 1.5rem;
    margin: 1rem;  
}
.frame-bordered-dark {
    border: 2px solid var(--bs-dark);
    border-radius: .5rem;
    overflow: hidden;
    padding: 1.5rem;
    margin: 1rem;  
}

/* --- Combinations --- */
.frame-bg-light-rounded          { background-color: var(--bs-light); padding: 1.5rem; margin: 1rem;border-radius: .5rem; overflow: hidden; }
.frame-bg-light-rounded-shadow   { background-color: var(--bs-light); padding: 1.5rem; margin: 1rem;border-radius: .5rem; overflow: hidden; box-shadow: 0 .5rem 1rem rgba(0,0,0,.15); }
.frame-bg-white-rounded          { background-color: #fff; padding: 1.5rem; margin: 1rem;border-radius: .5rem; overflow: hidden; }
.frame-bg-white-rounded-shadow   { background-color: #fff; padding: 1.5rem; margin: 1rem;border-radius: .5rem; overflow: hidden; box-shadow: 0 .5rem 1rem rgba(0,0,0,.15); }
.frame-bg-primary-rounded        { background-color: var(--bs-primary); color: #fff; padding: 1.5rem; margin: 1rem;border-radius: .5rem; overflow: hidden; }
.frame-bg-primary-rounded-shadow { background-color: var(--bs-primary); color: #fff; padding: 1.5rem; margin: 1rem;border-radius: .5rem; overflow: hidden; box-shadow: 0 .5rem 1rem rgba(0,0,0,.15); }
.frame-bg-secondary-rounded      { background-color: var(--bs-secondary); color: #fff; padding: 1.5rem; margin: 1rem;border-radius: .5rem; overflow: hidden; }
.frame-bg-dark-rounded           { background-color: var(--bs-dark); color: #fff; padding: 1.5rem; margin: 1rem;border-radius: .5rem; overflow: hidden; }
.frame-bg-dark-rounded-shadow    { background-color: var(--bs-dark); color: #fff; padding: 1.5rem; margin: 1rem;border-radius: .5rem; overflow: hidden; box-shadow: 0 .5rem 1rem rgba(0,0,0,.15); }

header#page-header {
    background-image: url('/fileadmin/Images/fond01_recraft.svg');
    background-repeat: no-repeat;
    background-size: cover;
    background-position: top center;
    align-items: flex-start;
    padding-top: 0 !important;
    padding-bottom: 0 !important; 
    min-height: var(--mainnavigation-nav-height) !important;  
}

/* CONTEXTE MENU LOGO PRINCIPAL */
header#page-header {
    position: sticky; /* contexte de positionnement */
}


header#page-header .header-logo-centered {
    position: absolute;
    top: 55%;          /* ajuste selon ta préférence */
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;        /* au-dessus du background, sous la navbar */
    pointer-events: none; /* ne bloque pas les clics sur la navbar */
    width: 80%;      /* ajuste selon ta taille 536 px*/
}



header#page-header.navbar-transition .header-logo-centered {
    position: absolute;
    top: 62%;          /* ajuste selon ta préférence */
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;        /* au-dessus du background, sous la navbar */
    pointer-events: none; /* ne bloque pas les clics sur la navbar */
    width: 54%;      /* ajuste selon ta taille  280px*/
}

header#page-header .header-logo-centered img {
    width: 100%;
    height: auto;
    display: block;
}

header#page-header .header-logo-centered2 {
    position: absolute;
    top: 26%;          /* ajuste selon ta préférence */
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;        /* au-dessus du background, sous la navbar */
    pointer-events: none; /* ne bloque pas les clics sur la navbar */
    width: 460px;      /* ajuste selon ta taille */
}

header#page-header.navbar-transition .header-logo-centered2 {
    position: absolute;
    top: 34%;          /* ajuste selon ta préférence */
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;        /* au-dessus du background, sous la navbar */
    pointer-events: none; /* ne bloque pas les clics sur la navbar */
    width: 300px;      /* ajuste selon ta taille */
}

header#page-header .header-logo-centered2 img {
    width: 100%;
    height: auto;
    display: block;
}

header#page-header .header-logo-centered3 {
    position: absolute;
    top: 87%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    pointer-events: none;
    width: auto;
    text-align:center;
}
header#page-header.navbar-transition .header-logo-centered3 {
    position: absolute;
    top: 90%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    pointer-events: none;
    width: auto;
    text-align:center;
}

header#page-header .header-logo-centered3 span{
    font-family: var(--font-roboto);
    font-weight: 400;
    font-size: 27px;
    color: white;
} 

/* -------------------------------------------------------
   Therapist identity badge — fixed top-right
   Visible only when fe_user is logged in (rendered by COA_INT)
------------------------------------------------------- */
.therapist-badge {
    position: fixed;
    top: 87px;
    right: 16px;
    z-index: 1050;
    white-space: nowrap;
    width: max-content;
    overflow: hidden;
    text-overflow: ellipsis;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
    padding-left: 10px;
    padding-right: 10px;
}



/* apres 1200 */
@media (min-width: 1201px) {
    .navbar-mainnavigation {
        --mainnavigation-nav-height: 337px;
    }
    .navbar-mainnavigation>.container, .navbar-mainnavigation>.container-fluid, .navbar-mainnavigation>.container-sm, .navbar-mainnavigation>.container-md, .navbar-mainnavigation>.container-lg, .navbar-mainnavigation>.container-xl, .navbar-mainnavigation>.container-xxl {
        padding-top: .5rem;
    }
    .navbar-transition {
        --mainnavigation-nav-height: 200px;
    }  
    header#page-header .header-logo-centered3 span{
        font-family: var(--font-roboto);
        font-weight: 400;
        font-size: 27px;
        color: white;
    }
    header#page-header .header-logo-centered {
        width: 40%;      
    }
    header#page-header.navbar-transition .header-logo-centered {
        width: 23%;
    }  
}

/* jusque 1200px */
@media (max-width: 1200px) {
    .navbar-mainnavigation {
        --mainnavigation-nav-height: 337px;
    }
    .navbar-mainnavigation>.container, .navbar-mainnavigation>.container-fluid, .navbar-mainnavigation>.container-sm, .navbar-mainnavigation>.container-md, .navbar-mainnavigation>.container-lg, .navbar-mainnavigation>.container-xl, .navbar-mainnavigation>.container-xxl {
        padding-top: .5rem;
    } 
    .navbar-transition {
        --mainnavigation-nav-height: 200px;
    }  
    header#page-header .header-logo-centered3 span{
        font-family: var(--font-roboto);
        font-weight: 400;
        font-size: 24px;
        color: white;
    }
    header#page-header .header-logo-centered {
        width: 54%;      
    }
    header#page-header.navbar-transition .header-logo-centered {
        width: 37%;
    }
}
/* jusque 992px */
@media (max-width: 992px) {
    .therapist-badge {
        position: fixed;
        top: 87px;
        right: 16px;
        z-index: 1050;
        white-space: nowrap;
        max-width: calc(100vw - 32px);
        overflow: hidden;
        text-overflow: ellipsis;
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
        padding-left: 10px;
        padding-right: 10px;
        font-size:12px;
    }  
    .navbar-mainnavigation {
        --mainnavigation-nav-height: 337px;      
    }
    .navbar-mainnavigation>.container, .navbar-mainnavigation>.container-fluid, .navbar-mainnavigation>.container-sm, .navbar-mainnavigation>.container-md, .navbar-mainnavigation>.container-lg, .navbar-mainnavigation>.container-xl, .navbar-mainnavigation>.container-xxl {
        padding-top: .5rem;
    }
    .navbar-transition {
        --mainnavigation-nav-height: 200px;
    }  
    header#page-header .header-logo-centered3 span{
        font-family: var(--font-roboto);
        font-weight: 400;
        font-size: 22px;
        color: white;
    }   
    header#page-header .header-logo-centered {
        width: 80%;      
    }
    header#page-header.navbar-transition .header-logo-centered {
        width: 45%;
    } 
}
/* jusque 768px */
@media (max-width: 768px) {
    .therapist-badge {
        top: 0px;
        left: 0px;
        font-size:12px;
    }    

    .navbar-mainnavigation {
        --mainnavigation-nav-height: 337px;
    }
    .navbar-mainnavigation>.container, .navbar-mainnavigation>.container-fluid, .navbar-mainnavigation>.container-sm, .navbar-mainnavigation>.container-md, .navbar-mainnavigation>.container-lg, .navbar-mainnavigation>.container-xl, .navbar-mainnavigation>.container-xxl {
        padding-top: .5rem;
    } 
    .navbar-transition {
        --mainnavigation-nav-height: 200px;
    }  
    header#page-header .header-logo-centered3 span{
        font-family: var(--font-roboto);
        font-weight: 400;
        font-size: 18px;
        color: white;
    }  

  /* background du menu réduit */
  
  /* fixe le background du menu si collapsed */
  .container-mainnavigation:has(.collapsed) {
    background-color: #5bc4be;
    z-index: 2000;    
    box-shadow: 0 0 0 rgba(91, 196, 190, 0); 

  }
  /* background normal */
  .container-mainnavigation {
    background-color: #5bc4be;
    z-index: 2000;
    box-shadow: 0 2px 8px rgba(255, 255, 255, 0.8);
    margin-bottom:10px;    
  }
  header#page-header .header-logo-centered {
      width: 80%;      
  }
  header#page-header.navbar-transition .header-logo-centered {
      width: 54%;
  }
}

/* jusque 576px */
@media (max-width: 576px) {
    .therapist-badge {
        top: 0px;
        left: 0px;
    }  
    .navbar-mainnavigation {
        --mainnavigation-nav-height: 337px;
    }
    .navbar-mainnavigation>.container, .navbar-mainnavigation>.container-fluid, .navbar-mainnavigation>.container-sm, .navbar-mainnavigation>.container-md, .navbar-mainnavigation>.container-lg, .navbar-mainnavigation>.container-xl, .navbar-mainnavigation>.container-xxl {
        padding-top: .5rem;
    } 
    .navbar-transition {
        --mainnavigation-nav-height: 200px;
    }  
    header#page-header .header-logo-centered3 span{
        font-family: var(--font-roboto);
        font-weight: 400;
        font-size: 14px;
        color: white;
    }  
    header#page-header .header-logo-centered {
        width: 80%;      
    }
    header#page-header.navbar-transition .header-logo-centered {
        width: 54%;
    }  
}

/* jusque 440px*/
@media (max-width: 440px) {
    .therapist-badge {
        top: 0px;
        left: 0px;
    }  
    .navbar-mainnavigation {
        --mainnavigation-nav-height: 337px;
    }
    .navbar-mainnavigation>.container, .navbar-mainnavigation>.container-fluid, .navbar-mainnavigation>.container-sm, .navbar-mainnavigation>.container-md, .navbar-mainnavigation>.container-lg, .navbar-mainnavigation>.container-xl, .navbar-mainnavigation>.container-xxl {
        padding-top: .5rem;
    } 
    .navbar-transition {
        --mainnavigation-nav-height: 200px;
    }
    header#page-header .header-logo-centered3 span{
        font-family: var(--font-roboto);
        font-weight: 400;
        font-size: 15px;
        line-height: 1rem;
        color: white;
    }
    header#page-header .header-logo-centered {
        width: 80%;      
    }
    header#page-header.navbar-transition .header-logo-centered {
        width: 54%;
    } 
    header#page-header .header-logo-centered2 {
        width: 90%;
    }
    .frame-container-default {
        max-width: 540px;
    }  
}

/* jusque 360px */
@media (max-width: 360px) {
    .therapist-badge {
        top: 0px;
        right: 102px;
        font-size: 12px;
    }
    .navbar-mainnavigation {
        --mainnavigation-nav-height: 200px;
    }
    .navbar-mainnavigation>.container, .navbar-mainnavigation>.container-fluid, .navbar-mainnavigation>.container-sm, .navbar-mainnavigation>.container-md, .navbar-mainnavigation>.container-lg, .navbar-mainnavigation>.container-xl, .navbar-mainnavigation>.container-xxl {
        padding-top: .5rem;
    } 
    header#page-header .header-logo-centered3 span{
        font-family: var(--font-roboto);
        font-weight: 400;
        font-size: 14px;
        line-height: 1rem;
        color: white;
    }
    header#page-header .header-logo-centered {
        width: 80%; 
        line-height: 1rem;      
    }
    header#page-header.navbar-transition .header-logo-centered {
        top: 68%;
        width: 54%;
    }  
    header#page-header .header-logo-centered2 {
        width:55%;
    }  
    header#page-header.navbar-transition .header-logo-centered2 {
        visibility:hidden;
    }
    header#page-header.navbar-transition .header-logo-centered3 {
        visibility:hidden;
    }

    .navbar-transition {
        --mainnavigation-nav-height: 100px;
    }
}



/* Navigation menu */
span.nav-link-text {
    font-family: var(--font-oswald);
    font-weight: 400;
    font-size: 20px;
}

.textmedia-gallery .gallery-row .gallery-item:not(:first-child) {
    display: none;
}
/* etiquette du bouton */
.svgbtn__label {
    font-family: var(--font-roboto);
    font-weight: 300;
    color:white;
}

/* ============================================================
   Language switcher — fixed top right
   ============================================================ */

#sophe-lang-switcher {
    position: fixed;
    top: 50px;
    right: 16px;
    z-index: 9999;
}

.lang-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 0.55rem 1rem;
    background: rgba(111, 206, 210, 0.85);
    backdrop-filter: blur(4px);
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 6px;
    cursor: pointer;
    font-size: 12px;
    font-weight: 500;
    color: #333;
    line-height: 1;
    transition: background 0.15s, border-color 0.15s;
}

.lang-btn:hover,
#sophe-lang-switcher.is-open .lang-btn {
    background: rgba(255, 255, 255, 0.98);
    border-color: rgba(0, 0, 0, 0.3);
}

.lang-chevron {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-right: 1.5px solid #666;
    border-bottom: 1.5px solid #666;
    transform: rotate(45deg) translateY(-2px);
    transition: transform 0.2s;
}

#sophe-lang-switcher.is-open .lang-chevron {
    transform: rotate(-135deg) translateY(-2px);
}

.lang-dropdown {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    min-width: 100px;
    margin: 0;
    padding: 4px 0;
    list-style: none;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 8px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
    opacity: 0;
    transform: translateY(-6px) scale(0.97);
    transform-origin: top right;
    transition: opacity 0.15s ease, transform 0.15s ease;
    pointer-events: none;
    z-index: 10000;
}

#sophe-lang-switcher.is-open .lang-dropdown {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}

.lang-option {
    display: flex;
    align-items: center;
    padding: 7px 14px;
    font-size: 13px;
    color: #550e9b;
}

.lang-option + .lang-option {
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

.lang-option-link {
    display: flex;
    align-items: center;
    width: 100%;
    color: #333;
    text-decoration: none;
}

.lang-option:has(.lang-option-link):hover {
    background: #5bc4be;
}

.lang-option--active {
    font-weight: 500;
    color: #550e9b;
    background: #f0f5ff;
}

.lang-active-dot {
    margin-left: auto;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #550e9b;
    flex-shrink: 0;
}

.lang-option-label {
    letter-spacing: 0.05em;
    font-size: 12px;
    font-weight: 500;
}

.lang-code {
    letter-spacing: 0.05em;
    font-size: 12px;
    font-weight: 500;
    text-transform: uppercase;
}

/* Cart widget — fixed top right (mirrors lang-switcher at top left) */
.sss-cart-fixed {
    position: fixed;
    top: 12px;
    right: 16px;
    z-index: 9999;
}

.sss-cart-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 5px 10px;
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(4px);
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 6px;
    cursor: pointer;
    font-size: 14px;
    color: #333;
    line-height: 1;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s;
    position: relative;
}

.sss-cart-btn:hover {
    background: rgba(255, 255, 255, 0.98);
    border-color: rgba(0, 0, 0, 0.3);
    color: #0d6efd;
}

.sss-cart-btn--disabled {
    opacity: 0.6;
    cursor: default;
}

.sss-cart-badge {
    position: absolute;
    top: -6px;
    right: -6px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    background: #dc3545;
    color: #fff;
    border-radius: 8px;
    font-size: 10px;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
}

/* Stripe Elements container */
.sss-stripe-element {
    padding: 12px 16px;
    border: 1px solid #ced4da;
    border-radius: 6px;
    background: #fff;
    min-height: 46px;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.sss-stripe-element:focus-within {
    border-color: #86b7fe;
    box-shadow: 0 0 0 0.25rem rgba(13,110,253,.25);
}
.sss-stripe-element iframe {
    width: 100% !important;
    min-height: 24px !important;
}

/* style pour la ligne propriétaire de la carte des sessions */
.proprietaire p {    
  font-size: 1.4rem;
  font-weight: 600;
}
