/* ==========================================================================
   Harmony Acres – theme styles
   Colours, fonts and spacing are presets in theme.json (editable in
   Appearance → Editor → Styles). This file only adds layout details that
   theme.json can't express. Class names starting "ha-" are set on blocks
   in the templates, parts and patterns.
   ========================================================================== */

:root {
	--ha-radius: 4px;
	--ha-line: var(--wp--preset--color--line);
	--ha-shadow-dark: rgba(20, 26, 16, 0.72);
}

body {
	-webkit-font-smoothing: antialiased;
	font-optical-sizing: auto;
}

h1, h2, h3, h4, h5, h6,
.wp-block-site-title {
	font-optical-sizing: auto;
}

:where(a, button, input, textarea, summary):focus-visible {
	outline: 2px solid var(--wp--preset--color--russet);
	outline-offset: 2px;
}

a {
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
}

img {
	height: auto;
	max-width: 100%;
}

/* Header, main and footer sit flush against each other. */
.wp-site-blocks > * + * {
	margin-block-start: 0;
}

.ha-muted {
	color: var(--wp--preset--color--muted);
}

/* ---------- Block styles ---------- */

p.is-style-eyebrow,
.is-style-eyebrow {
	font-family: var(--wp--preset--font-family--body);
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.14em;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--wp--preset--color--russet);
	margin-bottom: 16px;
}

.is-style-lead {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(20px, 2vw, 25px);
	line-height: 1.45;
	color: var(--wp--preset--color--ink);
}

.is-style-callout {
	background: var(--wp--preset--color--paper);
	border: 1px solid var(--ha-line);
	border-left: 3px solid var(--wp--preset--color--russet);
	border-radius: var(--ha-radius);
	padding: 20px 24px;
	font-size: 15.5px;
	color: var(--wp--preset--color--ink);
}

.is-style-callout a {
	overflow-wrap: anywhere;
}

.wp-block-button .wp-block-button__link {
	transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}

.wp-block-button.is-style-outline > .wp-block-button__link,
.wp-block-button.is-style-outline > .wp-block-button__link:not(:hover) {
	background: transparent;
	color: var(--wp--preset--color--fir);
	border: 1px solid var(--wp--preset--color--fir);
	padding: 14px 26px;
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:focus {
	background: var(--wp--preset--color--fir);
	color: var(--wp--preset--color--paper);
}

.wp-block-button.is-style-light > .wp-block-button__link {
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--fir);
	border-color: var(--wp--preset--color--paper);
}

.wp-block-button.is-style-light > .wp-block-button__link:hover,
.wp-block-button.is-style-light > .wp-block-button__link:focus {
	background: var(--wp--preset--color--straw);
	border-color: var(--wp--preset--color--straw);
	color: var(--wp--preset--color--fir);
}

.wp-block-button.is-style-outline-light > .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--paper);
	border-color: rgba(251, 248, 242, 0.7);
}

.wp-block-button.is-style-outline-light > .wp-block-button__link:hover,
.wp-block-button.is-style-outline-light > .wp-block-button__link:focus {
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--fir);
}

.ha-text-link a {
	font-weight: 600;
	color: var(--wp--preset--color--fir);
	text-decoration: none;
	border-bottom: 1px solid var(--wp--preset--color--sage);
	padding-bottom: 2px;
}

.ha-text-link a:hover,
.ha-text-link a:focus {
	color: var(--wp--preset--color--russet);
	border-color: var(--wp--preset--color--russet);
}

/* ---------- Brand (site title + tagline, egg mark) ---------- */

.ha-brand {
	position: relative;
	padding-left: 34px;
	gap: 6px !important;
}

.ha-brand::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 22px;
	height: 28px;
	transform: translateY(-50%);
	background: var(--wp--preset--color--russet);
	-webkit-mask: url("../images/egg.svg") center / contain no-repeat;
	mask: url("../images/egg.svg") center / contain no-repeat;
}

.ha-brand .wp-block-site-title,
.ha-brand .wp-block-site-tagline {
	margin: 0;
}

/* ---------- Notice bar ---------- */

.ha-notice {
	font-size: 14px;
	line-height: 1.5;
	padding-top: 11px;
	padding-bottom: 11px;
}

.ha-notice__inner {
	gap: 6px 24px;
}

.ha-notice p {
	margin: 0;
}

.ha-notice a {
	color: var(--wp--preset--color--straw);
}

