/**
 * Global Growth Motion
 * Personnalisations du template Solvior.
 */

:root {
    --g2m-primary: #16824b;
    --g2m-secondary: #1669b2;
    --g2m-dark: #102235;
    --g2m-light: #f7f9fb;
}

html {
    scroll-behavior: smooth;
}

body {
    overflow-x: hidden;
}

img {
    max-width: 100%;
    height: auto;
}

/* L'accordéon occupe toute la largeur, quel que soit le nombre de valeurs. */
@media (min-width: 992px) {
    .g2m-why-choose .h7-testimonial-wrap {
        width: 100%;
    }

    .g2m-why-choose .h7-testimonial-single {
        flex: 1 1 0;
        width: auto;
        min-width: 72px;
    }

    .g2m-why-choose .h7-testimonial-single.active {
        flex: 0 0 min(50%, 660px);
        width: auto;
    }
}

/* =========================================================
   ACCUEIL — SECTION À PROPOS
========================================================= */

.g2m-home-about .about-wrapper-four {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(42px, 5vw, 78px);
    align-items: stretch;
}

.g2m-home-about .about-wrapper-four .about-images-group-three {
    width: 100%;
    max-width: none;
    min-height: 620px;
    overflow: hidden;
    border-radius: 2px;
}

.g2m-home-about .about-wrapper-four .about-images-group-three > img {
    width: 100%;
    height: 100%;
    min-height: 620px;
    object-fit: cover;
    object-position: center;
}

.g2m-home-about .about-content-five {
    position: relative;
    width: 100%;
    max-width: none;
    min-width: 0;
    padding: 4px 0;
}

.g2m-home-about .about-content-five .sec-heading {
    width: 100%;
    max-width: 760px;
}

.g2m-home-about .about-content-five .sec-heading .sec-title {
    max-width: 100%;
    font-size: clamp(40px, 3.3vw, 62px);
    line-height: 1.08;
    overflow-wrap: break-word;
}

.g2m-home-about .about-content-five .desc {
    max-width: 720px;
    margin: 22px 0 0;
    font-size: 17px;
    line-height: 1.75;
}

.g2m-home-about .about-float-area {
    position: static;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(190px, 0.72fr);
    gap: clamp(22px, 3vw, 42px);
    align-items: end;
    width: 100%;
    margin-top: 34px;
}

.g2m-home-about .about-float-area-left {
    min-width: 0;
    padding: 0;
    background: transparent;
}

.g2m-home-about .about-float-area-left .check-list-one {
    border-right: 0;
    border-left: 0;
}

.g2m-home-about .about-float-area-left .check-list-one ul {
    width: 100%;
    padding: 24px 0;
}

.g2m-home-about .about-float-area-left .check-list-one li {
    align-items: flex-start;
}

.g2m-home-about .about-statistics {
    width: 100%;
    min-width: 0;
    overflow: hidden;
}

.g2m-home-about .about-statistics > img {
    width: 100%;
    height: 280px;
    object-fit: cover;
    object-position: center;
}

