/* Mametas Riviera UI v2 — final overlay for Riviera Guide + Riviera Fit
   Loaded last, after site.css / v3.css / riviera-chooser.css. */

:root{
  --rg-ink:#153a65;
  --rg-soft:#43506a;
  --rg-line:rgba(21,58,101,.16);
  --rg-bg:#FDFBF7;
  --rg-white:#FFFFFF;
  --rg-coral:#d86d4e;
  --rg-serif:Fraunces,Georgia,serif;
  --rg-sans:Inter,Arial,sans-serif;
}

/* ---------- shared ---------- */
body.rg-hub,
body.rg-destination,
body.rg-fit{background:var(--rg-bg)}
body.rg-hub main,
body.rg-destination main,
body.rg-fit main{overflow:clip}

body.rg-hub .wrap,
body.rg-destination .wrap,
body.rg-fit .wrap{max-width:1180px!important}

body.rg-hub h1,
body.rg-destination h1,
body.rg-fit h1{
  letter-spacing:-.035em!important;
}
body.rg-hub h2,
body.rg-destination h2,
body.rg-fit h2{
  letter-spacing:-.025em!important;
}

/* ---------- Riviera Guide hub ---------- */
body.rg-hub .article-hero{
  padding:54px 0 42px!important;
}
body.rg-hub .article-hero h1{
  max-width:18ch!important;
  margin:8px 0 14px!important;
  font-size:clamp(38px,4vw,55px)!important;
  line-height:1!important;
}
body.rg-hub .article-deck{
  max-width:760px!important;
  margin-top:0!important;
  font-size:19px!important;
  line-height:1.5!important;
}
body.rg-hub .article-meta{
  margin-top:18px!important;
}
body.rg-hub .v3-section{
  padding:42px 0!important;
  border-top:1px solid var(--rg-line)!important;
}
body.rg-hub .section-heading{
  gap:28px!important;
  margin-bottom:22px!important;
}
body.rg-hub .section-heading h2{
  margin:0!important;
  font-size:clamp(28px,2.4vw,34px)!important;
  line-height:1.06!important;
}
body.rg-hub .section-heading>p{
  max-width:48ch!important;
  font-size:13.5px!important;
  line-height:1.5!important;
}
body.rg-hub .place-grid{
  gap:12px!important;
}
body.rg-hub .place-card{
  min-height:0!important;
  padding-bottom:16px!important;
}
body.rg-hub .place-card-media{
  aspect-ratio:16/9!important;
}
body.rg-hub .place-card h3{
  margin:14px 16px 7px!important;
  font-size:25px!important;
  line-height:1.05!important;
}
body.rg-hub .place-card p{
  margin:0 16px!important;
  font-size:12.5px!important;
  line-height:1.52!important;
}
body.rg-hub .decision-grid{
  gap:12px!important;
}
body.rg-hub .decision-card{
  min-height:0!important;
  padding:18px 20px!important;
}
body.rg-hub .decision-card .decision-number{
  margin-bottom:8px!important;
}
body.rg-hub .decision-card h3{
  margin:0 0 8px!important;
  font-size:24px!important;
  line-height:1.06!important;
}
body.rg-hub .decision-card p{
  margin:0 0 14px!important;
  font-size:12.5px!important;
  line-height:1.5!important;
}

/* ---------- destination pages: common typography ---------- */
body.rg-destination article{
  color:var(--rg-ink);
}
body.rg-destination .article>h1,
body.rg-destination article .article-hero h1,
body.rg-destination .article-header h1{
  font-size:clamp(38px,4vw,55px)!important;
  line-height:1.01!important;
}
body.rg-destination .standfirst,
body.rg-destination .article-deck{
  max-width:760px!important;
  font-size:19px!important;
  line-height:1.48!important;
}
body.rg-destination .article p,
body.rg-destination .article-body p{
  color:var(--rg-soft);
  font-size:15px!important;
  line-height:1.62!important;
}
body.rg-destination .article h2,
body.rg-destination .article-body>h2{
  font-size:clamp(27px,2.55vw,32px)!important;
  line-height:1.08!important;
}
body.rg-destination .article h3,
body.rg-destination .article-body h3{
  font-size:21px!important;
  line-height:1.14!important;
}