.ha-notice a:hover,
.ha-notice a:focus {
	color: var(--wp--preset--color--paper);
}

.ha-notice strong {
	font-weight: 600;
}

.ha-notice__main::before {
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-right: 10px;
	border-radius: 50%;
	background: var(--wp--preset--color--apple);
	box-shadow: 0 0 0 3px rgba(168, 50, 42, 0.25);
	transform: translateY(-1px);
}

/* ---------- Header ---------- */

.ha-header {
	border-bottom: 1px solid var(--ha-line);
}

.ha-header__inner {
	min-height: 88px;
	gap: 24px;
}

.ha-header__nav {
	gap: 36px;
}

.ha-primary-nav .wp-block-navigation__container {
	gap: 32px;
}

.ha-primary-nav .wp-block-navigation-item__content[aria-current="page"],
.ha-primary-nav .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--russet);
	box-shadow: inset 0 -2px 0 var(--wp--preset--color--russet);
	padding-bottom: 6px;
}

.ha-primary-nav .wp-block-navigation__submenu-container {
	background: var(--wp--preset--color--paper) !important;
	border: 1px solid var(--ha-line) !important;
	border-radius: var(--ha-radius);
	padding: 10px 0;
	min-width: 230px !important;
	box-shadow: 0 12px 30px rgba(20, 26, 16, 0.08);
}

.ha-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 7px 20px;
	font-size: 15px;
}

.ha-header__call .wp-block-button__link {
	padding: 10px 18px !important;
	font-size: 15px;
	white-space: nowrap;
}

/* Mobile menu overlay */
.ha-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--shell) !important;
	color: var(--wp--preset--color--ink) !important;
	padding: 28px clamp(22px, 4vw, 40px);
}

.ha-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 18px;
	font-size: 22px;
	font-family: var(--wp--preset--font-family--display);
}

.ha-primary-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	border: 0 !important;
	box-shadow: none;
	padding: 8px 0 0 16px !important;
	background: transparent !important;
	font-family: var(--wp--preset--font-family--body);
	font-size: 16px;
}

.ha-primary-nav .wp-block-navigation__responsive-container-open {
	border: 1px solid var(--wp--preset--color--fir);
	border-radius: 999px;
	padding: 8px 14px;
	color: var(--wp--preset--color--fir);
}

/* ---------- Sections ---------- */

.ha-section {
	padding-top: var(--wp--preset--spacing--80);
	padding-bottom: var(--wp--preset--spacing--80);
}

.ha-section--tight {
	padding-top: var(--wp--preset--spacing--70);
	padding-bottom: var(--wp--preset--spacing--70);
}

.ha-main > .ha-section:first-child,
.ha-main--home .wp-block-post-content > .ha-hero:first-child {
	margin-top: 0;
}

.ha-main .wp-block-post-content > .alignfull {
	margin-top: 0;
	margin-bottom: 0;
}

.ha-section-head {
	margin-bottom: var(--wp--preset--spacing--60);
}

.ha-section-head h2 {
	margin: 0;
}

.ha-section-head .is-style-eyebrow {
	margin-bottom: 16px;
}

.ha-section-head--split {
	gap: 16px 40px;
}

.ha-section-head__intro {
	max-width: 46ch;
	margin: 0 !important;
}

.ha-section-foot {
	margin-top: var(--wp--preset--spacing--60) !important;
}

/* ---------- Home hero (Cover block with class ha-hero) ---------- */

.ha-hero {
	padding: 0 !important;
	background: var(--wp--preset--color--bark);
}

.ha-hero .wp-block-cover__background {
	opacity: 1 !important;
	background:
		linear-gradient(90deg, rgba(20, 26, 16, 0.72) 0%, rgba(20, 26, 16, 0.35) 38%, rgba(20, 26, 16, 0) 60%),
		linear-gradient(0deg, rgba(20, 26, 16, 0.45) 0%, rgba(20, 26, 16, 0) 40%) !important;
}

.ha-hero .wp-block-cover__inner-container {
	box-sizing: border-box;
	width: 100% !important;
	padding-bottom: 88px;
}

.ha-hero h1 {
	color: var(--wp--preset--color--paper);
	max-width: 9ch;
	margin: 0 0 24px;
}

.ha-hero .is-style-eyebrow {
	color: var(--wp--preset--color--straw);
}

.ha-hero__tagline {
	color: rgba(251, 248, 242, 0.92);
	font-size: 20px;
	line-height: 1.6;
	max-width: 34ch;
	margin-bottom: 32px;
}

