/*
 * MAMETAS VISUAL GUARDRAILS — 2026-10-07
 *
 * Conservative final layer. The visual baseline remains the proven site.css,
 * v3.css and shell from the early-October release. This file only protects the
 * cross-site invariants that were repeatedly broken by later build passes.
 *
 * Loaded as the LAST stylesheet by v23_css_foundation_2026_10_07.py.
 */

/* 1) One restrained editorial heading scale. Homepage-specific heroes remain
   untouched: this targets the recurring page/article families only.
   Scale, desktop / 390px: H1 55 / 38, section H2 34 / 26, card H3 26 / 22,
   intro 19 / 17; body text unchanged (the editorial guides' existing scale). */
.page-hero h1,
.article-hero h1,
.article h1,
.hotel-detail h1,
.culture-detail h1,
.core-hub-final .article-hero h1,
.core-hub-final .page-hero h1{
  max-width:18ch!important;
  font-family:"Fraunces",Georgia,serif!important;
  font-size:clamp(38px,4vw,55px)!important;
  font-weight:500!important;
  letter-spacing:-.045em!important;
  line-height:.98!important;
  text-transform:none!important;
  text-wrap:balance;
}

.section h2,
.v3-section .section-heading h2,
.article-body h2,
.hotel-style-heading h2,
.next-step h2,
.practical-title h2,
.explore-practical .practical-intro h2,
.family-section-heading{
  font-family:"Fraunces",Georgia,serif!important;
  font-size:clamp(28px,2.4vw,34px)!important;
  font-weight:500!important;
  letter-spacing:-.035em!important;
  line-height:1.08!important;
}
/* The homepage keeps its own, larger section titles (outside this scale). */
body.home-page .v3-section .section-heading h2{
  font-size:clamp(32px,3.6vw,46px)!important;
}

.card h3,
.hotel-choice-copy h3,
.stay-card h3,
.culture-card h3,
.decision-card h3,
.practical-link h3,
.article-body h3,
.hotel-engine-result h3{
  font-family:"Fraunces",Georgia,serif!important;
  font-size:clamp(24px,2.25vw,29px)!important;
  font-weight:500!important;
  line-height:1.1!important;
}

/* Editorial hierarchy calibration, October 2026:
   Let article/hotel/culture headings use their established 34px/25px
   template sizes instead of the 46px/29px global emergency rule.
   This deliberately leaves hero H1, home headings and special
   components alone. No extra competing !important heading layer. */

/* 2) Buttons keep each family's colour language, but share geometry.
   Full-width is reserved for mobile decision controls. */
.button,
.btn,
.cta-button,
.rate-link,
.affiliate-hotel-link,
.hotel-engine-actions .button,
.engine-submit-row .button,
.chooser-actions .button,
.chooser-escape .button,
.hotel-card-actions .rate-link{
  width:auto!important;
  min-width:0!important;
  min-height:44px!important;
  height:auto!important;
  flex:0 0 auto!important;
  box-sizing:border-box!important;
  padding:11px 16px!important;
  border-radius:0!important;
  font-size:11px!important;
  font-weight:700!important;
  letter-spacing:.08em!important;
  line-height:1.15!important;
}

.button,
.btn,
.cta-button,
.rate-link,
.affiliate-hotel-link,
.hotel-card-actions .rate-link{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}

/* 3) Hotel cards: same media geometry, same internal rhythm, no stretched
   landscape strips. The 4:3 ratio is the pre-audit visual baseline. */
.hotel-card,
.hotel-choice-card{
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden;
}

.hotel-card-media,
.hotel-choice-media{
  display:block!important;
  position:relative!important;
  width:100%!important;
  height:auto!important;
  flex:0 0 auto!important;
  aspect-ratio:4/3!important;
  overflow:hidden!important;
}

.hotel-card-media>img,
.hotel-choice-media>img,
.hotel-card-media>.batch-thumb,
.hotel-choice-media>.batch-thumb{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-height:100%!important;
  object-fit:cover!important;
}

.hotel-card-body,
.hotel-choice-copy{
  display:flex!important;
  flex:1 1 auto!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  padding:24px!important;
}

.hotel-card-body>p,
.hotel-choice-copy>p{
  width:100%;
}

.hotel-card .more,
.hotel-choice-copy .rate-link,
.hotel-choice-copy .catch{
  margin-top:auto;
}

.hotel-choice-tags .hotel-price-band,
.hotel-choice-tags span,
.hotel-choice-copy>.hotel-price-band{
  border-radius:0!important;
}

.hotel-card-body>.btn,
.hotel-choice-copy>.btn{
  margin-top:12px!important;
}
.hotel-card-body>.btn+.btn,
.hotel-choice-copy>.btn+.btn{
  margin-top:8px!important;
}

/* Event-guide hotel cards (IRONMAN, MIPIM, Carnival): "Google Maps · Mametas
   page" is one link group, spaced from the description above and from the
   booking button below. Both links take the editorial look already used for
   this pair in the Solo guides (13px, teal, gold rule, no extra underline).
   The " · " text separator is not rendered (font-size:0): the gap separates
   the links, so a dot can never be left alone at a line break. The hidden
   separator still sits between the links, so the column gap counts twice
   (2 x 9px = 18px between the two links). */
.hotel-card-body>p.hotel-card-links{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:6px 9px;
  margin:12px 0 22px;
  font-size:0;
}
body .hotel-card .hotel-card-body>p.hotel-card-links>a[href]{
  padding:0 0 1px!important;
  border-bottom:1px solid #b9903f!important;
  color:#0e5265!important;
  font:600 13px/1.55 Inter,Arial,sans-serif!important;
  text-decoration:none!important;
}

@media(min-width:761px){
  .hotel-choice-copy .rate-link,
  .hotel-choice-copy>.btn{
    align-self:flex-start!important;
    max-width:100%!important;
    white-space:nowrap!important;
  }
}

/* 4) Homepage journey spine: navigation cells must never be turned into two
   adjacent navy CTA slabs by global label normalisation. */
