/* ============================================================
   R5 EXECUTIVE — MOBILE
   Native mobile layer. Activates at <= 680px.
   Loaded AFTER styles.css and svc.css.
   Adapted to R5 selectors (r5-header, r5-logo, home-hero-*, r5-footer).
   ============================================================ */

@media (max-width: 680px){

  /* ---------- foundations ---------- */
  html, body{
    -webkit-text-size-adjust:100%;
    overflow-x:hidden;
  }
  body{
    padding-bottom:env(safe-area-inset-bottom);
  }
  body.has-action-bar{
    padding-bottom:calc(76px + env(safe-area-inset-bottom));
  }

  /* Disable heavy Ken Burns hero zooms on mobile (cover heroes that aren't
     already opt-in, plus catch-alls). The previous version of this block
     ALSO had `*{ animation-duration:.001s !important }` which crushed every
     animation on the site (marquee, scrollPulse, hero zooms not in the list
     below) into a 1ms loop — that was the "trust bar glitch" and the
     "photos zooming in and out very quickly". Removed. */
  .home-hero .home-hero-bg img,
  .home-hero .hero-bg img,
  .hero.kenburns .hero-bg img,
  .hero-bg img,
  .ab-hero-bg img,
  .fl-hero-bg img,
  .mvc-hero-bg img,
  .sp-hero-bg img,
  .rrad-hero-bg img,
  .svc-hero-bg img,
  .cc-hero-bg img,
  .r5-post-hero img{ animation:none !important; transform:scale(1.04) !important; }
  .scroll-cue, .home-hero-scroll-cue{ display:none !important; }

  /* containers */
  .wrap, .wrap-narrow, .r5-container{ padding:0 22px; }

  /* ===========================================================
     1.  HEADER  —  compact bar + hamburger
     =========================================================== */
  .r5-header{
    padding:14px 18px !important;
    background:rgba(250,249,247,0) !important;
    transition:background .3s ease, box-shadow .3s ease;
  }
  .r5-header.scrolled,
  .r5-header.solid{
    background:rgba(250,249,247,.96) !important;
    box-shadow:0 1px 0 var(--r5-border);
  }
  .r5-header-inner{ align-items:center; height:auto !important; }
  .r5-header .r5-logo-img{ height:24px !important; }

  /* hide desktop nav AND the previous mobile nav (replaced by m-menu) */
  .r5-header .r5-nav{ display:none !important; }
  .r5-menu-toggle{ display:none !important; }
  .r5-mobile-nav{ display:none !important; }

  /* hamburger button (added by JS) */
  .m-burger{
    display:flex; align-items:center; justify-content:center;
    width:44px; height:44px; margin-right:-10px;
    border:0;
    border-radius:100px;
    background:transparent;
    color:inherit;
    position:relative;
    cursor:pointer;
    -webkit-tap-highlight-color:transparent;
  }
  .m-burger span{
    position:absolute; left:12px; right:12px; height:1.5px;
    background:currentColor; border-radius:2px;
    transition:transform .35s ease, top .35s ease, opacity .25s ease;
  }
  .m-burger span:nth-child(1){ top:17px; }
  .m-burger span:nth-child(2){ top:26px; }
  body.menu-open .m-burger span:nth-child(1){ top:21.5px; transform:rotate(45deg); }
  body.menu-open .m-burger span:nth-child(2){ top:21.5px; transform:rotate(-45deg); }

  /* burger always dark over cream header; flips white when menu is open */
  .r5-header .m-burger{ color:var(--r5-dark); }
  body.menu-open .r5-header{
    background:rgba(14,13,12,0) !important;
    z-index:11500 !important; /* keep header (with X close button) above menu */
  }
  body.menu-open .r5-header .r5-logo-img{ filter:brightness(0) invert(1) !important; }
  body.menu-open .r5-header .m-burger{ color:#fff !important; position:relative; z-index:11500; }

  /* ===========================================================
     2.  FULL-SCREEN MENU OVERLAY
     =========================================================== */
  .m-menu{
    position:fixed; inset:0; z-index:11000;
    background:#0e0d0c;
    color:#fff;
    transform:translateY(-100%);
    transition:transform .55s cubic-bezier(.7,0,.2,1);
    display:flex; flex-direction:column;
    overflow-y:auto;
    padding:88px 24px calc(40px + env(safe-area-inset-bottom));
    pointer-events:none;
  }
  body.menu-open .m-menu{
    transform:translateY(0);
    pointer-events:auto;
  }
  .m-menu .m-eyebrow{
    font-size:10px; letter-spacing:.28em; text-transform:uppercase;
    color:rgba(255,255,255,.4); margin-bottom:30px;
  }
  .m-menu nav{ display:flex; flex-direction:column; }
  .m-menu nav a{
    display:flex; align-items:baseline; justify-content:space-between;
    padding:18px 0;
    border-bottom:1px solid rgba(255,255,255,.08);
    font-family:var(--r5-serif);
    font-size:30px; font-weight:300; letter-spacing:-.01em;
    color:#fff;
    text-decoration:none;
    transform:translateY(20px); opacity:0;
    transition:transform .5s ease, opacity .5s ease;
  }
  .m-menu nav a small{
    font-family:'Sora', system-ui, sans-serif;
    font-size:11px; letter-spacing:.22em; text-transform:uppercase;
    color:rgba(255,255,255,.35);
    font-weight:500;
  }
  body.menu-open .m-menu nav a{ transform:translateY(0); opacity:1; }
  body.menu-open .m-menu nav a:nth-child(1){ transition-delay:.10s; }
  body.menu-open .m-menu nav a:nth-child(2){ transition-delay:.16s; }
  body.menu-open .m-menu nav a:nth-child(3){ transition-delay:.22s; }
  body.menu-open .m-menu nav a:nth-child(4){ transition-delay:.28s; }
  body.menu-open .m-menu nav a:nth-child(5){ transition-delay:.34s; }
  body.menu-open .m-menu nav a:nth-child(6){ transition-delay:.40s; }
  body.menu-open .m-menu nav a:nth-child(7){ transition-delay:.46s; }

  .m-menu .m-foot{
    margin-top:auto; padding-top:40px;
    display:flex; flex-direction:column; gap:14px;
    font-size:13px; color:rgba(255,255,255,.55);
  }
  .m-menu .m-foot .m-cta{
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 22px;
    background:#fff; color:var(--r5-dark);
    border-radius:100px;
    font-size:14px; font-weight:500; letter-spacing:.02em;
    text-decoration:none;
    margin-bottom:8px;
  }
  .m-menu .m-foot .m-row{
    display:flex; gap:10px;
  }
  .m-menu .m-foot .m-row a{
    flex:1;
    display:flex; align-items:center; justify-content:center; gap:8px;
    padding:14px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:100px;
    font-size:13px; color:#fff;
    text-decoration:none;
  }
  .m-menu .m-meta{
    display:flex; justify-content:space-between;
    margin-top:18px; padding-top:18px;
    border-top:1px solid rgba(255,255,255,.08);
    font-size:11px; letter-spacing:.18em; text-transform:uppercase;
    color:rgba(255,255,255,.35);
  }

  /* ===========================================================
     3.  BOTTOM ACTION BAR
     =========================================================== */
  .m-actionbar{
    position:fixed; left:0; right:0; bottom:0; z-index:9000;
    background:rgba(14,13,12,.96);
    backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
    border-top:1px solid rgba(255,255,255,.08);
    padding:10px 12px calc(10px + env(safe-area-inset-bottom));
    display:flex; gap:8px;
    transform:translateY(110%);
    transition:transform .5s cubic-bezier(.7,0,.2,1);
  }
  .m-actionbar.in{ transform:translateY(0); }
  body.menu-open .m-actionbar{ transform:translateY(110%); }
  .m-actionbar a{
    flex:1;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:3px;
    padding:10px 4px;
    color:rgba(255,255,255,.85);
    font-size:11px; letter-spacing:.05em;
    border-radius:14px;
    text-decoration:none;
    -webkit-tap-highlight-color:transparent;
  }
  .m-actionbar a .ic{
    width:22px; height:22px; display:flex; align-items:center; justify-content:center;
    color:rgba(255,255,255,.85);
  }
  .m-actionbar a.primary{
    background:#fff; color:var(--r5-dark);
    flex:1.6;
    font-weight:500;
  }
  .m-actionbar a.primary .ic{ color:var(--r5-dark); }

  /* hide any sticky reserve-strip if present */
  .reserve-strip, .r5-mobile-cta-bar{ display:none !important; }

  /* hide the floating WhatsApp button on mobile — action bar already
     has a WhatsApp tap target, so the FAB just clashes with Reserve. */
  .r5-whatsapp-float, .r5-whatsapp-fab{ display:none !important; }

  /* lift cookie consent banner above the action bar so it sits cleanly */
  .r5-consent-banner{
    bottom:calc(86px + env(safe-area-inset-bottom)) !important;
    border-radius:18px 18px 0 0 !important;
  }

  /* ===========================================================
     4.  HERO  —  full-bleed, app-like
     The hero image must extend BEHIND the translucent header,
     otherwise the transparent bar reveals body cream and looks
     like a solid block.
     =========================================================== */
  .home-hero, .hero, .fl-hero, .mvc-hero, .sp-hero, .rrad-hero{
    min-height:100vh; min-height:100dvh;
    align-items:flex-end;
    margin-top:-73px;
    padding-top:73px;
  }
  .home-hero .home-hero-content,
  .home-hero .hero-content,
  .hero-content,
  .fl-hero-content,
  .mvc-hero-content,
  .sp-hero-content,
  .rrad-hero-content{
    padding:0 22px 56px !important;
  }
  .home-hero .home-hero-grid,
  .home-hero .hero-grid,
  .hero-grid,
  .fl-hero-grid,
  .mvc-hero-grid,
  .sp-hero-grid,
  .rrad-hero-grid{
    grid-template-columns:1fr !important;
    gap:24px !important;
  }
  .home-hero h1, .hero-title, .fl-hero h1, .mvc-hero h1, .sp-hero h1, .rrad-hero h1{
    font-size:clamp(40px, 11vw, 54px) !important;
    line-height:1 !important;
    letter-spacing:-.02em !important;
    text-wrap:balance;
    margin-bottom:18px !important;
  }
  /* keep <br> so words don't run together; balance does the wrapping */
  .home-hero .hero-eyebrow,
  .hero-eyebrow,
  .fl-hero .eyebrow,
  .mvc-hero-eyebrow,
  .rrad-hero-eyebrow,
  .sp-hero .sp-eyebrow{
    margin-bottom:18px !important;
    font-size:10px !important;
    letter-spacing:.24em !important;
  }
  .home-hero .hero-side p,
  .hero-side p,
  .fl-hero .lead,
  .mvc-hero-side p,
  .sp-hero-side p,
  .rrad-hero-side p{
    font-size:15px !important;
    line-height:1.65 !important;
    margin-bottom:22px !important;
    max-width:none !important;
    color:rgba(255,255,255,.82) !important;
  }
  .home-hero .home-hero-actions,
  .home-hero .hero-actions,
  .hero-actions{
    display:flex !important;
    flex-direction:column;
    gap:10px !important;
    margin-bottom:30px !important;
  }
  .home-hero .home-hero-actions .btn,
  .home-hero .home-hero-actions a,
  .hero-actions .btn,
  .hero-actions a{
    width:100%;
    justify-content:center;
    padding:16px 24px !important;
    font-size:14px !important;
  }
  /* hero meta — horizontal scroll chip rail */
  .home-hero .home-hero-meta,
  .home-hero .hero-meta,
  .hero-meta,
  .mvc-hero-meta{
    display:flex !important;
    flex-wrap:nowrap !important;
    gap:0 !important;
    margin-top:24px !important;
    padding-top:22px !important;
    border-top:1px solid rgba(255,255,255,.18) !important;
    overflow-x:auto;
    scrollbar-width:none;
    margin-left:-22px; margin-right:-22px;
    padding-left:22px; padding-right:22px;
  }
  .home-hero .home-hero-meta::-webkit-scrollbar,
  .hero-meta::-webkit-scrollbar{ display:none; }
  .home-hero .home-hero-meta span,
  .hero-meta span,
  .mvc-hero-meta span{
    flex:0 0 auto;
    padding-right:32px;
    border-right:1px solid rgba(255,255,255,.12);
    margin-right:24px;
    font-size:9.5px !important;
    letter-spacing:.22em !important;
  }
  .home-hero .home-hero-meta span:last-child,
  .hero-meta span:last-child,
  .mvc-hero-meta span:last-child{ border-right:0; padding-right:0; margin-right:22px; }
  .home-hero .home-hero-meta b,
  .hero-meta span b,
  .mvc-hero-meta span b{
    font-size:15px !important;
    margin-bottom:4px !important;
  }

  /* ===========================================================
     5.  SECTIONS  —  generous mobile rhythm
     =========================================================== */
  section{ scroll-margin-top:60px; }
  .manifesto, .home-services, .fleet-snap, .difference,
  .reviews, .book-teaser, .home-faq, .trusted, .final-home,
  .moments, .itineraries, .compare, .members, .principles{
    padding:72px 22px !important;
  }
  .manifesto-inner, .home-services-inner, .fleet-snap-inner, .difference-inner,
  .reviews-inner, .home-faq-inner{
    grid-template-columns:1fr !important;
    gap:18px !important;
  }
  .manifesto-inner{ display:block !important; }
  .manifesto h2{
    font-size:36px !important;
    line-height:1.05 !important;
    margin-bottom:20px !important;
    text-wrap:balance;
  }
  .manifesto p{
    font-size:15px !important;
    line-height:1.7 !important;
    max-width:none !important;
    margin-bottom:18px !important;
  }
  .manifesto .signoff{
    margin-top:30px !important;
    padding-top:22px !important;
    flex-wrap:wrap;
    gap:8px;
    font-size:10px !important;
  }
  .manifesto .label,
  .difference-head .label,
  .home-services-head .left .label,
  .fleet-head .left .label,
  .book-teaser .label,
  .home-faq-head .left .label,
  .final-home .label,
  .trusted .label{
    font-size:10px !important;
    letter-spacing:.26em !important;
    margin-bottom:14px !important;
  }

  /* universal H2 */
  .home-services-head h2,
  .fleet-head h2,
  .difference-head h2,
  .reviews-head .left h2,
  .book-teaser h2,
  .home-faq-head h2,
  .final-home h2{
    font-size:40px !important;
    line-height:1.02 !important;
    letter-spacing:-.02em !important;
    text-wrap:balance;
  }
  .final-home h2{
    font-size:54px !important;
  }

  /* services / fleet rails — single column then swipeable */
  .svc-grid-5,
  .home-services-grid,
  .iti-grid,
  .fleet-grid, .fleet-grid-4,
  .reviews-grid,
  .principles-grid,
  .cross-grid, .cross-grid-2{
    grid-template-columns:1fr !important;
    gap:14px !important;
  }
  .svc-grid-5 > a:nth-child(n){ grid-column:span 1 !important; }

  /* services as a swipeable rail */
  .home-services-grid,
  .svc-grid-5{
    display:grid !important;
    grid-auto-flow:column !important;
    grid-auto-columns:78% !important;
    grid-template-columns:none !important;
    overflow-x:auto !important;
    scroll-snap-type:x mandatory !important;
    scroll-padding-left:22px !important;
    margin:0 -22px !important;
    padding:0 22px 18px !important;
    gap:12px !important;
    scrollbar-width:none;
  }
  .home-services-grid::-webkit-scrollbar,
  .svc-grid-5::-webkit-scrollbar{ display:none; }
  .home-services-grid > a,
  .svc-grid-5 > a{
    scroll-snap-align:start;
  }
  .svc-card-img{ aspect-ratio:4/5 !important; }
  .svc-grid-5 > a:nth-child(1) .svc-card-img{ aspect-ratio:4/5 !important; }
  .svc-card-text{ padding:22px !important; }
  .svc-card-text h3,
  .svc-grid-5 > a:nth-child(1) .svc-card-text h3{
    font-size:22px !important;
    font-weight:400 !important;
  }
  .svc-card-text p{
    font-size:13px !important;
    line-height:1.6 !important;
    margin-bottom:16px !important;
  }

  /* fleet rail — same swipeable treatment */
  .fleet-grid, .fleet-grid-4{
    display:grid !important;
    grid-auto-flow:column !important;
    grid-auto-columns:84% !important;
    grid-template-columns:none !important;
    overflow-x:auto !important;
    scroll-snap-type:x mandatory !important;
    scroll-padding-left:22px !important;
    margin:0 -22px !important;
    padding:0 22px 14px !important;
    gap:12px !important;
    scrollbar-width:none;
  }
  .fleet-grid::-webkit-scrollbar, .fleet-grid-4::-webkit-scrollbar{ display:none; }
  .fleet-grid > *, .fleet-grid-4 > *{ scroll-snap-align:start; }
  .fleet-card-img{ aspect-ratio:4/5 !important; }
  .fleet-card-text{ padding:22px !important; }
  .fleet-card-text h3{
    font-size:24px !important;
    line-height:1.05 !important;
  }
  .fleet-card-text .ftc{ font-size:12px !important; margin-bottom:18px !important; }
  .fleet-card-meta{ padding-top:16px !important; }
  .fleet-card-meta .specs{ font-size:11px !important; }
  .fleet-card-meta .specs b{ font-size:13px !important; }
  .fleet-card-meta .more{ font-size:11px !important; letter-spacing:.18em !important; }

  /* swipe hint */
  .m-rail-hint{
    display:flex; align-items:center; justify-content:flex-end;
    gap:10px;
    font-size:10px; letter-spacing:.24em; text-transform:uppercase;
    color:var(--r5-grey);
    margin:-6px 0 14px;
  }
  .m-rail-hint::after{
    content:""; width:24px; height:1px; background:currentColor;
    position:relative;
  }

  .home-services-head .right,
  .fleet-head .right,
  .reviews-head .left p,
  .difference-head p,
  .book-teaser p,
  .home-faq-head .right p{
    font-size:14px !important;
    line-height:1.7 !important;
    max-width:none !important;
    justify-self:start !important;
  }
  .home-services-head, .fleet-head{
    margin-bottom:32px !important;
    gap:14px !important;
  }
  .difference-head{ margin-bottom:34px !important; }
  .difference-head h2{ margin-bottom:18px !important; }

  /* principles */
  .principles-rail{
    border:0 !important;
    background:transparent !important;
    border-top:1px solid var(--r5-border) !important;
    border-radius:0 !important;
    gap:0 !important;
  }
  .principle-card{
    padding:28px 0 !important;
    border-bottom:1px solid var(--r5-border) !important;
  }
  .principle-card .glyph{
    font-size:24px !important;
    margin-bottom:14px !important;
  }
  .principle-card h3{
    font-size:22px !important;
    margin-bottom:10px !important;
  }
  .principle-card p{
    font-size:14px !important;
    line-height:1.65 !important;
  }

  /* moment-bleed */
  .moment-bleed{
    height:auto !important;
    min-height:64vh !important;
  }
  .moment-bleed-text{
    padding:0 22px 56px !important;
  }
  .moment-bleed-text h3{
    font-size:30px !important;
    line-height:1.1 !important;
    text-wrap:balance;
  }
  .moment-bleed-text .eyebrow{
    font-size:10px !important;
    letter-spacing:.26em !important;
  }

  /* bleed sections */
  .bleed, .mvc-bleed, .sp-bleed{
    height:auto !important;
    min-height:60vh !important;
  }
  .bleed-text, .mvc-bleed-text, .sp-bleed-text{
    bottom:40px !important;
    padding:0 22px !important;
  }
  .bleed-text h3, .mvc-bleed-text h3, .sp-bleed-text h3{ font-size:26px !important; line-height:1.2 !important; }

  /* reviews */
  .reviews-head{
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:18px !important;
    margin-bottom:28px !important;
  }
  .reviews-head .stars{ text-align:left !important; }
  .reviews-head .stars .stars-row{ font-size:18px !important; letter-spacing:4px !important; }
  .review{
    padding:24px !important;
  }
  .review blockquote{
    font-size:16px !important;
    line-height:1.5 !important;
    margin-bottom:18px !important;
  }
  .review .who{ padding-top:18px !important; }

  /* book-teaser */
  .book-teaser-inner{
    grid-template-columns:1fr !important;
    gap:30px !important;
  }
  .book-teaser h2{ margin-bottom:18px !important; }
  .book-teaser p{ margin-bottom:24px !important; }
  .book-teaser .actions, .book-teaser-actions{
    flex-direction:column;
    gap:10px !important;
  }
  .book-teaser .actions .btn,
  .book-teaser-actions .btn,
  .book-teaser-actions a{
    width:100%;
    justify-content:center;
    padding:16px 24px !important;
  }
  .book-form-preview{
    padding:24px !important;
    border-radius:16px !important;
  }
  .book-form-preview .field-row{
    grid-template-columns:1fr 1fr !important;
    gap:10px !important;
  }
  .book-form-preview .field .input,
  .book-form-preview .field input,
  .book-form-preview .field select{
    font-size:14px !important;
    padding:14px 16px !important;
  }
  .book-form-preview .next{ padding:16px !important; }

  /* FAQ */
  .home-faq-q,
  .faq-q{
    font-size:17px !important;
    padding:22px 0 !important;
    gap:16px !important;
    line-height:1.3 !important;
  }
  .home-faq-q .icon,
  .faq-q .icon{
    width:30px !important; height:30px !important;
    flex-shrink:0;
  }
  .home-faq-a p,
  .faq-a p{ font-size:14px !important; line-height:1.7 !important; }
  .home-faq-item.open .home-faq-a,
  .faq-item.open .faq-a{ padding-bottom:24px !important; }

  /* trusted */
  .trusted-logos{
    gap:24px 32px !important;
  }
  .trusted-logos img{
    max-height:24px !important; height:24px !important;
  }
  .trusted .label{ margin-bottom:30px !important; }

  /* final CTA */
  .final-home{ padding:90px 22px !important; }
  .final-home h2{ margin-bottom:22px !important; }
  .final-home p{ font-size:15px !important; margin-bottom:32px !important; }
  .final-actions{ flex-direction:column; gap:10px !important; }
  .final-actions .btn,
  .final-actions a,
  .final .btn{
    width:100%;
    justify-content:center;
    padding:16px 24px !important;
  }
  .final{ padding:80px 22px !important; }
  .final h2{ font-size:40px !important; line-height:1.05 !important; }

  /* footer (R5 uses .r5-footer) */
  .r5-footer, .site-foot{ padding:56px 22px 30px !important; }
  .r5-footer-grid, .site-foot-grid{
    grid-template-columns:1fr !important;
    gap:32px !important;
    padding-bottom:40px !important;
  }
  .r5-footer-brand, .site-foot .brand{ grid-column:span 1 !important; }
  .r5-footer-brand p, .site-foot .brand p{ font-size:13px !important; }
  .r5-footer h4, .site-foot h4{ margin-bottom:16px !important; font-size:10px !important; }
  .r5-footer ul, .site-foot ul{ gap:12px !important; }
  .r5-footer ul a, .site-foot ul a{ font-size:14px !important; }
  .r5-footer-legal, .site-foot .legal{
    flex-direction:column;
    align-items:flex-start;
    gap:8px !important;
    font-size:11px !important;
  }
  .foot{ padding:40px 22px !important; }

  /* concierge */
  .concierge-side{ padding:48px 22px !important; }
  .concierge h3{ font-size:28px !important; margin-bottom:14px !important; }
  .concierge p{ font-size:14px !important; max-width:none !important; margin-bottom:22px !important; }
  .concierge-detail a{ font-size:16px !important; }

  /* services list */
  .svc{
    grid-template-columns:1fr !important;
    gap:8px !important;
    padding:28px 0 !important;
  }
  .svc-num{ padding-top:0 !important; }
  .svc-title h3{ font-size:24px !important; }
  .svc-fit{ font-size:10px !important; }
  .svc-desc{ font-size:14px !important; padding-top:0 !important; }
  .svc-meta{
    flex-direction:column !important;
    gap:8px !important;
    margin-top:8px !important;
  }
  .svc.lead{
    margin:-1px -22px 0 !important;
    padding-left:22px !important; padding-right:22px !important;
    border-radius:14px !important;
  }

  /* svc-row */
  .svc-row, .svc-row.reverse{
    grid-template-columns:1fr !important;
    gap:22px !important;
    padding:48px 0 !important;
    direction:ltr !important;
  }
  .svc-row-img{ aspect-ratio:5/4 !important; border-radius:10px !important; }
  .svc-row-text h3{ font-size:32px !important; line-height:1.05 !important; margin-bottom:16px !important; }
  .svc-row-text > p{ font-size:15px !important; line-height:1.7 !important; max-width:none !important; margin-bottom:22px !important; }
  .svc-row-fleet{ max-width:none !important; }
  .svc-row-fleet a{ padding:14px 0 !important; }
  .svc-row-fleet a b{ font-size:15px !important; }

  /* moment (vehicle pages) */
  .moment, .moment.reverse{
    grid-template-columns:1fr !important;
    gap:22px !important;
    padding:48px 0 !important;
    direction:ltr !important;
  }
  .moment-img{ aspect-ratio:5/4 !important; border-radius:10px !important; }
  .moment-text h3{ font-size:30px !important; line-height:1.05 !important; margin-bottom:16px !important; }
  .moment-text p{ font-size:15px !important; line-height:1.7 !important; max-width:none !important; }

  /* spec table */
  .compare-inner, .mvc-compare-inner, .sp-compare-inner{
    grid-template-columns:1fr !important;
    gap:24px !important;
  }
  .spec-row, .mvc-spec-row, .sp-spec-row{
    grid-template-columns:1fr !important;
    gap:6px !important;
    padding:14px 0 !important;
  }
  .spec-row .lbl, .mvc-spec-row .lbl, .sp-spec-row .lbl{
    grid-column:1/-1 !important;
    font-size:10px !important;
  }
  .spec-row.head, .mvc-spec-row.head, .sp-spec-row.head{ display:none !important; }
  .spec-row .val, .mvc-spec-row .val, .sp-spec-row .val{ font-size:15px !important; }
  .spec-row .val.alt, .mvc-spec-row .val.alt, .sp-spec-row .val.alt{ font-size:13px !important; color:var(--r5-grey) !important; }

  /* itineraries */
  .iti-img{ aspect-ratio:5/4 !important; }
  .iti-body{ padding:22px !important; }
  .iti h3{ font-size:21px !important; }
  .iti p{ font-size:13px !important; }

  /* button defaults */
  .btn,
  .r5-btn-primary,
  .r5-btn-ghost,
  .r5-btn-ghost-light{
    padding:15px 22px;
    font-size:14px;
    min-height:48px;
  }

  /* generous default body font */
  body{ font-size:15px; }

  /* ===========================================================
     6.  REVEAL — slide up on scroll (kept lightweight)
     =========================================================== */
  .reveal{ transform:translateY(16px); transition-duration:.7s; }
}

/* prefers-reduced-motion */
@media (prefers-reduced-motion: reduce){
  .m-menu, .m-actionbar, .reveal{ transition:none !important; }
}

/* =========================================================
   MOBILE FIXES — header reveal, marquee stability, touch hover
   ========================================================= */
@media (max-width: 680px){
  /* Header slides back into view on scroll-up. The base mobile rule
     overrode the desktop transform transition with a shorter background-only
     one — restore transform here so .hidden animates smoothly. */
  .r5-header{
    transition: background .3s ease, box-shadow .3s ease, transform .45s cubic-bezier(.2,.7,.2,1) !important;
    will-change: transform;
  }
  .r5-header.hidden{ transform: translateY(-100%) !important; }

  /* Trust marquee — fixed-width slots so the track total width stays stable
     while images load. Use margin-right (not gap) so the loop point at -50%
     lands precisely on a content boundary instead of off by half-a-gap, which
     was the visible jump every cycle. */
  .r5-trust-track,
  .r5-marquee-track{
    gap: 0 !important;
  }
  .r5-trust-track img,
  .r5-marquee-track img{
    flex: 0 0 92px !important;
    width: 92px !important;
    height: 26px !important;
    margin-right: 44px !important;
    object-fit: contain !important;
  }

  /* Footer logo link — keep image flow intact when wrapped in <a>. */
  .r5-footer-logo-link{
    display: inline-block;
    line-height: 0;
  }
}

/* Touch devices — neutralise hover-driven image scales. On phones, a brief
   tap during a scroll fires :hover and then releases it, which reads as the
   image "zooming in and out very quickly." Catch every hovered ancestor with
   an image descendant — the inline <style> blocks across pages add their own
   selectors (.svc-card, .fleet-card, .city-card, .sp-moment, etc.) and we
   want them all suppressed on touch. Ken Burns @keyframes animations
   override !important on the cascade, so hero zooms keep working. */
@media (hover: none){
  :hover img{
    transform: none !important;
    transition: none !important;
  }
}

.r5-footer-logo-link{ display: inline-block; line-height: 0; }