/* ---------- legacy destination pages (Nice/Cannes/Eze/St-Paul/St-Tropez) ---------- */
body.rg-destination.rg-legacy .article{
  max-width:1120px!important;
  padding:46px 32px 58px!important;
}
body.rg-destination.rg-legacy .article>.back,
body.rg-destination.rg-legacy .article>.meta,
body.rg-destination.rg-legacy .article>h1,
body.rg-destination.rg-legacy .article>.standfirst,
body.rg-destination.rg-legacy .article>.destination-practical,
body.rg-destination.rg-legacy .article>.fact-grid,
body.rg-destination.rg-legacy .article>.culture-hero-media,
body.rg-destination.rg-legacy .article>img{
  max-width:820px!important;
}
/* The verification badge keeps the 820px cap but never exceeds the column on phones. */
body.rg-destination.rg-legacy .article>.mametas-checked{
  max-width:min(820px,100%)!important;
}
body.rg-destination.rg-legacy .legacy-destination-layout{
  display:grid!important;
  grid-template-columns:190px minmax(0,1fr)!important;
  gap:34px!important;
  align-items:start!important;
  margin-top:30px!important;
}
body.rg-destination.rg-legacy .legacy-destination-toc{
  position:sticky!important;
  top:104px!important;
  padding:12px 0!important;
  border-top:1px solid var(--rg-line)!important;
  border-bottom:1px solid var(--rg-line)!important;
}
body.rg-destination.rg-legacy .legacy-destination-toc>span{
  display:block!important;
  margin-bottom:8px!important;
  color:var(--rg-coral)!important;
  font:800 9px/1.3 var(--rg-sans)!important;
  letter-spacing:.15em!important;
}
body.rg-destination.rg-legacy .legacy-destination-toc ol{
  list-style:none!important;
  margin:0!important;
  padding:0!important;
}
body.rg-destination.rg-legacy .legacy-destination-toc li+li{margin-top:7px!important}
body.rg-destination.rg-legacy .legacy-destination-toc a{
  color:var(--rg-soft)!important;
  font:600 11.5px/1.35 var(--rg-sans)!important;
  text-decoration:none!important;
}
body.rg-destination.rg-legacy .legacy-destination-section{
  padding:19px 0 21px!important;
  border-top:1px solid var(--rg-line)!important;
}
body.rg-destination.rg-legacy .legacy-destination-section:first-child{
  padding-top:0!important;
  border-top:0!important;
}
body.rg-destination.rg-legacy .legacy-destination-section>h2{
  margin:0 0 8px!important;
}
body.rg-destination.rg-legacy .legacy-destination-section>p:last-child{margin-bottom:0!important}
body.rg-destination.rg-legacy .verdict{
  margin:17px 0!important;
  padding:18px 20px!important;
}
body.rg-destination.rg-legacy .fact-grid{
  gap:8px!important;
  margin:18px 0 24px!important;
}
body.rg-destination.rg-legacy .fact{padding:13px 14px!important}
body.rg-destination.rg-legacy .destination-practical{margin:18px 0 24px!important}

