/* Tricotin: visual refinements, without changing page content. */
.tricotin-layout .tricotin-locations-nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 24px 0 32px;
}
.tricotin-layout .entry-content .tricotin-locations-nav a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    padding: 16px;
    border-radius: 8px;
    background: #80a64e;
    color: #fff;
    text-align: center;
    text-decoration: none;
    line-height: 1.4;
}
.tricotin-layout .entry-content .tricotin-locations-nav a:is(:hover, :focus, :visited) {
    color: #fff;
    text-decoration: none;
}
.tricotin-layout .entry-content .tricotin-locations-nav a:hover { box-shadow: 0 3px 8px #23493233; }
.tricotin-layout .entry-content .tricotin-locations-nav strong { font-weight: 600; }
.tricotin-layout .tricotin-location-card { scroll-margin-top: 24px; }
@media (max-width: 640px) {
    .tricotin-layout .tricotin-locations-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}
@media (max-width: 360px) {
    .tricotin-layout .tricotin-locations-nav { grid-template-columns: 1fr; }
}
.tricotin-layout .entry-content ul.tricotin-schedule-list {
    display: block;
    padding-left: 22px;
    margin: 0 0 24px;
    list-style: disc outside;
}
.tricotin-layout .entry-content .tricotin-schedule-list > li {
    padding: 0;
    margin-bottom: 12px;
    background: transparent;
    border: 0;
    line-height: 1.7;
}
/* Keep the homepage navigation in the document flow, above the banner. */
.tricotin-layout.home #site-navigation {
    position: relative;
    top: auto;
    bottom: auto;
    background-color: #80a64e !important;
}
.tricotin-layout.home .site-header { margin-bottom: 0; }
.tricotin-layout.home .header-image { clear: both; margin-top: -2px; }
.tricotin-layout.home .header-image img { border-radius: 0; }
.tricotin-layout .tricotin-section-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 28px;
}
.tricotin-layout .tricotin-section-nav a,
.tricotin-layout .entry-content a.tricotin-action {
    display: inline-block;
    padding: 10px 16px;
    border: 1px solid #80a64e;
    border-radius: 6px;
    color: #fff;
    background: #80a64e;
    font-weight: 600;
    font-size: 16px;
    line-height: 1.5;
    text-decoration: none;
    white-space: normal;
    margin: 6px 8px 6px 0;
}
.tricotin-layout .tricotin-section-nav a:hover,
.tricotin-layout .entry-content a.tricotin-action:hover {
    background: #80a64e;
    color: #fff;
    text-decoration: none;
    box-shadow: 0 2px 6px #23493233;
}
.tricotin-layout .tricotin-section-nav a:focus-visible {
    outline: 2px solid #0d6344;
    outline-offset: 3px;
}
.tricotin-layout .entry-content :is(button, input[type="submit"], input[type="button"], .elementor-button, .wp-block-button__link),
.tricotin-layout .entry-content :is(button, input[type="submit"], input[type="button"], .elementor-button, .wp-block-button__link):is(:hover, :focus, :active) {
    color: #fff;
    background-color: #80a64e;
    border-color: #80a64e;
    text-decoration: none;
    border-radius: 6px;
}
.tricotin-layout .entry-content a.tricotin-action:is(:hover, :focus, :active, :visited),
.tricotin-layout .tricotin-section-nav a:is(:hover, :focus, :active, :visited) {
    color: #fff;
    background-color: #80a64e;
    text-decoration: none;
}
.tricotin-layout .entry-content :is(.tricotin-action, .elementor-button, .wp-block-button__link) :is(span, strong, em) {
    color: inherit;
    text-decoration: none;
}
.tricotin-layout .entry-content p.tricotin-home-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 18px;
    margin: 24px 0;
}
.tricotin-layout .tricotin-home-actions > strong { display: contents; }
.tricotin-layout .entry-content .tricotin-home-actions a.tricotin-action { margin: 0; }
.tricotin-layout:not(.page-id-13) .entry-content img,
.tricotin-layout .header-image img { border-radius: 10px; }
.tricotin-layout:not(.page-id-13) .entry-content .elementor-widget-image {
    box-sizing: border-box;
    margin-bottom: 20px;
}
.tricotin-layout:not(.page-id-13) .tricotin-photo-row > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget-image {
    padding: 0 12px;
}
.tricotin-layout .tricotin-schedule {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.tricotin-layout .tricotin-schedule-day {
    background: #f1f5eb;
    padding: 14px;
    border-radius: 8px;
    border-left: 3px solid #80a64e;
}
.tricotin-layout .entry-content .tricotin-schedule h3 {
    font-size: 17px;
    line-height: 1.4;
    margin: 0 0 8px;
}
.tricotin-layout .entry-content .tricotin-schedule p { margin: 0; font-size: 15px; }
.tricotin-layout .entry-content .tricotin-contact-card {
    padding: 20px;
    margin-top: 20px;
    background: #f1f5eb;
    border-left: 4px solid #80a64e;
    border-radius: 0 8px 8px 0;
}
.tricotin-layout .tricotin-contact-card a { overflow-wrap: anywhere; }
.tricotin-layout .entry-content .tricotin-callout {
    padding: 18px 22px;
    border-left: 4px solid #80a64e;
    border-radius: 0 8px 8px 0;
    background: #f1f5eb;
}
.tricotin-layout .entry-content .tricotin-signature {
    padding-top: 12px;
    border-top: 1px solid #dce6d5;
    color: #0d6344;
    font-weight: 600;
}
.tricotin-layout.home .elementor-widget-text-editor ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 0;
    list-style: none;
}
.tricotin-layout.home .elementor-widget-text-editor ul li {
    padding: 12px 16px;
    margin: 0;
    background: #f1f5eb;
    border-radius: 6px;
}
.tricotin-layout .entry-content .tricotin-principles {
    padding-left: 0;
    list-style-position: inside;
    counter-reset: tricotin-principle;
}
.tricotin-layout .entry-content .tricotin-principles > li {
    margin: 0 0 16px;
    padding: 18px 22px;
    border: 1px solid #dce6d5;
    border-radius: 8px;
    background: #f8faf5;
}
.tricotin-layout .tricotin-principles > li::marker { color: #0d6344; font-weight: 700; }
.tricotin-layout .entry-content blockquote {
    margin: 24px 0;
    padding: 18px 24px;
    border-left: 4px solid #80a64e;
    background: #f4f7ef;
    font-size: inherit;
}
/* Only the locations page receives photo galleries; partner logos are untouched. */
.tricotin-layout.page-id-1153 .tricotin-location-card {
    padding: 22px;
    margin-top: 24px;
    margin-bottom: 24px;
    border: 0;
    border-radius: 10px;
    background: #fafcf8;
    box-sizing: border-box;
}
.tricotin-layout.page-id-1153 .tricotin-location-content {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 24px;
}
.tricotin-layout.page-id-1153 .tricotin-location-content > .elementor-widget-text-editor {
    width: 100%;
    flex-basis: 100%;
    margin: 0;
}
.tricotin-layout.page-id-1153 .tricotin-location-content > .elementor-widget-image {
    flex: 1 1 160px;
    width: auto;
    max-width: calc(50% - 12px);
    margin: 0;
}
.tricotin-layout.page-id-1153 .tricotin-location-card h2 { margin: 0 0 10px; }
.tricotin-layout.page-id-1153 .tricotin-location-card h6 { margin: 0 0 10px; font-size: 17px; }
.tricotin-layout.page-id-1153 .tricotin-location-content > .elementor-widget-image img {
    width: 100%;
    max-width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 10px;
    background: #f0f2ec;
}
.tricotin-layout.page-id-1153 .entry-content .elementor-absolute {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    margin: 16px auto;
}
.tricotin-layout.page-id-1153 .elementor-widget-image a.tricotin-zoom { display: block; }
.tricotin-layout a.tricotin-zoom { cursor: zoom-in; }
.tricotin-lightbox {
    max-width: 94vw;
    max-height: 94vh;
    width: fit-content;
    padding: 16px;
    border: 0;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 12px 50px #0005;
}
.tricotin-lightbox::backdrop { background: #10281de0; }
.tricotin-lightbox > p {
    max-width: 75ch;
    margin: 12px auto 0;
    color: #234932;
    font-size: 15px;
    line-height: 1.5;
    text-align: center;
}
.tricotin-lightbox > img {
    display: block;
    max-width: 86vw;
    max-height: 68vh;
    width: auto;
    height: auto;
    object-fit: contain;
    margin: 12px auto 0;
}
.tricotin-lightbox > button {
    display: block;
    margin-left: auto;
    border: 1px solid #0d6344;
    background: #f0f5ea;
    color: #234932;
    border-radius: 5px;
    padding: 8px 14px;
    cursor: pointer;
}
.tricotin-lightbox > button:focus-visible { outline: 3px solid #0d6344; outline-offset: 3px; }
@media (max-width: 768px) {
    .tricotin-layout.home .elementor-widget-text-editor ul { grid-template-columns: 1fr; }
    .tricotin-layout .tricotin-schedule { grid-template-columns: 1fr; }
    .tricotin-layout.page-id-1153 .tricotin-location-card { padding: 14px; }
    .tricotin-layout.page-id-1153 .tricotin-location-content > .elementor-widget-image { max-width: 100%; }
    .tricotin-layout .tricotin-principles > li { padding: 16px; }
}
.tricotin-testimonial-section { scroll-margin-top: 32px; }
.tricotin-testimonial-section + .tricotin-testimonial-section {
    border-top: 1px solid #dce6d5;
    margin-top: 36px;
    padding-top: 24px;
}
.tricotin-testimonials .tricotin-testimonial-section > h2 {
    color: #0d6344;
    font-size: clamp(24px, 3vw, 30px);
    margin: 0 0 24px;
}
.tricotin-testimonials #videos iframe {
    display: block;
    width: 100%;
    max-width: 900px;
    height: auto;
    aspect-ratio: 16 / 9;
    margin: 0 auto;
    border: 0;
    border-radius: 8px;
}
body.tricotin-layout {
    color: #354039;
    background: #fff;
    font-family: 'Lato', sans-serif;
    font-size: 17px;
    line-height: 1.75;
}
.tricotin-layout .site-container {
    box-sizing: border-box;
    width: 100%;
    max-width: 1120px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 22px;
    padding-right: 22px;
}
.tricotin-layout .site-top-bar > .site-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 4px 16px;
}
.tricotin-layout .site-top-bar-left,
.tricotin-layout .site-top-bar-right {
    float: none;
    width: auto;
    right: auto;
}
.tricotin-layout .site-top-bar .info-text { margin-left: 0; text-align: left; }
.tricotin-layout .site-top-bar .clearboth { display: none; }
.tricotin-layout .site-header .branding { padding-top: 20px; padding-bottom: 20px; }
.tricotin-layout .site-header .branding .description { line-height: 1.5; }
.tricotin-layout .site-top-bar { font-size: 14px; }
.tricotin-layout .site-top-bar a:focus-visible,
.tricotin-layout .main-navigation a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: -4px;
}
.tricotin-layout .main-navigation a { font-weight: 600; }
.tricotin-layout .main-navigation a[href$="/ou-nous-trouver/"] {
    text-decoration: underline;
    text-underline-offset: 5px;
    text-decoration-thickness: 2px;
}
/* Preserve the entire banner, including its embedded text. */
.tricotin-layout .header-image {
    background-color: #f4f6ed;
    margin-bottom: 32px;
    text-align: center;
}
.tricotin-layout .header-image img {
    display: block;
    width: 100%;
    max-width: 1040px;
    height: auto;
    margin: 0 auto;
}
.tricotin-layout #content.site-content {
    max-width: 960px;
    padding-left: 40px;
    padding-right: 40px;
    padding-top: 28px;
    padding-bottom: 24px;
}
.tricotin-layout #primary.content-area {
    float: none;
    width: 100%;
    padding: 0;
}
.tricotin-layout #secondary { display: none; }
.tricotin-layout .entry-content {
    font-size: 17px;
    font-weight: 400;
    line-height: 1.8;
}
.tricotin-layout .entry-content :is(p, li) { font-weight: 400; }
.tricotin-layout .entry-content p { margin-bottom: 1.4em; }
.tricotin-layout .entry-content li { margin-bottom: .45em; }
.tricotin-layout .entry-content :is(h1, h2, h3, h4, h5, h6) {
    color: #0d6344;
    font-weight: 600;
    line-height: 1.4;
    margin-top: 1.6em;
    margin-bottom: .7em;
    letter-spacing: normal;
}
.tricotin-layout .entry-content h2 { font-size: clamp(24px, 3vw, 30px); }
.tricotin-layout .entry-content h3 { font-size: clamp(21px, 2.6vw, 25px); }
.tricotin-layout .entry-content :is(h4, h5, h6) { font-size: 19px; }
.tricotin-layout .entry-content .elementor-widget-text-editor {
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    color: inherit;
    font-weight: 400;
}
.tricotin-layout .entry-content :is(strong, b),
.tricotin-layout .entry-content a:not(.elementor-button):not(.wp-block-button__link):not(.tricotin-action),
.tricotin-layout .entry-content a:not(.elementor-button):not(.wp-block-button__link):not(.tricotin-action):is(:hover, :focus, :visited) {
    font-weight: inherit;
}
/* Old editor formatting must not make isolated words or links unexpectedly bold. */
.tricotin-layout .entry-content :is(span, strong, b, a)[style*="font-weight"] {
    font-weight: inherit !important;
}
.tricotin-layout .entry-header .entry-title,
.tricotin-layout .tricotin-testimonial-section > h2 { font-weight: 600; }
.tricotin-layout .entry-content .elementor-widget-text-editor :is(p, ul, ol, h5) {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}
/* Use the same left edge for the page title and Elementor content. */
.tricotin-layout #primary .entry-content > .elementor > .elementor-section > .elementor-container {
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
}
.tricotin-layout #primary .entry-content > .elementor > .elementor-section > .elementor-container > .elementor-column > .elementor-widget-wrap {
    padding-left: 0;
    padding-right: 0;
}
.tricotin-layout #primary .entry-header { margin-left: 0; margin-right: 0; }
.tricotin-layout .entry-content a:not(.elementor-button):not(.wp-block-button__link):not(.tricotin-action) {
    text-underline-offset: 3px;
}
/* Text links stay distinct from body text, including on hover and keyboard focus. */
.tricotin-layout .entry-content :is(p, li, h1, h2, h3, h4, h5, h6) a:not(.elementor-button):not(.wp-block-button__link):not(.tricotin-action) {
    color: #0d6344;
    text-decoration: underline;
    text-decoration-thickness: 1px;
}
.tricotin-layout .entry-content :is(p, li, h1, h2, h3, h4, h5, h6) a:not(.elementor-button):not(.wp-block-button__link):not(.tricotin-action):is(:hover, :focus-visible, :active) {
    color: #07452f;
    background-color: #e5efdc;
    text-decoration: underline;
    text-decoration-thickness: 2px;
}
.tricotin-layout .entry-content :is(p, li, h1, h2, h3, h4, h5, h6) a:not(.elementor-button):not(.wp-block-button__link):not(.tricotin-action):is(:hover, :focus-visible, :active) :is(span, strong, em) {
    color: inherit;
}
.tricotin-layout .entry-content a:focus-visible {
    outline: 2px solid #0d6344;
    outline-offset: 3px;
}
.tricotin-layout.home .elementor-widget-text-editor h5:first-child {
    padding: 20px 24px;
    background: #f2f6ee;
    border-left: 4px solid #80a64e;
    border-radius: 0 8px 8px 0;
    margin-top: 0;
    margin-bottom: 28px;
}
.tricotin-layout .entry-content .elementor-widget-image img { border-radius: 8px; }
/* Keep captions attached to the image rather than spanning the page. */
.tricotin-layout .entry-content .elementor-widget-image figure.wp-caption {
    width: fit-content;
    max-width: 100%;
    margin: 0 auto 24px;
}
.tricotin-layout .entry-content .elementor-widget-image figure.wp-caption > a {
    display: block;
}
.tricotin-layout .entry-content .elementor-widget-image figure.wp-caption img {
    display: block;
    border-radius: 8px 8px 0 0;
}
.tricotin-layout .entry-content .elementor-widget-image figure.wp-caption figcaption {
    contain: inline-size;
}
.tricotin-layout .entry-content :is(.wp-caption-text, .widget-image-caption, .wp-block-image figcaption) {
    box-sizing: border-box;
    margin: 0;
    padding: 14px 20px;
    color: #234932;
    background: #f0f5ea;
    border: 0;
    border-bottom: 3px solid #80a64e;
    border-radius: 0 0 8px 8px;
    box-shadow: none;
    font-family: inherit;
    font-size: 15px;
    font-weight: 400;
    font-style: normal;
    line-height: 1.6;
    text-align: center;
    overflow-wrap: anywhere;
}
.tricotin-layout .entry-content iframe { max-width: 100%; }
.tricotin-layout .entry-content .elementor-widget-video { margin-top: 24px; }
.tricotin-layout .breadcrumbs { margin-bottom: 20px; font-size: 14px; }
@media (max-width: 768px) {
    body.tricotin-layout, .tricotin-layout .entry-content { font-size: 16px; }
    .tricotin-layout .site-header .branding { padding-top: 16px; padding-bottom: 16px; }
    .tricotin-layout .header-image { margin-bottom: 16px; }
    .tricotin-layout #content.site-content {
        padding: 18px 22px 16px;
    }
    .tricotin-layout.home .elementor-widget-text-editor h5:first-child { padding: 16px; }
}

