/* tlv-design.css  v2.2  (2026-10-05, round 2)
   Regional design layer for thelavatorynorcal.com and thelavatorylosangeles.com (child theme thelavatoryfresno).
   Loaded by mu-plugins/tlv-design.php, which also loads Inter + Plus Jakarta Sans from Google Fonts (the theme loads
   Caveat Brush the same way) and adds body class "tlv-rw" ONLY to pages whose content carries the rewrite marker
   classes (trustband, rvw, regioncard, howsteps, jumpnav, ctastrip).
   Site wide (every page): section 0 (nav fit, breadcrumb band removed, modern fonts, header offset).
   Rewritten pages only (body.tlv-rw): sections 1-11.
   v2: breadcrumb band gone, full-width desktop layout (1200px, image/text splits, 2-up reviews, 3-up stories,
   step cards, 2-column long lists), Inter body + Plus Jakarta Sans headings, softer cards, modern buttons. */

:root {
  --tlv-gold: #826636;
  --tlv-gold-dk: #6b5229;
  --tlv-cream: #f7f2e8;
  --tlv-line: #ece3d2;
  --tlv-ink: #1f1f1f;
  --tlv-text: #3d3d3d;
  --tlv-wide: 1200px;
  --tlv-head: "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --tlv-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --tlv-shadow: 0 1px 2px rgba(40, 30, 10, .04), 0 10px 28px rgba(60, 45, 20, .07);
  --tlv-gut: 18px;
  --tlv-radius: 16px;
}
@media (min-width: 600px) { :root { --tlv-gut: 24px; } }
@media (min-width: 1000px) { :root { --tlv-gut: 40px; } }

