/* OXYMED · nouvelle direction artistique : montagne, neige, air frais */
:root{--navy:#022e5f;--blue:#2792da;--ice:#eaf6fd;--ink:#123657;--muted:#647b8f;--border:#e2edf4;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font:15px/1.75 'DM Sans',sans-serif}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:min(1210px,calc(100% - 52px));margin:auto}.utility{background:var(--navy);color:#d5eaf8;font-size:11px;letter-spacing:.2px}.utility-inner{min-height:34px;display:flex;justify-content:space-between;align-items:center;gap:12px}.utility a{color:#fff;font-weight:700}.utility-divider{padding:0 13px;color:#80b7db}.header{position:sticky;top:0;z-index:50;background:#fff;box-shadow:0 2px 20px #022e5f0d}.header-inner{min-height:88px;display:flex;align-items:center;gap:27px}.brand{background:var(--navy);padding:13px 15px;border-radius:4px;flex-shrink:0}.brand img{width:150px}.nav{display:flex;align-items:center;justify-content:center;gap:20px;flex:1}.nav a{font-size:11px;font-weight:700;color:#34516a;white-space:nowrap;transition:color .2s}.nav a:hover,.nav a.current{color:var(--blue)}.header-call{font-weight:800;font-size:12px;white-space:nowrap;background:var(--blue);color:#fff;padding:12px 18px;border-radius:4px}.header-call span{margin-left:8px}
.hero{position:relative;background:var(--navy);color:#fff;overflow:hidden}.hero-slider{height:min(670px,65vw);min-height:530px;position:relative}.slide{position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(2,34,70,.89) 0%,rgba(2,46,95,.64) 45%,rgba(2,46,95,.12) 100%),var(--photo);background-size:cover;background-position:center;opacity:0;animation:hero-rotation 64s infinite}.slide:nth-child(1){animation-delay:0s}.slide:nth-child(2){animation-delay:8s}.slide:nth-child(3){animation-delay:16s}.slide:nth-child(4){animation-delay:24s}.slide:nth-child(5){animation-delay:32s}.slide:nth-child(6){animation-delay:40s}.slide:nth-child(7){animation-delay:48s}.slide:nth-child(8){animation-delay:56s}@keyframes hero-rotation{0%{opacity:0}1.3%,11.5%{opacity:1}12.5%,100%{opacity:0}}.slide-inner{height:100%;display:flex;align-items:center}.slide-copy{max-width:680px;padding:35px 0 70px}.eyebrow{display:inline-flex;align-items:center;gap:12px;font-size:11px;font-weight:800;letter-spacing:2.2px;color:#a4ddff}.eyebrow:before{content:'';width:28px;height:2px;background:#6bcaff}.slide h2{font:800 clamp(40px,5.2vw,72px)/1.11 Manrope,sans-serif;letter-spacing:-2.7px;margin:22px 0}.slide p{max-width:590px;color:#e0eff9;font-size:18px;line-height:1.65;margin:0 0 32px}.button{display:inline-flex;align-items:center;gap:28px;padding:14px 22px;border-radius:4px;font-size:12px;font-weight:800;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px)}.button-light{background:#fff;color:var(--navy)}.button-light:hover{background:#d6efff}.hero-progress{position:absolute;z-index:5;left:50%;transform:translateX(-50%);bottom:40px;display:flex;gap:7px}.hero-progress span{width:28px;height:3px;background:#ffffff70}.hero-bottom{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);display:flex;justify-content:space-between;font-size:10px;font-weight:800;letter-spacing:1.8px;color:#e1eff9}
.services-section{padding:106px 0 114px;background:linear-gradient(180deg,#fff,#f7fbfe)}.section-label{display:inline-flex;align-items:center;gap:11px;font-size:10px;letter-spacing:2.5px;font-weight:800;color:var(--blue)}.label-line{width:23px;height:2px;background:var(--blue)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:60px;margin-bottom:46px}.section-heading h1{font:800 clamp(34px,4vw,54px)/1.14 Manrope,sans-serif;letter-spacing:-2px;color:var(--navy);max-width:610px;margin:18px 0 0}.section-heading h1 em{font-style:normal;color:var(--blue)}.section-heading>p{max-width:385px;color:var(--muted);margin:0 0 4px}.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.service{position:relative;background:#fff;border:1px solid var(--border);padding:35px 31px 29px;min-height:312px;display:flex;flex-direction:column;transition:transform .25s,box-shadow .25s,border-color .25s}.service:hover{transform:translateY(-7px);border-color:#b6dff7;box-shadow:0 18px 45px #022e5f15}.service-icon{width:74px;height:74px;display:flex;align-items:center;justify-content:center;margin-bottom:23px}.service-icon img{width:100%;height:100%;object-fit:contain}.service-number{position:absolute;top:31px;right:30px;color:#d4e9f6;font:800 24px Manrope}.service h3{font:800 19px/1.35 Manrope,sans-serif;letter-spacing:-.5px;color:var(--navy);margin:0 0 10px}.service p{color:var(--muted);font-size:13px;line-height:1.7;margin:0 0 23px}.service-link{font-size:12px;font-weight:800;color:var(--blue);margin-top:auto}.service-link span{margin-left:9px}
.mountain-break{background:var(--navy) url('https://oxymed.ca/img/montagnes.png') center center/cover fixed no-repeat;color:#fff}.mountain-shade{background:linear-gradient(90deg,rgba(2,46,95,.9),rgba(2,46,95,.42))}.mountain-content{min-height:475px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding-top:70px;padding-bottom:70px}.light-label{color:#c0e7ff}.mountain-content h2{font:800 clamp(34px,4vw,54px)/1.15 Manrope;letter-spacing:-2px;margin:17px 0}.mountain-content p{font-size:17px;color:#e2f1fc;max-width:540px;margin:0 0 26px}
.history-section{padding:112px 0}.history-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.history-visual{position:relative}.history-visual>img{width:100%;height:470px;object-fit:cover;background:#eaf6fd}.history-badge{position:absolute;right:-24px;bottom:-24px;background:var(--blue);color:#fff;padding:22px 28px;display:flex;gap:16px;align-items:center;box-shadow:0 18px 36px #022e5f30}.history-badge strong{font:800 36px Manrope}.history-badge span{font-size:11px;font-weight:700;line-height:1.4}.history-copy h2{font:800 clamp(32px,3.4vw,45px)/1.2 Manrope;letter-spacing:-1.5px;color:var(--navy);margin:17px 0 24px}.history-copy h3{font:700 17px Manrope;color:var(--blue);margin:0 0 16px}.history-copy p{color:var(--muted);line-height:1.9}.text-link{display:inline-block;margin-top:16px;font-weight:800;font-size:13px;color:var(--blue);border-bottom:2px solid var(--blue);padding-bottom:7px}.text-link span{margin-left:15px}
.partners-section{padding:77px 0 85px;background:#f1f8fc;text-align:center}.partners-heading h2{font:800 34px Manrope;color:var(--navy);letter-spacing:-1px;margin:12px 0 36px}.partners-logos{display:flex;gap:15px;justify-content:center;flex-wrap:wrap}.partner-logo{height:100px;width:180px;background:#fff;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;padding:20px}.partner-logo img{max-height:65px;max-width:100%;object-fit:contain}.map-section{padding:95px 0 105px}.map-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:27px}.map-heading h2{font:800 38px Manrope;color:var(--navy);margin:10px 0 3px;letter-spacing:-1.3px}.map-heading p{color:var(--muted);margin:0}.map-directions{font-size:12px;font-weight:800;color:var(--blue);border-bottom:2px solid var(--blue);padding-bottom:5px;white-space:nowrap}.map-frame{border:1px solid var(--border);padding:8px;background:#fff;box-shadow:0 15px 40px #022e5f0b}.map-frame iframe{width:100%;height:400px;border:0;display:block}
.footer{background:#022347;color:#d1e2ef;padding:74px 0 0}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr .8fr;gap:75px}.footer-about>img{width:178px;margin-bottom:25px}.footer h3{font:800 17px Manrope;color:#fff;margin:0 0 18px}.footer p,.footer address{font-size:13px;line-height:1.9;color:#b9d0e1;font-style:normal}.footer a:hover{color:#83ceff}.footer .hours{color:#e4f4ff;margin-top:20px}.footer address{margin-top:20px;padding-top:18px;border-top:1px solid #ffffff26}.footer-links{display:flex;flex-direction:column;gap:8px;font-size:13px}.social-heading{margin-top:30px!important}.footer-bottom{margin-top:57px;padding:21px 0;border-top:1px solid #ffffff24;display:flex;justify-content:space-between;gap:15px;font-size:11px;color:#9eb9cc}
@media(max-width:1150px){.nav{gap:11px}.nav a{font-size:10px}.header-inner{gap:14px}.brand img{width:125px}.header-call{display:none}.history-grid{gap:55px}}@media(max-width:860px){.utility-inner>span{display:none}.utility-inner{justify-content:center}.header-inner{flex-wrap:wrap;padding:13px 0}.nav{order:3;width:100%;flex:unset;overflow-x:auto;justify-content:flex-start;padding:8px 0;gap:22px}.nav a{font-size:11px}.hero-slider{height:570px;min-height:0}.slide h2{font-size:48px}.section-heading{display:block}.section-heading>p{margin-top:20px;max-width:650px}.services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.history-grid{grid-template-columns:1fr;gap:60px}.history-visual>img{height:360px}.footer-grid{gap:30px;grid-template-columns:1fr 1fr}.footer-grid>div:last-child{grid-column:span 2}.mountain-break{background-attachment:scroll}}@media(max-width:560px){.container{width:min(100% - 32px,1210px)}.brand img{width:120px}.hero-slider{height:570px}.slide{background-position:65% center}.slide h2{font-size:38px;letter-spacing:-1.5px}.slide p{font-size:15px}.slide-copy{padding-bottom:40px}.hero-bottom{bottom:12px}.hero-progress{bottom:33px}.services-section,.history-section{padding:65px 0}.section-heading h1{font-size:35px}.services-grid{grid-template-columns:1fr}.service{min-height:275px}.mountain-content{min-height:420px}.mountain-content h2{font-size:36px}.history-badge{right:0;bottom:-25px}.partners-section{padding:65px 0}.partner-logo{width:calc(50% - 8px)}.map-section{padding:65px 0}.map-heading{display:block}.map-directions{display:inline-block;margin-top:15px}.map-frame iframe{height:320px}.footer-grid{grid-template-columns:1fr}.footer-grid>div:last-child{grid-column:auto}.footer-bottom{display:block}.footer-bottom a{display:block;margin-top:7px}}@media(prefers-reduced-motion:reduce){.slide{animation:none}.slide:first-child{opacity:1}*{scroll-behavior:auto!important}}




/* Header image */
.services-grid .service-header {
    display: block;
    width: 100%;
    height: 170px;
    margin-bottom: 0;
    overflow: hidden;
}

.services-grid .service-header img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.5s ease;
}

/* Floating icon overlapping the header */
.services-grid .service-icon {
    position: relative;
    z-index: 2;
    width: 76px;
    height: 76px;
    margin-top: -38px;
    margin-bottom: 20px;
    margin-left: 22px;
    padding: 10px;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 8px 25px rgba(2, 46, 95, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Icon image */
.services-grid .service-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* Header zoom on hover */
.services-grid .service:hover .service-header img {
    transform: scale(1.06);
}



/* Remove card padding so header reaches the edges */
.services-grid .service {
    padding: 0 !important;
    overflow: hidden;
    position: relative;
}

/* Full-width header */
.services-grid .service-header {
    width: 100%;
    height: 170px;
    margin: 0;
    padding: 0;
    overflow: hidden;
}

.services-grid .service-header img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.5s ease;
}

/* Floating icon */
.services-grid .service-icon {
    position: relative;
    z-index: 2;
    width: 76px;
    height: 76px;
    margin: -38px 0 20px 24px;
    padding: 10px;
    background: white;
    border-radius: 16px;
    box-shadow: 0 8px 25px rgba(2, 46, 95, 0.15);
}

/* Content padding */
.services-grid .service-number,
.services-grid .service h3,
.services-grid .service p,
.services-grid .service-link {
    margin-left: 24px;
    margin-right: 24px;
}

/* Keep the discover link near the bottom */
.services-grid .service-link {
    margin-top: auto;
    margin-bottom: 28px;
}

/* Header zoom on hover */
.services-grid .service:hover .service-header img {
    transform: scale(1.06);
}



/* Prevent header images from overflowing */
.services-grid .service-header {
    position: relative;
    display: block;
    width: 100%;
    height: 170px;
    overflow: hidden !important;
    isolation: isolate;
}

/* Keep the image strictly inside the header */
.services-grid .service-header img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center;
    margin: 0;
    padding: 0;
}

/* Prevent old image effects from interfering */
.services-grid .service-header::before,
.services-grid .service-header::after {
    content: none !important;
}

/* Keep the floating icon above the header */
.services-grid .service-icon {
    position: relative;
    z-index: 3;
}



/* Shorter service header images */
.services-grid .service-header {
    height: 140px !important;
    min-height: 140px !important;
    flex: 0 0 140px !important;
}

.services-grid .service-header img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}



/* Google Maps - Full browser width */
.map-section {
    width: 100%;
    max-width: none;
    padding-bottom: 0;
}

.map-section .map-frame {
    position: relative;
    width: 100vw !important;
    max-width: 100vw !important;
    height: 450px;
    margin-top: 35px;

    /* Break out of centered containers */
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;

    padding: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    overflow: hidden;
}

.map-section .map-frame iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

@media (max-width: 768px) {
    .map-section .map-frame {
        height: 350px;
    }
}



/* Google rating near map heading */
.google-rating {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-top: 22px;
    padding: 12px 18px;
    background: #fff;
    border: 1px solid rgba(2, 46, 95, 0.1);
    border-radius: 14px;
    box-shadow: 0 6px 24px rgba(2, 46, 95, 0.06);
    text-decoration: none;
    transition: transform .25s ease, box-shadow .25s ease;
}

.google-rating:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 30px rgba(2, 46, 95, 0.12);
}

.google-rating-score {
    color: #022e5f;
    font-size: 32px;
    font-weight: 800;
    line-height: 1;
}

.google-rating-details {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.google-rating-stars {
    color: #f4b400;
    font-size: 19px;
    letter-spacing: 2px;
    line-height: 1;
}

.google-rating-count {
    color: #52677e;
    font-size: 12px;
    font-weight: 600;
}

.google-rating-arrow {
    color: #2792da;
    font-size: 20px;
    margin-left: 6px;
}

@media (max-width: 480px) {
    .google-rating {
        gap: 10px;
        padding: 11px 14px;
    }

    .google-rating-score {
        font-size: 28px;
    }
}



/* Footer social links */
.footer-social {
    margin-top: 18px;
}

.facebook-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 12px 18px;
    background: #1877f2;
    color: #fff !important;
    text-decoration: none;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 700;
    transition: background .25s ease, transform .25s ease;
}

.facebook-link svg {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
}

.facebook-link:hover {
    background: #2792da;
    transform: translateY(-3px);
}



/* Partners logos */
.partners-logos {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
}

.partner-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 110px;
    padding: 18px;
    background: #fff;
    border: 1px solid #e1eaf3;
    border-radius: 12px;
}

.partner-logo img {
    display: block;
    width: 100%;
    max-height: 75px;
    object-fit: contain;
}

@media (max-width: 900px) {
    .partners-logos {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

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



/* Carousel navigation arrows */
.hero-arrows {
    position: absolute;
    inset: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 24px;
    pointer-events: none;
    z-index: 20;
}

.hero-arrow {
    pointer-events: auto;
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    border: 1px solid rgba(255,255,255,.45);
    border-radius: 50%;
    background: rgba(2,46,95,.35);
    color: #fff;
    font-size: 40px;
    font-weight: 300;
    line-height: 1;
    cursor: pointer;
    backdrop-filter: blur(8px);
    transition: background .25s, transform .25s;
}

.hero-arrow:hover {
    background: #2792da;
    transform: scale(1.08);
}

@media (max-width: 768px) {
    .hero-arrows { padding: 0 10px; }
    .hero-arrow {
        width: 40px;
        height: 40px;
        font-size: 30px;
    }
}



.hero-arrows {
    position: absolute;
    inset: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 24px;
    pointer-events: none;
    z-index: 50;
}

.hero-arrow {
    pointer-events: auto;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 54px;
    height: 54px;
    padding: 0 !important;
    border-radius: 50%;
    background: rgba(2, 46, 95, .45);
    border: 1px solid rgba(255, 255, 255, .5);
    cursor: pointer;
    backdrop-filter: blur(8px);
}

.hero-arrow svg {
    display: block;
    width: 24px;
    height: 24px;
    fill: none;
    stroke: white;
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.hero-arrow:hover {
    background: #2792da;
}



@media (max-width: 768px) {

    .hero-arrows {
        inset: auto 0 75px 0 !important;
        height: 44px;
        padding: 0 16px !important;
        justify-content: flex-end !important;
        gap: 10px;
    }

    .hero-arrow {
        width: 40px !important;
        height: 40px !important;
        min-width: 40px;
        border-radius: 50% !important;
        background: rgba(2, 46, 95, .7) !important;
        backdrop-filter: blur(8px);
    }

    .hero-arrow svg {
        width: 18px !important;
        height: 18px !important;
    }

    .hero-progress {
        bottom: 25px;
    }
}



/* Hidden on desktop */
.mobile-menu-toggle {
    display: none;
}

@media (max-width: 900px) {

    .header {
        position: relative;
        z-index: 100;
    }

    .header-inner {
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    .mobile-menu-toggle {
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 5px;
        width: 44px;
        height: 44px;
        padding: 10px;
        background: #022e5f;
        border: 0;
        border-radius: 8px;
        cursor: pointer;
        margin-left: auto;
    }

    .mobile-menu-toggle span {
        display: block;
        width: 100%;
        height: 2px;
        background: #fff;
        border-radius: 2px;
    }

    .header .nav {
        display: none !important;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        width: 100%;
        max-width: none;
        padding: 15px 20px;
        background: #fff;
        box-shadow: 0 15px 30px rgba(2,46,95,.12);
        z-index: 101;
        overflow: visible;
    }

    .header .nav.mobile-open {
        display: flex !important;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }

    .header .nav a {
        display: block;
        width: 100%;
        padding: 13px 10px;
        border-bottom: 1px solid #edf1f5;
        white-space: normal;
    }

    .header-call {
        display: none !important;
    }
}



/* Fix: prevent service header images from repeating */
.services-grid .service-header {
    background-repeat: no-repeat !important;
    background-size: cover !important;
    background-position: center center !important;
    overflow: hidden !important;
}


/* Grossir le texte du menu */
header nav a,
header .nav-links a,
header .nav-menu a,
header .menu a {
    font-size: 14px !important;
    font-weight: 600 !important;
}

/* Menu - fond gris pour chaque lien */
header nav a,
header .nav-links a,
header .nav-menu a,
header .menu a {
    background-color: #f0f1f2 !important;
    padding: 8px 12px !important;
    border-radius: 6px;
    transition: background-color 0.2s ease;
}

/* Survol */
header nav a:hover,
header .nav-links a:hover,
header .nav-menu a:hover,
header .menu a:hover {
    background-color: #d5d9dd !important;
}




/* Slide vétérinaire : image plus vers le bas */
.hero .slide.slide-7 {
    background-position: center center, center 85% !important;
}


/* Garder le bouton Nous joindre visible sur tablette */
@media (min-width: 901px) and (max-width: 1150px) {
    .header-call {
        display: inline-flex !important;
        align-items: center;
        padding: 10px 12px;
        font-size: 11px;
    }

    .header-inner {
        gap: 10px;
    }

    .nav {
        gap: 8px;
    }
}



/* Partenaires : 3 logos par ligne */
.partners-logos {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px 40px;
    align-items: center;
    justify-items: center;
}

.partner-logo {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.partner-logo img {
    max-width: 180px;
    max-height: 90px;
    width: auto;
    height: auto;
    object-fit: contain;
}

/* Mobile : 2 logos par ligne */
@media (max-width: 768px) {
    .partners-logos {
        grid-template-columns: repeat(2, 1fr);
        gap: 25px 20px;
    }

    .partner-logo img {
        max-width: 140px;
        max-height: 75px;
    }
}
