/* Rethink Menopause: site parts rendered by the theme shortcodes inside the Elementor Theme Builder
   templates (header, footer, single post, archives, search, 404). Tokens only; body.rm prefix so these
   beat Elementor's widget and container defaults. */

body.rm .rm-ico { display: block; flex-shrink: 0; }
body.rm .rm-icon-btn .rm-ico, body.rm .rm-fab .rm-ico { width: 20px; height: 20px; min-width: 20px; }

/* ---------- Elementor wrappers used by the templates ---------- */
body.rm .rm-tb-bleed { padding: 0 !important; --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0; --gap: 0; --row-gap: 0; --column-gap: 0; }
body.rm .rm-tb-bleed > .elementor-element { width: 100%; }
body.rm .elementor-widget-shortcode .elementor-shortcode > :last-child { margin-bottom: 0; }

/* ---------- Utility bar ---------- */
body.rm .rm-utility { flex-wrap: wrap; }
body.rm .rm-utility__trust { display: flex; flex-wrap: wrap; gap: 0 var(--space-6); margin: 0; }
body.rm .rm-utility .rm-menu ul { display: flex; flex-wrap: wrap; gap: 0 22px; margin: 0; padding: 0; list-style: none; font-weight: 600; }
body.rm .rm-utility .rm-menu a { display: inline-flex; min-height: var(--utility-height); align-items: center; }

/* ---------- Header ---------- */
body.rm .rm-site-header { position: relative; display: flex; align-items: center; justify-content: space-between; gap: var(--space-6); min-height: var(--header-height); padding: 0 var(--space-9); background: var(--surface); border-bottom: 1px solid var(--line); }
body.rm .rm-site-header .rm-logo img { width: clamp(150px, 20vw, 240px); height: auto; }
body.rm .rm-footer .rm-logo img { width: 200px; height: auto; }
body.rm .rm-nav--main { margin-left: auto; }
body.rm .rm-nav__list { display: flex; gap: 4px; align-items: center; margin: 0; padding: 0; list-style: none; }
body.rm .rm-nav__item { position: relative; }
body.rm .rm-nav .rm-nav__toggle[data-current="true"] { background: var(--sage-light); color: var(--ink); }
body.rm .rm-nav .rm-dropdown { position: absolute; top: calc(100% + 6px); left: 0; z-index: 50; margin: 0; list-style: none; display: none; }
body.rm .rm-nav .rm-dropdown a { display: block; white-space: nowrap; }
body.rm .rm-nav .rm-dropdown a[aria-current="page"] { background: var(--sage-light); }
body.rm .rm-nav__toggle[aria-expanded="true"] + .rm-dropdown { display: flex; }
@media (hover: hover) and (min-width: 1001px) {
	body.rm .rm-nav__item.has-sub:hover > .rm-dropdown, body.rm .rm-nav__item.has-sub:has(:focus-visible) > .rm-dropdown { display: flex; }
	body.rm .rm-nav__item.has-sub::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 8px; }
}
body.rm .rm-site-header__tools { display: flex; gap: var(--space-2); align-items: center; }
body.rm .rm-menu-toggle { display: none; }
body.rm .rm-menu-toggle .rm-ico + .rm-ico, body.rm .rm-menu-toggle[aria-expanded="true"] .rm-ico:first-child { display: none; }
body.rm .rm-menu-toggle[aria-expanded="true"] .rm-ico + .rm-ico { display: block; }

body.rm .rm-mobile-menu { background: var(--surface-alt); padding: var(--space-4); border-bottom: 1px solid var(--line); }
body.rm .rm-mobile-menu[hidden] { display: none; }
body.rm .rm-mobile-menu ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }
body.rm .rm-mobile-menu > ul > li > a { display: flex; align-items: center; min-height: 48px; padding: 0 var(--space-4); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-btn); font-weight: 700; color: var(--ink); text-decoration: none; }
body.rm .rm-mobile-menu ul ul { margin: var(--space-2) 0 var(--space-1) var(--space-5); gap: 2px; }
body.rm .rm-mobile-menu ul ul a { display: flex; align-items: center; min-height: 44px; padding: 0 var(--space-3); font-weight: 600; color: var(--slate); text-decoration: none; }
body.rm .rm-mobile-menu a[aria-current="page"] { border-color: var(--sage); background: var(--sage-light); }
body.rm .rm-mobile-menu .rm-btn { width: 100%; margin-top: var(--space-4); }

@media (max-width: 1000px) {
	body.rm .rm-nav--main { display: none; }
	body.rm .rm-menu-toggle { display: inline-flex; }
	body.rm .rm-site-header { padding: 0 var(--space-6); min-height: 72px; }
}
@media (max-width: 767px) {
	body.rm .rm-site-header { padding: 0 var(--space-4); min-height: 64px; }
	body.rm .rm-site-header .rm-logo img { width: 150px; }
}

/* ---------- Footer ---------- */
body.rm .rm-site-footer { display: flex; flex-direction: column; }
body.rm .rm-site-footer .rm-signup { max-width: var(--container-max); width: calc(100% - 2 * var(--space-9)); margin: var(--space-9) auto; }
/* Space under the strip: beat the shortcode last-child margin reset (Chris, 2 Oct) */
body.rm .rm-site-footer .elementor-shortcode > .rm-signup { margin-bottom: var(--space-9); }

body.rm .rm-footer__cols { max-width: var(--container-max); width: 100%; margin: 0 auto; }
body.rm .rm-footer__legal { max-width: var(--container-max); width: 100%; margin: 0 auto; }
body.rm .rm-footer__brand p { margin: var(--space-3) 0 0; font-size: 14px; line-height: 22px; color: var(--on-dark-muted); }
body.rm .rm-footer .rm-menu ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
body.rm .rm-footer .rm-eyebrow { margin-bottom: var(--space-1); }
body.rm .rm-footer__legal .rm-menu ul { flex-direction: row; gap: 18px; }
@media (max-width: 767px) {
	body.rm .rm-site-footer .rm-signup { width: calc(100% - 2 * var(--space-4)); }
}

/* ---------- Single post ---------- */
body.rm .rm-post-layout { display: grid !important; grid-template-columns: minmax(0, 1fr) var(--sidebar); gap: var(--space-10); align-items: start; max-width: var(--container-max); margin: 0 auto; padding: var(--space-8) var(--space-9) var(--space-10); }
body.rm .rm-post-main { display: flex !important; flex-direction: column; gap: var(--space-6); min-width: 0; max-width: var(--measure); padding: 0 !important; }
body.rm .rm-post-aside { display: flex !important; flex-direction: column; gap: var(--space-5); position: sticky; top: var(--space-6); padding: 0 !important; }
body.rm .rm-post-title .elementor-heading-title, body.rm .rm-archive-head h1 { font-family: var(--font-display); font-weight: 600; font-size: 40px; line-height: 46px; letter-spacing: -0.005em; color: var(--ink); margin: 0; text-wrap: balance; }
body.rm .rm-featured img, body.rm .rm-featured .elementor-widget-container img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius-md); display: block; }
body.rm .rm-post-main .rm-meta { margin: 0; }
body.rm .rm-panel ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-3); }
body.rm .rm-panel .rm-panel__link { color: var(--ink); text-decoration: none; }
body.rm .rm-panel .rm-panel__link:hover { color: var(--slate); text-decoration: underline; text-decoration-color: var(--sage); }
body.rm .rm-cta p { margin: 0; }
body.rm .rm-author-cta p { margin: 0; }
body.rm .rm-author-cta__photo img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
body.rm .rm-keep-reading { display: flex; flex-direction: column; gap: 18px; padding-top: var(--space-4); }
body.rm .rm-keep-reading__head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-4); flex-wrap: wrap; }
body.rm .rm-keep-reading__head h2 { font-size: 27px; line-height: 34px; }
body.rm .rm-post-card .rm-media { display: block; }
body.rm .rm-post-card .rm-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* 29 Oct: featured image zoom set per post (Rethink plugin featured-crop.php sets --rm-zoom / --rm-origin on the img). Only inside frames that clip. */
body.rm .rm-featured, body.rm .rm-featured .elementor-widget-container { overflow: hidden; border-radius: var(--radius-md); }
body.rm :is(.rm-featured, .rm-media) img { scale: var(--rm-zoom, 1); transform-origin: var(--rm-origin, 50% 50%); }
body.rm .rm-post-card .rm-meta { margin-top: -4px; }
body.rm .rm-post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-5); border-top: 1px solid var(--line); padding-top: var(--space-5); }
body.rm .rm-post-nav a { display: flex; flex-direction: column; gap: 4px; font-weight: 600; color: var(--ink); text-decoration: none; }
body.rm .rm-post-nav a:hover span:last-child { text-decoration: underline; text-decoration-color: var(--sage); text-decoration-thickness: 2px; }
body.rm .rm-post-nav__next { text-align: right; align-items: flex-end; }
@media (max-width: 1024px) {
	body.rm .rm-post-layout { grid-template-columns: minmax(0, 1fr); padding: var(--space-6) var(--space-6) var(--space-9); }
	body.rm .rm-post-aside { position: static; max-width: var(--measure); }
	body.rm .rm-post-aside .rm-panel, body.rm .rm-post-aside .rm-panel--alt { display: none; }
}
@media (max-width: 767px) {
	body.rm .rm-post-layout { padding: var(--space-5) var(--space-4) var(--space-8); gap: var(--space-8); }
	body.rm .rm-post-title .elementor-heading-title, body.rm .rm-archive-head h1 { font-size: 32px; line-height: 38px; }
	body.rm .rm-post-nav { grid-template-columns: 1fr; }
	body.rm .rm-post-nav__next { text-align: left; align-items: flex-start; }
}

/* ---------- Archives, search, 404 ---------- */
body.rm .rm-archive { max-width: var(--container-max); margin: 0 auto; padding: var(--space-8) var(--space-9) var(--space-10); display: flex !important; flex-direction: column; gap: var(--space-8); }
body.rm .rm-archive-head { display: flex; flex-direction: column; gap: var(--space-4); max-width: var(--measure); }
body.rm .rm-archive-head .rm-lead p { margin: 0 0 var(--space-3); }
body.rm .rm-post-grid { row-gap: var(--space-8); }
body.rm .rm-pagination .nav-links { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: center; }
body.rm .rm-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: var(--touch-min); min-height: var(--touch-min); padding: 0 var(--space-3); border-radius: var(--radius-btn); border: 1px solid var(--line); color: var(--slate); font-weight: 700; text-decoration: none; }
body.rm .rm-pagination .page-numbers.current { background: var(--slate); border-color: var(--slate); color: var(--on-dark); }
body.rm .rm-pagination a.page-numbers:hover { border-color: var(--slate); }
body.rm .rm-pagination .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
body.rm .rm-empty { display: flex; flex-direction: column; gap: var(--space-4); }
body.rm .rm-404 { max-width: var(--measure); margin: 0 auto; padding: var(--space-10) var(--space-9); display: flex !important; flex-direction: column; gap: var(--space-5); }
@media (max-width: 1024px) { body.rm .rm-archive, body.rm .rm-404 { padding: var(--space-6) var(--space-6) var(--space-9); } }
@media (max-width: 767px) { body.rm .rm-archive, body.rm .rm-404 { padding: var(--space-5) var(--space-4) var(--space-8); } }

/* Search form (searchform.php) */
body.rm form.rm-search-form, body.rm form.search-form { display: flex; gap: var(--space-2); max-width: 560px; }
body.rm form.rm-search-form input[type="search"], body.rm form.search-form input[type="search"] { flex: 1; min-width: 0; height: 48px; border: 1px solid var(--line-control); border-radius: var(--radius-btn); padding: 0 16px; font: inherit; font-size: 16px; color: var(--ink); background: var(--surface); }
body.rm form.rm-search-form button, body.rm form.rm-search-form button:hover, body.rm form.rm-search-form button:focus, body.rm form.search-form button { height: 48px; padding: 0 var(--space-5); border: 0; border-radius: var(--radius-btn); background: var(--slate); color: var(--on-dark); font: inherit; font-weight: 700; cursor: pointer; }

/* ---------- Search overlay ---------- */
body.rm .rm-search-dialog { width: min(820px, calc(100% - 2 * var(--space-4))); max-height: calc(100% - 80px); margin: 40px auto auto; padding: 0; border: 0; background: transparent; overflow: visible; }
body.rm .rm-search-dialog::backdrop { background: var(--scrim); }
body.rm .rm-search-dialog .rm-search { max-height: calc(100vh - 80px); overflow: auto; }
body.rm .rm-search__field .rm-icon-btn { width: 36px; height: 36px; background: transparent; }
body.rm .rm-search__results:empty { display: none; }
body.rm .rm-search__results { display: flex; flex-direction: column; gap: var(--space-4); }
body.rm .rm-search__col p { margin: 0; }

/* ---------- Floating Book with Sam ---------- */
body.rm .rm-fab-fixed { position: fixed; right: 40px; bottom: calc(36px + env(safe-area-inset-bottom, 0px)); z-index: 60; }
body.rm .rm-quick[hidden] { display: none; }
body.rm .rm-quick p { margin: 0; }
body.rm .rm-quick a:not(.rm-btn) { padding: 4px 0; }
body.rm .rm-quick .rm-btn { margin-top: var(--space-2); }
html.rm-menu-open body.rm .rm-fab-fixed { display: none; }
@media (max-width: 767px) {
	body.rm .rm-fab-fixed { right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); }
	body.rm .rm-fab { padding: var(--space-3) var(--space-5); font-size: 15px; }
}
@media print { body.rm .rm-fab-fixed, body.rm .rm-search-dialog { display: none !important; } }

/* Elementor's kit styles every <button> (booking-colour fill on hover/focus): restore design-system states. */
body.rm .rm-icon-btn:hover, body.rm .rm-icon-btn:focus, body.rm .rm-icon-btn:active { background: var(--sage); color: var(--ink); border: 0; box-shadow: none; }
body.rm .rm-icon-btn--solid:hover, body.rm .rm-icon-btn--solid:focus, body.rm .rm-icon-btn--solid:active { background: var(--slate-deep); color: var(--on-dark); }
body.rm .rm-menu-toggle[aria-expanded="true"] { background: var(--slate); color: var(--on-dark); }
body.rm .rm-nav .rm-nav__toggle, body.rm .rm-nav .rm-nav__toggle:focus { background: none; color: var(--slate); border: 0; box-shadow: none; }
body.rm .rm-nav .rm-nav__toggle:hover, body.rm .rm-nav .rm-nav__toggle[aria-expanded="true"] { background: var(--sage-light); color: var(--ink); }
body.rm .rm-search__field .rm-icon-btn, body.rm .rm-search__field .rm-icon-btn:focus { background: transparent; color: var(--slate); }
body.rm .rm-search__field .rm-icon-btn:hover { background: var(--sage-light); }
body.rm .rm-fab:hover, body.rm .rm-fab:focus, body.rm .rm-fab:active { background: var(--amber-deep); color: var(--on-amber); }
body.rm .rm-chip--outline:hover, body.rm .rm-chip--outline:focus { background: var(--sage-light); color: var(--ink); }body.rm .rm-search-dialog .rm-search__field input[type="search"] { border: 0; height: auto; padding: 0; background: transparent; box-shadow: none; outline: none; border-radius: 0; font-size: 18px; }
body.rm form.rm-search-form button:hover, body.rm form.rm-search-form button:focus { background: var(--slate-deep); color: var(--on-dark); }

/* ==========================================================================================
   Blog post sidebar menus: Related reading (shared tags) + Browse by tag.  [rm_post_sidebar]
   ========================================================================================== */
