
/* Riviera Séjour V2 — shared editorial refinement */
:root{--rs-paper:#f5f0e8;--rs-ink:#172536;--rs-wine:#6b1e3a;--rs-gold:#b79567;--rs-line:rgba(23,37,54,.13);--rs-shadow:0 24px 70px rgba(22,35,48,.10)}
html{scroll-padding-top:92px}
body{background:var(--rs-paper);text-rendering:optimizeLegibility}
img{background:#e9e1d5}
/* Transparent brand assets must never sit on the loading placeholder colour, or they render as a cream box (footer crest, menu wordmark). */
img[src$=".svg"],img[src*="rs-logo"],img[src*="rs-word"],img[src*="rs-house"],img[src*="wordmark"],img[src*="logo"],.foot-crest-img,.nav-house,.nav-logo-img,.rsm-logo img,.rsm-logo svg{background:transparent!important}
::selection{background:#d9c3a4;color:#172536}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--rs-gold);outline-offset:4px}
/* elevated image finish without altering source photographs */
.card img,.journal img,.hero img,.lp-tile-img,.product-card img,.boutique-grid img{filter:saturate(.88) contrast(1.025) brightness(.98)}
.card,.note,.product-card,.journal{box-shadow:0 0 0 rgba(0,0,0,0);transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s}
.card:hover,.product-card:hover{transform:translateY(-4px);box-shadow:var(--rs-shadow)}
/* magazine rule and labels */
.rs-editorial-label{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--rs-wine)}
.rs-editorial-rule{height:1px;background:var(--rs-line);margin:0 5vw}
/* small-screen polish */
@media(max-width:850px){
  body{font-size:15px}
  .city-jump{top:60px;padding-left:18px;padding-right:18px}
  .hero h1{font-size:clamp(56px,19vw,92px)!important;line-height:.84!important}
  .hero-copy p{font-size:20px!important}
  .grid{gap:12px!important}.card{min-height:245px!important}
  footer{gap:20px;flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* 2026 full-site QA polish */
.nav-house,.nav-logo-img{object-fit:contain!important;background:transparent!important;border-radius:0!important}.nav-logo-link img{width:48px!important;height:48px!important}.top .guide-logo img{width:48px;height:48px;object-fit:contain}.nav a:focus-visible,.book:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid #7f5f33;outline-offset:4px}@media(max-width:760px){.nav-logo-link img,.top .guide-logo img{width:40px!important;height:40px!important}}

/* --- rs-tap-targets: WCAG 2.5.8 asks for 44px. Applied as a minimum height
   around the existing text so nothing moves visually. --- */
.cr-table a,.g-foot a,.g-more,.ev-link,.chip,.g-chip,.g-faq summary,
.lp-riv-card .more,.jcard .more,.wf-card,.bq-buy,.g-showmore,.club-x{
  min-height:44px;display:inline-flex;align-items:center;}
.wf-card{display:block;}
.cr-table td{padding-top:4px;padding-bottom:4px;}
.club-x{min-width:44px;justify-content:center;}
/* homepage hero links, carousel dots, cookie buttons and the inline text links
   in body copy all fell short of 44px */
.fse-cta,.fse-cta-box{min-height:44px;display:inline-flex;align-items:center;}
.lpq-dots button,.fse-dot,.fse-dots button{min-height:44px;min-width:44px;}
.ck-banner button,.cookie-banner button,.ghost,.cr-note a,.g-intro a,
.entry a,.lp-quote a,.tw-note a{min-height:44px;display:inline-flex;align-items:center;}
.entry p a,.cr-note a{display:inline;min-height:0;}
.entry p a,.cr-note a{padding:6px 0;}
/* carousel dots, outline buttons and the remaining inline links */
.fse-dots button,.fse-dots .on,[class*="-dots"] button{min-height:44px !important;
  min-width:44px !important;}
.btn-outline,.bq-more-btn,.bq-open-cta,.rev-more,.jexc a,.lp-riv-card a,
.ap-link,.apt-link{min-height:44px;display:inline-flex;align-items:center;}
main a:not([class]),.entry a:not([class]),section p a:not([class]){padding:8px 0;}
.g-faq summary{display:flex;}
