/* Riverview theme: layout and the Riverview details. Colours and type come from theme.json. */

:root {
	--rv-ink: var(--wp--preset--color--rv-ink, #272727);
	--rv-green: var(--wp--preset--color--rv-green, #9DCD6D);
	--rv-orange: var(--wp--preset--color--rv-orange, #F39229);
	--rv-sky: var(--wp--preset--color--rv-sky, #1BBAE8);
	--rv-teal: var(--wp--preset--color--rv-teal, #79CCDA);
	--rv-gray: var(--wp--preset--color--rv-gray, #63686E);
	--rv-deep: var(--wp--preset--color--rv-deep, #196682);
	--rv-pink: var(--wp--preset--color--rv-pink, #E8188C);
	--rv-slate: #54595F;
	--rv-shadow-sm: 0 1px 2px rgba(20, 40, 50, .06), 0 2px 8px rgba(20, 40, 50, .06);
	--rv-shadow: 0 1px 2px rgba(20, 40, 50, .06), 0 14px 34px -10px rgba(20, 40, 50, .22);
	--rv-shadow-lg: 0 2px 4px rgba(20, 40, 50, .06), 0 26px 50px -14px rgba(20, 40, 50, .30);
	--rv-ease: cubic-bezier(.2, .7, .2, 1);
	--rv-header-h: 160px;
}
body { margin: 0; -webkit-font-smoothing: antialiased; overflow-x: clip; }
img, video, iframe { max-width: 100%; height: auto; }
.rv-sr, .rv-skip:not(:focus) { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rv-skip:focus { position: fixed; top: 8px; left: 8px; z-index: 1000; background: #fff; color: var(--rv-ink); padding: 10px 16px; border-radius: 6px; }
:focus-visible { outline: 3px solid var(--rv-orange); outline-offset: 2px; }

/* ------------------------------------------------------------------ header */
.rv-header { position: relative; z-index: 100; background: var(--rv-ink); padding: 20px 0; }
.rv-over-hero .rv-header { position: absolute; top: 0; left: 0; right: 0; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, rgba(39,39,39,0) 45%); }
.admin-bar.rv-over-hero .rv-header { top: 32px; }
.rv-header > .rv-wave { position: absolute; top: -1px; left: 0; width: 100%; height: 36px; pointer-events: none; }
.rv-header__in { position: relative; max-width: 1547px; margin: 0 auto; padding: 14px 24px 0; display: flex; align-items: center; gap: 24px; }
.rv-logo { flex: 0 0 auto; display: block; line-height: 0; }
.rv-logo__img { width: 290px; height: auto; max-height: 110px; object-fit: contain; object-position: left center; }
.rv-nav { margin-left: auto; }
.rv-menu, .rv-menu ul { list-style: none; margin: 0; padding: 0; }
.rv-menu { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.rv-menu > li { position: relative; display: flex; align-items: center; }
.rv-menu a { display: block; text-decoration: none; font-family: var(--wp--preset--font-family--aleo); letter-spacing: -0.2px; }
.rv-menu > li > a { color: #fff; font-size: 19px; font-weight: 600; line-height: 1.4; padding: 11px 14px; }
.rv-menu > li > a:hover, .rv-menu > li > a:focus { color: var(--rv-orange); }
.rv-over-hero .rv-menu > li > a, .rv-over-hero .rv-sub-toggle { text-shadow: 0 1px 8px rgba(0,0,0,.55); }
@media (max-width: 1024px) { .rv-over-hero .rv-menu > li > a { text-shadow: none; } }
.rv-menu > li.current-menu-item > a, .rv-menu > li.current-menu-ancestor > a, .rv-menu > li.current_page_item > a { color: var(--rv-orange); }
.rv-sub-toggle { background: none; border: 0; color: #fff; width: 22px; height: 30px; margin-left: -10px; cursor: pointer; padding: 0; }
.rv-sub-toggle span { display: block; width: 8px; height: 8px; margin: 0 auto; border: solid currentColor; border-width: 0 2px 2px 0; transform: translateY(-2px) rotate(45deg); }
.rv-menu ul { position: absolute; top: 100%; left: 0; min-width: 230px; background: #fff; box-shadow: 0 12px 30px rgba(0,0,0,.18); padding: 8px 0; border-radius: 0 0 10px 10px; opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .15s, transform .15s, visibility .15s; z-index: 10; }
.rv-menu ul ul { top: 0; left: 100%; border-radius: 10px; }
.rv-menu > li:nth-last-child(-n+2) > ul { left: auto; right: 0; }
.rv-menu > li:nth-last-child(-n+2) ul ul { left: auto; right: 100%; }
.rv-menu li:hover > ul, .rv-menu li:focus-within > ul, .rv-menu li.rv-open > ul { opacity: 1; visibility: visible; transform: none; }
.rv-menu ul a { color: var(--rv-ink); font-size: 16px; font-weight: 500; padding: 9px 20px; }
.rv-menu ul a:hover, .rv-menu ul a:focus, .rv-menu ul .current-menu-item > a { color: var(--rv-orange); background: #f7f7f7; }
.rv-menu ul .rv-sub-toggle { color: var(--rv-ink); position: absolute; right: 8px; top: 6px; }
.rv-burger, .rv-call { display: none; }

@media (max-width: 1024px) {
	.rv-header__in { padding-top: 10px; }
	.rv-logo__img { width: 210px; }
	.rv-burger { display: block; margin-left: auto; background: none; border: 0; width: 46px; height: 46px; cursor: pointer; color: #fff; }
	.rv-burger__bars, .rv-burger__bars::before, .rv-burger__bars::after { display: block; width: 26px; height: 3px; background: currentColor; border-radius: 2px; position: relative; margin: 0 auto; transition: transform .2s; }
	.rv-burger__bars::before, .rv-burger__bars::after { content: ""; position: absolute; left: 0; }
	.rv-burger__bars::before { top: -8px; } .rv-burger__bars::after { top: 8px; }
	.rv-burger[aria-expanded="true"] .rv-burger__bars { background: transparent; }
	.rv-burger[aria-expanded="true"] .rv-burger__bars::before { transform: translateY(8px) rotate(45deg); }
	.rv-burger[aria-expanded="true"] .rv-burger__bars::after { transform: translateY(-8px) rotate(-45deg); }
	.rv-call { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--rv-green); color: #fff; flex: 0 0 auto; }
	.rv-call svg { width: 20px; height: 20px; }
	.rv-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; margin: 10px 0 0; background: #fff; box-shadow: 0 18px 40px rgba(0,0,0,.25); max-height: calc(100vh - 120px); overflow: auto; }
	.rv-nav.rv-open { display: block; }
	.rv-menu { display: block; padding: 8px 0; }
	.rv-menu > li { display: block; }
	.rv-menu > li > a { color: var(--rv-ink); font-size: 18px; padding: 12px 56px 12px 22px; }
	.rv-sub-toggle, .rv-menu ul .rv-sub-toggle { position: absolute; right: 10px; top: 6px; width: 40px; height: 40px; margin: 0; color: var(--rv-ink); }
	.rv-menu ul { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; display: none; padding: 0 0 6px 14px; min-width: 0; }
	.rv-menu li.rv-open > ul { display: block; }
	.rv-menu li:hover > ul, .rv-menu li:focus-within > ul { display: none; }
	.rv-menu li.rv-open:hover > ul, .rv-menu li.rv-open:focus-within > ul { display: block; }
}
@media (max-width: 782px) { .admin-bar.rv-over-hero .rv-header { top: 46px; } }

/* ------------------------------------------------------------------ waves */
.rv-wave { display: block; }
.rv-wave-top { position: relative; }
.rv-wave-top::before { content: ""; position: absolute; z-index: 2; top: -1px; left: 0; width: 100%; height: 49px; pointer-events: none; background: var(--rv-wave, #fff);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 100' preserveAspectRatio='none'%3E%3Cpath d='M421.9,6.5c22.6-2.5,51.5,0.4,75.5,5.3c23.6,4.9,70.9,23.5,100.5,35.7c75.8,32.2,133.7,44.5,192.6,49.7c23.6,2.1,48.7,3.5,103.4-2.5c54.7-6,106.2-25.6,106.2-25.6V0H0v30.3c0,0,72,32.6,158.4,30.5c39.2-0.7,92.8-6.7,134-22.4c21.2-8.1,52.2-18.2,79.7-24.2C399.3,7.9,411.6,7.5,421.9,6.5z'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 100' preserveAspectRatio='none'%3E%3Cpath d='M421.9,6.5c22.6-2.5,51.5,0.4,75.5,5.3c23.6,4.9,70.9,23.5,100.5,35.7c75.8,32.2,133.7,44.5,192.6,49.7c23.6,2.1,48.7,3.5,103.4-2.5c54.7-6,106.2-25.6,106.2-25.6V0H0v30.3c0,0,72,32.6,158.4,30.5c39.2-0.7,92.8-6.7,134-22.4c21.2-8.1,52.2-18.2,79.7-24.2C399.3,7.9,411.6,7.5,421.9,6.5z'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat; }
.rv-wave-top.rv-wave-flip::before { transform: rotate(180deg); transform-origin: center; -webkit-mask-position: 0 0; mask-position: 0 0;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 100' preserveAspectRatio='none'%3E%3Cpath d='M790.5,93.1c-59.3-5.3-116.8-18-192.6-50c-29.6-12.7-76.9-31-100.5-35.9c-23.6-4.9-52.6-7.8-75.5-5.3c-10.2,1.1-22.6,1.4-50.1,7.4c-27.2,6.3-58.2,16.6-79.4,24.7c-41.3,15.9-94.9,21.9-134,22.6C72,58.2,0,25.8,0,25.8V100h1000V65.3c0,0-51.5,19.4-106.2,25.7C839.5,97,814.1,95.2,790.5,93.1z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 100' preserveAspectRatio='none'%3E%3Cpath d='M790.5,93.1c-59.3-5.3-116.8-18-192.6-50c-29.6-12.7-76.9-31-100.5-35.9c-23.6-4.9-52.6-7.8-75.5-5.3c-10.2,1.1-22.6,1.4-50.1,7.4c-27.2,6.3-58.2,16.6-79.4,24.7c-41.3,15.9-94.9,21.9-134,22.6C72,58.2,0,25.8,0,25.8V100h1000V65.3c0,0-51.5,19.4-106.2,25.7C839.5,97,814.1,95.2,790.5,93.1z'/%3E%3C/svg%3E"); }
.rv-wave-rv-green { --rv-wave: var(--rv-green); } .rv-wave-rv-sky { --rv-wave: var(--rv-sky); } .rv-wave-rv-teal { --rv-wave: var(--rv-teal); }
.rv-wave-rv-orange { --rv-wave: var(--rv-orange); } .rv-wave-rv-white { --rv-wave: #fff; } .rv-wave-rv-ink { --rv-wave: var(--rv-ink); }
.is-style-rv-wave { --rv-wave: var(--rv-green); }
.is-style-rv-wave::before { content: ""; position: absolute; z-index: 2; top: -1px; left: 0; width: 100%; height: 49px; background: var(--rv-wave); transform: rotate(180deg);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 100' preserveAspectRatio='none'%3E%3Cpath d='M790.5,93.1c-59.3-5.3-116.8-18-192.6-50c-29.6-12.7-76.9-31-100.5-35.9c-23.6-4.9-52.6-7.8-75.5-5.3c-10.2,1.1-22.6,1.4-50.1,7.4c-27.2,6.3-58.2,16.6-79.4,24.7c-41.3,15.9-94.9,21.9-134,22.6C72,58.2,0,25.8,0,25.8V100h1000V65.3c0,0-51.5,19.4-106.2,25.7C839.5,97,814.1,95.2,790.5,93.1z'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 100' preserveAspectRatio='none'%3E%3Cpath d='M790.5,93.1c-59.3-5.3-116.8-18-192.6-50c-29.6-12.7-76.9-31-100.5-35.9c-23.6-4.9-52.6-7.8-75.5-5.3c-10.2,1.1-22.6,1.4-50.1,7.4c-27.2,6.3-58.2,16.6-79.4,24.7c-41.3,15.9-94.9,21.9-134,22.6C72,58.2,0,25.8,0,25.8V100h1000V65.3c0,0-51.5,19.4-106.2,25.7C839.5,97,814.1,95.2,790.5,93.1z'/%3E%3C/svg%3E") 0 0 / 100% 100% no-repeat; }

/* ------------------------------------------------------------------ title band */
.rv-band { position: relative; overflow: hidden; background: var(--rv-ink); padding: 300px 20px 200px; text-align: center; }
.rv-band__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.rv-band::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.13); mix-blend-mode: multiply; }
.rv-band > .rv-wave { position: absolute; z-index: 2; top: -1px; left: 0; width: 100%; height: 49px; transform: rotate(180deg); }
.rv-band__in { position: relative; z-index: 3; max-width: 1140px; margin: 0 auto; }
.rv-band__title { margin: 0; color: #fff; font-size: clamp(44px, 6vw, 80px); font-weight: 700; text-shadow: 0 0 14px rgba(0,0,0,.68); }
.rv-band--plain { padding: 220px 20px 110px; }
@media (max-width: 1024px) { .rv-band { padding: 200px 20px 120px; } .rv-band--plain { padding: 170px 20px 80px; } }

/* ------------------------------------------------------------------ page content */
.rv-content { padding-left: var(--wp--style--root--padding-left, 20px); padding-right: var(--wp--style--root--padding-right, 20px); }
.rv-content > * { max-width: var(--wp--style--global--content-size, 1140px); margin-left: auto; margin-right: auto; }
.rv-content > .alignwide { max-width: var(--wp--style--global--wide-size, 1400px); }
.rv-content > .alignfull { max-width: none; margin-left: calc(-1 * var(--wp--style--root--padding-left, 20px)); margin-right: calc(-1 * var(--wp--style--root--padding-right, 20px)); }
.rv-content > *:first-child { margin-top: 0; }
.rv-content > .alignfull + .alignfull { margin-top: 0; }
.rv-content > :not(.alignfull):first-child { margin-top: 60px; }
.rv-content > :not(.alignfull):last-child { margin-bottom: 60px; }
.rv-sec, .rv-col, .rv-cols > .wp-block-column { box-sizing: border-box; }
.rv-content .wp-block-cover.alignfull, .rv-content .wp-block-group.alignfull { margin-top: 0; margin-bottom: 0; }
.wp-block-cover.rv-cover .wp-block-cover__inner-container { width: 100%; max-width: var(--wp--style--global--content-size, 1140px); margin-left: auto; margin-right: auto; }
/* Elementor kept 20px only after widgets; sections sat directly on whatever followed them (2.0.4). */
:is(.is-layout-constrained, .is-layout-flow, .rv-content) > .rv-sec + * { margin-top: 0; }
.rv-wide > * { max-width: none; }

/* Cards: rounded colour panels with a white ring and a soft shadow (the service tiles). */
.rv-card, .is-style-rv-card { border-radius: 30px; box-sizing: border-box; }
.is-style-rv-card { padding: 40px 30px; background: #fff; }
.rv-shadow, .is-style-rv-card { box-shadow: 0 10px 30px rgba(0,0,0,.16); }
.wp-block-columns.rv-cols { margin-bottom: 0; } /* spacing comes from each row's own gap and padding (2.0.4) */
.wp-block-columns.rv-cols:has(> .rv-col-tile) { gap: 0; }
.rv-col-tile > .wp-block-cover { height: 100%; min-height: 0; } /* the tile's own padding sets its height, as in Elementor */
.rv-tile .wp-block-cover__inner-container { padding: 0; }
.wp-block-column.rv-card > .wp-block-image:first-child img { margin: 0 auto; }
.rv-img img { display: block; }
.rv-eyebrow { line-height: 1.3; }
.rv-h { margin-top: 0; margin-bottom: 0; }
/* Elementor kept 20px between every widget, headings included (2.0.4). */
:is(.is-layout-constrained, .is-layout-flow) > .rv-h:not(:first-child) { margin-top: var(--wp--style--block-gap, 20px); }

/* Buttons: pills; the outline style follows the text colour around it. */
.wp-element-button, .wp-block-button__link { transition: background-color .2s, color .2s, border-color .2s; }
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; border-color: currentColor; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--rv-ink); border-color: #fff; }

/* FAQ lists: question rows with a plus that turns into a minus. */
.rv-faqs { display: flex; flex-direction: column; gap: 0; }
.wp-block-details.rv-faq summary { cursor: pointer; list-style: none; position: relative; padding-right: 36px; font-weight: 700; color: var(--rv-ink); font-size: 19px; }
.wp-block-details.rv-faq summary::-webkit-details-marker { display: none; }
.wp-block-details.rv-faq summary::after { content: "+"; position: absolute; right: 6px; top: -4px; font-size: 28px; line-height: 1; color: var(--rv-green); transition: transform .2s; }
.wp-block-details.rv-faq[open] summary::after { content: "\2212"; }
.wp-block-details.rv-faq > :not(summary) { margin-top: 10px; }

/* Lists carried from icon lists: the same small icons (a pin for an address, a phone, an envelope)
   in the list's icon colour, text beside them as on the old site (2.0.4). */
.rv-icon-list { list-style: none; padding-left: 0; --rv-ico: var(--rv-teal, #79CCDA); }
.rv-icon-list li { padding: 0 0 0 22px; position: relative; }
.rv-icon-list li + li { margin-top: 0; }
.rv-icon-list a { color: inherit; text-decoration: none; }
.rv-icon-list li::before { content: ""; position: absolute; left: 0; top: .3em; width: 14px; height: 14px; background: var(--rv-ico);
	-webkit-mask: var(--rv-ico-pin) center / contain no-repeat; mask: var(--rv-ico-pin) center / contain no-repeat; }
.rv-icon-list li:has(a[href^="tel:"])::before { -webkit-mask-image: var(--rv-ico-phone); mask-image: var(--rv-ico-phone); }
.rv-icon-list li:has(a[href^="mailto:"])::before { -webkit-mask-image: var(--rv-ico-mail); mask-image: var(--rv-ico-mail); }
.rv-icon-list li:not(:has(a[href^="tel:"], a[href^="mailto:"], a[href*="map"])):not(:has(a))::before { width: 7px; height: 7px; top: .55em; left: 3px; border-radius: 50%; -webkit-mask: none; mask: none; }
:root {
	--rv-ico-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath d='M172 501C27 291 0 269 0 192 0 86 86 0 192 0s192 86 192 192c0 77-27 99-172 309a24 24 0 0 1-40 0zm20-229a80 80 0 1 0 0-160 80 80 0 0 0 0 160z'/%3E%3C/svg%3E");
	--rv-ico-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M497 361l-112-48a24 24 0 0 0-28 7l-50 61A371 371 0 0 1 130 204l61-50a24 24 0 0 0 7-28L150 14a24 24 0 0 0-27-14L19 24A24 24 0 0 0 0 48c0 256 208 464 464 464a24 24 0 0 0 24-19l24-104a24 24 0 0 0-15-28z'/%3E%3C/svg%3E");
	--rv-ico-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M502 191c4-3 10 0 10 5v204c0 27-21 48-48 48H48c-27 0-48-21-48-48V196c0-5 6-8 10-5 22 17 52 39 154 113 21 15 57 48 92 47 36 1 72-32 92-47 102-74 132-96 154-113zM256 320c23 0 57-29 73-41 133-96 143-104 174-128 6-5 9-12 9-19v-20c0-27-21-48-48-48H48C21 64 0 85 0 112v20c0 7 3 14 9 19 31 24 41 32 174 128 16 12 50 41 73 41z'/%3E%3C/svg%3E");
}

/* Menus carried into pages and the footer: Elementor's vertical menu look (bold grey links, indented,
   a small caret beside pages that have sub-pages, the current page in pink). */
.rv-menu-list { list-style: none; padding: 0; margin: 0; }
.rv-menu-list li { margin: 0; position: relative; }
.rv-menu-list a { display: inline-block; padding: 6px 20px; color: var(--rv-gray, #7A7A7A); font-weight: 900; font-size: 17px; line-height: 20px; letter-spacing: -0.2px; text-decoration: none; }
.rv-menu-list a:hover, .rv-menu-list a:focus, .rv-menu-list a[aria-current="page"] { color: var(--wp--preset--color--rv-pink, #E8188C); }
.rv-menu-list li > ul { list-style: none; padding: 0 0 4px 12px; margin: 0; display: none; }
.rv-menu-list li > ul a { font-size: 15px; padding-top: 4px; padding-bottom: 4px; }
.rv-menu-list li:hover > ul, .rv-menu-list li:focus-within > ul { display: block; }
.rv-menu-list li:has(> ul) > a::after { content: ""; display: inline-block; margin: 0 0 3px 10px; border: 5px solid transparent; border-top-color: currentColor; border-bottom-width: 0; vertical-align: middle; }

/* Galleries */
.wp-block-gallery.rv-gallery img { border-radius: 10px; }
/* Carousels carried from Elementor: one row that slides sideways, as many showing as before. */
.wp-block-gallery.rv-carousel { flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; scrollbar-width: thin; }
.wp-block-gallery.rv-carousel > .wp-block-image { flex-shrink: 0 !important; scroll-snap-align: start; }
.wp-block-gallery.rv-carousel > .wp-block-image img { height: 100%; object-fit: cover; }

/* ------------------------------------------------------------------ footer */
.rv-footer { background: #fff; }
.rv-footer > .wp-block-group, .rv-footer > .rv-sec { margin: 0; }
.rv-footer .wp-block-social-links .wp-social-link { background: var(--rv-teal); color: #fff; }
/* Social icons carried from Elementor: 40px circles, 18px symbols, 10px apart. */
.wp-block-social-links.rv-social { gap: 10px; }
.wp-block-social-links.rv-social .wp-social-link a { padding: 11px; }
.wp-block-social-links.rv-social .wp-social-link svg { width: 18px; height: 18px; }
.rv-footer a { text-decoration: none; }
.rv-footer__plain { max-width: 1140px; margin: 0 auto; padding: 60px 20px 20px; }
.rv-footer__plain .rv-logo__img { width: 220px; }
.rv-footer__copy { margin: 0; padding: 30px 20px 40px; text-align: center; font-size: 13px; color: var(--rv-gray, #7A7A7A); }

/* ------------------------------------------------------------------ lists and 404 */
.rv-list { max-width: 1000px; margin: 60px auto; }
.rv-list__item { display: grid; grid-template-columns: 260px 1fr; gap: 30px; padding: 26px 0; border-bottom: 1px solid #eee; }
.rv-list__item:not(:has(.rv-list__img)) { grid-template-columns: 1fr; }
.rv-list__img img { border-radius: 14px; display: block; }
.rv-list__title { margin: 0 0 6px; font-size: 26px; }
.rv-list__title a { color: var(--rv-ink); text-decoration: none; }
.rv-list__date { margin: 0 0 10px; font-size: 14px; }
.rv-404 { max-width: 700px; margin: 60px auto; text-align: center; }

/* Narrower screens: content never touches the screen edge. */
@media (max-width: 1200px) {
	.rv-content > .rv-sec.alignfull:not(.rv-wide):not(.wp-block-cover), .rv-content > .wp-block-cover.alignfull > .wp-block-cover__inner-container { padding-left: 20px !important; padding-right: 20px !important; box-sizing: border-box; }
}
.rv-row { gap: 24px; }
.rv-row > .wp-block-heading { margin: 0; }

/* Hidden on a screen size (carried from Elementor's responsive visibility). */
@media (min-width: 1025px) { .rv-hide-desktop { display: none !important; } }
@media (min-width: 768px) and (max-width: 1024px) { .rv-hide-tablet { display: none !important; } }
@media (max-width: 767px) { .rv-hide-mobile { display: none !important; } }

/* ------------------------------------------------------------------ phones and tablets */
@media (max-width: 1024px) {
	.rv-content h1:not(.rv-was-h2), .rv-content h2.rv-was-h1, .rv-content .wp-block-heading[style*="font-size:80px"] { font-size: 50px !important; }
	.wp-block-columns.rv-cols { row-gap: 20px !important; }
}
@media (max-width: 781px) {
	.rv-content .wp-block-heading[style*="font-size:80px"], .rv-content .wp-block-heading[style*="font-size:60px"] { font-size: 40px !important; }
	.rv-content .wp-block-heading[style*="font-size:40px"] { font-size: 30px !important; }
	.rv-content .wp-block-group[style*="padding-top:300px"], .rv-content .wp-block-cover[style*="padding-top:300px"] { padding-top: 200px !important; }
	.rv-content [style*="padding-left:100px"], .rv-content [style*="padding-right:100px"] { padding-left: 20px !important; padding-right: 20px !important; }
	.wp-block-cover.rv-tile { padding: 40px 24px !important; }
	.rv-list__item { grid-template-columns: 1fr; }
	.rv-wave-top::before, .rv-band > .rv-wave { height: 30px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }

/* 2.0.4: images centred as Elementor showed them, never wider than their column. */
.wp-block-image.aligncenter { display: block; margin-left: auto; margin-right: auto; text-align: center; }
.wp-block-image.aligncenter > img, .wp-block-image.aligncenter > a > img { display: inline-block; max-width: 100%; height: auto; }
.rv-fit { width: 100%; }
.wp-block-image.aligncenter > figcaption, .wp-block-image > figcaption { display: block; caption-side: initial; margin: 8px 0 0; font-size: 17px; font-style: italic; color: var(--rv-gray, #7A7A7A); text-align: center; }
.wp-block-gallery.rv-gallery.has-nested-images figure.wp-block-image figcaption, .wp-block-gallery.rv-carousel .wp-block-image figcaption, .wp-block-gallery.rv-gallery .wp-block-image figcaption { position: static; inset: auto; width: 100%; max-height: none; overflow: visible; margin: 6px 0 0; padding: 0; background: none; color: #333; font-size: 14px; line-height: 1.4; font-style: italic; text-align: center; text-shadow: none; -webkit-mask-image: none; mask-image: none; backdrop-filter: none; }
.wp-block-gallery.rv-carousel .wp-block-image:has(figcaption) { flex-direction: column; }
.wp-block-gallery.rv-carousel .wp-block-image:has(figcaption) img { height: auto; flex: 0 0 auto; }
/* Divider lines carried from Elementor: the same weight (1px unless set) and colour, full width. */
.wp-block-separator.rv-divider { border: 0; border-top: 1px solid currentColor; height: 0; width: 100%; opacity: 1; background: none !important; }
.wp-block-separator.rv-divider.has-background { border-top-color: var(--rv-div, currentColor); }
.wp-block-separator.rv-divider-2 { border-top-width: 2px; } .wp-block-separator.rv-divider-3 { border-top-width: 3px; } .wp-block-separator.rv-divider-4 { border-top-width: 4px; }
/* Text set in newspaper columns (Elementor's text "Columns" setting). */
.rv-text-cols { column-gap: 40px; } .rv-text-cols-2 { column-count: 2; } .rv-text-cols-3 { column-count: 3; } .rv-text-cols-4 { column-count: 4; }
.rv-text-cols > * { break-inside: avoid; margin-top: 0 !important; margin-bottom: .9rem; }
.rv-text-cols > * + * { margin-top: 0 !important; }
@media (max-width: 767px) { .rv-text-cols { column-count: 1; } }
/* Carousel arrows and dots (added by rv.js), drawn as Elementor's: chevrons inside, dots below. */
.rv-car { position: relative; }
.rv-car > .wp-block-gallery.rv-carousel { scrollbar-width: none; padding-bottom: 0; margin-bottom: 0; }
.rv-car > .wp-block-gallery.rv-carousel::-webkit-scrollbar { display: none; }
.rv-car__arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 34px; height: 44px; margin-top: -14px; padding: 6px; border: 0; background: none; color: #fff; cursor: pointer; filter: drop-shadow(0 1px 3px rgba(0,0,0,.6)); }
.rv-car__arrow svg { width: 100%; height: 100%; display: block; }
.rv-car__prev { left: 6px; } .rv-car__next { right: 6px; }
.rv-car__arrow:focus-visible, .rv-car__dot:focus-visible { outline: 2px solid var(--rv-sky, #1BBAE8); outline-offset: 2px; }
.rv-car__dots { display: flex; justify-content: center; flex-wrap: wrap; gap: 0; margin-top: 8px; }
.rv-car__dot { width: 16px; height: 16px; padding: 0; border: 0; background: none; cursor: pointer; position: relative; }
.rv-car__dot::before { content: ""; position: absolute; left: 5px; top: 5px; width: 6px; height: 6px; border-radius: 50%; background: #000; opacity: .2; }
.rv-car__dot.is-active::before { opacity: 1; }
.wp-block-gallery.rv-carousel img { border-radius: 0; }
/* One photo at a time: shown at its own size, centred (Elementor did not stretch it). */
.wp-block-gallery.rv-carousel.columns-1 > .wp-block-image { justify-content: center; align-items: center; }
.wp-block-gallery.rv-carousel.columns-1 > .wp-block-image img { width: auto !important; max-width: 100%; height: auto !important; margin: 0 auto; object-fit: contain; }
/* News cards (Query Loop), drawn as Elementor's "Cards" posts: photo on top, white card, soft shadow. */
.rv-post-cards .wp-block-post-template { gap: 35px 30px; }
.rv-post-card { height: 100%; display: flex; flex-direction: column; background: #fff; border-radius: 3px; overflow: hidden; box-shadow: 0 0 10px rgba(0,0,0,.15); }
.rv-post-card__img { margin: 0 !important; }
.rv-post-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rv-post-card__text { padding: 20px 30px 0; margin: 0 !important; flex: 1 1 auto; display: flex; flex-direction: column; }
.rv-post-card__title { margin: 0 0 25px !important; font-size: 21px; font-weight: 900; line-height: 1.2; }
.rv-post-card__title a { color: var(--rv-slate, #54595F); text-decoration: none; font-weight: 900; }
.rv-post-card__excerpt { margin: 0 !important; color: #777; flex: 1 1 auto; display: flex; flex-direction: column; }
.rv-post-card__excerpt .wp-block-post-excerpt__excerpt { margin: 0 0 20px; }
.rv-post-card__excerpt .wp-block-post-excerpt__more-text { margin: auto 0 20px; }
.rv-post-card__excerpt .wp-block-post-excerpt__more-link { color: var(--wp--preset--color--rv-pink, #E8188C); font-size: 12px; font-weight: 700; text-transform: uppercase; text-decoration: none; }
@media (max-width: 767px) { .rv-post-cards .wp-block-post-template { grid-template-columns: 1fr !important; } }
/* Links inside a heading take the heading's colour and weight, as Elementor's heading widget did. */
.rv-h a { color: inherit; font-weight: inherit; }

/* Phones (2.0.4): Elementor's own phone settings shrank its big desktop margins and padding; the same
   here, so text keeps a comfortable width. Desktop sizes above are untouched. */
@media (max-width: 767px) {
	.rv-content .rv-sec:not(.wp-block-cover) { padding-left: 10px !important; padding-right: 10px !important; }
	.rv-content .rv-sec.rv-inner:not(.wp-block-cover) { padding-left: 0 !important; padding-right: 0 !important; }
	.rv-content .rv-col:not(.rv-card) { padding-left: 0 !important; padding-right: 0 !important; }
	.rv-content .rv-card { padding-left: 20px !important; padding-right: 20px !important; }
	.rv-content .rv-card.wp-block-group[style*="border-width"] { border-width: 6px !important; }
	.rv-content .wp-block-columns.rv-cols { padding-left: 0 !important; padding-right: 0 !important; }
	.rv-content .rv-fit > * { max-width: 100% !important; }
	.rv-content :where(.is-layout-constrained) > * { max-width: 100%; }
	.rv-content .wp-block-image img[style*="%"] { width: 100% !important; height: auto !important; }
	.rv-content .wp-block-cover.rv-sec { padding-left: 16px !important; padding-right: 16px !important; }
	.rv-content .rv-sec[style*="margin-top:-100px"] { margin-top: -60px !important; }
}

/* ==================================================================================================
   2.0.5 polish: the same Riverview look, finished more carefully. Text reads darker and roomier,
   photos and cards have softer depth, things you can press answer when you press them, and phones
   get layouts made for them. The header is untouched.
   ================================================================================================== */

::selection { background: rgba(121, 204, 218, .45); color: inherit; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; } }

/* Text: a touch darker for easy reading, roomier lines, tidy rag. */
.rv-content p, .rv-content li { text-wrap: pretty; }
.rv-content :is(h1, h2, h3, h4) { text-wrap: balance; }
.rv-content .wp-block-heading:not(.rv-h) { line-height: 1.2; }
.rv-content .rv-h { line-height: 1.15; }
.rv-content li { margin-bottom: .35em; }
.rv-content li > ul, .rv-content li > ol { margin-top: .35em; }
.rv-content ul:not(.rv-menu-list):not(.rv-icon-list):not(.wp-block-social-links):not([class*="rvc-"]) > li::marker { color: var(--rv-teal); }

/* Links inside text: underline on hover so they read as links, not just colour. */
.rv-content p a:not(.wp-element-button), .rv-content li a:not(.wp-element-button) { text-underline-offset: 3px; text-decoration-thickness: 1px; }
.rv-content p a:not(.wp-element-button):hover, .rv-content li a:not(.wp-element-button):hover { text-decoration: underline; }

/* Photos in pages: gently rounded corners (logos and icons stay as drawn). */
.rv-content .wp-block-image.rv-img:not(.aligncenter) img, .rv-content .rv-card > .wp-block-image img,
.rv-content .wp-block-image.rv-img.aligncenter img:not([src$=".png"]):not([src$=".svg"]) { border-radius: 12px; }
.wp-block-gallery.rv-carousel img { border-radius: 10px; }

/* Cards: layered, softer depth; cards that lead somewhere lift a little when pointed at. */
.rv-shadow, .is-style-rv-card, .rv-content .rv-card.has-background { box-shadow: var(--rv-shadow); }
.rv-content .rv-card:has(.wp-block-button) { transition: transform .35s var(--rv-ease), box-shadow .35s var(--rv-ease); }
@media (hover: hover) {
	.rv-content .rv-cols > .rv-card:has(.wp-block-button):hover { transform: translateY(-4px); box-shadow: var(--rv-shadow-lg); }
}

/* Photo tiles (Schedule a Tour, About Riverview...): a darker edge behind the words and a slow zoom on hover. */
.rv-tile { overflow: hidden; }
.rv-tile > .wp-block-cover__image-background { transition: transform 1.2s var(--rv-ease); }
.rv-tile::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: linear-gradient(100deg, rgba(10, 30, 40, .55) 0%, rgba(10, 30, 40, .15) 60%, rgba(10, 30, 40, 0) 100%); }
.rv-tile > .wp-block-cover__inner-container { position: relative; z-index: 1; }
@media (hover: hover) { .rv-col-tile:hover .rv-tile > .wp-block-cover__image-background { transform: scale(1.05); } }

/* Buttons: they answer the pointer and the keyboard. */
.wp-block-button__link { transition: transform .2s var(--rv-ease), box-shadow .2s var(--rv-ease), filter .2s, background-color .2s, color .2s, border-color .2s; }
@media (hover: hover) { .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover { transform: translateY(-2px); filter: brightness(1.05) saturate(1.05); box-shadow: 0 10px 22px -10px rgba(0, 0, 0, .45); } }
.wp-block-button__link:active { transform: translateY(0); filter: brightness(.96); }
.wp-block-button__link:focus-visible, .rv-form .rv-form__submit:focus-visible { outline: 3px solid var(--rv-sky); outline-offset: 3px; }

/* Page banner: a soft shade at the bottom so the title always reads, and the trail back home under it. */
.rv-band::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,0) 35%, rgba(0,0,0,0) 55%, rgba(0,0,0,.35) 100%); }
.rv-band__title { letter-spacing: -0.5px; }
.rv-crumbs { margin: 14px 0 0; font-size: 15px; font-weight: 600; color: rgba(255,255,255,.92); text-shadow: 0 1px 6px rgba(0,0,0,.6); }
.rv-crumbs ol { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 0; margin: 0; padding: 0; }
.rv-crumbs li { margin: 0; }
.rv-crumbs li + li::before { content: "/"; margin: 0 10px; opacity: .65; }
.rv-crumbs a { color: #fff; text-decoration: none; }
.rv-crumbs a:hover { text-decoration: underline; text-underline-offset: 3px; }
.rv-crumbs [aria-current] { opacity: .85; }

/* Carousels: round, easy-to-hit arrows on a soft shade; bigger dots. */
.rv-car__arrow { width: 42px; height: 42px; margin-top: -14px; padding: 10px; border-radius: 50%; background: rgba(20, 30, 35, .42); filter: none; backdrop-filter: blur(2px); transition: background .2s; }
.rv-car__arrow:hover { background: rgba(20, 30, 35, .65); }
.rv-car__prev { left: 10px; } .rv-car__next { right: 10px; }
.rv-car__dot { width: 20px; height: 20px; }
.rv-car__dot::before { left: 6px; top: 6px; width: 8px; height: 8px; background: var(--rv-deep); opacity: .25; transition: opacity .2s, transform .2s; }
.rv-car__dot.is-active::before { opacity: 1; transform: scale(1.15); }
.wp-block-gallery.rv-gallery .wp-block-image img, .wp-block-gallery.rv-carousel .wp-block-image img { cursor: zoom-in; }

/* Questions and answers: a clear row you can press, and a gentle shade while open. */
.wp-block-details.rv-faq { transition: background-color .2s; border-radius: 6px; padding-left: 12px; padding-right: 12px; }
.wp-block-details.rv-faq:hover, .wp-block-details.rv-faq[open] { background: #f5fafb; }
.wp-block-details.rv-faq summary:focus-visible { outline-offset: 4px; border-radius: 4px; }

/* Divider lines: lighter, so they separate without shouting. */
.wp-block-separator.rv-divider { opacity: .35; }

/* Photo viewer (opens when a gallery or carousel photo is pressed). */
.rv-lb { position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center; background: rgba(12, 18, 22, .92); padding: 56px 64px; opacity: 0; transition: opacity .25s; }
.rv-lb.is-open { opacity: 1; }
.rv-lb[hidden] { display: none; }
.rv-lb__fig { margin: 0; max-width: min(1200px, 100%); max-height: 100%; display: flex; flex-direction: column; align-items: center; }
.rv-lb__img { max-width: 100%; max-height: calc(100vh - 160px); object-fit: contain; border-radius: 8px; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.rv-lb__cap { margin: 14px 0 0; color: #e8eef0; font-size: 16px; font-style: italic; text-align: center; }
.rv-lb__count { position: absolute; top: 18px; left: 22px; color: rgba(255,255,255,.75); font-size: 14px; font-family: var(--wp--preset--font-family--montserrat); font-weight: 700; }
.rv-lb button { position: absolute; border: 0; background: rgba(255,255,255,.12); color: #fff; width: 48px; height: 48px; border-radius: 50%; cursor: pointer; display: grid; place-items: center; transition: background .2s; }
.rv-lb button:hover { background: rgba(255,255,255,.25); }
.rv-lb button svg { width: 22px; height: 22px; }
.rv-lb__close { top: 12px; right: 14px; }
.rv-lb__prev { left: 12px; top: 50%; transform: translateY(-50%); }
.rv-lb__next { right: 12px; top: 50%; transform: translateY(-50%); }
@media (max-width: 767px) { .rv-lb { padding: 56px 8px; } .rv-lb__prev, .rv-lb__next { top: auto; bottom: 14px; transform: none; } }

/* Back to top: appears after a long scroll. */
.rv-top { position: fixed; right: 18px; bottom: 18px; z-index: 900; width: 46px; height: 46px; border: 0; border-radius: 50%; background: var(--rv-deep); color: #fff; box-shadow: 0 8px 22px -6px rgba(0,0,0,.4); cursor: pointer; display: grid; place-items: center; opacity: 0; transform: translateY(12px); pointer-events: none; transition: opacity .3s, transform .3s var(--rv-ease), background .2s; }
.rv-top.is-on { opacity: 1; transform: none; pointer-events: auto; }
.rv-top:hover { background: var(--rv-sky); }
.rv-top svg { width: 20px; height: 20px; }

/* Footer: a little more air and clearer links. */
.rv-footer .rv-menu-list a { transition: color .2s, transform .2s; }
@media (hover: hover) { .rv-footer .rv-menu-list a:hover { transform: translateX(3px); } }
.rv-footer .wp-block-social-links .wp-social-link { transition: transform .2s var(--rv-ease), background .2s; }
.rv-footer .wp-block-social-links .wp-social-link:hover { transform: translateY(-2px); background: var(--rv-deep); }

/* -------------------------------------------------------------------- phones */
@media (max-width: 767px) {
	.rv-content p, .rv-content li { font-size: 17px; }
	.rv-band { padding: 170px 18px 110px; }
	.rv-band__title { font-size: clamp(36px, 10vw, 46px); }
	.rv-crumbs { font-size: 13px; }
	/* Photo tiles keep their words off the edges. */
	.rv-content .wp-block-cover.rv-tile { padding: 44px 24px !important; min-height: 0; }
	.rv-content .rv-col-tile { padding: 0 !important; }
	/* Short call-to-action bands stack and centre. */
	.rv-content .rv-row { justify-content: center !important; text-align: center; }
	.rv-content .rv-row > .wp-block-heading { text-align: center; }
	/* Buttons are easy to hit and never cramped. */
	.rv-content .wp-block-button__link { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; }
	.rv-content .wp-block-buttons { gap: 12px; }
	/* Cards breathe a little less on a small screen. */
	.rv-content .rv-cols > .rv-card { margin-left: 4px; margin-right: 4px; }
	/* Footer: menus two across, badges in a neat row, everything centred. */
	.rv-footer .rv-cols { display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px 12px; }
	.rv-footer .rv-cols > .wp-block-column { flex-basis: auto !important; padding: 10px !important; }
	.rv-footer .rv-cols > .wp-block-column:first-child { grid-column: 1 / -1; text-align: center; }
	.rv-footer .rv-cols > .wp-block-column:first-child .wp-block-image, .rv-footer .rv-cols > .wp-block-column:first-child .wp-block-social-links { justify-content: center; margin-left: auto; margin-right: auto; }
	.rv-footer .rv-cols > .wp-block-column:first-child .rv-icon-list { display: inline-block; text-align: left; }
	.rv-footer .rv-cols > .wp-block-column:nth-child(2) { grid-column: 1 / -1; order: 9; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px 20px; }
	.rv-footer .rv-cols > .wp-block-column:nth-child(2) > * { margin: 0 !important; }
	.rv-footer .rv-cols > .wp-block-column:nth-child(2) img { max-height: 70px; width: auto !important; }
	.rv-footer .rv-cols .wp-block-image img[src*="Inlander"], .rv-footer .rv-cols .wp-block-image img[src*="State-Survey"], .rv-footer .rv-cols .wp-block-image img[src*="LA.Washington"] { max-width: 120px; width: 120px !important; }
	.rv-footer .rv-menu-list a { padding: 7px 8px; font-size: 16px; }
	.rv-footer .rv-cols .wp-block-heading { font-size: 18px !important; }
	.rv-top { right: 12px; bottom: 12px; width: 44px; height: 44px; }
}

/* Content that rises into the title band sits above the band's photo shading. */
.rv-content .rv-sec[style*="margin-top:-"], .rv-content [style*="margin-top:-"] { position: relative; z-index: 4; }
@media (max-width: 767px) {
	/* Long centred paragraphs read flush left on phones. */
	.rv-content p.rv-long { text-align: left !important; }
	/* A card inside a card drops its own frame so the words get the width. */
	.rv-content .rv-card .rv-card { padding: 18px 4px !important; border-width: 0 !important; box-shadow: none !important; }
	/* Carousels show one photo at a time with a peek of the next, instead of two thumbnails. */
	.wp-block-gallery.rv-carousel:not(.columns-1) > .wp-block-image { width: 84% !important; }
	.wp-block-gallery.rv-carousel:not(.columns-1) > .wp-block-image img { aspect-ratio: 3 / 2; height: auto !important; }
	.rv-car__arrow { top: calc(50% - 22px); }
}
@media (max-width: 767px) {
	/* Coloured panels (like the appointment form) keep breathing room inside on phones. */
	.rv-content .rv-col.has-background:not(.rv-card) { padding-left: 20px !important; padding-right: 20px !important; }
}

/* ------------------------------------------------------------------ 2.0.13 menu: readable on every photo */
/* A deeper, longer shade behind the header so the menu reads on bright photos as well as it does on the home page. */
.rv-over-hero .rv-header { background: linear-gradient(180deg, rgba(8,18,22,.62) 0%, rgba(8,18,22,.42) 40%, rgba(8,18,22,.16) 75%, rgba(8,18,22,0) 100%); }
.rv-over-hero .rv-menu > li > a, .rv-over-hero .rv-sub-toggle { text-shadow: 0 1px 2px rgba(0,0,0,.6), 0 2px 16px rgba(0,0,0,.5); }
@media (min-width: 1025px) {
	/* The current page and the hovered item get a short underline bar, so they stand out even when orange meets a bright photo. */
	.rv-menu > li > a { position: relative; }
	.rv-menu > li > a::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 5px; height: 3px; border-radius: 3px; background: var(--rv-orange); box-shadow: 0 1px 4px rgba(0,0,0,.35); transform: scaleX(0); transform-origin: left; transition: transform .25s var(--rv-ease, ease); }
	.rv-menu > li > a:hover::after, .rv-menu > li > a:focus-visible::after,
	.rv-menu > li.current-menu-item > a::after, .rv-menu > li.current-menu-ancestor > a::after, .rv-menu > li.current_page_item > a::after { transform: scaleX(1); }
	.rv-menu > li > a:focus-visible { outline: 2px solid #fff; outline-offset: 2px; border-radius: 6px; }
	/* Dropdowns: a touch of air and a soft frame. */
	.rv-menu ul { padding: 10px 0; border-radius: 12px; border-top: 3px solid var(--rv-orange); }
	/* Scrolling down a long page keeps a slim menu bar at the top. */
	.rv-over-hero.rv-stuck .rv-header { position: fixed; top: 0; padding: 4px 0 8px; background: rgba(20, 44, 52, .93); -webkit-backdrop-filter: saturate(1.2) blur(8px); backdrop-filter: saturate(1.2) blur(8px); box-shadow: 0 8px 24px rgba(0,0,0,.2); animation: rv-drop .3s var(--rv-ease, ease); }
	.admin-bar.rv-over-hero.rv-stuck .rv-header { top: 32px; }
	.rv-stuck .rv-header > .rv-wave { display: none; }
	.rv-stuck .rv-header__in { padding-top: 4px; }
	.rv-stuck .rv-logo__img { width: 190px; max-height: 64px; }
	.rv-stuck .rv-menu > li > a, .rv-stuck .rv-sub-toggle { text-shadow: none; }
}
@keyframes rv-drop { from { transform: translateY(-100%); } to { transform: none; } }
@media (prefers-reduced-motion: reduce) { .rv-over-hero.rv-stuck .rv-header { animation: none; } }

/* ------------------------------------------------------------------ 2.0.6 menu: no Elementor chevrons */
@media (min-width: 1025px) {
	/* The open/close buttons stay for keyboards and screen readers but are not drawn; menus open on point or focus. */
	.rv-menu .rv-sub-toggle { position: absolute; width: 1px; height: 1px; margin: 0; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
	.rv-menu > li > .rv-sub-toggle:focus-visible { clip: auto; clip-path: none; width: 18px; height: 6px; left: 50%; bottom: 0; transform: translateX(-50%); overflow: visible; border-radius: 3px; background: #fff; outline: 2px solid var(--rv-orange); }
	.rv-menu > li > .rv-sub-toggle:focus-visible span { display: none; }
	/* Dropdown panel: floats a little below, with a soft bridge so it never snaps shut on the way down. */
	.rv-menu > li > ul { top: calc(100% + 8px); min-width: 250px; padding: 10px; border: 0; border-radius: 16px; background: rgba(255,255,255,.98); box-shadow: 0 2px 6px rgba(16,40,48,.06), 0 18px 44px -12px rgba(16,40,48,.32); transition: opacity .18s var(--rv-ease, ease), transform .18s var(--rv-ease, ease), visibility 0s linear .18s; }
	.rv-menu > li > ul::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
	.rv-menu > li > ul::after { content: ""; position: absolute; top: -6px; left: 28px; width: 12px; height: 12px; background: inherit; border-radius: 3px 0 0 0; transform: rotate(45deg); box-shadow: -2px -2px 4px rgba(16,40,48,.05); }
	.rv-menu > li:nth-last-child(-n+2) > ul::after { left: auto; right: 28px; }
	.rv-menu li:hover > ul, .rv-menu li:focus-within > ul, .rv-menu li.rv-open > ul { transition-delay: 0s; }
	.rv-menu ul a { border-radius: 10px; padding: 10px 14px; font-size: 16px; transition: background-color .15s, color .15s, padding-left .2s var(--rv-ease, ease); }
	.rv-menu ul a:hover, .rv-menu ul a:focus { background: #EEF8FA; color: var(--rv-deep); padding-left: 18px; }
	.rv-menu ul .current-menu-item > a { background: #EEF8FA; color: var(--rv-deep); box-shadow: inset 3px 0 0 var(--rv-orange); }
	.rv-menu ul ul { left: calc(100% + 10px); top: -10px; padding: 10px; border: 0; border-radius: 16px; box-shadow: 0 18px 44px -12px rgba(16,40,48,.32); }
	.rv-menu ul li:has(> ul) > a::after { content: "›"; float: right; margin-left: 12px; opacity: .45; }
}

/* ------------------------------------------------------------------ 2.0.6 buttons: colour to colour */
/* Each brand colour drifts gently into its neighbour (pink to warm coral, green to sea blue, and so on),
   with a matching soft glow. On hover the blend slides across. Outline and see-through buttons are left alone. */
.wp-block-button__link.has-background, .wp-block-button__link:not(.has-background) {
	--rv-g1: transparent; --rv-g2: transparent; --rv-glow: rgba(0,0,0,.25);
	background-image: linear-gradient(115deg, var(--rv-g1) 0%, var(--rv-g1) 30%, var(--rv-g2) 100%);
	background-size: 160% 100%; background-position: 0 50%;
	transition: transform .2s var(--rv-ease, ease), box-shadow .25s var(--rv-ease, ease), background-position .5s var(--rv-ease, ease), background-color .2s, color .2s, border-color .2s;
}
.wp-block-button__link:not(.has-background) { --rv-g1: #9DCD6D; --rv-g2: #6EC8A6; --rv-glow: rgba(110,200,166,.55); }
.wp-block-button__link.has-rv-green-background-color { --rv-g1: #9DCD6D; --rv-g2: #6EC8A6; --rv-glow: rgba(110,200,166,.55); }
.wp-block-button__link.has-rv-pink-background-color { --rv-g1: #E8188C; --rv-g2: #F5695F; --rv-glow: rgba(232,24,140,.45); }
.wp-block-button__link.has-rv-orange-background-color { --rv-g1: #F39229; --rv-g2: #F8BC3E; --rv-glow: rgba(243,146,41,.5); }
.wp-block-button__link.has-rv-teal-background-color { --rv-g1: #79CCDA; --rv-g2: #42B9E6; --rv-glow: rgba(66,185,230,.5); }
.wp-block-button__link.has-rv-sky-background-color { --rv-g1: #1BBAE8; --rv-g2: #3FCDC4; --rv-glow: rgba(27,186,232,.5); }
.wp-block-button__link.has-rv-deep-background-color { --rv-g1: #196682; --rv-g2: #2493A6; --rv-glow: rgba(25,102,130,.5); }
.wp-block-button__link.has-rv-plum-background-color { --rv-g1: #BC3F82; --rv-g2: #E35C78; --rv-glow: rgba(188,63,130,.45); }
.wp-block-button__link.has-rv-ink-background-color { --rv-g1: #272727; --rv-g2: #3F4A54; --rv-glow: rgba(20,30,40,.5); }
.wp-block-button__link.has-rv-slate-background-color { --rv-g1: #54595F; --rv-g2: #5F7180; --rv-glow: rgba(40,50,60,.45); }
.wp-block-button__link.has-rv-white-background-color { --rv-g1: #FFFFFF; --rv-g2: #EEF8FA; --rv-glow: rgba(16,40,48,.25); }
/* See-through (outline) buttons keep their clear background. */
.wp-block-button.is-style-outline > .wp-block-button__link { background-image: none; }
@media (hover: hover) {
	.wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover { background-position: 100% 50%; filter: none; box-shadow: 0 12px 26px -12px var(--rv-glow); }
	/* 2.0.6: the default button no longer turns white on hover (its words are often set to white). */
}
/* Form Send buttons get the same quiet sheen. */
.rv-form .rv-form__submit { background-image: linear-gradient(115deg, rgba(255,255,255,0) 30%, rgba(255,255,255,.14) 100%); transition: transform .2s, box-shadow .25s, filter .2s; }
@media (hover: hover) { .rv-form .rv-form__submit:hover { transform: translateY(-1px); box-shadow: 0 12px 24px -12px rgba(0,0,0,.5); } }
/* Waves: a whisper of depth under the header curve. */
.rv-header > .rv-wave { filter: drop-shadow(0 3px 6px rgba(10, 60, 90, .16)); }

/* ------------------------------------------------------------------ 2.0.6 photo shading: light warm taupe, never black */
/* The photo shows through nearly untouched: a soft taupe-grey haze only where the menu sits, and the words carry their own shadow. */
.rv-over-hero .rv-header { background: linear-gradient(180deg, rgba(74,64,56,.40) 0%, rgba(74,64,56,.26) 45%, rgba(74,64,56,.10) 78%, rgba(74,64,56,0) 100%); }
.rv-over-hero .rv-menu > li > a, .rv-over-hero .rv-sub-toggle { text-shadow: 0 1px 2px rgba(46,38,32,.55), 0 2px 14px rgba(46,38,32,.45); }
.rv-band::after { background: none; mix-blend-mode: normal; }
.rv-band::before { background: linear-gradient(180deg, rgba(74,64,56,.14) 0%, rgba(74,64,56,0) 32%, rgba(74,64,56,0) 58%, rgba(74,64,56,.22) 100%); }
.rv-band__title { text-shadow: 0 1px 3px rgba(46,38,32,.45), 0 4px 22px rgba(46,38,32,.45); }
.rv-crumbs { text-shadow: 0 1px 2px rgba(46,38,32,.6), 0 1px 10px rgba(46,38,32,.45); }
.rv-car__dots.is-count { margin-top: 12px; }
.rv-car__count { display: inline-block; padding: 5px 12px; border-radius: 999px; background: #EEF5F7; color: var(--rv-deep); font: 600 13px/1.2 var(--wp--preset--font-family--montserrat, sans-serif); letter-spacing: .3px; }
/* A button that follows a card gets room to breathe instead of touching its edge. */
.rv-sec:has(.rv-card) + .rv-sec > .rv-inner > .wp-block-buttons:first-child,
.rv-sec:has(.rv-card) + .rv-sec > .wp-block-buttons:first-child { margin-top: 44px; }

/* ------------------------------------------------------------------ 2.0.6 shadows tinted by neighbourhood */
/* Shadows are never pure grey: each part of the campus leans its shade, very slightly, toward its own colour. */
:root { --rv-tint: 20, 40, 50; }
.rv-p-the-crest { --rv-tint: 104, 62, 24; }
.rv-p-the-heights, .rv-p-rehabilitation-center, .rv-p-physical-therapy, .rv-p-aquatic-therapy, .rv-p-occupational-therapy, .rv-p-speech-therapy { --rv-tint: 14, 66, 96; }
.rv-p-independent-living, .rv-p-senior-living, .rv-p-amenities { --rv-tint: 44, 78, 30; }
.rv-p-assisted-living { --rv-tint: 96, 60, 28; }
.rv-p-memory-care, .rv-p-memory-care-for-loved-ones { --rv-tint: 88, 34, 62; }
.rv-p-careers, .rv-p-donate, .rv-p-donation-thank-you { --rv-tint: 92, 22, 62; }
.rv-p-rivercare, .rv-p-home-care, .rv-p-hospice, .rv-p-home-health { --rv-tint: 26, 78, 62; }
body {
	--rv-shadow-sm: 0 1px 2px rgba(var(--rv-tint), .06), 0 2px 8px rgba(var(--rv-tint), .07);
	--rv-shadow: 0 1px 2px rgba(var(--rv-tint), .06), 0 14px 34px -10px rgba(var(--rv-tint), .24);
	--rv-shadow-lg: 0 2px 4px rgba(var(--rv-tint), .06), 0 26px 50px -14px rgba(var(--rv-tint), .32);
}

/* ------------------------------------------------------------------ 2.0.6 links */
.rv-ext-note { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ------------------------------------------------------------------ 2.0.6 photo stacks become a mosaic */
/* A one-photo-wide gallery beside text (RiverCare) used to stack every photo full size. Now: one large
   photo, the rest as a tidy two-across grid, all opening in the photo viewer. */
@media (min-width: 600px) {
	.wp-block-column > .wp-block-gallery.rv-gallery.columns-1:not(.rv-carousel):has(> figure:nth-child(3)) { display: grid !important; grid-template-columns: 1fr 1fr; gap: 12px !important; }
	.wp-block-column > .wp-block-gallery.rv-gallery.columns-1:not(.rv-carousel):has(> figure:nth-child(3)) > figure.wp-block-image { width: auto !important; margin: 0 !important; aspect-ratio: 1; }
	.wp-block-column > .wp-block-gallery.rv-gallery.columns-1:not(.rv-carousel):has(> figure:nth-child(3)) > figure.wp-block-image:first-child { grid-column: 1 / -1; aspect-ratio: 4 / 3; }
	.wp-block-column > .wp-block-gallery.rv-gallery.columns-1:not(.rv-carousel):has(> figure:nth-child(3)) > figure.wp-block-image:nth-child(even):last-child { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
	.wp-block-column > .wp-block-gallery.rv-gallery.columns-1:not(.rv-carousel):has(> figure:nth-child(3)) > figure.wp-block-image img { width: 100% !important; height: 100% !important; object-fit: cover; border-radius: 14px; transition: transform .4s var(--rv-ease, ease), box-shadow .3s; }
	.wp-block-column > .wp-block-gallery.rv-gallery.columns-1:not(.rv-carousel):has(> figure:nth-child(3)) > figure.wp-block-image { overflow: hidden; border-radius: 14px; box-shadow: var(--rv-shadow-sm); }
}
@media (hover: hover) and (min-width: 600px) { .wp-block-column > .wp-block-gallery.rv-gallery.columns-1:not(.rv-carousel) > figure.wp-block-image:hover img { transform: scale(1.04); } }

/* ------------------------------------------------------------------ 2.0.6 service cards */
/* Columns that are "photo, title, words, Learn More" (the therapy services) become real cards: photo
   bleeding to the edges, a calmer title, a pill link, and the whole card clickable. */
.rv-cols:has(> .rv-col + .rv-col) > .rv-col:not(.rv-card):not(.has-background):not(:has(> :nth-child(6))):has(> .wp-block-image:first-child):has(> .wp-block-heading):has(> p:last-child > a) {
	position: relative; background: #fff; border-radius: 24px; overflow: hidden; box-shadow: var(--rv-shadow);
	padding: 0 26px 28px !important; transition: transform .3s var(--rv-ease, ease), box-shadow .3s var(--rv-ease, ease);
}
.rv-cols:has(> .rv-col + .rv-col) > .rv-col:not(.rv-card):not(.has-background):not(:has(> :nth-child(6))):has(> .wp-block-image:first-child):has(> .wp-block-heading):has(> p:last-child > a) > .wp-block-image:first-child { margin: 0 -26px 22px !important; max-width: none; }
.rv-cols:has(> .rv-col + .rv-col) > .rv-col:not(.rv-card):not(.has-background):not(:has(> :nth-child(6))):has(> .wp-block-image:first-child):has(> .wp-block-heading):has(> p:last-child > a) > .wp-block-image:first-child img { width: 100% !important; aspect-ratio: 16 / 10; height: auto !important; object-fit: cover; border-radius: 0 !important; transition: transform .5s var(--rv-ease, ease); }
.rv-cols:has(> .rv-col + .rv-col) > .rv-col:not(.rv-card):not(.has-background):not(:has(> :nth-child(6))):has(> .wp-block-image:first-child):has(> .wp-block-heading):has(> p:last-child > a) > .wp-block-heading { font-size: clamp(24px, 2.2vw, 30px) !important; margin: 0 0 10px !important; color: #2C3A40; letter-spacing: -.3px; }
.rv-cols:has(> .rv-col + .rv-col) > .rv-col:not(.rv-card):not(.has-background):not(:has(> :nth-child(6))):has(> .wp-block-image:first-child):has(> .wp-block-heading):has(> p:last-child > a) > p { font-size: 17px; }
.rv-cols:has(> .rv-col + .rv-col) > .rv-col:not(.rv-card):not(.has-background):not(:has(> :nth-child(6))):has(> .wp-block-image:first-child):has(> .wp-block-heading):has(> p:last-child > a) > p:last-child { margin-top: 18px !important; margin-bottom: 0 !important; }
.rv-cols:has(> .rv-col + .rv-col) > .rv-col:not(.rv-card):not(.has-background):not(:has(> :nth-child(6))):has(> .wp-block-image:first-child):has(> .wp-block-heading):has(> p:last-child > a) > p:last-child > a { display: inline-flex; align-items: center; gap: 8px; padding: 10px 20px; border-radius: 999px; background: linear-gradient(115deg, #EEF7E6, #E8F6F8); color: var(--rv-deep); font-size: 15px; text-decoration: none; }
.rv-cols:has(> .rv-col + .rv-col) > .rv-col:not(.rv-card):not(.has-background):not(:has(> :nth-child(6))):has(> .wp-block-image:first-child):has(> .wp-block-heading):has(> p:last-child > a) > p:last-child > a::after { content: ""; position: absolute; inset: 0; border-radius: 24px; }
@media (hover: hover) {
	.rv-cols:has(> .rv-col + .rv-col) > .rv-col:not(.rv-card):not(.has-background):not(:has(> :nth-child(6))):has(> .wp-block-image:first-child):has(> .wp-block-heading):has(> p:last-child > a):hover { transform: translateY(-4px); box-shadow: var(--rv-shadow-lg); }
	.rv-cols:has(> .rv-col + .rv-col) > .rv-col:not(.rv-card):not(.has-background):not(:has(> :nth-child(6))):has(> .wp-block-image:first-child):has(> .wp-block-heading):has(> p:last-child > a):hover > .wp-block-image:first-child img { transform: scale(1.04); }
	.rv-cols:has(> .rv-col + .rv-col) > .rv-col:not(.rv-card):not(.has-background):not(:has(> :nth-child(6))):has(> .wp-block-image:first-child):has(> .wp-block-heading):has(> p:last-child > a):hover > p:last-child > a { background: linear-gradient(115deg, #9DCD6D, #6EC8A6); color: #fff; }
}
.rv-cols:has(> .rv-col:not(.rv-card):not(.has-background):has(> .wp-block-image:first-child):has(> .wp-block-heading):has(> p:last-child > a)) { gap: 30px !important; margin-bottom: 30px !important; }

/* ------------------------------------------------------------------ 2.0.6 a grander footer (same colours) */
@media (min-width: 768px) {
	.rv-footer > .rv-sec:first-child { padding-top: 110px !important; padding-bottom: 46px !important; }
	.rv-footer > .rv-sec:first-child > .wp-block-heading:first-child { margin-bottom: 30px !important; letter-spacing: -.5px; }
	.rv-footer .rvc-lead { max-width: 780px; margin: 0 auto 40px; font-size: 18px; line-height: 1.7; }
	.rv-footer .rv-cols { max-width: 1240px; margin: 34px auto 0 !important; gap: 34px !important; padding-top: 50px; border-top: 1px solid rgba(25, 102, 130, .12); }
	.rv-footer .rv-cols .wp-block-heading { margin-bottom: 14px !important; letter-spacing: .2px; }
	.rv-footer .rv-menu-list a { padding-top: 7px; padding-bottom: 7px; font-size: 16px; }
	.rv-footer .rv-icon-list li { margin-bottom: 8px; }
	.rv-footer .wp-block-social-links { gap: 10px !important; margin-top: 18px !important; }
}
.rv-footer > .rv-sec:first-child > p:last-child { margin-top: 56px !important; padding-top: 26px; border-top: 1px solid rgba(25, 102, 130, .12); font-size: 14px; letter-spacing: .2px; color: var(--rv-gray); }
.rv-footer__legal { margin: -30px 0 0; padding: 0 20px 34px; text-align: center; font-size: 13px; background: var(--wp--preset--color--rv-light, #F6F6F6); }
.rv-footer__legal a { color: var(--rv-gray); text-decoration: underline; text-underline-offset: 3px; }

/* ------------------------------------------------------------------ 2.0.6 division boxes: a whisper of gradient */
/* The coloured service boxes (home page and others) shift ever so slightly toward a neighbouring tint,
   with a soft light from the top corner. Close up it reads as depth, not as a gradient. */
.rv-content .rv-card.has-background:is(.has-rv-green-background-color, .has-rv-orange-background-color, .has-rv-pink-background-color, .has-rv-teal-background-color, .has-rv-deep-background-color, .has-rv-sky-background-color, .has-rv-plum-background-color) {
	background-image: radial-gradient(120% 80% at 0% 0%, rgba(255,255,255,.10) 0%, rgba(255,255,255,0) 55%), linear-gradient(155deg, rgba(0,0,0,0) 30%, var(--rv-div-shift, rgba(0,0,0,0)) 100%);
}
.rv-content .rv-card.has-rv-green-background-color { --rv-div-shift: rgba(110,200,166,.35); }
.rv-content .rv-card.has-rv-orange-background-color { --rv-div-shift: rgba(248,188,62,.40); }
.rv-content .rv-card.has-rv-pink-background-color { --rv-div-shift: rgba(245,105,95,.30); }
.rv-content .rv-card.has-rv-teal-background-color { --rv-div-shift: rgba(66,185,230,.32); }
.rv-content .rv-card.has-rv-deep-background-color { --rv-div-shift: rgba(36,147,166,.35); }
.rv-content .rv-card.has-rv-sky-background-color { --rv-div-shift: rgba(63,205,196,.30); }
.rv-content .rv-card.has-rv-plum-background-color { --rv-div-shift: rgba(227,92,120,.30); }
/* Their white outline buttons get a faint glass blend and fill white on hover. */
.rv-content .rv-card.has-background .wp-block-button.is-style-outline > .wp-block-button__link { background-image: linear-gradient(115deg, rgba(255,255,255,.20), rgba(255,255,255,.04)); }
@media (hover: hover) { .rv-content .rv-card.has-background .wp-block-button.is-style-outline > .wp-block-button__link:hover { background-color: #fff !important; background-image: none !important; color: var(--rv-ink) !important; transform: translateY(-2px); box-shadow: 0 10px 22px -12px rgba(0,0,0,.45); } }

/* ------------------------------------------------------------------ 2.0.7 one box, never a box in a box */
/* A white card inside another white card (About, Amenities) drops its own frame and shadow on every
   screen size, so the page reads as one clean panel. Coloured cards inside keep their colour. */
.rv-content .rv-card .rv-card:not(.has-background), .rv-content .rv-card .rv-card.has-rv-white-background-color {
	background: transparent !important; box-shadow: none !important; border-color: transparent !important;
}
/* The default button never turns white on hover, whatever an older theme.json says. */
@media (hover: hover) { :root .wp-block-button:not(.is-style-outline) > .wp-block-button__link:not(.has-background):hover { background-color: var(--wp--preset--color--rv-green, #9DCD6D); } }

/* ------------------------------------------------------------------ 2.0.7 every-page tidy */
/* Question lists that sit on their own (not inside a card) get the same white card as the rest. */
.rv-content .rv-sec > .rvc-faq { max-width: 1140px; margin: 40px auto !important; padding: 26px 36px; background: #fff; border-radius: 28px; box-shadow: var(--rv-shadow); }
/* No dead space under the last question in a card. */
.rv-content .rv-card > .rvc-faq:last-child { margin-bottom: 0 !important; }
.rv-content .rvc-faq > .rvc-faq__item:last-child { border-bottom: 0; }
/* A coloured band that follows a card gets room, so the card's shadow is not cut off. */
.rv-content > .rv-sec:has(.rv-card) + .rv-sec.has-background, .rv-content > .rv-sec:has(.rv-card) + .alignfull.has-background { margin-top: 60px !important; }
/* Long paragraphs that sit in a column beside something else read flush left on every screen. */
@media (min-width: 768px) { .wp-block-columns > .wp-block-column:not(:only-child) p.rv-long { text-align: left !important; } }
/* Photo-and-quote rows (the Foundation board on Donate) become tidy quote cards instead of a long
   column of loose photos with a wide empty right side. */
.rv-content > .rv-sec:has(> .rv-cols > .rv-col:first-child > .wp-block-image:only-child):has(> .rv-cols > .rv-col:nth-child(2) > h3:first-child) { padding-top: 0 !important; padding-bottom: 0 !important; }
.rv-content > .rv-sec:has(> .rv-cols > .rv-col:first-child > .wp-block-image:only-child):has(> .rv-cols > .rv-col:nth-child(2) > h3:first-child) > .rv-cols { max-width: 820px; margin: 0 auto 16px !important; padding: 16px 26px 16px 16px; gap: 22px !important; align-items: center !important; background: #fff; border-radius: 22px; box-shadow: var(--rv-shadow-sm); flex-wrap: nowrap !important; }
.rv-content > .rv-sec:has(> .rv-cols > .rv-col:first-child > .wp-block-image:only-child):has(> .rv-cols > .rv-col:nth-child(2) > h3:first-child) > .rv-cols > .rv-col:first-child { flex: 0 0 104px !important; padding: 0 !important; }
.rv-content > .rv-sec:has(> .rv-cols > .rv-col:first-child > .wp-block-image:only-child):has(> .rv-cols > .rv-col:nth-child(2) > h3:first-child) > .rv-cols > .rv-col:first-child img { width: 104px !important; height: 104px !important; object-fit: cover; border-radius: 50% !important; }
.rv-content > .rv-sec:has(> .rv-cols > .rv-col:first-child > .wp-block-image:only-child):has(> .rv-cols > .rv-col:nth-child(2) > h3:first-child) > .rv-cols > .rv-col:nth-child(2) { padding: 0 !important; flex: 1 1 auto !important; }
.rv-content > .rv-sec:has(> .rv-cols > .rv-col:first-child > .wp-block-image:only-child):has(> .rv-cols > .rv-col:nth-child(2) > h3:first-child) > .rv-cols > .rv-col:nth-child(2) > h3:first-child { margin: 0 0 4px !important; font-size: 16px !important; color: var(--rv-deep); letter-spacing: .1px; }
.rv-content > .rv-sec:has(> .rv-cols > .rv-col:first-child > .wp-block-image:only-child):has(> .rv-cols > .rv-col:nth-child(2) > h3:first-child) > .rv-cols > .rv-col:nth-child(2) > h3:nth-child(2) { margin: 0 !important; font-size: 20px !important; font-style: italic; font-weight: 600 !important; line-height: 1.4; color: #3A464C; }
@media (max-width: 600px) { .rv-content > .rv-sec:has(> .rv-cols > .rv-col:first-child > .wp-block-image:only-child):has(> .rv-cols > .rv-col:nth-child(2) > h3:first-child) > .rv-cols { margin-left: 4px !important; margin-right: 4px !important; padding: 14px; gap: 14px !important; } .rv-content > .rv-sec:has(> .rv-cols > .rv-col:first-child > .wp-block-image:only-child):has(> .rv-cols > .rv-col:nth-child(2) > h3:first-child) > .rv-cols > .rv-col:first-child { flex-basis: 72px !important; } .rv-content > .rv-sec:has(> .rv-cols > .rv-col:first-child > .wp-block-image:only-child):has(> .rv-cols > .rv-col:nth-child(2) > h3:first-child) > .rv-cols > .rv-col:first-child img { width: 72px !important; height: 72px !important; } }

/* ------------------------------------------------------------------ 2.0.8 text size control */
.rv-ts { display: inline-flex; align-items: flex-end; gap: 1px; margin-left: 10px; padding: 8px 10px; border: 1px solid rgba(255,255,255,.45); border-radius: 999px; background: rgba(255,255,255,.08); color: #fff; font: 700 14px/1 var(--wp--preset--font-family--aleo, serif); cursor: pointer; text-shadow: 0 1px 2px rgba(46,38,32,.5); transition: background .2s, border-color .2s; }
.rv-ts:hover { background: rgba(255,255,255,.18); border-color: #fff; }
.rv-ts:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.rv-ts__a--big { font-size: 19px; }
.rv-ts__steps { display: inline-flex; gap: 2px; margin-left: 6px; align-items: flex-end; }
.rv-ts__steps i { display: block; width: 3px; border-radius: 2px; background: currentColor; opacity: .35; }
.rv-ts__steps i:nth-child(1) { height: 6px; } .rv-ts__steps i:nth-child(2) { height: 9px; } .rv-ts__steps i:nth-child(3) { height: 12px; }
.rv-ts[data-level="0"] .rv-ts__steps i:nth-child(1), .rv-ts[data-level="1"] .rv-ts__steps i:nth-child(-n+2), .rv-ts[data-level="2"] .rv-ts__steps i { opacity: 1; }
.rv-stuck .rv-ts { text-shadow: none; }
@media (max-width: 1024px) { .rv-ts { margin: 0 8px 0 0; padding: 7px 9px; border-color: rgba(255,255,255,.6); } .rv-ts__steps { display: none; } }
/* Everything under the header grows like browser zoom does, so it reflows instead of being cut off. */
html.rv-ts-1 .rv-main, html.rv-ts-1 .rv-footer { zoom: 1.15; }
html.rv-ts-2 .rv-main, html.rv-ts-2 .rv-footer { zoom: 1.3; }

/* ------------------------------------------------------------------ 2.0.8 Vivian invitation forms: wider, glass fields */
.rv-content .rv-sec:has(> .rv-inner > .rv-card > .rv-form[style*="--rvf-label:#FFFFFF"]) { max-width: 760px !important; width: 100%; }
.rv-content .rv-col.has-background:not(.has-rv-white-background-color):has(> .rv-form[style*="--rvf-label:#FFFFFF"]) { padding: 36px 44px 40px !important; }
.rv-col.has-background:not(.has-rv-white-background-color) > .rv-form[style*="--rvf-label:#FFFFFF"] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 16px; margin-top: 20px; }
.rv-col.has-background:not(.has-rv-white-background-color) > .rv-form[style*="--rvf-label:#FFFFFF"] > :not(.rv-form__field--text):not(.rv-form__field--email):not(.rv-form__field--tel) { grid-column: 1 / -1; }
.rv-col.has-background:not(.has-rv-white-background-color) > .rv-form[style*="--rvf-label:#FFFFFF"] .rv-form__field { margin: 0 !important; }
.rv-col.has-background:not(.has-rv-white-background-color) > .rv-form[style*="--rvf-label:#FFFFFF"] { --rvf-field-bg: rgba(255,255,255,.13) !important; --rvf-field-color: #fff !important; }
.rv-col.has-background:not(.has-rv-white-background-color) > .rv-form[style*="--rvf-label:#FFFFFF"] input:not([type=checkbox]):not([type=radio]),
.rv-col.has-background:not(.has-rv-white-background-color) > .rv-form[style*="--rvf-label:#FFFFFF"] textarea { border: 1px solid rgba(255,255,255,.34) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.06) !important; color: #fff; }
.rv-col.has-background:not(.has-rv-white-background-color) > .rv-form[style*="--rvf-label:#FFFFFF"] input::placeholder, .rv-col.has-background:not(.has-rv-white-background-color) > .rv-form[style*="--rvf-label:#FFFFFF"] textarea::placeholder { color: rgba(255,255,255,.7); }
.rv-col.has-background:not(.has-rv-white-background-color) > .rv-form[style*="--rvf-label:#FFFFFF"] input:focus, .rv-col.has-background:not(.has-rv-white-background-color) > .rv-form[style*="--rvf-label:#FFFFFF"] textarea:focus { background-color: rgba(255,255,255,.22) !important; border-color: rgba(248,188,62,.95) !important; outline: 2px solid rgba(248,188,62,.55); outline-offset: 1px; }
.rv-col.has-background:not(.has-rv-white-background-color) > .rv-form[style*="--rvf-label:#FFFFFF"] textarea { min-height: 96px; }
.rv-col.has-background:not(.has-rv-white-background-color) > .rv-form[style*="--rvf-label:#FFFFFF"] fieldset { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 18px; margin: 4px 0 0; padding: 0; border: 0; }
.rv-col.has-background:not(.has-rv-white-background-color) > .rv-form[style*="--rvf-label:#FFFFFF"] .rv-form__human { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.rv-col.has-background:not(.has-rv-white-background-color):has(> .rv-form[style*="--rvf-label:#FFFFFF"]) > .wp-block-heading, .rv-col.has-background:not(.has-rv-white-background-color):has(> .rv-form[style*="--rvf-label:#FFFFFF"]) > p { max-width: 520px; margin-left: auto !important; margin-right: auto !important; }
@media (max-width: 767px) {
	.rv-content .rv-sec:has(> .rv-inner > .rv-card > .rv-form[style*="--rvf-label:#FFFFFF"]) { margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }
	.rv-content .rv-col.has-background:not(.has-rv-white-background-color):has(> .rv-form[style*="--rvf-label:#FFFFFF"]) { padding: 26px 18px 28px !important; border-radius: 24px !important; }
	.rv-col.has-background:not(.has-rv-white-background-color) > .rv-form[style*="--rvf-label:#FFFFFF"] { grid-template-columns: 1fr; gap: 12px; }
	.rv-col.has-background:not(.has-rv-white-background-color) > .rv-form[style*="--rvf-label:#FFFFFF"] fieldset { grid-template-columns: 1fr; }
	.rv-col.has-background:not(.has-rv-white-background-color):has(> .rv-form[style*="--rvf-label:#FFFFFF"]) .wp-block-image img { width: 180px !important; height: 180px !important; object-fit: cover; }
}

/* ------------------------------------------------------------------ 2.0.8 photo carousels hold one shape */
/* One-photo-at-a-time carousels (Terrace rooms) keep every photo the same 3:2 frame, so a tall photo
   further along no longer leaves a big blank under the one on screen. The viewer still shows it whole. */
.wp-block-gallery.rv-carousel.columns-1 { align-items: flex-start !important; }
.wp-block-gallery.rv-carousel.columns-1 > .wp-block-image img { width: 100% !important; aspect-ratio: 3 / 2; height: auto !important; object-fit: cover; }
/* Words in narrow coloured tiles wrap between words, never inside one ("Condominium s"). */
.rv-content .rv-card .wp-block-heading { overflow-wrap: normal; word-break: normal; hyphens: manual; }
@media (min-width: 1025px) { .rv-content .rv-cols > .rv-card.has-background > .wp-block-heading { font-size: clamp(22px, 2vw, 30px) !important; } }

/* ------------------------------------------------------------------ 2.0.8 the three neighbourhoods */
/* The Crest (sunrise orange), The Heights (river blue) and the Village (meadow green) each carry their own
   colour through headings, lists, dividers and carousels, so each reads as a place of its own. */
.rv-p-the-crest { --nb: #E8872A; --nb-deep: #A85A12; --nb-soft: #FDF0E2; }
.rv-p-the-heights { --nb: #1D93B3; --nb-deep: #135F78; --nb-soft: #E4F4F8; }
.rv-p-independent-living { --nb: #6DAA3C; --nb-deep: #3D7322; --nb-soft: #EDF6E4; }
:is(.rv-p-the-crest, .rv-p-the-heights, .rv-p-independent-living) .rv-content :is(h2, h3).wp-block-heading:not(.has-rv-white-color):not(.has-text-align-center):not(.rv-card.has-background:not(.has-rv-white-background-color) *) { color: var(--nb-deep) !important; letter-spacing: -.3px; }
:is(.rv-p-the-crest, .rv-p-the-heights, .rv-p-independent-living) .rv-content :is(h2, h3).wp-block-heading:not(.has-rv-white-color):not(.has-text-align-center):not(.rv-card.has-background:not(.has-rv-white-background-color) *):not(.rv-form *)::before { content: ""; display: block; width: 46px; height: 4px; margin: 0 0 12px; border-radius: 4px; background: linear-gradient(90deg, var(--nb), color-mix(in srgb, var(--nb) 40%, #79CCDA)); }
:is(.rv-p-the-crest, .rv-p-the-heights, .rv-p-independent-living) .rv-content ul.wp-block-list:not(.rv-menu-list):not(.rv-icon-list) > li { list-style: none; position: relative; padding-left: 30px; margin-bottom: 8px; }
:is(.rv-p-the-crest, .rv-p-the-heights, .rv-p-independent-living) .rv-content ul.wp-block-list:not(.rv-menu-list):not(.rv-icon-list) { padding-left: 0; }
:is(.rv-p-the-crest, .rv-p-the-heights, .rv-p-independent-living) .rv-content ul.wp-block-list:not(.rv-menu-list):not(.rv-icon-list) > li::before { content: ""; position: absolute; left: 0; top: .32em; width: 18px; height: 18px; border-radius: 50%; background: var(--nb-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23333' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center / 11px no-repeat; box-shadow: inset 0 0 0 1.5px var(--nb); }
:is(.rv-p-the-crest, .rv-p-the-heights, .rv-p-independent-living) .rv-content ul.wp-block-list:not(.rv-menu-list):not(.rv-icon-list) ul.wp-block-list:not(.rv-menu-list):not(.rv-icon-list) > li::before { width: 7px; height: 7px; top: .6em; left: 6px; background: var(--nb); box-shadow: none; }
:is(.rv-p-the-crest, .rv-p-the-heights, .rv-p-independent-living) .rv-content ul.wp-block-list ul.wp-block-list > li { padding-left: 24px; margin-bottom: 4px; }
:is(.rv-p-the-crest, .rv-p-the-heights, .rv-p-independent-living) .rv-content ul.wp-block-list ul.wp-block-list { margin-top: 8px; }
:is(.rv-p-the-crest, .rv-p-the-heights, .rv-p-independent-living) .wp-block-separator.rv-divider { border-top: 0 !important; height: 2px !important; opacity: 1 !important; background: linear-gradient(90deg, transparent, var(--nb) 20%, var(--nb) 80%, transparent) !important; opacity: .45 !important; margin: 40px auto !important; }
:is(.rv-p-the-crest, .rv-p-the-heights, .rv-p-independent-living) .rv-car__dot.is-active::before { background: var(--nb-deep); }
:is(.rv-p-the-crest, .rv-p-the-heights, .rv-p-independent-living) .rv-car__count { background: var(--nb-soft); color: var(--nb-deep); }
:is(.rv-p-the-crest, .rv-p-the-heights, .rv-p-independent-living) .rv-content p a:not(.wp-block-button__link) { color: var(--nb-deep); }
/* Feature lists two across on wide screens when they are long. */
@media (min-width: 900px) { :is(.rv-p-the-crest, .rv-p-the-heights, .rv-p-independent-living) .rv-content ul.wp-block-list:not(.rv-menu-list):not(.rv-icon-list):has(> li:nth-child(6)) { columns: 2; column-gap: 40px; } :is(.rv-p-the-crest, .rv-p-the-heights, .rv-p-independent-living) .rv-content ul.wp-block-list:has(> li:nth-child(6)) > li { break-inside: avoid; } }
/* The Heights: its long first section becomes one white card that rises into the photo, like every other page. */
.rv-p-the-heights .rv-content > .rv-sec:first-child > .rv-inner { max-width: 960px; margin: -80px auto 0 !important; position: relative; z-index: 4; background: #fff; border-radius: 30px; box-shadow: var(--rv-shadow); padding: 50px !important; box-sizing: border-box; } /* 2.0.13: same width as The Crest and every other page (was 1140px) */
.rv-p-the-heights .rv-content > .rv-sec:first-child > .rv-inner > .wp-block-image:first-child img { max-width: 360px; margin: 0 auto; }
@media (max-width: 767px) { .rv-p-the-heights .rv-content > .rv-sec:first-child > .rv-inner { margin-top: -60px !important; padding: 30px 20px !important; border-radius: 22px; } }

/* Neighbourhood bar */
.rv-nbar { position: fixed; left: 50%; bottom: 18px; z-index: 950; width: min(860px, calc(100% - 28px)); transform: translate(-50%, 140%); opacity: 0; pointer-events: none; transition: transform .45s var(--rv-ease, ease), opacity .3s; }
.rv-nbar.is-on { transform: translate(-50%, 0); opacity: 1; pointer-events: auto; }
.rv-nbar__in { display: flex; align-items: center; gap: 18px; padding: 12px 12px 12px 24px; border-radius: 999px; background: rgba(20, 44, 52, .94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); color: #fff; box-shadow: 0 18px 40px -14px rgba(0,0,0,.5); border: 1px solid rgba(255,255,255,.08); }
.rv-nbar__txt { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; line-height: 1.25; }
.rv-nbar__txt strong { font-size: 17px; color: #fff; }
.rv-nbar__txt strong::before { content: ""; display: inline-block; width: 9px; height: 9px; margin-right: 8px; border-radius: 50%; background: var(--nb, #9DCD6D); box-shadow: 0 0 0 3px color-mix(in srgb, var(--nb, #9DCD6D) 35%, transparent); vertical-align: 1px; }
.rv-nbar__txt span { font-size: 14px; color: rgba(255,255,255,.75); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rv-nbar__act { display: flex; gap: 8px; flex: 0 0 auto; }
.rv-nbar__btn, .rv-nbar__call { display: inline-flex; align-items: center; min-height: 46px; padding: 0 22px; border-radius: 999px; font: 700 14px/1 var(--wp--preset--font-family--montserrat, sans-serif); letter-spacing: .3px; text-decoration: none !important; white-space: nowrap; }
.rv-nbar__btn { background: linear-gradient(115deg, #E8188C, #F5695F); color: #fff !important; box-shadow: 0 10px 22px -12px rgba(232,24,140,.9); }
.rv-nbar__call { color: #fff !important; border: 1px solid rgba(255,255,255,.35); }
.rv-nbar__btn:hover { filter: brightness(1.06); } .rv-nbar__call:hover { background: rgba(255,255,255,.1); }
.rv-nbar a:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
body.rv-nbar-on .rv-top { bottom: 96px; }
@media (max-width: 767px) {
	.rv-nbar { bottom: 10px; width: calc(100% - 20px); }
	.rv-nbar__in { padding: 10px; border-radius: 22px; gap: 10px; }
	.rv-nbar__txt span { display: none; }
	.rv-nbar__txt strong { font-size: 15px; padding-left: 6px; }
	.rv-nbar__btn, .rv-nbar__call { min-height: 44px; padding: 0 14px; font-size: 13px; }
	.rv-nbar__long { display: none; }
	body.rv-nbar-on .rv-top { bottom: 84px; }
}
@media (prefers-reduced-motion: reduce) { .rv-nbar { transition: none; } }
@media (max-width: 1024px) {
	.rv-header__in { gap: 10px; }
	.rv-ts { margin: 0; padding: 6px 8px; font-size: 13px; }
	.rv-ts__a--big { font-size: 17px; }
}
@media (max-width: 420px) { .rv-logo__img { width: 170px; } .rv-header__in { padding-left: 14px; padding-right: 14px; } }
.rv-nbar__call { gap: 5px; }
@media (max-width: 767px) {
	.rv-nbar__txt { display: none; }
	.rv-nbar__act { flex: 1 1 auto; }
	.rv-nbar__btn, .rv-nbar__call { flex: 1 1 0; justify-content: center; }
	body.rv-nbar-on .rv-top { bottom: 92px; }
}

/* ------------------------------------------------------------------ 2.0.10 tiles in a row are always even */
/* Coloured tiles side by side (Home Care, Home Health, Hospice; Village, Heights, Crest; the home page
   boxes) are the same height, with their buttons lined up along the bottom. */
.rv-cols:has(> .rv-card.has-background:not(.has-rv-white-background-color)) { align-items: stretch !important; }
.rv-cols > .wp-block-column.rv-card.has-background:not(.has-rv-white-background-color) { align-self: stretch !important; display: flex; flex-direction: column; }
.rv-cols > .wp-block-column.rv-card.has-background:not(.has-rv-white-background-color) > .wp-block-buttons:last-child { margin-top: auto !important; padding-top: 14px; }
/* Tiles that are just a title and a button: the title centres in the space above the button. */
.rv-cols > .wp-block-column.rv-card.has-background:not(.has-rv-white-background-color):not(:has(> p)) > .wp-block-heading { flex: 1 1 auto; display: flex; align-items: center; justify-content: center; margin-top: 0 !important; margin-bottom: 0 !important; }

/* ------------------------------------------------------------------ 2.0.11 maps */
/* A Google map carried from the old site sat at its tiny default size against the left edge. It now spans
   the content width as a rounded card, tall enough to read the streets, and fits phones. */
.rv-content iframe[src*="google.com/maps"], .rv-content iframe[src*="maps.google"] { display: block; width: min(1140px, calc(100% - 40px)) !important; height: 440px !important; margin: 40px auto !important; border: 0 !important; border-radius: 28px; box-shadow: var(--rv-shadow); background: var(--wp--preset--color--rv-light, #F6F6F6); }
@media (max-width: 767px) { .rv-content iframe[src*="google.com/maps"], .rv-content iframe[src*="maps.google"] { width: calc(100% - 28px) !important; height: 320px !important; margin: 26px auto !important; border-radius: 20px; } }

/* ------------------------------------------------------------------ 2.0.12 feathered shadows over photos */
/* The way iOS lifts icons and labels off a wallpaper: a tight contact shadow for crisp edges, a soft middle
   layer, and a wide, very faint halo, all warm taupe, never black. About 12% heavier than before and much
   more feathered, so the words and the logo float while the photo stays bright. --rv-k scales every layer
   (Website > Overview > Shadows: Stronger 1.15, Strongest 1.3). */
body { --rv-k: 1; }
body.rv-shade-2 { --rv-k: 1.15; }
body.rv-shade-3 { --rv-k: 1.3; }
.rv-over-hero .rv-menu > li > a, .rv-over-hero .rv-sub-toggle, .rv-over-hero .rv-ts {
	text-shadow: 0 1px 2px rgba(46,38,32,calc(.6 * var(--rv-k))), 0 3px 12px rgba(46,38,32,calc(.42 * var(--rv-k))), 0 8px 32px rgba(46,38,32,calc(.24 * var(--rv-k)));
}
.rv-over-hero:not(.rv-stuck) .rv-logo__img {
	filter: drop-shadow(0 1px 1.5px rgba(46,38,32,calc(.34 * var(--rv-k)))) drop-shadow(0 4px 14px rgba(46,38,32,calc(.28 * var(--rv-k)))) drop-shadow(0 10px 34px rgba(46,38,32,calc(.18 * var(--rv-k))));
}
.rv-band__title {
	text-shadow: 0 1px 3px rgba(46,38,32,calc(.5 * var(--rv-k))), 0 5px 20px rgba(46,38,32,calc(.42 * var(--rv-k))), 0 14px 56px rgba(46,38,32,calc(.26 * var(--rv-k)));
}
.rv-crumbs {
	text-shadow: 0 1px 2px rgba(46,38,32,calc(.66 * var(--rv-k))), 0 2px 10px rgba(46,38,32,calc(.44 * var(--rv-k))), 0 6px 26px rgba(46,38,32,calc(.24 * var(--rv-k)));
}
.rv-header > .rv-wave {
	filter: drop-shadow(0 2px 3px rgba(10,60,90,calc(.16 * var(--rv-k)))) drop-shadow(0 8px 22px rgba(10,60,90,calc(.14 * var(--rv-k))));
}
.rv-band > .rv-wave {
	filter: drop-shadow(0 -2px 3px rgba(46,38,32,calc(.12 * var(--rv-k)))) drop-shadow(0 -8px 24px rgba(46,38,32,calc(.12 * var(--rv-k))));
}
.rv-stuck .rv-menu > li > a, .rv-stuck .rv-sub-toggle, .rv-stuck .rv-ts { text-shadow: none; }
.rv-stuck .rv-logo__img { filter: none; }
@media (max-width: 1024px) { .rv-over-hero .rv-menu > li > a { text-shadow: none; } }


/* ------------------------------------------------------------------ 2.0.13 site-wide review */
/* Service cards (Outpatient Therapy and others): real space between cards and below the last row, equal
   heights, and every Learn More button on the same line. The 2.0.6 row rule nested one :has() inside
   another, which browsers ignore, so the cards sat edge to edge. */
.rv-cols:has(> .rv-col:not(.rv-card):not(.has-background) > .wp-block-image:first-child + .wp-block-heading):has(> .rv-col:not(.rv-card):not(.has-background) > p:last-child > a) { gap: 30px !important; margin-bottom: 30px !important; align-items: stretch !important; }
.rv-cols:has(> .rv-col + .rv-col) > .rv-col:not(.rv-card):not(.has-background):not(:has(> :nth-child(6))):has(> .wp-block-image:first-child):has(> .wp-block-heading):has(> p:last-child > a) { display: flex; flex-direction: column; }
.rv-cols:has(> .rv-col + .rv-col) > .rv-col:not(.rv-card):not(.has-background):not(:has(> :nth-child(6))):has(> .wp-block-image:first-child):has(> .wp-block-heading):has(> p:last-child > a) > p:last-child { margin-top: auto !important; padding-top: 18px; }
@media (max-width: 781px) { .rv-cols:has(> .rv-col:not(.rv-card):not(.has-background) > .wp-block-image:first-child + .wp-block-heading):has(> .rv-col:not(.rv-card):not(.has-background) > p:last-child > a) { gap: 24px !important; margin-bottom: 24px !important; } }

/* Headings: left-set headings wrap naturally (balanced wrapping split them in the middle, Memory Care);
   centred headings stay balanced. Nothing is allowed to run out of its column. */
.rv-content :is(h1, h2, h3, h4) { text-wrap: pretty; overflow-wrap: break-word; }
.rv-content :is(h1, h2, h3, h4):is(.has-text-align-center, [style*="text-align:center"]), .rv-content .has-text-align-center > :is(h1, h2, h3, h4), .rv-band :is(h1, h2) { text-wrap: balance; }
.rv-content .wp-block-column { min-width: 0; }
.rv-content .rv-email-h { font-size: clamp(15px, 1.4vw, 19px) !important; overflow-wrap: anywhere; letter-spacing: 0; }

/* Link buttons that replace Elementor's rows of spaces (Hospice). */
.rv-content p.rv-linkrow { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; max-width: 640px; margin: 0 0 12px !important; }
.rv-content p.rv-linkrow > a { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 10px 18px; border-radius: 14px; background: #fff; border: 1px solid rgba(25, 102, 130, .14); box-shadow: var(--rv-shadow-sm); color: var(--rv-deep); font-weight: 700; text-align: center; text-decoration: none; transition: transform .2s, box-shadow .2s; }
.rv-content p.rv-linkrow > a:hover, .rv-content p.rv-linkrow > a:focus-visible { transform: translateY(-2px); box-shadow: var(--rv-shadow); }
.rv-content p.rv-linkrow + p:not(.rv-linkrow) { margin-top: 18px !important; }
@media (max-width: 520px) { .rv-content p.rv-linkrow { grid-template-columns: 1fr; } }

/* Hospice: the closing text (Our Intention, Our Values, the hospice organisations) sits at the same reading
   width as the card above it, with room between it, the tiles and the footer. */
.rv-p-hospice .rv-content > .rv-sec.alignfull:not(.wp-block-cover):not(:has(.wp-block-columns, img, form, .wp-block-gallery, .wp-block-cover, iframe)) > * { max-width: 900px !important; margin-left: auto !important; margin-right: auto !important; }
.rv-p-hospice .rv-content > .rv-sec.alignfull:has(.rv-col-tile) + .rv-sec.alignfull:not(:has(.wp-block-columns, img)) { padding-top: 56px !important; }
.rv-p-hospice .rv-content > .rv-sec.alignfull:not(:has(.wp-block-columns, img, form)):last-child { padding-bottom: 80px !important; }
.rv-p-hospice .rv-content > .rv-sec.alignfull:not(:has(.wp-block-columns, img, form)) > .wp-block-heading { margin-top: 30px !important; margin-bottom: 12px !important; }

/* Footer on wide screens: the address column gets the room it needs, the badges column less, and column
   headings ("Connect With Us") stay on one line. */
@media (min-width: 1025px) {
	.rv-footer .rv-cols > .wp-block-column { flex: 1 1 0 !important; }
	.rv-footer .rv-cols > .wp-block-column:first-child { flex-grow: 1.35 !important; }
	.rv-footer .rv-cols > .wp-block-column:nth-child(2) { flex-grow: .7 !important; }
	.rv-footer .rv-cols .wp-block-heading { white-space: nowrap; }
}

/* Set by rv.js when a tile heading needs to shrink to fit its tile. */
.rv-content .wp-block-heading.rv-fit { font-size: var(--rv-fit) !important; }

/* ------------------------------------------------------------------ 2.0.14 */
/* A white card whose text was set right against its edge (Our Campus: Elementor kept the room on an inner
   box the switch did not carry) gets the same inside room as every other card. */
.rv-content .rv-card[style*="padding-left:0px"]:has(> p, > .wp-block-heading, > .wp-block-list) { padding: 44px 50px !important; }
@media (max-width: 781px) { .rv-content .rv-card[style*="padding-left:0px"]:has(> p, > .wp-block-heading, > .wp-block-list) { padding: 28px 22px !important; } }

/* Buttons on a strong colour always carry white words (About: green words on the pink Schedule a Tour
   button clashed). */
.rv-content .wp-block-button__link:is(.has-rv-pink-background-color, .has-rv-orange-background-color, .has-rv-teal-background-color, .has-rv-deep-background-color, .has-rv-ink-background-color):not(.has-rv-white-color) { color: #fff !important; }

/* 2.1.7: one H1 per page. A heading block set as H1 under the title band shows as an H2 with the H1 size;
   the home page's first heading became the H1 and keeps its H2 size. */
.rv-content h2.rv-was-h1 { font-size: clamp(32px, 4vw, 40px); }
.rv-content h1.rv-was-h2 { font-size: clamp(26px, 3vw, 32px); }
a.rv-addr, .rv-content a.rv-addr { color: inherit; font-weight: inherit; text-decoration: underline; text-underline-offset: 2px; }