body.rm .rm-post-aside { position: static; align-self: stretch; }
body.rm .rm-aside-menus { display: flex; flex-direction: column; gap: var(--space-5); }
body.rm .rm-aside-menus .rm-panel__title { margin: 0; }
body.rm .rm-related ul { gap: 0; }
body.rm .rm-related li + li { border-top: 1px solid var(--line); }
body.rm .rm-related__link { display: flex; flex-direction: column; gap: 2px; padding: var(--space-3) 0; color: var(--ink); text-decoration: none; }
body.rm .rm-related li:first-child .rm-related__link { padding-top: 0; }
body.rm .rm-related li:last-child .rm-related__link { padding-bottom: 0; }
body.rm .rm-related__title { font-size: 15px; line-height: 21px; font-weight: 600; }
body.rm .rm-related__why { font-size: 13px; line-height: 18px; color: var(--ink-muted); }
body.rm .rm-related__link:hover .rm-related__title { color: var(--slate); text-decoration: underline; text-decoration-color: var(--sage); text-decoration-thickness: 2px; text-underline-offset: 3px; }

body.rm .rm-tagmenu__list { gap: 0 !important; }
body.rm .rm-tagmenu__list > li + li { border-top: 1px solid var(--line-strong); }
body.rm .rm-tagmenu__item summary { display: flex; align-items: center; gap: var(--space-2); min-height: var(--touch-min); cursor: pointer; list-style: none; font-size: 15px; line-height: 20px; font-weight: 600; color: var(--ink); border-radius: var(--radius-sm); }
body.rm .rm-tagmenu__item summary::-webkit-details-marker { display: none; }
body.rm .rm-tagmenu__item summary:hover .rm-tagmenu__name { color: var(--slate); }
body.rm .rm-tagmenu__count { margin-left: auto; min-width: 26px; padding: 1px var(--space-2); border-radius: var(--radius-pill); background: var(--surface); border: 1px solid var(--line); font-size: 12px; line-height: 18px; font-weight: 700; color: var(--ink-muted); text-align: center; }
body.rm :is(.rm-tagmenu, .rm-toc) .rm-caret { flex: 0 0 auto; width: 8px; height: 8px; margin: 0 4px 0 6px; border-right: 2px solid var(--slate); border-bottom: 2px solid var(--slate); transform: translateY(-2px) rotate(45deg); transition: transform .15s; }
body.rm :is(.rm-tagmenu__item, .rm-toc)[open] > summary .rm-caret { transform: translateY(2px) rotate(-135deg); }
body.rm .rm-tagmenu__item ul { margin: 0 0 var(--space-1) 2px !important; padding: 0 0 0 var(--space-3) !important; border-left: 2px solid var(--sage); gap: var(--space-2) !important; }
body.rm .rm-tagmenu__item ul a { display: block; font-size: 14px; line-height: 20px; color: var(--ink-body); text-decoration: none; }
body.rm .rm-tagmenu__item ul a:hover { color: var(--slate); text-decoration: underline; text-decoration-color: var(--sage); text-decoration-thickness: 2px; text-underline-offset: 3px; }
body.rm .rm-tagmenu__item .rm-arrow-link { font-size: 14px; min-height: 36px; margin-bottom: var(--space-2); }
@media (prefers-reduced-motion: reduce) { body.rm .rm-caret { transition: none !important; } }

@media (max-width: 1024px) {
	body.rm .rm-post-aside { max-width: none; }
	body.rm .rm-post-aside .rm-cta { display: none; }
	body.rm .rm-post-aside .rm-aside-menus .rm-panel { display: flex; }
	body.rm .rm-aside-menus { position: static; max-height: none; overflow: visible; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
}
@media (max-width: 767px) {
	body.rm .rm-aside-menus { grid-template-columns: minmax(0, 1fr); }
}

/* ==========================================================================================
   Contents box ("In this article"): Rank Math TOC re-rendered by inc/post-extras.php.
   ========================================================================================== */
body.rm .rm-toc-intro p { margin: 0; font-size: 19px; line-height: 31px; color: var(--ink); }
body.rm .rm-toc-intro p + p { margin-top: var(--space-4); }
body.rm details.rm-toc { display: block; margin-block: var(--space-7) var(--space-8); padding: var(--pad-card); border: 1px solid var(--surface-alt); }
body.rm .rm-toc__head { display: flex; align-items: center; gap: var(--space-3); min-height: 32px; cursor: pointer; list-style: none; border-radius: var(--radius-sm); }
body.rm .rm-toc__head::-webkit-details-marker { display: none; }
body.rm .rm-toc__title { font-family: var(--font-display); font-size: 18px; line-height: 24px; font-weight: 600; color: var(--ink); }
body.rm .rm-toc__count { margin-left: auto; font-size: 13px; line-height: 18px; color: var(--ink-muted); }
body.rm .rm-toc__nav { margin-top: var(--space-3); padding-top: var(--space-4); border-top: 1px solid var(--line); }
body.rm .rm-toc .rm-toc__nav ol { margin: 0; padding: 0; list-style: none; }
body.rm .rm-toc .rm-toc__nav > ol { columns: 2; column-gap: var(--space-7); counter-reset: toc; }
body.rm .rm-toc .rm-toc__nav > ol:not(:has(> li:nth-child(5))) { columns: 1; }
body.rm .rm-toc .rm-toc__nav li { margin: 0; padding: 0; break-inside: avoid; }
body.rm .rm-toc .rm-toc__nav > ol > li { counter-increment: toc; padding: 5px 0; }
body.rm .rm-toc .rm-toc__nav a { color: var(--slate); text-decoration: none; }
body.rm .rm-toc .rm-toc__nav > ol > li > a { display: flex; gap: 10px; font-size: 15px; line-height: 22px; font-weight: 600; }
body.rm .rm-toc .rm-toc__nav > ol > li > a::before { content: counter(toc); flex: 0 0 22px; height: 22px; border-radius: 50%; background: var(--sage-light); color: var(--ink); font-size: 12px; line-height: 22px; font-weight: 700; text-align: center; }
body.rm .rm-toc .rm-toc__nav a:hover { color: var(--ink); text-decoration: underline; text-decoration-color: var(--sage); text-decoration-thickness: 2px; text-underline-offset: 3px; }
body.rm .rm-toc .rm-toc__nav > ol > li > a:hover::before { background: var(--sage); }
body.rm .rm-toc .rm-toc__nav li li { counter-increment: none; padding: 3px 0 3px 32px; font-size: 14px; line-height: 20px; }
body.rm .rm-toc .rm-toc__nav li li a { font-weight: 400; color: var(--ink-body); }
body.rm .rm-toc .rm-toc__nav li li a::before { content: none; }
body.rm .rm-toc .rm-toc__nav li ol { margin-top: 3px; }
@media (max-width: 767px) {
	body.rm .rm-toc .rm-toc__nav > ol { columns: 1; }
	body.rm .rm-toc .rm-toc__nav > ol > li { padding: 6px 0; }
	body.rm .rm-toc-intro p { font-size: 18px; line-height: 29px; }
}
@media print { body.rm .rm-toc__head .rm-caret, body.rm .rm-toc__count { display: none; } }

/* ==========================================================================================
   Resources hub (/resources/): bands, search bar, Start here cards, resource library.
   ========================================================================================== */
body.rm .rm-hub { gap: 0 !important; padding: 0 !important; }
body.rm :is(.rm-hub-hero, .rm-hub-section) { --hub-x: max(var(--space-9), calc((100% - var(--container-max)) / 2)); padding: var(--space-10) var(--hub-x) !important; display: flex !important; flex-direction: column; gap: var(--space-5); }
body.rm .rm-hub-hero { background: var(--surface-alt); padding-bottom: var(--space-9) !important; }
body.rm .rm-hub-hero > * { max-width: 820px; }
body.rm .rm-hub-section + .rm-hub-section { padding-top: 0 !important; }
body.rm .rm-hub :is(.elementor-widget, .elementor-widget-container) { margin: 0; }
body.rm .rm-hub .rm-hub-title .elementor-heading-title { font-family: var(--font-display); font-weight: 600; font-size: 40px; line-height: 46px; color: var(--ink); margin: 0; text-wrap: balance; }
body.rm .rm-hub .rm-hub-h2 .elementor-heading-title { font-family: var(--font-display); font-weight: 600; font-size: 32px; line-height: 38px; color: var(--ink); margin: 0; }
body.rm .rm-hub .rm-lead p, body.rm .rm-hub .rm-hub-note p { margin: 0; }
body.rm .rm-hub .rm-eyebrow { margin: 0; }
body.rm .rm-hub-head { display: flex; flex-direction: column; gap: var(--space-2); }
#rm-library { scroll-margin-top: var(--space-6); }

/* Search bar */
body.rm .rm-res-search { display: flex; flex-direction: column; gap: var(--space-3); margin-top: var(--space-2); }
body.rm .rm-res-search__form { display: flex; align-items: center; gap: var(--space-2); padding: 6px 6px 6px var(--space-4); background: var(--surface); border: 1px solid var(--line-control); border-radius: var(--radius-xl); box-shadow: var(--shadow-card); }
body.rm .rm-res-search__form:focus-within { border-color: var(--slate); box-shadow: 0 0 0 3px var(--sage-light), var(--shadow-card); }
body.rm .rm-res-search__icon { color: var(--slate); display: flex; }
body.rm .rm-res-search__form input[type="search"] { flex: 1; min-width: 0; height: 48px; margin: 0; padding: 0 var(--space-1); border: 0; border-radius: 0; background: transparent; box-shadow: none; outline: none; font: inherit; font-size: 17px; color: var(--ink); -webkit-appearance: none; appearance: none; }
body.rm .rm-res-search__form input[type="search"]::placeholder { color: var(--ink-muted); opacity: 1; }
body.rm .rm-res-search__form input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; display: none; }
body.rm .rm-res-search__form .rm-res-search__clear, body.rm .rm-res-search__form .rm-res-search__clear:focus { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: var(--radius-btn); background: transparent; color: var(--slate); box-shadow: none; }
body.rm .rm-res-search__form .rm-res-search__clear:hover { background: var(--sage-light); color: var(--ink); }
body.rm .rm-res-search__form .rm-res-search__clear[hidden] { display: none; }
body.rm .rm-res-search__form .rm-res-search__go, body.rm .rm-res-search__form .rm-res-search__go:focus { height: 48px; padding: 0 22px; border: 0; border-radius: var(--radius-btn); background: var(--slate); color: var(--on-dark); font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; box-shadow: none; }
body.rm .rm-res-search__form .rm-res-search__go:hover, body.rm .rm-res-search__form .rm-res-search__go:active { background: var(--slate-deep); color: var(--on-dark); }
body.rm .rm-res-search__popular { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: center; }

/* Start here cards */
body.rm .rm-grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); list-style: none; margin: 0; padding: 0; }
body.rm .rm-grid-4 > li { display: flex; margin: 0; }
body.rm .rm-grid-4 > li > .rm-card { width: 100%; }
body.rm .rm-start .rm-card__title { font-size: 19px; line-height: 25px; }
body.rm .rm-start .rm-card__link { display: inline-flex; align-items: center; gap: 6px; padding-top: var(--space-2); }
body.rm .rm-start .rm-card__link .rm-ico { width: 16px; height: 16px; min-width: 16px; transition: transform .15s; }
body.rm .rm-start a.rm-card:hover .rm-card__link .rm-ico { transform: translateX(3px); }

/* Library: filters */
body.rm .rm-library { display: flex; flex-direction: column; gap: var(--space-6); }

body.rm .rm-chip__n { font-size: 12px; font-weight: 700; opacity: .75; }
body.rm .rm-library__row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-5); }

body.rm .rm-library__count { margin: 0 0 0 auto; font-size: 14px; line-height: 20px; color: var(--ink-muted); }
body.rm .rm-library__reset { font-size: 14px; font-weight: 700; color: var(--slate); text-decoration: underline; text-decoration-color: var(--sage); text-decoration-thickness: 2px; text-underline-offset: 3px; }
body.rm .rm-library__reset[hidden] { display: none; }

body.rm .rm-library__row .rm-library__count { margin: 0; }

/* Library: resource cards */
body.rm .rm-res-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); list-style: none; margin: 0; padding: 0; }
body.rm .rm-res { display: flex; margin: 0; }
body.rm .rm-res[hidden] { display: none; }
body.rm .rm-res__link { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: var(--space-4); width: 100%; padding: var(--pad-card); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-xl); box-shadow: var(--shadow-card); color: var(--ink); text-decoration: none; transition: transform .15s, box-shadow .15s, border-color .15s; }
body.rm .rm-res__link:hover { transform: translateY(-2px); box-shadow: var(--shadow-float); border-color: var(--sage); color: var(--ink); }
body.rm .rm-res__thumb { width: 96px; height: 84px; display: flex; align-items: center; justify-content: center; padding: 6px; border-radius: var(--radius-md); background: var(--surface-alt); overflow: hidden; }
body.rm .rm-res__thumb img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; border-radius: 3px; }
body.rm .rm-res__thumb--icon { height: 64px; background: var(--sage-light); color: var(--slate); }
body.rm .rm-res__body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
body.rm .rm-res__type { font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--slate); }
body.rm .rm-res__title { font-family: var(--font-display); font-size: 18px; line-height: 24px; font-weight: 600; color: var(--ink); }
body.rm .rm-res__ext { display: inline-flex; margin-left: 6px; vertical-align: -1px; color: var(--slate); }
body.rm .rm-res__ext .rm-ico { width: 14px; height: 14px; min-width: 14px; }
body.rm .rm-res__link:hover .rm-res__title { text-decoration: underline; text-decoration-color: var(--sage); text-decoration-thickness: 2px; text-underline-offset: 3px; }
body.rm .rm-res__by { font-size: 14px; line-height: 20px; color: var(--ink-muted); }
body.rm .rm-res__desc { margin-top: 4px; font-size: 15px; line-height: 22px; color: var(--ink-body); }
body.rm .rm-res__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: var(--space-2); }
body.rm .rm-res__tags span { padding: 2px 10px; border-radius: var(--radius-pill); background: var(--sage-light); font-size: 12px; line-height: 18px; font-weight: 600; color: var(--ink); }
body.rm .rm-res__talk { display: flex; align-items: center; gap: 6px; margin-top: 6px; font-size: 13px; line-height: 18px; color: var(--ink-muted); }
body.rm .rm-res__talk .rm-ico { width: 14px; height: 14px; min-width: 14px; color: var(--slate); }
body.rm .rm-library__empty { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-2); padding: var(--space-6); background: var(--surface-alt); border-radius: var(--radius-xl); }
body.rm .rm-library__empty[hidden] { display: none; }
body.rm .rm-library__empty p { margin: 0; }
body.rm .rm-library__empty .rm-btn { margin-top: var(--space-2); }
body.rm .rm-hub-note { display: flex; flex-direction: column; gap: var(--space-2); padding-top: var(--space-6); border-top: 1px solid var(--line); }
body.rm .rm-hub :is(.rm-lead, .rm-hub-note) p a { color: var(--slate); text-decoration: underline; text-decoration-color: var(--sage); text-decoration-thickness: 2px; text-underline-offset: 3px; } /* links in text need more than colour */
body.rm .rm-hub :is(.rm-lead, .rm-hub-note) p a:hover { color: var(--ink); text-decoration-color: var(--slate); }
@media (prefers-reduced-motion: reduce) { body.rm .rm-res__link, body.rm .rm-start .rm-ico { transition: none; } body.rm .rm-res__link:hover { transform: none; } }

