/*
Theme Name: RoamVisa
Theme URI: https://roamvisa.example.com
Author: RoamVisa
Author URI: https://roamvisa.example.com
Description: A clean, fast editorial theme for travel blogs — how-to guides, destination hubs and travel-insurance reads. 8 switchable Google-font pairings, full Customizer control over colors/layout/typography, auto table of contents, reading-progress bar and share buttons. Mobile-first and block-ready.
Version: 2.9.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: roamvisa
Tags: blog, travel, two-columns, custom-menu, featured-images, editor-style, translation-ready, threaded-comments
*/

/* ============================================================
   RoamVisa — tokens
   ============================================================ */
:root{
  /* Palette: Passport Blue (1b) — logo blue leads, coral is the action colour */
  --rv-bg:#F4F7FB;
  --rv-bg-cream:#E9EFF7;
  --rv-bg-blush:#FFE7DC;
  --rv-ink:#0B1F33;
  --rv-ink-2:#1E3448;
  --rv-muted:#5B6B7C;
  --rv-muted-2:#7B8A99;
  --rv-line:rgba(11,31,51,.10);
  --rv-line-soft:rgba(11,31,51,.06);
  --rv-accent:#1668B8;
  --rv-accent-2:#7FD1E8;
  --rv-accent-deep:#0F4F8F;
  --rv-coral:#FF6A3D;
  --rv-coral-deep:#E14E22;
  --rv-sky:#DCEEF9;
  --rv-dark:#0B1F33;
  --rv-dark-card:#12293F;
  --rv-white:#fff;
  --rv-shadow:0 10px 24px rgba(11,31,51,.07);
  --rv-wrap:1180px;
  --rv-read:760px;
  --rv-radius:16px;
  --rv-radius-lg:22px;
  --rv-pad:48px;
  --font-serif:'Instrument Serif',Georgia,'Times New Roman',serif;
  --font-sans:'Manrope',system-ui,-apple-system,Segoe UI,sans-serif;
}

/* ============================================================
   Base
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--rv-bg);
  color:var(--rv-ink);
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:color .15s ease}
a.rv-hover:hover,.rv-nav a:hover,.rv-foot a:hover{color:var(--rv-accent)}
h1,h2,h3,h4{margin:0;font-weight:400}
p{margin:0 0 1.1em}
button{font-family:inherit;cursor:pointer}
.rv-wrap{max-width:var(--rv-wrap);margin:0 auto;padding-left:var(--rv-pad);padding-right:var(--rv-pad)}
.serif{font-family:var(--font-serif)}
.rv-skip{position:absolute;left:-9999px}
.rv-skip:focus{left:16px;top:16px;background:var(--rv-ink);color:#fff;padding:10px 16px;border-radius:8px;z-index:999}

/* ============================================================
   Buttons / pills
   ============================================================ */
.rv-btn{
  display:inline-block;background:var(--rv-coral);color:#fff;
  font-size:14px;font-weight:700;padding:11px 22px;border-radius:6px;border:0;
  transition:background .15s ease,transform .15s ease;
}
.rv-btn:hover{background:var(--rv-coral-deep);color:#fff}
.rv-btn--pill{border-radius:999px;padding:12px 24px}
.rv-eyebrow{font-size:13px;font-weight:700;color:var(--rv-accent);letter-spacing:.01em}
.rv-kicker{font-size:12px;font-weight:700;color:var(--rv-accent);letter-spacing:.06em;text-transform:uppercase}
.rv-tag{background:var(--rv-sky);color:var(--rv-accent-deep);font-size:12px;font-weight:700;padding:6px 14px;border-radius:999px;display:inline-block}

/* ============================================================
   Header
   ============================================================ */
.rv-header{background:var(--rv-white);border-bottom:1px solid var(--rv-line-soft);position:sticky;top:0;z-index:50}
.rv-header__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:18px;padding-bottom:18px}
.rv-logo{font-family:var(--font-serif);font-size:26px;line-height:1;color:var(--rv-ink)}
.rv-logo b{font-weight:400}
.rv-logo .dot,.rv-logo em{color:var(--rv-accent);font-style:normal}
.rv-nav{display:flex;gap:34px;font-size:15px;font-weight:600}
.rv-nav ul{list-style:none;display:flex;gap:34px;margin:0;padding:0}
.rv-nav a{color:var(--rv-ink)}
.rv-nav .current-menu-item>a{color:var(--rv-accent)}
.rv-menu-toggle{display:none;background:none;border:0;font-size:22px;color:var(--rv-ink)}

/* Dropdown submenus */
.rv-nav li{position:relative}
.rv-nav li.menu-item-has-children>a{display:inline-flex;align-items:center;gap:5px}
.rv-nav li.menu-item-has-children>a::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-top:-3px;opacity:.6;transition:transform .15s ease}
.rv-nav .sub-menu{list-style:none;display:block;flex-direction:column;gap:0;margin:0;padding:8px;position:absolute;top:calc(100% + 14px);left:0;min-width:200px;background:var(--rv-white);border:1px solid var(--rv-line-soft);border-radius:var(--rv-radius);box-shadow:var(--rv-shadow);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .15s ease,transform .15s ease;z-index:60}
.rv-nav .sub-menu .sub-menu{top:0;left:calc(100% + 8px)}
.rv-nav li.menu-item-has-children:hover>.sub-menu,
.rv-nav li.menu-item-has-children:focus-within>.sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
.rv-nav li.menu-item-has-children:hover>a::after{transform:rotate(225deg)}
.rv-nav .sub-menu li{width:100%}
.rv-nav .sub-menu a{display:block;padding:9px 12px;border-radius:calc(var(--rv-radius) - 4px);font-weight:500;font-size:14.5px;white-space:nowrap}
.rv-nav .sub-menu a:hover{background:var(--rv-bg);color:var(--rv-accent)}