.home-journey-spine{
  border-top:1px solid var(--line,rgba(21,58,101,.16))!important;
  border-bottom:1px solid var(--line,rgba(21,58,101,.16))!important;
  background:rgba(255,253,248,.72)!important;
}
.home-journey-inner{
  display:grid!important;
  grid-template-columns:minmax(150px,.62fr) repeat(4,minmax(0,1fr))!important;
  align-items:stretch!important;
}
.home-journey-label{
  display:flex!important;
  align-items:center!important;
  padding:16px 18px 16px 0!important;
  color:var(--ink-soft,#3f4b63)!important;
  font-size:10px!important;
  font-weight:800!important;
  letter-spacing:.14em!important;
  line-height:1.4!important;
  text-transform:uppercase!important;
}
.home-journey-inner>a,
.home-journey-inner>a.btn,
.home-journey-inner>a.btn--primary{
  width:auto!important;
  min-width:0!important;
  min-height:82px!important;
  padding:13px 16px!important;
  display:grid!important;
  grid-template-columns:auto 1fr!important;
  column-gap:10px!important;
  align-content:center!important;
  border:0!important;
  border-left:1px solid var(--line,rgba(21,58,101,.16))!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--ink,#153a65)!important;
  font-size:inherit!important;
  font-weight:400!important;
  letter-spacing:0!important;
  line-height:normal!important;
  text-align:left!important;
  text-decoration:none!important;
  text-transform:none!important;
}
.home-journey-inner>a:hover,
.home-journey-inner>a:focus-visible,
.home-journey-inner>a.btn:hover,
.home-journey-inner>a.btn:focus-visible{
  background:var(--white,#fffdf8)!important;
  color:var(--ink,#153a65)!important;
}
.home-journey-inner>a b{
  grid-row:1/3!important;
  color:var(--coral,#d96c4e)!important;
  font-family:"Fraunces",Georgia,serif!important;
  font-size:16px!important;
  font-style:italic!important;
  font-weight:500!important;
}
.home-journey-inner>a strong{
  color:var(--ink,#153a65)!important;
  font-family:"Fraunces",Georgia,serif!important;
  font-size:18px!important;
  font-weight:500!important;
  letter-spacing:0!important;
  line-height:1.08!important;
  text-transform:none!important;
}
.home-journey-inner>a small{
  margin-top:4px!important;
  color:var(--ink-soft,#3f4b63)!important;
  font-size:11px!important;
  font-weight:400!important;
  letter-spacing:0!important;
  line-height:1.4!important;
  text-transform:none!important;
}

/* 5) What-to-book / Que réserver: individual decisions read as intentional
   editorial panels instead of loose text blocks. */
.practical-guide-page .article>.place{
  margin:16px 0!important;
  padding:24px!important;
  border:1px solid var(--line,rgba(21,58,101,.16))!important;
  background:rgba(255,253,248,.42)!important;
}
.practical-guide-page .article>.place .address{
  margin:0 0 9px!important;
  font-size:10px!important;
  font-weight:700!important;
  letter-spacing:.13em!important;
  line-height:1.4!important;
}
.practical-guide-page .article>.place h3{
  margin:0 0 10px!important;
}
.practical-guide-page .article>.place p:last-child{
  margin-bottom:0!important;
}
.practical-guide-page .booking-highlight-visual{
  margin:18px 0 20px!important;
}
.practical-guide-page .booking-highlight-visual img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  aspect-ratio:16/9!important;
  object-fit:cover!important;
}
.practical-guide-page .article>.place .spot-logistics{
  margin-top:16px!important;
  padding-top:13px!important;
  border-top:1px solid var(--line,rgba(21,58,101,.16))!important;
}
.practical-guide-page .fact-grid{
  gap:14px!important;
}

/* 6) Undo one late shell experiment: destination section anchors are useful,
   but do not need pill styling to be touchable. */
body.rg-destination .article-aside a{
  border-radius:0!important;
}

@media(max-width:1050px){
  .home-journey-inner{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .home-journey-label{
    grid-column:1/-1!important;
    padding:13px 0!important;
    border-bottom:1px solid var(--line,rgba(21,58,101,.16))!important;
  }
  .home-journey-inner>a:nth-of-type(odd){
    border-left:0!important;
  }
  .home-journey-inner>a{
    border-bottom:1px solid var(--line,rgba(21,58,101,.16))!important;
  }
}

@media(max-width:760px){
  .page-hero h1,
  .article-hero h1,
  .article h1,
  .hotel-detail h1,
  .culture-detail h1,
  .core-hub-final .article-hero h1,
  .core-hub-final .page-hero h1{
    max-width:none!important;
    font-size:clamp(34px,9.8vw,38px)!important;
    line-height:1!important;
  }

  .section h2,
  .v3-section .section-heading h2,
  .article h2,
  .article-body h2,
  .hotel-detail h2,
  .culture-detail h2,
  .hotel-style-heading h2,
  .next-step h2,
  .practical-title h2,
  .family-section-heading{
    font-size:clamp(24px,6.7vw,26px)!important;
  }
  body.home-page .v3-section .section-heading h2{
    font-size:clamp(29px,8vw,36px)!important;
  }
  /* The "Sources vérifiées" heading is a small label (as on desktop), not a
     section title: the list above must not enlarge it on hotel and
     restaurant pages. */
  .sources>h2{
    font-size:11px!important;
  }

  .home-journey-inner{
    grid-template-columns:1fr!important;
  }
  .home-journey-label{
    padding-left:0!important;
  }
  .home-journey-inner>a,
  .home-journey-inner>a.btn,
  .home-journey-inner>a.btn--primary{
    min-height:68px!important;
    padding:11px 4px!important;
    border-left:0!important;
  }

  .practical-guide-page .article>.place{
    margin:12px 0!important;
    padding:19px!important;
  }

  .hotel-grid,
  .hotel-choice-grid{
    grid-template-columns:1fr!important;
  }

  .hotel-card-body>.btn,
  .engine-submit-row .button,
  .hotel-engine-actions .button,
  .chooser-actions .button{
    width:100%!important;
  }
}

/* 7) Mobile editorial integrity — keep CTAs, cover images and navigation stable. */
.article-body p > a.btn[href*="/hotels/finder/"],
.article-body p > a.button[href*="/hotels/finder/"],
.article-body p > a.btn[href*="/en/hotels/finder/"],
.article-body p > a.button[href*="/en/hotels/finder/"],
.article-body .editorial-tool-bridge > a,
p.destination-hotel-fit-cta > a{
  display:table!important;
  width:auto!important;
  min-height:0!important;
  margin:12px 0 0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:var(--blue-deep,#0e5265)!important;
  font-size:inherit!important;
  font-weight:700!important;
  letter-spacing:0!important;
  line-height:1.5!important;
  text-transform:none!important;
  text-decoration:underline!important;
  text-underline-offset:3px!important;
}

@media(max-width:1080px){
  body.menu-open{
    position:fixed!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    overflow:hidden!important;
  }

  .mobile-menu,
  .mobile-nav{
    position:fixed!important;
    inset:0!important;
    z-index:10000!important;
    width:100vw!important;
    height:100dvh!important;
    min-height:100vh!important;
    box-sizing:border-box!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    background:var(--paper,var(--cream,#f4efe4))!important;
  }

  .mobile-menu{
    display:block!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }

  .mobile-menu.open{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }

  .mobile-menu-top,
  .mobile-nav-top{
    position:sticky!important;
    top:0!important;
    z-index:2!important;
    background:var(--paper,var(--cream,#f4efe4))!important;
  }

  body.menu-open > main,
  body.menu-open > footer{
    visibility:hidden!important;
  }
}

@media(max-width:760px){
  .article-cover{
    width:min(calc(100% - 2 * var(--gutter,20px)),var(--max,1240px))!important;
    height:auto!important;
    aspect-ratio:16/9!important;
    margin:0 auto!important;
    overflow:hidden!important;
  }

  .article-cover img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
  }

  .article-cover + .v3-section{
    padding-top:36px!important;
  }
}

/* 8) Global visual recipe — 2026-10-09.
   These rules close repeated family-level defects found during page-by-page QA. */

/* Affiliate disclosure must read as a separate legal/meta line, never as button copy. */
.affiliate-note,
.affiliate-disclosure,
.affiliate-inline,
.mametas-affiliate-disclosure{
  display:block!important;
  margin-top:18px!important;
  padding-top:0!important;
  max-width:760px!important;
  color:var(--ink-soft,#3f4b63)!important;
  font-size:12px!important;
  line-height:1.55!important;
}

/* Google Maps links use one visual language everywhere. */
a[href*="google.com/maps"],
a[href*="maps.app.goo.gl"]{
  display:inline!important;
  min-height:0!important;
  padding:0 0 2px!important;
  border:0!important;
  border-bottom:1px solid var(--coral,#d96c4e)!important;
  background:transparent!important;
  color:var(--blue-deep,#0e5265)!important;
  font-weight:700!important;
  text-decoration:none!important;
}

/* Riviera Guide: one compact hotel-card grammar regardless of 2 or 3 picks. */
.rg-v3-final .itinerary-stay-prompt{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important;
  gap:14px!important;
  align-items:stretch!important;
  margin:28px 0 30px!important;
}
.rg-v3-final .article-body .itinerary-stay-prompt>a{
  min-height:0!important;
  height:100%!important;
  padding:18px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
}
.rg-v3-final .itinerary-stay-prompt img{
  width:calc(100% + 36px)!important;
  height:auto!important;
  aspect-ratio:3/2!important;
  margin:-18px -18px 18px!important;
  object-fit:cover!important;
}
.rg-v3-final .itinerary-stay-prompt span{
  display:block!important;
  margin:0 0 9px!important;
  color:var(--coral,#d96c4e)!important;
  font-size:9.5px!important;
  font-weight:700!important;
  letter-spacing:.13em!important;
  line-height:1.35!important;
  text-transform:uppercase!important;
}
.rg-v3-final .itinerary-stay-prompt strong{
  display:block!important;
  margin:0!important;
  font-family:"Fraunces",Georgia,serif!important;
  font-size:clamp(22px,2.15vw,27px)!important;
  font-weight:500!important;
  line-height:1.08!important;
}
.rg-v3-final .itinerary-stay-prompt small{
  display:block!important;
  margin:12px 0 0!important;
  color:var(--ink-soft,#3f4b63)!important;
  font-size:12.5px!important;
  line-height:1.5!important;
}

/* Monaco late practical block should look intentional rather than like loose prose. */
.rg-v3-final .ux-contained-practical{
  width:min(calc(100% - 40px),750px)!important;
  margin:34px auto!important;
  padding:24px 26px!important;
  border:1px solid var(--line,rgba(21,58,101,.16))!important;
  border-left:4px solid var(--blue,#176f83)!important;
  background:rgba(255,253,248,.48)!important;
}
.rg-v3-final .ux-contained-practical span{
  display:block!important;
  margin:0 0 10px!important;
  color:var(--blue-deep,#0e5265)!important;
  font-size:10px!important;
  font-weight:800!important;
  letter-spacing:.14em!important;
  line-height:1.3!important;
  text-transform:uppercase!important;
}
.rg-v3-final .ux-contained-practical p{
  margin:0!important;
  color:var(--ink-soft,#3f4b63)!important;
  font-size:15px!important;
  line-height:1.6!important;
}

/* Legacy Riviera Guide pages (notably Cannes/Nice) keep visuals centred on the same axis. */
.rg-legacy-final article.article{
  width:min(calc(100% - 48px),960px)!important;
  max-width:960px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
}
.rg-legacy-final .fact-grid,
.rg-legacy-final .culture-hero-media,
.rg-legacy-final .hotel-grid,
.rg-legacy-final .hotel-choice-grid{
  width:100%!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}

/* Hotel grids: equal-height cards and one action zone at the bottom. */
.hotel-grid,
.hotel-choice-grid{
  align-items:stretch!important;
}
.hotel-card,
.hotel-choice-card{
  height:100%!important;
}
.hotel-card-body,
.hotel-choice-copy{
  min-height:0!important;
  height:100%!important;
}
.hotel-card-actions{
  width:100%!important;
  margin-top:auto!important;
  padding-top:18px!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:8px!important;
  align-items:start!important;
  justify-items:start!important;
}
.hotel-card-actions .btn,
.hotel-card-actions .rate-link{
  width:auto!important;
  max-width:100%!important;
  margin:0!important;
  position:static!important;
  transform:none!important;
}
.hotel-card-body>.affiliate-hotel-link,
.hotel-card-body>.rate-link,
.hotel-card-body>a.btn:first-of-type,
.hotel-choice-copy>.affiliate-hotel-link,
.hotel-choice-copy>.rate-link,
.hotel-choice-copy>a.btn:first-of-type{
  margin-top:auto!important;
}
.hotel-card-body>a.btn+ a.btn,
.hotel-choice-copy>a.btn+ a.btn{
  margin-top:8px!important;
}

/* Riviera Fit shortlist: cards keep the media slot and actions aligned. */
.chooser-hotel-card{
  display:flex!important;
  height:100%!important;
  min-height:0!important;
  flex-direction:column!important;
}
.chooser-hotel-media{
  flex:0 0 auto!important;
  width:calc(100% + 40px)!important;
  height:auto!important;
  aspect-ratio:3/2!important;
  margin:-20px -20px 18px!important;
  overflow:hidden!important;
}
.chooser-hotel-media img,
.chooser-hotel-media .batch-thumb{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
}
/* Riviera Fit also runs on Préparer and Plan, which do not load
   hotel-batch.css: the hotel photos drawn from the shared sprite need the
   sprite image here too, or the card shows an empty box. */
.chooser-hotel-media .batch-thumb{
  display:block;
  background-color:var(--ink,#153a65);
  background-image:url('/assets/hotels/batch-sprite.jpg?v=3.0');
  background-repeat:no-repeat;
  background-size:600% 500%;
}
.chooser-hotel-media .batch-thumb.batch-thumb-13{
  background-image:url('/assets/hotels/batch-sprite-2026-09-13.jpg?v=2.0');
  background-size:500% 900%;
}
.chooser-hotel-card>p{
  margin-bottom:14px!important;
}
.chooser-hotel-cta{
  margin-top:auto!important;
  padding-top:8px!important;
}

/* Destination Hotel Fit bridge: exactly one visual grammar when the build keeps it. */
body.rg-destination .article-body .destination-hotel-fit-bridge,
body.rg-destination .article-body p.destination-hotel-fit-cta{
  margin:24px 0 30px!important;
  padding:18px 0!important;
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  gap:14px 18px!important;
  border-top:1px solid var(--line,rgba(21,58,101,.16))!important;
  border-bottom:1px solid var(--line,rgba(21,58,101,.16))!important;
}
body.rg-destination .article-body .destination-hotel-fit-bridge>a,
body.rg-destination .article-body p.destination-hotel-fit-cta>a,
body.rg-destination .article-body p>a[href*="/hotels/finder/"]{
  flex:0 0 auto!important;
  margin:0!important;
}

/* Explore/intent hotel cards: reserve the bottom of each card for actions. */
.intent-detail .hotel-card,
.explore-page .hotel-card,
.solo-female-page .hotel-card{
  height:100%!important;
}
.intent-detail .hotel-card-body,
.explore-page .hotel-card-body,
.solo-female-page .hotel-card-body{
  display:flex!important;
  flex-direction:column!important;
  height:100%!important;
}
.intent-detail .hotel-card-body .hotel-card-actions,
.explore-page .hotel-card-body .hotel-card-actions,
.solo-female-page .hotel-card-body .hotel-card-actions{
  margin-top:auto!important;
}

@media(max-width:760px){
  .rg-v3-final .itinerary-stay-prompt{
    grid-template-columns:1fr!important;
  }
  .rg-legacy-final article.article{
    width:min(calc(100% - 40px),960px)!important;
  }
}


/* MAMETAS QA 2026-10-09 hotel CTA wrapping.
   Long affiliate labels must wrap within their own grid card rather than
   intrude into the neighbouring card at desktop widths. */
.hotel-choice-copy .rate-link,
.hotel-choice-copy > .btn,
.hotel-card-actions .rate-link{
  box-sizing:border-box!important;
  max-width:100%!important;
  white-space:normal!important;
  overflow-wrap:break-word!important;
  text-align:center!important;
}

/* Antibes sea-front shortlist has two establishments. A two-column grid
   gives each rate action a full, legible line without inflating its height. */
@media (min-width:981px){
  #riviera-bord-de-mer .hotel-choice-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}


/* MAMETAS RECIPE: DESTINATION AND ACTIVITY FAMILY — 2026-10-09
   Shared final layer; keep scoped to the affected component families. */

/* One deliberate, in-flow Hotel Fit bridge following the accommodation section. */
body.rg-destination .article-body .destination-hotel-fit-single {
  box-sizing:border-box!important;
  width:100%!important;
  max-width:750px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  flex-wrap:wrap!important;
  gap:14px 24px!important;
  margin:26px 0 34px!important;
  padding:20px 0!important;
  border-top:1px solid var(--line,rgba(21,58,101,.16))!important;
  border-bottom:1px solid var(--line,rgba(21,58,101,.16))!important;
  background:transparent!important;
}
body.rg-destination .article-body .destination-hotel-fit-single p {
  flex:1 1 260px!important;
  min-width:0!important;
  margin:0!important;
  color:var(--ink-soft,#3f4b63)!important;
  font:500 14px/1.5 Inter,Arial,sans-serif!important;
}
body.rg-destination .article-body .destination-hotel-fit-single a.destination-hotel-fit-action {
  flex:0 0 auto!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  max-width:100%!important;
  min-height:44px!important;
  margin:0!important;
  padding:12px 18px!important;
  background:#153a65!important;
  border:1px solid #153a65!important;
  color:#fffdf8!important;
  text-decoration:none!important;
  font:700 11px/1.35 Inter,Arial,sans-serif!important;
  letter-spacing:.07em!important;
  text-transform:uppercase!important;
  position:static!important;
  transform:none!important;
}

/* All five practical-tip destination variants have the same reading rhythm.
   The original generic .day-card rules inflated h3 and collapsed the gap
   between heading and body. Treat tips as three peers, not giant headings. */
body.rg-destination .practical-decision-layer .section-heading {
  display:block!important;
  max-width:850px!important;
  margin:0 0 25px!important;
}
body.rg-destination .practical-decision-layer .section-heading h2 {
  margin:8px 0 12px!important;
  padding:0!important;
  font-family:"Fraunces",Georgia,serif!important;
  font-size:clamp(29px,3vw,38px)!important;
  font-weight:500!important;
  line-height:1.12!important;
}
body.rg-destination .practical-decision-layer .section-heading > p {
  margin:0 0 10px!important;
  font-size:15px!important;
  line-height:1.6!important;
}
body.rg-destination .practical-decision-layer .day-grid {
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  align-items:stretch!important;
  gap:16px!important;
  margin:0!important;
}
body.rg-destination .practical-decision-layer .day-card {
  box-sizing:border-box!important;
  min-width:0!important;
  height:100%!important;
  margin:0!important;
  padding:20px 20px 22px!important;
  border:1px solid var(--line,rgba(21,58,101,.16))!important;
  border-left:3px solid #b9903f!important;
  background:rgba(255,253,248,.65)!important;
}
body.rg-destination .practical-decision-layer .day-card h3 {
  margin:0 0 13px!important;
  padding:0!important;
  font-family:"Fraunces",Georgia,serif!important;
  font-size:clamp(20px,1.7vw,23px)!important;
  font-weight:500!important;
  line-height:1.18!important;
}
body.rg-destination .practical-decision-layer .day-card p {
  margin:0!important;
  padding:0!important;
  font:400 14px/1.58 Inter,Arial,sans-serif!important;
  color:var(--ink-soft,#3f4b63)!important;
}
body.rg-destination .practical-decision-layer .verdict-box {
  margin:22px 0 0!important;
  padding:24px 28px!important;
}
body.rg-destination .practical-decision-layer .verdict-box p {
  margin:10px 0 0!important;
  font-family:"Fraunces",Georgia,serif!important;
  font-size:clamp(19px,2vw,25px)!important;
  line-height:1.38!important;
}

/* Escapades / Day trips: identical button baseline within the 2-column
   GetYourGuide grid; CTA height no longer follows paragraph length. */
.mametas-activities .mametas-activity-grid {
  align-items:stretch!important;
}
.mametas-activities .mametas-activity-grid > .mametas-activity-card {
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
  height:100%!important;
}
.mametas-activities .mametas-activity-grid > .mametas-activity-card > img {
  flex:0 0 auto!important;
}
.mametas-activities .mametas-activity-grid > .mametas-activity-card > .mametas-activity-copy {
  box-sizing:border-box!important;
  display:flex!important;
  flex:1 1 auto!important;
  min-height:0!important;
  flex-direction:column!important;
  align-items:flex-start!important;
}
.mametas-activities .mametas-activity-grid .mametas-activity-copy > .mametas-activity-cta {
  box-sizing:border-box!important;
  max-width:100%!important;
  margin-top:auto!important;
  padding-top:12px!important;
  align-self:flex-start!important;
  white-space:normal!important;
  text-align:center!important;
}
/* The action reserves its own vertical breathing room without changing
   the clickable button height or the affiliate destination. */
.mametas-activities .mametas-activity-grid .mametas-activity-copy > .mametas-catch {
  margin-bottom:20px!important;
}
@media(max-width:920px) {
  body.rg-destination .practical-decision-layer .day-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:650px) {
  body.rg-destination .practical-decision-layer .day-grid {
    grid-template-columns:1fr!important;
  }
  body.rg-destination .article-body .destination-hotel-fit-single {
    align-items:stretch!important;
    gap:13px!important;
  }
  body.rg-destination .article-body .destination-hotel-fit-single a.destination-hotel-fit-action {
    width:100%!important;
  }
  body.rg-destination .practical-decision-layer .day-card {
    height:auto!important;
    padding:18px!important;
  }
}


/* HOTEL FIT FRONT-OF-TOOL PRESENTATION — 2026-10-09
   One full-width editorial intro, one anchored base-decision bridge.
   Shared EN/FR tool family only; does not alter chooser controls. */
body.hotel-fit-page .v3-section .section-heading.hotel-fit-heading {
  display:block!important;
  width:100%!important;
  max-width:960px!important;
  margin:0 0 12px!important;
  padding:0!important;
}
body.hotel-fit-page .v3-section .hotel-fit-heading > div {
  display:block!important;
  width:100%!important;
  max-width:100%!important;
}
body.hotel-fit-page .v3-section .hotel-fit-heading h2 {
  max-width:27ch!important;
  margin:8px 0 0!important;
  font-size:clamp(28px,2.4vw,34px)!important;
  line-height:1.12!important;
}
body.hotel-fit-page .v3-section p.hotel-fit-intro-note {
  max-width:74ch!important;
  margin:0 0 35px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:var(--ink-soft,#3f4b63)!important;
  font:400 14px/1.63 Inter,Arial,sans-serif!important;
}
body.hotel-fit-page .engine-controls fieldset:first-child {
  min-width:0!important;
}
body.hotel-fit-page .engine-controls .engine-base-gate {
  box-sizing:border-box!important;
  width:100%!important;
  max-width:960px!important;
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:13px 20px!important;
  margin:6px 0 17px!important;
  padding:15px 19px!important;
  border-left:3px solid var(--coral,#d96c4e)!important;
  background:rgba(185,144,63,.055)!important;
}
body.hotel-fit-page .engine-controls .engine-base-gate p.engine-base-gate-copy {
  flex:1 1 320px!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  color:var(--ink-soft,#3f4b63)!important;
  font:400 14px/1.5 Inter,Arial,sans-serif!important;
}
body.hotel-fit-page .engine-controls .engine-base-gate a.engine-base-gate-cta {
  position:static!important;
  inset:auto!important;
  transform:none!important;
  box-sizing:border-box!important;
  display:inline-flex!important;
  flex:0 0 auto!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:44px!important;
  width:auto!important;
  max-width:100%!important;
  margin:0!important;
  padding:12px 18px!important;
  background:#153a65!important;
  border:1px solid #153a65!important;
  border-radius:0!important;
  color:#fffdf8!important;
  text-decoration:none!important;
  text-align:center!important;
  font:700 11px/1.3 Inter,Arial,sans-serif!important;
  letter-spacing:.06em!important;
  text-transform:uppercase!important;
  white-space:normal!important;
}
body.hotel-fit-page .engine-controls .engine-base-gate a.engine-base-gate-cta:hover,
body.hotel-fit-page .engine-controls .engine-base-gate a.engine-base-gate-cta:focus-visible {
  background:#1f4a7c!important;
  border-color:#1f4a7c!important;
}
@media(max-width:680px) {
  body.hotel-fit-page .v3-section .hotel-fit-heading h2 {
    max-width:100%!important;
    font-size:clamp(24px,6.7vw,26px)!important;
  }
  body.hotel-fit-page .v3-section p.hotel-fit-intro-note {
    font-size:14px!important;
    margin-bottom:26px!important;
  }
  body.hotel-fit-page .engine-controls .engine-base-gate {
    flex-direction:column!important;
    align-items:stretch!important;
    padding:15px 16px!important;
    gap:12px!important;
  }
  body.hotel-fit-page .engine-controls .engine-base-gate p.engine-base-gate-copy {
    flex:0 1 auto!important;
  }
  body.hotel-fit-page .engine-controls .engine-base-gate a.engine-base-gate-cta {
    width:100%!important;
    flex:0 0 auto!important;
  }
}


/* MAMETAS 2026-10-10 RECIPE / ONE ACCENT, ONE DESTINATION SYSTEM
   Shared styles deliberately use component selectors, rather than relying on
   body.rg-destination (missing on some legacy and dynamically injected pages). */

/* Riviera Fit is a PRIMARY action: use Mametas terracotta, not a third colour. */
.home-hero .hero-actions > .button:not(.secondary),
.chooser-signature-section .chooser-signature-primary,
.chooser-submit-row > .button,
.chooser-submit-row > [data-chooser-submit],
body.hotel-fit-page .engine-controls .engine-base-gate a.engine-base-gate-cta {
  background:#ad492f!important;
  border:1px solid #ad492f!important;
  color:#fff!important;
  border-radius:0!important;
  text-decoration:none!important;
}
.home-hero .hero-actions > .button:not(.secondary):hover,
.chooser-signature-section .chooser-signature-primary:hover,
.chooser-submit-row > .button:not(:disabled):hover,
body.hotel-fit-page .engine-controls .engine-base-gate a.engine-base-gate-cta:hover {
  background:#8d3721!important;
  border-color:#8d3721!important;
  color:#fff!important;
}

/* Destination day-planning section: true sibling cards and measurable
   heading/body spacing even when the destination body has no extra classes. */
.practical-decision-layer > .wrap {
  max-width:1160px!important;
  margin-inline:auto!important;
}
.practical-decision-layer .section-heading {
  display:block!important;
  max-width:850px!important;
  margin:0 0 26px!important;
}
.practical-decision-layer .section-heading > h2 {
  display:block!important;
  margin:9px 0 13px!important;
  padding:0!important;
  font:500 clamp(28px,3vw,38px)/1.14 "Fraunces",Georgia,serif!important;
}
.practical-decision-layer .section-heading > p:not(.eyebrow) {
  margin:0!important;
  font:400 14px/1.6 Inter,Arial,sans-serif!important;
}
.practical-decision-layer .day-grid {
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  align-items:stretch!important;
  gap:18px!important;
  margin:0!important;
}
.practical-decision-layer .day-grid > .day-card {
  display:block!important;
  box-sizing:border-box!important;
  min-width:0!important;
  margin:0!important;
  padding:23px 21px 25px!important;
  border:1px solid rgba(21,58,101,.17)!important;
  border-top:3px solid #b9903f!important;
  background:rgba(255,253,248,.76)!important;
}
.practical-decision-layer .day-grid > .day-card > h3 {
  margin:0 0 15px!important;
  padding:0!important;
  font:500 clamp(19px,1.7vw,23px)/1.25 "Fraunces",Georgia,serif!important;
}
.practical-decision-layer .day-grid > .day-card > p {
  margin:0!important;
  padding:0!important;
  font:400 14px/1.6 Inter,Arial,sans-serif!important;
  color:#3f4b63!important;
}
.practical-decision-layer .verdict-box {
  margin:22px 0 0!important;
  padding:24px 27px!important;
}
.practical-decision-layer .verdict-box p {
  margin:13px 0 0!important;
  font:500 clamp(19px,2vw,24px)/1.4 "Fraunces",Georgia,serif!important;
}
@media(max-width:850px) {
  .practical-decision-layer .day-grid {
    grid-template-columns:1fr!important;
  }
  .practical-decision-layer .day-grid > .day-card {
    padding:20px!important;
  }
}

/* Affiliate disclosure: one small explanation per GetYourGuide module, not
   one per recommendation. Margin belongs AFTER the clickable CTA. */
.mametas-activity-inline .mametas-activity-copy > .mametas-affiliate-disclosure,
.mametas-activities > .mametas-affiliate-disclosure,
.mametas-activities .mametas-affiliate-disclosure {
  box-sizing:border-box!important;
  clear:both!important;
  max-width:68ch!important;
  margin:24px 0 0!important;
  padding:0!important;
  font:400 11px/1.65 Inter,Arial,sans-serif!important;
  color:#626c7b!important;
  opacity:1!important;
}
.mametas-activity-inline .mametas-activity-cta {
  margin-bottom:0!important;
}

/* Accommodation bridge: never leave a naked Hotel Fit button at the foot
   of destination prose. Applicable to BOTH older .article and V3 layouts. */
.article .destination-hotel-fit-single,
.article-body .destination-hotel-fit-single {
  display:flex!important;
  flex-flow:row wrap!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px 18px!important;
  max-width:750px!important;
  margin:27px 0 31px!important;
  padding:19px 0!important;
  border-top:1px solid rgba(21,58,101,.19)!important;
  border-bottom:1px solid rgba(21,58,101,.19)!important;
}
.article .destination-hotel-fit-single p,
.article-body .destination-hotel-fit-single p {
  flex:1 1 280px!important;
  margin:0!important;
  font:400 14px/1.6 Inter,Arial,sans-serif!important;
}
.article .destination-hotel-fit-single a,
.article-body .destination-hotel-fit-single a {
  display:inline-flex!important;
  justify-content:center!important;
  align-items:center!important;
  flex:0 0 auto!important;
  min-height:44px!important;
  margin:0!important;
  padding:11px 17px!important;
  background:#ad492f!important;
  border:1px solid #ad492f!important;
  color:#fff!important;
  font:700 11px/1.3 Inter,Arial,sans-serif!important;
  text-transform:uppercase!important;
  letter-spacing:.07em!important;
  text-decoration:none!important;
  white-space:normal!important;
}
@media(max-width:650px){
  .article .destination-hotel-fit-single a,
  .article-body .destination-hotel-fit-single a { width:100%!important; }
}

/* 'Sources checked' is a quiet, full-width final reference section,
   especially on legacy Cannes/Nice guides where .sources had no layout. */
.article .sources,
.article-body .sources,
.article .destination-sources,
.article-body .destination-sources {
  display:block!important;
  clear:both!important;
  float:none!important;
  width:100%!important;
  max-width:750px!important;
  margin:37px 0 16px!important;
  padding:18px 0 0!important;
  border-top:1px solid rgba(21,58,101,.2)!important;
  background:transparent!important;
}
.article .sources > h2,
.article-body .sources > h2,
.intent-detail .sources > h2,
.source-box.phase4-sources > h2 {
  display:block!important;
  margin:0 0 14px!important;
  padding:0!important;
  font:700 12px/1.4 Inter,Arial,sans-serif!important;
  text-transform:uppercase!important;
  letter-spacing:.1em!important;
  color:#84631f!important;
}
/* Sources: one format across the site. On a computer the sources run as
   one line of links separated by a light "/", each link kept whole; the
   separator that would open a line sits in a clipped strip. On a phone,
   one source per line. */
.article .sources ul,
.article-body .sources ul,
.intent-detail .sources ul,
main .sources > ul {
  display:flex!important;
  flex-wrap:wrap!important;
  gap:5px 0!important;
  list-style:none!important;
  margin:0 0 0 -22px!important;
  padding:0!important;
  clip-path:inset(0 0 0 22px)!important;
}
.article .sources li,
.article-body .sources li,
.intent-detail .sources li,
main .sources > ul > li {
  position:relative!important;
  margin:0!important;
  padding:0 0 0 22px!important;
  font:400 12px/1.55 Inter,Arial,sans-serif!important;
}
.article .sources li::before,
.article-body .sources li::before,
.intent-detail .sources li::before,
main .sources > ul > li::before {
  content:"/";
  position:absolute;
  top:0;
  left:8px;
  color:#b5a78c;
}
@media(max-width:650px) {
  .article .sources ul,
  .article-body .sources ul,
  .intent-detail .sources ul,
  main .sources > ul {
    display:block!important;
    margin:0!important;
    clip-path:none!important;
  }
  .article .sources li,
  .article-body .sources li,
  .intent-detail .sources li,
  main .sources > ul > li {
    display:block!important;
    padding:0!important;
    margin:0 0 7px!important;
  }
  .article .sources li::before,
  .article-body .sources li::before,
  .intent-detail .sources li::before,
  main .sources > ul > li::before {
    content:none;
  }
}

/* V3 'Continue' is a navigation strip, NEVER a second source box. */
.article-body .destination-verified-sources {
  display:block!important;
  clear:both!important;
  max-width:750px!important;
  margin:28px 0 0!important;
  padding:16px 0 0!important;
  border-top:1px solid rgba(21,58,101,.2)!important;
  font:400 12px/1.6 Inter,Arial,sans-serif!important;
  color:#596271!important;
}
.article-body .destination-next-links {
  display:block!important;
  clear:both!important;
  max-width:750px!important;
  margin:22px 0 20px!important;
  padding:19px 22px!important;
  border-left:3px solid #b9903f!important;
  background:rgba(185,144,63,.07)!important;
  font:400 13px/1.8 Inter,Arial,sans-serif!important;
}
.article-body .destination-next-links strong {
  display:block!important;
  margin-bottom:6px!important;
  color:#153a65!important;
  font-weight:700!important;
}


/* CANONICAL SOURCE BLOCK HEADING — 2026-10-10 */
.article-body .destination-verified-sources > h2 {
  margin:0 0 12px!important;
  padding:0!important;
  color:#84631f!important;
  font:700 11px/1.45 Inter,Arial,sans-serif!important;
  letter-spacing:.09em!important;
  text-transform:uppercase!important;
}
.article-body .destination-verified-sources > p {
  margin:0!important;
  font:400 12px/1.65 Inter,Arial,sans-serif!important;
}


/* MAMETAS PRACTICAL STATIC V2 — 2026-10-10
   Targets the REAL late-generated static content, not unused .day-grid JS.
   Shared across the Nice, Antibes, Villefranche, Monaco and Menton guides. */
section.practical-decision-layer[data-static-editorial="true"] {
  box-sizing:border-box!important;
  width:100%!important;
  max-width:750px!important;
  margin:32px 0!important;
  padding:24px 26px 28px!important;
  border:1px solid rgba(21,58,101,.17)!important;
  border-left:4px solid #b9903f!important;
  background:#fffdf8!important;
}
section.practical-decision-layer[data-static-editorial="true"] > h2 {
  display:block!important;
  margin:0 0 20px!important;
  padding:0!important;
  border:0!important;
  font:700 12px/1.4 Inter,Arial,sans-serif!important;
  text-transform:uppercase!important;
  letter-spacing:.11em!important;
  color:#9b742f!important;
}
section.practical-decision-layer[data-static-editorial="true"] .mametas-practical-tip-list {
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:0!important;
  width:100%!important;
}
section.practical-decision-layer[data-static-editorial="true"] .mametas-practical-tip {
  display:grid!important;
  grid-template-columns:minmax(150px, 0.92fr) minmax(0,1.9fr)!important;
  gap:12px 25px!important;
  min-width:0!important;
  padding:18px 0 19px!important;
  margin:0!important;
  border-top:1px solid rgba(21,58,101,.15)!important;
  align-items:start!important;
}
section.practical-decision-layer[data-static-editorial="true"] .mametas-practical-tip > h3 {
  margin:0!important;
  padding:0!important;
  font:500 clamp(19px,1.8vw,22px)/1.22 "Fraunces",Georgia,serif!important;
  color:#153a65!important;
  text-transform:none!important;
  letter-spacing:normal!important;
}
section.practical-decision-layer[data-static-editorial="true"] .mametas-practical-tip > p {
  margin:0!important;
  padding:0!important;
  font:400 14px/1.6 Inter,Arial,sans-serif!important;
  color:#40506b!important;
  min-width:0!important;
}
section.practical-decision-layer[data-static-editorial="true"] > .verdict {
  box-sizing:border-box!important;
  clear:both!important;
  width:100%!important;
  margin:22px 0 0!important;
  padding:24px 26px!important;
  background:#153a65!important;
  border:0!important;
}
section.practical-decision-layer[data-static-editorial="true"] > .verdict .label {
  display:block!important;
  margin:0 0 10px!important;
  color:#ba8a35!important;
  font:700 11px/1.5 Inter,Arial,sans-serif!important;
  text-transform:uppercase!important;
  letter-spacing:.12em!important;
}
section.practical-decision-layer[data-static-editorial="true"] > .verdict p {
  margin:0!important;
  padding:0!important;
  font:500 clamp(19px,2vw,24px)/1.43 "Fraunces",Georgia,serif!important;
  color:#fffdf8!important;
}
section.practical-decision-layer[data-static-editorial="true"] > .verdict a {
  color:inherit!important;
  text-underline-offset:3px!important;
}
@media(max-width:670px) {
  section.practical-decision-layer[data-static-editorial="true"] {
    padding:19px!important;
  }
  section.practical-decision-layer[data-static-editorial="true"] .mametas-practical-tip {
    grid-template-columns:minmax(0,1fr)!important;
    gap:7px!important;
    padding:17px 0!important;
  }
  section.practical-decision-layer[data-static-editorial="true"] > .verdict {
    padding:20px!important;
  }
}

/* Cannes (legacy guide) — the generated nested sources section was invalid.
   v30 repairs the DOM; keep the verified links in a restrained final strip. */
.article .mametas-sources-section .sources,
.legacy-destination-section.mametas-sources-section .sources {
  box-sizing:border-box!important;
  display:block!important;
  width:100%!important;
  max-width:750px!important;
  margin:0!important;
  padding:18px 0 0!important;
  border-top:1px solid rgba(21,58,101,.2)!important;
  background:transparent!important;
}
.article .mametas-sources-section .sources > h2 {
  margin:0 0 16px!important;
  padding:0!important;
  font:700 11px/1.5 Inter,Arial,sans-serif!important;
  text-transform:uppercase!important;
  letter-spacing:.11em!important;
  color:#926c29!important;
}
.article .mametas-sources-section .sources > ul {
  display:flex!important;
  flex-wrap:wrap!important;
  gap:5px 0!important;
  padding:0!important;
  margin:0 0 0 -22px!important;
  list-style:none!important;
  clip-path:inset(0 0 0 22px)!important;
}
.article .mametas-sources-section .sources li {
  min-width:0!important;
  padding:0 0 0 22px!important;
  margin:0!important;
  font:400 12px/1.55 Inter,Arial,sans-serif!important;
}
.article .mametas-sources-section .sources li > a {
  display:inline!important;
  white-space:normal!important;
}
@media(max-width:650px) {
  .article .mametas-sources-section .sources > ul {
    display:block!important;
    margin:0!important;
    clip-path:none!important;
  }
  .article .mametas-sources-section .sources li {
    display:block!important;
    padding:0!important;
    margin:0 0 7px!important;
  }
}


/* Last-mile specificity: legacy destination rules include body.rg-destination
   and data-static-editorial, so match that specificity deliberately. */
body.rg-destination section.practical-decision-layer[data-static-editorial="true"] {
  padding:24px 26px 28px!important;
  margin:32px 0!important;
}
body.rg-destination section.practical-decision-layer[data-static-editorial="true"] > h2 {
  margin:0 0 20px!important;
  font:700 12px/1.4 Inter,Arial,sans-serif!important;
  letter-spacing:.11em!important;
}
body.rg-destination section.practical-decision-layer[data-static-editorial="true"] > .verdict {
  margin:22px 0 0!important;
  padding:24px 26px!important;
}
body.rg-destination section.practical-decision-layer[data-static-editorial="true"] > .verdict p {
  margin:0!important;
  font:500 clamp(19px,2vw,24px)/1.43 "Fraunces",Georgia,serif!important;
}
@media(max-width:670px) {
  body.rg-destination section.practical-decision-layer[data-static-editorial="true"] {
    padding:19px!important;
  }
  body.rg-destination section.practical-decision-layer[data-static-editorial="true"] > .verdict {
    padding:20px!important;
  }
}


/* MAMETAS RESTAURANT / MAP / CAR-FREE RECIPE — 2026-10-10
   One restaurant family for both legacy .article and .culture-detail layouts;
   only shared presentation, no restaurant or outbound link alterations. */

/* Consistent intermediate hero: between the oversized Nice and Saint-Tropez.
   Use the same aspect ratio and visual cap for every restaurant city guide. */
body.mametas-restaurant-detail .culture-hero-media {
  box-sizing:border-box!important;
  display:block!important;
  width:min(100%,900px)!important;
  max-width:900px!important;
  padding:0!important;
  margin:24px auto 32px!important;
}
body.mametas-restaurant-detail.culture-detail .culture-hero-media,
body.mametas-restaurant-detail .culture-detail .culture-hero-media {
  width:min(900px,calc(100% - 40px))!important;
}
body.mametas-restaurant-detail .culture-hero-media img {
  box-sizing:border-box!important;
  display:block!important;
  width:100%!important;
  height:auto!important;
  aspect-ratio:1.95 / 1!important;
  max-height:460px!important;
  object-fit:cover!important;
}
body.mametas-restaurant-detail .culture-hero-media figcaption {
  margin:7px 0 0!important;
  font:400 10px/1.45 Inter,Arial,sans-serif!important;
}

/* Restaurant guide hierarchy, deliberately quieter than 2026 generic article. */
body.mametas-restaurant-detail .article > p:not(.standfirst):not(.meta),
body.mametas-restaurant-detail .culture-detail .culture-copy > p:not(.standfirst):not(.meta),
body.mametas-restaurant-detail .place > p:not(.why):not(.mametas-restaurant-tags):not(.mametas-restaurant-best-for) {
  font-size:15px!important;
  line-height:1.66!important;
}
body.mametas-restaurant-detail .place {
  margin:0!important;
  padding:24px 0 25px!important;
  border-top:1px solid rgba(21,58,101,.16)!important;
}
body.mametas-restaurant-detail .place > h3 {
  margin:5px 0 10px!important;
  font:500 clamp(24px,2.2vw,29px)/1.2 "Fraunces",Georgia,serif!important;
  letter-spacing:-.012em!important;
  color:#153a65!important;
}
body.mametas-restaurant-detail .place > .address {
  display:block!important;
  margin:0 0 10px!important;
  font:600 11px/1.5 Inter,Arial,sans-serif!important;
  letter-spacing:.065em!important;
  text-transform:uppercase!important;
  color:#637087!important;
}
body.mametas-restaurant-detail .place > .why,
body.mametas-restaurant-detail .place > .mametas-restaurant-brief {
  display:block!important;
  margin:0 0 12px!important;
  padding:0!important;
  border:0!important;
  font-family:Inter,Arial,sans-serif!important;
}
body.mametas-restaurant-detail .place .mametas-restaurant-tags {
  margin:0 0 7px!important;
  font:600 11px/1.5 Inter,Arial,sans-serif!important;
  text-transform:uppercase!important;
  letter-spacing:.045em!important;
  color:#677187!important;
}
body.mametas-restaurant-detail .place .mametas-restaurant-best-for,
body.mametas-restaurant-detail .place > .why {
  margin:0 0 11px!important;
  font:500 14px/1.5 Inter,Arial,sans-serif!important;
  letter-spacing:normal!important;
  text-transform:none!important;
  color:#384c66!important;
}
body.mametas-restaurant-detail .place > p.practical {
  font:400 13px/1.6 Inter,Arial,sans-serif!important;
  color:#526076!important;
}

/* Official source and Google Maps: aligned links and matching underline.
   Avoid a 30px box or deeply offset border on only one of the two links. */
body.mametas-restaurant-detail .place > a.place-link {
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  vertical-align:baseline!important;
  width:auto!important;
  min-height:26px!important;
  margin:10px 16px 0 0!important;
  padding:0 0 4px!important;
  border:0!important;
  border-bottom:1px solid currentColor!important;
  background:transparent!important;
  font:700 11px/1.45 Inter,Arial,sans-serif!important;
  letter-spacing:.09em!important;
  text-decoration:none!important;
  text-transform:uppercase!important;
  white-space:normal!important;
  color:#8b6a2c!important;
}
body.mametas-restaurant-detail .place > a.place-map {
  color:#095168!important;
  margin-left:0!important;
}
body.mametas-restaurant-detail .place > a.place-link:hover,
body.mametas-restaurant-detail .place > a.place-link:focus-visible {
  color:#ad492f!important;
  border-bottom-color:#ad492f!important;
}

/* "Next decision" is clearly interactive even on older navy verdicts. */
/* Restaurant next-decision cards: pure white links and pure white
   underlines in every state. Light practical panels remain blue. */
body.mametas-restaurant-detail .verdict a,
body.mametas-restaurant-detail .verdict a:link,
body.mametas-restaurant-detail .verdict a:visited,
body.mametas-restaurant-detail .verdict a:hover,
body.mametas-restaurant-detail .verdict a:focus-visible,
body.mametas-restaurant-detail .verdict a:active {
  color:#fff!important;
  text-decoration:underline!important;
  text-decoration-color:#fff!important;
  border-bottom-color:#fff!important;
  text-underline-offset:4px!important;
  text-decoration-thickness:1px!important;
  font-weight:650!important;
}
body.mametas-restaurant-detail .culture-practical a {
  color:#095168!important;
  text-decoration:underline!important;
  text-decoration-color:#a57b36!important;
  text-underline-offset:4px!important;
  text-decoration-thickness:1px!important;
  font-weight:650!important;
}
body.mametas-restaurant-detail .culture-practical a:hover,
body.mametas-restaurant-detail .culture-practical a:focus-visible {
  color:#095168!important;
  text-decoration-color:#a57b36!important;
}

/* Map links embedded within prose or logistics use the same understated
   12px rhythm as the airport-transfer page, never a heading-sized link. */
body .article p.spot-logistics,
body .culture-detail p.spot-logistics,
body .article .route-step p.spot-logistics,
body.rg-destination .article p.spot-logistics {
  font:400 12.5px/1.6 Inter,Arial,sans-serif!important;
  letter-spacing:normal!important;
  text-transform:none!important;
  color:#53647b!important;
}
body .article p.spot-logistics strong,
body .article .route-step p.spot-logistics strong,
body .culture-detail p.spot-logistics strong {
  font-size:inherit!important;
  line-height:inherit!important;
  font-weight:700!important;
}
body .article p.spot-logistics a[href*="google.com/maps"],
body .culture-detail p.spot-logistics a[href*="google.com/maps"],
body .article .route-step p.spot-logistics a[href*="google.com/maps"] {
  display:inline!important;
  font-family:Inter,Arial,sans-serif!important;
  font-weight:700!important;
  font-size:.9em!important;
  line-height:inherit!important;
  letter-spacing:normal!important;
  text-transform:none!important;
  vertical-align:baseline!important;
  text-underline-offset:3px!important;
  text-decoration:underline!important;
  text-decoration-thickness:1px!important;
  color:#095168!important;
}
body .article p.spot-logistics a[href*="google.com/maps"]:hover {
  color:#ad492f!important;
}

/* Car-free comparison guide: all frames get internal breathing space. */
body.mametas-car-free-guide .article .fact-grid {
  gap:15px!important;
  margin:28px 0 36px!important;
}
body.mametas-car-free-guide .article .fact-grid > .fact {
  box-sizing:border-box!important;
  min-width:0!important;
  margin:0!important;
  padding:21px 22px!important;
  border:1px solid rgba(21,58,101,.17)!important;
}
body.mametas-car-free-guide .article .fact-grid > .fact > b {
  display:block!important;
  margin:0 0 9px!important;
  line-height:1.3!important;
}
body.mametas-car-free-guide .article .fact-grid > .fact > span {
  display:block!important;
  margin:0!important;
  font:400 13px/1.6 Inter,Arial,sans-serif!important;
}
body.mametas-car-free-guide .article > .place {
  box-sizing:border-box!important;
  padding:23px 25px!important;
  margin:16px 0!important;
  border:1px solid rgba(21,58,101,.16)!important;
  background:rgba(255,253,248,.48)!important;
}
body.mametas-car-free-guide .article > .place > :first-child {
  margin-top:0!important;
}
body.mametas-car-free-guide .article > .place > :last-child {
  margin-bottom:0!important;
}
body.mametas-car-free-guide .article > .place > p {
  margin:0 0 15px!important;
  font:400 15px/1.66 Inter,Arial,sans-serif!important;
}
body.mametas-car-free-guide .article > .place > .spot-logistics {
  margin-top:18px!important;
  padding-top:13px!important;
  border-top:1px solid rgba(21,58,101,.15)!important;
  font-size:12.5px!important;
}
body.mametas-car-free-guide .article > .note,
body.mametas-car-free-guide .article > .verdict {
  box-sizing:border-box!important;
  padding:25px 28px!important;
}
@media(max-width:650px) {
  body.mametas-restaurant-detail .culture-hero-media,
  body.mametas-restaurant-detail.culture-detail .culture-hero-media,
  body.mametas-restaurant-detail .culture-detail .culture-hero-media {
    width:calc(100% - 32px)!important;
    margin:20px auto 24px!important;
  }
  body.mametas-restaurant-detail .culture-hero-media img {
    aspect-ratio:1.55/1!important;
  }
  body.mametas-car-free-guide .article .fact-grid > .fact,
  body.mametas-car-free-guide .article > .place {
    padding:18px!important;
  }
}


/* Restaurant hero TYPOGRAPHY also shares one size across the two legacy
   templates; this closes the remaining article-vs-culture-detail mismatch. */
body.mametas-restaurant-detail .article > h1,
body.mametas-restaurant-detail .culture-detail h1 {
  font:500 clamp(38px,4vw,55px)/1.08 "Fraunces",Georgia,serif!important;
  max-width:100%!important;
  margin:10px 0 16px!important;
  letter-spacing:-.035em!important;
}
body.mametas-restaurant-detail .article > p.standfirst,
body.mametas-restaurant-detail .culture-detail p.standfirst {
  max-width:760px!important;
  font:400 clamp(17px,1.32vw,19px)/1.48 "Fraunces",Georgia,serif!important;
  color:#45536c!important;
  margin:16px 0 26px!important;
}
body.mametas-restaurant-detail .article > .meta,
body.mametas-restaurant-detail .culture-detail .meta {
  font:700 11px/1.5 Inter,Arial,sans-serif!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
}
@media(max-width:650px) {
  body.mametas-restaurant-detail .article > h1,
  body.mametas-restaurant-detail .culture-detail h1 {
    font-size:clamp(34px,9.8vw,38px)!important;
  }
}


/* MAMETAS SINGLE-UNDERLINE / CAR-FREE / BOOKING / DECISIONS — 2026-10-10
   One narrowly scoped pass for six recurring visual issues. */

/* A single text-decoration replaces simultaneous border-bottom and underline.
   Only in-flow text links, not buttons, navigation or official-source tiles. */
body .article p.spot-logistics a,
body .article p.spot-logistics a:visited,
body .article p.spot-logistics a:hover,
body .article p.spot-logistics a:focus-visible,
body .culture-detail p.spot-logistics a,
body .article p:not(.spot-logistics) a[href*="google.com/maps"],
body .article p:not(.spot-logistics) a[href*="maps.app.goo.gl"],
body .article p:not(.spot-logistics) a[href*="goo.gl/maps"] {
  border-bottom:0!important;
  box-shadow:none!important;
  background-image:none!important;
  padding-bottom:0!important;
  text-decoration:underline!important;
  text-decoration-thickness:1px!important;
  text-decoration-color:#bc7850!important;
  text-underline-offset:3px!important;
  font-size:inherit!important;
  vertical-align:baseline!important;
}

/* Car-free editorial ownership bridge: one aligned, quiet inset,
   without the inherited oversized prose or crowding. */
body.mametas-car-free-guide .article .ownership-note--split[data-phase3-owner="carfree"] {
  box-sizing:border-box!important;
  display:block!important;
  clear:both!important;
  width:100%!important;
  max-width:860px!important;
  margin:25px 0 28px!important;
  padding:18px 22px!important;
  border:1px solid rgba(21,58,101,.17)!important;
  border-left:3px solid #b9903f!important;
  background:#fbf7ef!important;
  font:400 14px/1.6 Inter,Arial,sans-serif!important;
  color:#3e4d66!important;
}
body.mametas-car-free-guide .article .ownership-note--split[data-phase3-owner="carfree"] > strong {
  display:block!important;
  margin:0 0 6px!important;
  font:700 14px/1.5 Inter,Arial,sans-serif!important;
  color:#153a65!important;
}
body.mametas-car-free-guide .article .ownership-note--split a {
  display:inline!important;
  padding:0!important;
  border:0!important;
  box-shadow:none!important;
  text-decoration:underline!important;
  text-decoration-color:#bc7850!important;
  text-underline-offset:3px!important;
  font:inherit!important;
  font-size:.9em!important;
  font-weight:700!important;
  color:#095168!important;
}
body.mametas-car-free-guide .article .ownership-note--split + p {
  margin-top:0!important;
  margin-bottom:24px!important;
  font-size:15px!important;
  line-height:1.65!important;
}

/* Canonical Hotel Fit choice row (only generated when old source-box exists). */
body.mametas-car-free-guide .article .source-box.phase3-hotel-fit.mametas-hotel-fit-bridge {
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:18px 22px!important;
  max-width:860px!important;
  width:100%!important;
  margin:30px 0 34px!important;
  padding:22px 24px!important;
  background:#fbf7ef!important;
  border:1px solid rgba(21,58,101,.17)!important;
  border-left:3px solid #b9903f!important;
}
body.mametas-car-free-guide .article .mametas-hotel-fit-bridge > p {
  margin:0!important;
  min-width:0!important;
  font:400 14px/1.6 Inter,Arial,sans-serif!important;
  color:#3d4d64!important;
}
body.mametas-car-free-guide .article .mametas-hotel-fit-bridge > a.mametas-hotel-fit-action,
body.mametas-car-free-guide .article .mametas-hotel-fit-bridge > a.mametas-hotel-fit-action:visited,
body.mametas-car-free-guide .article .mametas-hotel-fit-bridge > a.mametas-hotel-fit-action:hover,
body.mametas-car-free-guide .article .mametas-hotel-fit-bridge > a.mametas-hotel-fit-action:focus-visible {
  box-sizing:border-box!important;
  position:static!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
  width:auto!important;
  height:auto!important;
  min-height:42px!important;
  max-width:100%!important;
  margin:0!important;
  padding:11px 17px!important;
  border:1px solid #ad492f!important;
  border-radius:0!important;
  background:#ad492f!important;
  color:#fff!important;
  text-decoration:none!important;
  font:700 11px/1.35 Inter,Arial,sans-serif!important;
  letter-spacing:.07em!important;
  text-transform:uppercase!important;
}

/* Scoped legacy destination follow-ups; keep all original destinations and
   turn separate inline links into three clearly actionable editorial tiles. */
body.rg-destination .legacy-destination-section.mametas-next-decision-panel {
  box-sizing:border-box!important;
  margin:34px 0!important;
  padding:25px 26px 28px!important;
  border:1px solid rgba(21,58,101,.17)!important;
  border-left:3px solid #b9903f!important;
  background:#fcf8f0!important;
}
body.rg-destination .legacy-destination-section.mametas-next-decision-panel > h2 {
  margin:0 0 18px!important;
  padding:0!important;
  font:700 12px/1.4 Inter,Arial,sans-serif!important;
  letter-spacing:.11em!important;
  color:#946d2b!important;
  text-transform:uppercase!important;
}
body.rg-destination .mametas-next-decision-panel .next-decision-list {
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:12px!important;
  margin:0!important;
  padding:0!important;
}
body.rg-destination .mametas-next-decision-panel .next-decision-list > a,
body.rg-destination .mametas-next-decision-panel .next-decision-list > a:visited {
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  box-sizing:border-box!important;
  min-width:0!important;
  min-height:65px!important;
  padding:13px 15px!important;
  margin:0!important;
  border:1px solid rgba(21,58,101,.19)!important;
  border-bottom:2px solid #b9903f!important;
  border-radius:0!important;
  background:#fffdf8!important;
  color:#153a65!important;
  font:700 13px/1.45 Inter,Arial,sans-serif!important;
  letter-spacing:normal!important;
  text-transform:none!important;
  text-decoration:none!important;
  overflow-wrap:break-word!important;
}
body.rg-destination .mametas-next-decision-panel .next-decision-list > a:hover,
body.rg-destination .mametas-next-decision-panel .next-decision-list > a:focus-visible {
  border-color:#ad492f!important;
  border-bottom-color:#ad492f!important;
  color:#ad492f!important;
}

/* Booking actions inside curated hotel cards, not the site's generic CTA. */
.hotel-choice-card .hotel-choice-copy > a.rate-link.booking-quiet-cta,
.hotel-choice-card .hotel-choice-copy > a.btn--affiliate,
.hotel-card-actions > a.rate-link.affiliate-link {
  box-sizing:border-box!important;
  position:static!important;
  display:inline-flex!important;
  align-self:flex-start!important;
  flex:0 0 auto!important;
  width:max-content!important;
  max-width:100%!important;
  height:auto!important;
  min-height:40px!important;
  margin:17px 0 0!important;
  padding:10px 15px!important;
  font:700 11px/1.35 Inter,Arial,sans-serif!important;
  letter-spacing:.045em!important;
  text-transform:uppercase!important;
  white-space:normal!important;
  text-align:center!important;
  border-width:1px!important;
  border-radius:0!important;
}
/* Curated hotel cards: "Check dates" is always the first action and "Read
   our take", when present, sits under it. The first action is pushed to the
   bottom of the card (its fixed 17px margin above defeated that), so the
   actions of a row line up whatever the length of title and description. */
.hotel-choice-card .hotel-choice-copy > a.rate-link.btn{
  margin-top:auto!important;
}

/* Practical "Train or bus" reading scale matches standard editorial guides. */
body.practical-guide-page .article > p:not(.standfirst),
body.practical-guide-page .article .place > p:not(.spot-logistics),
body.practical-guide-page .article > ul,
body.practical-guide-page .article > ol {
  font:400 15px/1.7 Inter,Arial,sans-serif!important;
}
body.practical-guide-page .article .note {
  font:400 14px/1.65 Inter,Arial,sans-serif!important;
}
@media(max-width:760px) {
  body.mametas-car-free-guide .article .source-box.phase3-hotel-fit.mametas-hotel-fit-bridge {
    grid-template-columns:minmax(0,1fr)!important;
    padding:19px!important;
  }
  body.mametas-car-free-guide .article .mametas-hotel-fit-bridge > a.mametas-hotel-fit-action {
    width:100%!important;
  }
  body.rg-destination .mametas-next-decision-panel .next-decision-list {
    grid-template-columns:minmax(0,1fr)!important;
  }
  body.rg-destination .legacy-destination-section.mametas-next-decision-panel {
    padding:20px!important;
  }
}


/* MAMETAS CULTURE STATS PLAN SAFETY 2026-10-10
   Explicit selectors for late-generated article body classes. */

/* Data article: editorial 15px body, substantial but measured fact cards. */
body.mametas-stats-guide .article {
  box-sizing:border-box!important;
  max-width:940px!important;
  padding-bottom:62px!important;
}
body.mametas-stats-guide .article > h1 {
  font-size:clamp(38px,4.4vw,56px)!important;
  line-height:1.1!important;
  margin-bottom:18px!important;
}
body.mametas-stats-guide .article > p:not(.standfirst):not(.meta),
body.mametas-stats-guide .article > ul {
  font:400 15px/1.7 Inter,Arial,sans-serif!important;
  color:#35445d!important;
}
body.mametas-stats-guide .article > h2 {
  margin:36px 0 13px!important;
  font:500 clamp(25px,2.7vw,30px)/1.22 "Fraunces",Georgia,serif!important;
}
body.mametas-stats-guide .article .fact-grid {
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:14px!important;
  margin:24px 0 33px!important;
}
body.mametas-stats-guide .article .fact-grid .fact {
  box-sizing:border-box!important;
  padding:20px 21px!important;
  min-width:0!important;
}
body.mametas-stats-guide .article .fact-grid .fact > b {
  display:block!important;
  margin-bottom:8px!important;
}
body.mametas-stats-guide .article .fact-grid .fact > span {
  font:400 12.5px/1.6 Inter,Arial,sans-serif!important;
}
body.mametas-stats-guide .article .article-visual--panorama {
  max-width:940px!important;
  margin:20px auto 36px!important;
}
body.mametas-stats-guide .article .article-visual--panorama img {
  aspect-ratio:1.95/1!important;
  height:auto!important;
  max-height:470px!important;
  object-fit:cover!important;
}
body.mametas-stats-guide .article .verdict {
  box-sizing:border-box!important;
  padding:25px 29px!important;
  margin:26px 0 30px!important;
}
body.mametas-stats-guide .article .verdict > p {
  font:400 15px/1.6 Inter,Arial,sans-serif!important;
}
/* The blue "Traveller?" footer: three distinct links, primary button
   terracotta with white text; no inherited white-on-white hover. */
body.mametas-stats-guide .article .verdict.mametas-stats-traveller {
  background:#153a65!important;
  color:#fff!important;
  border:0!important;
}
body.mametas-stats-guide .article .verdict.mametas-stats-traveller > .label {
  display:block!important;
  color:#f0c983!important;
  margin-bottom:14px!important;
}
body.mametas-stats-guide .article .verdict.mametas-stats-traveller > p {
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:11px 23px!important;
  margin:0!important;
  padding:0!important;
}
body.mametas-stats-guide .article .verdict.mametas-stats-traveller p a:not(.btn),
body.mametas-stats-guide .article .verdict.mametas-stats-traveller p a:not(.btn):visited {
  color:#fff!important;
  text-decoration:underline!important;
  text-decoration-color:#fff!important;
  text-underline-offset:3px!important;
  font:600 13px/1.5 Inter,Arial,sans-serif!important;
}
body.mametas-stats-guide .article .verdict.mametas-stats-traveller p a.btn,
body.mametas-stats-guide .article .verdict.mametas-stats-traveller p a.btn:visited,
body.mametas-stats-guide .article .verdict.mametas-stats-traveller p a.btn:hover,
body.mametas-stats-guide .article .verdict.mametas-stats-traveller p a.btn:focus-visible {
  box-sizing:border-box!important;
  display:inline-flex!important;
  min-height:43px!important;
  align-items:center!important;
  margin:0!important;
  padding:11px 16px!important;
  background:#ad492f!important;
  border:1px solid #ad492f!important;
  border-radius:0!important;
  color:#fff!important;
  text-decoration:none!important;
  font:700 11px/1.3 Inter,Arial,sans-serif!important;
  letter-spacing:.055em!important;
  text-transform:uppercase!important;
}

/* FR Plan: the verdict button performs the action. No second link next to it.
   Keep colour consistent with the other Riviera Fit entry points. */
body.mametas-plan-chooser-single .chooser-submit-row {
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  justify-content:flex-start!important;
  gap:15px!important;
  margin:27px 0!important;
}
body.mametas-plan-chooser-single .chooser-submit-row > button[data-chooser-submit],
body.mametas-plan-chooser-single .chooser-submit-row > button[data-chooser-submit]:hover,
body.mametas-plan-chooser-single .chooser-submit-row > button[data-chooser-submit]:focus-visible {
  background:#ad492f!important;
  border:1px solid #ad492f!important;
  color:#fff!important;
  box-shadow:none!important;
  border-radius:0!important;
}
body.mametas-plan-chooser-single .chooser-submit-row > button[data-chooser-submit]:disabled {
  opacity:.65!important;
  cursor:not-allowed!important;
}

/* Airport transport article: standard guide hierarchy without ballooned prose. */
body.mametas-arrival-guide .article {
  max-width:930px!important;
  padding-bottom:65px!important;
}
body.mametas-arrival-guide .article > h1 {
  font-size:clamp(38px,4.2vw,54px)!important;
  line-height:1.13!important;
}
body.mametas-arrival-guide .article > p:not(.standfirst),
body.mametas-arrival-guide .article > ul {
  font:400 15px/1.68 Inter,Arial,sans-serif!important;
}
body.mametas-arrival-guide .article > h2 {
  font:500 clamp(25px,2.7vw,30px)/1.24 "Fraunces",Georgia,serif!important;
  margin:36px 0 13px!important;
}
body.mametas-arrival-guide .article .fact-grid {
  gap:15px!important;
  margin:26px 0 31px!important;
}
body.mametas-arrival-guide .article .fact-grid > .fact {
  min-width:0!important;
  box-sizing:border-box!important;
  padding:20px 22px!important;
}
body.mametas-arrival-guide .article .fact-grid > .fact > span {
  font:400 12.5px/1.6 Inter,Arial,sans-serif!important;
}
body.mametas-arrival-guide .article .verdict {
  margin:25px 0 35px!important;
  padding:25px 28px!important;
}
body.mametas-arrival-guide .article .verdict > p {
  font:500 20px/1.5 "Fraunces",Georgia,serif!important;
}
body.mametas-arrival-guide .article .article-visual--panorama {
  max-width:900px!important;
  margin:27px 0 32px!important;
}
body.mametas-arrival-guide .article .article-visual--panorama img {
  aspect-ratio:1.95/1!important;
  height:auto!important;
  max-height:440px!important;
  object-fit:cover!important;
}

/* Emergency assistance: clear 6-card hierarchy / legible numbered steps. */
body.mametas-safety-guide .article {
  max-width:970px!important;
  padding-bottom:66px!important;
}
body.mametas-safety-guide .article > h1 {
  font-size:clamp(37px,4.1vw,54px)!important;
  line-height:1.12!important;
}
body.mametas-safety-guide .article > p:not(.standfirst) {
  font:400 15px/1.7 Inter,Arial,sans-serif!important;
}
body.mametas-safety-guide .article .emergency-grid {
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:14px!important;
  margin:27px 0 35px!important;
}
body.mametas-safety-guide .article .emergency-grid > .emergency-card {
  box-sizing:border-box!important;
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
  padding:21px 23px 23px!important;
  border:1px solid rgba(21,58,101,.17)!important;
  border-top:3px solid #b9903f!important;
  background:#fffaf2!important;
}
body.mametas-safety-guide .article .emergency-card > small {
  font:700 10px/1.4 Inter,Arial,sans-serif!important;
  letter-spacing:.08em!important;
  margin:0 0 9px!important;
  color:#4c6174!important;
}
body.mametas-safety-guide .article .emergency-card > strong {
  font:500 43px/1.08 "Fraunces",Georgia,serif!important;
  margin:0 0 10px!important;
  color:#153a65!important;
}
body.mametas-safety-guide .article .emergency-card > p {
  font:400 13px/1.55 Inter,Arial,sans-serif!important;
  margin:0!important;
}
body.mametas-safety-guide .article .verdict {
  margin:22px 0 36px!important;
  padding:26px 29px!important;
}
body.mametas-safety-guide .article .verdict > p {
  font:500 19px/1.47 "Fraunces",Georgia,serif!important;
}
body.mametas-safety-guide .article > h2 {
  margin:34px 0 14px!important;
  font:500 28px/1.23 "Fraunces",Georgia,serif!important;
}
body.mametas-safety-guide .article .safety-steps {
  counter-reset:step!important;
  list-style:none!important;
  margin:20px 0 36px!important;
  padding:0!important;
}
body.mametas-safety-guide .article .safety-steps li {
  counter-increment:step!important;
  position:relative!important;
  margin:0!important;
  padding:15px 13px 15px 50px!important;
  border-top:1px solid rgba(21,58,101,.16)!important;
  font:400 15px/1.6 Inter,Arial,sans-serif!important;
}
body.mametas-safety-guide .article .safety-steps li::before {
  content:counter(step,decimal-leading-zero)!important;
  position:absolute!important;
  top:15px!important;
  left:3px!important;
  color:#ad492f!important;
  font:700 12px/1.6 Inter,Arial,sans-serif!important;
}

/* Culture detail family: narrow hero, restrained prose and safe sources
   bottom spacing (no overlap with the footer divider). */
body.mametas-culture-detail .culture-detail {
  box-sizing:border-box!important;
  padding-bottom:55px!important;
}
body.mametas-culture-detail .culture-hero-media {
  box-sizing:border-box!important;
  display:block!important;
  width:calc(100% - 44px)!important;
  max-width:930px!important;
  margin:20px auto 32px!important;
  padding:0!important;
}
body.mametas-culture-detail .culture-hero-media > img {
  display:block!important;
  width:100%!important;
  height:auto!important;
  aspect-ratio:1.8/1!important;
  max-height:520px!important;
  object-fit:cover!important;
  object-position:center 47%!important;
  background:#eee8de!important;
}
body.mametas-culture-detail .culture-hero-media figcaption {
  display:block!important;
  margin:8px 0 0!important;
  font:400 10px/1.5 Inter,Arial,sans-serif!important;
  color:#677185!important;
  overflow-wrap:anywhere!important;
}
body.mametas-culture-detail .culture-copy {
  max-width:880px!important;
}
body.mametas-culture-detail .culture-copy > p:not(.standfirst):not(.mini-rule),
body.mametas-culture-detail .culture-copy > ul {
  font:400 15px/1.68 Inter,Arial,sans-serif!important;
}
body.mametas-culture-detail .culture-copy > h2 {
  font:500 clamp(25px,2.65vw,30px)/1.25 "Fraunces",Georgia,serif!important;
  margin:35px 0 12px!important;
}
body.mametas-culture-detail .culture-copy:last-child {
  box-sizing:border-box!important;
  padding-bottom:42px!important;
}
body.mametas-culture-detail .culture-copy .sources {
  box-sizing:border-box!important;
  display:block!important;
  width:100%!important;
  clear:both!important;
  margin:38px 0 36px!important;
  padding:21px 0 26px!important;
  border-top:1px solid rgba(21,58,101,.18)!important;
  border-bottom:0!important;
}
body.mametas-culture-detail .culture-copy .sources > h2 {
  margin:0 0 14px!important;
  font:700 11px/1.4 Inter,Arial,sans-serif!important;
  letter-spacing:.09em!important;
  text-transform:uppercase!important;
  color:#84631f!important;
}
body.mametas-culture-detail .culture-copy .sources ul {
  box-sizing:border-box!important;
  margin:0 0 0 -22px!important;
  padding:0!important;
  display:flex!important;
  flex-wrap:wrap!important;
  gap:5px 0!important;
  list-style:none!important;
  clip-path:inset(0 0 0 22px)!important;
}
body.mametas-culture-detail .culture-copy .sources li {
  position:relative!important;
  margin:0!important;
  padding:0 0 0 22px!important;
  font:400 12px/1.55 Inter,Arial,sans-serif!important;
  min-width:0!important;
}
body.mametas-culture-detail .culture-copy .sources li a {
  display:inline!important;
  vertical-align:baseline!important;
  text-decoration:underline!important;
  text-decoration-color:#b9903f!important;
  text-underline-offset:3px!important;
}
@media(max-width:760px) {
  body.mametas-stats-guide .article .fact-grid,
  body.mametas-arrival-guide .article .fact-grid,
  body.mametas-safety-guide .article .emergency-grid {
    grid-template-columns:minmax(0,1fr)!important;
    gap:10px!important;
  }
  body.mametas-safety-guide .article .emergency-grid > .emergency-card {
    padding:16px 19px 18px!important;
  }
  body.mametas-safety-guide .article .emergency-card > strong {
    font-size:29px!important;
    margin:0 0 6px!important;
  }
  body.mametas-stats-guide .article .verdict.mametas-stats-traveller > p {
    display:flex!important;
    align-items:stretch!important;
    flex-direction:column!important;
    gap:14px!important;
  }
  body.mametas-culture-detail .culture-hero-media {
    width:calc(100% - 28px)!important;
    margin:18px auto 27px!important;
  }
  body.mametas-culture-detail .culture-hero-media > img {
    aspect-ratio:1.44/1!important;
  }
  body.mametas-culture-detail .culture-copy:last-child {
    padding-bottom:32px!important;
  }
}
@media(max-width:650px) {
  body.mametas-culture-detail .culture-copy .sources ul {
    display:block!important;
    margin:0!important;
    clip-path:none!important;
  }
  body.mametas-culture-detail .culture-copy .sources li {
    display:block!important;
    padding:0!important;
    margin:0 0 7px!important;
  }
}


/* MAMETAS FAMILY PARITY OCT 2026
   Final release recipe: shared typography and visible inline actions.
   Narrow scoping avoids changing global hero scales and hotel BOOK panels. */
body a.mametas-map-inline,
body a.mametas-map-inline:visited,
body a.mametas-map-inline:hover {
  box-sizing:content-box!important;
  display:inline!important;
  width:auto!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0 0 1px!important;
  border:0!important;
  border-bottom:1px solid #b9903f!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:transparent!important;
  color:#0e5265!important;
  font:600 13px/1.55 Inter,Arial,sans-serif!important;
  letter-spacing:normal!important;
  text-transform:none!important;
  text-decoration:none!important;
  text-underline-offset:3px!important;
}
body a.mametas-map-inline:focus-visible {
  outline:2px solid #ad492f!important;
  outline-offset:3px!important;
}

/* Explore's mission pages: compact verdicts and the same text hierarchy. */
body.mametas-explore-detail .intent-detail .article-body,
body.mametas-explore-detail .intent-detail .article-body > p,
body.mametas-explore-detail .intent-detail .article-body .place p {
  font-size:15.5px!important;
  line-height:1.7!important;
}
body.mametas-explore-detail .intent-detail .article-body > p:first-child {
  font:400 16px/1.7 Inter,Arial,sans-serif!important;
}
body.mametas-explore-detail .intent-detail .article-body .verdict,
body.mametas-explore-detail .intent-detail .article-body .verdict-box {
  box-sizing:border-box!important;
  padding:22px 26px!important;
  margin:24px 0 34px!important;
}
body.mametas-explore-detail .intent-detail .article-body .verdict p,
body.mametas-explore-detail .intent-detail .article-body .verdict-box p {
  font:400 18px/1.52 "Fraunces",Georgia,serif!important;
  letter-spacing:normal!important;
  margin:8px 0 0!important;
}
body.mametas-explore-detail .intent-detail .article-body .verdict p strong,
body.mametas-explore-detail .intent-detail .article-body .verdict-box p strong {
  font-weight:600!important;
}
body.mametas-explore-detail .intent-detail .article-body h2 {
  font-size:clamp(27px,2.75vw,33px)!important;
  line-height:1.2!important;
  margin:41px 0 15px!important;
}
body.mametas-explore-detail .intent-detail .article-body h3 {
  font-size:clamp(21px,2.15vw,25px)!important;
  line-height:1.22!important;
}

/* Solo female subguides: restrained body size, clear action hierarchy and
   breathing room for numbered instructions, hotel cards and links. */
body.mametas-solo-detail main article,
body.mametas-solo-detail .article-body,
body.mametas-solo-detail .culture-copy {
  min-width:0!important;
}
body.mametas-solo-detail .article-body,
body.mametas-solo-detail .article-body > p,
body.mametas-solo-detail .article-body li,
body.mametas-solo-detail .culture-copy > p,
body.mametas-solo-detail .culture-copy li {
  font-size:15px!important;
  line-height:1.7!important;
}
body.mametas-solo-detail .article-body > p:first-child {
  font:400 15.5px/1.7 Inter,Arial,sans-serif!important;
}
body.mametas-solo-detail .article-body h2,
body.mametas-solo-detail .culture-copy h2 {
  font:500 clamp(26px,2.8vw,31px)/1.23 "Fraunces",Georgia,serif!important;
  margin:37px 0 14px!important;
}
body.mametas-solo-detail .article-body h3,
body.mametas-solo-detail .culture-copy h3 {
  font:500 clamp(21px,2.2vw,24px)/1.27 "Fraunces",Georgia,serif!important;
  margin:24px 0 11px!important;
}
body.mametas-solo-detail .article-body .verdict p,
body.mametas-solo-detail .article-body .verdict-box p {
  font:400 18px/1.52 "Fraunces",Georgia,serif!important;
}
body.mametas-solo-detail .article-body .place,
body.mametas-solo-detail .article-body .note {
  margin:20px 0 25px!important;
  padding:20px 23px!important;
}
body.mametas-solo-detail .article-body .hotel-card,
body.mametas-solo-detail .article-body .scouting-card {
  box-sizing:border-box!important;
  min-width:0!important;
}
body.mametas-solo-detail .article-body a[href^="/en/hotels/"]:not(.btn):not(.button):not(.rate-link):not(.mametas-hotel-fit-primary),
body.mametas-solo-detail .article-body a[href^="/hotels/"]:not(.btn):not(.button):not(.rate-link):not(.mametas-hotel-fit-primary) {
  display:inline!important;
  background:transparent!important;
  border:0!important;
  border-bottom:1px solid #b9903f!important;
  box-shadow:none!important;
  padding:0 0 1px!important;
  color:#0e5265!important;
  font:600 13px/1.55 Inter,Arial,sans-serif!important;
  text-transform:none!important;
  letter-spacing:normal!important;
  text-decoration:none!important;
}

/* Hotel Fit is the primary product action, not another editorial text link. */
body a.mametas-hotel-fit-primary,
body a.mametas-hotel-fit-primary:visited,
body a.mametas-hotel-fit-primary:hover,
body.mametas-solo-detail .article-body a.btn[href*="/hotels/finder/"],
body.mametas-solo-detail .article-body a.button[href*="/hotels/finder/"] {
  box-sizing:border-box!important;
  display:inline-flex!important;
  justify-content:center!important;
  align-items:center!important;
  min-height:44px!important;
  height:auto!important;
  max-height:72px!important;
  align-self:flex-start!important;
  flex:0 0 auto!important;
  width:auto!important;
  max-width:100%!important;
  margin:13px 0 18px!important;
  padding:11px 18px!important;
  background:#ad492f!important;
  color:#fff!important;
  border:1px solid #ad492f!important;
  border-radius:0!important;
  box-shadow:none!important;
  font:700 11px/1.35 Inter,Arial,sans-serif!important;
  letter-spacing:.055em!important;
  text-transform:uppercase!important;
  text-align:center!important;
  text-decoration:none!important;
  white-space:normal!important;
}
/* Inside an action row the row spaces its own items. The article margins
   above would stretch the neighbouring button (homepage: 44px vs 75px) or
   push the companion link away (hub steps, hotel "next decision"). */
body .hotel-selection-actions>a.mametas-hotel-fit-primary,
body .hub-next-actions>a.mametas-hotel-fit-primary,
body .hotel-next-decision>p>a.mametas-hotel-fit-primary{
  margin:0!important;
}

/* Hotel pages — "La prochaine décision": aligned on the 760px article column
   instead of running edge to edge, with the Hotel Fit button and the guide
   link on one row. The " · " text separator is not rendered (font-size:0):
   the gap separates them, so it can never cling to the button (the hidden
   separator sits between them: 2 x 11px = 22px). */
.hotel-detail>.hotel-next-decision{
  box-sizing:border-box;
  width:calc(100% - 2 * var(--gutter));
  max-width:calc(760px - 2 * var(--gutter));
  margin:38px auto;
}
.hotel-next-decision>p{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px 11px;
  font-size:0;
}
.hotel-next-decision>p>a:not(.btn){
  font-size:15px;
}

/* Hotel pages: the "Vérifié en …" date above the sources is the same small
   label as on destination pages, not 16px body copy. */
body.hotel-detail-page .hotel-copy p.mametas-source-date{
  font-size:10px!important;
}

/* Single-column rhythm on smaller screens, with readable card padding. */
@media(max-width:760px) {
  body.mametas-explore-detail .intent-detail .article-body .verdict,
  body.mametas-explore-detail .intent-detail .article-body .verdict-box {
    padding:20px!important;
  }
  body.mametas-explore-detail .intent-detail .article-body .verdict p,
  body.mametas-explore-detail .intent-detail .article-body .verdict-box p,
  body.mametas-solo-detail .article-body .verdict p {
    font-size:17px!important;
    line-height:1.52!important;
  }
  body.mametas-solo-detail .article-body .place,
  body.mametas-solo-detail .article-body .note {
    padding:17px 18px!important;
  }
}

/* V4 FINAL VISUAL SIGNOFF 2026-10-10
   A Hotel Fit action inside a CSS grid must not stretch to the card height.
   This fixes 201px-high primary buttons in the Solo Female landing cards. */
body a.mametas-hotel-fit-primary {
  align-self:start!important;
  justify-self:start!important;
  height:auto!important;
  min-height:44px!important;
  max-height:none!important;
  flex:0 0 auto!important;
}

/* FINAL FAMILY LAYOUT CLOSURE — 2026-10-10
   Explore templates with just an article had been assigned the 250px sidebar
   grid track. Span the existing grid instead of rewriting page HTML. */
body.mametas-explore-detail .intent-detail .article-layout > .article-body:only-child {
  grid-column:1 / -1!important;
  width:100%!important;
  max-width:820px!important;
  min-width:0!important;
  margin-inline:auto!important;
}
/* Explore guides: the hero title uses the article scale of the other
   editorial guides (55px max) on a wider measure, so a long title takes two
   or three lines instead of a four-line block. */
body.mametas-explore-detail .intent-detail .article-hero h1 {
  font-size:clamp(38px,4vw,55px)!important;
  max-width:18ch!important;
}

/* The Solo Female guides are .article pages, not .article-body pages.
   Correct the actual component, leaving hub and hotel detail CSS alone. */
body.mametas-solo-detail .article > h1 {
  font-size:clamp(37px,4.1vw,54px)!important;
  line-height:1.13!important;
}
body.mametas-solo-detail .article > h2 {
  font-size:clamp(25px,2.65vw,29px)!important;
  line-height:1.25!important;
  margin:35px 0 14px!important;
}
body.mametas-solo-detail .article > h3 {
  font-size:clamp(20px,2.1vw,24px)!important;
  line-height:1.28!important;
}
body.mametas-solo-detail .article > p:not(.standfirst):not(.back),
body.mametas-solo-detail .article > ul,
body.mametas-solo-detail .article > ol,
body.mametas-solo-detail .article .place p {
  font-size:15px!important;
  line-height:1.68!important;
}
/* A Maps link and its Mametas hotel-page companion are two editorial links,
   not a 17px map label next to a 45px pseudo-button. */
body.mametas-solo-detail .article a.place-link,
body.mametas-solo-detail .article a.mametas-map-inline,
body.mametas-solo-detail .article a.place-link:visited,
body.mametas-solo-detail .article a.mametas-map-inline:visited {
  display:inline!important;
  width:auto!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0 0 1px!important;
  background:transparent!important;
  border:0!important;
  border-bottom:1px solid #b9903f!important;
  border-radius:0!important;
  box-shadow:none!important;
  color:#0e5265!important;
  font-family:Inter,Arial,sans-serif!important;
  font-size:13px!important;
  font-weight:600!important;
  line-height:1.55!important;
  letter-spacing:normal!important;
  text-transform:none!important;
  text-decoration:none!important;
  white-space:normal!important;
}
body.mametas-solo-detail .article a.place-link:focus-visible,
body.mametas-solo-detail .article a.mametas-map-inline:focus-visible {
  outline:2px solid #ad492f!important;
  outline-offset:3px!important;
}

/* The legacy place + link-cta selector is more specific than the generic
   editorial map rule. Keep map and hotel-page links at the same 13px scale. */
body.mametas-solo-detail .article .place a.place-link.link-cta.mametas-map-inline,
body.mametas-solo-detail .article .place a.place-link.link-cta.mametas-map-inline:visited {
  font-family:Inter,Arial,sans-serif!important;
  font-size:13px!important;
  font-weight:600!important;
  line-height:1.55!important;
  letter-spacing:normal!important;
  text-transform:none!important;
}


/* MAMETAS LINKS — 2026-10-11
   An in-text link is never bigger than the text around it. A link set in
   bold looks bigger at the same size, so it is set at 0.9em of its text.
   In the 9–10px method notes the weight is lowered instead. */
html body .spot-logistics a,
html body .article .spot-logistics a,
html body .culture-detail .spot-logistics a,
html body .article p.spot-logistics a,
html body .culture-detail p.spot-logistics a,
html body.rg-destination .spot-logistics a,
html body .ownership-note a,
html body .solo-voices-method a,
html body .gay-stay-links a,
html body .culture-logistics-grid a,
html body .verdict p > a:not(.dialect-inline),
html body.mametas-restaurant-detail .verdict a,
html body.mametas-restaurant-detail .culture-practical a,
html body.mametas-solo-detail .article p > a.mametas-map-inline {
  font-size:.9em!important;
}
html body .traveller-voice-method a,
html body .home-hotel-voice-method a {
  font-weight:500!important;
}

/* The "Try Riviera Fit" button inside a closing note: on its own line,
   in the coral used by every other Riviera Fit button. */
html body .ownership-note > a.btn {
  display:flex!important;
  width:max-content!important;
  margin-top:12px!important;
  font-size:11px!important;
  background:#ad492f!important;
  border-color:#ad492f!important;
  color:#fff!important;
}



/* ENTRE NOUS — the Mametas’ asides (single shared convention, 2026-10-16).
   A spontaneous remark, not a quotation box: no frame, no fill, no corners.
   A short coral mark, the small Inter label, then one sentence in Fraunces
   Regular, upright, with air around it. Same rule on every page. */
html body .mametas-aside {
  display:block!important;
  position:static!important;
  box-sizing:border-box!important;
  width:auto!important;
  max-width:560px!important;
  margin:30px 0 34px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  text-align:left!important;
}
html body .mametas-aside::before {
  content:"";
  display:block;
  width:28px;
  height:2px;
  margin:0 0 12px;
  background:var(--mametas-coral,#d86c4e);
}
html body .mametas-aside p.mametas-aside-label {
  margin:0 0 6px!important;
  padding:0!important;
  font-family:"Inter",var(--sans,sans-serif)!important;
  font-size:9.5px!important;
  font-weight:700!important;
  font-style:normal!important;
  line-height:1.3!important;
  letter-spacing:.14em!important;
  text-transform:uppercase!important;
  text-align:left!important;
  color:#ad492f!important;
}
html body .mametas-aside p.mametas-aside-label a {
  font-size:inherit!important;
  font-weight:inherit!important;
  letter-spacing:inherit!important;
  color:inherit!important;
  text-decoration:none!important;
  border:0!important;
}
html body .mametas-aside p.mametas-aside-label a:hover,
html body .mametas-aside p.mametas-aside-label a:focus-visible {
  color:var(--ink,#153a65)!important;
}
html body .mametas-aside p.mametas-aside-text {
  margin:0!important;
  padding:0!important;
  max-width:none!important;
  font-family:"Fraunces",Georgia,serif!important;
  font-size:19px!important;
  font-weight:400!important;
  font-style:normal!important;
  font-variation-settings:normal!important;
  line-height:1.4!important;
  letter-spacing:-.005em!important;
  text-transform:none!important;
  text-align:left!important;
  color:var(--ink,#153a65)!important;
}
@media (max-width:760px) {
  html body .mametas-aside { max-width:none!important; margin:24px 0 28px!important; }
  html body .mametas-aside p.mametas-aside-text { font-size:17px!important; }
}


/* RYTHME ÉDITORIAL - 2026-10-16
   Donner leur poids aux moments où les Mametas tranchent, sans nouveau
   composant ni nouvelle couleur : verdicts des outils, portrait,
   bandes photo des rubriques, choix des outils sur mobile, espaces Stay. */

/* Riviera Fit : le verdict à l'échelle d'un titre de page */
html body .chooser-result .chooser-result-head h2 {
  font-size:clamp(40px,5.2vw,68px)!important;
  line-height:1!important;
  letter-spacing:-.035em!important;
  margin:10px 0 20px!important;
}

/* Hotel Fit : la phrase de résultat se lit comme une phrase des Mametas */
html body p.engine-summary {
  max-width:760px!important;
  font-family:"Fraunces",Georgia,serif!important;
  font-size:clamp(22px,2.3vw,30px)!important;
  font-weight:400!important;
  line-height:1.2!important;
  color:var(--ink,#153a65)!important;
}

/* Accueil : un visage dans « Who are these ladies? » */
html body .about-home-strip .about-home-portrait {
  display:block;
  width:clamp(120px,13vw,170px);
  height:auto;
  margin:0 0 22px;
}

/* Explore et Destinations : bande photo sous le titre, comme Plan */
html body .hub-hero-visual--explore,
html body .hub-hero-visual--places { margin-top:0; }

/* Explore : le bloc final en Fraunces comme les autres titres */
html body .explore-practical-bridge .practical-bridge-inner h2 {
  font-family:"Fraunces",Georgia,serif!important;
  font-weight:500!important;
  letter-spacing:-.02em!important;
}

/* Outils sur mobile : les choix sur deux colonnes */
@media (max-width:600px) {
  html body .engine-buttons { grid-template-columns:1fr 1fr!important; }
  html body .engine-buttons button { min-height:44px; line-height:1.25; }
}
@media (max-width:480px) {
  html body .chooser-options button { flex:1 1 calc(50% - 7px)!important; min-height:44px; }
}

/* Stay : le bloc Hotel Fit moins isolé */
html body.hotels-harmonised .hotel-fit-launch {
  padding-top:clamp(26px,2.8vw,40px)!important;
  padding-bottom:clamp(18px,2vw,26px)!important;
}
html body.hotels-harmonised .hotel-fit-launch-grid { padding:clamp(22px,2.6vw,34px)!important; }
html body.hotels-harmonised .hotel-fit-launch + .v3-section { padding-top:clamp(30px,3.2vw,44px)!important; }
@media (max-width:760px) {
  html body.hotels-harmonised .hotel-fit-launch { padding-top:18px!important; padding-bottom:12px!important; }
  html body.hotels-harmonised .hotel-fit-launch-grid { padding:20px 16px!important; }
}

/* PRATIQUE : « Avant de partir », urgences et petit lexique - 2026-10-16
   Deux modules clairs séparés par un filet, sans aplat. Limité à la section
   .practical-before-go : la classe practical-safety-entry sert aussi au
   bandeau des dates 2027 de la page Stay, qui ne change pas. */
html body .practical-before-go { background:transparent!important; padding:clamp(40px,4.4vw,60px) 0!important; border-bottom:1px solid var(--line,rgba(21,58,101,.12))!important; }
html body .practical-before-go .practical-safety-pair { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line,rgba(21,58,101,.16)); }
html body .practical-before-go .practical-feature-card { display:block!important; min-height:0!important; margin:0!important; padding:24px 0 0!important; border:0!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; color:var(--ink,#153a65)!important; text-decoration:none!important; }
html body .practical-before-go .practical-feature-card--safety { padding-right:clamp(24px,3.5vw,48px)!important; }
html body .practical-before-go .practical-feature-card--lexicon { padding-left:clamp(24px,3.5vw,48px)!important; border-left:1px solid var(--line,rgba(21,58,101,.16))!important; }
html body .practical-before-go .practical-feature-copy { display:block!important; max-width:none!important; padding:0!important; }
html body .practical-before-go .practical-feature-copy small { display:block; font-size:10px!important; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
html body .practical-before-go .practical-feature-card--safety .practical-feature-copy small,
html body .practical-before-go .practical-feature-card--safety .practical-feature-copy b { color:#ad492f!important; }
html body .practical-before-go .practical-feature-card--lexicon .practical-feature-copy small { color:#0d596c!important; }
html body .practical-before-go .practical-feature-copy strong { display:block; max-width:22ch!important; margin:10px 0 10px!important; color:var(--ink,#153a65)!important; font-family:"Fraunces",Georgia,serif; font-weight:500; font-size:clamp(25px,2.3vw,32px)!important; line-height:1.08!important; letter-spacing:-.02em; }
html body .practical-before-go .practical-feature-copy p { max-width:46ch; margin:0 0 14px!important; color:var(--ink-soft,#3f4b63)!important; font-size:14px!important; line-height:1.55!important; }
html body .practical-before-go .practical-feature-copy b { font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
html body .practical-lexicon-words { display:flex; flex-wrap:wrap; gap:4px 16px; margin:0 0 16px; font-family:"Fraunces",Georgia,serif; font-size:19px; }
html body .practical-lexicon-words a { color:var(--ink,#153a65); }
html body .practical-lexicon-cta { display:inline-block; color:#0d596c!important; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; text-decoration:none!important; }
@media (max-width:760px) {
  html body .practical-before-go { padding:32px 0!important; }
  html body .practical-before-go .practical-safety-pair { grid-template-columns:1fr; }
  html body .practical-before-go .practical-feature-card--safety { padding:20px 0 22px!important; }
  html body .practical-before-go .practical-feature-card--lexicon { padding:20px 0 0!important; border-left:0!important; border-top:1px solid var(--line,rgba(21,58,101,.16))!important; }
}

/* RYTHME - 2026-10-16 (Explore, Pratique, Destinations FR/EN)
   Palette validée le 16 octobre 2026 (fond #FDFBF7, blanc #FFFFFF, lavis bleu #E8EFF0 et corail #F6E9E2) ; et deux
   lavis très pâles (bleu, corail) utilisés selon la fonction, jamais en
   alternance mécanique. Chaque page a sa propre séquence :
   - Destinations : verdict typographique, photos, une surprise (aparté sur lavis corail), décisions dépouillées.
   - Explore : photo, « 2 à 3 heures » en interruption corail, pont pratique en lavis bleu.
   - Pratique : « Sur place » en lavis bleu sans cartes, urgences sur lavis corail, étude en grand chiffre.
   Le fond #FDFBF7 vient de --paper (v3.css) et --cream (site.css). */
html body.rythme-test {
  --rt-ivory:#FDFBF7;
  --rt-blue:#E8EFF0;
  --rt-coral:#F6E9E2;
}
html body.rythme-test .article-hero,
html body.rythme-test .v3-section { background:transparent!important; }
html body.rythme-test.core-hub-final .article-hero { background:var(--rt-ivory)!important; }

/* Lavis pleine largeur : la section entière change de fond, le contenu reste libre */
html body.rythme-test .explore-time,
html body.rythme-test .practical-before-go .practical-feature-card--safety { background:var(--rt-coral)!important; }
html body.rythme-test .explore-practical-bridge,
html body.rythme-test .practical-onsite,
html body.rythme-test .hub-adoption-cue { background:var(--rt-blue)!important; border-color:transparent!important; }

/* Destinations : le verdict a une vraie présence typographique */
html body.rythme-test .hub-verdict {
  max-width:26ch;
  margin:18px 0 14px;
  font-family:"Fraunces",Georgia,serif;
  font-size:clamp(26px,2.8vw,38px);
  font-weight:400;
  line-height:1.1;
  letter-spacing:-.02em;
  color:var(--ink,#153a65);
}
html body.rythme-test .hub-verdict strong { font-weight:600; color:#ad492f; }

/* Destinations : la surprise, un seul aparté posé sur un lavis */
html body.rythme-test.rg-hub .mametas-aside {
  padding:20px 24px 22px!important;
  background:var(--rt-coral)!important;
}
html body.rythme-test.rg-hub .mametas-aside::before { margin-bottom:10px; }

/* Destinations : les décisions sans boîtes, en colonnes et grands chiffres */
html body.rythme-test .hesitation-compact .decision-grid { grid-template-columns:repeat(4,1fr)!important; gap:0!important; border-top:1px solid var(--line,rgba(21,58,101,.16)); }
html body.rythme-test .hesitation-compact .decision-card {
  min-height:0!important; padding:22px 22px 6px 0!important; margin:0!important;
  border:0!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; transform:none!important;
}
html body.rythme-test .hesitation-compact .decision-card + .decision-card { padding-left:22px!important; border-left:1px solid var(--line,rgba(21,58,101,.16))!important; }
html body.rythme-test .hesitation-compact .decision-number { display:block; font:400 clamp(34px,3.4vw,46px)/1 "Fraunces",Georgia,serif; color:#ad492f; letter-spacing:-.02em; }
html body.rythme-test .hesitation-compact .decision-card h3 { margin:12px 0 10px!important; font-size:clamp(23px,2vw,28px)!important; }

/* Explore : « 2 à 3 heures » devient une interruption, pas une carte */
html body.rythme-test .explore-time .time-entry-card {
  grid-template-columns:auto 1fr!important; gap:clamp(24px,4vw,56px); align-items:center;
  border:0!important; background:transparent!important; color:var(--ink,#153a65)!important;
}
html body.rythme-test .explore-time .time-entry-number {
  min-height:0!important; padding:0!important; border:0!important; background:transparent!important;
  font:400 clamp(96px,12vw,168px)/.9 "Fraunces",Georgia,serif!important; letter-spacing:-.05em; color:#ad492f!important;
}
html body.rythme-test .explore-time .time-entry-copy { padding:0!important; }
html body.rythme-test .explore-time .time-entry-copy strong { font-size:clamp(26px,2.6vw,36px)!important; color:var(--ink,#153a65)!important; }

/* Explore : le pont vers Pratique, ouvert sur son lavis */
html body.rythme-test .explore-practical-bridge .practical-bridge-inner { border:0!important; background:transparent!important; padding-left:0!important; padding-right:0!important; }

/* Pratique : « Sur place » sans cartes, quatre colonnes sur le lavis bleu */
html body.rythme-test .practical-onsite .practical-core-grid--four { gap:0!important; border-top:1px solid rgba(21,58,101,.16); }
html body.rythme-test .practical-onsite .architecture-card {
  padding:22px 22px 4px 0!important; border:0!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; transform:none!important;
}
html body.rythme-test .practical-onsite .architecture-card + .architecture-card { padding-left:22px!important; border-left:1px solid rgba(21,58,101,.16)!important; }

/* Pratique : urgences sur lavis corail, lexique libre à côté (relief par contraste) */
html body.rythme-test .practical-before-go .practical-safety-pair { border-top:0; align-items:stretch; }
html body.rythme-test .practical-before-go .practical-feature-card--safety { padding:28px clamp(24px,3vw,40px) 30px!important; border-left:3px solid #ad492f!important; }
html body.rythme-test .practical-before-go .practical-feature-card--lexicon { padding-top:28px!important; border-left:0!important; }
html body.rythme-test .practical-lexicon-words { font-size:clamp(22px,2vw,26px); gap:4px 18px; }

/* Pratique : l'étude en grand chiffre, sans boîte */
html body.rythme-test .data-entry-card--study {
  grid-template-columns:auto 1fr!important; gap:clamp(24px,4vw,56px); align-items:center;
  border:0!important; background:transparent!important; padding:6px 0 26px!important; border-bottom:1px solid var(--line,rgba(21,58,101,.16))!important;
}
html body.rythme-test .data-entry-card--study .data-entry-stats { display:block!important; padding:0!important; border:0!important; background:transparent!important; text-align:left; }
html body.rythme-test .data-entry-card--study .data-entry-stats b:first-child { display:block; font:400 clamp(84px,10vw,140px)/.9 "Fraunces",Georgia,serif!important; letter-spacing:-.05em; color:#ad492f!important; }
html body.rythme-test .data-entry-card--study .data-entry-stats em:nth-of-type(1) { display:block; margin-top:6px; }
html body.rythme-test .data-entry-card--study .data-entry-stats b:nth-of-type(2),
html body.rythme-test .data-entry-card--study .data-entry-stats em:nth-of-type(2) { display:none; }
html body.rythme-test .data-entry-card--study .data-entry-copy { padding:0!important; }
html body.rythme-test .data-entry-card--study .data-entry-copy strong { font-size:clamp(25px,2.4vw,34px)!important; }

@media (max-width:760px) {
  html body.rythme-test .hesitation-compact .decision-grid,
  html body.rythme-test .practical-onsite .practical-core-grid--four { grid-template-columns:1fr 1fr!important; }
  html body.rythme-test .hesitation-compact .decision-card,
  html body.rythme-test .practical-onsite .architecture-card { padding:18px 14px 8px 0!important; }
  html body.rythme-test .hesitation-compact .decision-card:nth-child(odd),
  html body.rythme-test .practical-onsite .architecture-card:nth-child(odd) { padding-left:0!important; border-left:0!important; }
  html body.rythme-test .hesitation-compact .decision-card:nth-child(even),
  html body.rythme-test .practical-onsite .architecture-card:nth-child(even) { padding-left:14px!important; }
  html body.rythme-test .hesitation-compact .decision-card:nth-child(n+3),
  html body.rythme-test .practical-onsite .architecture-card:nth-child(n+3) { border-top:1px solid rgba(21,58,101,.16)!important; }
  html body.rythme-test .explore-time .time-entry-card,
  html body.rythme-test .data-entry-card--study { grid-template-columns:1fr!important; gap:10px; }
  html body.rythme-test .practical-before-go .practical-feature-card--lexicon { border-top:0!important; }
  html body.rythme-test .explore-time .time-entry-number,
  html body.rythme-test .data-entry-card--study .data-entry-stats { justify-content:flex-start!important; justify-self:start!important; text-align:left!important; }
}

/* CARTES LISIBLES - 2026-10-16
   Cartes fonctionnelles (unités qu'on compare, ouvre ou consulte) : fond
   blanc pur et filet fin homogène sur tout le site. Les blocs éditoriaux,
   verdicts et apartés restent libres ; les bandeaux à accent de couleur
   (étude verte, urgences, agenda) gardent leur traitement. Seule la couleur
   du filet change, jamais son épaisseur : les accents latéraux restent.
   :where() laisse la main aux sections volontairement sans boîtes. */
html body :where(
  .fact, .hotel-choice-card, .hotel-card, .segment-hotel-card, .place,
  .culture-card, .restaurant-town-card, .home-experience-card, .travel-profile-card,
  .phase4-short-route, .phase4-plan-grid a, .architecture-card, .mametas-activity-card,
  .stay-card, .decision-card, .hotel-fit-demo-card, .data-entry-card, .home-profile-card,
  .practical-agenda-card, .practical-feature-card--photo, .riviera-fit-home-demo,
  .card, .culture-logistics
) {
  background-color:#FFFFFF!important;
  border-color:rgba(21,58,101,.22)!important;
  box-shadow:0 1px 2px rgba(21,58,101,.035)!important;
}
html body :where(
  .hotel-choice-card, .hotel-card, .segment-hotel-card, .culture-card, .restaurant-town-card,
  .home-experience-card, .travel-profile-card, .phase4-plan-grid a, .architecture-card,
  .stay-card, .decision-card, .home-profile-card, .card
):is(:hover, :focus-visible) {
  border-color:rgba(21,58,101,.38)!important;
}

/* Pratique : petit lexique incarné par une Mameta - 2026-10-16
   Portrait étroit à droite du texte. Desktop : il occupe toute la hauteur
   du contenu (du surtitre au lien), sans élargir la colonne. Mobile : il
   reste à côté du surtitre et du titre ; les mots et le lien passent
   dessous sur toute la largeur. Cadrage par object-fit pour garder le
   visage, le bandeau et le doigt levé. */
html body .practical-before-go .practical-feature-card--lexicon-portrait { display:grid!important; grid-template-columns:minmax(0,25rem) clamp(140px,11.5vw,168px); justify-content:start; column-gap:clamp(24px,2.6vw,40px); align-items:stretch; align-content:start; }
html body .practical-before-go .practical-lexicon-portrait { position:relative; align-self:stretch; min-height:0; margin:0 0 4px; padding:0; overflow:hidden; }
html body .practical-before-go .practical-feature-card--lexicon-portrait .practical-lexicon-cta { display:table; }
html body .practical-before-go .practical-lexicon-portrait img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:74% 50%; border-radius:0; filter:saturate(.92); }
@media (max-width:760px) {
  html body .practical-before-go .practical-feature-card--lexicon-portrait { grid-template-columns:minmax(0,1fr) 104px; grid-template-areas:"label portrait" "title portrait" "words words" "cta cta"; column-gap:18px; }
  html body .practical-before-go .practical-feature-card--lexicon-portrait .practical-feature-copy { display:contents!important; }
  html body .practical-before-go .practical-feature-card--lexicon-portrait .practical-feature-copy small { grid-area:label; }
  html body .practical-before-go .practical-feature-card--lexicon-portrait .practical-feature-copy strong { grid-area:title; margin-bottom:0!important; }
  html body .practical-before-go .practical-feature-card--lexicon-portrait .practical-lexicon-words { grid-area:words; margin-top:18px; }
  html body .practical-before-go .practical-feature-card--lexicon-portrait .practical-lexicon-cta { grid-area:cta; justify-self:start; }
  html body .practical-before-go .practical-lexicon-portrait { grid-area:portrait; min-height:0; margin-bottom:0; }
  /* Mobile : quatre mots sur une ligne (pichoun est déjà dans le titre) */
  html body .practical-before-go .practical-feature-card--lexicon-portrait .practical-lexicon-words a[href$="#pichoun"] { display:none; }
  html body .practical-before-go .practical-feature-card--lexicon-portrait .practical-lexicon-words a[href$="#mefi"] { order:1; }
  html body .practical-before-go .practical-feature-card--lexicon-portrait .practical-lexicon-words a[href$="#fada"] { order:2; }
  html body .practical-before-go .practical-feature-card--lexicon-portrait .practical-lexicon-words a[href$="#socca"] { order:3; }
  html body .practical-before-go .practical-feature-card--lexicon-portrait .practical-lexicon-words a[href$="#pissaladiere"] { order:4; }
  html body .practical-before-go .practical-lexicon-portrait img { object-position:60% 60%; }
}

/* Lexique : à l'arrivée sur un mot (#socca…), le mot reste visible sous
   l'en-tête collant au lieu d'être masqué par lui. */
html body .fact[id], html body h2[id] { scroll-margin-top:104px; }

/* Accueil : « Who are these ladies? » en une seule rangée - 2026-10-16
   Photo, titre et texte côte à côte, alignés en pied, pour supprimer le
   grand vide à droite de la photo. Mobile : photo à côté du titre, texte
   dessous sur toute la largeur. */
html body .about-home-strip .wrap { grid-template-columns:auto minmax(0,.85fr) minmax(0,1.15fr); grid-template-areas:"photo eyebrow text" "photo title text"; column-gap:clamp(28px,3.6vw,56px); row-gap:0; align-items:end; padding-top:clamp(40px,4.5vw,56px); padding-bottom:clamp(40px,4.5vw,56px); }
html body .about-home-strip .wrap > div:first-child { display:contents; }
html body .about-home-strip .about-home-portrait { grid-area:photo; align-self:end; margin:0; width:clamp(128px,12vw,168px); }
html body .about-home-strip .eyebrow { grid-area:eyebrow; align-self:end; }
html body .about-home-strip h2 { grid-area:title; }
html body .about-home-strip .wrap > div:last-child { grid-area:text; align-self:end; }
html body .about-home-strip .wrap > div:last-child p { margin-bottom:14px; }
@media (max-width:760px) {
  html body .about-home-strip .wrap { grid-template-columns:96px minmax(0,1fr); grid-template-areas:"photo eyebrow" "photo title" "text text"; column-gap:18px; row-gap:0; }
  html body .about-home-strip .about-home-portrait { width:96px; }
  html body .about-home-strip .wrap > div:last-child { margin-top:22px; }
}

/* Cartes texte de la grille Culture : contenu centré verticalement, sans vide en bas */
html body .culture-grid .culture-card-text { justify-content:center; }
html body .culture-grid .culture-card-text .culture-card-body { flex:0 0 auto; }
html body .culture-grid .culture-card-text .more { margin-top:0; padding-top:18px; }

/* GRASSE - 2026-10-16
   Destinations : les détours passent en grille 2 × 2 sur desktop, une
   colonne sur mobile comme les autres grilles de lieux. Guide parfum :
   fiches d'ateliers compactes en 2 × 2 dans la colonne d'article. */
html body.rg-hub .place-grid--detours { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 18px!important; }
html body.rg-hub .place-grid--detours .place-card-media { aspect-ratio:16/8!important; }
@media(max-width:760px){
  html body.rg-hub .place-grid--detours { grid-template-columns:1fr; }
  html body.rg-hub .place-grid--detours .place-card-media { aspect-ratio:16/9!important; }
}
html body .mametas-workshop-grid { margin:22px 0 34px; gap:14px; align-items:stretch; }
html body .mametas-workshop-grid > .mametas-activity-card { display:flex; flex-direction:column; min-width:0; }
html body .mametas-workshop-grid .mametas-activity-copy { display:flex; flex:1 1 auto; flex-direction:column; align-items:flex-start; padding:20px 20px 22px; }
html body .mametas-workshop-grid .mametas-activity-kicker { margin:0 0 8px; }
html body .mametas-workshop-grid h3 { margin:0 0 14px; font-size:clamp(23px,2.2vw,27px); line-height:1.08; }
html body .mametas-workshop-grid .mametas-workshop-facts { width:100%; margin:0 0 6px; padding:0; }
html body .mametas-workshop-grid .mametas-workshop-facts > div { display:grid; grid-template-columns:minmax(78px,32%) 1fr; gap:12px; padding:7px 0; border-top:1px solid rgba(21,58,101,.12); font-size:13px; line-height:1.42; }
html body .mametas-workshop-grid .mametas-workshop-facts dt { color:var(--ink-soft,#5e5a54); font:600 10px/1.6 var(--sans,"Inter",sans-serif); letter-spacing:.07em; text-transform:uppercase; }
html body .mametas-workshop-grid .mametas-workshop-facts dd { margin:0; color:var(--ink,#153a65); }
html body .mametas-workshop-grid .mametas-catch { margin-bottom:18px; }
html body .mametas-workshop-grid .mametas-activity-cta { margin-top:auto; text-transform:none; letter-spacing:.01em; font-size:11px; }
@media(max-width:760px){ html body .mametas-workshop-grid { grid-template-columns:1fr; } }
html body .article .intent-table--compact { min-width:0; }
html body .mametas-route-steps { list-style:none; margin:18px 0 28px; padding:0; counter-reset:leg; border-top:1px solid rgba(21,58,101,.14); }
html body .mametas-route-steps > li { counter-increment:leg; display:grid; grid-template-columns:30px minmax(0,1fr); gap:3px 14px; margin:0; padding:14px 0 15px; border-bottom:1px solid rgba(21,58,101,.14); }
html body .mametas-route-steps > li::before { content:counter(leg); grid-row:1 / span 2; width:28px; height:28px; border:1px solid #d86c4e; border-radius:50%; color:#ad492f; display:grid; place-items:center; font:600 12px/1 var(--sans,"Inter",sans-serif); }
html body .mametas-route-steps > li > b { color:var(--ink,#153a65); font-family:var(--serif,"Fraunces",serif); font-size:19px; font-weight:500; line-height:1.25; }
html body .mametas-route-steps > li > span { color:var(--ink-soft,#5e5a54); font-size:14.5px; line-height:1.6; }
/* Accueil : quatre détours (Grasse inclus) sur une rangée en desktop ;
   2 × 2 puis une colonne gardent les règles existantes. */
@media(min-width:981px){
  .mametas-city-grid[data-city-group="detour"] { grid-template-columns:repeat(4,minmax(0,1fr)); }
}

/* Partage : menu de secours quand le navigateur n'a pas de feuille de
   partage native (navigateurs intégrés d'Instagram, Facebook, Gmail…,
   certains navigateurs desktop). WhatsApp, SMS, e-mail, Facebook, copier. */
html body .mametas-share-row { position:relative; }
html body .mametas-share-menu { position:absolute; top:100%; left:0; z-index:40; display:flex; flex-direction:column; min-width:210px; margin-top:6px; padding:6px 0; background:#FFFFFF; border:1px solid rgba(21,58,101,.22); box-shadow:0 10px 28px rgba(21,58,101,.14); }
html body .mametas-share-menu[hidden] { display:none; }
html body .mametas-share-menu a,
html body .mametas-share-menu button { display:block; width:100%; box-sizing:border-box; padding:12px 16px; border:0; background:transparent; color:var(--ink,#153a65)!important; font:500 14px/1.3 var(--sans,"Inter",sans-serif); text-align:left; text-decoration:none!important; cursor:pointer; }
html body .mametas-share-menu button { border-top:1px solid rgba(21,58,101,.1); margin-top:4px; padding-top:14px; }
html body .mametas-share-menu a:hover, html body .mametas-share-menu a:focus-visible,
html body .mametas-share-menu button:hover, html body .mametas-share-menu button:focus-visible { background:#F6E9E2; outline:none; }

/* LES MAMETAS ONT LEUR MOT À DIRE - 2026-10-17
   Page de marque : portraits qui surgissent en alternance, sentences
   typographiques libres, citations en blocs à filet fin et coins arrondis,
   confessions sur aplat corail ou bleu très pâles. Palette et typos du site.
   Échelle alignée sur les pages éditoriales (H1 55 px / chapô 21 px / texte
   16 px) : seuls le titre et les sentences gardent un léger surcroît. */
body.mametas-opinions { background:#FDFBF7; }
body.mametas-opinions .mo-main { background:#FDFBF7; }
.mo-page { box-sizing:border-box; max-width:960px; margin:0 auto; padding:clamp(24px,3vw,40px) 24px clamp(52px,5.6vw,80px); color:#153a65; }
.mo-head { max-width:720px; margin:0 0 clamp(28px,3vw,40px); }
.mo-head .mametas-detail-back { display:inline-block; margin-bottom:20px; }
.mo-eyebrow { margin:0 0 14px; color:#ad492f; font:700 11px/1.3 Inter,Arial,sans-serif; letter-spacing:.15em; text-transform:uppercase; }
.mo-head h1 { margin:0 0 16px; color:#153a65; font-family:Fraunces,Georgia,serif; font-weight:500; font-size:clamp(38px,4vw,55px); line-height:.98; letter-spacing:-.02em; }
.mo-sub { margin:0 0 18px; color:#153a65; font-family:Fraunces,Georgia,serif; font-style:italic; font-weight:500; font-size:clamp(19px,1.6vw,22px); line-height:1.42; }
.mo-intro { max-width:600px; margin:0; color:#3f4759; font:400 16px/1.68 Inter,Arial,sans-serif; }
.mo-page blockquote { margin:0; }
.mo-page blockquote p { margin:0; }
.mo-by { display:flex; align-items:center; margin-top:10px; color:#ad492f; font-family:Fraunces,Georgia,serif; font-style:italic; font-weight:500; font-size:clamp(16px,1.2vw,17px); line-height:1.2; }
.mo-page em { font-style:italic; color:#ad492f; }
/* Scenes: portrait + words, alternating sides */
.mo-scene { display:grid; grid-template-columns:minmax(0,280px) minmax(0,1fr); gap:clamp(24px,3vw,44px); align-items:center; margin:clamp(30px,3.4vw,46px) 0; }
.mo-scene--right { grid-template-columns:minmax(0,1fr) minmax(0,280px); }
.mo-scene--right .mo-portrait { order:2; }
.mo-scene-text { display:grid; gap:clamp(14px,1.2vw,16px); }
.mo-portrait { margin:0; max-width:280px; }
.mo-scene--right .mo-portrait { justify-self:end; }
.mo-portrait img { display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:14px; }
.mo-portrait figcaption { display:grid; gap:3px; margin-top:12px; }
.mo-name { color:#153a65; font-family:Fraunces,Georgia,serif; font-size:22px; font-weight:500; line-height:1.1; }
.mo-trait { color:#5e5a54; font:400 13.5px/1.5 Inter,Arial,sans-serif; }
/* Typographic sentences, no frame */
.mo-sentence p { color:#153a65; font-family:Fraunces,Georgia,serif; font-weight:500; font-size:clamp(25px,2.4vw,34px); line-height:1.16; letter-spacing:-.012em; }
/* Framed quotes */
.mo-quote { padding:clamp(18px,1.7vw,22px) clamp(18px,1.9vw,24px); background:#FFFFFF; border:1px solid rgba(21,58,101,.22); border-radius:12px; box-shadow:0 1px 2px rgba(21,58,101,.035); }
.mo-quote p { color:#153a65; font-family:Fraunces,Georgia,serif; font-weight:500; font-size:clamp(18px,1.4vw,20px); line-height:1.36; }
/* Confessions, on a pale wash */
.mo-confession { padding:clamp(20px,2.2vw,28px); background:#F6E9E2; border-radius:14px; }
.mo-confession--blue { background:#E8EFF0; }
.mo-confession p { color:#153a65; font-family:Fraunces,Georgia,serif; font-style:italic; font-weight:500; font-size:clamp(19px,1.6vw,22px); line-height:1.38; }
/* Pairs, deliberately offset */
.mo-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(16px,1.8vw,24px); align-items:start; max-width:780px; margin:clamp(18px,1.8vw,26px) 0 clamp(22px,2.2vw,32px) auto; }
.mo-pair > :nth-child(2) { margin-top:clamp(18px,2.2vw,32px); }
.mo-pair--left { margin-left:0; margin-right:auto; }
.mo-pair--return { grid-template-columns:minmax(0,7fr) minmax(0,5fr); max-width:none; margin-left:0; }
/* Breathing sentences */
.mo-breath { max-width:680px; margin:clamp(40px,4.4vw,62px) auto; text-align:center; }
.mo-breath .mo-by { justify-content:center; }
.mo-breath--offset { margin-left:clamp(0px,7vw,110px); text-align:left; }
.mo-breath--offset .mo-by { justify-content:flex-start; }
.mo-breath .mo-sentence p { font-size:clamp(28px,2.8vw,40px); }
/* Finale */
.mo-finale { max-width:680px; margin:clamp(44px,4.8vw,66px) auto 0; padding-top:clamp(28px,2.6vw,38px); border-top:1px solid rgba(21,58,101,.16); text-align:center; }
.mo-finale .mo-by { justify-content:center; }
.mo-finale-text { max-width:480px; margin:clamp(18px,2vw,24px) auto 20px; color:#3f4759; font:400 16px/1.65 Inter,Arial,sans-serif; }
.mo-finale-actions { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:12px 24px; margin:0; }
.mo-cta { display:inline-flex; align-items:center; min-height:46px; padding:0 22px; background:#153a65; color:#FFFFFF!important; border-radius:0; font:600 14.5px/1 Inter,Arial,sans-serif; text-decoration:none!important; }
.mo-cta:hover, .mo-cta:focus-visible { background:#ad492f; }
.mo-link { color:#153a65; font:600 14.5px/1.3 Inter,Arial,sans-serif; text-decoration:underline; text-decoration-color:#d86c4e; text-underline-offset:4px; }
@media (max-width:760px) {
  .mo-page { padding-left:18px; padding-right:18px; }
  .mo-head { margin-bottom:26px; }
  .mo-head h1 { font-size:38px; line-height:1; }
  .mo-sub { font-size:19px; }
  .mo-scene, .mo-scene--right { grid-template-columns:1fr; gap:12px; margin:30px 0 20px; }
  .mo-scene--right .mo-portrait { order:0; justify-self:end; }
  .mo-portrait { width:56%; }
  .mo-portrait figcaption { margin-top:8px; }
  .mo-scene--right .mo-portrait { margin-left:auto; }
  .mo-name { font-size:20px; }
  .mo-pair, .mo-pair--return { grid-template-columns:1fr; gap:10px; margin:18px 0 26px; max-width:none; }
  .mo-pair > :nth-child(2) { margin-top:0; margin-left:10%; }
  .mo-pair--return > :nth-child(2) { margin-left:0; }
  .mo-quote p { font-size:18px; }
  .mo-confession { padding:20px; }
  .mo-confession p { font-size:19px; }
  .mo-breath, .mo-breath--offset { margin:34px 0; text-align:left; }
  .mo-breath .mo-by { justify-content:flex-start; }
  .mo-sentence p { font-size:clamp(24px,6.6vw,27px); }
  .mo-breath .mo-sentence p { font-size:clamp(26px,7.4vw,30px); }
  .mo-finale { margin-top:40px; padding-top:26px; text-align:left; }
  .mo-finale .mo-by { justify-content:flex-start; }
  .mo-finale-text { margin-left:0; }
  .mo-finale-actions { justify-content:flex-start; }
}

/* INTERLUDE MAMETA - 2026-10-17
   Petit renvoi vers « The Mametas Have Opinions » : portrait carré,
   prénom, citation, lien. Variante --text sans photo, plus discrète. */
.mameta-interlude { display:grid; grid-template-columns:120px minmax(0,1fr); gap:clamp(18px,2.4vw,30px); align-items:center; max-width:820px; margin:clamp(26px,3vw,36px) 0 0; padding-top:clamp(18px,2vw,24px); border-top:1px solid rgba(21,58,101,.14); }
.mameta-interlude-portrait { width:120px; height:120px; margin:0; overflow:hidden; border-radius:14px; background:#e9e1d2; }
.mameta-interlude-portrait img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 24%; }
.mameta-interlude-label { margin:0 0 8px; color:var(--ink-soft,#5e5a54); font:600 10.5px/1.3 Inter,Arial,sans-serif; letter-spacing:.17em; text-transform:uppercase; }
.mameta-interlude-quote { margin:0 0 12px; }
.mameta-interlude-quote p { margin:0; color:#153a65; font-family:Fraunces,Georgia,serif; font-size:clamp(24px,2.3vw,30px); font-weight:500; line-height:1.12; letter-spacing:-.015em; }
.mameta-interlude-quote em { font-style:italic; color:#ad492f; }
.mameta-interlude-cta { color:#153a65!important; font:700 10.5px/1.3 Inter,Arial,sans-serif; letter-spacing:.11em; text-transform:uppercase; text-decoration:underline!important; text-decoration-color:#d86c4e!important; text-underline-offset:4px; }
.mameta-interlude--text { display:block; max-width:640px; margin:clamp(26px,3vw,36px) auto 0; padding-top:0; border-top:0; text-align:center; }
.mameta-interlude--text .mameta-interlude-quote { margin-bottom:8px; }
.mameta-interlude--text .mameta-interlude-quote p { font-style:italic; font-size:clamp(20px,1.9vw,24px); line-height:1.25; }
.mameta-interlude--text .mameta-interlude-label { margin:0; }
@media (max-width:760px) {
  .mameta-interlude { grid-template-columns:84px minmax(0,1fr); gap:14px; margin-top:22px; padding-top:16px; }
  .mameta-interlude-portrait { width:84px; height:84px; border-radius:10px; }
  .mameta-interlude-label { margin-bottom:6px; font-size:9px; }
  .mameta-interlude-quote { margin-bottom:8px; }
  .mameta-interlude-quote p { font-size:clamp(18px,5.2vw,21px); }
  .mameta-interlude-cta { font-size:9.5px; }
  .mameta-interlude--text { margin-top:22px; text-align:left; }
  .mameta-interlude--text .mameta-interlude-quote p { font-size:18px; }
}