@media (max-width: 1024px) {
	body.rm :is(.rm-hub-hero, .rm-hub-section) { --hub-x: var(--space-6); padding-block: var(--space-9) !important; }
	body.rm .rm-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.rm .rm-res-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	body.rm :is(.rm-hub-hero, .rm-hub-section) { --hub-x: var(--space-4); padding-block: var(--space-8) !important; }
	body.rm .rm-hub .rm-hub-title .elementor-heading-title { font-size: 32px; line-height: 38px; }
	body.rm .rm-hub .rm-hub-h2 .elementor-heading-title { font-size: 26px; line-height: 32px; }
	body.rm .rm-res-search__form { padding-left: var(--space-3); }
	body.rm .rm-res-search__go { padding: 0 var(--space-4) !important; }
	body.rm .rm-res-search__icon { display: none; }
	body.rm .rm-res-search__form input[type="search"] { font-size: 16px; }
	body.rm .rm-res-grid, body.rm .rm-grid-4 { grid-template-columns: minmax(0, 1fr); }

	body.rm .rm-library__count { margin-left: 0; }
}
/* ==========================================================================================
   2 Oct 2026: one centred content column everywhere (header, pages, footer), legacy content fixes,
   consistent buttons, homepage, appointments (2C) and booking pages.
   --band-x = side padding that centres a 1184px column, with 48 / 24 / 16px minimums.
   ========================================================================================== */
body.rm { --band-x: max(var(--space-9), calc((100% - var(--container-max)) / 2)); }
@media (max-width: 1024px) { body.rm { --band-x: var(--space-6); } }
@media (max-width: 767px) { body.rm { --band-x: var(--space-4); } }

/* Header: same column as the content */
body.rm .rm-site-header { padding-inline: var(--band-x); }

/* No sideways scrolling on phones, whatever the content */
body.rm .rm-site-main, body.rm [data-elementor-type="wp-page"] { overflow-x: clip; }

/* ---------- Footer: row 1 logo + strapline, row 2 four columns, legal ---------- */
body.rm .rm-footer { display: block; padding: var(--space-10) var(--band-x) var(--space-7); }
body.rm .rm-footer__inner { max-width: var(--container-max); margin: 0 auto; display: flex; flex-direction: column; gap: var(--space-8); }
body.rm .rm-footer__top { display: flex; align-items: center; gap: var(--space-8); padding-bottom: var(--space-8); border-bottom: 1px solid var(--slate-line); }
body.rm .rm-footer__top .rm-logo { flex: 0 0 auto; }
body.rm .rm-footer__top .rm-logo img { width: 220px; height: auto; display: block; }
body.rm .rm-footer__strap { margin: 0; max-width: 560px; font-size: 15px; line-height: 24px; color: var(--on-dark-muted); }
body.rm .rm-footer .rm-footer__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-8); max-width: none; margin: 0; }
body.rm .rm-footer__col { min-width: 0; }
body.rm .rm-footer .rm-footer__legal { max-width: none; margin: 0; align-items: center; }
@media (max-width: 1024px) {
	body.rm .rm-footer { padding: var(--space-9) var(--band-x) var(--space-6); }
	body.rm .rm-footer__top { flex-direction: column; align-items: flex-start; gap: var(--space-4); padding-bottom: var(--space-7); }
	body.rm .rm-footer .rm-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-7) var(--space-6); }
}
@media (max-width: 767px) {
	body.rm .rm-footer { padding: var(--space-8) var(--band-x) var(--space-6); }
	body.rm .rm-footer__top .rm-logo img { width: 180px; }
	body.rm .rm-footer .rm-footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body.rm .rm-footer .rm-footer__legal { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 420px) { body.rm .rm-footer .rm-footer__cols { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Pages not yet rebuilt (theme fallback): centred column ---------- */
body.rm .rm-page-head { width: 100%; margin-inline: auto; }
body.rm .rm-entry-content:not(.rm-prose) { max-width: none; width: 100%; display: flow-root; }
body.rm .rm-entry-content:not(.rm-prose) > :not(.alignleft, .alignright) { max-width: var(--measure); margin-inline: auto; }
body.rm .rm-entry-content:not(.rm-prose) > :is(.alignwide, .wp-block-columns, .wp-block-group, .wp-block-table, .wp-block-media-text, .wp-block-gallery, .wp-block-cover, .wp-block-themeisle-blocks-advanced-columns, .wp-block-latest-posts, .wp-block-embed, .wp-block-image.aligncenter) { max-width: 960px; }
body.rm .rm-entry-content:not(.rm-prose) > .alignfull { max-width: none; }
body.rm .rm-entry-content img { max-width: 100%; height: auto; }
body.rm .rm-entry-content .wp-block-table { overflow-x: auto; }
@media (max-width: 767px) {
	body.rm .rm-entry-content .wp-block-themeisle-blocks-advanced-columns > .innerblocks-wrap { flex-direction: column !important; flex-wrap: wrap !important; }
	body.rm .rm-entry-content .wp-block-themeisle-blocks-advanced-column { flex: 1 1 100% !important; width: 100% !important; max-width: 100% !important; }
	body.rm .rm-entry-content .alignleft, body.rm .rm-entry-content .alignright { float: none; margin: 0 auto var(--space-4); max-width: 100%; }
}

/* ---------- Buttons from the block editor (core + Otter): the design-system primary button ---------- */
body.rm :is(.rm-entry-content, .rm-prose, .elementor-widget-text-editor, .elementor-widget-theme-post-content) :is(a.wp-block-button__link, a.wp-element-button),
body.rm .wp-block-themeisle-blocks-button a {
	display: inline-flex !important; align-items: center; justify-content: center; gap: var(--space-2); min-height: var(--touch-min);
	padding: var(--space-3) var(--space-5) !important; border: 2px solid transparent !important; border-radius: var(--radius-btn) !important;
	background: var(--amber) !important; color: var(--on-amber) !important; box-shadow: none !important; text-decoration: none !important;
	font-family: var(--font-sans) !important; font-size: 15px !important; line-height: 20px !important; font-weight: 700 !important; letter-spacing: 0 !important; text-transform: none !important;
}
body.rm :is(.rm-entry-content, .rm-prose, .elementor-widget-text-editor, .elementor-widget-theme-post-content) :is(a.wp-block-button__link, a.wp-element-button):hover,
body.rm .wp-block-themeisle-blocks-button a:hover { background: var(--amber-deep) !important; color: var(--on-amber) !important; }
body.rm :is(.rm-entry-content, .rm-prose) .is-style-outline > a.wp-block-button__link { background: transparent !important; border-color: var(--slate) !important; color: var(--slate) !important; }
body.rm :is(.rm-entry-content, .rm-prose) .is-style-outline > a.wp-block-button__link:hover { background: var(--slate) !important; color: var(--on-dark) !important; }
body.rm .wp-block-themeisle-blocks-button a * { color: inherit !important; }

/* ==========================================================================================
   Elementor page building blocks: .rm-page (outer container), .rm-band (full-width section with the
   centred column), .rm-title-1 / .rm-title-2 (heading widgets), .rm-split (two columns).
   ========================================================================================== */
body.rm .rm-page { gap: 0 !important; padding: 0 !important; }
body.rm .rm-band { display: flex !important; flex-direction: column; gap: var(--space-6); padding: var(--space-10) var(--band-x) !important; }
body.rm .rm-band--alt { background: var(--surface-alt); }
body.rm .rm-band--flush { padding-top: 0 !important; }
body.rm .rm-band :is(.elementor-widget, .elementor-widget-container) { margin: 0; }
body.rm .rm-band .elementor-widget-text-editor p { margin: 0 0 var(--space-3); }
body.rm .rm-band .elementor-widget-text-editor > :last-child, body.rm .rm-band .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
body.rm .rm-band .rm-eyebrow { margin: 0; }
body.rm .rm-head { display: flex !important; flex-direction: column; gap: var(--space-3); max-width: var(--measure); padding: 0 !important; }
body.rm .rm-title-1 .elementor-heading-title { font-family: var(--font-display); font-weight: 600; font-size: 40px; line-height: 46px; letter-spacing: -0.005em; color: var(--ink); margin: 0; text-wrap: balance; }
body.rm .rm-title-2 .elementor-heading-title { font-family: var(--font-display); font-weight: 600; font-size: 32px; line-height: 38px; color: var(--ink); margin: 0; text-wrap: balance; }
body.rm .rm-title-3 .elementor-heading-title { font-family: var(--font-display); font-weight: 600; font-size: 21px; line-height: 27px; color: var(--ink); margin: 0; }
body.rm .rm-band .rm-lead, body.rm .rm-band .rm-lead p { font-size: 18px; line-height: 29px; color: var(--ink-body); max-width: var(--measure); }
body.rm .rm-split { display: grid !important; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-9); align-items: center; padding: 0 !important; }
body.rm .rm-split--rev { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: start; }
body.rm .rm-stack { display: flex !important; flex-direction: column; gap: var(--space-5); padding: 0 !important; }
body.rm .rm-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: center; }
body.rm .rm-ticks { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
body.rm .rm-ticks li { position: relative; margin: 0; padding-left: 30px; font-size: 16px; line-height: 24px; color: var(--ink-body); }
body.rm .rm-ticks li::before { content: ""; position: absolute; left: 0; top: 2px; width: 20px; height: 20px; border-radius: 50%; background: var(--sage-light) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23576978' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") no-repeat center / 12px; }
body.rm .rm-ticks--small li { font-size: 15px; line-height: 22px; }
body.rm .rm-media-round img { display: block; width: 100%; height: auto; border-radius: var(--radius-xl); }
@media (max-width: 1024px) {
	body.rm .rm-band { padding-block: var(--space-9) !important; }
	body.rm .rm-split, body.rm .rm-split--rev { gap: var(--space-7); }
}
@media (max-width: 767px) {
	body.rm .rm-band { padding-block: var(--space-8) !important; gap: var(--space-5); }
	body.rm .rm-band--flush { padding-top: 0 !important; }
	body.rm .rm-title-1 .elementor-heading-title { font-size: 32px; line-height: 38px; }
	body.rm .rm-title-2 .elementor-heading-title { font-size: 26px; line-height: 32px; }
	body.rm .rm-band .rm-lead, body.rm .rm-band .rm-lead p { font-size: 17px; line-height: 27px; }
	body.rm .rm-split, body.rm .rm-split--rev { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Homepage ---------- */
body.rm .rm-home-hero { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: var(--space-9); padding-block: var(--space-9) var(--space-10) !important; background: var(--surface-alt); }
body.rm .rm-home-hero .rm-title-1 .elementor-heading-title { font-size: 46px; line-height: 52px; }
body.rm .rm-home-slogan p { margin: 0; font-family: var(--font-display); font-size: 20px; line-height: 28px; font-weight: 500; color: var(--slate); }
body.rm .rm-home-hero__media img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-xl); }
body.rm .rm-trustline { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); font-size: 14px; line-height: 20px; font-weight: 600; color: var(--ink-body); }
body.rm .rm-trustline li { display: flex; align-items: center; gap: var(--space-2); margin: 0; }
body.rm .rm-trustline li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--sage); flex: 0 0 auto; }
body.rm .rm-home-hero .rm-trustline { flex-direction: column; align-items: flex-start; } /* Sam 27 Oct: one per line in the hero */
/* Sam 27 Oct: links inside running text must look like links (e.g. 'Semble' on /booking/). */
body.rm .elementor-widget-text-editor :is(p, li) a:not(.rm-btn):not(.rm-card__link) { text-decoration-line: underline; text-decoration-thickness: 1px; text-underline-offset: 0.15em; }

body.rm .rm-service-tiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); }
body.rm .rm-service-tiles li { margin: 0; display: flex; }
body.rm .rm-service-tile { width: 100%; aspect-ratio: 4 / 3; padding: var(--space-5); color: var(--on-dark); }
body.rm .rm-service-tile__text { display: flex; flex-direction: column; gap: 4px; }
body.rm .rm-service-tile__title { font-family: var(--font-display); font-size: 24px; line-height: 30px; font-weight: 600; color: var(--on-dark); }
body.rm .rm-service-tile__sub { font-size: 14px; line-height: 20px; color: var(--on-dark-muted); }
body.rm a.rm-service-tile:focus-visible { outline: 3px solid var(--slate); outline-offset: 3px; }

body.rm .rm-promo { display: flex; align-items: center; justify-content: space-between; gap: var(--space-6); flex-wrap: wrap; padding: var(--pad-band); border-radius: var(--radius-xl); background: var(--sage); color: var(--ink); }
body.rm .rm-promo__copy { display: flex; flex-direction: column; gap: 6px; max-width: 680px; }
body.rm .rm-promo p { margin: 0; }
body.rm .rm-promo .rm-eyebrow { color: var(--ink); }
body.rm .rm-promo__title { font-family: var(--font-display); font-size: 24px; line-height: 30px; font-weight: 600; color: var(--ink); }
body.rm .rm-promo__text { font-size: 16px; line-height: 24px; color: var(--ink); }
body.rm .rm-about__media img { max-width: 440px; aspect-ratio: 4 / 5; object-fit: cover; }
body.rm .rm-head-row { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-4); flex-wrap: wrap; }
body.rm .rm-head-row h2 { margin: 0; font-family: var(--font-display); font-weight: 600; font-size: 32px; line-height: 38px; color: var(--ink); }
@media (max-width: 1024px) {
	body.rm .rm-home-hero { gap: var(--space-7); }
	body.rm .rm-home-hero .rm-title-1 .elementor-heading-title { font-size: 38px; line-height: 44px; }
	body.rm .rm-service-tile__title { font-size: 20px; line-height: 26px; }
	body.rm .rm-service-tile { padding: var(--space-4); }
}
@media (max-width: 900px) {
	body.rm .rm-home-hero { grid-template-columns: minmax(0, 1fr); padding-block: var(--space-6) var(--space-8) !important; }
	body.rm .rm-home-hero__media { order: -1; }
	body.rm .rm-home-hero__media img { aspect-ratio: 16 / 9; }
}
@media (max-width: 767px) {
	body.rm .rm-home-hero .rm-title-1 .elementor-heading-title { font-size: 32px; line-height: 38px; }
	body.rm .rm-home-slogan p { font-size: 18px; line-height: 26px; }
	body.rm .rm-service-tiles { grid-template-columns: minmax(0, 1fr); }
	body.rm .rm-service-tile { aspect-ratio: 16 / 9; }
	body.rm .rm-service-tile__title { font-size: 22px; line-height: 28px; }
	body.rm .rm-promo { padding: var(--pad-band-sm); }
	body.rm .rm-promo__title { font-size: 21px; line-height: 27px; }
	body.rm .rm-about__media img { max-width: 100%; aspect-ratio: 4 / 3; object-position: 50% 25%; }
	body.rm .rm-head-row h2 { font-size: 26px; line-height: 32px; }
	body.rm .rm-actions .rm-btn { flex: 1 1 auto; }
}

