/* wz-foundations */
/* Design foundations derived from the theme. Do not hand-edit: apply_design_foundations rewrites this whole block. */

:root {
    --wz-space-2xs: clamp(8px, 0.5rem + 0.2vw, 12px);
    --wz-space-xs: clamp(12px, 0.75rem + 0.3vw, 16px);
    --wz-space-s: clamp(16px, 1rem + 0.5vw, 24px);
    --wz-space-m: clamp(24px, 1.5rem + 0.8vw, 32px);
    --wz-space-l: clamp(32px, 2rem + 1.2vw, 48px);
    --wz-space-xl: clamp(48px, 3rem + 2vw, 72px);
    --wz-space-2xl: clamp(64px, 4rem + 3vw, 96px);
    --wz-space-3xl: clamp(80px, 5rem + 4vw, 128px);
    --wz-flow: 0.9em;
    --wz-radius-s: 0;
    --wz-radius-m: 0;
    --wz-radius-l: 0;
    --wz-surface: rgba(0, 0, 0, .035);
    --wz-surface-high: rgba(0, 0, 0, .06);
    --wz-border: rgba(0, 0, 0, .14);
    --wz-text-muted: rgba(0, 0, 0, .62);
    --wz-ink: #14161a;
    --wz-ink-on: #f4f2f0;
    --wz-elev-1: 0 1px 2px rgba(17, 17, 17, .06), 0 2px 6px rgba(17, 17, 17, .05);
    --wz-elev-2: 0 1px 2px rgba(17, 17, 17, .07), 0 4px 12px rgba(17, 17, 17, .07), 0 12px 28px rgba(17, 17, 17, .06);
}

/* Vertical rhythm between sections. The theme ships 20/30/40/50 px, below the 64-96 px
   a content section needs; margin "none" stays untouched (it is glued on purpose). */
.body__wrapper .wiziblocks__item.small { margin-bottom: var(--wz-space-l); }
.body__wrapper .wiziblocks__item.medium { margin-bottom: var(--wz-space-2xl); }
.body__wrapper .wiziblocks__item.large { margin-bottom: var(--wz-space-3xl); }
.body__wrapper .wiziblocks__item:not(.small):not(.medium):not(.large):not(.none) { margin-bottom: var(--wz-space-2xl); }

/* Flow inside a block. The theme sets margin:0 and padding:0 on headings and paragraphs,
   so two paragraphs touch. The class is repeated to win over the theme rule without !important. */
body.body .wiziblocks__item.wiziblocks__item p + p { margin-top: var(--wz-flow); }
body.body .wiziblocks__item.wiziblocks__item h2 + p,
body.body .wiziblocks__item.wiziblocks__item h3 + p,
body.body .wiziblocks__item.wiziblocks__item h4 + p { margin-top: var(--wz-space-2xs); }
body.body .wiziblocks__item.wiziblocks__item p + h2,
body.body .wiziblocks__item.wiziblocks__item p + h3 { margin-top: var(--wz-space-m); }

