/* Travel More RV — site styles */

/* ============ Fonts ============ */
/* Barlow Condensed is self-hosted, not fetched from Google Fonts. It sets the
   above-the-fold heading on every page (.tmrv-hero-copy h1, .tmrv-page-hero h1,
   .tmrv-youtube-intro h2), and as a render-blocking third-party request it
   arrived well after first paint -- measured at ~500ms for the stylesheet
   alone. Headings painted in the Impact fallback and then swapped.

   That swap is visible because the fallbacks are not the same size. Measured in
   Chrome at 700 weight, against Barlow Condensed = 100%:

       Impact         110.5%   <- what actually paints first
       Arial Narrow   121.2%

   So a heading appears ~10% too wide and much heavier, then shrinks when the
   real face lands. Measured on /services before this change: the H1's rendered
   text went 315.6px -> 286.2px, a 9.3% jump, on every cold load.

   font-display is "optional", and that is the part that fixes it. "swap" has a
   ZERO block period by specification: the browser always paints the fallback
   first and swaps whenever the face turns up. Self-hosting and preloading alone
   only moved that swap earlier -- measured 356ms -> 104ms -- and a 104ms flash
   is still a flash. "optional" gives a ~100ms block period and then commits for
   the lifetime of that page load: either the face is ready and is used from the
   very first paint, or it is not and the fallback is kept. Nothing swaps
   mid-render either way. Preloading is what makes the first branch the normal
   one; a cold load that loses the race renders that one page view in Impact and
   every later view uses the cached face.

   Latin subset only; covers the em dashes, curly quotes and bullets the copy
   uses. 700 = interior hero H1 (h1's default bold). 800 = homepage hero H1,
   which asks for 900 and gets 800 as the heaviest face loaded -- longstanding,
   and noted in tmrv_head(). */
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:700;font-display:optional;src:url(../fonts/barlow-condensed-700.woff2) format("woff2");}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:800;font-display:optional;src:url(../fonts/barlow-condensed-800.woff2) format("woff2");}