/* ---------- Appointments (layout 2C): sticky sub-nav, cards, steps, fees, FAQ, booking panel ---------- */
body.rm .rm-subnav-sticky { position: sticky !important; top: 0; z-index: 40; padding: var(--space-3) var(--band-x) !important; background: rgba(255, 255, 255, .94); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); }
body.admin-bar .rm-subnav-sticky { top: 32px; }
@media (max-width: 782px) { body.admin-bar .rm-subnav-sticky { top: 0; } }
body.rm .rm-subnav-sticky .rm-subnav { box-shadow: none; }
body.rm .rm-subnav a:focus-visible { outline-offset: -2px; }
body.rm [id].rm-band { scroll-margin-top: 84px; }
body.admin-bar [id].rm-band { scroll-margin-top: 116px; }
body.rm .rm-price { font-family: var(--font-display); font-size: 30px; line-height: 36px; font-weight: 600; color: var(--ink); }
body.rm .rm-price small { font-family: var(--font-sans); font-size: 14px; font-weight: 600; color: var(--ink-muted); }
body.rm .rm-card__meta { display: flex; flex-wrap: wrap; gap: 6px; }
body.rm .rm-card__meta span { padding: 3px 10px; border-radius: var(--radius-pill); background: var(--sage-light); font-size: 13px; line-height: 18px; font-weight: 600; color: var(--ink); }
body.rm .rm-card--featured .rm-card__meta span { background: var(--surface); }
body.rm .rm-offer { gap: var(--space-3); }
body.rm .rm-offer .rm-ticks { margin: var(--space-2) 0 var(--space-3); }
body.rm .rm-offer .rm-card__title { font-size: 21px; }
body.rm .rm-offer__foot { margin-top: auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3); padding-top: var(--space-3); border-top: 1px solid var(--line); }
body.rm .rm-card--featured .rm-offer__foot { border-color: rgba(38,48,58,.15); }
body.rm .rm-offer__foot .rm-arrow-link { font-size: 14px; min-height: 0; }
body.rm .rm-steps__title { margin: 0; }
body.rm .rm-steps__text { margin: 0; }
body.rm .rm-good { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); }
body.rm .rm-good p { margin: 0; }
body.rm .rm-fees { width: 100%; border-collapse: collapse; background: var(--surface); border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-card); }
body.rm .rm-fees :is(th, td) { padding: var(--space-4) var(--space-5); border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; font-size: 16px; line-height: 24px; color: var(--ink-body); }
body.rm .rm-fees tr:last-child :is(th, td) { border-bottom: 0; }
body.rm .rm-fees thead th { background: var(--slate-deep); color: var(--on-dark); font-size: 13px; line-height: 18px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
body.rm .rm-fees tbody th { font-weight: 600; color: var(--ink); }
body.rm .rm-fees tbody th a { color: var(--slate); text-decoration: underline; text-decoration-color: var(--sage); text-decoration-thickness: 2px; text-underline-offset: 3px; }
body.rm .rm-fees .rm-fees__price { text-align: right; font-family: var(--font-display); font-size: 20px; font-weight: 600; color: var(--ink); white-space: nowrap; }
body.rm .rm-fees thead .rm-fees__price { font-family: var(--font-sans); font-size: 13px; color: var(--on-dark); }
body.rm .rm-note { margin: 0; font-size: 15px; line-height: 23px; color: var(--ink-muted); }
body.rm .rm-quotes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); margin: 0; }
body.rm .rm-quote { margin: 0; padding: var(--pad-card); border-radius: var(--radius-xl); background: var(--surface); border: 1px solid var(--line); display: flex; flex-direction: column; gap: var(--space-3); }
body.rm .rm-quote blockquote { margin: 0; padding: 0; background: none; font-family: var(--font-display); font-size: 18px; line-height: 27px; font-weight: 500; color: var(--ink); }
body.rm .rm-quote blockquote::before { content: "\201C"; display: block; height: 22px; font-size: 48px; line-height: 44px; color: var(--sage); }
body.rm .rm-quote figcaption { font-size: 14px; line-height: 20px; color: var(--ink-muted); }
body.rm .rm-faq-list { max-width: 860px; border-top: 1px solid var(--line); }
body.rm .rm-faq-item { border-bottom: 1px solid var(--line); }
body.rm .rm-faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); min-height: 60px; padding: var(--space-4) 0; cursor: pointer; list-style: none; font-family: var(--font-display); font-size: 18px; line-height: 25px; font-weight: 600; color: var(--ink); }
body.rm .rm-faq-item summary::-webkit-details-marker { display: none; }
body.rm .rm-faq-item summary::after { content: ""; flex: 0 0 auto; width: 9px; height: 9px; margin-right: 6px; border-right: 2px solid var(--slate); border-bottom: 2px solid var(--slate); transform: translateY(-3px) rotate(45deg); transition: transform .15s; }
body.rm .rm-faq-item[open] summary::after { transform: translateY(2px) rotate(-135deg); }
body.rm .rm-faq-item summary:hover { color: var(--slate); }
body.rm .rm-faq-item__body { padding: 0 0 var(--space-5); max-width: var(--measure); }
body.rm .rm-faq-item__body p { margin: 0 0 var(--space-3); font-size: 16px; line-height: 26px; color: var(--ink-body); }
body.rm .rm-faq-item__body p:last-child { margin-bottom: 0; }
body.rm .rm-faq-item__body a { color: var(--slate); font-weight: 600; text-decoration: underline; text-decoration-color: var(--sage); text-decoration-thickness: 2px; text-underline-offset: 3px; }
body.rm .rm-book-panel { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--space-6) var(--space-9); padding: var(--pad-band); border-radius: var(--radius-xl); background: var(--sage); color: var(--ink); }
body.rm .rm-book-panel h2 { margin: 0 0 var(--space-2); font-family: var(--font-display); font-size: 32px; line-height: 38px; font-weight: 600; color: var(--ink); }
body.rm .rm-book-panel p { margin: 0; font-size: 17px; line-height: 27px; color: var(--ink); }
body.rm .rm-book-panel .rm-actions { justify-content: flex-end; }
body.rm .rm-book-panel a:not(.rm-btn) { color: var(--ink); font-weight: 700; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
@media (max-width: 1024px) {
	body.rm .rm-offers.rm-grid-3, body.rm .rm-quotes { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	body.rm .rm-good { grid-template-columns: minmax(0, 1fr); }
	body.rm .rm-book-panel { grid-template-columns: minmax(0, 1fr); }
	body.rm .rm-book-panel .rm-actions { justify-content: flex-start; }
}
@media (max-width: 767px) {
	body.rm .rm-offers.rm-grid-3, body.rm .rm-quotes { grid-template-columns: minmax(0, 1fr); }
	body.rm .rm-subnav-sticky { padding-inline: 0 !important; }
	body.rm .rm-subnav-sticky .rm-subnav { border-radius: 0; border-inline: 0; padding-inline: var(--space-4); scroll-padding-inline: var(--space-4); }
	body.rm .rm-subnav a { padding: 10px 14px; font-size: 14px; }
	body.rm .rm-fees :is(th, td) { padding: var(--space-3) var(--space-4); font-size: 15px; }
	body.rm .rm-fees .rm-fees__time { display: none; }
	body.rm .rm-book-panel { padding: var(--pad-band-sm); }
	body.rm .rm-book-panel h2 { font-size: 26px; line-height: 32px; }
	body.rm .rm-faq-item summary { font-size: 17px; }
}
@media (prefers-reduced-motion: reduce) { body.rm .rm-faq-item summary::after { transition: none; } }

/* ---------- Booking page: the Semble booking form ---------- */
body.rm .rm-booking-frame { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-xl); box-shadow: var(--shadow-card); overflow: hidden; }
body.rm .rm-booking-frame iframe { display: block; width: 100%; height: 820px; border: 0; }
body.rm .rm-breadcrumb--page { margin: 0; }
@media (max-width: 767px) { body.rm .rm-booking-frame { border-radius: var(--radius-md); } body.rm .rm-booking-frame iframe { height: 900px; } }
/* ---------- Homepage hero: slogan over the photo (2 Oct). Real <img>, live text on top. ---------- */
body.rm .rm-home-hero .rm-home-hero__media { position: relative !important; display: block !important; padding: 0 !important; border-radius: var(--radius-xl); overflow: hidden; isolation: isolate; }
body.rm .rm-home-hero__media .rm-home-hero__img, body.rm .rm-home-hero__media .rm-home-hero__img .elementor-widget-container { width: 100%; margin: 0; }
body.rm .rm-home-hero__media img { border-radius: 0; }
body.rm .rm-home-hero__media::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(195deg, rgba(38,48,58,.72) 0%, rgba(38,48,58,.38) 40%, rgba(38,48,58,0) 68%); }
body.rm .rm-home-hero .rm-hero-overlay { position: absolute !important; top: 0; left: 0; right: 0; z-index: 2; width: auto !important; margin: 0; padding: var(--space-7) var(--space-7) 0; text-align: right; }
body.rm .rm-home-hero .rm-hero-overlay p { margin: 0; font-family: var(--font-display); font-size: 26px; line-height: 34px; font-weight: 600; letter-spacing: -0.005em; color: var(--on-dark); text-shadow: 0 1px 12px rgba(0,0,0,.35); text-wrap: balance; }
@media (max-width: 1024px) {
	body.rm .rm-home-hero .rm-hero-overlay { padding: var(--space-5) var(--space-5) 0; }
	body.rm .rm-home-hero .rm-hero-overlay p { font-size: 21px; line-height: 28px; }
}
@media (max-width: 900px) {
	body.rm .rm-home-hero .rm-hero-overlay { padding: var(--space-6) var(--space-6) 0; }
	body.rm .rm-home-hero .rm-hero-overlay p { font-size: 26px; line-height: 34px; }
}
@media (max-width: 767px) {
	body.rm .rm-home-hero__media img { aspect-ratio: 3 / 2 !important; }
	body.rm .rm-home-hero__media::after { background: linear-gradient(195deg, rgba(38,48,58,.75) 0%, rgba(38,48,58,.45) 45%, rgba(38,48,58,0) 80%); }
	body.rm .rm-home-hero .rm-hero-overlay { padding: var(--space-4) 18px 0; }
	body.rm .rm-home-hero .rm-hero-overlay p { font-size: 18px; line-height: 25px; }
}
@media (max-width: 400px) {
	body.rm .rm-home-hero .rm-hero-overlay p { font-size: 16px; line-height: 22px; }
}
/* ---------- 2 Oct: Elementor containers never wrap ----------
   Elementor sets flex-wrap: wrap on every container at mobile width (--flex-wrap-mobile). A wrapping
   column container measures its children shrink-to-fit before stretching them, so anything sized by
   its width (aspect-ratio tiles, 16:9 images) is measured too short and the next section overlaps it
   (the homepage talks promo sat on the last service tile). All our containers are vertical stacks. */
body.rm .e-con[class*="rm-"] { flex-wrap: nowrap !important; }
/* ==========================================================================================
   2 Oct 2026, Chris feedback round 2: full-width home hero, one column width everywhere,
   /blog topic tiles + latest posts, pagination spacing, newsletter form in the strip.
   ========================================================================================== */

/* ---------- Home hero: full-width photo like the original site, copy over it ---------- */
@media (min-width: 901px) {
	body.rm .rm-home-hero { position: relative; display: flex !important; flex-direction: column; justify-content: center; align-items: flex-start; gap: 0; min-height: clamp(560px, 44vw, 660px); padding-block: var(--space-10) !important; background: var(--slate-deep); overflow: hidden; isolation: isolate; }
	body.rm .rm-home-hero .rm-home-hero__media { position: absolute !important; inset: 0; z-index: 0; width: 100% !important; height: 100%; border-radius: 0; }
	body.rm .rm-home-hero__media .rm-home-hero__img, body.rm .rm-home-hero__media .rm-home-hero__img .elementor-widget-container { height: 100%; }
	body.rm .rm-home-hero__media img { width: 100%; height: 100% !important; aspect-ratio: auto !important; object-fit: cover; object-position: 50% 60%; border-radius: 0; }
	body.rm .rm-home-hero__media::after { background: linear-gradient(90deg, rgba(38,48,58,.88) 0%, rgba(38,48,58,.74) 32%, rgba(38,48,58,.3) 60%, rgba(38,48,58,.08) 100%), linear-gradient(200deg, rgba(38,48,58,.6) 0%, rgba(38,48,58,0) 42%); }
	body.rm .rm-home-hero .rm-home-hero__copy { position: relative; z-index: 2; width: min(600px, 52%) !important; max-width: 600px; }
	body.rm .rm-home-hero .rm-hero-overlay { top: var(--space-9); left: auto; right: var(--band-x); width: min(540px, 40%) !important; padding: 0; }
	body.rm .rm-home-hero .rm-home-hero__copy .elementor-heading-title { color: var(--on-dark); }
	body.rm .rm-home-hero .rm-home-hero__copy .rm-eyebrow { color: var(--sage); }
	body.rm .rm-home-hero .rm-home-hero__copy .rm-lead, body.rm .rm-home-hero .rm-home-hero__copy .rm-lead p { color: #e9eef2; }
	body.rm .rm-home-hero .rm-home-hero__copy .rm-lead a { color: var(--on-dark); text-decoration-color: var(--sage); }
	body.rm .rm-home-hero .rm-home-hero__copy .rm-lead a:hover { text-decoration-color: var(--on-dark); }
	body.rm .rm-home-hero .rm-trustline li { color: var(--on-dark); }
	body.rm .rm-home-hero .rm-btn--outline { border-color: var(--on-dark); color: var(--on-dark); }
	body.rm .rm-home-hero .rm-btn--outline:hover { background: var(--on-dark); color: var(--ink); }
	body.rm .rm-home-hero :focus-visible { outline-color: var(--on-dark); }
}
@media (min-width: 901px) and (max-width: 1199px) {
	body.rm .rm-home-hero .rm-hero-overlay p { font-size: 21px; line-height: 28px; }
}
@media (max-width: 900px) {
	body.rm .rm-home-hero { padding-top: 0 !important; }
	body.rm .rm-home-hero .rm-home-hero__media { margin-inline: calc(-1 * var(--band-x)); width: auto !important; border-radius: 0; }
}

/* ---------- One column width everywhere (the header's 1184px column) ---------- */
body.rm .rm-post-layout, body.rm .rm-archive, body.rm .rm-404 { max-width: none; margin: 0; padding-inline: var(--band-x) !important; }
body.rm .rm-post-main { max-width: none; }
body.rm .rm-404 > * { max-width: var(--measure); }
body.rm .rm-entry-content:not(.rm-prose) > :not(.alignleft, .alignright) { margin-inline: 0; }
body.rm .rm-entry-content:not(.rm-prose) > :is(.alignwide, .wp-block-columns, .wp-block-group, .wp-block-table, .wp-block-media-text, .wp-block-gallery, .wp-block-cover, .wp-block-themeisle-blocks-advanced-columns, .wp-block-latest-posts, .wp-block-embed, .wp-block-image.aligncenter) { max-width: none; }
body.rm .rm-page-head { margin-inline: 0; }

/* ---------- Pagination: space above it wherever it follows a grid ---------- */
body.rm .rm-post-grid + .rm-pagination, body.rm .rm-blog-posts .rm-pagination { margin-top: var(--space-9); }
body.rm .rm-pagination .page-numbers.dots { border-color: transparent; }

/* ---------- Blog: topic tiles (whole tile is the link) ---------- */
body.rm .rm-topic-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); margin: 0; padding: 0; list-style: none; }
body.rm .rm-topic-tiles li { margin: 0; padding: 0; }
body.rm a.rm-topic-tile { position: relative; display: flex; align-items: flex-end; justify-content: center; aspect-ratio: 3 / 2; border-radius: var(--radius-md); overflow: hidden; isolation: isolate; background: var(--slate); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
body.rm a.rm-topic-tile img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform .5s ease; }
body.rm a.rm-topic-tile::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(0,0,0,.7) 0%, rgba(0,0,0,0) 65%); transition: background .2s ease; }
body.rm .rm-topic-tile__title { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: var(--space-5) var(--space-4); text-align: center; font-family: var(--font-display); font-weight: 600; font-size: 22px; line-height: 28px; color: var(--on-dark); text-shadow: 0 1px 6px rgba(0,0,0,.45); }
body.rm .rm-topic-tile__more { font-family: var(--font-sans); font-size: 14px; line-height: 20px; font-weight: 600; color: var(--on-dark); opacity: .9; }
body.rm a.rm-topic-tile:hover, body.rm a.rm-topic-tile:focus-visible { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(38,48,58,.22); }
body.rm a.rm-topic-tile:hover img, body.rm a.rm-topic-tile:focus-visible img { transform: scale(1.05); }
body.rm a.rm-topic-tile:hover::after { background: linear-gradient(0deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.05) 70%); }
body.rm a.rm-topic-tile:focus-visible { outline: 2px solid var(--slate); outline-offset: 3px; }
@media (max-width: 1024px) { body.rm .rm-topic-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { body.rm .rm-topic-tiles { grid-template-columns: minmax(0, 1fr); } body.rm a.rm-topic-tile { aspect-ratio: 16 / 9; } }
@media (prefers-reduced-motion: reduce) { body.rm a.rm-topic-tile, body.rm a.rm-topic-tile img { transition: none; } body.rm a.rm-topic-tile:hover { transform: none; } body.rm a.rm-topic-tile:hover img { transform: none; } }

/* Blog latest posts: same cards and pagination as the topic pages */
body.rm .rm-blog-posts { display: flex; flex-direction: column; gap: var(--space-6); }
body.rm .rm-blog-posts__head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-4); flex-wrap: wrap; }
body.rm .rm-blog-posts__head h2 { margin: 0; font-family: var(--font-display); font-weight: 600; font-size: 32px; line-height: 38px; color: var(--ink); }
body.rm .rm-blog-posts .rm-post-grid { row-gap: var(--space-8); }
@media (max-width: 767px) { body.rm .rm-blog-posts__head h2 { font-size: 26px; line-height: 32px; } }