/* ---------- 0a. site wide: breadcrumb band removed (Chris 2026-10-05: thelavatory.com has none), modern fonts ---------- */
#breadcrumbs-wrap { display: none !important; }
body { font-family: var(--tlv-body) !important; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
:is(h1, h2, h3, h4, h5, h6, .singular h1.entry-title, .entry-content h1, .entry-content h2, .entry-content h3, h1.page-title,
    .pdx-footer-title, .pdx-footer-title.custom-font, .slideshow-content .slideshow-content-title,
    .slideshow-content .slideshow-content-tagline, .pdx-explore-content-heading) {
  font-family: var(--tlv-head) !important; letter-spacing: -.02em;
}
:is(h1, h2, .singular h1.entry-title, .slideshow-content .slideshow-content-tagline) { font-weight: 800 !important; }
:is(h3, h4, .slideshow-content .slideshow-content-title) { font-weight: 700 !important; }
.slideshow-content .slideshow-content-title { text-transform: none; letter-spacing: .02em; }
.pdx-navbar, .pdx-navbar a { font-family: var(--tlv-body) !important; font-weight: 500; letter-spacing: -.005em; }
.pdx-navbar li.is-quote-request a { border-radius: 10px !important; font-weight: 700; letter-spacing: .02em; }
input, select, textarea, button { font-family: var(--tlv-body); }

/* ---------- 0. desktop nav fit (site wide). The menu wrapped under the logo and spilled over the hero.
   Keep the nav to the right of the logo; if the labels are too long for one row they wrap to a second row
   inside the header instead of falling onto the page. ---------- */
@media (min-width: 1200px) {
  .pdx-header { flex-wrap: nowrap !important; column-gap: 24px; }
  .pdx-logo { flex: 0 0 auto; }
  .pdx-navbar { flex: 1 1 0; min-width: 0; }
  .pdx-navbar > div { width: 100%; }
  .pdx-navbar > div > ul { justify-content: flex-end; row-gap: 6px; }
}
@media (min-width: 1200px) and (max-width: 1599px) {
  .pdx-navbar { font-size: 1.5rem !important; }
  .pdx-navbar > div > ul > li { margin-right: 1.4rem !important; }
  .pdx-navbar > div > ul > li.menu-item-has-children { margin-right: .8rem !important; }
  .pdx-logo, #masthead.is-sticky .pdx-logo { max-width: 220px !important; }
}

/* search form on an empty blog index: the theme's 180px minimum on the submit button pushed the page 20px wide on phones */
@media (max-width: 600px) { .site-main .search-form input.search-submit { min-width: 0 !important; } }

/* NorCal's built-in bottom bar (mu-plugin tlv-phone): centre the two-line Call Now label like the LA/Utah bar */
.tlv-bnav .tlv-bnav__call a, .tlv-bnav .tlv-bnav__call span { text-align: center; }

/* ---------- 0b. inner-page header offset (site wide, tablet + phone). The fixed header is ~48px taller than the
   placeholder that reserves its space, so the first line of every inner page (H1 or breadcrumbs) slid under it.
   thelavatoryutah.com fixes the same thing with a 50px entry-header margin; this does it once for any first child. ---------- */
@media (max-width: 1199px) {
  body:not(.home) #content { padding-top: 48px; }
}

/* ---------- 1. container + gutters ---------- */
body.tlv-rw .site-main { padding-top: 3.2rem; }
body.tlv-rw .entry-content {
  max-width: calc(var(--tlv-wide) + 2 * var(--tlv-gut));
  margin: 0 auto !important;
  padding: 0 var(--tlv-gut) 2rem !important;
  box-sizing: border-box;
  overflow-wrap: break-word;
  color: var(--tlv-text);
}
/* one outer group with inline clamp() padding (LA pages): the container already pads, so drop the second gutter */
body.tlv-rw .entry-content > .wp-block-group[style*="clamp("] { padding-left: 0 !important; padding-right: 0 !important; max-width: none !important; }

/* the page header (H1 on inner pages) uses the same full container */
body.tlv-rw .entry-header {
  max-width: calc(var(--tlv-wide) + 2 * var(--tlv-gut)) !important;
  margin: 0 auto !important;
  padding: 0 var(--tlv-gut) !important;
  box-sizing: border-box;
}

/* every content section uses the full container (no narrow reading column) */
body.tlv-rw :is(.entry-content, .entry-content > .wp-block-group[style*="clamp("] > .wp-block-group__inner-container) > * {
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box;
}

/* ---------- 2. type ---------- */
body.tlv-rw .entry-content p,
body.tlv-rw .entry-content li { font-size: 1.7rem; line-height: 1.75; color: var(--tlv-text); font-family: var(--tlv-body); }
@media (min-width: 1000px) {
  body.tlv-rw .entry-content p, body.tlv-rw .entry-content li { font-size: 1.8rem; line-height: 1.78; }
}
body.tlv-rw .entry-content p { margin: 0 0 1.8rem !important; }
body.tlv-rw .entry-content ul,
body.tlv-rw .entry-content ol { margin-top: 0 !important; margin-bottom: 2.2rem !important; padding-left: 2.2rem; }
body.tlv-rw .entry-content li { margin-bottom: .7rem; }
body.tlv-rw .entry-content strong { color: var(--tlv-ink); font-weight: 600; }
body.tlv-rw .entry-content a:not(.wp-block-button__link) {
  color: var(--tlv-gold-dk);
  text-decoration: underline !important;
  text-decoration-line: underline !important;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  text-decoration-color: rgba(130, 102, 54, .45);
}
body.tlv-rw .entry-content a:not(.wp-block-button__link):hover { color: var(--tlv-ink); text-decoration-color: var(--tlv-gold); }

/* H1: modern sans, heavy, tight tracking, short gold bar underneath */
body.tlv-rw:not(#x) h1.entry-title,
body.tlv-rw:not(#x) .entry-content h1 {
  font-family: var(--tlv-head) !important;
  font-weight: 800 !important;
  color: var(--tlv-ink) !important;
  font-size: clamp(3.2rem, 2.2rem + 2.4vw, 5.2rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -.03em !important;
  text-align: left !important;
  padding: 0 0 2rem !important;
  margin: 1.2rem 0 3.2rem !important;
  border-bottom: 0 !important;
  position: relative;
  max-width: 18ch;
}
@media (min-width: 1000px) { body.tlv-rw:not(#x) :is(h1.entry-title, .entry-content h1) { max-width: 22ch; } }
body.tlv-rw:not(#x) h1.entry-title::after,
body.tlv-rw:not(#x) .entry-content h1::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 64px; height: 4px; border-radius: 4px; background: var(--tlv-gold);
}

/* H2: modern sans with a small gold bar above it */
body.tlv-rw .entry-content h2 {
  font-family: var(--tlv-head) !important;
  font-weight: 800 !important;
  color: var(--tlv-ink) !important;
  font-size: clamp(2.5rem, 1.9rem + 1.3vw, 3.6rem) !important;
  line-height: 1.15 !important;
  letter-spacing: -.025em !important;
  margin-top: 6.4rem !important;
  margin-bottom: 2rem !important;
  padding: 0 !important;
  border-left: 0 !important;
}
body.tlv-rw .entry-content h2::before {
  content: ""; display: block; width: 40px; height: 4px; border-radius: 4px; background: var(--tlv-gold); margin-bottom: 1.4rem;
}
body.tlv-rw .entry-content :is(.howsteps, .ctastrip, .trustband) h2::before { display: none; }
/* H3: sans, bold, brand gold-brown */
body.tlv-rw .entry-content h3 {
  font-family: var(--tlv-head) !important;
  font-weight: 700 !important;
  color: var(--tlv-gold-dk) !important;
  font-size: clamp(1.9rem, 1.7rem + .5vw, 2.3rem) !important;
  line-height: 1.3 !important;
  letter-spacing: -.015em !important;
  margin-top: 3.2rem !important;
  margin-bottom: 1rem !important;
}
@media (min-width: 1000px) { body.tlv-rw .entry-content h2 { margin-top: 8.8rem !important; } }
body.tlv-rw .entry-content h4 { font-family: var(--tlv-head) !important; font-size: 1.8rem; font-weight: 700; color: var(--tlv-ink); margin: 2.4rem 0 1rem !important; }
/* headings that open a card or panel need no top gap */
body.tlv-rw .entry-content :is(.wp-block-column, .rvw, .story, .ctastrip, .regioncard, .howsteps, .trustband, .wp-block-group__inner-container) > :is(h2, h3):first-child { margin-top: 0 !important; }
body.tlv-rw .entry-content > h2:first-child { margin-top: 1rem !important; }

/* ---------- 3. buttons: call = solid gold with a phone glyph (primary), everything else = gold outline ---------- */
body.tlv-rw .entry-content .wp-block-buttons {
  display: flex; flex-wrap: wrap; gap: 12px 14px;
  margin-top: 2.4rem !important; margin-bottom: 3.2rem !important;
}
body.tlv-rw .entry-content .wp-block-buttons > .wp-block-button { margin: 0 !important; }
html body.tlv-rw .entry-content .wp-block-buttons > .wp-block-button > a.wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-width: 210px !important; min-height: 56px;
  padding: 15px 30px !important;
  border-radius: 12px !important;
  font-family: var(--tlv-body) !important;
  font-size: 1.7rem !important; font-weight: 600 !important; line-height: 1.2 !important; letter-spacing: -.005em;
  text-decoration: none !important;
  box-sizing: border-box;
  transition: background-color .15s ease, color .15s ease, box-shadow .15s ease, transform .15s ease;
}
html body.tlv-rw .entry-content .wp-block-buttons > .wp-block-button > a.wp-block-button__link[href^="tel:"] {
  background: linear-gradient(180deg, #92733d 0%, var(--tlv-gold) 100%) !important; color: #fff !important; border: 0 !important;
  font-size: 1.8rem !important; font-weight: 700 !important; min-width: 250px !important; min-height: 60px;
  box-shadow: 0 2px 4px rgba(90, 65, 25, .18), 0 12px 26px rgba(130, 102, 54, .30);
}
html body.tlv-rw .entry-content .wp-block-buttons > .wp-block-button > a.wp-block-button__link[href^="tel:"]::before {
  content: "\f525"; font-family: dashicons; font-size: 20px; line-height: 1; font-weight: 400;
}
html body.tlv-rw .entry-content .wp-block-buttons > .wp-block-button > a.wp-block-button__link[href^="tel:"]:hover {
  background: var(--tlv-gold-dk) !important; transform: translateY(-1px); box-shadow: 0 4px 8px rgba(90, 65, 25, .2), 0 16px 32px rgba(130, 102, 54, .34);
}
html body.tlv-rw .entry-content .wp-block-buttons > .wp-block-button > a.wp-block-button__link:not([href^="tel:"]) {
  background: #fff !important; color: var(--tlv-gold-dk) !important; border: 1.5px solid #cdb98f !important; box-shadow: none;
}
html body.tlv-rw .entry-content .wp-block-buttons > .wp-block-button > a.wp-block-button__link:not([href^="tel:"]):hover {
  background: var(--tlv-gold) !important; color: #fff !important;
}

/* ---------- 4. images ---------- */
body.tlv-rw .entry-content .wp-block-image { margin-top: 0 !important; margin-bottom: 3rem !important; text-align: center; }
body.tlv-rw .entry-content .wp-block-image img {
  display: block; margin: 0 auto; width: auto; max-width: 100%; height: auto; max-height: 640px;
  border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, .10);
}
body.tlv-rw .entry-content .wp-block-image figcaption { font-size: 1.4rem; color: #777; margin-top: .8rem; }
/* first image of the page = the hero: may use the full container width */
body.tlv-rw :is(.entry-content, .entry-content > .wp-block-group[style*="clamp("] > .wp-block-group__inner-container) > .wp-block-image.no-lazy { max-width: var(--tlv-wide) !important; }
body.tlv-rw .entry-content > .wp-block-image.no-lazy img { max-height: 680px; border-radius: 14px; }
/* images inside cards and columns fill their box */
body.tlv-rw .entry-content :is(.wp-block-column, .regioncard, .story) .wp-block-image { margin-bottom: 1.6rem !important; }
body.tlv-rw .entry-content :is(.wp-block-column, .regioncard, .story) .wp-block-image img { width: 100%; max-height: none; box-shadow: none; border-radius: 8px; }
body.tlv-rw .entry-content .wp-block-column > .wp-block-image:first-child:has(+ h3) img,
body.tlv-rw .entry-content .regioncard .wp-block-image img,
body.tlv-rw .entry-content .regioncard > img { aspect-ratio: 4 / 3; object-fit: cover; height: auto; }
/* galleries */
body.tlv-rw .entry-content .wp-block-gallery { margin-top: 0 !important; margin-bottom: 3.2rem !important; gap: 10px !important; }
body.tlv-rw .entry-content .wp-block-gallery .wp-block-image { margin: 0 !important; }
body.tlv-rw .entry-content .wp-block-gallery .wp-block-image img { border-radius: 8px; box-shadow: none; max-height: none; }

/* ---------- 5. columns ---------- */
body.tlv-rw .entry-content .wp-block-columns {
  padding: 0 !important; gap: 24px !important; margin-top: 0 !important; margin-bottom: 3.2rem !important;
  justify-content: flex-start; align-items: stretch;
}
body.tlv-rw .entry-content .wp-block-column { padding: 0 !important; margin: 0 !important; }
body.tlv-rw .entry-content .wp-block-column::after { display: none !important; }
body.tlv-rw .entry-content .wp-block-column > :last-child { margin-bottom: 0 !important; }
/* a column that opens with a photo and a heading reads as a card */
body.tlv-rw .entry-content .wp-block-columns > .wp-block-column:has(> .wp-block-image:first-child + h3) {
  background: #fff; border: 1px solid var(--tlv-line); border-radius: var(--tlv-radius);
  padding: 14px 16px 18px !important; box-shadow: var(--tlv-shadow);
}
body.tlv-rw .entry-content .wp-block-columns > .wp-block-column:has(> .wp-block-image:first-child + h3) h3 { margin-top: 0 !important; }
body.tlv-rw .entry-content .wp-block-column > .regioncard:only-child,
body.tlv-rw .entry-content .wp-block-column > .rvw:only-child,
body.tlv-rw .entry-content .wp-block-column > .story:only-child { height: 100% !important; box-sizing: border-box; }
body.tlv-rw .entry-content .wp-block-column > :is(.rvw, .story, .regioncard):not(:only-child) { height: auto !important; }
@media (max-width: 781px) {
  body.tlv-rw .entry-content .wp-block-columns { flex-direction: column; gap: 18px !important; }
  body.tlv-rw .entry-content .wp-block-columns > .wp-block-column { flex-basis: 100% !important; width: 100%; }
}

/* columns that hold nothing but photos: crop to one shape so rows line up */
body.tlv-rw :is(.entry-content, .entry-content > .wp-block-group[style*="clamp("] > .wp-block-group__inner-container) > .wp-block-columns:not(:has(h2, h3, h4, p, ul, ol, table, .rvw, .story, .regioncard, .wp-block-buttons)) {
  gap: 16px !important;
}
body.tlv-rw .entry-content .wp-block-columns:not(:has(h2, h3, h4, p, ul, ol, table, .rvw, .story, .regioncard, .wp-block-buttons)) .wp-block-image { margin-bottom: 0 !important; }
body.tlv-rw .entry-content .wp-block-columns:not(:has(h2, h3, h4, p, ul, ol, table, .rvw, .story, .regioncard, .wp-block-buttons)) .wp-block-image img {
  aspect-ratio: 4 / 3; object-fit: cover; width: 100%; height: auto; border-radius: 10px; box-shadow: 0 6px 18px rgba(0, 0, 0, .10);
}

/* ---------- 6. cards: reviews ---------- */
body.tlv-rw .entry-content .rvw {
  background: #fff !important; border: 1px solid var(--tlv-line) !important; border-radius: var(--tlv-radius) !important;
  padding: 20px 22px !important; margin-top: 0 !important; margin-bottom: 16px !important;
  box-shadow: var(--tlv-shadow); box-sizing: border-box;
}
body.tlv-rw .entry-content .rvw .stars { color: #b8902f; letter-spacing: 3px; font-size: 1.9rem; line-height: 1; margin-bottom: 1rem; }
body.tlv-rw .entry-content .rvw p { font-size: 1.6rem; line-height: 1.7; margin: 0 0 1.2rem !important; }
body.tlv-rw .entry-content .rvw p:last-child { margin-bottom: 0 !important; }
body.tlv-rw .entry-content .rvw .who { display: flex; align-items: center; gap: 12px; font-weight: 600; font-size: 1.5rem; color: var(--tlv-ink); margin-top: 1.2rem; }
body.tlv-rw .entry-content .rvw .ava {
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
  width: 42px; height: 42px; border-radius: 50%; background: var(--tlv-gold); color: #fff; font-size: 1.4rem; font-weight: 600; line-height: 1;
}
body.tlv-rw .entry-content .rvw img { border-radius: 50%; }

/* ---------- 7. trust band ---------- */
body.tlv-rw .entry-content .trustband {
  background: var(--tlv-cream) !important; border: 1px solid var(--tlv-line); border-radius: var(--tlv-radius) !important;
  padding: 22px 26px !important; margin-top: 1rem !important; margin-bottom: 3.6rem !important; box-sizing: border-box;
}
body.tlv-rw .entry-content .trustband p { font-size: 1.6rem; margin-bottom: 1.2rem !important; }
body.tlv-rw .entry-content .trustband p:last-child { margin-bottom: 0 !important; }
body.tlv-rw .entry-content .trustband ul {
  list-style: none !important; padding: 0 !important; margin: 0 !important;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px 24px;
}
body.tlv-rw .entry-content .trustband li { position: relative; padding-left: 30px; margin: 0 !important; font-size: 1.55rem; line-height: 1.5; }
body.tlv-rw .entry-content .trustband li::before {
  content: "\2713"; position: absolute; left: 0; top: 1px; width: 20px; height: 20px; border-radius: 50%;
  background: var(--tlv-gold); color: #fff; font-size: 12px; line-height: 20px; text-align: center; font-weight: 700;
}

/* ---------- 8. jump nav (on this page) ---------- */
body.tlv-rw .entry-content nav.jumpnav,
body.tlv-rw .entry-content ul.jumpnav,
body.tlv-rw .entry-content .jumpnav ul {
  display: flex !important; flex-wrap: wrap; gap: 8px 8px; list-style: none !important; padding: 0 !important;
  margin-top: 0 !important; margin-bottom: 3rem !important;
}
body.tlv-rw .entry-content .jumpnav li { margin: 0 !important; line-height: 1; }
body.tlv-rw .entry-content .jumpnav li::marker { content: none; }
body.tlv-rw .entry-content .jumpnav a {
  display: inline-block; margin: 0 !important; padding: 8px 15px; border: 1px solid #d9ccb2; border-radius: 999px;
  background: #fbf8f2; color: var(--tlv-gold-dk) !important; font-size: 1.45rem; line-height: 1.2; font-weight: 500;
  text-decoration: none !important; transition: background .15s ease, color .15s ease;
}
body.tlv-rw .entry-content .jumpnav a:hover { background: var(--tlv-gold); border-color: var(--tlv-gold); color: #fff !important; }
body.tlv-rw .entry-content .jumpnav p { margin-bottom: 1rem !important; }
/* a jump nav written as one sentence ("On this page: a, b and c"): hide the commas, show pills */
body.tlv-rw .entry-content .jumpnav p:has(> a) { font-size: 0 !important; line-height: 0; margin-bottom: 0 !important; }
body.tlv-rw .entry-content .jumpnav p:has(> a) > strong { display: block; font-size: 1.5rem; line-height: 1.4; margin-bottom: 10px; }
body.tlv-rw .entry-content .jumpnav p:has(> a) > a { margin: 0 8px 8px 0 !important; }
body.tlv-rw .entry-content .jumpnav { margin-bottom: 3rem !important; }

/* ---------- 9. how-renting-works steps ---------- */
body.tlv-rw .entry-content .howsteps {
  background: var(--tlv-cream) !important; border: 1px solid var(--tlv-line); border-radius: var(--tlv-radius) !important;
  padding: 28px 30px !important; margin-top: 1rem !important; margin-bottom: 3.6rem !important; box-sizing: border-box;
}
body.tlv-rw .entry-content .howsteps ol { list-style: none !important; counter-reset: tlvstep; padding: 0 !important; margin-bottom: 0 !important; }
body.tlv-rw .entry-content .howsteps ol > li { counter-increment: tlvstep; position: relative; padding-left: 50px; margin-bottom: 1.6rem; min-height: 34px; }
body.tlv-rw .entry-content .howsteps ol > li:last-child { margin-bottom: 0; }
body.tlv-rw .entry-content .howsteps ol > li::before {
  content: counter(tlvstep); position: absolute; left: 0; top: 0; width: 34px; height: 34px; border-radius: 50%;
  background: var(--tlv-gold); color: #fff; font-weight: 700; font-size: 1.5rem; line-height: 34px; text-align: center;
}
body.tlv-rw .entry-content .howsteps h2 { margin-top: 0 !important; }
body.tlv-rw .entry-content .howsteps .wp-block-columns { margin-bottom: 0 !important; }

/* ---------- 10. stories, CTA strips, region cards, map, tables ---------- */
body.tlv-rw .entry-content .story {
  background: #fff; border: 1px solid var(--tlv-line); border-left: 4px solid var(--tlv-gold); border-radius: 10px;
  padding: 20px 24px !important; margin-top: 0 !important; margin-bottom: 18px !important; box-sizing: border-box;
  box-shadow: var(--tlv-shadow);
}
body.tlv-rw .entry-content .story h3 { font-size: 2.1rem !important; margin-bottom: .8rem !important; }
body.tlv-rw .entry-content .story p:last-child { margin-bottom: 0 !important; }
body.tlv-rw .entry-content .ctastrip {
  background: var(--tlv-cream) !important; border: 1px solid var(--tlv-line); border-left: 4px solid var(--tlv-gold);
  border-radius: var(--tlv-radius) !important; padding: 22px 26px !important; margin-top: 1rem !important; margin-bottom: 3.2rem !important; box-sizing: border-box;
}
body.tlv-rw .entry-content .ctastrip .wp-block-buttons { margin-bottom: 0 !important; margin-top: 1.6rem !important; }
body.tlv-rw .entry-content .ctastrip p:last-child { margin-bottom: 0 !important; }
body.tlv-rw .entry-content .regiongrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px !important; margin-top: 0 !important; margin-bottom: 3.2rem !important; }
body.tlv-rw .entry-content .regioncard {
  background: #fff !important; border: 1px solid var(--tlv-line) !important; border-radius: var(--tlv-radius) !important;
  padding: 12px 12px 16px !important; box-shadow: var(--tlv-shadow); box-sizing: border-box; margin-bottom: 0 !important;
}
body.tlv-rw .entry-content .regioncard h3 { font-size: 2.1rem !important; margin: .4rem 4px .8rem !important; }
body.tlv-rw .entry-content .regioncard p { font-size: 1.55rem; line-height: 1.65; margin: 0 4px 1rem !important; }
body.tlv-rw .entry-content .regioncard p:last-child { margin-bottom: 0 !important; }
body.tlv-rw .entry-content .mapfrm { margin-top: 0 !important; margin-bottom: 3.2rem !important; }
body.tlv-rw .entry-content .mapfrm iframe {
  display: block; width: 100% !important; height: 400px; border: 1px solid var(--tlv-line) !important; border-radius: var(--tlv-radius) !important;
}
body.tlv-rw .entry-content .wp-block-table {
  overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--tlv-line); border-radius: var(--tlv-radius);
  margin-top: 0 !important; margin-bottom: 3.2rem !important; background: #fff;
}
body.tlv-rw .entry-content .wp-block-table table { width: 100%; border-collapse: collapse; border: 0 !important; margin: 0; font-size: 1.55rem; }
body.tlv-rw .entry-content .wp-block-table th {
  background: var(--tlv-gold); color: #fff; font-weight: 600; text-align: left; padding: 13px 16px; border: 0 !important;
  font-family: inherit; letter-spacing: .2px;
}
body.tlv-rw .entry-content .wp-block-table td { padding: 12px 16px; border: 0 !important; border-top: 1px solid #efe8da !important; vertical-align: top; line-height: 1.5; }
body.tlv-rw .entry-content .wp-block-table tbody tr:nth-child(2n+1) { background: #faf6ee; }
body.tlv-rw .entry-content .wp-block-table tbody tr:nth-child(2n) { background: #fff; }
body.tlv-rw .entry-content .wp-block-table td:first-child { font-weight: 600; color: var(--tlv-ink); }

/* ---------- 10b. desktop (>= 1000px): use the full width with splits instead of one long column ---------- */
@media (min-width: 1000px) {
  /* C = the content container (entry-content, or LA's one outer group) */
  /* a photo followed by text floats right, so text and photo sit side by side */
  body.tlv-rw :is(.entry-content, .entry-content > .wp-block-group[style*="clamp("] > .wp-block-group__inner-container) > .wp-block-image:has(+ :is(p, ul, ol)) {
    float: right; clear: both; width: 46%; max-width: 46% !important;
    margin: .6rem 0 2.8rem 4.8rem !important;
  }
  body.tlv-rw :is(.entry-content, .entry-content > .wp-block-group[style*="clamp("] > .wp-block-group__inner-container) > .wp-block-image:has(+ :is(p, ul, ol)) img {
    width: 100%; max-height: 560px; object-fit: cover; border-radius: var(--tlv-radius);
  }
  /* photos not followed by text stay centred, a little larger */
  body.tlv-rw :is(.entry-content, .entry-content > .wp-block-group[style*="clamp("] > .wp-block-group__inner-container) > .wp-block-image:not(:has(+ :is(p, ul, ol))) img { max-height: 620px; border-radius: var(--tlv-radius); }
  /* everything that is a section or a panel starts below any floated photo */
  body.tlv-rw .entry-content :is(h2, .wp-block-columns, .wp-block-table, .wp-block-gallery, .regiongrid, .mapfrm, .trustband,
     .howsteps, .jumpnav, .ctastrip, nav, .wp-block-group:not(.rvw):not(.story), details) { clear: both; }
  body.tlv-rw .entry-content .wp-block-image + .wp-block-image { clear: both; }

  /* reviews written one after another: 2 per row */
  body.tlv-rw :is(.entry-content, .entry-content > .wp-block-group[style*="clamp("] > .wp-block-group__inner-container) > .rvw {
    float: left; width: calc(50% - 12px); margin: 0 0 24px 0 !important;
  }
  body.tlv-rw :is(.entry-content, .entry-content > .wp-block-group[style*="clamp("] > .wp-block-group__inner-container) > :is(:not(.rvw) + .rvw, :not(.rvw) + .rvw + .rvw + .rvw, :not(.rvw) + .rvw + .rvw + .rvw + .rvw + .rvw) {
    clear: both; margin-right: 24px !important;
  }
  /* stories written one after another: 3 per row */
  body.tlv-rw :is(.entry-content, .entry-content > .wp-block-group[style*="clamp("] > .wp-block-group__inner-container) > .story {
    float: left; clear: none; width: calc(33.333% - 16px); margin: 0 24px 24px 0 !important;
  }
  body.tlv-rw :is(.entry-content, .entry-content > .wp-block-group[style*="clamp("] > .wp-block-group__inner-container) > :is(:not(.story) + .story, :not(.story) + .story + .story + .story + .story) { clear: both; }
  body.tlv-rw :is(.entry-content, .entry-content > .wp-block-group[style*="clamp("] > .wp-block-group__inner-container) > :is(:not(.story) + .story + .story + .story, :not(.story) + .story + .story + .story + .story + .story + .story) { margin-right: 0 !important; }
  /* the parent theme clears every group block; a story inside a row must not */
  body.tlv-rw :is(.entry-content, .entry-content > .wp-block-group[style*="clamp("] > .wp-block-group__inner-container) > .story + .story:not(:is(:not(.story) + .story + .story + .story + .story)) { clear: none; }
  /* whatever follows a run of reviews or stories starts on a fresh line */
  body.tlv-rw :is(.entry-content, .entry-content > .wp-block-group[style*="clamp("] > .wp-block-group__inner-container) > :is(.rvw, .story) + :not(.rvw):not(.story):not(style),
  body.tlv-rw :is(.entry-content, .entry-content > .wp-block-group[style*="clamp("] > .wp-block-group__inner-container) > :is(.rvw, .story) + style + :not(.rvw):not(.story) { clear: both; }

  /* text never wraps beside a row of review or story cards (only beside a photo) */
  body.tlv-rw :is(.entry-content, .entry-content > .wp-block-group[style*="clamp("] > .wp-block-group__inner-container) > :is(p, ul, ol, h3, h4) { clear: left; }

  /* long lists (6+ items) run in two columns */
  body.tlv-rw :is(.entry-content, .entry-content > .wp-block-group[style*="clamp("] > .wp-block-group__inner-container) > :is(ul, ol):not(.jumpnav):has(> li:nth-child(6)) {
    column-count: 2; column-gap: 56px;
  }
  body.tlv-rw .entry-content :is(ul, ol):has(> li:nth-child(6)) > li { break-inside: avoid; }

  /* numbered steps become a row of step cards */
  body.tlv-rw .entry-content .howsteps ol { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 18px; }
  body.tlv-rw .entry-content .howsteps ol > li {
    background: #fff; border-radius: 14px; padding: 58px 20px 20px !important; margin: 0 !important; box-shadow: var(--tlv-shadow);
    font-size: 1.6rem; line-height: 1.6;
  }
  body.tlv-rw .entry-content .howsteps ol > li::before { left: 20px; top: 18px; }
  body.tlv-rw .entry-content .howsteps ol > li strong { display: block; margin-bottom: 4px; font-family: var(--tlv-head); font-size: 1.7rem; }

  /* trust band in one row, panels with more air */
  body.tlv-rw .entry-content .trustband { padding: 26px 32px !important; }
  body.tlv-rw .entry-content .trustband ul { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
  body.tlv-rw .entry-content .howsteps { padding: 32px !important; }
  body.tlv-rw .entry-content .ctastrip { padding: 28px 32px !important; display: flow-root; }
  body.tlv-rw .entry-content .ctastrip:has(.wp-block-buttons) .wp-block-group__inner-container { display: flex; align-items: center; gap: 32px; }
  body.tlv-rw .entry-content .ctastrip:has(.wp-block-buttons) .wp-block-group__inner-container > p { flex: 1 1 auto; margin: 0 !important; }
  body.tlv-rw .entry-content .ctastrip:has(.wp-block-buttons) .wp-block-buttons { flex: 0 0 auto; margin: 0 !important; flex-wrap: nowrap; }

  /* columns and grids get more gap */
  body.tlv-rw .entry-content .wp-block-columns { gap: 28px !important; }
  body.tlv-rw .entry-content .regiongrid { gap: 24px !important; }
}
/* close the float context at the end of the content */
body.tlv-rw .entry-content::after,
body.tlv-rw .entry-content > .wp-block-group[style*="clamp("] > .wp-block-group__inner-container::after { content: ""; display: table; clear: both; }

/* ---------- 11. phones ---------- */
@media (max-width: 600px) {
  body.tlv-rw .site-main { padding-top: 2rem; }
  body.tlv-rw .entry-content p,
  body.tlv-rw .entry-content li { font-size: 1.6rem; line-height: 1.7; }
  body.tlv-rw .entry-content h2 { margin-top: 4.4rem !important; padding-left: 1.2rem !important; }
  body.tlv-rw .entry-content .wp-block-buttons { flex-direction: column; align-items: stretch; }
  body.tlv-rw .entry-content .wp-block-buttons > .wp-block-button { width: 100%; }
  html body.tlv-rw .entry-content .wp-block-buttons > .wp-block-button > a.wp-block-button__link { width: 100%; min-width: 0 !important; }
  body.tlv-rw .entry-content .wp-block-image img { max-height: 520px; box-shadow: 0 4px 14px rgba(0, 0, 0, .10); }
  body.tlv-rw .entry-content .trustband,
  body.tlv-rw .entry-content .howsteps,
  body.tlv-rw .entry-content .ctastrip { padding: 18px 18px !important; }
  body.tlv-rw .entry-content .rvw { padding: 18px 18px !important; }
  body.tlv-rw .entry-content .trustband ul { grid-template-columns: 1fr; }
  body.tlv-rw .entry-content .mapfrm iframe { height: 300px; }
  body.tlv-rw .entry-content .wp-block-table table { font-size: 1.45rem; }
  body.tlv-rw .entry-content .wp-block-table table:has(tr > :nth-child(4)) { min-width: 600px; table-layout: auto; }
  body.tlv-rw .entry-content .wp-block-table :is(th, td) { overflow-wrap: normal; word-break: normal; hyphens: manual; }
  body.tlv-rw .entry-content .wp-block-table th,
  body.tlv-rw .entry-content .wp-block-table td { padding: 10px 12px; }
}
