/* HerbHaus — warm photography, quiet typography, and generous space. */
.hh-home,
.hh-header,
.hh-footer {
	box-sizing: border-box;
	color: #30372f;
	font-family: Arial, Helvetica, sans-serif;
	-webkit-font-smoothing: antialiased;
}
.hh-home *,
.hh-header *,
.hh-footer * { box-sizing: border-box; }
body:has(.hh-home) { margin: 0; background: #fff; }
.wp-site-blocks:has(.hh-home) { padding: 0; position: relative; }
.wp-site-blocks:has(.hh-home) > * { margin-block: 0; }
.hh-home { width: 100%; max-width: none; margin: 0; }
.hh-home p,
.hh-home h1,
.hh-home h2 { margin: 0; }
.hh-hero {
	position: relative;
	isolation: isolate;
	min-height: 640px;
	height: 100svh;
	max-height: 1100px;
	overflow: hidden;
	background: #463c2e;
	color: #fff;
}
body.admin-bar .hh-hero { height: calc(100svh - 32px); }
.hh-hero-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 56% 52%;
	z-index: -2;
}
.hh-hero-shade {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, rgba(30, 28, 22, .62) 0%, rgba(30, 28, 22, .18) 23%, transparent 45%, transparent 72%, rgba(30, 28, 22, .42) 100%);
}
.hh-header-part { margin: 0; position: relative; z-index: 2; }
.wp-site-blocks:has(.hh-home) > .hh-header-part { position: absolute; inset: 0 0 auto; width: 100%; }
.hh-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
	width: 100%;
	padding: 30px 5.2%;
	color: #fff;
}
.hh-logo-crop {
	position: relative;
	width: 224px;
	aspect-ratio: 1920 / 474;
	overflow: hidden;
}
.hh-logo-crop img {
	position: absolute;
	width: 113.125%;
	max-width: none;
	height: 152.743%;
	left: -6.667%;
	top: -36.709%;
	filter: brightness(0) invert(1);
}
.hh-navigation { min-width: 0; }
.hh-navigation ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: center;
	gap: clamp(26px, 3.2vw, 58px);
	list-style: none;
	padding: 0;
	margin: 0;
}
.hh-navigation span,
.hh-navigation a {
	font-family: Georgia, 'Times New Roman', serif;
	display: inline-block;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: .13em;
	text-transform: uppercase;
	white-space: nowrap;
}
.hh-navigation a { color: inherit; text-decoration: none; text-underline-offset: .3em; }
.hh-navigation a:hover { text-decoration: underline; }
.hh-navigation a:focus-visible { outline: 2px solid currentColor; outline-offset: 6px; }
.hh-hero-note {
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	align-items: center;
	flex-direction: column;
	gap: 22px;
	white-space: nowrap;
}
.hh-hero-note > span:first-child { font-size: 9px; letter-spacing: .24em; }
.hh-scroll-line { width: 1px; height: 50px; background: rgba(255, 255, 255, .6); }
.hh-content-width { width: min(1280px, 87%); margin-inline: auto; }
.hh-intro { padding: 110px 0 116px; background: #fff; }
.hh-eyebrow { font-size: 10px; letter-spacing: .2em; line-height: 1.7; color: #737869; }
.hh-intro h2,
.hh-about h1,
.hh-services h2,
.hh-contact h2,
.hh-location h2 {
	font-family: Georgia, 'Times New Roman', serif;
	font-weight: 400;
	letter-spacing: -.025em;
	line-height: 1.2;
	color: #30372f;
}
.hh-intro h2 { font-size: clamp(30px, 3vw, 43px); margin: 21px 0 24px; }
.hh-intro-copy { max-width: 820px; font-size: 15px; line-height: 1.9; color: #6a6b62; }
.hh-mobile-break { display: none; }
.hh-about { padding: 110px 0 116px; background: #faf9f5; scroll-margin-top: 48px; }
.hh-about > .hh-content-width { max-width: 900px; }
.hh-about .hh-eyebrow { text-align: center; }
.hh-about h1 { max-width: 760px; font-size: clamp(30px, 3.5vw, 48px); margin: 21px auto 42px; text-align: center; text-wrap: balance; }
.hh-about-copy { max-width: 820px; margin-inline: auto; font-size: 15px; line-height: 1.9; color: #6a6b62; }
.hh-about-copy p + p { margin-top: 22px; }
.hh-about-closing { max-width: 820px; margin: 44px auto 0; padding-top: 34px; border-top: 1px solid #dedfd4; text-align: center; }
.hh-about-motto { color: #30372f; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(22px, 2.5vw, 30px); font-style: italic; line-height: 1.6; text-wrap: balance; }
.hh-about-closing .hh-about-signoff { margin-top: 20px; font-size: 14px; line-height: 1.9; color: #6a6b62; }
.hh-services { padding: 96px 0 104px; background: #fff; text-align: center; scroll-margin-top: 48px; }
.hh-promotion { background: #faf9f5; }
.hh-promotion .hh-services-image-link { background: #fff; }
.hh-services h2 { margin: 18px 0 22px; font-size: clamp(36px, 4vw, 54px); }
.hh-home .hh-services-intro { max-width: 620px; margin-inline: auto; color: #6a6b62; font-size: 15px; line-height: 1.9; text-wrap: balance; }
.hh-services-menu { max-width: 900px; margin: 38px auto 0; }
.hh-services-image-link { display: block; padding: clamp(6px, 1.5vw, 16px); border: 1px solid #dedfd4; background: #faf9f5; box-shadow: 0 12px 36px rgba(48, 55, 47, .08); }
.hh-services-image-link img { display: block; width: 100%; height: auto; }
.hh-services-menu figcaption { margin-top: 22px; font-size: 13px; line-height: 1.8; }
.hh-services-menu a { color: #48523a; text-underline-offset: .3em; }
.hh-services-menu a:hover { color: #30372f; }
.hh-services-menu a:focus-visible { outline: 2px solid #48523a; outline-offset: 5px; }
.hh-location { padding: 86px 0 100px; background: #f4f3ed; }
.hh-location-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; margin-bottom: 38px; }
.hh-location h2 { margin-top: 15px; font-size: clamp(40px, 4vw, 58px); }
.hh-location-name { padding-bottom: 5px; }
.hh-location-name p { font-size: 15px; line-height: 1.6; }
.hh-location-name span { display: block; margin-top: 6px; font-size: 12px; letter-spacing: .04em; color: #74776b; }
.hh-map { overflow: hidden; background: #e8e8df; border: 1px solid #dedfd4; }
.hh-map iframe { display: block; width: 100%; height: 470px; border: 0; }
.hh-contact { padding: 96px 0 104px; background: #faf9f5; text-align: center; scroll-margin-top: 48px; }
.hh-contact h2 { margin: 18px 0 38px; font-size: clamp(36px, 4vw, 54px); }
.hh-contact-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.hh-contact-card { display: flex; flex-direction: column; align-items: center; gap: 20px; padding: 36px 20px; border: 1px solid #dedfd4; background: #fff; color: #30372f; text-decoration: none; }
.hh-contact-label { font-size: 11px; letter-spacing: .12em; line-height: 1.7; color: #6a6b62; }
.hh-contact-logo { display: block; width: 40px; height: 40px; object-fit: contain; }
.hh-contact-value { font-family: Georgia, 'Times New Roman', serif; font-size: clamp(20px, 2vw, 26px); line-height: 1.5; overflow-wrap: anywhere; }
.hh-contact-action { margin-top: auto; color: #48523a; font-size: 13px; line-height: 1.8; }
.hh-contact-card:hover { border-color: #737869; background: #f4f3ed; }
.hh-contact-card:focus-visible { outline: 2px solid #48523a; outline-offset: 5px; }
.hh-footer { background: #333333; text-align: center; padding: 28px 20px; border-top: 1px solid #333333; }
.hh-footer p { margin: 0; font-size: 11px; letter-spacing: .055em; line-height: 1.8; color: #ffffff; }
@media (min-width: 1600px) {
	.hh-header { padding-top: 38px; }
}
@media (max-width: 782px) {
	body.admin-bar .hh-hero { height: calc(100svh - 46px); }
	.hh-hero { min-height: 580px; max-height: 900px; }
	.hh-header { padding: 25px 6.5%; gap: 24px; }
	.hh-logo-crop { width: 172px; }
	.hh-navigation ul { gap: 20px; }
	.hh-navigation span, .hh-navigation a { font-size: 10px; letter-spacing: .05em; }
	.hh-content-width { width: 87%; }
	.hh-intro { padding: 76px 0 80px; }
	.hh-about { padding: 66px 0 72px; }
	.hh-contact { padding: 66px 0 72px; }
	.hh-contact-links { grid-template-columns: 1fr; }
	.hh-services { padding: 66px 0 72px; }
	.hh-location { padding: 66px 0 72px; }
	.hh-location-heading { align-items: flex-start; flex-direction: column; gap: 24px; }
	.hh-map iframe { height: 380px; }
}
@media (max-width: 560px) {
	.hh-header { flex-direction: column; gap: 24px; padding-top: 25px; }
	.hh-logo-crop { width: 174px; }
	.hh-navigation ul { justify-content: center; flex-wrap: wrap; gap: 12px; }
	.hh-navigation span, .hh-navigation a { font-size: 10px; letter-spacing: .08em; }
	.hh-hero { min-height: 580px; }
	.hh-hero-image { object-position: 58% 50%; }
	.hh-hero-note > span:first-child { font-size: 8px; }
	.hh-mobile-break { display: block; }
	.hh-intro h2 { font-size: 34px; }
	.hh-intro-copy { font-size: 14px; }
	.hh-eyebrow { font-size: 9px; }
	.hh-map iframe { height: 340px; }
	.hh-footer p { font-size: 9px; }
}

/* Portrait gallery: complete photographs against a softly blurred backdrop. */
.hh-slide { position: absolute; inset: 0; z-index: -2; opacity: 0; transition: opacity 1.2s ease; pointer-events: none; }
.hh-slide.is-active { opacity: 1; }
.hh-slide-backdrop { position: absolute; inset: -5%; width: 110%; height: 110%; object-fit: cover; filter: blur(24px) brightness(.55); }
.hh-slide-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center; }
.hh-slideshow .hh-hero-shade { pointer-events: none; background: linear-gradient(180deg, rgba(22, 25, 20, .65), transparent 28%, transparent 76%, rgba(22, 25, 20, .6)); }
@media (prefers-reduced-motion: reduce) {
	.hh-slide { transition: none; }
}