/* ---------- Newsletter strip: the real sign-up form (WPForms 1000, its own CSS is off) ---------- */
body.rm .rm-signup { align-items: flex-end; }
body.rm .rm-signup__copy { flex: 1 1 260px; align-self: flex-start; }
body.rm .rm-signup__form { flex: 2 1 560px; min-width: 0; }
body.rm .rm-signup .wpforms-container { margin: 0; }
body.rm .rm-signup .wpforms-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; }
body.rm .rm-signup .wpforms-field-container { display: flex; flex-wrap: wrap; gap: 10px; flex: 1 1 420px; min-width: 0; }
body.rm .rm-signup .wpforms-field { padding: 0; margin: 0; min-width: 0; }
body.rm .rm-signup .wpforms-field-name { flex: 2 1 280px; }
body.rm .rm-signup .wpforms-field-email { flex: 1.4 1 200px; display: flex; flex-direction: column; gap: 4px; }
body.rm .rm-signup fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
body.rm .rm-signup legend.wpforms-field-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
body.rm .rm-signup .wpforms-field-row { display: flex; gap: 10px; }
body.rm .rm-signup .wpforms-field-row-block { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column-reverse; gap: 4px; }
body.rm .rm-signup .wpforms-field-label, body.rm .rm-signup .wpforms-field-sublabel { display: block; margin: 0; font-size: 13px; line-height: 18px; font-weight: 600; color: var(--ink-muted); }
body.rm .rm-signup .wpforms-required-label { color: var(--ink-muted); }
body.rm .rm-signup input[type="text"], body.rm .rm-signup input[type="email"] { width: 100%; height: 48px; box-sizing: border-box; border: 1px solid var(--line-control); border-radius: var(--radius-btn); padding: 0 14px; font: inherit; font-size: 15px; color: var(--ink); background: var(--surface); }
body.rm .rm-signup input:focus-visible { outline: 2px solid var(--slate); outline-offset: 1px; border-color: var(--slate); }
body.rm .rm-signup .wpforms-submit-container { flex: 0 0 auto; padding: 0; margin: 0; }
body.rm .rm-signup button.wpforms-submit, body.rm .rm-signup button.wpforms-submit:focus { height: 48px; padding: 0 var(--space-5); border: 0; border-radius: var(--radius-btn); background: var(--slate); color: var(--on-dark); font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; white-space: nowrap; }
body.rm .rm-signup button.wpforms-submit:hover { background: var(--slate-deep); color: var(--on-dark); }
body.rm .rm-signup .wpforms-error, body.rm .rm-signup label.wpforms-error, body.rm .rm-signup em.wpforms-error { display: block; margin-top: 4px; font-size: 13px; line-height: 18px; font-style: normal; font-weight: 600; color: var(--error); }
body.rm .rm-signup input.wpforms-error { border-color: var(--error); }
body.rm .rm-signup .wpforms-confirmation-container-full, body.rm .rm-signup .wpforms-confirmation-container { margin: 0; padding: var(--space-3) var(--space-4); border-radius: var(--radius-btn); background: var(--surface); border: 1px solid var(--line); color: var(--ink); }
body.rm .rm-signup .wpforms-confirmation-container-full p { margin: 0; }
body.rm .rm-signup .wpforms-submit-spinner { margin-left: 8px; vertical-align: middle; }
@media (max-width: 767px) {
	body.rm .rm-signup__form, body.rm .rm-signup .wpforms-field-container, body.rm .rm-signup .wpforms-field-name, body.rm .rm-signup .wpforms-field-email { flex-basis: 100%; }
	body.rm .rm-signup .wpforms-submit-container, body.rm .rm-signup button.wpforms-submit { width: 100%; }
}body.rm .rm-signup .wpforms-container, body.rm .rm-signup .wpforms-form { flex: 1 1 auto; width: 100%; min-width: 0; }
body.rm .rm-signup .wpforms-field-row-block, body.rm .rm-signup .wpforms-field-row, body.rm .rm-signup .wpforms-field { padding: 0 !important; margin: 0 !important; }
body.rm .rm-signup .wpforms-form button.wpforms-submit { background: var(--slate) !important; background-color: var(--slate) !important; color: var(--on-dark) !important; border: 0 !important; border-radius: var(--radius-btn) !important; box-shadow: none !important; }
body.rm .rm-signup .wpforms-form button.wpforms-submit:hover, body.rm .rm-signup .wpforms-form button.wpforms-submit:focus-visible { background: var(--slate-deep) !important; background-color: var(--slate-deep) !important; }
body.rm .rm-signup .wpforms-field-row::before, body.rm .rm-signup .wpforms-field-row::after, body.rm .rm-signup .wpforms-field-container::before, body.rm .rm-signup .wpforms-field-container::after { content: none !important; display: none !important; }

/* ---------- Footer: CQC 'Regulated by' badge (official graphic, never resized below 135px, links to cqc.org.uk) ---------- */
body.rm .rm-footer__cqc { margin-left: auto; display: flex; flex-direction: column; align-items: flex-end; gap: var(--space-2); flex: 0 0 auto; }
body.rm .rm-cqc-badge { display: block; line-height: 0; }
body.rm .rm-cqc-badge img { width: 135px !important; height: 64px !important; max-width: none; border-radius: 0; display: block; }
body.rm .rm-footer .rm-footer__cqc-link { font-size: 15px; line-height: 28px; color: var(--on-dark-muted); text-decoration: none; }
body.rm .rm-footer .rm-footer__cqc-link:hover { color: var(--on-dark); text-decoration: underline; }
body.rm .rm-footer .rm-cqc-badge:focus-visible { outline: 2px solid var(--on-dark); outline-offset: 3px; }
@media (max-width: 1024px) { body.rm .rm-footer__cqc { margin-left: 0; align-items: flex-start; } }

/* Header: breathing room above and below the logo (2 Oct, Chris) */
body.rm .rm-site-header { padding-block: var(--space-4); }
@media (max-width: 1000px) { body.rm .rm-site-header { padding-block: var(--space-3); } }

/* ---------- t14 page rebuilds ---------- */
/* About: photo row under the yoga section */
body.rm .rm-about-gallery { margin-top: var(--space-7); }
body.rm .rm-about-gallery figure { margin: 0; }
body.rm .rm-about-gallery img { aspect-ratio: 1 / 1; object-fit: cover; }
/* Long-form text in Elementor bands keeps the reading measure */
body.rm .rm-band > .elementor-widget-text-editor.rm-prose { max-width: var(--measure, 720px); }
body.rm .rm-band > .elementor-widget-text-editor.rm-prose p + p { margin-top: var(--space-4); }

/* Service pages: the price card stays in view beside a long list on desktop */
@media (min-width: 1025px) {
	body.rm .rm-split--rev > .elementor-widget-html:has(> .elementor-widget-container > .rm-offer, > .rm-offer) { position: sticky; top: 112px; }
}

/* Yoga page */
body.rm .rm-yoga-curriculum { margin: var(--space-9) 0 0; }
body.rm .rm-yoga-curriculum img { display: block; width: 100%; height: auto; border-radius: var(--radius-xl); border: 1px solid var(--line); }
body.rm .rm-yoga-video { margin-top: var(--space-7) !important; gap: var(--space-2) !important; max-width: 880px; }
body.rm .rm-yoga-video .elementor-video, body.rm .rm-yoga-video iframe { border-radius: var(--radius-xl); }
body.rm .rm-quotes--2 { margin-top: var(--space-7); grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)) !important; }
body.rm .rm-refs { font-size: 15px; line-height: 24px; padding-left: 1.4em; }
body.rm .rm-refs li + li { margin-top: var(--space-2); }
body.rm .rm-prose sup a { text-decoration: none; }