.ha-hero .wp-block-buttons {
	gap: 12px;
}

p.ha-hero__caption {
	position: absolute;
	z-index: 1;
	right: var(--wp--style--root--padding-right, 40px);
	bottom: 28px;
	margin: 0;
	color: rgba(251, 248, 242, 0.75);
	font-size: 13px;
	letter-spacing: 0.02em;
}

/* ---------- About (home) ---------- */

.ha-about {
	gap: clamp(36px, 7vw, 96px) !important;
}

.ha-about__media .wp-block-image {
	max-width: 344px;
	margin-top: 40px;
}

.ha-about__media .wp-block-image img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
	width: 100%;
}

.ha-about__text > p:first-of-type {
	font-family: var(--wp--preset--font-family--display);
	font-size: clamp(21px, 2vw, 25px);
	line-height: 1.45;
	color: var(--wp--preset--color--ink);
	margin-bottom: 32px;
}

/* Gallery style: Photo trio */
.wp-block-gallery.is-style-trio.has-nested-images {
	display: grid;
	grid-template-columns: 1.35fr 1fr 1fr;
	gap: 20px;
}

.wp-block-gallery.is-style-trio.has-nested-images figure.wp-block-image:not(#individual-image) {
	width: auto;
	margin: 0;
}

.wp-block-gallery.is-style-trio.has-nested-images figure.wp-block-image img {
	height: 420px;
	width: 100%;
	object-fit: cover;
	border-radius: var(--ha-radius);
}

/* Gallery style: Mosaic */
.wp-block-gallery.is-style-mosaic.has-nested-images {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	grid-auto-rows: 132px;
	gap: 16px;
}

.wp-block-gallery.is-style-mosaic.has-nested-images figure.wp-block-image:not(#individual-image) {
	width: auto;
	margin: 0;
	grid-column: span 4;
	grid-row: span 2;
}

.wp-block-gallery.is-style-mosaic.has-nested-images figure.wp-block-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--ha-radius);
}

