/*
Theme Name: Holmes Sketchbook
Theme URI: https://www.dependentmedia.com/
Author: Dependent Media
Author URI: https://www.dependentmedia.com/
Description: "Drawn from life" block theme for Holmes Chiropractic (Dr. Randall Holmes, D.C., Houston). His logo is a brush-ink figure study of a back, so the site is a figure-drawing sketchbook: toned paper, brush ink and red chalk, plates with ruled borders, sketches made from the practice's own photos, a cloth-bound article shelf and a hand-drawn map. Gloock, Albert Sans and Nanum Brush Script. No page builder.
Version: 1.0.0
Requires at least: 6.8
Tested up to: 7.1
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: rh-sketchbook
*/

/* ============================================================================================================
   Tokens
   ============================================================================================================ */
:root {
	--paper: #F1EADF; --sheet: #FAF6EF; --ink: #221F1C; --ink-soft: #4A433D; --sanguine: #9C3D27; --wash: #E6C2AA;
	--blue: #1E4D99; --blue-deep: #163A74; --blue-wash: #D3DEEC; --sage: #5C6B44; --ochre: #B88431; --board: #24211F;
	--rule: rgba(34, 31, 28, .22);
	--display: var(--wp--preset--font-family--display); --body: var(--wp--preset--font-family--body); --hand: var(--wp--preset--font-family--hand);
	--gap: clamp(1rem, 3vw, 2rem);
	/* paper tooth: two layers of very faint noise-like dots, no image request */
	--tooth: radial-gradient(rgba(34, 31, 28, .035) 1px, transparent 1.2px) 0 0 / 7px 7px, radial-gradient(rgba(156, 61, 39, .025) 1px, transparent 1.3px) 3px 4px / 11px 11px;
	--ease: cubic-bezier(.2, .7, .2, 1);
}
[hidden] { display: none !important; }
html { scroll-padding-top: 6rem; }
body { background: var(--tooth), var(--paper); color: var(--ink); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip; }
img, svg, video { max-width: 100%; }
img { height: auto; }
::selection { background: var(--wash); color: var(--ink); }
:where(a) { text-decoration-thickness: 1.5px; text-underline-offset: .18em; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; border-radius: 2px; }
.rh-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rh-skip { position: absolute; left: 1rem; top: -4rem; z-index: 100; background: var(--ink); color: #fff; padding: .7rem 1rem; font-weight: 700; }
.rh-skip:focus { top: 1rem; }
strong { font-weight: 700; }

/* ============================================================================================================
   Type helpers
   ============================================================================================================ */
/* a brush note: the handwritten label that sits above headings (instead of a pill eyebrow) */
.rh-note { font-family: var(--hand); font-size: clamp(1.55rem, 1.2rem + 1vw, 1.9rem); line-height: 1; color: var(--sanguine); margin: 0 0 .35rem; letter-spacing: .01em; transform: rotate(-1.5deg); transform-origin: left; width: fit-content; }
.rh-note::after { content: ""; display: block; height: 7px; margin-top: .1rem; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 10' preserveAspectRatio='none'%3E%3Cpath d='M2 6c40-4 90-5 196-2' fill='none' stroke='%239C3D27' stroke-width='3.4' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat 0 0 / 100% 100%; opacity: .65; }
.rh-lead { font-size: clamp(1.125rem, 1rem + .5vw, 1.3rem); line-height: 1.55; color: var(--ink-soft); max-width: 40rem; }
.rh-fine { font-size: .9375rem; color: var(--ink-soft); }
.rh-hint { display: block; font-size: .875rem; color: var(--ink-soft); font-style: italic; margin-top: .15rem; }
.rh-center { text-align: center; }
.rh-crumbs { font-size: .875rem; color: var(--ink-soft); margin: 0 0 .9rem; display: flex; gap: .45rem; flex-wrap: wrap; }
.rh-crumbs a { color: var(--ink-soft); }
.rh-crumbs span[aria-hidden] { opacity: .5; }

/* ============================================================================================================
   Header: the top edge of a sketchbook, with its wire binding
   ============================================================================================================ */
.rh-header { position: sticky; top: 0; z-index: 50; background: rgba(241, 234, 223, .96); backdrop-filter: saturate(1.2) blur(6px); padding-top: .55rem !important; padding-bottom: 0 !important; }
.admin-bar .rh-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .rh-header { top: 0; position: relative; } }
.rh-header__row { gap: 1.25rem; align-items: center; padding-bottom: .55rem; }
.rh-brand { display: inline-flex; align-items: center; gap: .7rem; color: var(--ink); text-decoration: none; flex: 0 0 auto; }
.rh-brand__mark { width: 2.6rem; height: 2.6rem; color: var(--ink); flex: 0 0 auto; }
.rh-brand__name { font-family: var(--display); font-size: 1.35rem; line-height: 1.05; }
.rh-brand__name small { display: block; font-family: var(--body); font-size: .8rem; letter-spacing: .02em; color: var(--ink-soft); margin-top: .2rem; }
.rh-brand:hover .rh-brand__mark { color: var(--sanguine); }
.rh-binding { height: 14px; width: 100vw; max-width: none !important; margin-left: calc(50% - 50vw) !important; background:
	radial-gradient(ellipse 5px 7px at 50% 3px, transparent 3.2px, #8a837b 3.4px, #6b645d 4.6px, transparent 5px) 0 0 / 22px 14px repeat-x,
	linear-gradient(to bottom, transparent 9px, rgba(34, 31, 28, .18) 9px, rgba(34, 31, 28, .18) 10px, transparent 10px);
	opacity: .9; }
.rh-nav { font-weight: 600; font-size: .98rem; }
.rh-nav .wp-block-navigation__container { gap: 1.25rem; }
.rh-nav .wp-block-navigation-item__content { color: var(--ink); text-decoration: none; padding: .35rem 0; position: relative; }
.rh-nav .wp-block-navigation-item__content:hover { color: var(--sanguine); }
.rh-nav .current-menu-item > .wp-block-navigation-item__content, .rh-nav .current-menu-ancestor > .wp-block-navigation-item__content { color: var(--sanguine); }
.rh-nav .current-menu-item > .wp-block-navigation-item__content::after, .rh-nav .current-menu-ancestor > .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: -3px; right: -3px; bottom: -2px; height: 6px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 8' preserveAspectRatio='none'%3E%3Cpath d='M2 5c30-3 60-4 96-1' fill='none' stroke='%239C3D27' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / 100% 100%; }
/* desktop submenu (wide screens only): text lines up under the parent's text, opens to the right, hover bridge (house rule) */
@media (min-width: 1100px) {
	.rh-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container {
		left: 0 !important; right: auto !important; top: 100% !important; margin-top: 0 !important; min-width: 13rem !important; padding: .55rem 0 !important;
		background: var(--sheet) !important; border: 1px solid var(--rule) !important; box-shadow: 0 14px 30px -18px rgba(34, 31, 28, .45); border-radius: 2px; }
	.rh-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
	.rh-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item { padding-left: 0; }
	.rh-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .45rem 1rem .45rem 0 !important; margin-left: 0; }
}
/* the full menu needs ~1100px; below that the menu button opens the overlay (core switches only at 600px) */
@media (min-width: 600px) and (max-width: 1099px) {
	.rh-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.rh-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.rh-header__row > .rh-nav { order: 3; }
}
.rh-nav .wp-block-navigation__submenu-icon { margin-left: .3rem; }
.rh-nav-cta { display: none !important; }
.rh-header__ctas { display: flex; align-items: center; gap: .9rem; flex: 0 0 auto; }
.rh-call { display: flex; flex-direction: column; color: var(--ink); text-decoration: none; font-weight: 800; font-size: 1.05rem; line-height: 1.1; text-align: right; }
.rh-call small { font-weight: 500; font-size: .74rem; color: var(--ink-soft); letter-spacing: .02em; }
.rh-call:hover { color: var(--sanguine); }
.rh-cta, .wp-block-button__link { position: relative; isolation: isolate; }
.rh-cta { display: inline-block; color: #fff; text-decoration: none; font-weight: 700; padding: .7rem 1.15rem; background: var(--blue); border-radius: 2px; }
.rh-cta:hover { background: var(--ink); color: #fff; }
@media (max-width: 1280px) { .rh-call small { display: none; } .rh-nav .wp-block-navigation__container { gap: .95rem; } }
@media (max-width: 1239px) { .rh-call { display: none; } }
@media (min-width: 600px) and (max-width: 1099px) { .rh-call { display: flex; } .rh-call small { display: block; } .rh-header__ctas { margin-left: auto; } }
@media (max-width: 599px) {
	.rh-header__ctas { display: none; }
	.rh-brand__mark { width: 2.2rem; height: 2.2rem; }
	.rh-brand__name { font-size: 1.15rem; }
}
/* phone menu (overlay) */
.rh-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--tooth), var(--paper) !important; padding: 1.25rem !important; }
.rh-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: .2rem; }
.rh-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-family: var(--display); font-size: 1.6rem; font-weight: 400; padding: .35rem 0; }
.rh-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-family: var(--body); font-size: 1.1rem; font-weight: 600; }
.rh-nav .is-menu-open .rh-nav-cta { display: block !important; margin-top: .6rem; }
.rh-nav .is-menu-open .rh-nav-cta .wp-block-navigation-item__content { font-family: var(--body) !important; font-size: 1.05rem !important; font-weight: 700 !important; padding: .8rem 1.1rem !important; border-radius: 2px; }
.rh-nav .is-menu-open .rh-nav-cta--book .wp-block-navigation-item__content { background: var(--blue); color: #fff !important; }
.rh-nav .is-menu-open .rh-nav-cta--call .wp-block-navigation-item__content { border: 2px solid var(--ink); }
.rh-nav .wp-block-navigation__responsive-container-open svg, .rh-nav .wp-block-navigation__responsive-container-close svg { width: 30px; height: 30px; }

/* ============================================================================================================
   Sections
   ============================================================================================================ */
.rh-main { padding-top: 0 !important; }
.rh-main > .wp-block-post-content > * { margin-block-start: 0; }
.rh-section { padding-block: clamp(3rem, 7vw, 5.5rem) !important; }
.rh-section + .rh-section { padding-top: clamp(1.5rem, 4vw, 3rem) !important; }
.rh-section__head { margin-bottom: clamp(1.5rem, 3vw, 2.4rem); max-width: 48rem; }
.rh-section__head h2 { margin: 0 0 .6rem; }
.rh-section__head .rh-lead { margin: 0; }

/* A loose sheet laid on the page */
.is-style-rh-sheet, .rh-mission__sheet, .rh-card, .rh-formcard, .rh-visit__card, .rh-pick {
	background: var(--tooth), var(--sheet); box-shadow: 0 1px 0 rgba(34, 31, 28, .05), 0 18px 34px -24px rgba(34, 31, 28, .38); border-radius: 1px; }

/* buttons: ink-blue swatch with a brushed right edge; pencil outline; red chalk */
.wp-block-button__link { border-radius: 2px; text-decoration: none; transition: background .2s, color .2s, transform .2s var(--ease); }
.wp-block-button__link:active { transform: translateY(1px); }
/* the ink swatch's brushed right edge sits INSIDE the button box (no overflow, focus ring untouched) */
.wp-block-button:not(.is-style-pencil):not(.is-style-link) .wp-block-button__link { --btn: var(--blue); background: linear-gradient(var(--btn), var(--btn)) 0 0 / calc(100% - 10px) 100% no-repeat !important; padding-right: calc(1.5rem + 6px); }
.wp-block-button:not(.is-style-pencil):not(.is-style-link) .wp-block-button__link:hover { --btn: var(--ink); }
.wp-block-button.is-style-chalk .wp-block-button__link { --btn: var(--sanguine); }
.wp-block-button:not(.is-style-pencil):not(.is-style-link) .wp-block-button__link::after {
	content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; right: 0; width: 10px; background: var(--btn);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 60' preserveAspectRatio='none'%3E%3Cpath d='M0 0h6l3 6-2 8 4 7-3 9 3 8-4 9 3 7-2 6H0z'/%3E%3C/svg%3E") no-repeat 0 0 / 100% 100%;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 60' preserveAspectRatio='none'%3E%3Cpath d='M0 0h6l3 6-2 8 4 7-3 9 3 8-4 9 3 7-2 6H0z'/%3E%3C/svg%3E") no-repeat 0 0 / 100% 100%; }
.is-style-pencil .wp-block-button__link { background: transparent; color: var(--ink); border: 2px solid var(--ink); padding: calc(.85rem - 2px) calc(1.5rem - 2px); }
.is-style-pencil .wp-block-button__link:hover { background: var(--ink); color: #fff; }
.is-style-link .wp-block-button__link { background: none; color: var(--blue); padding: 0; text-decoration: underline; }
.wp-block-buttons { gap: 1rem 1.4rem; }

/* ============================================================================================================
   Plates: a sketch on a fresh sheet with a ruled border, a plate number and an atlas-style caption
   ============================================================================================================ */
.rh-plate { position: relative; margin: 0; background: var(--tooth), var(--sheet); padding: clamp(.7rem, 1.6vw, 1.1rem); padding-bottom: .9rem;
	box-shadow: 0 1px 0 rgba(34, 31, 28, .06), 0 22px 40px -28px rgba(34, 31, 28, .5); transform: rotate(var(--tilt, 0deg)); }
.rh-plate::before { content: ""; position: absolute; inset: clamp(.35rem, .8vw, .5rem); border: 1px solid var(--rule); outline: 1px solid rgba(34, 31, 28, .08); outline-offset: 3px; pointer-events: none; }
.rh-plate__no { position: absolute; top: clamp(.55rem, 1.2vw, .8rem); left: clamp(.85rem, 1.8vw, 1.2rem); z-index: 3; font-family: var(--display); font-size: .85rem; letter-spacing: .06em; color: var(--ink-soft); background: var(--sheet); padding: 0 .35rem; }
.rh-plate__art { position: relative; display: block; overflow: hidden; }
.rh-plate__art img { display: block; width: 100%; height: auto; }
.rh-plate__sketch { position: relative; z-index: 1; }
.rh-plate__cap { position: relative; margin-top: .7rem; font-size: .9375rem; line-height: 1.45; color: var(--ink-soft); padding: 0 .25rem; }
.rh-plate__cap::before { content: ""; display: block; width: 2.2rem; height: 2px; background: var(--sanguine); margin-bottom: .5rem; opacity: .7; }
.rh-plate__note { position: absolute; z-index: 4; font-family: var(--hand); color: var(--sanguine); font-size: 1.7rem; line-height: 1; right: .4rem; top: -1.4rem; transform: rotate(4deg); pointer-events: none; }
.rh-plate__note::after { content: "↴"; font-family: var(--body); display: inline-block; margin-left: .2rem; transform: translateY(.35rem); }
/* the "look closer" lens: the real photo shows through a circle that follows the pointer */
.rh-plate__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 2; pointer-events: none;
	-webkit-mask: radial-gradient(circle var(--r, 0px) at var(--x, 50%) var(--y, 50%), #000 98%, transparent 100%);
	mask: radial-gradient(circle var(--r, 0px) at var(--x, 50%) var(--y, 50%), #000 98%, transparent 100%); }
.rh-plate--lens .rh-plate__art { cursor: zoom-in; }
.rh-plate--lens.is-lensing .rh-plate__art::after { content: ""; position: absolute; z-index: 3; pointer-events: none; left: var(--x); top: var(--y); width: calc(var(--r) * 2); height: calc(var(--r) * 2);
	transform: translate(-50%, -50%); border-radius: 50%; box-shadow: 0 0 0 3px var(--sheet), 0 0 0 5px var(--ink), 0 10px 22px rgba(0, 0, 0, .25); }
.rh-plate--lens.is-photo .rh-plate__photo { -webkit-mask: none; mask: none; }
.rh-lens { position: absolute; z-index: 4; right: .6rem; bottom: .6rem; font: 700 .85rem/1 var(--body); color: var(--ink); background: var(--sheet); border: 2px solid var(--ink); border-radius: 2px; padding: .5rem .7rem; cursor: pointer; }
.rh-lens:hover { background: var(--ink); color: #fff; }
.rh-lens__off { display: none; }
.rh-lens[aria-pressed="true"] .rh-lens__on { display: none; }
.rh-lens[aria-pressed="true"] .rh-lens__off { display: inline; }
.no-js .rh-lens { display: none; }
/* linked plates (every age) */
.rh-plate--link { transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
.rh-plate__link { color: inherit; text-decoration: none; }
.rh-plate__link::after { content: ""; position: absolute; inset: 0; z-index: 5; }
.rh-plate--link:hover, .rh-plate--link:focus-within { transform: rotate(0deg) translateY(-4px); box-shadow: 0 1px 0 rgba(34, 31, 28, .06), 0 28px 44px -26px rgba(34, 31, 28, .6); }
.rh-plate--link:focus-within { outline: 3px solid var(--blue); outline-offset: 4px; }
.rh-plate--link .rh-plate__link:focus-visible { outline: none; }
.rh-plate--photo .rh-plate__img { filter: sepia(.25) saturate(.85); }
/* draw-in: a diagonal brush wipe reveals each sketch once when it scrolls into view */
@media (prefers-reduced-motion: no-preference) {
	.js .rh-draw .rh-plate__sketch { -webkit-mask: linear-gradient(115deg, #000 42%, transparent 58%) 100% 0 / 300% 100% no-repeat; mask: linear-gradient(115deg, #000 42%, transparent 58%) 100% 0 / 300% 100% no-repeat; }
	.js .rh-draw.is-in .rh-plate__sketch { animation: rh-wipe 1.6s var(--ease) forwards; }
	.js.rh-noreveal .rh-draw .rh-plate__sketch { -webkit-mask: none; mask: none; animation: none; }
}
@keyframes rh-wipe { from { -webkit-mask-position: 100% 0; mask-position: 100% 0; } to { -webkit-mask-position: 0 0; mask-position: 0 0; } }

/* ============================================================================================================
   Home: hero spread (two facing pages of the sketchbook)
   ============================================================================================================ */
.rh-hero { padding-block: clamp(1.75rem, 4vw, 3.25rem) clamp(2.5rem, 6vw, 4.5rem) !important; }
.rh-hero__spread { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); position: relative; background: var(--tooth), var(--sheet);
	box-shadow: 0 1px 0 rgba(34, 31, 28, .06), 0 34px 60px -40px rgba(34, 31, 28, .55); }
/* the gutter: a soft fold between the two pages */
.rh-hero__spread::before { content: ""; position: absolute; top: 0; bottom: 0; left: 52.5%; width: 46px; transform: translateX(-50%); pointer-events: none;
	background: linear-gradient(90deg, transparent, rgba(34, 31, 28, .07) 42%, rgba(34, 31, 28, .14) 50%, rgba(34, 31, 28, .06) 58%, transparent); }
.rh-hero__page { padding: clamp(1.5rem, 4.5vw, 3.6rem); min-width: 0; }
.rh-hero__page--words { display: flex; flex-direction: column; justify-content: center; }
.rh-hero__title { font-size: clamp(2.6rem, 1.6rem + 4vw, 4.6rem); line-height: 1.02; margin: .25rem 0 1rem; max-width: 12ch; }
.rh-hero .rh-lead { margin: 0 0 1.5rem; }
.rh-hero__call { display: grid; gap: .1rem; margin-bottom: 1.4rem; padding: .9rem 0 .2rem; border-top: 1px solid var(--rule); }
.rh-hero__call-label { font-size: .9rem; font-weight: 600; color: var(--ink-soft); }
.rh-hero__phone { font-family: var(--display); font-size: clamp(2rem, 1.4rem + 2vw, 2.9rem); line-height: 1.1; color: var(--ink); text-decoration: none; width: fit-content; background: linear-gradient(var(--wash), var(--wash)) 0 88% / 100% .32em no-repeat; }
.rh-hero__phone:hover { color: var(--sanguine); }
.rh-hero__btns { margin-top: .2rem; }
.rh-hero__page--art { position: relative; display: flex; align-items: center; justify-content: center; padding-left: clamp(1.5rem, 4vw, 3.4rem); }
.rh-plate--hero { width: min(100%, 25rem); --tilt: 1.2deg; }
@media (max-width: 900px) {
	.rh-hero__spread { grid-template-columns: 1fr; }
	.rh-hero__spread::before { display: none; }
	.rh-hero__page--art { padding-top: 0; }
	.rh-hero__title { max-width: 16ch; }
}

/* "Open now" line */
.rh-open { display: inline-flex; align-items: center; gap: .5rem; font-size: .95rem; font-weight: 600; margin: .45rem 0 0; color: var(--ink); }
.rh-open__dot { width: .65rem; height: .65rem; border-radius: 50%; background: var(--ink-soft); box-shadow: 0 0 0 3px rgba(34, 31, 28, .1); flex: 0 0 auto; }
.rh-open--open .rh-open__dot { background: #3f7d3a; box-shadow: 0 0 0 3px rgba(63, 125, 58, .2); }
.rh-open--later .rh-open__dot { background: var(--ochre); }
.rh-open--closed .rh-open__dot { background: var(--sanguine); }
.rh-open--dark { color: var(--paper); }

/* ============================================================================================================
   Mission: a letter clipped to the page
   ============================================================================================================ */
.rh-mission { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .9fr); gap: clamp(1.5rem, 5vw, 4rem); align-items: center; }
.rh-mission__sheet { position: relative; padding: clamp(1.75rem, 4vw, 3rem) clamp(1.25rem, 4vw, 3rem) clamp(1.5rem, 3vw, 2.4rem); transform: rotate(-.6deg); }
.rh-mission__sheet h2 { margin-top: .2rem; }
.rh-binder { position: absolute; top: -18px; left: 50%; width: 74px; height: 34px; transform: translateX(-50%);
	background: linear-gradient(#4b4a48, #2b2a28) top / 100% 62% no-repeat; border-radius: 3px 3px 6px 6px; box-shadow: 0 3px 5px rgba(0, 0, 0, .25); }
.rh-binder::before, .rh-binder::after { content: ""; position: absolute; top: -12px; width: 26px; height: 18px; border: 3px solid #6d6b67; border-bottom: 0; border-radius: 12px 12px 0 0; }
.rh-binder::before { left: 6px; } .rh-binder::after { right: 6px; }
.rh-mission__quote { margin: 1rem 0 1.4rem; padding: 0; border: 0; }
.rh-mission__quote p { font-family: var(--display); font-size: clamp(1.3rem, 1rem + 1.2vw, 1.75rem); line-height: 1.3; margin: 0; }
.rh-mission__quote p::before { content: "“"; color: var(--sanguine); } .rh-mission__quote p::after { content: "”"; color: var(--sanguine); }
.rh-mission__quote cite { display: block; margin-top: .5rem; font-style: normal; font-size: .9rem; color: var(--ink-soft); }
.rh-mission__list { list-style: none; counter-reset: m; padding: 0; margin: 0; display: grid; gap: .85rem; }
.rh-mission__list li { counter-increment: m; position: relative; padding-left: 2.6rem; }
.rh-mission__list li::before { content: counter(m); position: absolute; left: 0; top: -.35rem; font-family: var(--hand); font-size: 2.1rem; line-height: 1; color: var(--sanguine); width: 1.8rem; text-align: center; }
.rh-mission__art .rh-plate { max-width: 26rem; margin-inline: auto; }
@media (max-width: 860px) { .rh-mission { grid-template-columns: 1fr; row-gap: 3.2rem; } .rh-mission__art { order: -1; } .rh-mission__art .rh-plate { max-width: 22rem; } }

/* ============================================================================================================
   Every age: six plates
   ============================================================================================================ */
.rh-ages { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.25rem, 3vw, 2.4rem) clamp(1rem, 2.5vw, 2rem); }
.rh-age { padding: 0 6px; }
.rh-age:nth-child(3n+1) .rh-plate { --tilt: -1.1deg; } .rh-age:nth-child(3n+2) .rh-plate { --tilt: .7deg; } .rh-age:nth-child(3n) .rh-plate { --tilt: -.4deg; }
.rh-plate--age .rh-plate__art { aspect-ratio: 4 / 3; }
.rh-plate--age .rh-plate__sketch { height: 100%; object-fit: cover; }
.rh-age__label { display: block; font-family: var(--display); font-size: 1.35rem; color: var(--ink); line-height: 1.25; margin-bottom: .35rem; }
.rh-age__line { display: block; }
.rh-age__read { display: block; margin-top: .45rem; font-weight: 700; color: var(--blue); font-size: .9rem; }
.rh-age__read::after { content: " →"; }
.rh-plate--age:hover .rh-age__read { color: var(--sanguine); }
.rh-ages__golf { margin-top: clamp(1.5rem, 3vw, 2.4rem); }
.rh-ages__golf p { margin: 0; padding: 1rem 1.2rem; border-left: 4px solid var(--sage); background: rgba(92, 107, 68, .08); max-width: 50rem; }
@media (max-width: 900px) { .rh-ages { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .rh-ages { grid-template-columns: 1fr; } .rh-age .rh-plate { --tilt: 0deg !important; } }

/* ============================================================================================================
   Posture study
   ============================================================================================================ */
.rh-posture-wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(1.5rem, 5vw, 4rem); align-items: center; }
.rh-posture__copy h3 { margin-top: 1.6rem; font-size: 1.2rem; }
.rh-tips { padding-left: 1.2rem; display: grid; gap: .45rem; }
.rh-tips li::marker { color: var(--sanguine); }
.rh-posture { background: var(--tooth), var(--sheet); padding: clamp(1rem, 3vw, 1.75rem); box-shadow: 0 22px 40px -28px rgba(34, 31, 28, .5); position: relative; }
.rh-posture::before { content: ""; position: absolute; inset: .5rem; border: 1px solid var(--rule); pointer-events: none; }
.rh-posture__art { position: relative; }
.rh-posture__svg { display: block; width: 100%; max-width: 26rem; height: auto; margin: 0 auto; overflow: visible; }
.rh-posture__kbt { font: 800 15px var(--body); fill: var(--ink); }
.rh-posture__gaze { opacity: .75; }
.rh-posture__ctrl { position: relative; z-index: 1; margin-top: .5rem; }
.rh-posture__label { display: block; font-weight: 700; margin-bottom: .4rem; }
.rh-posture__range { width: 100%; accent-color: var(--sanguine); height: 2rem; cursor: pointer; }
.rh-posture__scale { display: flex; justify-content: space-between; font-size: .8rem; color: var(--ink-soft); margin: 0 0 .7rem; }
.rh-posture__out { margin: 0; min-height: 5.2rem; }
.rh-posture__deg { font-family: var(--display); font-size: 1.1rem; color: var(--ink-soft); }
.rh-posture__lb { display: block; font-family: var(--display); font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.2rem); line-height: 1.1; color: var(--sanguine); }
.rh-posture__say { display: block; color: var(--ink-soft); margin-top: .2rem; }
@media (max-width: 860px) { .rh-posture-wrap { grid-template-columns: 1fr; } }

/* ============================================================================================================
   Meet Dr. Holmes + the welcome video
   ============================================================================================================ */
.rh-meet { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(1.5rem, 5vw, 4rem); align-items: center; }
.rh-hello { position: relative; margin: 0; background: var(--tooth), var(--sheet); padding: clamp(.7rem, 1.6vw, 1.1rem); box-shadow: 0 22px 40px -28px rgba(34, 31, 28, .5); transform: rotate(-.8deg); }
.rh-hello::before { content: ""; position: absolute; inset: .45rem; border: 1px solid var(--rule); pointer-events: none; }
.rh-hello__frame { position: relative; background: var(--ink); }
.rh-hello__video { display: block; width: 100%; height: auto; aspect-ratio: 720 / 436; background: var(--ink); }
.rh-hello__words { margin-top: .4rem; }
.rh-hello__words summary { cursor: pointer; color: var(--blue); font-weight: 700; }
.rh-hello__words p { font-family: var(--display); font-size: 1.1rem; color: var(--ink); line-height: 1.45; }
.rh-margin { list-style: none; padding: 0; margin: 1.2rem 0; display: grid; gap: .7rem; }
.rh-margin li { display: grid; grid-template-columns: 5.2rem minmax(0, 1fr); gap: .8rem; align-items: baseline; padding-bottom: .7rem; border-bottom: 1px dashed var(--rule); }
.rh-margin__k { font-family: var(--hand); font-size: 1.65rem; line-height: 1; color: var(--sanguine); }
.rh-sign { margin: 1.4rem 0 1.4rem; }
.rh-sign__words { display: block; font-family: var(--display); font-size: clamp(1.25rem, 1rem + 1vw, 1.6rem); line-height: 1.3; }
.rh-sign__name { display: block; font-family: var(--hand); font-size: 2.3rem; color: var(--blue); margin-top: .3rem; transform: rotate(-3deg); width: fit-content; }
@media (max-width: 860px) { .rh-meet { grid-template-columns: 1fr; } }

/* ============================================================================================================
   The shelf: newest articles as cloth-bound books
   ============================================================================================================ */
.rh-shelf { position: relative; padding: 0 clamp(.5rem, 2vw, 1.5rem); }
.rh-shelf__books { list-style: none; margin: 0; padding: 0; display: flex; align-items: flex-end; gap: clamp(.3rem, .8vw, .6rem); height: 24rem; }
.rh-book { flex: 1 1 0; min-width: 0; height: var(--h, 90%); --c: var(--sanguine); --t: var(--sheet); }
.rh-book--blue { --c: var(--blue); } .rh-book--ink { --c: #34302c; } .rh-book--ochre { --c: #8a6324; } .rh-book--sage { --c: #4d5a38; } .rh-book--wash { --c: #c9a88f; --t: var(--ink); }
.rh-book__link { display: flex; flex-direction: column; justify-content: space-between; align-items: center; height: 100%; padding: 1.1rem .4rem .8rem; text-decoration: none; color: var(--t);
	background:
		linear-gradient(90deg, rgba(0, 0, 0, .22), transparent 14%, rgba(255, 255, 255, .1) 40%, transparent 60%, rgba(0, 0, 0, .25)),
		repeating-linear-gradient(0deg, rgba(255, 255, 255, .045) 0 2px, transparent 2px 4px), var(--c);
	border-radius: 3px 3px 1px 1px; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .15); transition: transform .3s var(--ease); position: relative; }
.rh-book__link::before, .rh-book__link::after { content: ""; position: absolute; left: 10%; right: 10%; height: 2px; background: rgba(232, 200, 120, .75); }
.rh-book__link::before { top: .5rem; } .rh-book__link::after { bottom: 2.6rem; }
.rh-book__title { writing-mode: vertical-rl; transform: rotate(180deg); font-family: var(--display); font-size: clamp(.92rem, .8rem + .35vw, 1.08rem); line-height: 1.15; max-height: calc(100% - 3.6rem); overflow: hidden; text-align: left; }
.rh-book__date { font-size: .72rem; font-weight: 700; letter-spacing: .04em; opacity: .9; text-transform: uppercase; }
.rh-book__link:hover, .rh-book__link:focus-visible { transform: translateY(-14px) rotate(-1.5deg); }
.rh-book--wash .rh-book__link::before, .rh-book--wash .rh-book__link::after { background: rgba(34, 31, 28, .45); }
.rh-shelf__board { height: 18px; margin: 0 calc(-1 * clamp(.5rem, 2vw, 1.5rem)); border-radius: 2px;
	background: linear-gradient(#8b6a4a, #6e5137 60%, #533c29); box-shadow: 0 14px 22px -12px rgba(34, 31, 28, .6); }
.rh-shelf__more { margin-top: 1.6rem; }
/* a phone: the books lie flat, in a stack */
@media (max-width: 700px) {
	.rh-shelf__books { flex-direction: column; align-items: stretch; height: auto; gap: 4px; }
	.rh-book { height: auto; width: var(--h); max-width: 100%; }
	.rh-book:nth-child(odd) { margin-left: auto; }
	.rh-book__link { flex-direction: row; gap: .8rem; padding: .75rem 1rem; align-items: center; }
	.rh-book__link::before, .rh-book__link::after { top: 10%; bottom: 10%; width: 2px; height: auto; left: auto; right: auto; }
	.rh-book__link::before { left: .45rem; } .rh-book__link::after { right: 4.6rem; bottom: 10%; }
	.rh-book__title { writing-mode: horizontal-tb; transform: none; max-height: none; padding-left: .3rem; font-size: 1rem; }
	.rh-book__date { flex: 0 0 auto; }
	.rh-book__link:hover, .rh-book__link:focus-visible { transform: translateX(-6px); }
	.rh-shelf__board { display: none; }
}

/* ============================================================================================================
   Visit: address card, hours chart, the drawn map
   ============================================================================================================ */
.rh-visit { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.3fr); gap: clamp(1.25rem, 4vw, 3rem); align-items: start; }
.rh-visit__card { padding: clamp(1.4rem, 3.5vw, 2.4rem); }
.rh-visit__card h2 { margin: .2rem 0 1rem; }
.rh-address { font-style: normal; line-height: 1.55; }
.rh-address span { color: var(--ink-soft); }
.rh-visit__phone { margin: .8rem 0 1rem; }
.rh-visit__phone a { font-family: var(--display); font-size: 1.9rem; color: var(--ink); text-decoration: none; background: linear-gradient(var(--wash), var(--wash)) 0 88% / 100% .32em no-repeat; }
.rh-visit__btns { margin-bottom: 1.4rem; }
.rh-visit__btns .wp-block-button__link { font-size: .92rem; padding: .7rem 1rem; }
.rh-visit__btns .is-style-pencil .wp-block-button__link { padding: calc(.7rem - 2px) calc(1rem - 2px); }
.rh-visit__h { margin: 1.4rem 0 .3rem; font-size: 1.25rem; }
.rh-hours { margin-top: .8rem; }
.rh-hours__list { list-style: none; margin: 0; padding: 0; }
.rh-hours__row { display: grid; grid-template-columns: 7rem minmax(0, 1fr); grid-template-areas: "day time" "day track"; column-gap: .8rem; padding: .45rem 0; border-bottom: 1px dashed var(--rule); }
.rh-hours__day { grid-area: day; font-weight: 700; }
.rh-hours__time { grid-area: time; font-size: .92rem; color: var(--ink-soft); }
.rh-hours__track { grid-area: track; position: relative; height: 9px; margin-top: .3rem; background: repeating-linear-gradient(90deg, rgba(34, 31, 28, .14) 0 1px, transparent 1px 22.22%); border-radius: 1px; }
.rh-hours__bar { position: absolute; top: 0; bottom: 0; left: var(--a); width: calc(var(--b) - var(--a)); background: var(--sanguine); border-radius: 2px 5px 3px 6px; opacity: .85; }
.rh-hours__row.is-closed .rh-hours__time { font-style: italic; }
.rh-hours__row.is-today { background: linear-gradient(90deg, rgba(230, 194, 170, .45), transparent 85%); }
.rh-hours__row.is-today .rh-hours__day::after { content: "today"; display: block; font-family: var(--hand); color: var(--sanguine); font-size: 1.25rem; font-weight: 400; line-height: 1; }
.rh-hours__scale { position: relative; height: 1.1rem; margin: .3rem 0 0 7.8rem; font-size: .72rem; color: var(--ink-soft); }
.rh-hours__scale span { position: absolute; left: var(--a); transform: translateX(-50%); }
.rh-map { margin: 0; position: relative; background: var(--sheet); padding: clamp(.6rem, 1.4vw, 1rem); box-shadow: 0 22px 40px -28px rgba(34, 31, 28, .5); transform: rotate(.5deg); }
.rh-map::before { content: ""; position: absolute; inset: .4rem; border: 1px solid var(--rule); pointer-events: none; }
.rh-map__art { position: relative; overflow: hidden; container-type: inline-size; }
.rh-map__art img { display: block; width: 100%; height: auto; }
.rh-map__labels { position: absolute; inset: 0; pointer-events: none; }
.rh-map__label { position: absolute; transform: translate(-50%, -50%); white-space: nowrap; font-size: clamp(.55rem, 1.45cqi, .85rem); font-weight: 700; color: var(--ink); letter-spacing: .02em;
	text-shadow: 0 0 3px var(--sheet), 0 0 3px var(--sheet), 0 0 2px var(--sheet); }
.rh-map__label--v { transform: translate(-50%, -50%) rotate(-90deg); }
.rh-map__label--d { transform: translate(-50%, -50%) rotate(-58deg); }
.rh-map__label--water { color: var(--blue-deep); font-style: italic; font-weight: 600; transform: translate(-50%, -50%) rotate(-28deg); }
.rh-map__label--park { color: #47552f; font-style: italic; font-weight: 600; }
.rh-map__pin { position: absolute; z-index: 2; transform: translate(-50%, -50%); }
.rh-map__pin-dot { display: block; width: 18px; height: 18px; border-radius: 50%; background: var(--sanguine); border: 3px solid var(--sheet); box-shadow: 0 0 0 2px var(--ink); }
.rh-map__pin-tag { position: absolute; left: 50%; bottom: calc(100% + 10px); transform: translateX(-50%) rotate(-2deg); white-space: nowrap; background: var(--ink); color: var(--paper); padding: .35rem .6rem; font-weight: 700; font-size: clamp(.68rem, 1.6cqi, .92rem); line-height: 1.2; border-radius: 2px; }
.rh-map__pin-tag small { display: block; font-weight: 500; opacity: .85; }
.rh-map__pin-tag::after { content: ""; position: absolute; left: 50%; top: 100%; border: 7px solid transparent; border-top-color: var(--ink); transform: translateX(-50%); }
.rh-map__note { font-family: var(--hand); font-size: 1.55rem; color: var(--sanguine); margin: .6rem .3rem 0; line-height: 1.05; transform: rotate(-1deg); }
.rh-map__cap { font-size: .8rem; color: var(--ink-soft); margin-top: .5rem; }
@media (max-width: 900px) { .rh-visit { grid-template-columns: 1fr; } .rh-map { transform: none; } }

/* ============================================================================================================
   Call-to-action band (end of most pages) + footer: the sketchbook's back cover
   ============================================================================================================ */
.rh-cta-band { padding-block: clamp(3rem, 7vw, 5rem) !important; background: var(--wash) linear-gradient(180deg, rgba(250, 246, 239, .55), rgba(250, 246, 239, 0) 40%); position: relative; }
.rh-cta-band::before { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 22px; background: var(--paper);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 22' preserveAspectRatio='none'%3E%3Cpath d='M0 0h400v8c-20 4-34 10-56 6s-36 8-60 4-40 7-62 3-34 9-58 4-40 6-62 3-30 8-52 3-34 4-50 1V0z'/%3E%3C/svg%3E") 0 0 / 400px 22px repeat-x;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 22' preserveAspectRatio='none'%3E%3Cpath d='M0 0h400v8c-20 4-34 10-56 6s-36 8-60 4-40 7-62 3-34 9-58 4-40 6-62 3-30 8-52 3-34 4-50 1V0z'/%3E%3C/svg%3E") 0 0 / 400px 22px repeat-x; }
.rh-cta-band__inner { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(1.5rem, 5vw, 4rem); align-items: center; }
.rh-cta-band__art img { display: block; width: 100%; max-width: 30rem; mix-blend-mode: multiply; }
.rh-cta-band h2 { margin: .2rem 0 .4rem; }
.rh-cta-band__phone { margin: 0 0 .6rem; }
.rh-cta-band__phone a { font-family: var(--display); font-size: clamp(2.4rem, 1.6rem + 3vw, 3.8rem); line-height: 1.05; color: var(--ink); text-decoration: none; }
.rh-cta-band__phone a:hover { color: var(--sanguine); }
.rh-cta-band .rh-note { color: #7e2f1d; }
.rh-cta-band .rh-note::after { filter: brightness(.8); }
@media (max-width: 800px) { .rh-cta-band__inner { grid-template-columns: 1fr; } .rh-cta-band__art { max-width: 22rem; } }

.rh-footer { background: var(--board); color: var(--paper); padding-block: clamp(3rem, 6vw, 4.5rem) 1.5rem !important; position: relative;
	background-image: repeating-linear-gradient(45deg, rgba(255, 255, 255, .018) 0 2px, transparent 2px 5px), repeating-linear-gradient(-45deg, rgba(0, 0, 0, .08) 0 2px, transparent 2px 5px); }
/* the elastic band that keeps the sketchbook shut */
.rh-footer__band { position: absolute; top: 0; bottom: 0; right: clamp(1.25rem, 6vw, 5rem); width: 14px; background: linear-gradient(90deg, #6a2617, #9c3d27 40%, #7c2f1d); box-shadow: -2px 0 4px rgba(0, 0, 0, .3), 2px 0 4px rgba(0, 0, 0, .25); }
.rh-footer a { color: var(--paper); }
.rh-footer a:hover { color: var(--wash); }
.rh-footer__grid { display: grid; grid-template-columns: 1.3fr 1.1fr 1fr 1fr; gap: clamp(1.5rem, 4vw, 3rem); padding-right: 2.5rem; }
.rh-footer__mark { display: flex; align-items: center; gap: .7rem; font-family: var(--display); font-size: 1.5rem; margin: 0 0 .7rem; }
.rh-footer__logo { width: 3rem; height: 3rem; color: var(--paper); opacity: .9; }
.rh-footer__tag { font-family: var(--hand); font-size: 1.55rem; line-height: 1.05; color: var(--wash); margin: 0 0 1rem; }
.rh-footer__addr, .rh-footer__phone { margin: 0 0 .8rem; font-size: .95rem; line-height: 1.55; }
.rh-footer__phone a:first-child { font-weight: 800; font-size: 1.15rem; }
.rh-footer__h { font-family: var(--body); font-size: .8rem !important; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--wash); margin: .4rem 0 .9rem; }
.rh-footer__list { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; font-size: .95rem; }
.rh-footer__list a { text-decoration: none; } .rh-footer__list a:hover { text-decoration: underline; }
.rh-hourlist { list-style: none; padding: 0; margin: .7rem 0 0; display: grid; gap: .3rem; font-size: .95rem; }
.rh-hourlist li { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px dashed rgba(241, 234, 223, .18); padding-bottom: .3rem; }
.rh-hourlist li span:first-child { font-weight: 700; white-space: nowrap; }
.rh-hourlist li span:last-child { text-align: right; }
.rh-footer__base { margin-top: clamp(2rem, 4vw, 3rem); padding-top: 1.1rem; border-top: 1px solid rgba(241, 234, 223, .16); font-size: .85rem; color: rgba(241, 234, 223, .82); gap: .5rem 2rem; padding-right: 2.5rem; }
.rh-footer__base p { margin: 0; }
@media (max-width: 960px) { .rh-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .rh-footer__grid { grid-template-columns: 1fr; } .rh-footer__band { right: .6rem; width: 10px; } }

/* ============================================================================================================
   Inner pages
   ============================================================================================================ */
.rh-pagehead { padding-block: clamp(2rem, 5vw, 3.75rem) clamp(1.5rem, 4vw, 3rem) !important; }
.rh-pagehead__inner { display: grid; gap: clamp(1.5rem, 5vw, 4rem); align-items: center; }
.rh-pagehead__inner.has-art { grid-template-columns: minmax(0, 1.25fr) minmax(0, .85fr); }
.rh-pagehead h1 { margin: .2rem 0 .8rem; max-width: 18ch; }
.rh-pagehead .rh-lead { margin: 0; }
.rh-pagehead__art .rh-plate { max-width: 22rem; margin-inline: auto; --tilt: 1.3deg; }
.rh-pagehead--forms .rh-pagehead__art .rh-plate { max-width: 17rem; }
.rh-pagehead--blog { border-bottom: 1px solid var(--rule); }
@media (max-width: 820px) { .rh-pagehead__inner.has-art { grid-template-columns: 1fr; } }

.rh-about, .rh-family, .rh-appt, .rh-intro, .rh-contact { display: grid; gap: clamp(1.5rem, 5vw, 4rem); align-items: start; }
.rh-about { grid-template-columns: minmax(0, 1.3fr) minmax(0, .8fr); }
.rh-about__art .rh-plate { max-width: 22rem; margin-inline: auto; }
.rh-family { grid-template-columns: minmax(0, .55fr) minmax(0, 1fr) minmax(0, .9fr); align-items: center; }
.rh-family__art .rh-plate { max-width: 20rem; --tilt: -2deg; }
.rh-appt { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: center; }
.rh-appt__art .rh-plate { max-width: 20rem; margin-inline: auto; }
.rh-intro { grid-template-columns: minmax(0, 1.3fr) minmax(0, .8fr); align-items: center; }
.rh-contact { grid-template-columns: minmax(0, 1.4fr) minmax(0, .8fr); }
@media (max-width: 1020px) { .rh-family { grid-template-columns: minmax(0, .6fr) minmax(0, 1fr); } .rh-family__video { grid-column: 1 / -1; max-width: 34rem; } }
@media (max-width: 820px) { .rh-about, .rh-family, .rh-appt, .rh-intro, .rh-contact { grid-template-columns: 1fr; } .rh-family__art .rh-plate { margin-inline: auto; } }

/* ticks: brush check marks */
.rh-ticks { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.rh-ticks li { position: relative; padding-left: 2rem; }
.rh-ticks li::before { content: ""; position: absolute; left: 0; top: .2rem; width: 1.3rem; height: 1.1rem;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 22'%3E%3Cpath d='M3 12c3 2 5 5 7 8C13 13 18 6 24 2' fill='none' stroke='%239C3D27' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain; }
.rh-ticks--links { font-weight: 700; font-size: 1.05rem; }

/* the timeline */
.rh-years { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; position: relative; }
.rh-years::before { content: ""; position: absolute; left: 0; right: 0; top: 1.05rem; height: 10px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 10' preserveAspectRatio='none'%3E%3Cpath d='M2 6c60-5 120 2 200-1s140 3 196-2' fill='none' stroke='%23221F1C' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat 0 0 / 100% 100%; }
.rh-years__dot { position: relative; padding-top: 2.6rem; }
.rh-years__dot::before { content: ""; position: absolute; top: .55rem; left: 0; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: var(--sheet); border: 3px solid var(--ink); }
.rh-years__dot--now::before { background: var(--sanguine); border-color: var(--sanguine); }
.rh-years__when { display: block; font-family: var(--hand); font-size: 1.9rem; line-height: 1; color: var(--sanguine); margin-bottom: .3rem; }
.rh-years__what { display: block; font-size: .95rem; line-height: 1.45; }
@media (max-width: 860px) {
	.rh-years { grid-template-columns: 1fr; gap: 0; padding-left: 2.2rem; }
	.rh-years::before { left: .55rem; right: auto; top: 0; bottom: 0; width: 3px; height: auto; background: var(--ink); border-radius: 2px; }
	.rh-years__dot { padding: 0 0 1.4rem; }
	.rh-years__dot::before { left: -2.2rem; top: .25rem; }
}

/* techniques as specimen labels */
.rh-labels { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 13.2rem), 1fr)); gap: 1.1rem; }
.rh-label { position: relative; background: var(--sheet); padding: 1.4rem 1.2rem 1.1rem; border: 1px solid var(--rule); box-shadow: 4px 5px 0 rgba(34, 31, 28, .07); }
.rh-label::before { content: ""; position: absolute; left: 1.2rem; right: 1.2rem; top: .6rem; height: 3px; background: var(--sanguine); opacity: .75; }
.rh-label__no { display: block; font-family: var(--display); font-size: .9rem; color: var(--ink-soft); margin: .3rem 0 .35rem; letter-spacing: .08em; }
.rh-label__name { font-size: 1.25rem; margin: 0 0 .5rem; }
.rh-label p { margin: 0 0 .5rem; font-size: .97rem; }
.rh-label__more a { font-weight: 700; font-size: .92rem; }
.rh-other-wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3rem); margin-top: clamp(2rem, 4vw, 3rem); align-items: start; }
.rh-other h3 { margin-top: 0; }
.rh-other .rh-ticks { grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr)); }
.rh-other__aside { border-left: 4px solid var(--blue); padding: .2rem 0 .2rem 1.2rem; }
@media (max-width: 760px) { .rh-other-wrap { grid-template-columns: 1fr; } }

/* the house */
.rh-house { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: center; background: var(--tooth), var(--sheet); padding: clamp(1rem, 3vw, 2rem); box-shadow: 0 22px 40px -28px rgba(34, 31, 28, .5); position: relative; }
.rh-house::before { content: ""; position: absolute; inset: .5rem; border: 1px solid var(--rule); pointer-events: none; }
/* faint blueprint-pencil grid behind the drawing */
.rh-house__art { background: linear-gradient(rgba(30, 77, 153, .07) 1px, transparent 1px) 0 0 / 22px 22px, linear-gradient(90deg, rgba(30, 77, 153, .07) 1px, transparent 1px) 0 0 / 22px 22px; }
.rh-house__svg { display: block; width: 100%; height: auto; }
.rh-house__p { opacity: .14; transition: opacity .5s var(--ease); }
.rh-house__p path { stroke-dasharray: 1400; stroke-dashoffset: 0; }
.rh-house[data-phase="1"] .rh-house__p--1, .rh-house[data-phase="2"] .rh-house__p--1, .rh-house[data-phase="2"] .rh-house__p--2,
.rh-house[data-phase="3"] .rh-house__p--1, .rh-house[data-phase="3"] .rh-house__p--2, .rh-house[data-phase="3"] .rh-house__p--3 { opacity: 1; }
.rh-house__light { opacity: 0; transition: opacity .6s .5s; }
.rh-house[data-phase="3"] .rh-house__light { opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
	.rh-house .is-drawing path { animation: rh-ink 1.2s var(--ease) both; }
}
@keyframes rh-ink { from { stroke-dashoffset: 1400; } to { stroke-dashoffset: 0; } }
.rh-house__tabs { display: grid; gap: .5rem; margin-bottom: 1rem; }
.rh-house__tab { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: .8rem; text-align: left; font: inherit; color: var(--ink); background: transparent; border: 2px solid var(--rule); border-radius: 2px; padding: .7rem 1rem; cursor: pointer; transition: border-color .2s, background .2s; }
.rh-house__tab:hover { border-color: var(--ink); }
.rh-house__tab[aria-selected="true"] { border-color: var(--ink); background: var(--paper); box-shadow: 4px 4px 0 var(--wash); }
.rh-house__tabno { font-family: var(--hand); font-size: 1.5rem; color: var(--sanguine); line-height: 1; }
.rh-house__tabname { font-weight: 700; }
.rh-house__panel { min-height: 8.5rem; }
.rh-house__part { font-family: var(--display); font-size: 1.45rem; margin: 0 0 .3rem; }
@media (max-width: 820px) { .rh-house { grid-template-columns: 1fr; } }

/* ledger (payment) */
.rh-ledger { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(1.5rem, 4vw, 3rem); }
.rh-ledger__row { padding: 1rem 0; border-top: 2px solid var(--ink); }
@media (max-width: 700px) { .rh-ledger { grid-template-columns: 1fr; } }
.rh-ledger dt { font-family: var(--display); font-size: 1.35rem; margin-bottom: .3rem; }
.rh-ledger dd { margin: 0; color: var(--ink-soft); }
.rh-ledger__note { margin-top: 1.6rem; max-width: 46rem; font-size: 1.05rem; }

/* first-visit steps: a numbered path */
.rh-steps { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.8rem 1.4rem; counter-reset: s; }
.rh-steps__step { position: relative; padding-top: 3.2rem; }
.rh-steps__no { position: absolute; top: 0; left: 0; width: 2.6rem; height: 2.6rem; display: grid; place-items: center; font-family: var(--display); font-size: 1.3rem; color: var(--paper); background: var(--ink); border-radius: 46% 54% 48% 52% / 55% 45% 55% 45%; }
.rh-steps__step:not(:nth-child(4n))::after { content: ""; position: absolute; top: 1.25rem; left: 3.2rem; right: 0; height: 2px; background: repeating-linear-gradient(90deg, var(--sanguine) 0 6px, transparent 6px 12px); opacity: .6; }
.rh-steps__step p { margin: 0; font-size: .97rem; }
@media (max-width: 900px) { .rh-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rh-steps__step::after { display: none; } }
@media (max-width: 520px) { .rh-steps { grid-template-columns: 1fr; } }
.rh-download .wp-block-buttons { margin-bottom: .5rem; }

/* FAQ: the lecture series */
.rh-pick { padding: clamp(1.4rem, 3.5vw, 2.4rem); max-width: 52rem; border-left: 6px solid var(--sanguine); }
.rh-pick h2 { margin-top: .1rem; }
.rh-pick p:first-of-type + p { font-family: var(--display); font-size: 1.3rem; }
.rh-lectures { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); gap: 1rem; }
.rh-lecture__link { display: flex; flex-direction: column; height: 100%; padding: 1.1rem 1.15rem 1rem; background: var(--sheet); border: 1px solid var(--rule); color: var(--ink); text-decoration: none; box-shadow: 4px 5px 0 rgba(34, 31, 28, .07); transition: transform .25s var(--ease), box-shadow .25s; }
.rh-lecture__link:hover { transform: translateY(-3px); box-shadow: 6px 8px 0 var(--wash); }
.rh-lecture__no { font-family: var(--hand); color: var(--sanguine); font-size: 1.35rem; line-height: 1; }
.rh-lecture__title { font-family: var(--display); font-size: 1.22rem; line-height: 1.2; margin: .3rem 0 .4rem; }
.rh-lecture__who { font-weight: 700; font-size: .9rem; color: var(--ink-soft); }
.rh-lecture__desc { font-size: .93rem; color: var(--ink-soft); margin-top: .4rem; }
.rh-lecture__play { margin-top: auto; padding-top: .7rem; font-weight: 700; font-size: .9rem; color: var(--blue); }
.rh-lecture__play::before { content: "▶"; font-size: .7rem; margin-right: .4rem; color: var(--sanguine); }

/* contact + forms */
.rh-anchor { position: relative; top: -6rem; }
.rh-formcard { padding: clamp(1.4rem, 3.5vw, 2.6rem); }
.rh-formcard__title { margin-top: 0; }
.rh-card { padding: clamp(1.3rem, 3vw, 2rem); }
.rh-card__h { font-size: 1.4rem; margin: 0 0 .6rem; }
.rh-card__phone a { font-family: var(--display); font-size: 1.8rem; color: var(--ink); text-decoration: none; }
.rh-card address { font-style: normal; margin: .6rem 0; }
.rh-card .rh-hourlist li { border-bottom-color: var(--rule); }
.rh-card__reviews { margin-top: 1rem; font-size: .95rem; }
.rh-officevid { max-width: 46rem; }

/* Ninja Forms in the sketchbook style */
.rh-nf .nf-form-fields-required { font-size: .85rem; color: var(--ink-soft); margin-bottom: .8rem; }
.rh-nf nf-fields-wrap { display: flex; flex-wrap: wrap; gap: 0 1rem; }
.rh-nf nf-field { flex: 1 1 100%; }
.rh-nf nf-field:has(.rh-half) { flex: 1 1 calc(50% - .5rem); min-width: min(100%, 13rem); }
.rh-nf .nf-field-container { margin-bottom: 1.05rem !important; }
.rh-nf .nf-field-label label, .rh-nf .nf-field-label .nf-label-span { font-weight: 700; font-size: .98rem; color: var(--ink); }
.rh-nf .ninja-forms-req-symbol { color: var(--sanguine); }
.rh-nf input[type="text"], .rh-nf input[type="email"], .rh-nf input[type="tel"], .rh-nf textarea, .rh-nf .pikaday__display {
	width: 100%; font: inherit; color: var(--ink); background: #fff; border: 0; border-bottom: 2px solid var(--ink); border-radius: 0; padding: .7rem .75rem; box-shadow: inset 0 0 0 1px var(--rule); }
.rh-nf textarea { min-height: 7rem; }
.rh-nf input:focus, .rh-nf textarea:focus { outline: 3px solid var(--blue); outline-offset: 1px; }
.rh-nf .rh-chips-field ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.rh-nf .rh-chips-field li { position: relative; margin: 0 !important; }
.rh-nf .rh-chips-field input[type="radio"] { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.rh-nf .rh-chips-field li label { display: inline-block; margin: 0 !important; padding: .5rem .95rem; border: 2px solid var(--ink); border-radius: 2px; background: #fff; font-weight: 600; cursor: pointer; }
.rh-nf .rh-chips-field input:checked + label { background: var(--ink); color: #fff; }
.rh-nf .rh-chips-field input:focus-visible + label { outline: 3px solid var(--blue); outline-offset: 2px; }
.rh-nf .nf-error-msg, .rh-nf .nf-error .nf-error-msg { color: #8a2a17; font-weight: 600; font-size: .9rem; margin-top: .3rem; }
.rh-nf .nf-error .ninja-forms-field { border-bottom-color: #8a2a17; }
.rh-nf input[type="submit"], .rh-nf input[type="button"] { font: 700 1.05rem var(--body); background: var(--blue); color: #fff; border: 0; border-radius: 2px; padding: .95rem 1.6rem; cursor: pointer; }
.rh-nf input[type="submit"]:hover { background: var(--ink); }
.rh-nf .nf-form-errors { color: #8a2a17; font-weight: 600; }
.rh-nf .nf-after-form-content { display: none; }
/* the happy screen after sending (built by site.js) */
.rh-success { text-align: center; padding: clamp(1rem, 3vw, 2rem) 0; }
.rh-success:focus { outline: none; }
.rh-success__badge { width: 9rem; margin: 0 auto 1rem; }
.rh-success__badge svg { display: block; width: 100%; height: auto; overflow: visible; }
.rh-success__ink { transform-origin: 50% 50%; }
@media (prefers-reduced-motion: no-preference) {
	.rh-success__ink { animation: rh-splat .55s var(--ease) both; }
	.rh-success__heart { animation: rh-beat 1.4s .5s var(--ease) 2 both; transform-origin: 50% 55%; transform-box: fill-box; }
}
@keyframes rh-splat { from { transform: scale(.2) rotate(-20deg); opacity: 0; } to { transform: scale(1) rotate(0); opacity: 1; } }
@keyframes rh-beat { 0%, 100% { transform: scale(1); } 30% { transform: scale(1.18); } 60% { transform: scale(.96); } }
.rh-success__note { font-family: var(--hand); font-size: 1.8rem; color: var(--sanguine); margin: 0; }
.rh-success__title { font-size: clamp(2rem, 1.4rem + 2.4vw, 3rem); margin: .2rem 0 .5rem; }
.rh-success__title span { display: block; font-size: .6em; color: var(--ink-soft); margin-top: .25rem; }
.rh-success__lead { max-width: 30rem; margin: 0 auto .6rem; }
.rh-success__links { display: flex; flex-wrap: wrap; gap: .8rem; justify-content: center; margin-top: 1.2rem; }
.rh-btn { display: inline-block; font-weight: 700; padding: .8rem 1.3rem; border-radius: 2px; background: var(--blue); color: #fff; text-decoration: none; }
.rh-btn--pencil { background: transparent; color: var(--ink); border: 2px solid var(--ink); }
.rh-btn:hover { background: var(--ink); color: #fff; }
.rh-confetti { position: fixed; inset: 0; z-index: 200; pointer-events: none; }

/* ============================================================================================================
   Blog: pasted-in clippings, the article page
   ============================================================================================================ */
.rh-pagehead--blog .rh-pagehead__inner { display: block; }
.rh-pagehead--blog h1 { max-width: 22ch; }
.rh-search { margin: 1.4rem 0 1rem; max-width: 34rem; }
.rh-search .wp-block-search__input { font: inherit; border: 0; border-bottom: 2px solid var(--ink); background: #fff; padding: .7rem .8rem; box-shadow: inset 0 0 0 1px var(--rule); border-radius: 0; }
.rh-search .wp-block-search__button { font: 700 1rem var(--body); background: var(--ink); color: #fff; border: 0; border-radius: 2px; padding: .7rem 1.1rem; margin-left: .5rem; }
.rh-chips ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .45rem; }
.rh-chips a { display: inline-block; padding: .35rem .8rem; border: 1.5px solid var(--ink); border-radius: 2px; color: var(--ink); text-decoration: none; font-weight: 600; font-size: .9rem; background: var(--sheet); }
.rh-chips a:hover, .rh-chips a[aria-current="page"] { background: var(--ink); color: #fff; }
.rh-section--flush { padding-top: clamp(2rem, 4vw, 3rem) !important; }
.rh-loop__grid { gap: clamp(1.4rem, 3vw, 2.2rem) clamp(1rem, 2.5vw, 1.8rem) !important; }
.rh-clip { position: relative; background: var(--tooth), var(--sheet); padding: .7rem .7rem 1.1rem; box-shadow: 0 18px 30px -24px rgba(34, 31, 28, .5); height: 100%; }
.rh-loop__grid > li:nth-child(3n+1) .rh-clip { transform: rotate(-.5deg); } .rh-loop__grid > li:nth-child(3n+2) .rh-clip { transform: rotate(.4deg); }
.rh-clip__media { margin: 0 0 .8rem !important; }
.rh-clip__media img { filter: grayscale(.85) sepia(.35) contrast(1.05); mix-blend-mode: multiply; transition: filter .4s var(--ease); }
.rh-clip:hover .rh-clip__media img, .rh-clip:focus-within .rh-clip__media img { filter: none; }
.rh-clip__body { padding: 0 .4rem; }
.rh-clip__date { font-family: var(--hand); color: var(--sanguine); font-size: 1.3rem; line-height: 1; }
.rh-clip__title { font-size: 1.25rem !important; margin: .3rem 0 .45rem !important; line-height: 1.2 !important; }
.rh-clip__title a { color: var(--ink); text-decoration: none; }
.rh-clip__title a:hover { color: var(--blue); text-decoration: underline; }
.rh-clip__text { font-size: .95rem; color: var(--ink-soft); margin: 0; }
.rh-clip__text p { margin: 0; }
.rh-pager { margin-top: 2.5rem; gap: .5rem; font-weight: 700; }
.rh-pager a, .rh-pager .page-numbers { padding: .4rem .75rem; color: var(--ink); text-decoration: none; border: 1.5px solid transparent; }
.rh-pager .page-numbers.current { border-color: var(--ink); }
.rh-pager a:hover { border-color: var(--ink); }

.rh-single__article { padding-top: clamp(2rem, 5vw, 3.5rem) !important; }
.rh-single__head { max-width: 44rem; margin-inline: auto !important; }
.rh-single__cats { font-size: .9rem; font-weight: 700; }
.rh-single__cats a { color: var(--sanguine); text-decoration: none; }
.rh-single__title { font-size: clamp(2.1rem, 1.5rem + 2.6vw, 3.4rem) !important; margin: .3rem 0 .5rem !important; }
.rh-single__date { font-family: var(--hand); color: var(--sanguine); font-size: 1.5rem; }
.rh-single__media { max-width: 48rem; margin: 1.6rem auto 2rem !important; }
.is-style-rh-plate, .rh-single__media { position: relative; background: var(--sheet); padding: clamp(.6rem, 1.5vw, 1rem); box-shadow: 0 22px 40px -28px rgba(34, 31, 28, .5); }
.is-style-rh-plate::before, .rh-single__media::before { content: ""; position: absolute; inset: .4rem; border: 1px solid var(--rule); pointer-events: none; z-index: 1; }
.rh-single__media img { filter: sepia(.12); }
.rh-prose { font-size: 1.08rem; }
.rh-prose h2 { font-size: clamp(1.6rem, 1.3rem + 1.2vw, 2.1rem); margin-top: 2.2rem; }
.rh-prose h3 { margin-top: 1.8rem; }
.rh-prose img { max-width: 100%; height: auto; }
.rh-prose .alignright, .rh-prose img.alignright { float: right; margin: .3rem 0 1rem 1.5rem; max-width: 45%; }
.rh-prose .alignleft, .rh-prose img.alignleft { float: left; margin: .3rem 1.5rem 1rem 0; max-width: 45%; }
.rh-prose .aligncenter { display: block; margin-inline: auto; }
.rh-prose iframe { max-width: 100%; aspect-ratio: 16 / 9; height: auto; width: 100%; border: 0; }
.rh-prose ul li::marker, .rh-prose ol li::marker { color: var(--sanguine); }
.rh-prose blockquote { border-left: 4px solid var(--sanguine); margin-left: 0; padding-left: 1.2rem; font-family: var(--display); font-size: 1.2rem; }
.rh-prose table { border-collapse: collapse; width: 100%; } .rh-prose td, .rh-prose th { border: 1px solid var(--rule); padding: .5rem; }
.rh-prose::after { content: ""; display: table; clear: both; }
@media (max-width: 600px) { .rh-prose .alignright, .rh-prose .alignleft, .rh-prose img.alignright, .rh-prose img.alignleft { float: none; display: block; margin: 1rem auto; max-width: 100%; } }
.rh-single__sign { max-width: 44rem; margin: 2.5rem auto 0 !important; padding: 1.1rem 1.3rem; background: var(--sheet); border-left: 4px solid var(--blue); }
.rh-single__sign p { margin: 0; }

.rh-404 { text-align: center; }
.rh-404__art { width: 12rem; margin: 0 auto 1rem; transform: rotate(-3deg); }
.rh-404 .rh-note { margin-inline: auto; }
.rh-404 .rh-search { margin-inline: auto; }

/* reduced motion: everything simply stands still */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