/* Forms on pages (WPForms inside .rm-form-card): design-system fields */
body.rm .rm-form-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-xl); box-shadow: var(--shadow-card); padding: var(--pad-card) !important; }
body.rm .rm-band--alt .rm-form-card { background: #fff; }
body.rm .rm-form-card > h2, body.rm .rm-form-card > h3 { margin: 0 0 var(--space-2); font: 600 21px/27px var(--font-display); color: var(--ink); }
body.rm .rm-form-card > p { margin: 0 0 var(--space-5); }
body.rm .rm-form-card .wpforms-container { margin: 0 !important; }
body.rm .rm-form-card .wpforms-field { padding: 0 0 var(--space-5) !important; }
body.rm .rm-form-card .wpforms-field-label { font: 600 15px/20px var(--font-sans) !important; color: var(--ink) !important; margin: 0 0 var(--space-2) !important; }
body.rm .rm-form-card .wpforms-field-sublabel { font-size: 13px !important; color: var(--ink-muted) !important; }
body.rm .rm-form-card input[type=text], body.rm .rm-form-card input[type=email], body.rm .rm-form-card textarea { width: 100% !important; max-width: none !important; min-height: 48px; padding: 10px 16px !important; border: 1px solid var(--line-control) !important; border-radius: var(--radius-btn) !important; background: #fff !important; font: 400 16px/24px var(--font-sans) !important; color: var(--ink) !important; box-shadow: none !important; }
body.rm .rm-form-card textarea { min-height: 140px; }
body.rm .rm-form-card input:focus, body.rm .rm-form-card textarea:focus { outline: 2px solid var(--slate) !important; outline-offset: 1px; border-color: var(--slate) !important; }
body.rm .rm-form-card .wpforms-field-row { max-width: none !important; }
body.rm .rm-form-card .wpforms-field-checkbox li { display: flex; gap: var(--space-2); align-items: flex-start; }
body.rm .rm-form-card .wpforms-field-checkbox input { width: 20px; height: 20px; accent-color: var(--slate); margin-top: 4px; }
body.rm .rm-form-card .wpforms-submit-container { padding: 0 !important; }
body.rm .rm-form-card button.wpforms-submit { min-height: 48px; padding: 12px 24px !important; border: 0 !important; border-radius: var(--radius-btn) !important; background: var(--slate) !important; color: #fff !important; font: 700 15px/20px var(--font-sans) !important; cursor: pointer; }
body.rm .rm-form-card button.wpforms-submit:hover, body.rm .rm-form-card button.wpforms-submit:focus-visible { background: var(--ink) !important; }
body.rm .rm-form-card .wpforms-confirmation-container-full { background: var(--sage-light) !important; border: 0 !important; border-radius: var(--radius-btn); color: var(--ink) !important; padding: var(--space-5) !important; }
/* Research studies */
body.rm .rm-studies { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: var(--space-5); }
body.rm .rm-studies .rm-card { height: 100%; display: flex; flex-direction: column; gap: var(--space-3); }
body.rm .rm-studies .rm-arrow-link { margin-top: auto; }
body.rm .rm-media-plain img { display: block; max-width: 100%; height: auto; border-radius: var(--radius-img, 10px); }
/* Simple text pages (legal, confirmations) */
body.rm .rm-legal .rm-prose h2 { font: 600 24px/30px var(--font-display); color: var(--ink); margin: var(--space-8) 0 var(--space-3); }
body.rm .rm-legal .rm-prose h3 { font: 600 19px/26px var(--font-display); color: var(--ink); margin: var(--space-6) 0 var(--space-2); }
body.rm .rm-legal .rm-prose table { width: 100%; border-collapse: collapse; font-size: 15px; display: block; overflow-x: auto; }
body.rm .rm-legal .rm-prose th, body.rm .rm-legal .rm-prose td { border: 1px solid var(--line); padding: 8px 10px; text-align: left; vertical-align: top; }
/* FAQs page */
body.rm .rm-faq-img img { aspect-ratio: 4 / 3; object-fit: cover; }
body.rm .rm-faq-note { max-width: var(--measure, 720px); background: #fff; }
body.rm .rm-prose .rm-title-3, body.rm .elementor-widget-text-editor .rm-title-3 { margin: var(--space-6) 0 var(--space-2); }

/* MemberPress pages: forms in the design-system card */
body.rm .rm-member__card { max-width: 560px; }
body.rm .rm-member .rm-account-wide, body.rm .rm-member__card:has(#mepr-account-nav) { max-width: none; }
body.rm .rm-member .mp-form-row { margin-bottom: var(--space-5); }
body.rm .rm-member .mp-form-label label, body.rm .rm-member__card label { font: 600 15px/20px var(--font-sans); color: var(--ink); }
body.rm .rm-member input[type=text], body.rm .rm-member input[type=email], body.rm .rm-member input[type=password], body.rm .rm-member select { width: 100% !important; max-width: none !important; min-height: 48px; padding: 10px 16px !important; border: 1px solid var(--line-control) !important; border-radius: var(--radius-btn) !important; background: #fff !important; font: 400 16px/24px var(--font-sans) !important; color: var(--ink) !important; box-shadow: none !important; }
body.rm .rm-member input:focus, body.rm .rm-member select:focus { outline: 2px solid var(--slate) !important; outline-offset: 1px; }
body.rm .rm-member input[type=submit], body.rm .rm-member .mepr-submit, body.rm .rm-member button[type=submit] { min-height: 48px; padding: 12px 24px !important; border: 0 !important; border-radius: var(--radius-btn) !important; background: var(--slate) !important; color: #fff !important; font: 700 15px/20px var(--font-sans) !important; cursor: pointer; }
body.rm .rm-member input[type=submit]:hover, body.rm .rm-member .mepr-submit:hover { background: var(--ink) !important; }
body.rm .rm-member input[type=checkbox] { width: 20px; height: 20px; accent-color: var(--slate); vertical-align: -4px; margin-right: 6px; }
body.rm .rm-member__card .mepr-login-actions, body.rm .rm-member__card .mepr-login-actions a { margin-top: var(--space-4); }
body.rm .rm-site-main:has(> .rm-member) { padding-top: 0 !important; }

/* Pagination centred under the grids (Chris, 2 Oct) */
body.rm .rm-pagination .nav-links { justify-content: center; }

/* MemberPress product (sign-up) pages: description as prose, the sign-up form as a card */
body.rm .rm-member__product { max-width: var(--measure, 720px); }
body.rm .rm-member__product .wp-block-image.alignright, body.rm .rm-member__product figure.alignright { float: right; width: min(42%, 280px); margin: 0 0 var(--space-5) var(--space-6); }
body.rm .rm-member__product figure img { border-radius: var(--radius-xl); }
body.rm .rm-member__product .mp_wrapper { clear: both; margin-top: var(--space-8); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-xl); box-shadow: var(--shadow-card); padding: var(--space-7); max-width: 560px; }
body.rm .rm-member__product .mepr_price { font: 600 21px/27px var(--font-display); color: var(--ink); margin-bottom: var(--space-5); }
@media (max-width: 767px) { body.rm .rm-member__product .mp_wrapper { padding: var(--space-5); } body.rm .rm-member__product figure.alignright, body.rm .rm-member__product .wp-block-image.alignright { float: none; width: auto; margin: 0 0 var(--space-5); } }

/* ---------- Elementor Pro forms (t27): design-system look ---------- */
body.rm .rm-eform .elementor-field-group { margin-bottom: var(--space-4); }
body.rm .rm-eform .elementor-field-label { font: 600 15px/20px var(--font-sans); color: var(--ink); margin-bottom: var(--space-2); }
body.rm .rm-eform .elementor-mark-required .elementor-field-label::after { color: var(--error, #b3261e); }
body.rm .rm-eform .elementor-field-textual { min-height: 48px; padding: 10px 16px; border: 1px solid var(--line-control); border-radius: var(--radius-btn); background: #fff; font: 400 16px/24px var(--font-sans); color: var(--ink); }
body.rm .rm-eform textarea.elementor-field-textual { min-height: 140px; }
body.rm .rm-eform .elementor-field-textual:focus { outline: 2px solid var(--slate); outline-offset: 1px; border-color: var(--slate); box-shadow: none; }
body.rm .rm-eform .elementor-field-type-acceptance .elementor-field-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
body.rm .rm-eform .elementor-field-subgroup .elementor-field-option { display: flex; gap: var(--space-2); align-items: flex-start; }
body.rm .rm-eform .elementor-field-subgroup input[type=checkbox] { width: 20px; height: 20px; margin-top: 3px; accent-color: var(--slate); }
body.rm .rm-eform .elementor-field-subgroup label { font-size: 15px; line-height: 24px; color: var(--ink-body); }
body.rm .rm-eform .elementor-button { min-height: 48px; padding: 12px 24px; border: 0; border-radius: var(--radius-btn); background: var(--slate) !important; color: #fff !important; font: 700 15px/20px var(--font-sans); width: auto; }
body.rm .rm-eform .elementor-button:hover, body.rm .rm-eform .elementor-button:focus-visible { background: var(--ink) !important; }
body.rm .rm-eform .e-form__buttons { justify-content: flex-start; }
body.rm .rm-eform .elementor-message { font-size: 15px; line-height: 24px; margin-top: var(--space-3); }
body.rm .rm-eform .elementor-message-success { background: var(--sage-light); color: var(--ink); border-radius: var(--radius-btn); padding: var(--space-3) var(--space-4); }
body.rm .rm-eform .elementor-message-success::before, body.rm .rm-eform .elementor-message-danger::before { display: none; }
body.rm .rm-guide-download { margin-top: var(--space-5); padding: var(--space-5); background: var(--sage-light); border-radius: var(--radius-btn); }
body.rm .rm-guide-download p { margin: 0 0 var(--space-4); color: var(--ink); }
/* Newsletter strip: one row on wide screens */
body.rm .rm-signup .rm-eform .elementor-field-group { margin-bottom: 0; }
body.rm .rm-signup .rm-eform .elementor-form-fields-wrapper { row-gap: var(--space-3); }
/* Chris 6 Nov: fields + button share one row whenever they fit, wrap otherwise (any screen width).
   The form column is a flex box, so the Elementor template must stretch to fill it. */
body.rm .rm-signup__form > .elementor { flex: 1 1 100%; min-width: 0; }
body.rm .rm-signup .rm-eform .elementor-form-fields-wrapper { flex-wrap: wrap; align-items: flex-end; }
body.rm .rm-signup .rm-eform .elementor-field-group { width: auto !important; flex: 1 1 130px; max-width: 200px !important; }
body.rm .rm-signup .rm-eform .elementor-field-type-email { flex: 1.6 1 220px; max-width: 340px !important; }
body.rm .rm-signup .rm-eform .elementor-field-type-submit { flex: 0 0 auto; max-width: none !important; }
/* Rare Turnstile challenge goes under the row, so it no longer forces the button onto its own line */
body.rm .rm-signup .rm-turnstile { order: 100; }
/* Turnstile box: only takes space when Cloudflare shows a challenge */
body.rm .rm-turnstile { width: 100%; padding: 0 calc(var(--e-form-gap, 10px) / 2); }
body.rm .rm-turnstile:not(:empty) iframe { margin-bottom: var(--space-3); }

/* Booking: Semble calendar left, info right (Chris, 2 Oct) */
@media (min-width: 1025px) {
	body.rm .rm-booking-split { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); }
	body.rm .rm-booking-aside { position: sticky; top: var(--space-6); }
}
body.rm .rm-booking-aside .rm-title-2 { font-size: 24px; line-height: 30px; }
/* Wellwoman hero: square photo */
body.rm .rm-media-square img { aspect-ratio: 1 / 1; object-fit: cover; max-width: 100%; }
/* Legal pages use the full page column (Chris, 2 Oct) */
body.rm .rm-legal .rm-band > .elementor-widget-text-editor.rm-prose { max-width: none; }

/* Blog post sidebar stays in view while reading (Chris, 2 Oct) */
@media (min-width: 1025px) {
	/* Blog post sidebar: sticky, no inner scroll box. If it is taller than the screen, rm-site.js (postAside) moves its 'top' so it scrolls with the page and sticks at its bottom edge (scrolling down) or top edge (scrolling up). */
	body.rm .rm-post-aside { align-self: start !important; position: sticky !important; top: var(--space-6); }
	body.admin-bar .rm-post-aside { top: calc(32px + var(--space-6)); }
}
/* MemberPress account tabs: same pill bar as the page sub-nav (Chris, 2 Oct) */
body.rm #mepr-account-nav { margin-bottom: var(--space-6); }
body.rm #mepr-account-nav ul { display: flex; gap: var(--space-1); align-items: center; list-style: none; margin: 0; padding: 6px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-pill); box-shadow: var(--shadow-card); overflow-x: auto; scrollbar-width: none; }
body.rm #mepr-account-nav li { margin: 0; padding: 0; list-style: none; }
body.rm #mepr-account-nav li::before, body.rm #mepr-account-nav li::marker { content: none; }
body.rm #mepr-account-nav a { display: inline-flex; align-items: center; padding: 10px var(--space-5); border-radius: var(--radius-pill); font: 600 15px/20px var(--font-sans); white-space: nowrap; color: var(--slate); text-decoration: none; }
body.rm #mepr-account-nav a:hover { background: var(--sage-light); color: var(--ink); }
body.rm #mepr-account-nav .mepr-active-nav-tab a { background: var(--slate); color: var(--on-dark, #fff); }
body.rm #mepr-account-nav li:last-child { margin-left: auto; }
body.rm #mepr-account-nav a:focus-visible { outline: 2px solid var(--slate); outline-offset: -2px; }
@media (max-width: 767px) { body.rm #mepr-account-nav a { padding: 10px 14px; font-size: 14px; } }
/* Inline instant search (search results page, 404): same field + results as the header overlay */
body.rm .rm-search--inline { max-width: 820px; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow-card); border-radius: var(--radius-xl); padding: var(--pad-card); gap: var(--space-5); }
body.rm .rm-search--inline .rm-search__field { padding-right: 6px; }
body.rm .rm-search--inline .rm-search__field input[type="search"] { border: 0; height: auto; padding: 0; background: transparent; box-shadow: none; outline: none; border-radius: 0; font-size: 18px; }
body.rm .rm-search--inline .rm-search__field .rm-btn { min-height: 0; height: 42px; padding: 0 var(--space-5); }
body.rm .rm-archive-head .rm-search--inline { margin-top: var(--space-5); }
body.rm .rm-404 .rm-search--inline { margin: var(--space-6) 0; }
/* 404: one quiet line of links instead of big buttons */
body.rm .rm-404__links { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-6); }
body.rm .rm-404__label { font: 700 12px/16px var(--font-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-muted); }
@media (max-width: 600px) { body.rm .rm-search--inline .rm-search__field .rm-btn { display: none; } }
/* Turnstile challenge (rarely shown) sits on its own line under the fields */
body.rm .rm-turnstile { flex: 0 0 100%; max-width: 100%; order: 98; }
body.rm .rm-eform .elementor-field-type-submit { order: 99; }
body.rm .rm-search--inline { width: 100%; box-sizing: border-box; }

/* Login: form left, 'New here?' courses right (Chris, 2 Oct) */
body.rm .rm-member__split { display: grid; grid-template-columns: minmax(0, 560px) minmax(0, 1fr); gap: var(--space-9); align-items: start; }
body.rm .rm-member__aside { display: flex; flex-direction: column; gap: var(--space-4); }
body.rm .rm-member__aside > p { margin: 0; }
body.rm .rm-member__course .rm-card__title a { color: var(--ink); text-decoration: none; }
body.rm .rm-member__course .rm-card__title a:hover { text-decoration: underline; }
@media (max-width: 1024px) { body.rm .rm-member__split { grid-template-columns: minmax(0, 1fr); gap: var(--space-7); } }
/* Inline search spans the full column (Chris, 2 Oct) */
body.rm .rm-search--inline { max-width: none; }
body.rm .rm-archive-head:has(.rm-search--inline) { max-width: none; }
body.rm .rm-archive-head .rm-search--inline { max-width: none; }
/* Footer: keep the legal links (T&C, Cookie Policy, Cookie settings) clear of the floating Book with Sam button (2 Oct 2026) */
body.rm .rm-footer .rm-footer__legal { padding-bottom: 88px; }
@media (max-width: 767px) { body.rm .rm-footer .rm-footer__legal { padding-bottom: 72px; } }

/* Archive head: topic chips use the full column (heading/intro stay at reading width), 9 Oct 2026 */
body.rm .rm-archive-head { max-width: none; }
body.rm .rm-archive-head > :not(.rm-chips):not(.rm-search--inline) { max-width: var(--measure); }

/* Nested tick lists: tick only, no default bullet (9 Oct) */
body.rm .rm-ticks ul, body.rm .rm-ticks ol { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
body.rm .rm-ticks li li::marker { content: none; }

/* HOME-05 (9 Oct): the 'How Sam can help' intro on one line on desktop (Sam). Wraps normally on small screens. */
body.rm .rm-home .rm-head, body.rm .rm-home .rm-head .rm-lead, body.rm .rm-home .rm-head .rm-lead p { max-width: none; }

/* GLOB-05 (9 Oct): clinic address + company details in the footer */
body.rm .rm-footer__company { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3) var(--space-7); margin-top: var(--space-7); padding-top: var(--space-5); border-top: 1px solid var(--slate-line); font-size: 14px; line-height: 21px; color: var(--on-dark-muted); }
body.rm .rm-footer__company p { margin: 0; }
body.rm .rm-footer__company strong { color: var(--on-dark); font-weight: 600; }
body.rm .rm-footer__company a { color: var(--on-dark-muted); }
body.rm .rm-footer__company a:hover { color: var(--on-dark); }
@media (max-width: 767px) { body.rm .rm-footer__company { grid-template-columns: minmax(0, 1fr); } }

/* About: section headings and text use the full page column, like the legal pages (Chris, 6 Nov 2026; replaces ABOUT-07's 820px heading width). */
body.rm .rm-about .rm-head, body.rm .rm-about .rm-head .rm-lead, body.rm .rm-about .rm-head .rm-lead p { max-width: none; }
body.rm .rm-about .rm-band > .elementor-widget-text-editor.rm-prose { max-width: none; }

/* Top menu items with a dropdown: the title is a link, the caret button opens the dropdown (9 Oct). Both halves read as one pill. */
body.rm .rm-nav__item.has-sub { display: flex; align-items: center; }
body.rm .rm-nav .rm-nav__link { border-radius: var(--radius-pill) 0 0 var(--radius-pill); padding-right: 4px; }
body.rm .rm-nav .rm-nav__toggle--caret, body.rm .rm-nav .rm-nav__toggle--caret:focus { border-radius: 0 var(--radius-pill) var(--radius-pill) 0; padding: var(--space-2) 12px var(--space-2) 6px; min-width: 32px; justify-content: center; }
body.rm .rm-nav__item.has-sub:hover > :is(.rm-nav__link, .rm-nav__toggle), body.rm .rm-nav__item.has-sub > [data-current="true"], body.rm .rm-nav__item.has-sub:has(> .rm-nav__toggle[aria-expanded="true"]) > .rm-nav__link { background: var(--sage-light); color: var(--ink); }
body.rm .rm-nav .rm-nav__toggle--caret:focus-visible, body.rm .rm-nav .rm-nav__link:focus-visible { outline: 2px solid var(--slate); outline-offset: 2px; }

body.rm .rm-faq-more { margin: var(--space-5) 0 0; }

/* APPT-03/27 (9 Oct): page heroes whose H1 should fit on one line on desktop. Heading may run to 960px; intro text stays at the 720px measure. */
body.rm .rm-head.rm-head--wide { max-width: 960px; }
body.rm .rm-head--wide .rm-lead, body.rm .rm-head--wide .rm-lead p { max-width: 860px; }

/* Header dropdown caret (9 Oct): the caret points up whenever the dropdown is showing, however it was opened; a dropdown closed with its caret stays closed while hovered (data-rm-closed, set by rm-site.js). */
@media (hover: hover) and (min-width: 1001px) {
	body.rm .rm-nav__item.has-sub:is(:hover, :has(:focus-visible)):not([data-rm-closed]) .rm-caret { transform: translateY(1px) rotate(-135deg); }
	body.rm .rm-nav .rm-nav__item.has-sub[data-rm-closed]:not(:has([aria-expanded="true"])) > .rm-dropdown { display: none; }
}

/* RES-02 resource-type dropdown CSS removed 6 Nov (dropdown gone since 16 Oct; its phone rule wrapped the Search button). */

/* ==========================================================================================
   Sam's YouTube videos (RES-01, 9 Oct): video rows on the Resources hub, video cards in the library,
   and the on-page player (<dialog class="rm-player">, assets/js/rm-video.js).
   ========================================================================================== */
body.rm .rm-vrows { display: flex; flex-direction: column; gap: var(--space-8); }
body.rm .rm-vrow { display: flex; flex-direction: column; gap: var(--space-4); }
body.rm .rm-vrow__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2) var(--space-4); }
body.rm .rm-vrow__title { margin: 0; font-family: var(--font-display); font-weight: 600; font-size: 21px; line-height: 27px; color: var(--ink); }
body.rm .rm-vrow__count { font-size: 14px; line-height: 20px; color: var(--ink-muted); }
body.rm .rm-vrow__yt { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: var(--slate); text-decoration: none; }
body.rm .rm-vrow__yt:hover { color: var(--ink); text-decoration: underline; }
body.rm .rm-vrow__more { align-self: flex-start; }
body.rm .rm-vgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); margin: 0; padding: 0; list-style: none; }
@media (max-width: 1024px) { body.rm .rm-vgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { body.rm .rm-vgrid { gap: var(--space-4); } }
body.rm .rm-vcard[hidden] { display: none; }

/* the card is a button: undo the kit's button styles */
body.rm .rm-vcard__btn, body.rm .rm-vcard__btn:hover, body.rm .rm-vcard__btn:focus, body.rm .rm-vcard__btn:active { display: flex; flex-direction: column; justify-content: flex-start; align-items: stretch; gap: var(--space-2); width: 100%; height: 100%; margin: 0; padding: 0; border: 0; border-radius: var(--radius-md); background: none; box-shadow: none; color: var(--ink); text-align: left; font: inherit; cursor: pointer; }
body.rm .rm-vcard__btn:focus-visible { outline: 2px solid var(--slate); outline-offset: 4px; }
body.rm .rm-vcard__thumb { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 10px; background: var(--surface-alt); }
body.rm .rm-vcard__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
body.rm .rm-vcard__btn:hover .rm-vcard__thumb img { transform: scale(1.04); }
body.rm .rm-vcard__title { font-size: 15px; line-height: 21px; font-weight: 600; color: var(--ink); }
body.rm .rm-vcard__btn:hover .rm-vcard__title { color: var(--slate); text-decoration: underline; text-underline-offset: 3px; }

/* play badge + duration, shared by rows and library cards */
body.rm .rm-play { position: absolute; left: 50%; top: 50%; display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; margin: -26px 0 0 -26px; border-radius: 50%; background: rgba(38, 48, 58, .78); color: #fff; box-shadow: 0 2px 12px rgba(0, 0, 0, .25); transition: background .2s, transform .2s; }
body.rm .rm-play svg { margin-left: 3px; }
body.rm :is(.rm-vcard__btn, .rm-res__link):hover .rm-play { background: var(--slate); transform: scale(1.06); }
body.rm .rm-vtime { position: absolute; right: 8px; bottom: 8px; padding: 2px 7px; border-radius: 6px; background: rgba(38, 48, 58, .82); color: #fff; font-size: 12px; line-height: 18px; font-weight: 700; letter-spacing: .02em; }

/* library cards for videos (button instead of link) */
body.rm button.rm-res__link, body.rm button.rm-res__link:hover, body.rm button.rm-res__link:focus, body.rm button.rm-res__link:active { justify-content: flex-start; align-items: stretch; width: 100%; margin: 0; border-radius: inherit; background: transparent; box-shadow: none; color: inherit; text-align: left; font: inherit; cursor: pointer; }
body.rm .rm-res__thumb--video { position: relative; }
body.rm .rm-res__thumb--video .rm-play { width: 40px; height: 40px; margin: -20px 0 0 -20px; }
body.rm .rm-res__thumb--video .rm-play svg { width: 18px; height: 18px; }
body.rm .rm-res__thumb--video .rm-vtime { right: 6px; bottom: 6px; font-size: 11px; line-height: 16px; padding: 1px 6px; }

/* player */
html.rm-player-open { overflow: hidden; }
body.rm .rm-player { width: min(960px, calc(100% - 32px)); max-height: calc(100% - 32px); margin: auto; padding: 0; border: 0; border-radius: var(--radius-xl); background: var(--surface); color: var(--ink); box-shadow: 0 24px 64px rgba(0, 0, 0, .35); overflow: visible; }
body.rm .rm-player::backdrop { background: rgba(38, 48, 58, .78); }
body.rm .rm-player--short { width: fit-content; max-width: calc(100% - 32px); }
body.rm .rm-player--short .rm-player__box { max-width: 420px; }
body.rm .rm-player__box { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4); }
body.rm .rm-player__head { display: flex; align-items: flex-start; gap: var(--space-3); }
body.rm .rm-player__title { flex: 1; margin: 0; font-family: var(--font-display); font-size: 18px; line-height: 24px; font-weight: 600; color: var(--ink); }
body.rm .rm-player__close, body.rm .rm-player__close:hover, body.rm .rm-player__close:focus { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; margin: -6px -6px 0 0; padding: 0; border: 0; border-radius: var(--radius-btn); background: transparent; color: var(--slate); box-shadow: none; cursor: pointer; }
body.rm .rm-player__close:hover { background: var(--sage-light); color: var(--ink); }
body.rm .rm-player__close:focus-visible { outline: 2px solid var(--slate); outline-offset: 2px; }
body.rm .rm-player__frame { position: relative; aspect-ratio: 16 / 9; border-radius: 10px; overflow: hidden; background: #000; }
body.rm .rm-player--short .rm-player__frame { aspect-ratio: 9 / 16; height: min(680px, calc(100vh - 190px), calc(100dvh - 190px)); width: auto; max-width: 100%; margin-inline: auto; }
body.rm .rm-player__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
body.rm .rm-player__note { margin: 0; font-size: 13px; line-height: 18px; color: var(--ink-muted); }
body.rm .rm-player__note a { color: var(--slate); font-weight: 600; }
@media (max-width: 560px) {
	body.rm .rm-player { width: calc(100% - 16px); }
	body.rm .rm-player__box { padding: var(--space-3); }
}
@media (prefers-reduced-motion: reduce) { body.rm .rm-vcard__thumb img, body.rm .rm-play { transition: none; } }
/* Videos (t43, 9 Oct): cards are links now; video pages (single-rethink_video.php). */
body.rm a.rm-vcard__btn, body.rm a.rm-vcard__btn:hover { text-decoration: none; }
body.rm .rm-vrow__title { font-size: 21px; line-height: 27px; }
body.rm .rm-video-hero { gap: var(--space-5); }
body.rm .rm-video-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-6); align-items: start; }
body.rm .rm-video-hero--short .rm-video-hero__grid { grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: var(--space-8); }
body.rm .rm-video-hero__copy { display: flex; flex-direction: column; gap: var(--space-3); max-width: var(--measure); }
body.rm .rm-video-hero__copy > * { margin: 0; }
body.rm .rm-video-hero__title { margin: 0; font-family: var(--font-display); font-weight: 600; font-size: 40px; line-height: 46px; letter-spacing: -0.005em; color: var(--ink); text-wrap: balance; }
body.rm .rm-video-hero__desc p { margin: 0 0 var(--space-3); }
body.rm .rm-video-hero__desc > :last-child { margin-bottom: 0; }
body.rm .rm-vplayer { position: relative; width: 100%; max-width: 880px; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; background: #000; box-shadow: var(--shadow-card); }
body.rm .rm-vplayer--short { max-width: 360px; aspect-ratio: 9 / 16; max-height: min(640px, 80vh); }
body.rm .rm-vplayer iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
body.rm .rm-vplayer__btn, body.rm .rm-vplayer__btn:hover, body.rm .rm-vplayer__btn:focus, body.rm .rm-vplayer__btn:active { position: absolute; inset: 0; display: block; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; border-radius: 0; background: #000; box-shadow: none; cursor: pointer; }
body.rm .rm-vplayer__btn:focus-visible { outline: 3px solid var(--slate); outline-offset: -3px; }
body.rm .rm-vplayer__btn img { display: block; width: 100%; height: 100%; object-fit: cover; }
body.rm .rm-vplayer--short .rm-vplayer__btn img { object-fit: cover; object-position: center; }
body.rm .rm-vplayer .rm-play { width: 76px; height: 76px; margin: -38px 0 0 -38px; }
body.rm .rm-vplayer .rm-play svg { width: 30px; height: 30px; }
body.rm .rm-vplayer__btn:hover .rm-play { background: var(--slate); transform: scale(1.06); }
body.rm .rm-vplayer .rm-vtime { right: 12px; bottom: 12px; }
@media (max-width: 1024px) { body.rm .rm-video-hero__title { font-size: 32px; line-height: 38px; } }
@media (max-width: 767px) {
	body.rm .rm-video-hero--short .rm-video-hero__grid { grid-template-columns: minmax(0, 1fr); }
	body.rm .rm-vplayer--short { max-width: 320px; margin-inline: auto; }
}
/* Video thumbnails (9 Oct, Chris): play icon + time as one pill bottom-left, so it doesn't sit on Sam's face. */
body.rm .rm-vbadge { position: absolute; left: 10px; bottom: 10px; display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px 4px 4px; border-radius: 999px; background: rgba(38, 48, 58, .82); color: #fff; box-shadow: 0 2px 10px rgba(0, 0, 0, .2); transition: background .2s; }
body.rm .rm-vbadge .rm-play { position: static; width: 28px; height: 28px; margin: 0; border-radius: 50%; background: #fff; color: var(--ink); box-shadow: none; transform: none; }
body.rm .rm-vbadge .rm-play svg { width: 16px; height: 16px; margin-left: 2px; }
body.rm .rm-vbadge .rm-vtime { position: static; padding: 0; background: none; font-size: 13px; line-height: 18px; }
body.rm .rm-vbadge .rm-play:only-child { margin-right: -6px; }
body.rm :is(.rm-vcard__btn, .rm-res__link):hover .rm-vbadge { background: var(--slate); }
body.rm :is(.rm-vcard__btn, .rm-res__link):hover .rm-vbadge .rm-play { background: #fff; transform: none; }
body.rm .rm-vplayer .rm-vbadge { left: 16px; bottom: 16px; gap: 10px; padding: 6px 16px 6px 6px; }
body.rm .rm-vplayer .rm-vbadge .rm-play { width: 48px; height: 48px; margin: 0; }
body.rm .rm-vplayer .rm-vbadge .rm-play svg { width: 22px; height: 22px; margin-left: 3px; }
body.rm .rm-vplayer .rm-vbadge .rm-vtime { font-size: 16px; line-height: 22px; }
body.rm .rm-vplayer__btn:hover .rm-vbadge { background: var(--slate); }
body.rm .rm-vplayer__btn:hover .rm-vbadge .rm-play { background: #fff; transform: none; }
@media (max-width: 560px) { body.rm .rm-vbadge { left: 6px; bottom: 6px; gap: 4px; padding: 3px 8px 3px 3px; } body.rm .rm-vbadge .rm-play { width: 24px; height: 24px; } body.rm .rm-vbadge .rm-play svg { width: 14px; height: 14px; } body.rm .rm-vbadge .rm-vtime { font-size: 12px; } }

/* ==========================================================================
   Courses (Rethink plugin, 16 Oct 2026): course + lesson pages, sign-in, account.
   Markup comes from wp-content/plugins/rethink/includes/courses/; this is its look.
   ========================================================================== */
body.rm .rm-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
body.rm .rm-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
body.rm .rm-ci { flex: none; }

/* Notices */
body.rm .rm-notice { border-radius: var(--radius-xl); padding: var(--space-5) var(--space-6); margin: 0 0 var(--space-6); background: var(--surface-alt); border: 0; color: var(--ink); }
body.rm .rm-notice p { margin: 0; }
body.rm .rm-notice--success { background: var(--sage-light); }
body.rm .rm-notice--error { background: #fbecea; color: var(--ink); }
body.rm .rm-notice a { color: var(--slate); font-weight: 600; }

/* Progress bar: the design system's rm-progress__track / __fill (no rm-progress box around it here) */
body.rm .rm-course-status .rm-progress__track, body.rm .rm-lesson__aside .rm-progress__track, body.rm .rm-course-card .rm-progress__track { min-width: 0; flex: none; width: 100%; margin: 0 0 var(--space-2); }
body.rm .rm-progress__fill { display: block; transition: width .3s ease; }
body.rm .rm-course-status .rm-progress__track { background: rgba(255,255,255,.7); }

/* Course + lesson pages use the full column (the theme's single fallback) */
body.rm.single-rethink_course .rm-entry-content, body.rm.single-rethink_lesson .rm-entry-content { max-width: none; }
body.rm.single-rethink_course .rm-page-head, body.rm.single-rethink_lesson .rm-page-head { max-width: none; margin-bottom: var(--space-7); }

/* Course page */
body.rm .rm-course-status { display: grid; gap: var(--space-3); padding: var(--space-6); margin: 0 0 var(--space-8); background: var(--sage-light); border: 0; box-shadow: none; }
body.rm .rm-course-status .rm-btn { justify-self: start; }
body.rm .rm-course__layout { display: grid; gap: var(--space-8); }
body.rm .rm-course__about { margin-bottom: var(--space-8); }
body.rm .rm-course .rm-title-2 { margin: 0 0 var(--space-5); }
body.rm .rm-course__links { padding-left: 1.2em; }
body.rm .rm-course__links a { color: var(--slate); }
@media (min-width: 1025px) {
  body.rm .rm-course__layout { grid-template-columns: minmax(0, 1fr) var(--sidebar); align-items: start; }
  body.rm .rm-course__aside { position: sticky; top: var(--space-6); }
  body.admin-bar.rm .rm-course__aside { top: calc(var(--space-6) + 32px); }
}

/* Buy panel */
body.rm .rm-course-buy { display: grid; gap: var(--space-3); padding: var(--space-6); }
body.rm .rm-course-buy .rm-price, body.rm .rm-course-buy p { margin: 0; }
body.rm .rm-course-buy .rm-btn { justify-self: stretch; text-align: center; justify-content: center; }
body.rm .rm-course-buy__line { display: flex; gap: var(--space-2); align-items: center; }
body.rm .rm-course-buy--owned .rm-ci { color: var(--slate); }
body.rm .rm-course-buy .rm-meta a { color: var(--slate); font-weight: 600; }

/* Outline */
body.rm .rm-outline, body.rm .rm-outline__lessons { list-style: none; margin: 0; padding: 0; }
body.rm .rm-outline__section { margin: 0 0 var(--space-6); }
body.rm .rm-outline__title { margin: 0 0 var(--space-2); font: 600 15px/20px var(--font-sans); letter-spacing: .04em; text-transform: uppercase; color: var(--ink-muted); }
body.rm .rm-outline__lessons { border: 1px solid var(--line); border-radius: var(--radius-xl); overflow: hidden; background: var(--surface); }
body.rm .rm-outline__lesson + .rm-outline__lesson { border-top: 1px solid var(--line); }
body.rm .rm-outline__lesson > a, body.rm .rm-outline__locked { display: flex; gap: var(--space-3); align-items: flex-start; padding: var(--space-3) var(--space-4); color: var(--ink-body); text-decoration: none; }
body.rm .rm-outline__lesson > a:hover { background: var(--surface-alt); color: var(--ink); }
body.rm .rm-outline__lesson > a:focus-visible { outline: 2px solid var(--slate); outline-offset: -2px; }
body.rm .rm-outline__lesson .rm-ci { margin-top: 3px; color: var(--ink-muted); }
body.rm .rm-outline__lesson.is-done .rm-ci { color: var(--slate); }
body.rm .rm-outline__lesson.is-current > a { background: var(--sage-light); color: var(--ink); font-weight: 600; }
body.rm .rm-outline__locked { color: var(--ink-muted); }

/* Lesson page */
body.rm .rm-lesson__crumb { margin: 0 0 var(--space-5); font: 600 15px/20px var(--font-sans); }
body.rm .rm-lesson__crumb a { color: var(--slate); text-decoration: none; }
body.rm .rm-lesson__crumb a::before { content: "\2190\00a0"; }
body.rm .rm-lesson { display: grid; gap: var(--space-8); }
@media (min-width: 1025px) {
  body.rm .rm-lesson:not(.rm-lesson--locked) { grid-template-columns: minmax(0, 1fr) var(--sidebar); align-items: start; }
  body.rm .rm-lesson__aside { position: sticky; top: var(--space-6); max-height: calc(100vh - 2 * var(--space-6)); overflow-y: auto; }
  body.admin-bar.rm .rm-lesson__aside { top: calc(var(--space-6) + 32px); max-height: calc(100vh - 2 * var(--space-6) - 32px); }
}
body.rm .rm-lesson__body { max-width: none; }
body.rm .rm-lesson-video { margin: 0 0 var(--space-6); }
body.rm .rm-lesson-video video { display: block; width: 100%; aspect-ratio: 16 / 9; background: var(--ink); border-radius: var(--radius-md); }
body.rm .rm-lesson__bar { display: grid; gap: var(--space-5); margin-top: var(--space-6); padding-top: var(--space-6); border-top: 1px solid var(--line); }
body.rm .rm-lesson__done { justify-self: start; display: inline-flex; gap: var(--space-2); align-items: center; }
body.rm .rm-lesson__nav { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
body.rm .rm-lesson__nav a { display: flex; gap: var(--space-3); align-items: center; padding: var(--space-4); border: 1px solid var(--line); border-radius: var(--radius-xl); color: var(--ink); text-decoration: none; background: var(--surface); }
body.rm .rm-lesson__nav a:hover { border-color: var(--line-strong); box-shadow: var(--shadow-card); }
body.rm .rm-lesson__nav a small { display: block; font: 600 12px/16px var(--font-sans); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-muted); }
body.rm .rm-lesson__next { justify-content: flex-end; text-align: right; grid-column: 2; }
body.rm .rm-lesson__aside { padding: var(--space-5); border: 1px solid var(--line); border-radius: var(--radius-xl); background: var(--surface-alt); }
body.rm .rm-lesson__course { margin: 0 0 var(--space-3); font: 600 17px/24px var(--font-display); }
body.rm .rm-lesson__course a { color: var(--ink); text-decoration: none; }
body.rm .rm-lesson__aside .rm-outline__title { font-size: 13px; }
body.rm .rm-lesson__aside .rm-outline__lesson > a { padding: var(--space-2) var(--space-3); font-size: 15px; line-height: 21px; }
body.rm .rm-lesson--locked { max-width: 640px; gap: var(--space-6); }
body.rm .rm-lesson__lock { display: grid; gap: var(--space-2); justify-items: start; padding: var(--space-6); background: var(--surface-alt); }
body.rm .rm-lesson__lock p { margin: 0; }
body.rm .rm-lesson__lock .rm-ci { width: 28px; height: 28px; color: var(--slate); }
@media (max-width: 600px) {
  body.rm .rm-lesson__nav { grid-template-columns: 1fr; }
  body.rm .rm-lesson__next { grid-column: 1; }
}

/* Sign-in + account (inside the theme's member layout) */
body.rm .rm-member__card:has(.rm-signin), body.rm .rm-member__card:has(.rm-account) { max-width: none; background: transparent; border: 0; box-shadow: none; padding: 0 !important; }
body.rm .rm-signin { display: grid; gap: var(--space-6); }
@media (min-width: 900px) { body.rm .rm-signin { grid-template-columns: 1fr 1fr; } }
body.rm .rm-signin__part { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-xl); box-shadow: var(--shadow-card); padding: var(--space-7); }
body.rm .rm-signin__part .rm-title-3, body.rm .rm-account .rm-title-3 { margin: 0 0 var(--space-3); }
body.rm .rm-signin__part form p, body.rm .rm-account form p { margin: 0 0 var(--space-4); }
body.rm .rm-signin__part label, body.rm .rm-account .rm-form label { display: block; margin-bottom: var(--space-2); }
body.rm .rm-signin__part .login-remember label { display: inline; }
body.rm .rm-account { display: grid; gap: var(--space-8); }
@media (min-width: 1025px) { body.rm .rm-account--aside { grid-template-columns: minmax(0, 1fr) var(--sidebar); align-items: start; } }
body.rm .rm-account__main { min-width: 0; }
body.rm .rm-account__aside .rm-title-3 { margin: 0 0 var(--space-4); }
body.rm .rm-course-cards--stack { grid-template-columns: 1fr; }
/* Account tabs: same pill bar as the page sub-nav */
body.rm .rm-account-tabs { margin-bottom: var(--space-6); }
body.rm .rm-account-tabs ul { display: flex; gap: var(--space-1); align-items: center; list-style: none; margin: 0; padding: 6px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-pill); box-shadow: var(--shadow-card); overflow-x: auto; scrollbar-width: none; }
body.rm .rm-account-tabs li { margin: 0; padding: 0; list-style: none; }
body.rm .rm-account-tabs li::before, body.rm .rm-account-tabs li::marker { content: none; }
body.rm .rm-account-tabs a { display: inline-flex; align-items: center; padding: 10px var(--space-5); border-radius: var(--radius-pill); font: 600 15px/20px var(--font-sans); white-space: nowrap; color: var(--slate); text-decoration: none; }
body.rm .rm-account-tabs a:hover { background: var(--sage-light); color: var(--ink); }
body.rm .rm-account-tabs .is-active a { background: var(--slate); color: var(--on-dark, #fff); }
body.rm .rm-account-tabs .rm-account-tabs__out { margin-left: auto; }
body.rm .rm-account-tabs a:focus-visible { outline: 2px solid var(--slate); outline-offset: -2px; }
@media (max-width: 600px) { body.rm .rm-account-tabs a { padding: 10px 14px; font-size: 14px; } }
body.rm .rm-account__panel .rm-form-card .rm-title-3 { margin: 0 0 var(--space-4); }
body.rm .rm-account__panel > .rm-account__news { margin-top: var(--space-6); }
body.rm .rm-account__part > .rm-title-2 { margin: 0 0 var(--space-5); }
body.rm .rm-course-cards { list-style: none; margin: 0 0 var(--space-6); padding: 0; display: grid; gap: var(--space-5); grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
body.rm .rm-course-card { display: flex; flex-direction: column; height: 100%; padding: 0; overflow: hidden; }
body.rm .rm-course-card__img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
body.rm .rm-course-cards > li { display: flex; }

body.rm .rm-course-card { width: 100%; }

body.rm .rm-course-card__body { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-2); padding: var(--space-5); flex: 1; }

body.rm .rm-course-card__body > * { max-width: 100%; }
body.rm .rm-course-card__body .rm-card__title { margin: 0; }
body.rm .rm-course-card__body p { margin: 0; }
/* Tiles in a row share a height; the button (or 'not on sale' note) sits at the bottom */
body.rm .rm-course-card__body > .rm-btn, body.rm .rm-course-card__body > .rm-meta:last-child:not(:nth-child(2)) { margin-top: auto; }

body.rm .rm-course-card__body > :nth-last-child(2) { margin-bottom: var(--space-3); }
body.rm .rm-table-wrap { overflow-x: auto; }
body.rm .rm-table { width: 100%; border-collapse: collapse; font-size: 15px; }
body.rm .rm-table th, body.rm .rm-table td { text-align: left; padding: var(--space-3); border-bottom: 1px solid var(--line); }
body.rm .rm-table th { font-weight: 600; color: var(--ink); background: var(--surface-alt); }
body.rm .rm-form-card .rm-form__row { display: grid; gap: 0 var(--space-5); }
@media (min-width: 700px) { body.rm .rm-form-card .rm-form__row { grid-template-columns: 1fr 1fr; } }
body.rm .rm-form__set { border: 0; padding: 0; margin: var(--space-2) 0 0; }
body.rm .rm-form__set legend { font: 600 15px/20px var(--font-sans); color: var(--ink); padding: 0; margin-bottom: var(--space-2); }
body.rm .rm-account__news { padding: var(--space-6); border-radius: var(--radius-xl); background: var(--sage-light); }
body.rm .rm-account__news p { margin: 0 0 var(--space-4); }
body.rm .rm-account__out a { color: var(--slate); font-weight: 600; }
body.rm .rm-entry-content:not(.rm-prose) > :is(.rm-course, .rm-lesson, .rm-lesson__crumb, .rm-notice) { max-width: none; }
body.rm.single-rethink_course .rm-site-main, body.rm.single-rethink_lesson .rm-site-main { padding-top: var(--space-9); padding-bottom: var(--space-10); }
@media (max-width: 767px) { body.rm.single-rethink_course .rm-site-main, body.rm.single-rethink_lesson .rm-site-main { padding-top: var(--space-6); } }
body.rm .rm-member__split .rm-signin { grid-template-columns: 1fr; }

/* Embedded checkout page (/checkout/?course=ID): sage course panel (head + more) on the left, Stripe's form at its
   natural width (440px) on the right. Mobile: course strip, form, then the details. */
body.rm .rm-checkout { display: grid; grid-template-columns: minmax(0, 1fr) 440px; grid-template-areas: "head pay" "more pay"; grid-template-rows: auto 1fr; column-gap: var(--space-9); align-items: start; }
body.rm .rm-entry-content:not(.rm-prose) > .rm-checkout { max-width: none; }
body.rm .rm-page-head:has(+ .rm-entry-content > .rm-checkout) { margin-bottom: var(--space-7); } /* same gap as course pages */
@media (max-width: 860px) { body.rm .rm-page-head:has(+ .rm-entry-content > .rm-checkout) { margin-bottom: var(--space-5); } }
body.rm .rm-checkout__head { grid-area: head; display: flex; flex-direction: column; gap: var(--space-5); padding: var(--space-6) var(--space-6) var(--space-5); background: var(--sage-light); border-radius: var(--radius-xl) var(--radius-xl) 0 0; }
body.rm .rm-checkout__more { grid-area: more; align-self: stretch; display: flex; flex-direction: column; gap: var(--space-6); padding: var(--space-5) var(--space-6) var(--space-7); background: var(--sage-light); border-radius: 0 0 var(--radius-xl) var(--radius-xl); }
body.rm .rm-checkout__pay { grid-area: pay; display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; }
body.rm .rm-checkout__img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius-md); }
body.rm .rm-checkout__headtext { display: flex; flex-direction: column; gap: var(--space-1); }
body.rm .rm-checkout__headtext > *, body.rm .rm-checkout__more p, body.rm .rm-checkout__more h3 { margin: 0; }
body.rm .rm-checkout__title { font-family: var(--font-display); font-weight: 600; font-size: 27px; line-height: 34px; color: var(--ink); }
body.rm .rm-checkout__price { font-family: var(--font-display); font-weight: 600; font-size: 24px; line-height: 30px; color: var(--ink); }
body.rm .rm-checkout__price .rm-meta { font-family: var(--font-body, inherit); font-weight: 400; font-size: 15px; margin-left: var(--space-2); }
body.rm .rm-checkout__block { display: flex; flex-direction: column; gap: var(--space-2); padding-top: var(--space-5); border-top: 1px solid rgba(38, 48, 58, .12); }
body.rm .rm-checkout__h { font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--slate); }
body.rm .rm-checkout__lead { font-weight: 600; color: var(--ink); }
body.rm .rm-checkout__points { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2) var(--space-4); font-size: 15px; line-height: 22px; }
body.rm .rm-checkout__points li { position: relative; padding-left: 26px; margin: 0; }
body.rm .rm-checkout__points li::before { content: ""; position: absolute; left: 0; top: 3px; width: 16px; height: 16px; border-radius: 50%; background: var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='8' viewBox='0 0 10 8'%3E%3Cpath d='M1 4.2l2.6 2.4L9 1.2' fill='none' stroke='%23576978' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center; }
body.rm .rm-checkout__sam { flex-direction: row; align-items: center; gap: var(--space-4); }
body.rm .rm-checkout__sam-img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; flex: none; }
body.rm .rm-checkout__sam p { font-size: 15px; line-height: 22px; color: var(--ink); }
body.rm .rm-checkout__faq { margin: 0; display: flex; flex-direction: column; gap: var(--space-3); font-size: 15px; line-height: 22px; }
body.rm .rm-checkout__faq dt { font-weight: 700; color: var(--ink); }
body.rm .rm-checkout__faq dd { margin: 2px 0 0; color: var(--ink-body); }
body.rm .rm-checkout__more .rm-arrow-link { margin-top: var(--space-2); }
body.rm .rm-checkout__form { min-height: 520px; }
body.rm .rm-checkout__loading { padding: var(--space-6) 0; margin: 0; }
body.rm .rm-checkout__form .rm-notice { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); padding: var(--space-5); border-radius: var(--radius-xl); background: #fbecea; }
body.rm .rm-checkout__form .rm-notice p { margin: 0; }
body.rm .rm-checkout__secure { margin: 0; font-size: 13px; text-align: center; }
@media (max-width: 1024px) {
	body.rm .rm-checkout { grid-template-columns: minmax(0, 1fr) 400px; column-gap: var(--space-6); }
	body.rm .rm-checkout__points { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 860px) {
	body.rm .rm-checkout { grid-template-columns: minmax(0, 1fr); grid-template-areas: "head" "pay" "more"; grid-template-rows: none; row-gap: var(--space-5); }
	body.rm .rm-checkout__head { flex-direction: row; align-items: center; gap: var(--space-4); padding: var(--space-4) var(--space-5); border-radius: var(--radius-xl); }
	body.rm .rm-checkout__img { width: 96px; flex: none; aspect-ratio: 4 / 3; }
	body.rm .rm-checkout__title { font-size: 19px; line-height: 25px; }
	body.rm .rm-checkout__price { font-size: 19px; line-height: 25px; }
	body.rm .rm-checkout__more { border-radius: var(--radius-xl); padding-top: var(--space-1); }
	body.rm .rm-checkout__more .rm-checkout__block:first-child { border-top: 0; }
	body.rm .rm-checkout__form { min-height: 0; }
}

/* Resources hub search results ([rm_hub_results]): shown in their own section under the hero while searching;
   the default sections (Start here, library, note) are hidden meanwhile. */
body.rm:not(.rm-hub-searching) .rm-hub-results-section { display: none !important; }
body.rm.rm-hub-searching .rm-hub > .rm-hub-section:not(.rm-hub-results-section) { display: none !important; }
body.rm .rm-hub-results-section { padding-top: var(--space-7) !important; }
body.rm .rm-hub-results { display: flex; flex-direction: column; gap: var(--space-5); scroll-margin-top: var(--space-6); }
body.rm .rm-hub-results[hidden] { display: none; }
body.rm .rm-hub-results__summary { margin: 0; font-size: 17px; line-height: 26px; font-weight: 600; color: var(--ink); }
body.rm .rm-hub-results__chips[hidden], body.rm .rm-hub-results__sub[hidden] { display: none; }
body.rm .rm-hub-results__chips .rm-chip, body.rm .rm-hub-results__sub .rm-chip { gap: 6px; }
body.rm .rm-hub-results__chips .rm-chip--outline:hover { background: var(--sage-light); color: var(--ink); }
body.rm .rm-hub-results__sub { margin-top: calc(-1 * var(--space-2)); }
body.rm .rm-hub-results__groups { display: flex; flex-direction: column; gap: var(--space-8); }
body.rm .rm-hub-group { display: flex; flex-direction: column; gap: var(--space-3); }
body.rm .rm-hub-group__title { margin: 0; display: flex; align-items: center; gap: var(--space-2); font-family: var(--font-display); font-weight: 600; font-size: 21px; line-height: 27px; color: var(--ink); }
body.rm .rm-hub-group__title .rm-chip__n { font-family: var(--font-body, inherit); font-size: 13px; padding: 1px 8px; border-radius: var(--radius-pill); background: var(--sage-light); color: var(--ink); opacity: 1; }
body.rm .rm-hits { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3) var(--space-5); }
body.rm .rm-hit { margin: 0; }
body.rm .rm-hit__link { display: flex; gap: var(--space-4); align-items: flex-start; height: 100%; padding: var(--space-3); border: 1px solid var(--line); border-radius: var(--radius-xl); background: var(--surface); color: var(--ink); text-decoration: none; transition: border-color .15s, box-shadow .15s; }
body.rm .rm-hit__link:hover { border-color: var(--sage); box-shadow: var(--shadow-card); color: var(--ink); }
body.rm .rm-hit__link:focus-visible { outline: 2px solid var(--slate); outline-offset: 2px; }
body.rm .rm-hit__thumb { flex: none; width: 96px; aspect-ratio: 4 / 3; border-radius: var(--radius-md); overflow: hidden; background: var(--sage-light); display: flex; align-items: center; justify-content: center; color: var(--slate); }
body.rm .rm-hit--videos .rm-hit__thumb { aspect-ratio: 16 / 9; width: 112px; }
body.rm .rm-hit__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
body.rm .rm-hit__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
body.rm .rm-hit__meta { font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--slate); }
body.rm .rm-hit__title { font-family: var(--font-display); font-weight: 600; font-size: 17px; line-height: 23px; color: var(--ink); }
body.rm .rm-hit__ext { display: inline-flex; vertical-align: -1px; margin-left: 6px; color: var(--slate); }
body.rm .rm-hit__desc { font-size: 14px; line-height: 21px; color: var(--ink-body); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
body.rm .rm-hub-group__more { align-self: flex-start; background: none; border: 0; padding: 0; min-height: 36px; font: inherit; font-weight: 700; color: var(--slate); cursor: pointer; }
body.rm .rm-hub-group__more:hover { background: none; color: var(--ink); }
body.rm .rm-hub-empty { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-6); background: var(--surface-alt); border-radius: var(--radius-xl); }
body.rm .rm-hub-empty p { margin: 0; }
body.rm .rm-hub-results > .rm-library__reset { align-self: flex-start; }
@media (max-width: 767px) {
	body.rm .rm-hits { grid-template-columns: minmax(0, 1fr); }
	body.rm .rm-hit__thumb { width: 72px; }
	body.rm .rm-hit--videos .rm-hit__thumb { width: 96px; }
}

/* Services: continuity-of-care text uses the full column, like the cards above it (Sam, 4 Nov 2026). */
body.rm .rm-band > .elementor-widget-text-editor.rm-prose.rm-continuity { max-width: none; }