.wp-block-gallery.is-style-mosaic.has-nested-images figure.wp-block-image:not(#individual-image):nth-child(1) { grid-column: 1 / 6; grid-row: 1 / 5; }
.wp-block-gallery.is-style-mosaic.has-nested-images figure.wp-block-image:not(#individual-image):nth-child(2) { grid-column: 6 / 10; grid-row: 1 / 3; }
.wp-block-gallery.is-style-mosaic.has-nested-images figure.wp-block-image:not(#individual-image):nth-child(3) { grid-column: 10 / 13; grid-row: 1 / 3; }
.wp-block-gallery.is-style-mosaic.has-nested-images figure.wp-block-image:not(#individual-image):nth-child(4) { grid-column: 6 / 9; grid-row: 3 / 5; }
.wp-block-gallery.is-style-mosaic.has-nested-images figure.wp-block-image:not(#individual-image):nth-child(5) { grid-column: 9 / 13; grid-row: 3 / 5; }
.wp-block-gallery.is-style-mosaic.has-nested-images figure.wp-block-image:not(#individual-image):nth-child(6) { grid-column: 1 / 8; grid-row: 5 / 7; }
.wp-block-gallery.is-style-mosaic.has-nested-images figure.wp-block-image:not(#individual-image):nth-child(7) { grid-column: 8 / 13; grid-row: 5 / 7; }

/* Full photo gallery page: an even grid of 4:3 tiles */
.ha-gallery.wp-block-gallery.has-nested-images {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.ha-gallery.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) {
	width: auto;
	margin: 0;
	aspect-ratio: 4 / 3;
}

.ha-gallery.wp-block-gallery.has-nested-images figure.wp-block-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--ha-radius);
}

/* ---------- Farm practices ---------- */

.ha-practices {
	gap: 40px !important;
}

.ha-practice {
	border-top: 1px solid var(--wp--preset--color--fir);
	padding-top: 24px;
}

.ha-practice h3 {
	font-size: 22px;
	margin: 0 0 10px;
}

.ha-practice p {
	font-size: 15.5px;
	line-height: 1.65;
	color: var(--wp--preset--color--muted);
	margin: 0;
}

.ha-practice p.ha-practice__link {
	margin-top: 10px;
	font-size: 13px;
	font-weight: 600;
}

.ha-practice__link a {
	color: var(--wp--preset--color--moss);
	text-decoration: none;
}

/* ---------- "Available" mark ----------
   Green dot + green "Available", shown only when the product's "Available"
   checkbox is ticked. The Availability note after it is plain text.
   Green darkened from the old site's colour so it is easy to read. */

.ha-available {
	display: block;
	width: fit-content;
	font-weight: 600;
	color: #1E7B34;
}

.ha-available::before {
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-right: 8px;
	border-radius: 50%;
	background: currentColor;
	transform: translateY(-1px);
}

.ha-available + .ha-availability__text {
	display: block;
	margin-top: 2px;
}

/* ---------- Product cards (Query Loop grid) ---------- */

.ha-cards.wp-block-post-template {
	gap: 36px 24px;
}

.ha-cards > li {
	display: flex;
	flex-direction: column;
}

.ha-cards > li > * {
	margin-top: 0;
	margin-bottom: 0;
}

.ha-card__media {
	position: relative;
	margin-bottom: 18px !important;
}

.ha-card__media .wp-block-post-featured-image {
	margin: 0;
	overflow: hidden;
	border-radius: var(--ha-radius);
	background: var(--wp--preset--color--straw);
}

.ha-card__media .wp-block-post-featured-image img {
	transition: transform 0.6s;
}

.ha-cards > li:hover .ha-card__media img {
	transform: scale(1.03);
}


.ha-card__terms {
	margin-bottom: 10px !important;
}

.ha-card__title {
	font-size: 22px;
	line-height: 1.2;
	margin-bottom: 10px !important;
}

.ha-card__avail {
	color: var(--wp--preset--color--muted);
	font-size: 14px;
	line-height: 1.45;
	margin-bottom: 14px !important;
}

.ha-card__price {
	margin-top: auto !important;
	border-top: 1px solid var(--ha-line);
	padding-top: 12px;
	font-size: 14.5px;
	font-weight: 600;
	color: var(--wp--preset--color--ink);
}

/* ---------- Product rows (Query Loop list) ---------- */

.ha-rows > li {
	border-bottom: 1px solid var(--ha-line);
	margin: 0 !important;
}

.ha-row.wp-block-columns {
	gap: 48px;
	padding: 36px 0;
	margin: 0;
}

.ha-row__thumb .wp-block-post-featured-image {
	margin: 0;
	overflow: hidden;
	border-radius: var(--ha-radius);
	background: var(--wp--preset--color--straw);
}

.ha-row__body > * {
	margin-top: 0 !important;
}

.ha-row__body .wp-block-post-terms {
	margin-bottom: 12px;
}

.ha-row__body .wp-block-post-title {
	font-size: 28px;
	margin-bottom: 12px;
}

.ha-row__body .wp-block-post-excerpt {
	font-size: 16px;
}

.ha-row__body .wp-block-post-excerpt__more-link {
	font-weight: 600;
	color: var(--wp--preset--color--fir);
	text-decoration: none;
	border-bottom: 1px solid var(--wp--preset--color--sage);
}

.ha-row__aside {
	border-left: 1px solid var(--ha-line);
	padding-left: 28px;
	font-size: 15px;
}

.ha-row__aside > * {
	margin-top: 0 !important;
	margin-bottom: 18px !important;
}

.ha-fact__label {
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 0.12em;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	margin: 0 0 6px !important;
}

.ha-fact__value {
	margin: 0 !important;
	color: var(--wp--preset--color--ink);
	line-height: 1.5;
}

.ha-fact--price .ha-fact__value {
	font-family: var(--wp--preset--font-family--display);
	font-size: 22px;
	line-height: 1.3;
}

.ha-group-head {
	border-bottom: 1px solid var(--wp--preset--color--fir);
	padding-bottom: 18px;
	margin-bottom: 8px !important;
}

.ha-group-head h2 {
	font-size: 36px;
	margin: 0;
}

.ha-product-group {
	margin-top: var(--wp--preset--spacing--60) !important;
}

.ha-product-group + .ha-product-group {
	margin-top: var(--wp--preset--spacing--70) !important;
}

/* ---------- Pills navigation (block style) ---------- */

.wp-block-navigation.is-style-pills .wp-block-navigation__container {
	gap: 10px;
	flex-wrap: wrap;
}

.wp-block-navigation.is-style-pills .wp-block-navigation-item__content {
	display: inline-block;
	padding: 9px 16px !important;
	border: 1px solid var(--ha-line);
	border-radius: 999px;
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--fir);
	font-size: 14.5px;
	font-weight: 500;
	text-decoration: none;
}

.wp-block-navigation.is-style-pills .wp-block-navigation-item__content:hover,
.wp-block-navigation.is-style-pills .wp-block-navigation-item__content:focus,
.wp-block-navigation.is-style-pills .wp-block-navigation-item__content[aria-current] {
	background: var(--wp--preset--color--fir);
	border-color: var(--wp--preset--color--fir);
	color: var(--wp--preset--color--paper);
}

/* ---------- Inner page header ---------- */

.ha-main > .ha-page-head,
.ha-page-head {
	padding-top: clamp(56px, 7vw, 88px);
	padding-bottom: clamp(24px, 3vw, 40px);
}

.ha-page-head > * {
	margin-top: 0;
}

.ha-page-head .wp-block-breadcrumbs {
	margin-bottom: 32px;
}

.ha-page-head h1 {
	font-size: clamp(44px, 5vw, 72px);
	margin-bottom: 0;
}

.ha-page-content > :last-child:not(.wp-block-template-part) {
	margin-bottom: var(--wp--preset--spacing--80);
}

.wp-block-post-content > .is-style-lead:first-child {
	max-width: 52ch;
	margin-top: 0;
}

/* ---------- Single product ---------- */

.ha-single {
	padding-top: 56px;
	padding-bottom: var(--wp--preset--spacing--70);
}

.ha-single .wp-block-breadcrumbs {
	margin-bottom: 32px;
}

.ha-single__cols.wp-block-columns {
	gap: clamp(36px, 6vw, 80px);
}

.ha-single__media .wp-block-post-featured-image img {
	border-radius: var(--ha-radius);
}

.ha-single__body > * {
	margin-top: 0;
}

.ha-single__title {
	font-size: clamp(38px, 4vw, 56px);
	margin: 12px 0 24px;
}


.ha-single__content > * + * {
	margin-top: 1em;
}

.ha-single__content img {
	border-radius: var(--ha-radius);
}

.ha-single__content a {
	overflow-wrap: anywhere;
}

.ha-facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	border-top: 1px solid var(--wp--preset--color--fir);
	border-bottom: 1px solid var(--ha-line);
	margin: 32px 0 !important;
}

.ha-facts:empty {
	display: none;
}

.ha-facts > .ha-fact {
	padding: 18px 0;
	margin: 0 !important;
}

.ha-facts > .ha-fact + .ha-fact {
	padding-left: 24px;
	border-left: 1px solid var(--ha-line);
}

.ha-facts .ha-fact__value {
	font-family: var(--wp--preset--font-family--display);
	font-size: 24px;
	line-height: 1.25;
}

.ha-single__actions {
	margin-top: 32px !important;
	gap: 12px;
}

.ha-post-nav {
	border-top: 1px solid var(--ha-line);
	margin-top: var(--wp--preset--spacing--70) !important;
	padding-top: 32px;
	gap: 24px;
}

.ha-post-nav .wp-block-post-navigation-link {
	font-family: var(--wp--preset--font-family--display);
	font-size: 22px;
	line-height: 1.3;
	max-width: 45%;
}

.ha-post-nav .wp-block-post-navigation-link a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.ha-post-nav .wp-block-post-navigation-link a:hover {
	color: var(--wp--preset--color--russet);
}

/* ---------- Visit the farm panel ---------- */

.ha-visit-section {
	padding-top: var(--wp--preset--spacing--70);
}

.ha-visit.wp-block-columns {
	gap: 0;
	padding: 0;
	border-radius: var(--ha-radius);
	overflow: hidden;
}

.ha-visit.wp-block-columns > .wp-block-column {
	flex: 1 1 0;
	min-width: 0;
}

.ha-visit__media {
	align-self: stretch;
}

.ha-visit__media .wp-block-image,
.ha-visit__media .wp-block-image img {
	height: 100%;
	margin: 0;
	border-radius: 0;
}

.ha-visit__media .wp-block-image img {
	width: 100%;
	min-height: 520px;
	object-fit: cover;
}

.ha-visit__body {
	padding: clamp(40px, 6vw, 72px) clamp(26px, 6vw, 72px) clamp(40px, 5vw, 64px);
}

.ha-visit__body h2 {
	color: var(--wp--preset--color--paper);
}

.ha-visit__body .is-style-eyebrow {
	color: var(--wp--preset--color--straw);
}

.ha-visit__body p {
	color: rgba(251, 248, 242, 0.88);
}

.ha-visit__body .wp-block-buttons {
	gap: 12px;
}

/* ---------- Contact details (template part) ---------- */

.ha-details__row {
	display: grid;
	grid-template-columns: 110px 1fr;
	gap: 4px 20px;
	margin: 0 !important;
}

.ha-details__row > * {
	margin: 0 !important;
}

.ha-details__label {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	line-height: 1.9;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.ha-details__value a {
	text-decoration: none;
	border-bottom: 1px solid var(--wp--preset--color--sage);
}

/* In the dark "Visit the farm" panel */
.ha-visit__body .ha-details {
	display: grid;
	gap: 14px;
	margin: 32px 0 48px;
	padding-top: 32px;
	border-top: 1px solid rgba(251, 248, 242, 0.18);
}

.ha-visit__body .ha-details__label {
	color: var(--wp--preset--color--sage);
}

.ha-visit__body .ha-details__value {
	font-size: 18px;
	color: var(--wp--preset--color--paper);
}

.ha-visit__body .ha-details__value a {
	color: var(--wp--preset--color--paper);
	border-bottom-color: rgba(251, 248, 242, 0.35);
}

.ha-visit__body .ha-details__value a:hover {
	color: var(--wp--preset--color--straw);
	border-color: var(--wp--preset--color--straw);
}

/* On the Contact page */
.ha-contact-aside .ha-details__row {
	padding: 22px 0;
	border-bottom: 1px solid var(--ha-line);
	grid-template-columns: 120px 1fr;
}

.ha-contact-aside .ha-details__row:first-child {
	border-top: 1px solid var(--wp--preset--color--fir);
}

.ha-contact-aside .ha-details__value {
	font-family: var(--wp--preset--font-family--display);
	font-size: 21px;
	line-height: 1.4;
	color: var(--wp--preset--color--ink);
}

.ha-contact-aside .ha-details__value a {
	color: var(--wp--preset--color--ink);
}

/* ---------- Contact page ---------- */

.ha-contact.wp-block-columns {
	gap: clamp(40px, 6vw, 72px);
}

.wp-block-group.is-style-card {
	background: var(--wp--preset--color--paper);
	border: 1px solid var(--ha-line);
	border-radius: var(--ha-radius);
	padding: clamp(28px, 4vw, 48px);
}

.wp-block-group.is-style-card > h2 {
	font-size: 32px;
	margin-top: 0;
}

.wpcf7 form > p,
.wpcf7 form label {
	margin: 0 0 22px;
}

.wpcf7 label {
	display: block;
	font-weight: 600;
	font-size: 14.5px;
	color: var(--wp--preset--color--ink);
}

.wpcf7 input[type="email"],
.wpcf7 input[type="text"],
.wpcf7 textarea {
	box-sizing: border-box;
	display: block;
	width: 100%;
	margin-top: 8px;
	padding: 14px 16px;
	font: inherit;
	font-size: 16px;
	font-weight: 400;
	color: var(--wp--preset--color--ink);
	background: #FFFFFF;
	border: 1px solid #CFC6B4;
	border-radius: var(--ha-radius);
}

.wpcf7 textarea {
	min-height: 200px;
	resize: vertical;
}

.wpcf7 input[type="submit"] {
	cursor: pointer;
	padding: 14px 26px;
	border: 1px solid var(--wp--preset--color--fir);
	border-radius: 999px;
	background: var(--wp--preset--color--fir);
	color: var(--wp--preset--color--paper);
	font: 600 15px/1 var(--wp--preset--font-family--body);
}

.wpcf7 input[type="submit"]:hover,
.wpcf7 input[type="submit"]:focus {
	background: var(--wp--preset--color--moss);
	border-color: var(--wp--preset--color--moss);
}

.ha-findus.wp-block-cover {
	margin-top: 36px;
	border-radius: var(--ha-radius);
	overflow: hidden;
	align-items: flex-end;
	padding: 20px;
}

.ha-findus .wp-block-cover__inner-container {
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--body-text);
	border-radius: var(--ha-radius);
	padding: 22px 24px;
	box-shadow: 0 10px 30px rgba(20, 26, 16, 0.18);
	font-size: 14.5px;
}

.ha-findus .wp-block-cover__inner-container > * {
	margin-top: 0;
	margin-bottom: 4px;
}

.ha-findus .wp-block-cover__inner-container .is-style-eyebrow {
	margin-bottom: 8px;
}

.ha-findus__address {
	font-family: var(--wp--preset--font-family--display);
	font-size: 22px;
	line-height: 1.3;
	color: var(--wp--preset--color--ink);
}

.ha-findus .wp-block-buttons {
	margin-top: 16px !important;
}

.wp-block-image.ha-wide-photo {
	margin-top: var(--wp--preset--spacing--70);
}

.wp-block-image.ha-wide-photo img {
	width: 100%;
	height: 460px;
	object-fit: cover;
}

/* ---------- Footer ---------- */

.ha-footer {
	font-size: 15px;
	color: rgba(251, 248, 242, 0.78);
	padding-top: clamp(64px, 7vw, 88px);
	padding-bottom: 36px;
}

.ha-footer a {
	color: var(--wp--preset--color--paper);
	text-decoration: none;
}

.ha-footer a:hover,
.ha-footer a:focus {
	color: var(--wp--preset--color--straw);
}

.ha-footer__cols.wp-block-columns {
	gap: 56px;
	padding-bottom: 64px;
	border-bottom: 1px solid rgba(251, 248, 242, 0.14);
	margin-bottom: 0;
}

.ha-footer__cols > .wp-block-column:first-child,
.ha-footer__cols > .wp-block-column:last-child {
	flex-grow: 1.35;
}

.ha-footer__cols > .wp-block-column > * {
	margin-top: 0;
}

.ha-footer .is-style-eyebrow {
	color: var(--wp--preset--color--sage);
	margin: 6px 0 20px;
}

.ha-footer .ha-brand::before {
	background: var(--wp--preset--color--straw);
}

.ha-footer .wp-block-site-title a {
	color: var(--wp--preset--color--paper);
}

.ha-footer .wp-block-site-tagline {
	color: var(--wp--preset--color--sage);
}

.ha-footer__note {
	margin-top: 22px !important;
	color: rgba(251, 248, 242, 0.7);
	max-width: 30ch;
}

.ha-footer .ha-details {
	display: grid;
	gap: 4px;
}

.ha-footer .ha-details__row {
	grid-template-columns: 1fr;
}

.ha-footer .ha-details__label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.ha-footer .ha-details__value {
	line-height: 1.9;
}

.ha-footer .ha-details__value a {
	border: 0;
}

.ha-footer__nav .wp-block-navigation__container {
	gap: 10px;
}

.ha-footer__nav .wp-block-navigation-item__content {
	color: var(--wp--preset--color--paper);
}

.ha-footer__search .wp-block-search__inside-wrapper {
	border: 1px solid rgba(251, 248, 242, 0.3);
	border-radius: 999px;
	overflow: hidden;
	padding: 0;
	background: transparent;
}

.ha-footer__search .wp-block-search__input {
	background: transparent;
	border: 0;
	padding: 12px 18px;
	color: var(--wp--preset--color--paper);
	font: inherit;
	min-width: 0;
}

.ha-footer__search .wp-block-search__input::placeholder {
	color: rgba(251, 248, 242, 0.55);
}

.ha-footer__search .wp-block-search__button {
	margin: 0;
	border: 0;
	border-radius: 0;
	padding: 0 20px;
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--fir);
	font-size: 14px;
}

.ha-footer p.ha-footer__follow {
	margin-top: 36px;
}

.ha-footer__social .wp-social-link {
	color: var(--wp--preset--color--paper);
}

.ha-footer__social .wp-block-social-link-label {
	font-size: 15px;
}

.ha-footer__bottom {
	gap: 0.3em;
	padding-top: 28px;
	font-size: 13.5px;
	color: rgba(251, 248, 242, 0.55);
}

.ha-footer__bottom p {
	margin: 0;
}

/* Search pages and 404 */
.ha-search-again {
	max-width: 480px;
	margin-top: 24px;
}

.ha-search-again .wp-block-search__input {
	border: 1px solid #CFC6B4;
	border-radius: var(--ha-radius);
	padding: 12px 16px;
	background: #FFFFFF;
}

/* ==========================================================================
   Tablet and mobile
   ========================================================================== */

@media (max-width: 1000px) {
	.ha-practices.wp-block-columns {
		flex-wrap: wrap !important;
	}

	.ha-practices.wp-block-columns > .wp-block-column {
		flex-basis: calc(50% - 20px) !important;
	}

	.ha-row.wp-block-columns {
		gap: 28px;
	}

	.ha-row__thumb {
		flex-basis: 220px !important;
	}
}

@media (max-width: 781px) {
	body {
		font-size: 16.5px;
	}

	.ha-header__inner {
		min-height: 70px;
	}

	.ha-header__call.wp-block-buttons {
		display: none;
	}

	.ha-brand .wp-block-site-title {
		font-size: 22px;
	}

	.ha-brand .wp-block-site-tagline {
		font-size: 9.5px;
	}

	.ha-notice {
		font-size: 13.5px;
		padding-top: 12px;
		padding-bottom: 12px;
	}

	/* Hero: photo on top, text below on dark green */
	.ha-hero.wp-block-cover {
		display: block;
		min-height: 0 !important;
		background: var(--wp--preset--color--fir);
	}

	.ha-hero .wp-block-cover__image-background {
		position: relative;
		height: 330px;
		object-position: 57% 50% !important;
	}

	.ha-hero .wp-block-cover__background {
		display: none;
	}

	.ha-hero .wp-block-cover__inner-container {
		padding: 40px var(--wp--style--root--padding-right, 22px) 52px var(--wp--style--root--padding-left, 22px) !important;
	}

	.ha-hero h1 {
		font-size: 52px;
	}

	.ha-hero__tagline {
		font-size: 17.5px;
	}

	p.ha-hero__caption {
		display: none;
	}

	.ha-about__media .wp-block-image {
		margin-top: 24px;
	}

	.wp-block-gallery.is-style-trio.has-nested-images {
		grid-template-columns: 1fr 1fr;
		gap: 12px;
	}

	.wp-block-gallery.is-style-trio.has-nested-images figure.wp-block-image:first-child {
		grid-column: 1 / -1;
	}

	.wp-block-gallery.is-style-trio.has-nested-images figure.wp-block-image img {
		height: 200px;
	}

	.wp-block-gallery.is-style-trio.has-nested-images figure.wp-block-image:first-child img {
		height: 240px;
	}

	.ha-practices.wp-block-columns > .wp-block-column {
		flex-basis: 100% !important;
	}

	.ha-cards.wp-block-post-template {
		gap: 28px 14px;
	}

	.ha-card__title {
		font-size: 18.5px;
	}

	.ha-card__avail {
		font-size: 13px;
	}

	.wp-block-gallery.is-style-mosaic.has-nested-images {
		grid-template-columns: 1fr 1fr;
		grid-auto-rows: 130px;
		grid-auto-flow: dense;
		gap: 10px;
	}

	.wp-block-gallery.is-style-mosaic.has-nested-images figure.wp-block-image:not(#individual-image) {
		grid-column: auto / span 1 !important;
		grid-row: auto / span 1 !important;
	}

	.wp-block-gallery.is-style-mosaic.has-nested-images figure.wp-block-image:not(#individual-image):nth-child(1) {
		grid-row: auto / span 3 !important;
	}

	.wp-block-gallery.is-style-mosaic.has-nested-images figure.wp-block-image:not(#individual-image):nth-child(6) {
		grid-column: auto / span 2 !important;
		grid-row: auto / span 2 !important;
	}

	.ha-gallery.wp-block-gallery.has-nested-images {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.ha-visit__media .wp-block-image img {
		min-height: 0;
		height: 260px;
	}

	.ha-visit__body .ha-details__row,
	.ha-contact-aside .ha-details__row {
		grid-template-columns: 1fr;
	}

	.ha-row__aside {
		border-left: 0;
		padding-left: 0;
		border-top: 1px solid var(--ha-line);
		padding-top: 16px;
	}

	.ha-row.wp-block-columns {
		gap: 18px;
	}

	.ha-facts > .ha-fact + .ha-fact {
		padding-left: 0;
		border-left: 0;
		border-top: 1px solid var(--ha-line);
	}

	.ha-post-nav .wp-block-post-navigation-link {
		max-width: 100%;
	}

	.ha-footer__cols.wp-block-columns {
		gap: 40px;
		padding-bottom: 40px;
	}

	.wp-block-image.ha-wide-photo img {
		height: 260px;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition: none !important;
		animation: none !important;
	}
}

/* ---------- Hidden heading (still read by screen readers and search engines) ---------- */

/* The Gallery page shows no visible title (Jade, 2026-10-02); its <h1> stays for accessibility. */
.ha-visually-hidden {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