/* Display voice "refined": Titles become small, light and widely spaced capitals: the vocabulary luxury and beauty settled on. */
/* The theme caps a title at 48 px and font.titleSize does nothing, so the size lives here. */
body.body .wiziblocks__item.wiziblocks__item h1,
body.body .wiziblocks__item.wiziblocks__item h2 {
    font-weight: 400;
    line-height: 1.35;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
body.body .wiziblocks__item.wiziblocks__item h1 { font-size: clamp(1.5rem, 0.9rem + 1.9vw, 2.75rem); }
body.body .wiziblocks__item.wiziblocks__item h2 { font-size: clamp(1.25rem, 0.8rem + 1.4vw, 2rem); }

/* Line-height: generous on reading sizes (the theme sets 1.4 on titles and text alike). */
body.body .wiziblocks__item.wiziblocks__item h3 { line-height: 1.2; }
body.body .wiziblocks__item.wiziblocks__item p,
body.body .wiziblocks__item.wiziblocks__item li { line-height: 1.55; }

/* Measure: 45-75 characters per line. A one-column text block spans the whole container otherwise. */
body.body .wiziblocks__item.wiziblocks__item .wizi-txt--one p { max-width: 68ch; margin-inline: auto; }

/* Surface strategy "alternate": Sections alternate between the page background and a tinted surface: the page reads in chapters. */
/* Hang these on a section with class_custom. The colour goes on __maxWidth: the theme repaints */
/* the page background there, so painting .wiziblocks__item alone shows only in the gutters. */
.wiziblocks__item.wz-alt .wiziblocks__item__maxWidth {
    background-color: var(--wz-surface);
    padding-block: var(--wz-space-l);
}

/* Elevation: layered shadows. A single shadow reads as cheap; the theme ships one at 75% opacity. */
body.body .wiziBtn:hover { box-shadow: var(--wz-elev-2); }

/* Visible focus ring (WCAG 2.4.7). Keyboard only: it never shows on a mouse click. */
body.body a:focus-visible,
body.body button:focus-visible,
body.body input:focus-visible,
body.body select:focus-visible,
body.body textarea:focus-visible,
body.body [tabindex]:focus-visible {
    outline: 3px solid var(--primary-color);
    outline-offset: 2px;
    border-radius: var(--wz-radius-s);
}

/* Every header variant pins itself on mobile, so an anchor or a keyboard focus
   lands under it without this (WCAG 2.4.11 Focus Not Obscured). Values measured
   in a browser, not guessed: docs/tools/header-sticky-probe.mjs. */
html { scroll-padding-top: 70px; }
/* This variant leaves the top free on a desktop. */
@media (min-width: 1024px) { html { scroll-padding-top: 0; } }

/* /wz-foundations */

/* Institut Riviera footer sauge et crème — 2026-11-12 */
body footer#footer.footer{background:#627368!important;color:#ffffff}
body #footer .footer__title{color:#f7f2ea;letter-spacing:.12em}
body #footer .footer__link,body #footer a.footer__info__text,body #footer .footer__info__text,body #footer a,body #footer i{color:#f7f2ea}
body #footer .footer__link:hover,body #footer a.footer__info__text:hover,body #footer a:hover{color:#e4d6bf}

/* Institut Riviera bandeau défilant (bloc texte avec la classe wz-marquee) — 2026-11-12 */
.wiziblocks__item.wz-marquee{overflow:hidden}
.wiziblocks__item.wz-marquee .wiziblocks__item__maxWidth{background:#88998c;padding:16px 0;overflow:hidden;max-width:none;width:100%}
body.body .wiziblocks__item.wz-marquee.wz-marquee p{display:inline-block;white-space:nowrap;max-width:none;margin:0;padding-left:100%;color:#ffffff;font-size:16px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;animation:wzRivieraMarquee 40s linear infinite}
body.body .wiziblocks__item.wz-marquee.wz-marquee p + p{display:none}
.wiziblocks__item.wz-marquee:hover p{animation-play-state:paused}
@keyframes wzRivieraMarquee{from{transform:translateX(0)}to{transform:translateX(-100%)}}
@media (prefers-reduced-motion: reduce){body.body .wiziblocks__item.wz-marquee.wz-marquee p{animation:none;padding-left:0;white-space:normal}}

/* Institut Riviera titres h3 en serif — 2026-11-12 */
body.body .wiziblocks__item.wiziblocks__item h3{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:1.45rem}

/* Boutons centrés — 2026-10-13 */
body .wiziblocks__item .wiziBtn__wrapper{display:flex;justify-content:center;text-align:center;width:100%}
body .wiziblocks__item .wiziBtn__wrapper .wiziBtn{margin-left:auto;margin-right:auto}

/* Institut Riviera cartes soins — 2026-11-12 */
.images-texts-link__cover[src=""]{display:none}
.images-texts-link__wrapper__lists__item{overflow:hidden;border-radius:6px}
.images-texts-link__wrapper__lists__item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,34,26,0) 35%,rgba(30,34,26,.72) 100%);transition:background .3s ease;pointer-events:none}
.images-texts-link__wrapper__lists__item:hover::after{background:linear-gradient(180deg,rgba(98,115,104,.4) 0%,rgba(98,115,104,.8) 100%)}
.images-texts-link__wrapper__lists__item::after{z-index:1;top:0;bottom:0;left:0;right:0;width:100%;height:100%}
.images-texts-link__wrapper__lists__item__text{z-index:2}
body.body .wiziblocks__item.wiziblocks__item .images-texts-link__wrapper__lists__item__text h2{font-size:clamp(1.05rem,.8rem + .6vw,1.35rem);letter-spacing:.1em;line-height:1.3;padding:0 10px;text-shadow:0 1px 8px rgba(0,0,0,.55)}
body.body .wiziblocks__item.wiziblocks__item h1{font-size:clamp(1.6rem,1rem + 1.6vw,2.4rem)}