/* ============ Tokens ============ */:root{--tmrv-navy:#062958;--tmrv-deep:#021b3b;--tmrv-orange:#f26522;--tmrv-orange-ink:#c5470c;--tmrv-gold:#f7a91e;--tmrv-light:#f5f8fc;--tmrv-dark:#111d33;--tmrv-muted:#586579;--tmrv-line:#dbe4ef;--tmrv-white:#fff;--tmrv-form-col:820px;}
/* --tmrv-form-col is the width of a form column: .tmrv-contact-card and, on the
   request page, the status card stacked above it. Those two have to stay equal
   or the stack looks misaligned, which is the whole reason it is a token. Note
   the other 820px values in this file are text measure on paragraphs -- same
   number, unrelated purpose, deliberately not folded in here. */

/* ============ Base ============ */*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body.tmrv-home{margin:0;font-family:Inter,Arial,sans-serif;color:var(--tmrv-dark);background:#fff;}
body.tmrv-home a{text-decoration:none;color:inherit;}
.tmrv-container{width:min(1190px,92vw);margin:auto;}
.tmrv-btn-orange{background:var(--tmrv-orange-ink);color:#fff;}
.tmrv-btn-navy{background:#062653;color:#fff;}
.tmrv-btn-youtube{background:#e62117;color:#fff;}
.tmrv-btn:hover{filter:brightness(.94);color:#fff;}
/* Buttons are <a> elements, so `body.tmrv-home a{color:inherit}` at (0,1,2)
   outranks a bare `.tmrv-btn-orange` at (0,1,0) and the label inherited the
   surrounding text colour instead of white. The header CTA only looked correct
   because the header sets color:#fff; the status-card CTA rendered dark navy.
   The giveaway was that every button turned white on hover, because
   `.tmrv-btn:hover` is (0,2,0) and does win. body always carries .tmrv-plain,
   which puts these at (0,2,0). Supersedes the per-section patches that were
   added for .tmrv-about and .tmrv-final-cta. */
.tmrv-plain .tmrv-btn-orange,
.tmrv-plain .tmrv-btn-navy,
.tmrv-plain .tmrv-btn-youtube{color:#fff;}
.tmrv-plain .tmrv-btn-orange:visited,
.tmrv-plain .tmrv-btn-navy:visited,
.tmrv-plain .tmrv-btn-youtube:visited{color:#fff;}
.tmrv-section{padding:42px 0;}
.tmrv-center{text-align:center;}
/* Visually hidden but announced by screen readers. */
.tmrv-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;}
.tmrv-section h2{font-size:clamp(30px,3vw,42px);line-height:1.02;text-transform:uppercase;color:#061f48;margin:0 0 14px;font-weight:900;}
.tmrv-kicker{color:var(--tmrv-orange-ink);text-transform:uppercase;font-weight:900;font-size:14px;margin:0 0 8px;}
.tmrv-checklist{list-style:none;padding:0;margin:0;}
.tmrv-checklist li{margin:13px 0;font-weight:800;}
.tmrv-checklist li:before{content:"✓";color:var(--tmrv-orange-ink);font-weight:900;margin-right:9px;}
.tmrv-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:5px;padding:14px 22px;font-weight:900;text-transform:uppercase;font-size:14px;letter-spacing:.015em;line-height:1;gap:0;white-space:nowrap;}
body.tmrv-interior{margin:0;font-family:Inter,Arial,sans-serif;color:var(--tmrv-dark);background:#fff;}
body.tmrv-interior a{text-decoration:none;color:inherit;}
.tmrv-script{font-family:Inter,Arial,sans-serif;color:var(--tmrv-orange-ink);font-size:15px;line-height:1.2 !important;font-weight:900;letter-spacing:.04em;text-transform:none;margin:0 0 10px;}

/* <picture> wrappers (see tmrv_img) must not become the layout box: with a
   real box the <img> stops being the flex/grid item its container sizes, and
   `.tmrv-footer-grid>div:first-child>img` stops matching. display:contents
   removes the box while leaving <source> selection untouched. */picture{display:contents;}
/* With picture:display:contents its children become the flex/grid items --
   including <source>, which was silently claiming the first grid track on
   the About page and pushing the photo into the wrong column. <source> is
   metadata and never renders; hiding it does not affect source selection,
   which is a DOM-level algorithm, not a layout one. */picture > source{display:none;}

/* ---- Skip link & focus ---- */
/* body always carries .tmrv-plain (see tmrv_body_class), which is what lets these
   beat `body.tmrv-home a{color:inherit}
` at (0,1,2) on class count. */.tmrv-plain .tmrv-skip-link{position:absolute;left:-9999px;top:0;z-index:1100;background:#061f48;color:#fff;padding:12px 18px;font-weight:900;text-transform:uppercase;font-size:14px;letter-spacing:.02em;border-radius:0 0 6px 0;}
.tmrv-plain .tmrv-skip-link:focus{left:0;}
/* The site had no focus styling at all, so keyboard users got the browser default
   outline, which is invisible against the navy header. Dark ring by default,
   flipped to gold on the dark surfaces. */:focus-visible{outline:3px solid #061f48;outline-offset:2px;}
.tmrv-site-header :focus-visible,
.tmrv-site-footer :focus-visible,
.tmrv-page-hero :focus-visible,
.tmrv-testimonials :focus-visible{outline-color:var(--tmrv-gold);}

/* ============ Components ============ */

/* ---- Header & nav ---- */.tmrv-nav-wrap{display:flex;align-items:center;gap:28px;min-height:72px;}
.tmrv-brand img{width:290px;max-width:100%;display:block;height:auto;}
.tmrv-menu-toggle{display:none;margin-left:auto;background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:5px;padding:10px 12px;font-weight:900;text-transform:uppercase;font-size:14px;line-height:1;cursor:pointer;}
.tmrv-menu-toggle span{margin-left:6px;}
.tmrv-menu-toggle:hover{background:rgba(255,255,255,.08);}
.tmrv-nav{display:flex;gap:29px;margin-left:auto;font-size:13px;font-weight:900;text-transform:uppercase;}
.tmrv-nav a{opacity:.98;padding:28px 0 24px;border-bottom:3px solid transparent;}
.tmrv-nav a:hover{color:#fff;border-color:var(--tmrv-orange);}
.tmrv-site-header{color:#fff;box-shadow:0 2px 12px rgba(0,0,0,.16);position:sticky;top:0;z-index:1000;background:#031b3f;}
.tmrv-nav a.is-current{border-color:var(--tmrv-orange);color:#fff;border-bottom-color:var(--tmrv-orange);}
.tmrv-nav a:not(.is-current){border-bottom-color:transparent;}
.tmrv-nav .tmrv-nav-mobile-cta{display:none;}

/* ---- Hero ---- */
/* Hero — mobile-first: full uncropped image band + copy below (subject can never be cropped out).
   At >=641px it becomes a full-bleed cover background with a left-side scrim and overlaid copy. */.tmrv-hero{position:relative;}
.tmrv-hero-media{display:block;}
.tmrv-hero-media img{display:block;width:100%;height:auto;}
.tmrv-hero-scrim{display:none;}
.tmrv-hero-copy{padding:26px 0 30px;}
.tmrv-hero-copy h1{font-family:"Barlow Condensed",Impact,"Arial Narrow",sans-serif;text-transform:uppercase;font-weight:900;letter-spacing:.01em;line-height:.94;font-size:clamp(32px,9vw,46px);margin:0 0 12px;color:#061f48;}
.tmrv-hero-credentials{display:flex;flex-wrap:wrap;column-gap:.6em;row-gap:2px;font-weight:900;text-transform:uppercase;letter-spacing:.045em;font-size:clamp(11px,2.6vw,14px);line-height:1.3;margin:0;color:var(--tmrv-orange-ink);}
.tmrv-hero-credential{white-space:nowrap;}
.tmrv-hero-credential-sep{color:#061f48;}

/* ---- Trust bar ---- */.tmrv-trust-grid div:first-child{border-left:0;}
.tmrv-trust-grid{display:grid;grid-template-columns:repeat(6,1fr);width:min(1500px,100%);max-width:1500px;margin:0 auto;}
.tmrv-trust-grid div{display:flex;align-items:center;justify-content:center;border-left:1px solid rgba(255,255,255,.18);font-weight:900;text-transform:uppercase;min-height:68px;font-size:22px;gap:14px;color:#f4a329;}
.tmrv-trust-grid span{font-size:12px;line-height:1.15;color:#fff;}
.tmrv-trustbar{color:#fff;margin-top:0;border-top:0;background:#062653;overflow:hidden;}
.tmrv-trustbar .tmrv-trust-grid{width:100%;max-width:1600px;margin:0 auto;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));}
.tmrv-trustbar .tmrv-trust-grid > div:first-child{border-left:0;}
.tmrv-trustbar .tmrv-trust-grid > div{min-width:0;min-height:68px;padding:10px 14px;display:flex;align-items:center;justify-content:center;gap:12px;border-left:1px solid rgba(255,255,255,.18);border-top:0;text-align:left;font-size:22px;line-height:1;}
.tmrv-trustbar .tmrv-trust-grid span{display:block;color:#fff;font-size:12px;line-height:1.12;font-weight:900;text-transform:uppercase;}
/* The emoji now sits in its own aria-hidden span so screen readers skip it.
   Three classes outrank the label rule above (and its responsive overrides),
   so the icon keeps inheriting the parent's size/color as a bare text node did. */.tmrv-trustbar .tmrv-trust-grid .tmrv-trust-icon{display:inline;color:inherit;font:inherit;text-transform:none;}

/* ---- Services ---- */.tmrv-services{background:#fbfdff;border-top:1px solid var(--tmrv-line);border-bottom:1px solid var(--tmrv-line);}
.tmrv-service-card .tmrv-icon{font-size:38px;color:var(--tmrv-orange);margin-bottom:12px;}
.tmrv-service-card h3{font-size:16px;line-height:1.15;text-transform:uppercase;color:#061f48;margin:0 0 10px;font-weight:900;}
.tmrv-service-card p{font-size:14px;line-height:1.42;color:#303a4a;min-height:58px;}
.tmrv-services h2{margin-bottom:22px;}
.tmrv-service-card{background:#fff;border:1px solid var(--tmrv-line);border-radius:8px;box-shadow:0 8px 22px rgba(7,43,97,.055);padding:24px 16px;text-align:center;min-height:206px;}
.tmrv-three{grid-template-columns:repeat(3,1fr);max-width:1080px;margin:0 auto;}
.tmrv-service-trio{margin-top:8px;}
.tmrv-service-card-link{display:block;color:inherit;text-decoration:none;padding:32px 26px;min-height:250px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;}
.tmrv-service-card-link:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(7,43,97,.12);border-color:rgba(242,101,34,.45);color:inherit;}
.tmrv-service-card-link p{min-height:54px;}

/* ---- About ---- */.tmrv-about{padding-top:34px;}
.tmrv-about-grid{display:grid;grid-template-columns:1fr 1.35fr .9fr;gap:32px;align-items:center;}
.tmrv-about p{line-height:1.6;margin-top:0;}
.tmrv-about h2{line-height:1.02;text-transform:uppercase;color:#061f48;margin:0 0 14px;font-weight:900;font-size:36px;}
.tmrv-about-photo img{display:block;width:100%;height:246px;object-fit:cover;border-radius:5px;box-shadow:0 10px 25px rgba(7,43,97,.1);}
.tmrv-about .tmrv-btn-navy{color:#fff;}
.tmrv-about .tmrv-btn-navy:visited{color:#fff;}
.tmrv-about .tmrv-btn-navy:hover{color:#fff;filter:brightness(.94);}

/* ---- Testimonials ---- */.tmrv-testimonials h2{font-size:clamp(30px,3vw,42px);line-height:1.02;text-transform:uppercase;margin:0 0 14px;font-weight:900;text-align:center;color:#fff;}
.tmrv-testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.tmrv-testimonial-grid blockquote{background:#fff;color:#172235;border-radius:7px;margin:0;padding:23px;line-height:1.5;box-shadow:0 10px 22px rgba(0,0,0,.12);}
.tmrv-testimonial-grid cite{display:block;margin-top:12px;font-weight:900;color:#072b61;}
.tmrv-testimonials{color:#fff;padding:44px 0;background:linear-gradient(180deg,rgba(6,38,83,.96),rgba(6,38,83,.98)),linear-gradient(135deg,#0e417e,#031b3f);}

/* ---- Recommendations ---- */.tmrv-recommendations{background:#fbfdff;border-top:1px solid var(--tmrv-line);border-bottom:1px solid var(--tmrv-line);}
.tmrv-recommendations .tmrv-script{color:var(--tmrv-orange-ink);}
.tmrv-recommendations h2{margin-bottom:10px;}
.tmrv-recommend-intro{max-width:760px;margin:0 auto 28px;text-align:center;color:var(--tmrv-muted);font-size:17px;line-height:1.55;}
.tmrv-recommend-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px;align-items:stretch;}
.tmrv-recommend-card{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;color:inherit;text-decoration:none;background:#fff;border:1px solid var(--tmrv-line);border-radius:10px;box-shadow:0 10px 25px rgba(7,43,97,.06);padding:28px 20px 24px;min-height:260px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;}
.tmrv-recommend-card:nth-child(1){grid-column:span 2;}
.tmrv-recommend-card:nth-child(2){grid-column:span 2;}
.tmrv-recommend-card:nth-child(3){grid-column:span 2;}
.tmrv-recommend-card:nth-child(4){grid-column:2 / span 2;}
.tmrv-recommend-card:nth-child(5){grid-column:4 / span 2;}
.tmrv-recommend-card:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(7,43,97,.13);border-color:rgba(242,101,34,.46);color:inherit;}
.tmrv-recommend-logo{height:48px;max-width:170px;margin:6px auto 18px;display:flex;align-items:center;justify-content:center;}
.tmrv-recommend-logo img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;}
.tmrv-recommend-card h3{font-size:18px;line-height:1.15;text-transform:uppercase;color:#061f48;margin:0 0 10px;font-weight:900;}
.tmrv-recommend-card p{font-size:14px;line-height:1.45;color:#303a4a;margin:0 auto 8px;max-width:260px;flex:1;}
.tmrv-recommend-card:hover .tmrv-card-link-text{color:var(--tmrv-orange-ink);}
.tmrv-recommend-disclaimer{margin:28px auto 0;max-width:760px;text-align:center;font-size:12px;line-height:1.5;color:var(--tmrv-muted);}

/* ---- Newsletter signup (EmailOctopus embed) ---- */
/* The embed injects its own title/copy/button; we retheme it to match the
   site rather than duplicate a heading in our own markup. Its CSS lands in a
   <style> tag added by an async script, so timing vs. our stylesheet isn't
   guaranteed -- !important keeps these overrides reliable regardless of
   injection order. Selector is scoped by the form's own data-form id so it
   can never match anything else on the page. */[data-form="ae758e98-8d2a-11f1-beb5-b3814c2745b8"]{margin:0 auto !important;}
[data-form="ae758e98-8d2a-11f1-beb5-b3814c2745b8"] [eo-block="title"] h1{font-family:"Barlow Condensed",Impact,"Arial Narrow",sans-serif !important;text-transform:uppercase !important;color:#061f48 !important;font-weight:900 !important;letter-spacing:.01em !important;font-size:clamp(26px,3vw,36px) !important;}
[data-form="ae758e98-8d2a-11f1-beb5-b3814c2745b8"] .form-control{border:1px solid var(--tmrv-line) !important;border-radius:5px !important;font-family:Inter,Arial,sans-serif !important;}
[data-form="ae758e98-8d2a-11f1-beb5-b3814c2745b8"] .btn-primary{background-color:var(--tmrv-orange-ink) !important;border-color:var(--tmrv-orange-ink) !important;text-transform:uppercase !important;font-weight:900 !important;letter-spacing:.015em !important;border-radius:5px !important;}
[data-form="ae758e98-8d2a-11f1-beb5-b3814c2745b8"] .btn-primary:hover,
[data-form="ae758e98-8d2a-11f1-beb5-b3814c2745b8"] .btn-primary:focus{background-color:#a83c09 !important;border-color:#a83c09 !important;}
[data-form="ae758e98-8d2a-11f1-beb5-b3814c2745b8"] [eo-block="social-follow"]{display:none !important;}
[data-form="ae758e98-8d2a-11f1-beb5-b3814c2745b8"] .emailoctopus-form-row-consent label{color:#303a4a !important;}
.tmrv-footer-newsletter [data-form="ae758e98-8d2a-11f1-beb5-b3814c2745b8"] [eo-block="title"] h1{color:#fff !important;}
.tmrv-footer-newsletter [data-form="ae758e98-8d2a-11f1-beb5-b3814c2745b8"] .mastfoot,
.tmrv-footer-newsletter [data-form="ae758e98-8d2a-11f1-beb5-b3814c2745b8"] .mastfoot p{color:#a9bcd8 !important;}
.tmrv-footer-newsletter [data-form="ae758e98-8d2a-11f1-beb5-b3814c2745b8"] .emailoctopus-form-row-consent label{color:#fff !important;}
.tmrv-recaptcha-notice{font-size:11px;line-height:1.4;color:var(--tmrv-muted);margin:10px auto 0;max-width:420px;text-align:center;}
.tmrv-recaptcha-notice a{color:inherit;text-decoration:underline;}
.tmrv-footer-newsletter .tmrv-recaptcha-notice,
.tmrv-footer-newsletter .tmrv-recaptcha-notice a{color:#a9bcd8;}

/* ---- Values ---- */
/* padding:42px here used to also win at <=640px because this rule happened to
   come after the base mobile-padding override in source order (an accident
   of the old file's layout, not a deliberate design choice) — it now
   correctly inherits the same 38px mobile padding every other .tmrv-section
   gets. One intentional 4px visual delta from this refactor; see
   PROJECT-HANDOFF.md §8. */.tmrv-values{background:#f7f9fc;border-top:1px solid var(--tmrv-line);padding:42px 0;}
.tmrv-values-card{display:grid;grid-template-columns:110px 1fr;gap:28px;align-items:start;background:#fff;border:1px solid var(--tmrv-line);border-radius:10px;box-shadow:0 10px 28px rgba(7,43,97,.07);padding:34px;}
.tmrv-values-icon{width:86px;height:86px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fff4ec,#ffe2d1);color:var(--tmrv-orange);font-size:44px;box-shadow:inset 0 0 0 2px rgba(242,101,34,.25);}
.tmrv-values h2{font-size:clamp(28px,3vw,40px);line-height:1.05;text-transform:uppercase;color:#061f48;margin:0 0 15px;font-weight:900;}
.tmrv-values p{font-size:16px;line-height:1.58;color:#263344;margin:0 0 13px;}
.tmrv-values-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;}
.tmrv-values-row span{display:inline-flex;align-items:center;background:#062653;color:#fff;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.02em;}
.tmrv-values-row span:first-child{background:var(--tmrv-orange-ink);}
.tmrv-values-row span:nth-child(2){background:var(--tmrv-orange-ink);}

/* ---- Final CTA ---- */.tmrv-cta-grid{display:flex;align-items:center;justify-content:space-between;gap:20px;}
.tmrv-final-cta{padding:32px 0;background:#f5f8fc;color:#061f48;border-top:1px solid var(--tmrv-line);}
.tmrv-final-cta h2{font-size:clamp(30px,3vw,42px);line-height:1.02;text-transform:uppercase;margin:0 0 14px;font-weight:900;margin-bottom:5px;color:#061f48;}
.tmrv-final-cta .tmrv-btn-navy{background:#062653;color:#fff;}
.tmrv-final-cta p{margin:0;color:#303a4a;max-width:760px;font-weight:700;line-height:1.45;}

/* ---- Video / YouTube ---- */.tmrv-video-intro h2{font-size:clamp(30px,3vw,42px);line-height:1.02;text-transform:uppercase;color:#061f48;margin:0 0 14px;font-weight:900;}
.tmrv-video-intro p{line-height:1.52;color:#303a4a;margin:0 0 16px;}
.tmrv-video-card p{font-size:13px;margin:0;color:var(--tmrv-muted);}
.tmrv-thumb{height:122px;border-radius:8px;color:#fff;font-size:25px;line-height:.92;text-transform:uppercase;font-weight:900;position:relative;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);padding:0;overflow:hidden;background:#061f48;}
.tmrv-thumb img{display:block;width:100%;height:100%;object-fit:cover;}
.tmrv-video-feature{background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);}
.tmrv-video-grid{display:grid;grid-template-columns:220px 1.22fr 1.8fr;gap:30px;align-items:center;}
.tmrv-youtube-intro h2{font-family:"Barlow Condensed",Impact,"Arial Narrow",sans-serif;font-size:clamp(38px,4vw,55px);letter-spacing:.03em;line-height:.95;margin:0 0 12px;color:#061f48;}
.tmrv-youtube-intro h2 span{color:var(--tmrv-orange);}
.tmrv-youtube-action{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.tmrv-youtube-action .tmrv-btn-youtube{padding:13px 22px;background:#e62117;color:#fff;box-shadow:0 8px 18px rgba(230,33,23,.20);}
.tmrv-youtube-action .tmrv-btn-youtube:before{content:"▶";display:inline-flex;align-items:center;justify-content:center;width:24px;height:18px;border-radius:4px;background:#fff;color:#e62117;margin-right:10px;font-size:11px;line-height:1;}
.tmrv-youtube-action .tmrv-note{margin:0;font-size:20px;color:#061f48;white-space:nowrap;}
.tmrv-video-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:start;}
.tmrv-video-card h3{line-height:1.25;margin:10px 0 4px;color:#061f48;font-size:14px;}
.tmrv-youtube-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:0 30px;padding:0;margin:0 0 16px;list-style:none;}
.tmrv-youtube-list ul{list-style:none;margin:0;padding:0;}
.tmrv-youtube-list li{font-size:13px;line-height:1.25;color:#172235;font-weight:800;position:relative;display:block;margin:0 0 8px;padding-left:19px;break-inside:avoid;}
.tmrv-youtube-list li:before{content:"✓";position:absolute;left:0;color:var(--tmrv-orange-ink);font-weight:900;top:0;}
.tmrv-youtube-lead{font-size:16px;line-height:1.45;margin:0 0 10px !important;color:#243149 !important;max-width:620px;}
.tmrv-video-card a{display:block;color:inherit;text-decoration:none;}
.tmrv-video-card a:hover h3{color:var(--tmrv-orange-ink);}
.tmrv-video-card a:hover .tmrv-thumb img{transform:scale(1.04);}
.tmrv-video-card.is-dynamic .tmrv-thumb{background:#061f48;}
.tmrv-video-library{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) !important;gap:24px !important;align-items:start;}
.tmrv-video-library .tmrv-video-card{background:#fff;border:1px solid var(--tmrv-line);border-radius:12px;overflow:hidden;box-shadow:0 10px 24px rgba(7,43,97,.06);}
.tmrv-video-library .tmrv-video-card a{display:block;color:inherit;text-decoration:none;}
.tmrv-video-library .tmrv-video-card h2{margin:0;padding:14px 14px 4px;color:#061f48;font-size:16px;line-height:1.22;text-transform:none;}
.tmrv-video-library .tmrv-video-card p{margin:0;padding:0 14px 16px;color:var(--tmrv-muted);font-size:13px;}
.tmrv-video-library .tmrv-video-card a:hover h2{color:var(--tmrv-orange-ink);}
.tmrv-video-page-actions{margin-top:28px;display:flex;justify-content:center;}
.tmrv-video-feature .tmrv-script{color:var(--tmrv-orange-ink);font-family:Caveat,"Brush Script MT","Segoe Script",cursive;font-size:23px;font-weight:600;letter-spacing:0;text-transform:none;margin:0 0 5px;}
.tmrv-video-card .tmrv-thumb{overflow:hidden;}
.tmrv-video-card .tmrv-thumb img{transition:transform .25s ease;display:block;width:100%;height:100%;object-fit:cover;object-position:center center;}
.tmrv-video-feature .tmrv-video-card .tmrv-thumb{aspect-ratio:16 / 9;height:auto;}
.tmrv-video-library .tmrv-video-card .tmrv-thumb{box-shadow:none;padding:0;overflow:hidden;aspect-ratio:16 / 9;height:auto !important;border-radius:0;}
.tmrv-video-library .tmrv-video-card .tmrv-thumb img{display:block;width:100%;height:100%;object-fit:cover;object-position:center center;}

/* Service status is split across three spots (page banner here, mini widget
   and color variants further below) rather than kept together, because the
   mini widget and color-variant rules must win cascade ties against the
   interior-page/contact-card rules they're nested inside on some pages —
   moving them next to the page-banner rules would flip those ties. Verified
   with the cascade-equivalence harness (see PROJECT-HANDOFF.md §8). */
/* ---- Service status (page banner) ---- */.tmrv-status-section{background:linear-gradient(180deg,#fff 0%,#f5f8fc 100%);padding:24px 0 30px;border-bottom:1px solid var(--tmrv-line);}
.tmrv-status-card{display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center;background:#fff;border:1px solid #dbe4ef;border-left:8px solid var(--tmrv-orange);border-radius:12px;padding:22px 26px;box-shadow:0 12px 30px rgba(7,43,97,.08);}
/* Emitted by tmrv_status_card() when the CTA is suppressed (on the page the
   CTA points at). The third `auto` track would otherwise stay in the template
   with nothing in it, and its 22px gap would read as dead space on the right.
   Deliberately ONE class, not `.tmrv-status-card.tmrv-status-nocta`: the
   responsive rules below re-declare grid-template-columns at a single class of
   specificity, and a two-class selector here would outrank them and force the
   desktop two-column layout onto phones. Equal specificity + earlier position
   means this wins on desktop and loses to the media queries, which is right. */
.tmrv-status-nocta{grid-template-columns:auto 1fr;}
/* On the request page the status card sits directly above the form card, so it
   is read as part of that stack rather than as a full-width page banner the way
   it is on the home and services pages. Matching widths is what makes the two
   look like one column. Scoped to the page body class, not to .tmrv-status-nocta:
   the narrower width follows from what the card sits above, not from whether it
   happens to have a button. box-sizing is border-box globally, so this and the
   form card resolve to the same outer width despite different padding. */
.tmrv-page-request-service .tmrv-status-card{max-width:var(--tmrv-form-col);margin-left:auto;margin-right:auto;}
.tmrv-status-icon{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#eef5fc;font-size:28px;box-shadow:inset 0 0 0 1px rgba(7,43,97,.08);}
.tmrv-status-copy .tmrv-status-label{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:900;color:var(--tmrv-orange-ink);margin:0 0 5px;}
.tmrv-status-copy h2{font-family:Inter,Arial,sans-serif;font-size:clamp(22px,2.4vw,31px);line-height:1.08;margin:0 0 7px;color:#061f48;text-transform:none;font-weight:900;}
.tmrv-status-copy p:last-child{margin:0;color:#303a4a;line-height:1.45;font-size:15px;max-width:820px;}
.tmrv-status-cta{min-width:168px;min-height:46px;}
.tmrv-status-dates{margin:0 0 8px;color:var(--tmrv-muted);font-size:13px;font-weight:800;}

/* ---- Interior page hero ---- */.tmrv-page-hero{background:linear-gradient(135deg,#061f48 0%,#092d62 58%,#0b65a3 100%);color:#fff;padding:70px 0 60px;}
.tmrv-page-hero h1{font-family:"Barlow Condensed",Impact,"Arial Narrow",sans-serif;text-transform:uppercase;font-size:clamp(48px,5.8vw,82px);line-height:.92;margin:0 0 12px;letter-spacing:.01em;}
.tmrv-page-hero p{font-size:20px;line-height:1.5;max-width:860px;margin:0;color:#dbe7f7;}
.tmrv-page-kicker{font-size:13px !important;letter-spacing:.16em;text-transform:uppercase;font-weight:900;color:#f7a91e !important;margin:0 0 10px !important;}
.tmrv-page-section{padding:52px 0;background:#fff;}
.tmrv-page-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.tmrv-page-card-grid article{background:#fff;border:1px solid var(--tmrv-line);border-radius:12px;padding:28px;box-shadow:0 10px 24px rgba(7,43,97,.06);}
.tmrv-page-card-grid article h2{margin:0 0 12px;color:#061f48;font-size:24px;line-height:1.15;text-transform:uppercase;}
.tmrv-page-split h2{margin:0 0 12px;color:#061f48;font-size:24px;line-height:1.15;text-transform:uppercase;}
.tmrv-page-card-grid article p{line-height:1.6;color:#303a4a;margin:0 0 14px;}
.tmrv-page-split p{line-height:1.6;color:#303a4a;margin:0 0 14px;}
.tmrv-service-detail-list{display:flex;flex-direction:column;gap:24px;}
.tmrv-service-detail{background:#fff;border:1px solid var(--tmrv-line);border-radius:12px;padding:32px;box-shadow:0 10px 24px rgba(7,43,97,.06);}
.tmrv-service-detail-head{display:flex;align-items:center;gap:20px;margin-bottom:14px;}
.tmrv-service-detail-head .tmrv-svg-icon{margin:0;flex:none;}
.tmrv-service-detail-head .tmrv-kicker{margin:0 0 4px;}
.tmrv-service-detail-head h2{margin:0;color:#061f48;font-size:26px;line-height:1.1;text-transform:uppercase;font-weight:900;}
.tmrv-service-detail p{line-height:1.6;color:#303a4a;margin:0 0 18px;max-width:760px;}
.tmrv-service-detail .tmrv-checklist{margin-top:18px;}
.tmrv-checklist-2col{display:grid;grid-template-columns:1fr 1fr;gap:2px 24px;}
.tmrv-checklist-2col li{margin:9px 0;}
.tmrv-page-card-grid article img{width:100%;height:170px;object-fit:cover;border-radius:8px;margin-bottom:16px;}
/* 404 page: the card headings are links here, and the heading colour would
   otherwise be inherited as the default link blue. */
.tmrv-page-card-grid article h2 a{color:inherit;text-decoration:none;}
.tmrv-page-card-grid article h2 a:hover,
.tmrv-page-card-grid article h2 a:focus{color:var(--tmrv-orange-ink);text-decoration:underline;}
.tmrv-404-actions{margin-top:34px;display:flex;flex-wrap:wrap;gap:14px;justify-content:center;}
.tmrv-page-split{display:grid;grid-template-columns:380px 1fr;gap:36px;align-items:center;}
.tmrv-page-split img{width:100%;height:auto;border-radius:12px;box-shadow:0 14px 32px rgba(7,43,97,.12);}
.tmrv-page-status{margin-bottom:30px;}
.tmrv-interior .tmrv-page-hero{padding:38px 0 34px;}
.tmrv-interior .tmrv-page-hero h1{margin-bottom:8px;}
.tmrv-interior .tmrv-page-hero p:not(.tmrv-page-kicker){font-size:18px;line-height:1.42;max-width:820px;}
.tmrv-interior .tmrv-page-kicker{margin-bottom:8px;}

/* ---- About story ---- */.tmrv-story-section{background:#f7f9fc;border-top:1px solid var(--tmrv-line);}
.tmrv-story{max-width:720px;margin:0 auto;}
.tmrv-story h2{font-size:clamp(30px,3vw,42px);line-height:1.02;text-transform:uppercase;color:#061f48;margin:0 0 30px;font-weight:900;}
.tmrv-story h3{color:var(--tmrv-orange-ink);text-transform:uppercase;font-size:15px;letter-spacing:.04em;font-weight:900;margin:34px 0 12px;}
.tmrv-story p{line-height:1.65;color:#303a4a;margin:0 0 16px;font-size:16px;}
.tmrv-story-lede{font-size:20px;line-height:1.5;color:#061f48;font-weight:700;}
.tmrv-story-emphasis{font-size:22px;font-weight:900;color:#061f48;text-align:center;margin:22px 0;}
.tmrv-story-quote{border-left:4px solid var(--tmrv-orange);margin:26px 0;padding:6px 0 6px 22px;font-size:22px;line-height:1.4;font-weight:800;color:#061f48;font-style:normal;}
.tmrv-story-signoff{font-size:19px;font-weight:800;color:#061f48;text-align:center;margin-top:30px;}

/* ---- Contact / request forms ---- */.tmrv-contact-card h2{margin:0 0 12px;color:#061f48;font-size:24px;line-height:1.15;text-transform:uppercase;}
.tmrv-contact-card p{line-height:1.6;color:#303a4a;margin:0 0 14px;}
/* max-width without auto margins only centres when the card IS the container
   (contact.php merges the two classes onto one element, so .tmrv-container's
   margin:auto did the work). Nested inside .tmrv-container -- which is
   min(1190px,92vw), widening to min(1500px,96vw) above 981px -- the card
   stopped at 820px and sat hard left. That is why it looked correct on phones
   and tablet portrait, where the container is narrower than 820px, and skewed
   on desktop and tablet landscape, where it is not. */
.tmrv-contact-card{background:#fff;border:1px solid var(--tmrv-line);border-radius:12px;padding:28px;box-shadow:0 10px 24px rgba(7,43,97,.06);max-width:var(--tmrv-form-col);margin-left:auto;margin-right:auto;}
.tmrv-contact-warning{background:#fff7ef;border:1px solid #ffd5b8;border-radius:8px;padding:14px 16px;color:#46230f !important;}
/* Section labels inside the request card. .tmrv-contact-card styles h2 and p
   but nothing else, and every other h3 rule here is scoped to its own
   component, so an unscoped h3 would arrive unstyled. Follows the .tmrv-story
   h3 idiom -- orange, uppercase, letterspaced -- which is what this site uses
   for a label inside a run of prose. */
.tmrv-request-form-card h3{margin:26px 0 10px;color:var(--tmrv-orange-ink);font-size:15px;line-height:1.2;text-transform:uppercase;letter-spacing:.04em;font-weight:900;}
.tmrv-request-form-card .tmrv-checklist{margin-bottom:24px;}
/* Interior pages set `body.tmrv-interior a{color:inherit;text-decoration:none}
`
   at specificity (0,1,2), so a bare `.tmrv-contact-link` (0,1,0) loses and the
   tel:/mailto: links render as plain text. Scoping to the card gives (0,2,1),
   which outranks it on class count. */.tmrv-contact-card a.tmrv-contact-link{color:#0b65a3;font-weight:700;text-decoration:underline;}
.tmrv-contact-card a.tmrv-contact-link:hover{color:var(--tmrv-orange-ink);}
.tmrv-site-footer .tmrv-contact-line:before{color:#f26522;display:inline-block;width:24px;font-weight:900;}

/* ---- Legal pages ---- */.tmrv-legal{max-width:760px;margin:0 auto;}
.tmrv-legal-updated{font-size:14px;color:var(--tmrv-muted);margin:0 0 28px;font-weight:700;}
.tmrv-legal-toc{background:#f7f9fc;border:1px solid var(--tmrv-line);border-radius:10px;padding:22px 26px;margin:0 0 36px;}
.tmrv-legal-toc p{margin:0 0 12px;font-weight:900;text-transform:uppercase;font-size:13px;letter-spacing:.06em;color:#061f48;}
.tmrv-legal-toc ol{margin:0;padding-left:20px;font-size:15px;}
.tmrv-legal-toc li{margin:5px 0;}
.tmrv-legal-toc a{color:#0b65a3;text-decoration:none;font-weight:600;}
.tmrv-legal-toc a:hover{text-decoration:underline;}
.tmrv-legal h2{font-size:22px;line-height:1.25;color:#061f48;margin:38px 0 12px;font-weight:900;scroll-margin-top:100px;}
.tmrv-legal h2:first-of-type{margin-top:0;}
.tmrv-legal h3{font-size:16px;line-height:1.3;color:#061f48;margin:22px 0 8px;font-weight:800;}
.tmrv-legal p{line-height:1.7;color:#303a4a;margin:0 0 14px;font-size:16px;}
.tmrv-legal ul,.tmrv-legal ol{margin:0 0 16px;padding-left:22px;color:#303a4a;line-height:1.7;font-size:16px;}
.tmrv-legal li{margin:6px 0;}
.tmrv-legal a{color:#0b65a3;font-weight:600;}
.tmrv-legal strong{color:#061f48;}
.tmrv-site-footer .tmrv-footer-contact .tmrv-contact-line{display:flex;align-items:center;gap:12px;margin:0 0 11px;color:#dbe7f5;line-height:1.25;font-size:18px;}
.tmrv-site-footer .tmrv-footer-contact .tmrv-contact-line:before{flex:0 0 24px;width:24px;text-align:center;color:#f26522;font-weight:900;}

/* ---- Service status (mini widget) ---- */.tmrv-mini-status{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;background:#f7fbff;border:1px solid var(--tmrv-line);border-left:5px solid var(--tmrv-orange);border-radius:10px;padding:18px;margin:0 0 22px;}
.tmrv-mini-status span{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;box-shadow:inset 0 0 0 1px rgba(7,43,97,.08);font-size:24px;}
.tmrv-mini-status strong{display:block;color:#061f48;font-size:20px;line-height:1.2;margin-bottom:6px;}
.tmrv-mini-status p{margin:0;color:#303a4a;line-height:1.5;}
.tmrv-mini-status .tmrv-status-dates{margin:0 0 6px;color:var(--tmrv-muted);font-size:13px;font-weight:800;line-height:1.3;}
.tmrv-mini-status.tmrv-status-travel{border-left-color:#f7a91e;}
.tmrv-mini-status.tmrv-status-onmove{border-left-color:#c7492f;}
.tmrv-mini-status.tmrv-status-unavailable{border-left-color:#586579;}
.tmrv-mini-status .tmrv-status-badge{margin:0 0 8px;}

/* ---- Service status (color variants) ---- */.tmrv-status-badge{display:inline-flex;align-items:center;gap:8px;margin:2px 0 8px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;background:#eef8f1;color:#146c2e;}
.tmrv-status-badge:before{content:"";width:9px;height:9px;border-radius:50%;background:#26a65b;display:inline-block;}
.tmrv-status-travel{border-left-color:#f7a91e;}
.tmrv-status-travel .tmrv-status-label{color:var(--tmrv-orange-ink);}
.tmrv-status-travel .tmrv-status-badge{background:#fff6e6;color:#8a5600;}
.tmrv-status-travel .tmrv-status-badge:before{background:#f7a91e;}
.tmrv-status-onmove{border-left-color:#c7492f;}
.tmrv-status-onmove .tmrv-status-label{color:#c7492f;}
.tmrv-status-onmove .tmrv-status-badge{background:#fff0ed;color:#9b2e1c;}
.tmrv-status-onmove .tmrv-status-badge:before{background:#c7492f;}
.tmrv-status-unavailable{border-left-color:#586579;}
.tmrv-status-unavailable .tmrv-status-label{color:#586579;}
.tmrv-status-unavailable .tmrv-status-badge{background:#eef1f5;color:#354052;}
.tmrv-status-unavailable .tmrv-status-badge:before{background:#586579;}

/* ---- Footer ---- */.tmrv-footer-newsletter{max-width:520px;margin:0 auto 36px;text-align:center;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.14);}
.tmrv-footer-grid img{width:225px;height:auto;}
.tmrv-footer-grid h3{text-transform:uppercase;font-size:14px;margin-top:0;}
.tmrv-footer-grid a{display:block;color:#d7e2f2;margin:7px 0;}
.tmrv-footer-grid p{color:#d7e2f2;line-height:1.55;}
.tmrv-copyright{text-align:center;color:#b8c7da;font-size:13px;margin:28px 0 0;}
.tmrv-footer-legal{text-align:center;color:#8fa2bd;font-size:13px;margin:20px 0 0;}
.tmrv-footer-legal a{color:#b8c7da;text-decoration:none;}
.tmrv-footer-legal a:hover{color:#f7a91e;}
.tmrv-site-footer .tmrv-footer-grid>div:first-child>img{width:250px;height:auto;}
.tmrv-socials{font-size:24px;display:flex;align-items:center;gap:14px;letter-spacing:0;margin-top:20px;color:#fff;}
.tmrv-social{width:36px;height:36px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);color:#fff;transition:transform .18s ease,background .18s ease,color .18s ease;}
.tmrv-social svg{width:20px;height:20px;display:block;fill:currentColor;}
.tmrv-footer-grid > div:first-child img{width:250px !important;height:auto;max-width:100%;}
.tmrv-footer-grid{display:grid;gap:34px;align-items:start;grid-template-columns:1.45fr .85fr 1fr 1.35fr .75fr;}
.tmrv-social-youtube:hover{color:#ff0000;background:#e62117;}
.tmrv-social-facebook:hover{color:#1877f2;background:#1877f2;}
.tmrv-social-instagram:hover{color:#e4405f;background:#c13584;}
.tmrv-social-tiktok:hover{color:#25f4ee;background:#111;}
.tmrv-social:hover{transform:translateY(-2px);}
.tmrv-footer-status{margin-top:12px;padding:12px 14px;border-left:4px solid var(--tmrv-orange);background:rgba(255,255,255,.06);border-radius:8px;color:#fff;}
.tmrv-footer-status strong{display:block;color:#f7a91e;font-size:13px;text-transform:uppercase;margin-bottom:5px;}
.tmrv-footer-status span{display:block;color:#d7e2f2;font-size:12px;line-height:1.45;}
.tmrv-site-footer{background:#031b3f;color:#fff;padding:40px 0 16px;background:linear-gradient(135deg,#041f48 0%,#031b3f 55%,#021833 100%);padding:46px 0 20px;}
.tmrv-site-footer .tmrv-footer-grid{display:grid;grid-template-columns:1.55fr .75fr .9fr 1.1fr 1.25fr;gap:28px;align-items:start;}
.tmrv-site-footer .tmrv-footer-grid>div{min-height:205px;}
.tmrv-site-footer .tmrv-footer-grid>div:not(:first-child){border-left:1px solid rgba(255,255,255,.18);padding-left:28px;}
.tmrv-site-footer .tmrv-footer-brand img{width:250px;height:auto;max-width:100%;display:block;margin-bottom:16px;}
.tmrv-site-footer .tmrv-footer-brand p{margin:0 0 20px;font-size:18px;line-height:1.45;color:#dbe7f5;}
.tmrv-site-footer .tmrv-footer-cert{display:block;margin-top:20px;color:#f7a91e;font-weight:900;font-size:13px;line-height:1.35;text-transform:uppercase;}
.tmrv-site-footer .tmrv-footer-brand:after{content:none;}
.tmrv-site-footer h3{color:#f7a91e;font-size:14px;letter-spacing:.025em;margin:0 0 16px;font-weight:900;}
.tmrv-site-footer .tmrv-footer-links a{color:#fff;display:block;font-size:18px;margin:0 0 12px;line-height:1.2;opacity:.92;}
.tmrv-site-footer .tmrv-footer-links a:hover{color:#f7a91e;opacity:1;}
.tmrv-site-footer .tmrv-footer-contact p{margin:0 0 11px;color:#dbe7f5;line-height:1.25;font-size:18px;}
.tmrv-site-footer .tmrv-footer-status-wrap{display:flex;align-items:center;}
.tmrv-site-footer .tmrv-footer-status{border-left:4px solid #f26522;border-radius:8px;background:rgba(255,255,255,.075);box-shadow:0 10px 25px rgba(0,0,0,.10);padding:18px 20px;width:100%;}
.tmrv-site-footer .tmrv-footer-status strong{display:block;color:#f7a91e;font-size:14px;line-height:1.3;text-transform:uppercase;margin-bottom:9px;}
.tmrv-site-footer .tmrv-footer-status span{display:block;color:#dbe7f5;line-height:1.45;font-size:14px;}
.tmrv-site-footer .tmrv-socials{display:flex;gap:14px;letter-spacing:0;margin:0;}
.tmrv-site-footer .tmrv-social{width:43px;height:43px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;background:rgba(255,255,255,.10);color:#fff;margin:0;transition:all .18s ease;}
.tmrv-site-footer .tmrv-social svg{width:21px;height:21px;fill:currentColor;display:block;}
.tmrv-site-footer .tmrv-social:hover{transform:translateY(-2px);background:#f26522;color:#fff;}
.tmrv-site-footer .tmrv-copyright{border-top:1px solid rgba(255,255,255,.16);margin-top:32px;padding-top:18px;text-align:center;color:#c6d2e2;}
.tmrv-site-footer .tmrv-footer-contact .tmrv-phone-line{color:#fff;font-weight:900;font-size:22px;}
.tmrv-site-footer .tmrv-footer-contact .tmrv-phone-line:before{content:"☎";}
.tmrv-site-footer .tmrv-footer-contact p:nth-of-type(2):before{content:"✉";}
.tmrv-site-footer .tmrv-footer-contact p:nth-of-type(3):before{content:"◎";}
/* Phone/email are tel:/mailto: links. Outrank the generic `.tmrv-footer-grid a`
   rule (display:block, own color, own margin) so the contact lines keep the
   exact typography they had as plain text. */.tmrv-site-footer .tmrv-footer-contact .tmrv-contact-line a{display:inline;margin:0;color:inherit;font:inherit;letter-spacing:inherit;}
.tmrv-site-footer .tmrv-footer-contact .tmrv-contact-line a:hover{color:#f7a91e;}

/* ---- Section head / view-all ---- */.tmrv-view-all{grid-column:1/-1;justify-self:end;font-weight:900;color:#072b61;font-size:13px;text-transform:uppercase;}
.tmrv-section-head a{color:#072b61;font-weight:900;font-size:13px;}
.tmrv-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;}

/* ---- Icons & misc components ---- */.tmrv-card-grid{display:grid;gap:18px;}
.tmrv-badge-block{display:flex;justify-content:center;}
.tmrv-badge-block img{border-radius:50%;background:#fff;padding:0;box-shadow:0 14px 32px rgba(3,27,63,.16);width:205px;height:205px;object-fit:contain;}
.tmrv-note{margin-top:10px;font-family:Inter,Arial,sans-serif;color:#061f48;font-size:14px !important;font-weight:900;letter-spacing:.02em;text-transform:none;margin-left:2px;}
.tmrv-svg-icon{width:62px;height:62px;margin:0 auto 18px;color:var(--tmrv-orange);}
.tmrv-svg-icon svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;}
.tmrv-service-card .tmrv-icon-repair{color:#f26522;}
.tmrv-service-card .tmrv-icon-starlink{color:#2f86c8;}
.tmrv-card-link-text{display:inline-block;color:#072b61;font-weight:900;font-size:13px;margin-top:12px;}
.tmrv-service-card .tmrv-icon-orientation{color:#f7a91e;}

/* ============ Responsive ============ */

@media (min-width:641px) {.tmrv-hero{overflow:hidden;min-height:clamp(360px,42vw,560px);display:flex;align-items:center;}
.tmrv-hero-media{position:absolute;inset:0;z-index:0;}
.tmrv-hero-media img{width:100%;height:100%;object-fit:cover;object-position:center;}
.tmrv-hero-scrim{display:block;position:absolute;inset:0;z-index:1;background:linear-gradient(100deg,rgba(3,20,45,.86) 0%,rgba(3,20,45,.62) 34%,rgba(3,20,45,.22) 60%,rgba(3,20,45,0) 82%);}
.tmrv-hero-copy{position:relative;z-index:2;padding:48px 0;max-width:620px;}
.tmrv-hero-copy h1{color:#fff;font-size:clamp(44px,5.4vw,78px);line-height:.92;margin:0 0 16px;}
.tmrv-hero-credentials{color:var(--tmrv-gold);font-size:clamp(13px,1.3vw,17px);}
.tmrv-hero-credential-sep{color:#fff;}
}
@media (min-width: 981px) {.tmrv-container{width:min(1500px,96vw);}
.tmrv-site-header{height:auto;background:#031b3f;box-shadow:0 2px 12px rgba(0,0,0,.18);background:#031b3f;box-shadow:0 2px 12px rgba(0,0,0,.18);}
.tmrv-nav-wrap{min-height:74px;padding:0;gap:28px;min-height:62px;padding:0;gap:24px;}
.tmrv-brand img{width:260px;height:auto;display:block;width:242px;height:auto;display:block;}
.tmrv-nav{gap:31px;font-size:13px;margin-left:auto;gap:28px;font-size:12px;margin-left:auto;}
.tmrv-nav a{border-bottom-width:3px;padding:27px 0 22px;border-bottom:3px solid transparent;padding:22px 0 18px;border-bottom:3px solid transparent;}
.tmrv-nav-cta{padding:15px 22px;font-size:13px;border-radius:6px;padding:13px 20px;font-size:12px;border-radius:6px;min-height:42px;}
}
@media (min-width:1501px) {.tmrv-hero-copy{max-width:680px;}
.tmrv-trust-grid{max-width:1600px;width:min(1600px,100%);}
}
@media (max-width:1100px) {.tmrv-site-footer .tmrv-footer-grid{grid-template-columns:1.4fr 1fr 1fr;}
.tmrv-site-footer .tmrv-footer-grid>div{min-height:auto;}
.tmrv-site-footer .tmrv-footer-status-wrap{grid-column:2 / span 2;}
.tmrv-trustbar .tmrv-trust-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.tmrv-trustbar .tmrv-trust-grid > div{min-height:58px;border-top:1px solid rgba(255,255,255,.12);}
.tmrv-trustbar .tmrv-trust-grid > div:nth-child(-n/**/+3){border-top:0;}
.tmrv-trustbar .tmrv-trust-grid > div:nth-child(3n/**/+1){border-left:0;}
.tmrv-video-library{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
}
@media (max-width:1050px) {.tmrv-recommend-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
.tmrv-recommend-card:nth-child(n){grid-column:auto;}
}
@media (max-width:980px) {.tmrv-menu-toggle{display:inline-flex;align-items:center;}
.tmrv-nav{display:none;position:absolute;top:100%;left:0;right:0;margin-left:0;background:#031b3f;border-top:1px solid rgba(255,255,255,.16);box-shadow:0 14px 24px rgba(0,0,0,.20);padding:10px 0;z-index:1001;}
.tmrv-nav.is-open{display:block;}
.tmrv-nav a{display:block;padding:14px 20px;border-bottom:1px solid rgba(255,255,255,.10);}
.tmrv-nav a:hover{background:rgba(255,255,255,.06);}
.tmrv-about-grid{grid-template-columns:1fr;}
.tmrv-trust-grid{grid-template-columns:repeat(2,1fr);}
.tmrv-testimonial-grid{grid-template-columns:1fr 1fr;}
.tmrv-video-cards{grid-template-columns:1fr 1fr;}
.tmrv-about-photo img{height:auto;}
.tmrv-socials{gap:12px;}
.tmrv-social{width:32px;height:32px;}
.tmrv-nav-wrap{position:relative;justify-content:space-between;min-height:64px;padding:8px 0;}
.tmrv-brand img{height:auto;width:205px;}
.tmrv-status-card{grid-template-columns:auto 1fr;}
.tmrv-status-cta{grid-column:1/-1;justify-self:start;}
.tmrv-page-card-grid{grid-template-columns:1fr 1fr;}
.tmrv-page-split{grid-template-columns:1fr;}
.tmrv-footer-grid{grid-template-columns:1fr 1fr;}
.tmrv-nav a.is-current{border-color:var(--tmrv-orange);border-left:4px solid var(--tmrv-orange);padding-left:16px;}
.tmrv-video-grid{grid-template-columns:1fr;gap:20px;text-align:left;}
.tmrv-badge-block{justify-content:flex-start;}
.tmrv-badge-block img{width:180px;height:180px;}
.tmrv-youtube-list{grid-template-columns:1fr 1fr;gap:0 22px;}
.tmrv-three{grid-template-columns:1fr;}
.tmrv-service-card-link{min-height:0;}
}
@media (max-width:780px) {.tmrv-video-library{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
}
@media (max-width:760px) {.tmrv-site-footer .tmrv-footer-grid{grid-template-columns:1fr;gap:24px;}
.tmrv-site-footer .tmrv-footer-grid>div:not(:first-child){border-left:0;border-top:1px solid rgba(255,255,255,.16);padding-left:0;padding-top:22px;}
.tmrv-site-footer .tmrv-footer-status-wrap{grid-column:auto;}
.tmrv-site-footer .tmrv-footer-brand img{width:220px;}
.tmrv-values-card{grid-template-columns:1fr;text-align:center;padding:28px 20px;}
.tmrv-values-icon{margin:0 auto;}
.tmrv-values-row{justify-content:center;}
}
@media (max-width:640px) {.tmrv-nav-cta{display:none;}
.tmrv-nav .tmrv-nav-mobile-cta{display:block;margin:10px 20px 6px;padding:14px 16px;background:var(--tmrv-orange-ink);color:#fff;text-align:center;border-radius:5px;border-bottom:0;font-weight:900;text-transform:uppercase;font-size:14px;letter-spacing:.015em;}
.tmrv-nav .tmrv-nav-mobile-cta:hover{background:#a83c09;color:#fff;}
.tmrv-trust-grid{grid-template-columns:1fr;}
.tmrv-testimonial-grid{grid-template-columns:1fr;}
.tmrv-video-cards{grid-template-columns:1fr;}
.tmrv-section{padding:38px 0;}
.tmrv-cta-grid{display:block;}
.tmrv-cta-grid .tmrv-btn{margin-top:18px;}
.tmrv-section-head{display:block;}
.tmrv-checklist-2col{grid-template-columns:1fr;}
.tmrv-service-detail{padding:22px;}
.tmrv-service-detail-head{gap:14px;}
.tmrv-service-detail-head .tmrv-svg-icon{width:44px;height:44px;}
.tmrv-service-detail-head h2{font-size:20px;}
.tmrv-brand img{width:180px;}
.tmrv-status-card{grid-template-columns:1fr;text-align:left;padding:20px;}
.tmrv-status-icon{width:48px;height:48px;}
.tmrv-page-card-grid{grid-template-columns:1fr;}
.tmrv-page-hero{padding:48px 0 42px;}
.tmrv-page-hero p{font-size:17px;}
.tmrv-footer-grid{grid-template-columns:1fr;}
.tmrv-badge-block{justify-content:center;}
.tmrv-youtube-intro h2{text-align:left;font-size:42px;}
.tmrv-youtube-action{align-items:flex-start;flex-direction:column;gap:10px;}
.tmrv-youtube-action .tmrv-btn-youtube{width:100%;}
.tmrv-youtube-action .tmrv-note{white-space:normal;}
.tmrv-trustbar .tmrv-trust-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
.tmrv-trustbar .tmrv-trust-grid > div{min-height:54px;padding:9px 10px;gap:9px;justify-content:flex-start;font-size:18px;}
.tmrv-trustbar .tmrv-trust-grid > div:nth-child(-n/**/+3){border-top:1px solid rgba(255,255,255,.12);}
.tmrv-trustbar .tmrv-trust-grid > div:nth-child(-n/**/+2){border-top:0;}
.tmrv-trustbar .tmrv-trust-grid > div:nth-child(3n/**/+1){border-left:1px solid rgba(255,255,255,.18);}
.tmrv-trustbar .tmrv-trust-grid > div:nth-child(2n/**/+1){border-left:0;}
/* Labels stay at the base 12px on phones: measurement showed the cells are
   173-188px wide while the longest label is only ~114px, so the old 10.5px/9.5px
   shrink was buying space the layout never needed. */
.tmrv-trustbar .tmrv-trust-grid span{line-height:1.12;}
.tmrv-youtube-list{grid-template-columns:1fr !important;}
.tmrv-youtube-list li{margin-bottom:7px;}
.tmrv-recommend-grid{grid-template-columns:1fr;}
.tmrv-recommend-card{min-height:0;padding-top:28px;}
.tmrv-recommend-intro{font-size:16px;}
.tmrv-final-cta p{font-size:15px;}
.tmrv-video-feature .tmrv-video-card .tmrv-thumb{width:100%;height:auto;aspect-ratio:16 / 9;border-radius:10px;}
.tmrv-video-feature .tmrv-video-card h3{font-size:18px;line-height:1.2;}
.tmrv-video-feature .tmrv-video-card p{font-size:15px;}
.tmrv-status-badge{font-size:11px;letter-spacing:.05em;}
.tmrv-interior .tmrv-page-hero{padding:30px 0 28px;}
.tmrv-interior .tmrv-page-hero p:not(.tmrv-page-kicker){font-size:16px;line-height:1.38;}
}
@media (max-width:520px) {.tmrv-video-library .tmrv-video-card .tmrv-thumb{height:190px;}
.tmrv-videos-page .tmrv-section-head{display:block;margin-bottom:24px;}
.tmrv-videos-page .tmrv-section-head h2{font-size:clamp(38px,12vw,54px);line-height:1.05;margin-bottom:18px;max-width:340px;}
.tmrv-video-library{grid-template-columns:1fr !important;gap:22px !important;}
.tmrv-video-library .tmrv-video-card{border-radius:14px;}
.tmrv-video-library .tmrv-video-card h2{font-size:22px;line-height:1.18;padding:18px 18px 6px;}
.tmrv-video-library .tmrv-video-card p{font-size:17px;padding:0 18px 20px;}
}
@media (max-width:380px) {.tmrv-trustbar .tmrv-trust-grid > div{font-size:16px;padding:8px 8px;gap:7px;}

}
@media (min-width:641px) and (max-width:980px) {.tmrv-video-grid{grid-template-columns:180px minmax(0,1fr);align-items:center;gap:24px 28px;text-align:left;}
.tmrv-video-grid .tmrv-badge-block{justify-content:center;align-self:center;}
.tmrv-video-grid .tmrv-badge-block img{width:170px;height:170px;}
.tmrv-video-grid .tmrv-youtube-intro{min-width:0;}
.tmrv-video-grid .tmrv-video-cards{grid-column:1 / -1;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.tmrv-video-grid .tmrv-view-all{grid-column:1 / -1;}
}
@media (min-width:981px) and (max-width:1200px) {
/* Between roughly 900 and 1200px the hero H1's second line and the credentials
   ran past the left-hand scrim and over the technician's tool belt, where the
   gradient has already faded out. Narrowing the copy column in this band makes
   the headline wrap earlier, keeping all of it on the dark part of the image.
   Below 981px the layout is already narrower; above 1200px there is enough
   room for the wide line. */
  /* .tmrv-hero-copy is also a .tmrv-container, so it is centred -- narrowing IT
     pushes the text further right, toward the figure. Constrain the headline
     instead, so it wraps to three lines here the way it already does above
     1200px, while the copy block stays where it is. */
  .tmrv-hero-copy h1{max-width:440px;font-size:clamp(40px,4.6vw,52px);}
  .tmrv-hero-credentials{max-width:470px;}
  .tmrv-hero-scrim{background:linear-gradient(100deg,rgba(3,20,45,.88) 0%,rgba(3,20,45,.72) 42%,rgba(3,20,45,.30) 66%,rgba(3,20,45,0) 88%);}
}
@media (prefers-reduced-motion: reduce) {html{scroll-behavior:auto;}
*,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* ---- Video embeds (click-to-play facade; see tmrv_render_youtube_video_embed) ---- */
.tmrv-video-embed{display:flex;flex-direction:column;}
.tmrv-video-play{display:block;position:relative;width:100%;aspect-ratio:16/9;padding:0;border:0;border-radius:6px;overflow:hidden;cursor:pointer;background:#000;}
.tmrv-video-play img{width:100%;height:100%;object-fit:cover;display:block;}
.tmrv-video-play:hover img{opacity:.86;}
/* YouTube thumbnails are 4:3 with the 16:9 frame letterboxed inside, so the
   cover crop above trims the black bars rather than showing them. */
.tmrv-play-icon{position:absolute;inset:0;margin:auto;width:64px;height:44px;border-radius:11px;background:rgba(230,33,23,.94);}
.tmrv-play-icon:after{content:"";position:absolute;inset:0;margin:auto;width:0;height:0;border-style:solid;border-width:11px 0 11px 18px;border-color:transparent transparent transparent #fff;}
.tmrv-video-play:hover .tmrv-play-icon{background:#e62117;}
.tmrv-video-frame{width:100%;aspect-ratio:16/9;border:0;border-radius:6px;display:block;background:#000;}
.tmrv-video-embed h3{margin:12px 0 4px;font-size:18px;line-height:1.25;}
.tmrv-video-meta{margin:0 0 6px;font-size:13px;color:var(--tmrv-muted);}
.tmrv-video-desc{margin:0 0 10px;font-size:14px;line-height:1.5;color:var(--tmrv-muted);}
.tmrv-video-yt-link{margin-top:auto;font-size:13px;font-weight:900;text-transform:uppercase;letter-spacing:.03em;color:var(--tmrv-orange-ink);}
.tmrv-video-yt-link:hover{text-decoration:underline;}

/* ---- Status card: campground logo variant --------------------------------
   Same 54px circle as the emoji icon so the card geometry never shifts between
   a stay that has a logo and one that does not. object-fit:contain with padding
   keeps a wide wordmark and a square badge both legible without cropping, and
   the white ground stops a logo with a transparent background disappearing into
   the tinted circle. */
.tmrv-status-icon-logo{background:#fff;padding:6px;overflow:hidden;}
.tmrv-status-icon-logo img{width:100%;height:100%;object-fit:contain;display:block;}

/* ---- Trust bar: SVG icons alongside the emoji ones ------------------------
   The emoji icons are sized by font-size (22px on .tmrv-trust-grid div). SVG
   has no font-size, so these get an explicit box matched to the emoji's optical
   size, and align-items:center on the parent keeps every icon on one baseline.
   currentColor inherits the bar's gold, so the propeller cap sits with the
   emoji rather than against them; the YouTube mark overrides it with brand red
   inline, which is the one icon that must not take the bar's colour. */
.tmrv-trust-svg{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;flex:0 0 26px;}
.tmrv-trust-svg svg{width:100%;height:100%;display:block;}