/* ---------- V3 destination pages ---------- */
body.rg-destination.rg-v3 article{
  max-width:1180px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
body.rg-destination.rg-v3 .article-layout{
  grid-template-columns:210px minmax(0,1fr)!important;
  gap:34px!important;
}
body.rg-destination.rg-v3 .article-aside{
  position:sticky!important;
  top:104px!important;
  align-self:start!important;
}
body.rg-destination.rg-v3 .article-body{
  max-width:820px!important;
}
body.rg-destination.rg-v3 .article-body>h2{
  margin:26px 0 8px!important;
  padding-top:20px!important;
  border-top:1px solid var(--rg-line)!important;
}
body.rg-destination.rg-v3 .article-body>h2:first-child{
  margin-top:0!important;
  padding-top:0!important;
  border-top:0!important;
}
body.rg-destination.rg-v3 .verdict-box,
body.rg-destination.rg-v3 .day-card,
body.rg-destination.rg-v3 .source-box,
body.rg-destination.rg-v3 .itinerary-stay-prompt{
  margin-top:16px!important;
  margin-bottom:20px!important;
}
body.rg-destination.rg-v3 .day-card,
body.rg-destination.rg-v3 .verdict-box{
  padding:18px 20px!important;
}

/* ---------- canonical What not to miss ---------- */
body.rg-destination .city-must-list{
  margin:26px 0 0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
}
body.rg-destination .city-must-list>h2{
  margin:0 0 5px!important;
  font-size:30px!important;
}
body.rg-destination .city-must-intro{
  max-width:68ch!important;
  margin:0 0 9px!important;
  font-size:13px!important;
  line-height:1.48!important;
}
body.rg-destination .city-must-items{
  border-top:1px solid var(--rg-line)!important;
  border-bottom:1px solid var(--rg-line)!important;
}
body.rg-destination .city-must-item{
  display:grid!important;
  grid-template-columns:minmax(170px,.72fr) minmax(0,1.28fr)!important;
  gap:20px!important;
  align-items:start!important;
  padding:10px 0 11px!important;
  border:0!important;
  border-bottom:1px solid var(--rg-line)!important;
  background:transparent!important;
}
body.rg-destination .city-must-item:last-child{border-bottom:0!important}
body.rg-destination .city-must-item h3{
  margin:0!important;
  font-size:20px!important;
  font-weight:500!important;
  line-height:1.14!important;
}
body.rg-destination .city-must-item p{
  margin:0!important;
  font-size:13.5px!important;
  line-height:1.48!important;
}

/* ---------- Riviera Fit ---------- */
body.rg-fit .chooser-hero{
  padding:46px 0 34px!important;
}
body.rg-fit .chooser-page-intro h1{
  max-width:18ch!important;
  font-size:clamp(38px,4vw,55px)!important;
  line-height:1!important;
}
body.rg-fit .chooser-page-intro .article-deck{
  max-width:760px!important;
  font-size:18px!important;
  line-height:1.5!important;
}
body.rg-fit .chooser-hero+.v3-section{
  padding-top:40px!important;
}
body.rg-fit .chooser-step{
  padding:18px 20px!important;
}
body.rg-fit .chooser-step h2{
  font-size:24px!important;
  line-height:1.12!important;
}
body.rg-fit .chooser-result{
  margin-top:28px!important;
  padding-top:26px!important;
}
body.rg-fit .chooser-result-head{
  max-width:780px!important;
}
body.rg-fit .chooser-result h2{
  margin:3px 0 11px!important;
  font-size:clamp(26px,2.4vw,34px)!important;
  line-height:1.05!important;
  letter-spacing:-.035em!important;
}
body.rg-fit .chooser-decision-label{
  margin:16px 0 6px!important;
  font-size:20px!important;
  line-height:1.12!important;
}
body.rg-fit .chooser-lead{
  max-width:720px!important;
  font-size:16px!important;
  line-height:1.55!important;
}
body.rg-fit .chooser-pace{margin-top:11px!important;padding-top:11px!important}
body.rg-fit .chooser-reality{margin-top:20px!important;padding:18px!important;gap:20px!important}
body.rg-fit .chooser-alternatives{margin-top:15px!important;padding-top:17px!important}
body.rg-fit .chooser-result-grid{margin-top:20px!important;gap:12px!important}
body.rg-fit .chooser-do,
body.rg-fit .chooser-skip{padding:18px!important}
body.rg-fit .chooser-further,
body.rg-fit .chooser-escape{margin-top:14px!important;padding:18px!important}
body.rg-fit .chooser-hotels{margin-top:20px!important;padding-top:20px!important}

@media(max-width:800px){
  body.rg-hub .article-hero{padding:38px 0 30px!important}
  body.rg-hub .article-hero h1{font-size:clamp(34px,9.8vw,38px)!important}
  body.rg-hub .article-deck{font-size:17px!important}
  body.rg-hub .v3-section{padding:32px 0!important}
  body.rg-hub .section-heading{display:block!important;margin-bottom:16px!important}
  body.rg-hub .section-heading h2{font-size:26px!important}
  body.rg-hub .section-heading>p{margin-top:8px!important}
  body.rg-hub .decision-card{padding:16px 17px!important}

  body.rg-destination .article>h1,
  body.rg-destination article .article-hero h1,
  body.rg-destination .article-header h1{
    font-size:clamp(34px,9.8vw,38px)!important;
  }
  body.rg-destination .standfirst,
  body.rg-destination .article-deck{font-size:17px!important}
  body.rg-destination.rg-legacy .article{padding:36px 22px 46px!important}
  body.rg-destination.rg-legacy .legacy-destination-layout{display:block!important;margin-top:22px!important}
  body.rg-destination.rg-legacy .legacy-destination-toc{display:none!important}
  body.rg-destination.rg-legacy .legacy-destination-section{padding:16px 0 18px!important}
  body.rg-destination.rg-v3 .article-layout{display:block!important}
  body.rg-destination.rg-v3 .article-aside{position:static!important;margin-bottom:18px!important}
  body.rg-destination.rg-v3 .article-body{max-width:none!important}
  body.rg-destination.rg-v3 .article-body>h2{font-size:26px!important;margin-top:22px!important;padding-top:17px!important}
  body.rg-destination .city-must-list>h2{font-size:27px!important}
  body.rg-destination .city-must-item{
    grid-template-columns:1fr!important;
    gap:3px!important;
    padding:9px 0 10px!important;
  }
  body.rg-destination .city-must-item h3{font-size:20px!important}
  body.rg-destination .city-must-item p{font-size:13px!important}

  body.rg-fit .chooser-hero{padding:34px 0 27px!important}
  body.rg-fit .chooser-page-intro h1{font-size:clamp(34px,9.8vw,38px)!important}
  body.rg-fit .chooser-page-intro .article-deck{font-size:17px!important}
  body.rg-fit .chooser-step{padding:15px 16px!important}
  body.rg-fit .chooser-step h2{font-size:22px!important}
  body.rg-fit .chooser-result{margin-top:22px!important;padding-top:20px!important}
  body.rg-fit .chooser-result h2{font-size:26px!important}
  body.rg-fit .chooser-decision-label{font-size:18px!important;margin-top:13px!important}
  body.rg-fit .chooser-lead{font-size:15.5px!important}
  body.rg-fit .chooser-reality{grid-template-columns:1fr!important}
}