/* Mobile refinement: desktop rules and partner logos remain unchanged. */
@media (max-width: 960px) {
    .tricotin-layout .header-menu-button {
        min-width: 48px;
        min-height: 48px;
        padding: 12px 18px;
        box-sizing: border-box;
    }
    .tricotin-layout #main-menu { width: min(88vw, 360px); box-sizing: border-box; }
    .tricotin-layout #main-menu a { min-height: 48px; box-sizing: border-box; padding: 14px 52px 14px 20px; white-space: normal; line-height: 1.5; }
    .tricotin-layout #main-menu .main-menu-close { width: 44px; height: 44px; line-height: 44px; box-sizing: border-box; padding: 0; }
    .tricotin-layout #main-menu .menu-dropdown-btn { width: 48px; height: 48px; padding: 10px; line-height: 28px; box-sizing: border-box; }
    .tricotin-layout #main-menu :is(a, [role="button"]):focus-visible { outline: 2px solid currentColor; outline-offset: -3px; }
    body.tricotin-layout.show-main-menu { overflow: hidden; }
}
@media (max-width: 768px) {
    .tricotin-layout .entry-content { font-size: 16px; line-height: 1.75; overflow-wrap: break-word; }
    .tricotin-layout #content.site-content { padding-left: 20px; padding-right: 20px; }
    .tricotin-layout .entry-header .entry-title { font-size: clamp(26px, 7vw, 32px); line-height: 1.3; }
    .tricotin-layout .entry-content :is(.tricotin-action, .elementor-button, .wp-block-button__link, button, input[type="submit"]) {
        min-height: 44px; box-sizing: border-box; padding: 12px 16px;
    }
    .tricotin-layout .tricotin-section-nav a { min-height: 44px; box-sizing: border-box; }
    .tricotin-layout .entry-content p.tricotin-home-actions { gap: 12px; align-items: stretch; }
    .tricotin-layout .tricotin-home-actions a { text-align: center; }
    .tricotin-layout .tricotin-locations-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .tricotin-layout .entry-content .tricotin-locations-nav a { min-width: 0; padding: 14px 10px; font-size: 15px; overflow-wrap: break-word; }
    .tricotin-layout.page-id-1153 .tricotin-location-card { padding: 12px 0; margin-top: 20px; margin-bottom: 20px; }
    .tricotin-layout.page-id-1153 .tricotin-location-content { gap: 18px; }
    .tricotin-layout.page-id-1153 .tricotin-location-content > .elementor-widget-image { flex: 1 1 100%; max-width: 100%; width: 100%; }
    .tricotin-layout.page-id-1153 .tricotin-location-content > .elementor-widget-image img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 10px; }
    .tricotin-layout:not(.page-id-13) .tricotin-photo-row > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget-image { padding-left: 0; padding-right: 0; }
    .tricotin-layout #colophon .tricotin-footer-info { flex-direction: column; align-items: flex-start; gap: 16px; padding-top: 20px; }
    .tricotin-layout #colophon .tricotin-footer-row { flex-direction: column; align-items: flex-start; gap: 10px; }
    .tricotin-layout #colophon .tricotin-footer-row > a,
    .tricotin-layout #colophon .tricotin-footer-nav a { display: inline-flex; align-items: center; min-height: 44px; }
    .tricotin-layout #colophon .tricotin-footer-nav ul { gap: 0 20px; }
    .tricotin-lightbox { box-sizing: border-box; width: calc(100vw - 24px); max-width: calc(100vw - 24px); max-height: calc(100dvh - 24px); padding: 12px; overflow-y: auto; }
    .tricotin-lightbox > button { position: sticky; top: 0; z-index: 1; min-height: 44px; background: #f0f5ea; }
    .tricotin-lightbox > img { max-width: 100%; max-height: 60vh; max-height: 60dvh; }
    .tricotin-lightbox > p { margin-top: 12px; font-size: 14px; line-height: 1.5; }
}
@media (max-width: 640px) {
    .tricotin-layout .site-top-bar > .site-container { flex-direction: column; align-items: stretch; gap: 0; padding: 4px 16px; }
    .tricotin-layout .site-top-bar-left, .tricotin-layout .site-top-bar-right { width: 100%; padding: 0; text-align: center; }
    .tricotin-layout .site-top-bar .info-text { font-size: 13px; letter-spacing: 0; text-align: center; padding: 0; }
    .tricotin-layout .site-top-bar .info-text a { display: inline-flex; align-items: center; min-height: 44px; margin: 0; font-size: inherit; }
    .tricotin-layout .site-top-bar-right ul.social-links { display: flex; justify-content: center; align-items: center; gap: 4px; height: auto; margin: 0; padding: 0; }
    .tricotin-layout .site-top-bar-right ul.social-links li { margin: 0; float: none; }
    .tricotin-layout .site-top-bar-right ul.social-links a { display: flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0; box-sizing: border-box; font-size: 17px; }
    .tricotin-layout .site-header .branding .title { font-size: 36px; }
    .tricotin-layout .site-header .branding .description { font-size: 14px; }
}
@media (max-width: 359px) {
    .tricotin-layout .tricotin-locations-nav { grid-template-columns: 1fr; }
}