@media (max-width: 1199px) {
    .g2m-home-about .about-wrapper-four {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .g2m-home-about .about-wrapper-four .about-images-group-three,
    .g2m-home-about .about-wrapper-four .about-images-group-three > img {
        min-height: 0;
        height: min(620px, 68vw);
    }

    .g2m-home-about .about-content-five .sec-heading,
    .g2m-home-about .about-content-five .desc {
        max-width: 850px;
    }
}

@media (max-width: 767px) {
    .g2m-home-about .about-wrapper-four {
        gap: 30px;
    }

    .g2m-home-about .about-wrapper-four .about-images-group-three,
    .g2m-home-about .about-wrapper-four .about-images-group-three > img {
        height: 390px;
    }

    .g2m-home-about .about-content-five .sec-heading .sec-title {
        font-size: clamp(34px, 10vw, 46px);
    }

    .g2m-home-about .about-content-five .desc {
        font-size: 16px;
    }

    .g2m-home-about .about-float-area {
        grid-template-columns: 1fr;
        gap: 28px;
        margin-top: 28px;
    }

    .g2m-home-about .about-statistics > img {
        height: 250px;
    }
}

@media (max-width: 480px) {
    .g2m-home-about .about-wrapper-four .about-images-group-three,
    .g2m-home-about .about-wrapper-four .about-images-group-three > img {
        height: 310px;
    }
}

.visually-hidden-focusable:focus {
    position: fixed;
    top: 1rem;
    left: 1rem;
    z-index: 10000;
    padding: 0.75rem 1rem;
    background: #ffffff;
    color: #000000;
}

/* ============================================
   PAGE HEADER - G2M
============================================ */

.tj-page-header{
    position: relative;
    min-height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;

    padding: 70px 0 40px;

    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}

/* assombrit légèrement le fond */
.tj-page-header::before{
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(8,15,39,.35);
}

.tj-page-header .container{
    position: relative;
    z-index: 2;
}

.tj-page-header-content{
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* ============================================
   TITRE
============================================ */

.tj-page-title{
    font-size: 60px;
    font-weight: 700;
    line-height: 1.1;
    margin-bottom: 18px;
}

/* ============================================
   FIL D'ARIANE
============================================ */

.tj-page-link{
    display: inline-flex;
    align-items: center;
    gap: 10px;

    padding: 10px 22px;

    border-radius: 50px;

    background: rgba(255,255,255,.08);

    backdrop-filter: blur(8px);

    -webkit-backdrop-filter: blur(8px);
}

.tj-page-link span{
    color: #fff;
    font-size: 15px;
}

.tj-page-link a{
    color: #fff;
}

.tj-page-link a:hover{
    color: var(--tj-color-theme-primary);
}

/* ============================================
   RESPONSIVE
============================================ */

@media (max-width:991px){

    .tj-page-header{
        min-height:180px;
        padding-top: 140px !important;

    }

    .tj-page-title{
        font-size:42px;
    }

}

@media (max-width:576px){

    .tj-page-header{
        min-height:150px;
        padding:45px 0 25px;
    }

    .tj-page-title{
        font-size:34px;
        margin-bottom:12px;
    }

    .tj-page-link{
        padding:8px 18px;
    }

}


/* =========================================================
   FOOTER G2M — BANDEAU SUPÉRIEUR
========================================================= */

.h7-footer-contact-banner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.85fr);
    gap: 60px;
    align-items: center;
    padding: 44px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.h7-footer-contact-intro,
.h7-footer-contact-details {
    min-width: 0;
}

.h7-footer-contact-subtitle {
    margin: 0 0 10px;
    color: rgba(255, 255, 255, 0.68);
    font-size: 18px;
    line-height: 1.5;
}

.h7-footer-contact-title {
    max-width: 850px;
    margin: 0;
    color: #ffffff;
    font-size: clamp(30px, 3vw, 48px);
    line-height: 1.12;
    letter-spacing: -0.03em;
    overflow-wrap: anywhere;
}

.h7-footer-contact-description {
    max-width: 760px;
    margin: 18px 0 0;
    color: rgba(255, 255, 255, 0.7);
    font-size: 16px;
    line-height: 1.7;
}

.h7-footer-contact-details {
    padding-left: 48px;
    border-left: 1px solid rgba(255, 255, 255, 0.12);
}

.h7-footer-contact-label {
    display: block;
    margin-bottom: 18px;
    color: rgba(255, 255, 255, 0.58);
    font-size: 15px;
    line-height: 1.4;
}

.h7-footer-contact-line {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 13px;
    color: rgba(255, 255, 255, 0.82);
    font-size: 16px;
    line-height: 1.55;
}

.h7-footer-contact-line i {
    flex: 0 0 auto;
    margin-top: 4px;
    color: var(--tj-color-theme-primary, #4f7cff);
    font-size: 17px;
}

.h7-footer-contact-line span,
.h7-footer-contact-line a {
    min-width: 0;
    color: inherit;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.h7-footer-contact-line a:hover {
    color: var(--tj-color-theme-primary, #4f7cff);
}

.h7-footer-contact-button {
    margin-top: 26px;
}

.h7-footer-contact-button .tj-primary-btn {
    width: auto;
}

/* Tablette */
@media (max-width: 1199px) {
    .h7-footer-contact-banner {
        grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr);
        gap: 40px;
    }

    .h7-footer-contact-details {
        padding-left: 36px;
    }
}

/* Mobile et petite tablette */
@media (max-width: 991px) {
    .h7-footer-contact-banner {
        grid-template-columns: 1fr;
        gap: 32px;
        padding: 38px 0;
    }

    .h7-footer-contact-details {
        padding-top: 30px;
        padding-left: 0;
        border-top: 1px solid rgba(255, 255, 255, 0.12);
        border-left: 0;
    }

    .h7-footer-contact-title {
        max-width: 100%;
    }
}

/* Petit mobile */
.g2m-chatbox-faq-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 12px 38px; }
.g2m-chatbox-faq-actions button { padding: 8px 12px; color: #17233a; background: #fff; border: 1px solid #d8dfeb; border-radius: 999px; font: inherit; font-size: 13px; cursor: pointer; }
.g2m-chatbox-faq-actions button:last-child { color: #fff; background: #4d78f6; border-color: #4d78f6; }
.g2m-chatbox-faq-actions button:hover { transform: translateY(-1px); }

@media (max-width: 575px) {
    .h7-footer-contact-banner {
        padding: 32px 0;
    }

    .h7-footer-contact-subtitle {
        font-size: 16px;
    }

    .h7-footer-contact-title {
        font-size: 30px;
    }

    .h7-footer-contact-description {
        font-size: 15px;
    }

    .h7-footer-contact-line {
        font-size: 15px;
    }

    .h7-footer-contact-button .tj-primary-btn {
        width: 100%;
    }
}




/* =========================================================
   HOME SERVICES — TITRES ET CONTENUS
========================================================= */

.h7-service-section .service-style-3 .service-title .title {
    max-width: 360px;
    font-size: clamp(26px, 2.2vw, 38px);
    line-height: 1.12;
    overflow-wrap: anywhere;
}

.h7-service-section .service-style-3 .service-right .desc {
    max-width: 560px;
}

.h7-service-section .service-style-3 .service-right .desc p {
    margin-bottom: 0;
    line-height: 1.65;
}

@media (max-width: 767px) {
    .h7-service-section .service-style-3 .service-title .title {
        max-width: 100%;
        font-size: 27px;
    }
}


/* =========================================================
   HOME PARTNERS
========================================================= */

.tj-brand .tj-brand-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 20px 34px;
}

.tj-brand .brand-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 95px;
}

.tj-brand .brand-logo a,
.tj-brand .brand-logo-static {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.tj-brand .brand-logo img {
    display: block;
    width: auto;
    max-width: 150px;
    max-height: 72px;
    object-fit: contain;
    transition:
        transform 0.3s ease,
        opacity 0.3s ease;
}

.tj-brand .brand-logo a:hover img {
    transform: translateY(-3px);
    opacity: 0.85;
}

.tj-brand .h7-section-heading .sub-title {
    display: block;
    line-height: 1.65;
}

@media (max-width: 991px) {
    .tj-brand .tj-brand-inner {
        justify-content: center;
        margin-top: 35px;
    }

    .tj-brand .h7-section-heading {
        text-align: center;
    }
}

@media (max-width: 575px) {
    .tj-brand .brand-logo {
        width: calc(50% - 12px);
    }

    .tj-brand .brand-logo img {
        max-width: 120px;
        max-height: 60px;
    }
}
/* =========================================================
   HOME — POURQUOI CHOISIR G2M
========================================================= */

.h7-testimonial .h7-testimonial-title .title {
    font-size: clamp(25px, 2.1vw, 36px);
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.h7-testimonial .testimonial-content-inner .desc {
    max-width: 760px;
}

.h7-testimonial .testimonial-content-inner .desc p {
    margin-bottom: 0;
    line-height: 1.7;
}

.h7-testimonial .testimonial-author .author-text .title {
    font-size: 20px;
    line-height: 1.3;
}

@media (max-width: 767px) {
    .h7-testimonial .h7-testimonial-title .title {
        font-size: 25px;
    }
}


/* =========================================================
   HOME — ACTUALITÉS RÉCENTES
========================================================= */

.h7-blog .blog-item .blog-title {
    font-size: clamp(25px, 2vw, 34px);
    line-height: 1.18;
    overflow-wrap: anywhere;
}

.h7-blog .blog-item .desc {
    line-height: 1.7;
}

.h7-blog .blog-item .blog-images img {
    width: 100%;
    height: 320px;
    object-fit: cover;
}

@media (max-width: 991px) {
    .h7-blog .blog-item .blog-images img {
        height: 280px;
    }
}

@media (max-width: 575px) {
    .h7-blog .blog-item .blog-title {
        font-size: 25px;
    }

    .h7-blog .blog-item .blog-images img {
        height: 230px;
    }
}

/* =========================================================
   HOME FAQ
========================================================= */

.h7-faq .accordion-button {
    font-size: clamp(19px, 1.6vw, 24px);
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.h7-faq .accordion-button > span {
    flex: 0 0 auto;
    margin-right: 12px;
}

.h7-faq .accordion-body {
    line-height: 1.75;
}

.h7-faq .accordion-body p:last-child {
    margin-bottom: 0;
}

.h7-faq .faq-banner img {
    width: 100%;
    height: auto;
    object-fit: cover;
}

@media (max-width: 991px) {
    .h7-faq .faq-banner {
        margin-bottom: 40px;
    }
}

@media (max-width: 575px) {
    .h7-faq .accordion-button {
        font-size: 18px;
    }
}


/* ==================================================
   Formulaire d'inscription aux formations
================================================== */

.training-registration-form-wrapper {
    padding: clamp(24px, 4vw, 48px);
    background-color: #ffffff;
    border: 1px solid #e3e8ee;
    border-radius: 20px;
    box-shadow: 0 18px 50px rgba(16, 34, 53, 0.08);
}

.training-registration-form-wrapper .sec-heading {
    margin-bottom: 32px !important;
}

.training-registration-form-wrapper .sec-title {
    margin-bottom: 14px;
    font-size: clamp(32px, 3vw, 48px);
    line-height: 1.15;
}

.training-registration-form-wrapper .desc p {
    margin-bottom: 0;
    color: #596675;
}

/* Espacement entre les champs */
.training-registration-form .row.g-4 {
    --bs-gutter-x: 24px;
    --bs-gutter-y: 24px;
}

/* Libellés */
.training-registration-form .form-label {
    display: block;
    margin-bottom: 9px;
    color: #102235;
    font-size: 16px;
    font-weight: 600;
}

/* Champs de saisie */
.training-registration-form input.form-control,
.training-registration-form select.form-select,
.training-registration-form textarea.form-control {
    display: block;
    width: 100%;
    color: #102235;
    background-color: #ffffff;
    border: 1px solid #cfd8e3;
    border-radius: 10px;
    outline: none;
    opacity: 1;
    visibility: visible;
    box-shadow: none;
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.training-registration-form input.form-control,
.training-registration-form select.form-select {
    min-height: 56px;
    padding: 13px 16px;
}

.training-registration-form textarea.form-control {
    min-height: 150px;
    padding: 15px 16px;
    resize: vertical;
}

/* État actif */
.training-registration-form input.form-control:focus,
.training-registration-form select.form-select:focus,
.training-registration-form textarea.form-control:focus {
    background-color: #ffffff;
    border-color: #16824b;
    box-shadow: 0 0 0 4px rgba(22, 130, 75, 0.12);
}

/* Champs invalides */
.training-registration-form .is-invalid {
    border-color: #dc3545 !important;
}

.training-registration-form .is-invalid:focus {
    box-shadow: 0 0 0 4px rgba(220, 53, 69, 0.12);
}

/* Correction si le template utilise Nice Select */
.training-registration-form .nice-select {
    float: none;
    width: 100%;
    min-height: 56px;
    padding: 0 46px 0 16px;
    color: #102235;
    background-color: #ffffff;
    border: 1px solid #cfd8e3;
    border-radius: 10px;
    line-height: 54px;
}

.training-registration-form .nice-select .list {
    width: 100%;
}

/* Consentement */
.training-registration-form .form-check {
    display: grid;
    grid-template-columns: 22px 1fr;
    gap: 12px;
    align-items: start;
    padding-left: 0;
}

.training-registration-form .form-check-input {
    position: static;
    float: none;
    width: 20px;
    height: 20px;
    margin: 4px 0 0;
    border: 1px solid #aeb9c5;
}

.training-registration-form .form-check-input:checked {
    background-color: #16824b;
    border-color: #16824b;
}

.training-registration-form .form-check-label {
    color: #3f4c5c;
    line-height: 1.6;
}

/* Version mobile */
@media (max-width: 767.98px) {
    .training-registration-form-wrapper {
        padding: 24px 18px;
        border-radius: 14px;
    }

    .training-registration-form-wrapper .sec-title {
        font-size: 32px;
    }

    .training-registration-form .row.g-4 {
        --bs-gutter-y: 20px;
    }
}

.g2m-partners-section {
    position: relative;
    overflow: hidden;
}

.g2m-partners-section .sec-heading {
    margin-bottom: 0;
}

.g2m-partners-section .sec-heading .sub-title {
    display: inline-block;
    margin-bottom: 12px;
}

.g2m-partners-section .sec-heading .desc {
    margin-top: 18px;
}

.g2m-partners-section .sec-heading .desc p {
    margin-bottom: 0;
}

.g2m-partners-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.g2m-partner-item {
    min-width: 0;
}

.g2m-partner-link {
    display: block;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.g2m-partner-logo {
    width: 100%;
    min-height: 125px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 22px;
    overflow: hidden;
    border: 1px solid rgba(16, 34, 53, 0.1);
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 8px 25px rgba(16, 34, 53, 0.04);
    transition:
        transform 0.25s ease,
        border-color 0.25s ease,
        box-shadow 0.25s ease;
}

.g2m-partner-logo:hover {
    transform: translateY(-4px);
    border-color: rgba(22, 130, 75, 0.3);
    box-shadow: 0 16px 35px rgba(16, 34, 53, 0.09);
}

.g2m-partner-logo img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 72px;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.75;
    transition:
        filter 0.25s ease,
        opacity 0.25s ease,
        transform 0.25s ease;
}

.g2m-partner-logo:hover img {
    filter: grayscale(0%);
    opacity: 1;
    transform: scale(1.04);
}

.g2m-partner-logo span {
    display: block;
    color: #102235;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    overflow-wrap: anywhere;
}

@media (max-width: 991px) {
    .g2m-partners-section .sec-heading {
        max-width: 700px;
        margin: 0 auto 35px;
        text-align: center;
    }

    .g2m-partners-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .g2m-partners-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }

    .g2m-partner-logo {
        min-height: 105px;
        padding: 18px;
    }

    .g2m-partner-logo img {
        max-height: 58px;
    }
}

@media (max-width: 420px) {
    .g2m-partners-grid {
        grid-template-columns: 1fr;
    }
}

/* Accessibilité clavier */
:where(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 3px solid #ffbf47 !important;
    outline-offset: 3px;
}

.skip-link,
.visually-hidden-focusable:focus {
    position: fixed !important;
    z-index: 100000;
    top: 12px;
    left: 12px;
    width: auto !important;
    height: auto !important;
    padding: 12px 18px !important;
    overflow: visible !important;
    clip: auto !important;
    white-space: normal !important;
    color: #102235;
    background: #ffffff;
    border-radius: 6px;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.25);
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto !important;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

.g2m-language-switcher {
    display: inline-flex;
    gap: 3px;
    align-items: center;
    padding: 4px;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 999px;
}

.g2m-language-switcher a {
    display: grid;
    min-width: 34px;
    height: 30px;
    padding: 0 8px;
    color: inherit;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    place-items: center;
    border-radius: 999px;
}

.g2m-language-switcher a:hover,
.g2m-language-switcher a.active {
    color: #fff;
    background: var(--tj-color-theme-primary, #1f7a5a);
}

.hamburger_wrapper .g2m-language-switcher {
    color: var(--tj-color-heading-primary, #122e27);
    background: #f4f7f6;
    border-color: rgba(24, 82, 68, 0.14);
}

/* Chatbox publique */
.g2m-chatbox {
    position: fixed !important;
    right: 24px;
    bottom: 24px;
    z-index: 99998;
    font-family: inherit;
}

.g2m-chatbox-toggle {
    display: flex;
    gap: 10px;
    align-items: center;
    padding: 14px 20px;
    color: #fff;
    background: var(--tj-color-theme-primary, #176b50);
    border: 0;
    border-radius: 999px;
    box-shadow: 0 12px 35px rgba(15, 45, 38, 0.28);
    font-weight: 700;
}

.g2m-chatbox-toggle i { font-size: 20px; }
.g2m-chatbox-panel {
    position: absolute;
    right: 0;
    bottom: 68px;
    width: min(390px, calc(100vw - 32px));
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(24, 82, 68, 0.14);
    border-radius: 20px;
    box-shadow: 0 22px 70px rgba(15, 45, 38, 0.25);
}
.g2m-chatbox-panel[hidden] { display: none !important; }
.g2m-chatbox-header { display: flex; align-items: flex-start; justify-content: space-between; padding: 20px; color: #fff; background: linear-gradient(135deg, var(--tj-color-theme-primary, #176b50), #102e27); }
.g2m-chatbox-header h2 { margin: 5px 0 0; color: #fff; font-size: 18px; }
.g2m-chatbox-header button { color: #fff; background: transparent; border: 0; font-size: 28px; line-height: 1; }
.g2m-chatbox-status { display: flex; gap: 7px; align-items: center; font-size: 12px; }
.g2m-chatbox-status span { width: 8px; height: 8px; background: #76dc9b; border-radius: 50%; }
.g2m-chatbox-status.is-offline span { background: #f5c76b; }
.g2m-chatbox-messages { display: flex; flex-direction: column; gap: 10px; height: 210px; padding: 18px; overflow-y: auto; background: #f5f8f7; }
.g2m-chat-message { max-width: 86%; padding: 10px 13px; border-radius: 13px; font-size: 14px; line-height: 1.45; white-space: pre-wrap; }
.g2m-chat-message.is-system, .g2m-chat-message.is-admin { align-self: flex-start; background: #fff; border: 1px solid rgba(24, 82, 68, 0.1); }
.g2m-chat-message.is-visitor { align-self: flex-end; color: #fff; background: var(--tj-color-theme-primary, #176b50); }
.g2m-chatbox-form { padding: 16px; background: #fff; }
.g2m-chatbox-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.g2m-chatbox-form label > span { display: block; margin-bottom: 4px; font-size: 11px; font-weight: 700; }
.g2m-chatbox-form input, .g2m-chatbox-form textarea { width: 100%; padding: 9px 11px; background: #f7faf9; border: 1px solid rgba(24, 82, 68, 0.15); border-radius: 9px; font-size: 13px; }
.g2m-chatbox-message-field { display: block; margin: 0 0 12px; }
.g2m-chatbox-form textarea {
    display: block;
    box-sizing: border-box;
    min-height: 94px;
    padding: 14px 16px;
    color: #26364b;
    background: #f5f8f7;
    border: 1px solid rgba(24, 82, 68, 0.18);
    border-radius: 14px;
    font-family: inherit;
    font-size: 14px;
    line-height: 1.5;
    resize: none;
}
.g2m-chatbox-form textarea::placeholder { color: #718096; opacity: 1; }
.g2m-chatbox-error { margin-bottom: 8px; color: #a62929; font-size: 12px; }
.g2m-chatbox-send { display: flex; width: 100%; align-items: center; justify-content: center; gap: 9px; padding: 11px; color: #fff; background: var(--tj-color-theme-primary, #176b50); border: 0; border-radius: 10px; font-weight: 700; }
.g2m-chatbox-send:disabled { opacity: 0.65; }
.g2m-chatbox-faq{padding:15px;background:#fff;border-top:1px solid rgba(24,82,68,.1)}
.g2m-chatbox-faq[hidden],.g2m-chatbox-form[hidden]{display:none!important}.g2m-chatbox-faq-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.g2m-chatbox-faq-heading>span{color:#718079;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.g2m-chatbox-faq-heading button,.g2m-chatbox-back-faq{padding:0;color:var(--tj-color-theme-primary,#176b50);background:none;border:0;font-size:11px;font-weight:800}.g2m-chatbox-faq-list{display:flex;flex-direction:column;gap:7px;max-height:190px;overflow-y:auto}.g2m-chatbox-faq-item,.g2m-chatbox-free-question{display:flex;width:100%;align-items:center;gap:9px;padding:10px 11px;color:#253c35;background:#f8faf9;border:1px solid rgba(24,82,68,.12);border-radius:10px;text-align:left;font-size:12px;line-height:1.35}.g2m-chatbox-faq-item i,.g2m-chatbox-free-question i{color:var(--tj-color-theme-primary,#176b50);font-size:10px}.g2m-chatbox-faq-item:hover{border-color:var(--tj-color-theme-primary,#176b50);background:#eef7f3}.g2m-chatbox-free-question{margin-top:9px;justify-content:center;color:var(--tj-color-theme-primary,#176b50);background:#fff;font-weight:750}.g2m-chatbox-back-faq{display:block;margin:10px auto 0}.g2m-chatbox-faq-item:disabled{opacity:.55}
.g2m-chatbox-toggle:focus-visible, .g2m-chatbox-panel button:focus-visible, .g2m-chatbox-panel input:focus-visible, .g2m-chatbox-panel textarea:focus-visible { outline: 3px solid #e0ad43; outline-offset: 2px; }

@media (max-width: 575.98px) {
    .g2m-chatbox { right: 16px; bottom: 16px; }
    .g2m-chatbox-toggle { width: 52px; height: 52px; padding: 0; justify-content: center; }
    .g2m-chatbox-toggle span { display: none; }
    .g2m-chatbox-panel { position: fixed; right: 12px; bottom: 80px; left: 12px; width: auto; }
    .g2m-chatbox-messages { height: 190px; }
}