/* Search */
.rv-search-toggle{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:none;border:0;color:var(--rv-ink);cursor:pointer;transition:background .15s ease}
.rv-search-toggle:hover{background:var(--rv-line-soft)}
.rv-search-box{display:none;border-top:1px solid var(--rv-line-soft);background:var(--rv-white)}
.rv-search-box.is-open{display:block}
.rv-search-form{display:flex;align-items:center;gap:10px;padding:14px 0}
.rv-search-form input[type="search"]{flex:1;border:1px solid var(--rv-line);border-radius:8px;padding:10px 14px;font-size:15px;font-family:inherit;color:var(--rv-ink);background:var(--rv-bg,#fff)}
.rv-search-form input[type="search"]:focus{outline:2px solid var(--rv-accent);outline-offset:1px}
.rv-search-form button{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;flex:none;border-radius:8px;background:var(--rv-accent);color:#fff;border:0;cursor:pointer}
.rv-search-form button:hover{background:var(--rv-accent-deep)}

/* Back to top */
.rv-backtotop{
  position:fixed;right:20px;bottom:20px;width:44px;height:44px;border-radius:50%;
  background:var(--rv-accent);color:#fff;border:0;display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 14px rgba(0,0,0,.18);cursor:pointer;z-index:80;
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .2s ease,transform .2s ease,visibility .2s ease,background .15s ease;
}
.rv-backtotop.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
.rv-backtotop:hover{background:var(--rv-accent-deep)}
@media (max-width:600px){
  .rv-backtotop{right:14px;bottom:14px;width:40px;height:40px}
}

/* ============================================================
   Section heads
   ============================================================ */
.rv-sec{padding-top:100px}
.rv-sec--flush{padding-top:0}
.rv-sechead--center{justify-content:center;text-align:center}
.rv-sechead{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:32px}
.rv-sechead h2{font-family:var(--font-serif);font-size:36px;line-height:1.1;margin-top:8px}
.rv-seelink{font-size:14px;font-weight:700;border-bottom:2px solid var(--rv-accent);padding-bottom:2px;white-space:nowrap}

/* ============================================================
   Hero
   ============================================================ */
.rv-hero{position:relative;height:560px;overflow:hidden}
.rv-hero img{width:100%;height:100%;object-fit:cover}
.rv-pagehead{padding-top:56px;text-align:center}
.rv-pagehead h1{font-family:var(--font-serif);font-size:44px;line-height:1.1;color:var(--rv-ink)}
.rv-pagehead p{font-size:15px;color:var(--rv-muted);font-weight:600;margin:16px auto 0;max-width:540px}

/* photo strip */
.rv-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}
.rv-strip a{position:relative;height:230px;border-radius:10px;overflow:hidden;display:block}
.rv-strip img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.rv-strip a:hover img{transform:scale(1.05)}
.rv-strip .cap{position:absolute;left:16px;bottom:14px;color:#fff;font-size:15px;font-weight:700;z-index:2}
.rv-scrim{position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(8,20,34,.68))}

/* featured */
.rv-feature{display:block;position:relative;border-radius:var(--rv-radius-lg);overflow:hidden;height:460px;margin-top:56px}
.rv-feature img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.rv-feature:hover img{transform:scale(1.04)}
.rv-feature .scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,20,34,.76) 0%,rgba(8,20,34,.28) 60%,rgba(8,20,34,.05) 100%)}
.rv-feature .body{position:relative;height:100%;display:flex;flex-direction:column;justify-content:center;padding:0 60px;max-width:600px}
.rv-feature .badge{background:var(--rv-coral);color:#fff;font-size:12px;font-weight:700;padding:6px 14px;border-radius:999px;width:fit-content;margin-bottom:18px}
.rv-feature h2{font-family:var(--font-serif);font-size:38px;color:#fff;line-height:1.15}
.rv-feature .dek{font-size:14px;color:rgba(255,255,255,.8);margin-top:16px}
.rv-feature .meta{font-size:13px;color:rgba(255,255,255,.65);margin-top:22px}

/* ============================================================
   Cards
   ============================================================ */
.rv-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.rv-card{background:var(--rv-white);border-radius:var(--rv-radius);overflow:hidden;box-shadow:var(--rv-shadow);transition:transform .2s ease,box-shadow .2s ease}
.rv-card:hover{transform:translateY(-4px);box-shadow:0 18px 36px rgba(11,31,51,.12)}
.rv-card__thumb{width:100%;height:190px;object-fit:cover}
.rv-card__body{padding:20px}
.rv-card__body h3{font-family:var(--font-serif);font-size:21px;margin-top:8px}
.rv-card__dek{font-size:13px;color:var(--rv-muted-2);margin-top:10px}
.rv-card__meta{font-size:12px;color:var(--rv-muted-2);margin-top:16px}

/* dark card variant */
.rv-card--dark{background:var(--rv-dark-card);box-shadow:none}
.rv-card--dark .rv-card__thumb{height:170px}
.rv-card--dark h3{color:#fff;font-size:20px}
.rv-card--dark .rv-card__dek{color:rgba(255,255,255,.6)}
.rv-card--dark .rv-kicker{color:var(--rv-accent-2)}

/* mosaic (destination grids) */
.rv-mosaic{display:grid;gap:18px}
.rv-mosaic a{position:relative;border-radius:var(--rv-radius);overflow:hidden;min-height:200px}
.rv-mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.rv-mosaic a:hover img{transform:scale(1.06)}
.rv-mosaic .cap{position:absolute;left:16px;bottom:14px;color:#fff;z-index:2}
.rv-mosaic .cap .loc{display:block;font-size:11px;opacity:.85;margin-bottom:3px}
.rv-mosaic .cap .ttl{display:block;font-size:16px;font-weight:700}
.rv-mosaic--india{grid-template-columns:1.2fr 1fr 1fr;grid-template-rows:260px 200px}
.rv-mosaic--india a:first-child{grid-row:1 / 3}
.rv-mosaic--india a:first-child .cap .ttl{font-size:19px}
.rv-mosaic--dubai{grid-template-columns:repeat(4,1fr);grid-auto-rows:220px}
.rv-mosaic--dubai a:first-child{grid-column:span 2;grid-row:span 2}
.rv-mosaic--dubai a:first-child .cap .ttl{font-size:19px}

/* tinted section bands */
.rv-band-cream{margin-top:100px;background:var(--rv-bg-cream);padding:100px 0}
.rv-band-dark{margin-top:100px;background:var(--rv-dark);padding:100px 0}
.rv-band-dark .rv-sechead h2,.rv-band-dark .rv-eyebrow{color:#fff}
.rv-band-dark .rv-eyebrow{color:var(--rv-accent-2)}
.rv-band-dark .rv-seelink{color:#fff;border-color:var(--rv-accent-2)}

/* ============================================================
   Single article
   ============================================================ */
.rv-crumb{padding-top:22px;font-size:13px;color:var(--rv-muted-2)}
.rv-crumb a{color:var(--rv-muted-2)}
.rv-crumb .now{color:var(--rv-ink)}
.rv-arthead{max-width:var(--rv-read);margin:0 auto;padding-top:24px}
.rv-arthead h1{font-family:var(--font-serif);font-size:44px;line-height:1.15;margin-top:20px}
.rv-arthead .dek{font-size:15px;color:var(--rv-muted);margin-top:16px}
.rv-byline{display:flex;align-items:center;gap:14px;margin-top:26px;padding-bottom:26px;border-bottom:1px solid var(--rv-line)}
.rv-byline img{width:40px;height:40px;border-radius:50%;object-fit:cover}
.rv-byline .name{font-size:13px;font-weight:700}
.rv-byline .date{font-size:12px;color:var(--rv-muted-2)}
.rv-artimg{margin-top:36px;border-radius:var(--rv-radius-lg);overflow:hidden;height:440px}
.rv-artimg img{width:100%;height:100%;object-fit:cover}

.rv-prose{max-width:var(--rv-read);margin:0 auto;padding-top:56px;font-size:16px;line-height:1.8;color:var(--rv-ink-2)}
.rv-prose h2{font-family:var(--font-serif);font-size:26px;font-weight:400;margin:44px 0 16px}
.rv-prose h3{font-family:var(--font-serif);font-size:22px;font-weight:400;margin:36px 0 14px}

/* Boxed article heading style (accent bar on H2, underline on H3, accent mark on title) */
.rv-headings-boxed .rv-arthead h1{position:relative;padding-top:20px}
.rv-headings-boxed .rv-arthead h1::before{content:"";position:absolute;top:0;left:0;
  width:58px;height:5px;border-radius:3px;background:var(--rv-accent)}
.rv-headings-boxed .rv-prose h2{background:var(--rv-bg-cream);border-left:5px solid var(--rv-accent);
  padding:16px 22px;border-radius:12px;margin-left:0}
.rv-headings-boxed .rv-prose h3{border-bottom:2px solid var(--rv-line);padding-bottom:12px}

/* "Frequently Asked Questions" style heading — auto-detected right above
   a Rank Math FAQ block, deliberately different from normal article
   headings (accent pill + icon instead of the boxed/underline look). */
.rv-prose h2.rv-faq-heading,
.rv-prose h3.rv-faq-heading,
.rv-prose h4.rv-faq-heading{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--rv-accent);color:#fff;background-image:linear-gradient(135deg,var(--rv-accent),#0B1F33);
  font-family:var(--font-sans);font-weight:800;font-size:14px;letter-spacing:.03em;text-transform:uppercase;
  padding:12px 22px;border-radius:999px;border-left:0;margin:44px 0 20px;
  box-shadow:0 8px 20px -6px rgba(0,0,0,.35);
}
.rv-prose h2.rv-faq-heading::before,
.rv-prose h3.rv-faq-heading::before,
.rv-prose h4.rv-faq-heading::before{
  content:"?";flex:none;width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.24);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:14px;font-weight:700;
}
.rv-prose ul,.rv-prose ol{padding-left:22px;margin:0 0 1.1em}
.rv-prose li{margin-bottom:8px}
.rv-prose a{color:var(--rv-accent);text-decoration:underline;text-underline-offset:3px}
.rv-prose img,.rv-prose figure{border-radius:12px;overflow:hidden;margin:28px 0}
.rv-prose blockquote{margin:28px 0;padding:6px 0 6px 22px;border-left:3px solid var(--rv-accent);font-family:var(--font-serif);font-size:22px;color:var(--rv-ink);font-style:italic}
.rv-prose figcaption{font-size:13px;color:var(--rv-muted-2);margin-top:8px}

.rv-tags{max-width:var(--rv-read);margin:44px auto 0;display:flex;gap:10px;flex-wrap:wrap}
.rv-tags a{background:#fff;border:1px solid rgba(11,31,51,.12);font-size:13px;font-weight:600;padding:8px 16px;border-radius:999px}
.rv-tags a:hover{border-color:var(--rv-accent);color:var(--rv-accent)}

/* ============================================================
   Newsletter
   ============================================================ */
.rv-news{margin-top:110px;background:var(--rv-bg-blush);border-radius:var(--rv-radius-lg);padding:56px 60px;display:flex;align-items:center;justify-content:space-between;gap:40px}
.rv-news h2{font-family:var(--font-serif);font-size:30px;max-width:420px}
.rv-news p{font-size:14px;color:#4A6072;margin:10px 0 0;max-width:400px}
.rv-news form{display:flex;gap:10px;flex:none}
.rv-news input{background:#fff;border:1px solid rgba(11,31,51,.15);border-radius:999px;padding:14px 20px;font-size:14px;color:var(--rv-ink);width:230px}
.rv-news .rv-btn--pill{background:var(--rv-accent)}
.rv-news .rv-btn--pill:hover{background:var(--rv-accent-deep)}
.rv-news--dark{background:var(--rv-dark)}
.rv-news--dark h2{color:#fff}
.rv-news--dark p{color:rgba(255,255,255,.65)}
.rv-news--dark input{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:#fff}
.rv-news--dark input::placeholder{color:rgba(255,255,255,.5)}
.rv-news--dark .rv-btn--pill{background:var(--rv-coral)}
.rv-news--dark .rv-btn--pill:hover{background:var(--rv-coral-deep)}
.rv-news-msg{font-size:13px;font-weight:600;min-height:18px}
.rv-news-msg--ok{color:#2f7a3d}
.rv-news-msg--err{color:#b3261e}
.rv-news--dark .rv-news-msg--ok{color:#7fe08d}
.rv-news--dark .rv-news-msg--err{color:#ff8b82}

/* ============================================================
   Footer
   ============================================================ */
/* ---- Footer: dark theme (Places / Editorial / Trips / Company columns) ---- */
.rv-foot--dark{margin-top:80px;padding:0;background:#0B1F33;color:rgba(255,255,255,.78)}

.rv-foot__topbar{display:grid;grid-template-columns:1.3fr 1fr 1.3fr;gap:40px;
  padding:48px 0 40px;border-bottom:1px solid rgba(255,255,255,.10);align-items:start}
.rv-foot__topbar .head{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  color:rgba(255,255,255,.85);margin-bottom:14px}

.rv-foot__newsform{display:flex;gap:0;max-width:360px;border-radius:999px;overflow:hidden;
  border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06)}
.rv-foot__newsform input{flex:1;min-width:0;background:transparent;border:0;padding:13px 18px;
  font-size:14px;color:#fff}
.rv-foot__newsform input::placeholder{color:rgba(255,255,255,.5)}
.rv-foot__newsform .rv-btn--pill{border-radius:0;background:var(--rv-coral);padding:13px 22px;
  font-size:13px;white-space:nowrap}
.rv-foot__newsform .rv-btn--pill:hover{background:var(--rv-coral-deep)}
.rv-foot__newsblock .rv-news-msg{margin-top:8px}
.rv-foot__newsblock .rv-news-msg--ok{color:#7fe08d}
.rv-foot__newsblock .rv-news-msg--err{color:#ff8b82}

.rv-foot__followblock .rv-social{gap:10px}
.rv-foot__followblock .rv-social a{background:rgba(255,255,255,.08);color:#fff}
.rv-foot__followblock .rv-social a:hover{background:rgba(255,255,255,.16)}

.rv-foot__brandblock .rv-logo{font-style:italic;font-size:20px;margin-bottom:10px;display:inline-block}
.rv-foot__brandblock .rv-logo--img img{height:28px}
.rv-foot__brandblock p{font-size:13px;line-height:1.6;color:rgba(255,255,255,.55);max-width:280px;margin:0}

.rv-foot__grid--links{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:40px 0 8px}
.rv-foot__col{font-size:13.5px;display:flex;flex-direction:column;gap:10px}
.rv-foot__col .head{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  color:rgba(255,255,255,.85);margin-bottom:4px}
.rv-foot__col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.rv-foot__col a{color:rgba(255,255,255,.68)}
.rv-foot__col a:hover{color:var(--rv-accent-2)}

.rv-social{list-style:none;margin:0;padding:0;display:flex !important;flex-direction:row !important;gap:12px;flex-wrap:wrap}
.rv-social a{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--rv-line-soft);color:var(--rv-ink);transition:transform .15s ease,background .15s ease}
.rv-social a svg{width:17px;height:17px}
.rv-social a:hover{transform:translateY(-2px)}
.rv-social.is-colored a{color:var(--rv-social-color,var(--rv-ink))}
.rv-social.is-colored a svg{fill:var(--rv-social-color,currentColor)}
.rv-foot--dark .rv-social.is-colored a{color:var(--rv-social-color,#fff)}

.rv-foot--dark .rv-copy{padding:20px 0 40px;font-size:12px;color:rgba(255,255,255,.45);
  border-top:1px solid rgba(255,255,255,.10);margin-top:8px}

@media (max-width:900px){
  .rv-foot__topbar{grid-template-columns:1fr;gap:28px;padding:40px 0 32px}
  .rv-foot__grid--links{grid-template-columns:1fr 1fr;gap:28px 24px;padding:32px 0 8px}
}
@media (max-width:520px){
  .rv-foot__grid--links{grid-template-columns:1fr}
  .rv-foot__newsform{max-width:100%}
}

/* ============================================================
   Archive / index / search
   ============================================================ */
.rv-archead{padding-top:56px;text-align:center}
.rv-archead h1{font-family:var(--font-serif);font-size:42px;color:var(--rv-ink)}
.rv-archead p{font-size:15px;color:var(--rv-muted);margin-top:12px}
.rv-postlist{padding-top:44px;display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.rv-pagination{display:flex;justify-content:center;gap:10px;padding-top:56px}
.rv-pagination .page-numbers{padding:9px 15px;border-radius:8px;background:#fff;border:1px solid var(--rv-line);font-weight:600;font-size:14px}
.rv-pagination .page-numbers.current{background:var(--rv-accent);color:#fff;border-color:var(--rv-accent)}
.rv-pagination a.page-numbers:hover{border-color:var(--rv-accent);color:var(--rv-accent)}

/* comments */
.rv-comments{max-width:var(--rv-read);margin:64px auto 0}
.rv-comments h2{font-family:var(--font-serif);font-size:28px;margin-bottom:20px}
.rv-comments ol{list-style:none;padding:0;margin:0}
.rv-comments .comment-body{background:#fff;border-radius:12px;padding:18px 20px;margin-bottom:16px;box-shadow:var(--rv-shadow)}
.rv-comments .children{list-style:none;padding-left:28px}
.rv-comments input[type=text],.rv-comments input[type=email],.rv-comments input[type=url],.rv-comments textarea{width:100%;border:1px solid var(--rv-line);border-radius:10px;padding:12px 14px;font-family:inherit;font-size:14px;margin-bottom:14px;background:#fff}

/* 404 */
.rv-404{text-align:center;padding:120px 0}
.rv-404 .code{font-family:var(--font-serif);font-size:120px;color:var(--rv-coral);line-height:1}
.rv-404 h1{font-family:var(--font-serif);font-size:34px;margin-top:8px}
.rv-404 p{color:var(--rv-muted);margin:14px 0 28px}

/* WP core alignment + caption support */
.alignleft{float:left;margin:6px 24px 12px 0}
.alignright{float:right;margin:6px 0 12px 24px}
.aligncenter{margin-left:auto;margin-right:auto}
.wp-caption-text,.gallery-caption{font-size:13px;color:var(--rv-muted-2)}
.sticky,.bypostauthor{}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:1024px){
  :root{--rv-pad:32px}
  .rv-mosaic--dubai{grid-template-columns:repeat(2,1fr)}
  .rv-mosaic--dubai a:first-child{grid-column:span 2;grid-row:span 1}
}
@media (max-width:820px){
  :root{--rv-pad:22px}
  .rv-header{position:relative;isolation:isolate}
  .rv-header__inner{position:relative;gap:10px}
  .rv-logo--img img{height:32px}
  .rv-header__inner>.rv-btn{display:none}
  .rv-nav{display:none;position:absolute;top:100%;left:0;right:0;width:100%;background:#fff;flex-direction:column;gap:0;padding:8px 22px 18px;border-bottom:1px solid var(--rv-line);box-shadow:var(--rv-shadow);z-index:100;max-height:calc(100vh - 70px);overflow-y:auto}
  .rv-nav ul{flex-direction:column;gap:0;width:100%}
  .rv-nav.is-open{display:flex}
  .rv-nav a{display:block;padding:12px 0;border-bottom:1px solid var(--rv-line-soft)}
  .rv-menu-toggle{display:block}
  .rv-nav li.menu-item-has-children{display:flex;flex-wrap:wrap;align-items:center}
  .rv-nav li.menu-item-has-children>a{flex:1;border-bottom:1px solid var(--rv-line-soft)}
  .rv-nav .rv-submenu-toggle{background:none;border:0;width:44px;height:44px;flex:none;display:flex;align-items:center;justify-content:center;color:var(--rv-ink);border-bottom:1px solid var(--rv-line-soft)}
  .rv-nav .rv-submenu-toggle svg{transition:transform .15s ease}
  .rv-nav li.is-sub-open>.rv-submenu-toggle svg{transform:rotate(180deg)}
  .rv-nav .sub-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-radius:0;background:var(--rv-bg);display:none;width:100%;padding:4px 0 4px 16px;margin:0}
  .rv-nav li.is-sub-open>.sub-menu{display:block}
  .rv-nav .sub-menu a{padding:10px 0;border-bottom:1px solid var(--rv-line-soft)}
  .rv-nav li.menu-item-has-children>a::after{display:none}
  .rv-grid-3,.rv-postlist{grid-template-columns:1fr}
  .rv-strip{grid-template-columns:1fr}
  .rv-mosaic--india,.rv-mosaic--dubai{grid-template-columns:1fr;grid-template-rows:none;grid-auto-rows:200px}
  .rv-mosaic--india a:first-child,.rv-mosaic--dubai a:first-child{grid-row:auto;grid-column:auto}
  .rv-hero{height:340px}
  .rv-pagehead h1,.rv-arthead h1{font-size:32px}
  .rv-feature{height:auto}
  .rv-feature .body{padding:40px 26px}
  .rv-feature h2{font-size:26px}
  .rv-news{flex-direction:column;align-items:flex-start;padding:36px 26px}
  .rv-news form{flex-direction:column;width:100%}
  .rv-news input{width:100%}
  .rv-sec{padding-top:64px}
  .rv-band-cream,.rv-band-dark,.rv-news{margin-top:64px}
}
@media (max-width:520px){
  .rv-artimg{height:240px}
}

/* ============================================================
   v2.0 — Logo image / progress / TOC / destination hub / share
   ============================================================ */

/* Logo as image (falls back to text logo styles above) */
.rv-logo--img{display:inline-flex;align-items:center;line-height:0}
.rv-logo--img img{height:44px;width:auto;max-width:220px;display:block}
.rv-foot__brandblock .rv-logo--img img{height:30px;margin-bottom:4px}

/* Reading-progress bar (single posts) */
.rv-progress{position:fixed;top:0;left:0;right:0;height:3px;background:transparent;z-index:60;pointer-events:none}
.rv-progress span{display:block;height:100%;width:0;background:var(--rv-accent);transition:width .1s linear}

/* Table of contents (auto, prepended to article body) */
.rv-toc{background:var(--rv-white);border:1px solid var(--rv-line);border-radius:var(--rv-radius);
  padding:22px 26px;margin:0 0 40px;box-shadow:var(--rv-shadow)}
.rv-toc__head{display:flex;align-items:center;justify-content:space-between;width:100%;
  font-family:var(--font-sans);font-size:12px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--rv-accent);margin:0 0 12px;padding:0;
  background:none;border:0;cursor:pointer;text-align:left}
.rv-toc__chev{width:10px;height:10px;border-right:2px solid var(--rv-accent);border-bottom:2px solid var(--rv-accent);
  transform:rotate(45deg);transition:transform .2s ease;margin-left:12px;flex:none}
.rv-toc.is-collapsed .rv-toc__chev{transform:rotate(-45deg)}
.rv-toc__body{overflow:hidden;transition:max-height .25s ease}
.rv-toc.is-collapsed .rv-toc__body{max-height:0}
.rv-toc.is-collapsed .rv-toc__head{margin-bottom:0}
.rv-toc ol{list-style:none;margin:0;padding:0;counter-reset:toc;font-size:14.5px;line-height:1.4}
.rv-toc li{counter-increment:toc;margin:0}
.rv-toc li a{display:block;padding:7px 0;color:var(--rv-ink-2);border-bottom:1px solid var(--rv-line-soft);text-decoration:none}
.rv-toc li:last-child a{border-bottom:0}
.rv-toc li.lvl-2 a::before{content:counter(toc,decimal-leading-zero);color:var(--rv-accent);font-weight:700;margin-right:12px;font-variant-numeric:tabular-nums}
.rv-toc li.lvl-3 a{padding-left:38px;font-size:13.5px;color:var(--rv-muted)}
.rv-toc li a:hover,.rv-toc li a.is-active{color:var(--rv-accent)}
/* offset anchor jumps for the sticky header */
.rv-prose h2,.rv-prose h3{scroll-margin-top:90px}

/* Tables inside article prose (softsnoop-style comparison tables).
   Belt-and-suspenders fix for mobile: WordPress's own core table block
   wraps <table> in <figure class="wp-block-table"> which ALSO carries
   overflow-x:auto but no width cap — on phones that outer figure was
   growing to fit the table instead of clipping it, so the table just
   spilled off the right edge of the screen with no visible scrollbar
   and no way to reach the cut-off text. Capping max-width:100% (not
   just width:100%) at every level in the chain — the wp-block-table
   figure, our own .rv-table-wrap div, and the table itself — forces
   each one to actually clip to the screen and hand off scrolling to
   the innermost box, so the horizontal scrollbar shows up reliably. */
.rv-prose .wp-block-table{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.rv-table-wrap{display:block;width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;
  margin:28px 0;border-radius:var(--rv-radius);box-shadow:var(--rv-shadow)}
.rv-prose table{width:100%;max-width:none;min-width:560px;border-collapse:collapse;margin:0;font-size:14.5px;
  background:var(--rv-white);border:1px solid rgba(11,31,51,.14);border-radius:var(--rv-radius)}
.rv-prose thead th{background:var(--rv-bg-cream);text-align:left}
.rv-prose th,.rv-prose td{padding:12px 16px;border:1px solid rgba(11,31,51,.14);vertical-align:top;
  white-space:normal;word-break:normal;overflow-wrap:break-word}
.rv-prose th{font-weight:700;color:var(--rv-ink)}
.rv-prose tr:last-child td{border-bottom:1px solid rgba(11,31,51,.14)}
@media (max-width:820px){
  .rv-table-wrap::after{content:"→ scroll for more";display:block;text-align:right;
    font-size:11px;color:var(--rv-muted-2);padding:4px 4px 0}
}

/* Key figure / callout (use a WP "quote" or a group with class .rv-note) */
.rv-prose .rv-note{background:var(--rv-sky);border-radius:var(--rv-radius);
  padding:22px 26px;margin:28px 0;border-left:4px solid var(--rv-accent);font-size:15px;color:var(--rv-ink)}

/* Share row */
.rv-share{max-width:var(--rv-read);margin:36px auto 0;display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  font-size:13px;font-weight:600}
.rv-share__label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--rv-muted-2)}
.rv-share a{background:#fff;border:1px solid var(--rv-line);border-radius:999px;padding:8px 16px;color:var(--rv-ink)}
.rv-share a:hover{border-color:var(--rv-accent);color:var(--rv-accent)}

/* Destination hero (category archive) */
.rv-desthero{position:relative;min-height:380px;display:flex;align-items:flex-end;
  background-size:cover;background-position:center;color:#fff}
.rv-desthero__inner{padding-top:60px;padding-bottom:48px}
.rv-desthero h1{font-family:var(--font-serif);font-size:56px;line-height:1.05;color:#fff;margin-top:10px}
.rv-desthero p{font-size:16px;color:rgba(255,255,255,.85);max-width:620px;margin-top:16px}
.rv-eyebrow--light{color:var(--rv-accent-2)}
.rv-crumb--light,.rv-crumb--light a{color:rgba(255,255,255,.75)}
.rv-crumb--light .now{color:#fff}

/* Filter chips */
.rv-chips{display:flex;gap:10px;flex-wrap:wrap;padding-top:32px}
.rv-chip{background:#fff;border:1px solid var(--rv-line);border-radius:999px;padding:9px 18px;
  font-size:13px;font-weight:600;color:var(--rv-ink)}
.rv-chip:hover{border-color:var(--rv-accent);color:var(--rv-accent)}
.rv-chip.is-active{background:var(--rv-accent);border-color:var(--rv-accent);color:#fff}

.rv-arcbody{padding-top:8px}
.rv-empty{text-align:center;padding:60px 0;color:var(--rv-muted)}

/* Homepage browse boxes (countries / categories) — kept a bit shorter/
   smaller so a 4+4 grid (or any row of 4) feels tight and consistent
   rather than the tall square tiles overwhelming the section. */
.rv-boxes{display:grid;grid-template-columns:repeat(var(--rv-box-cols,4),1fr);gap:14px}
.rv-box{position:relative;display:block;aspect-ratio:var(--rv-box-ratio,4/3);border-radius:var(--rv-radius);
  overflow:hidden;text-decoration:none;box-shadow:var(--rv-shadow)}
.rv-box img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .4s ease}
.rv-box:hover img{transform:scale(1.06)}
.rv-box__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,20,34,0) 35%,rgba(8,20,34,.8) 100%)}
.rv-box__cap{position:absolute;left:0;right:0;bottom:0;padding:14px;color:#fff;z-index:1}
.rv-box__name{display:block;font-family:var(--font-serif);font-size:18px;line-height:1.1}
.rv-box__count{display:block;font-family:var(--font-sans);font-size:11.5px;opacity:.85;margin-top:3px}

/* Trip-style boxes: pill badge label, distinct from destination boxes.
   Shape/size is its own Customizer setting (--rv-box-ratio-trips), separate
   from the destination boxes' --rv-box-ratio. */
.rv-boxes--trips .rv-box{aspect-ratio:var(--rv-box-ratio-trips,1/1);border-radius:22px}
.rv-boxes--trips .rv-box__scrim{background:linear-gradient(180deg,rgba(8,20,34,0) 60%,rgba(8,20,34,.5) 100%)}
.rv-boxes--trips .rv-box__cap{padding:16px}
.rv-boxes--trips .rv-box__name{display:inline-block;background:var(--rv-coral);color:#fff;font-family:var(--font-sans);font-weight:700;font-size:13px;line-height:1;padding:8px 14px;border-radius:999px;box-shadow:0 4px 10px rgba(0,0,0,.25)}

/* Responsive additions */
@media (max-width:820px){
  .rv-desthero{min-height:300px}
  .rv-desthero h1{font-size:38px}
  .rv-logo--img img{height:38px}
  .rv-toc{padding:18px 20px}
  .rv-boxes{grid-template-columns:repeat(min(3,var(--rv-box-cols,4)),1fr)}
}
@media (max-width:520px){
  .rv-desthero h1{font-size:30px}
  .rv-share{gap:8px}
  .rv-boxes{grid-template-columns:repeat(min(2,var(--rv-box-cols,4)),1fr);gap:10px}
  .rv-box__name{font-size:16px}
}

/* ============================================================
   Rank Math FAQ block — restyled to match the theme instead of
   the plugin's plain default look, plus a click-to-expand accordion
   (progressive enhancement — see assets/faq-accordion.js). Without
   JS every answer just stays visible, so nothing is ever hidden
   from search engines or from a visitor with JS disabled.
   ============================================================ */
.rv-prose .rank-math-block{
  background:var(--rv-white);border:1px solid var(--rv-line);border-radius:var(--rv-radius);
  padding:6px 26px 10px;margin:36px 0;box-shadow:var(--rv-shadow);
}
.rv-prose .rank-math-list-item{padding:20px 0;border-top:1px solid var(--rv-line-soft)}
.rv-prose .rank-math-list-item:first-child{border-top:0}
.rv-prose .rank-math-question{
  font-family:var(--font-sans) !important;font-size:16.5px !important;font-weight:700 !important;
  color:var(--rv-ink) !important;margin:0 0 10px !important;background:none !important;padding:0 !important;
}
.rv-prose .rank-math-answer{font-size:15px;color:var(--rv-ink-2);line-height:1.75}
.rv-prose .rank-math-answer p{margin:0}
@media (max-width:520px){
  .rv-prose .rank-math-block{padding:4px 18px 8px}
}

/* Accordion behaviour, only kicks in once JS has added .rv-faq-js */
.rank-math-block.rv-faq-js .rank-math-question{
  cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;
  margin-bottom:0 !important;-webkit-user-select:none;user-select:none;
}
.rank-math-block.rv-faq-js .rank-math-question:hover{color:var(--rv-accent) !important}
.rank-math-block.rv-faq-js .rank-math-list-item .rank-math-answer{
  max-height:0;opacity:0;overflow:hidden;margin-top:0;
  transition:max-height .32s ease,opacity .22s ease,margin-top .32s ease;
}
.rank-math-block.rv-faq-js .rank-math-list-item.is-open .rank-math-answer{
  max-height:600px;opacity:1;margin-top:10px;
}
.rv-faq-icon{
  flex:none;width:22px;height:22px;border-radius:50%;background:var(--rv-bg-cream);
  position:relative;display:flex;align-items:center;justify-content:center;
  transition:transform .28s ease,background .2s ease;
}
.rv-faq-icon::before{
  content:"";width:0;height:0;
  border-left:5px solid transparent;border-right:5px solid transparent;
  border-top:6px solid var(--rv-ink);
  transition:border-color .2s ease;
}
.rank-math-list-item.is-open .rv-faq-icon{background:var(--rv-coral);transform:rotate(180deg)}
.rank-math-list-item.is-open .rv-faq-icon::before{border-top-color:#fff}

/* ============================================================
   Ad slots — empty by default, only render once code is pasted
   into Customizer > Ad Slots. Kept visually calm on purpose.
   ============================================================ */
.rv-ad-slot{
  background:var(--rv-bg-cream);border:1px solid var(--rv-line);border-radius:var(--rv-radius);
  padding:14px;text-align:center;overflow:hidden;
}
.rv-ad-slot__label{
  display:block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--rv-muted-2);margin-bottom:10px;
}
.rv-ad-slot__unit{display:flex;align-items:center;justify-content:center;min-height:90px}
.rv-ad-slot--top{max-width:var(--rv-wrap);margin:24px auto 0}
.rv-ad-slot--inline{max-width:var(--rv-read);margin:32px auto}
@media (max-width:520px){
  .rv-ad-slot__unit{min-height:60px}
}


/* ============================================================
   TRIP COST CALCULATOR PAGES  (template-trip-calculator.php,
   template-calculator-hub.php)
   ============================================================ */
.rv-calchead{background:var(--rv-dark,#0B1F33);color:#fff;padding:56px 0 96px;margin-bottom:-64px}
.rv-calchead__inner{max-width:var(--rv-read);text-align:center}
.rv-calchead__eyebrow{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--rv-accent-2,#7FD1E8)}
.rv-calchead h1{font-family:var(--font-serif,Georgia,serif);font-weight:400;font-size:44px;line-height:1.08;margin:14px 0 0;color:#fff}
.rv-calchead__dek{font-size:16px;line-height:1.6;color:rgba(255,255,255,.7);margin:14px auto 0;max-width:600px;text-wrap:pretty}
.rv-calchead__facts{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.rv-calchead__facts li{font-size:12.5px;font-weight:700;color:rgba(255,255,255,.82);background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:6px 14px}

.rv-calcpage__body{max-width:var(--rv-read,760px);position:relative;z-index:1;padding-bottom:20px}
.rv-calcprose{margin-top:44px}
.rv-calcprose h2{margin-top:38px}

.rv-calcmore{margin-top:52px;padding-top:30px;border-top:1px solid var(--rv-line)}
.rv-calcmore h2{font-family:var(--font-serif);font-weight:400;font-size:26px;margin:0 0 8px;color:var(--rv-ink)}
.rv-calcmore__note{margin:0 0 16px;font-size:13.5px;color:var(--rv-muted)}
.rv-calcmore__grid{display:flex;flex-wrap:wrap;gap:9px}
.rv-calcmore__chip{background:#fff;border:1px solid var(--rv-line);border-radius:999px;padding:9px 16px;
  font-size:13.5px;font-weight:700;color:var(--rv-ink);text-decoration:none;display:inline-flex;align-items:center;gap:8px}
.rv-calcmore__chip:hover{border-color:var(--rv-accent);color:var(--rv-accent-deep)}

.rv-calchub{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:38px}
.rv-calchub__card{background:#fff;border:1px solid var(--rv-line);border-radius:14px;padding:20px;
  display:flex;flex-direction:column;gap:8px;text-decoration:none;box-shadow:var(--rv-shadow);transition:transform .18s ease,box-shadow .18s ease}
.rv-calchub__card:hover{transform:translateY(-3px);box-shadow:0 18px 36px rgba(11,31,51,.12)}
.rv-calchub__card .name{font-family:var(--font-serif);font-weight:400;font-size:22px;color:var(--rv-ink);line-height:1.15}
.rv-calchub__card .go{font-size:12.5px;font-weight:700;color:var(--rv-accent,#1668B8)}

/* country flags */
.rv-flag{display:block;border-radius:3px;box-shadow:0 0 0 1px rgba(11,31,51,.12);object-fit:cover}
.rv-calchub__flag{display:flex;margin-bottom:2px}
.rv-calchub__flag .rv-flag{border-radius:4px;box-shadow:0 2px 6px rgba(11,31,51,.16)}
.rv-calcmore__chip .rv-flag{width:22px;height:16px;border-radius:2px}
.rv-calchead__flag{display:flex;justify-content:center;margin:0 0 14px}
.rv-calchead__flag .rv-flag{border-radius:5px;box-shadow:0 6px 18px rgba(0,0,0,.28)}
.rv-calchub__empty{margin-top:30px;color:var(--rv-muted)}

@media(max-width:640px){
  .rv-calchead{padding:40px 0 80px;margin-bottom:-56px}
  .rv-calchead h1{font-size:31px}
  .rv-calcprose{margin-top:34px}
}

/* --- calculator hub: world map + directory --- */
.rv-calchub__body{max-width:var(--rv-wrap,1180px)}
.rv-calcmap__card{background:#fff;border:1px solid var(--rv-line);border-radius:20px;padding:18px 18px 12px;
  box-shadow:0 14px 34px rgba(11,31,51,.08)}
.rv-calcmap{position:relative}
.rv-calcmap svg{display:block;width:100%;height:auto}
.rv-calcmap .rvc-cm-off{fill:#E4EAF2;stroke:#fff;stroke-width:.6}
.rv-calcmap .rv-cm-off{fill:#E4EAF2;stroke:#fff;stroke-width:.6}
.rv-calcmap .rv-cm-on{fill:var(--rv-accent,#1668B8);stroke:#fff;stroke-width:.6;cursor:pointer;transition:fill .15s ease}
.rv-calcmap .rv-cm-on:hover,.rv-calcmap .rv-cm-on:focus{fill:var(--rv-coral,#FF6A3D);outline:none}
.rv-calcmap__tip{position:absolute;pointer-events:none;transform:translate(-50%,-135%);background:var(--rv-dark,#0B1F33);color:#fff;
  border-radius:10px;padding:8px 12px;font-size:13px;font-weight:700;line-height:1.3;white-space:nowrap;
  transition:opacity .12s ease;box-shadow:0 8px 20px rgba(11,31,51,.25)}
.rv-calcmap__tip span{display:block;font-size:11px;font-weight:600;color:var(--rv-accent-2);margin-top:2px}
.rv-calcmap__legend{display:flex;gap:18px;justify-content:center;padding:10px 0 4px;font-size:12px;font-weight:700;color:var(--rv-muted)}
.rv-calcmap__legend span{display:flex;align-items:center;gap:7px}
.rv-calcmap__legend span::before{content:"";width:11px;height:11px;border-radius:3px;background:var(--rv-accent,#1668B8)}
.rv-calcmap__legend .off::before{background:#E4EAF2}

.rv-calchub__intro{max-width:600px;margin:34px auto 0;text-align:center;font-size:16px;line-height:1.6;color:var(--rv-muted);text-wrap:pretty}
.rv-calchub__filter{display:flex;align-items:center;gap:14px;margin:30px auto 0;max-width:520px}
.rv-calchub__filter input{flex:1;height:48px;padding:0 18px;border:1px solid var(--rv-line);border-radius:999px;
  background:#fff;font-family:inherit;font-size:15px;color:var(--rv-ink)}
.rv-calchub__filter input:focus{outline:none;border-color:var(--rv-accent);box-shadow:0 0 0 3px rgba(22,104,184,.14)}
.rv-calchub__filter .count{font-size:12.5px;font-weight:700;color:var(--rv-muted);white-space:nowrap}
.rv-calchubpage .rv-calchub{margin-top:22px}
.rv-calchub__card[hidden]{display:none}

@media(max-width:640px){
  .rv-calcmap__card{padding:12px 12px 8px;border-radius:16px}
  .rv-calchub__filter{flex-direction:column;align-items:stretch}
}