/* Institut Riviera boutons sur fond vert et marges — 2026-11-12 */
.wiziblocks__item.wz-alt .wiziblocks__item__maxWidth{padding-inline:clamp(16px,3vw,48px);border-radius:8px}

/* Institut Riviera logo et accents marron clair — 2026-11-12 */
body.body header .header__logo__a .header__logo__a__img{max-height:110px !important;width:auto}
body.body header .header__logo .picture,body.body header .header__logo__a,body.body header .header__h1{height:auto !important;max-height:110px}
@media (max-width:767px){body.body header .header__logo .picture,body.body header .header__logo__a,body.body header .header__h1{max-height:56px}}
@media (max-width:767px){body.body header .header__logo__a .header__logo__a__img{max-height:56px !important}}
.wiziblocks__item.wz-alt .wiziblocks__item__maxWidth{background-color:#efe5d8}
body.body .wiziblocks__item.wiziblocks__item h3{color:#7e6248}
.rea__icon i{color:#a88a6c}
body #footer .footer__title{color:#e3d3bd}
body.body .powered,.powered__wrapper{background:#c8ad8d}
.powered__wrapper,.powered__wrapper a,.powered__wrapper p{color:#2e2a26}
.wiziblocks__item .images-texts-link__wrapper__lists__item{box-shadow:0 0 0 1px #c8ad8d}

/* Institut Riviera logo mobile — 2026-11-12 */
@media (max-width:1023px){body.body header .header__logo__a .header__logo__a__img{content:url("https://media.cdnws.com/_i/431176/537/1981/37/logo-institut-riviera.png")}}

/* Institut Riviera look moderne — 2026-11-12 */
/* Titres editoriaux : casse normale, grands, fins */
body.body .wiziblocks__item.wiziblocks__item h1,
body.body .wiziblocks__item.wiziblocks__item h2{text-transform:none;letter-spacing:-.01em;font-weight:400;line-height:1.12}
body.body .wiziblocks__item.wiziblocks__item h1{font-size:clamp(2.1rem,1.3rem + 2.4vw,3.4rem)}
body.body .wiziblocks__item.wiziblocks__item h2{font-size:clamp(1.8rem,1.2rem + 2vw,3rem)}
body.body .wiziblocks__item.wiziblocks__item .images-texts-link__wrapper__lists__item__text h2{font-size:clamp(1.25rem,1rem + .7vw,1.6rem);letter-spacing:0;text-transform:none}
/* Sur-titre du premier bloc */
body.body .wiziblocks .wiziblocks__item:first-child p:first-of-type em{font-style:normal;font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;color:#7e6248;display:inline-block;margin-bottom:6px}
/* Images arrondies */
body.body .wiziblocks__item picture img:not(.header__logo__a__img){border-radius:18px}
.wiziblocks__item .images-texts-link__wrapper__lists__item{border-radius:18px;box-shadow:none;aspect-ratio:4/5;height:auto}
.wiziblocks__item .images-texts-link__wrapper__lists__item a{display:block;position:absolute;inset:0}
.wiziblocks__item .images-texts-link__wrapper__lists__item .images-texts-link__wrapper__lists__item__img{position:absolute;inset:0;top:0;left:0;width:100%;height:100%;max-width:none;object-fit:cover;border-radius:0;transform:none}
.wiziblocks__item .images-texts-link__wrapper__lists__item .images-texts-link__wrapper__lists__item__text{top:auto;bottom:22px;left:0;right:0;padding:0 20px}
body.body .wiziblocks__item.wiziblocks__item .images-texts-link__wrapper__lists__item__text h2{text-align:left}
.images-texts-link__wrapper__lists__item img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.images-texts-link__wrapper__lists__item:hover img{transform:scale(1.06)}
/* Boutons */
body.body .wiziblocks__item .wiziBtn{text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:500;padding:16px 34px}
/* Menu compact */
@media (min-width:1024px){body.body .nav .nav__maxWidth a.nav__a.nav__itemlvl1{font-size:12px;text-transform:uppercase;letter-spacing:.1em;margin-left:4px;margin-right:4px}}
/* Bandeau defilant editorial */
body.body .wiziblocks__item.wz-marquee.wz-marquee p{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:22px;letter-spacing:.04em;text-transform:none;font-weight:400}
/* Apparition douce au defilement (CSS seul) */
@supports (animation-timeline: view()){
@media (prefers-reduced-motion: no-preference){
body.body .wiziblocks .wiziblocks__item:not(:first-child):not(.wz-marquee) .wiziblocks__item__maxWidth{animation:wzRivieraUp linear both;animation-timeline:view();animation-range:entry 0% entry 35%}
}}
@keyframes wzRivieraUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}

/* Institut Riviera menu deroulant Prestations — 2026-11-12 */
.wz-dd{position:relative;display:inline-block}
.wz-dd>a.nav__a::after{content:"";display:inline-block;width:6px;height:6px;margin-left:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-3px) rotate(45deg);transition:transform .25s}
.wz-dd__panel{display:none}
.wz-dd__panel a.nav__a{display:block;text-transform:none;letter-spacing:0;font-size:14px;white-space:nowrap;padding:10px 22px;margin:0}
@media (min-width:1024px){
.wz-dd__panel{position:absolute;top:100%;left:50%;transform:translate(-50%,8px);min-width:320px;background:#fffdf9;border:1px solid #e4d6bf;border-radius:14px;box-shadow:0 12px 32px rgba(46,42,38,.12);padding:10px 0;z-index:200;text-align:left}
.wz-dd:hover .wz-dd__panel,.wz-dd:focus-within .wz-dd__panel{display:block}
.wz-dd:hover>a.nav__a::after{transform:translateY(0) rotate(225deg)}
.wz-dd__panel a.nav__a:hover{background:#efe5d8;color:#627368}
.wz-dd::before{content:"";position:absolute;left:0;right:0;top:100%;height:12px}
}
@media (max-width:1023px){
.wz-dd{display:block}
.wz-dd.is-open .wz-dd__panel{display:block;padding-left:14px;border-left:2px solid #c8ad8d;margin:4px 0 8px 20px}
.wz-dd.is-open>a.nav__a::after{transform:translateY(0) rotate(225deg)}
}

/* Institut Riviera menu deroulant finitions — 2026-11-12 */
@media (min-width:1024px){body.body .nav .nav__maxWidth a.nav__a.nav__itemlvl1{margin-left:14px;margin-right:14px}}
body.body .nav .nav__maxWidth .wz-dd__panel a.nav__a.nav__itemlvl1{display:block;text-transform:none;letter-spacing:0;font-size:14px;margin:0;padding:9px 24px;line-height:1.4}

/* Institut Riviera menu deroulant mobile — 2026-11-12 */
@media (max-width:1023px){body.body .nav .nav__maxWidth .wz-dd__panel a.nav__a.nav__itemlvl1{white-space:normal;padding-right:16px}}

/* Institut Riviera bandeau defilant v2 — 2026-11-12 */
.wiziblocks__item.wz-marquee .wiziblocks__item__maxWidth{background:linear-gradient(90deg,#7f9184 0%,#88998c 50%,#7f9184 100%);padding:26px 0;border-top:1px solid #c8ad8d;border-bottom:1px solid #c8ad8d;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%)}
body.body .wiziblocks__item.wz-marquee.wz-marquee p{padding-left:0;font-size:clamp(20px,1.2rem + .8vw,30px);letter-spacing:.02em;animation:wzRivieraMarquee2 70s linear infinite;will-change:transform}
body.body .wiziblocks__item.wz-marquee.wz-marquee p span{display:inline-block;margin:0 .9em;font-style:normal;font-size:.6em;transform:translateY(-.25em)}
@keyframes wzRivieraMarquee2{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion: reduce){body.body .wiziblocks__item.wz-marquee.wz-marquee p{animation:none;white-space:normal}}

/* Institut Riviera avis Google — 2026-11-12 */
.wiziblocks__item.wz-avis .wiziblocks__item__maxWidth > *{gap:20px}
.wiziblocks__item.wz-avis [class*="witness"][class*="item"],.wiziblocks__item.wz-avis [style*="background"]{border-radius:18px}
.wiziblocks__item.wz-avis p{font-size:15px;line-height:1.6}
.wiziblocks__item.wz-avis p em{font-style:normal;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#7e6248}
