:root {
    --hh-ink: #1f2722;
    --hh-green: #263f2b;
    --hh-moss: #566b42;
    --hh-gold: #b79a50;
    --hh-paper: #f4f2ea;
    --hh-white: #fff;
    --hh-line: rgba(31, 39, 34, 0.14);
    --hh-muted: color-mix(in srgb, var(--hh-ink) 68%, transparent);
    --hh-shadow: 0 18px 50px rgba(31, 39, 34, 0.09);
    --hh-gutter: clamp(1rem, 3.5vw, 2.5rem); /* side space for every 1160px container */
}

html {
    scroll-behavior: smooth;
}

body {
    background: var(--hh-paper);
    margin: 0;
}

body,
button,
input,
textarea,
select {
    font-family: var(--wp--preset--font-family--sans);
    font-synthesis: none;
}

h1,
h2,
h3,
h4,
h5,
h6,
.wp-block-heading,
.wp-block-post-title,
.wp-block-query-title,
.site-header .wp-block-site-title {
    font-family: var(--wp--preset--font-family--serif);
}

h1,
.wp-block-post-title,
.wp-block-query-title {
    text-align: left !important;
}

a {
    text-underline-offset: 0.18em;
}

img {
    height: auto;
    max-width: 100%;
}

header.wp-block-template-part,
.site-header {
    margin-block-end: 0 !important;
    position: sticky;
    top: 0;
    z-index: 100;
}

body.admin-bar header.wp-block-template-part,
body.admin-bar .site-header {
    top: 32px;
}

.site-header {
    background: rgba(244, 242, 234, 0.96);
    border-bottom: 1px solid var(--hh-line);
    position: sticky;
}

@media (max-width: 782px) {
    body.admin-bar header.wp-block-template-part,
    body.admin-bar .site-header {
        top: 46px;
    }
}

.site-header + *,
.site-header + main,
.site-header + .wp-block-group,
main.wp-block-group,
.wp-site-blocks > main,
.wp-site-blocks > .wp-block-group {
    margin-block-start: 0 !important;
}

.site-header__bar {
    align-items: flex-end !important;
    gap: 1rem 2rem;
    max-width: min(1160px, calc(100% - 2 * var(--hh-gutter))) !important;
    min-height: 76px;
    padding-block: 0.75rem;
    width: 100%;
}

.site-brand {
    align-items: flex-end !important;
    gap: 0.75rem;
}

.site-header .wp-block-navigation {
    align-self: flex-end;
}

.site-brand__logo-link {
    display: inline-flex;
    flex: 0 0 auto;
    line-height: 0;
}

.site-brand__logo-img {
    display: block;
    height: clamp(2.4rem, 5vw, 3.25rem);
    max-width: min(16rem, 52vw);
    object-fit: contain;
    width: auto;
}

.site-header .wp-block-site-title {
    font-family: var(--wp--preset--font-family--serif);
    font-size: clamp(1.2rem, 2vw, 1.55rem);
    font-weight: 700;
    line-height: 1.1;
}

.site-header .wp-block-site-title a {
    color: var(--hh-green);
    text-decoration: none;
}

.site-brand__tagline {
    border-left: 1px solid var(--hh-line);
    color: var(--hh-muted);
    font-family: var(--wp--preset--font-family--sans);
    font-size: 0.82rem;
    line-height: 1.25;
    margin: 0;
    max-width: 10rem;
    padding-left: 0.75rem;
}

.wp-block-navigation a {
    text-decoration: none;
}

.wp-block-navigation a:hover,
.wp-block-navigation a:focus {
    text-decoration: underline;
}

.site-header .wp-block-navigation {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 0.92rem;
    font-weight: 700;
}

.site-header .wp-block-navigation-item__content {
    color: var(--hh-ink);
}

.site-search--header {
    bottom: 0;
    flex: 0 0 auto;
    margin: 0;
    max-width: none;
    min-width: 0;
    position: absolute;
    right: max(var(--hh-gutter), calc((100vw - 1160px) / 2));
    transform: translateY(calc(100% - 1px));
    width: min(22rem, calc(100vw - 2rem));
    z-index: 98;
}

.site-search--header .wp-block-search__inside-wrapper {
    background: var(--hh-white);
    border: 1px solid var(--hh-line);
    border-radius: 0 0 6px 6px;
    border-top: 0;
    box-shadow: 0 14px 32px rgba(31, 39, 34, 0.12);
    overflow: hidden;
}

.site-search--header .wp-block-search__input {
    background: transparent;
    border: 0;
    border-radius: 0;
    font-size: 0.88rem;
    min-height: 2.6rem;
    padding-inline: 0.9rem;
}

.site-search--header .wp-block-search__button {
    align-items: center;
    background: var(--hh-green);
    border: 0;
    border-radius: 0 0 6px 0;
    color: var(--hh-white);
    display: inline-flex;
    height: auto;
    justify-content: center;
    margin: 0;
    min-height: 2.6rem;
    min-width: 2.6rem;
    padding: 0;
    transition: background-color 180ms ease, color 180ms ease;
}

.site-search--header .wp-block-search__button svg {
    fill: currentColor;
    height: 1rem;
    width: 1rem;
}

.site-search--header .wp-block-search__button:hover,
.site-search--header .wp-block-search__button:focus {
    background: var(--hh-gold);
    color: var(--hh-ink);
}

.site-footer {
    background: var(--hh-green);
    color: var(--hh-white);
    margin-top: 0;
}

.site-footer__grid {
    gap: 2rem;
    max-width: min(1160px, calc(100% - 2 * var(--hh-gutter))) !important;
    padding-block: clamp(2.5rem, 5vw, 4rem);
    width: 100%;
}

.site-footer a,
.site-footer .wp-block-site-title a {
    color: var(--hh-white);
}

.site-footer p {
    color: color-mix(in srgb, var(--hh-white) 82%, transparent);
    font-family: var(--wp--preset--font-family--sans);
    line-height: 1.6;
}

.site-footer__heading {
    color: var(--hh-white);
    font-family: var(--wp--preset--font-family--sans);
    font-size: 0.86rem;
    letter-spacing: 0;
    margin: 0 0 1.05rem;
    text-transform: uppercase;
}

.site-footer .wp-block-navigation {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 0.95rem;
}

.site-main {
    background: var(--hh-paper);
}

.page-hero {
    background:
        linear-gradient(135deg, rgba(38, 63, 43, 0.96), rgba(86, 107, 66, 0.86)),
        var(--hh-green);
    color: var(--hh-white);
    overflow: hidden;
    position: relative;
}

.page-hero::after {
    background: radial-gradient(circle at center, rgba(255, 255, 255, 0.12), transparent 58%);
    content: "";
    height: 28rem;
    pointer-events: none;
    position: absolute;
    right: -8rem;
    top: -10rem;
    width: 28rem;
}

.page-hero__inner {
    box-sizing: border-box;
    max-width: min(1160px, calc(100% - 2 * var(--hh-gutter))) !important;
    padding-block: clamp(3rem, 7vw, 6rem);
    position: relative;
    width: 100%;
    z-index: 1;
}

.page-hero h1,
.page-hero .wp-block-query-title {
    font-size: clamp(2.2rem, 4vw, 3.4rem);
    line-height: 1.04;
    margin-block: 0;
    max-width: 1040px;
    margin:0!important;
}

.page-hero__excerpt {
    color: color-mix(in srgb, var(--hh-white) 82%, transparent);
    font-family: var(--wp--preset--font-family--sans);
    font-size: 1.12rem;
    line-height: 1.65;
    max-width: 100%;
}

.page-hero__terms {
    color: var(--hh-white);
    font-family: var(--wp--preset--font-family--sans);
    font-size: 0.82rem;
    font-weight: 700;
    margin-bottom: 1.15rem;
    text-transform: uppercase;
}

.page-hero__terms a {
    color: var(--hh-white);
}

.page-shell,
.archive-shell {
    max-width: min(1160px, calc(100% - 2 * var(--hh-gutter))) !important;
    padding-block: clamp(1rem, 6vw, 1.5rem);
    width: 100%;
}

.article-content {
    background: var(--hh-white);
    box-shadow: var(--hh-shadow);
    box-sizing: border-box;
    max-width: min(1160px, 100%) !important;
    padding: clamp(1.25rem, 4vw, 3.25rem);
    width: 100%;
}

.article-content > * {
    margin-left: auto;
    margin-right: auto;
    max-width: 100%;
}

.article-content > .alignwide,
.article-content > .wp-block-gallery,
.article-content > .wp-block-columns,
.article-content > .wp-block-image,
.article-content > .knowledge-context,
.article-content > .legacy-child-pages,
.article-content > .legacy-portlet,
.article-content > .legacy-section,
.article-content > .legacy-page-layout,
.article-content > .legacy-image-columns {
    max-width: 100%;
}

.article-content h2,
.article-content h3,
.article-content h4 {
    color: var(--hh-green);
    line-height: 1.16;
    margin-top: 2.2rem;
}

.article-content h2 {
    font-size: clamp(1.55rem, 2.5vw, 2.35rem);
}

.article-content h3 {
    font-size: clamp(1.25rem, 2vw, 1.7rem);
}

.article-content h4 {
    margin-bottom: .5rem;
    font-size: clamp(1.15rem, 1.6vw, 1.35rem);
}

.article-content h5,
.article-content h6 {
    margin: 1.8rem 0 .4rem;
    color: var(--hh-green);
    font-size: 1.1rem;
    line-height: 1.25;
}

.article-content p,
.article-content li {
    line-height: 1.74;
}

.article-content ul,
.article-content ol {
    padding-left: 1.25rem;
}

.article-content blockquote {
    border-left: 4px solid var(--hh-gold);
    color: var(--hh-green);
    font-size: 1.2rem;
    margin-inline: 0;
    padding-left: 1.25rem;
}

.wp-block-post-content img,
.article-content img {
    border-radius: 6px;
}

.article-content > .wp-block-image {
    margin-block: 1.5rem;
}

.article-content > .wp-block-image img {
    box-shadow: 0 12px 35px rgba(31, 39, 34, 0.12);
}

.wp-element-caption,
.wp-block-image figcaption {
    color: var(--hh-muted);
    font-family: var(--wp--preset--font-family--sans);
    font-size: 0.8rem;
    line-height: 1.45;
    margin-top: 0.55rem;
    text-align: left;
}

.article-content .wp-block-file {
    align-items: center;
    background: var(--hh-paper);
    border: 1px solid var(--hh-line);
    border-radius: 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: space-between;
    padding: 1rem;
}

.article-content .wp-block-file a:first-child {
    color: var(--hh-green);
    font-family: var(--wp--preset--font-family--sans);
    font-weight: 700;
}

.videos-intro {
    color: var(--hh-muted);
    font-family: var(--wp--preset--font-family--sans);
    font-size: 1.08rem;
    line-height: 1.7;
}

.videos-feed-panel {
    background: color-mix(in srgb, var(--hh-paper) 64%, var(--hh-white));
    border: 1px solid var(--hh-line);
    border-radius: 8px;
    box-sizing: border-box;
    max-width: 100% !important;
    padding: clamp(1rem, 3vw, 2rem);
}

.videos-feed-panel .wp-block-shortcode,
.videos-feed-panel .sb_youtube,
.videos-feed-panel .sby {
    max-width: 100% !important;
}

.videos-fallback {
    background: var(--hh-paper);
    border: 1px solid var(--hh-line);
    border-radius: 8px;
    box-sizing: border-box;
    color: var(--hh-muted);
    font-family: var(--wp--preset--font-family--sans);
    max-width: 100% !important;
    padding: 1rem 1.25rem;
}

.videos-fallback a {
    color: var(--hh-green);
    font-weight: 700;
}

.videos-setup-panel {
    background: var(--hh-white);
    border: 1px dashed color-mix(in srgb, var(--hh-gold) 64%, var(--hh-line));
    border-radius: 8px;
    box-sizing: border-box;
    color: var(--hh-muted);
    font-family: var(--wp--preset--font-family--sans);
    max-width: 100% !important;
    padding: clamp(1rem, 3vw, 2rem);
}

.videos-setup-panel h2 {
    color: var(--hh-green);
    font-family: var(--wp--preset--font-family--serif);
    font-size: clamp(1.45rem, 2vw, 2rem);
    margin: 0 0 0.75rem;
}

.videos-setup-panel p {
    max-width: 100%;
}

.videos-setup-panel a {
    color: var(--hh-green);
    font-weight: 700;
}

.resource-grid {
    align-items: start;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)) !important;
    max-width: min(1160px, 100%) !important;
}

.resource-card {
    align-items: flex-start;
    background: var(--hh-white);
    border: 1px solid var(--hh-line);
    border-radius: 8px;
    box-shadow: 0 10px 28px rgba(31, 39, 34, 0.06);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: 1.25rem;
    text-align: left;
}

.archive-shell .resource-query {
    max-width: min(1160px, 100%) !important;
    width: 100%;
}

.resource-card > * {
    width: 100%;
}

.resource-card h2 {
    font-size: 1.25rem;
    line-height: 1.22;
    margin-block: 0.5rem;
}

.resource-card h2 a {
    color: var(--hh-green);
    text-decoration: none;
}

.resource-card .wp-block-post-excerpt {
    color: var(--hh-muted);
    font-family: var(--wp--preset--font-family--sans);
    font-size: 0.95rem;
}

.resource-card .wp-block-post-excerpt__excerpt {
    margin-bottom: 0;
}

.resource-card__terms {
    color: var(--hh-moss);
    font-family: var(--wp--preset--font-family--sans);
    font-size: 0.82rem;
    font-weight: 700;
    margin-bottom: 0.85rem;
    text-transform: uppercase;
}

.resource-card__terms a {
    color: var(--hh-moss);
}

.wp-block-read-more {
    color: var(--hh-green);
    font-family: var(--wp--preset--font-family--sans);
    font-weight: 700;
    margin-top: auto;
    padding-top: 1rem;
}

.listing-shell {
    padding-block: clamp(2.5rem, 6vw, 5rem);
}

.listing-query,
.listing-grid {
    max-width: min(1120px, 100%) !important;
    width: 100%;
}

.listing-grid {
    display: grid !important;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
}

.listing-card {
    background: var(--hh-white);
    border: 1px solid var(--hh-line);
    border-radius: 8px;
    box-shadow: 0 10px 28px rgba(31, 39, 34, 0.06);
    box-sizing: border-box;
    padding: 1.25rem;
}

.listing-card h2 {
    font-size: 1.3rem;
    line-height: 1.22;
    margin-block: 0.35rem 0.75rem;
}

.listing-card h2 a {
    color: var(--hh-green);
    text-decoration: none;
}

.listing-card .wp-block-post-excerpt {
    color: var(--hh-muted);
    font-family: var(--wp--preset--font-family--sans);
    font-size: 0.95rem;
}

.site-search {
    margin-top: 1.5rem;
    max-width: 640px;
}

.site-search .wp-block-search__inside-wrapper {
    border: 1px solid rgba(255, 255, 255, 0.35);
}

.site-search .wp-block-search__input {
    border: 0;
    border-radius: 4px 0 0 4px;
    min-height: 48px;
    padding-inline: 1rem;
}

.site-search .wp-block-search__button {
    background: var(--hh-gold);
    border: 0;
    border-radius: 0 4px 4px 0;
    color: var(--hh-ink);
    font-family: var(--wp--preset--font-family--sans);
    font-weight: 700;
    margin-left: 0;
    padding-inline: 1.25rem;
}

.hh-home-search {
    background: var(--hh-white);
    border-bottom: 1px solid var(--hh-line);
    box-shadow: 0 14px 34px rgba(31, 39, 34, 0.07);
    box-sizing: border-box;
    margin-block-start: 0 !important;
    padding: clamp(1.5rem, 4vw, 2.35rem) max(var(--hh-gutter), calc((100vw - 1160px) / 2));
}

.hh-home-search > * {
    margin-left: 0 !important;
    margin-right: auto !important;
    max-width: 760px;
}

.hh-home-search h2 {
    font-size: clamp(1.65rem, 3vw, 2.45rem);
    line-height: 1.08;
    margin-block: 0 1rem;
}

.site-search--home {
    margin-top: 1.25rem;
    max-width: 760px;
}

.hh-home-search .wp-block-search {
    margin-top: 1.25rem;
    max-width: 760px;
}

.hh-home-search .wp-block-search__inside-wrapper,
.site-search--home .wp-block-search__inside-wrapper {
    align-items: stretch;
    border: 1px solid var(--hh-line) !important;
    border-radius: 6px;
    box-shadow: 0 12px 30px rgba(31, 39, 34, 0.08);
    display: flex;
    overflow: hidden;
    width: 100%;
}

.hh-home-search .wp-block-search__input,
.site-search--home .wp-block-search__input {
    border: 0 !important;
    flex: 1 1 auto;
    font-size: 1rem;
    min-height: 3.35rem;
    min-width: 0;
}

.hh-home-search .wp-block-search__button {
    background: var(--hh-gold);
    border: 0;
    border-radius: 0 4px 4px 0;
    color: var(--hh-ink);
    font-family: var(--wp--preset--font-family--sans);
    font-weight: 700;
    margin-left: 0;
    padding-inline: 1.25rem;
}

.not-found-panel {
    background: var(--hh-white);
    border: 1px solid var(--hh-line);
    border-radius: 8px;
    box-shadow: var(--hh-shadow);
    box-sizing: border-box;
    max-width: 760px;
    padding: clamp(1.25rem, 4vw, 2rem);
}

.knowledge-base-landing {
    background: var(--hh-paper);
    margin-block-start: 0 !important;
}

.knowledge-hero {
    background:
        linear-gradient(90deg, rgba(24, 43, 29, 0.96), rgba(38, 63, 43, 0.72)),
        url("/wp-content/uploads/2026/10/timber-frame-1.jpg") center / cover;
    color: var(--hh-white);
    margin-block-start: 0 !important;
    min-height: min(680px, calc(100vh - 76px));
    padding: clamp(4rem, 8vw, 7rem) 0;
}

.knowledge-hero__content,
.knowledge-section {
    box-sizing: border-box;
    margin-inline: auto;
    max-width: min(1160px, calc(100% - 2 * var(--hh-gutter)));
}

.knowledge-hero__content {
    display: grid;
    gap: 1.25rem;
    width: 100%;
}

.knowledge-hero h1 {
    font-size: clamp(2.5rem, 5vw, 3.4rem);
    line-height: 1.02;
    margin: 0;
}

.knowledge-hero p:not(.hh-kicker) {
    color: rgba(255, 255, 255, 0.84);
    font-family: var(--wp--preset--font-family--sans);
    font-size: 1.15rem;
    line-height: 1.7;
    max-width: 100%;
}

.knowledge-search {
    display: flex;
    max-width: 680px;
}

.knowledge-search input,
.knowledge-search .wp-block-search__input {
    border: 0;
    border-radius: 4px 0 0 4px;
    box-sizing: border-box;
    flex: 1;
    font-family: var(--wp--preset--font-family--sans);
    min-height: 3.25rem;
    min-width: 0;
    padding: 0 1rem;
}

.knowledge-search button,
.knowledge-search .wp-block-search__button {
    background: var(--hh-gold);
    border: 0;
    border-radius: 0 4px 4px 0;
    color: var(--hh-ink);
    font-family: var(--wp--preset--font-family--sans);
    font-weight: 700;
    padding-inline: 1.25rem;
}

.knowledge-section {
    padding: clamp(3rem, 7vw, 5rem) 0;
}

.knowledge-section__header {
    max-width: 100%;
}

.knowledge-section__header h2 {
    font-size: clamp(1.8rem, 3vw, 3rem);
    line-height: 1.12;
    margin: 0;
}

.knowledge-feature-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(var(--knowledge-topic-columns, 4), minmax(0, 1fr));
    margin-top: 2rem;
}

.knowledge-feature {
    background: var(--hh-white);
    border: 1px solid var(--hh-line);
    border-radius: 8px;
    box-shadow: 0 10px 28px rgba(31, 39, 34, 0.06);
    color: var(--hh-ink);
    display: grid;
    grid-template-rows: 190px auto auto;
    overflow: hidden;
    text-decoration: none;
    transition: transform 160ms ease, box-shadow 160ms ease;
}

.knowledge-feature:hover,
.knowledge-feature:focus {
    box-shadow: 0 18px 44px rgba(31, 39, 34, 0.12);
    transform: translateY(-2px);
}

.knowledge-feature img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.knowledge-feature span,
.legacy-child-pages__title,
.legacy-child-pages__cta,
.knowledge-context h2 {
    font-family: var(--wp--preset--font-family--sans);
    font-weight: 700;
}

.knowledge-feature span {
    display: block;
    padding: 1rem 1rem 0.25rem;
}

.knowledge-feature small {
    color: var(--hh-muted);
    display: block;
    font-family: var(--wp--preset--font-family--sans);
    line-height: 1.45;
    padding: 0 1rem 1rem;
}

.knowledge-topic-grid--editor {
    background: var(--hh-white);
    border: 1px dashed var(--hh-line);
    border-radius: 8px;
    padding: 1rem;
}

.knowledge-topic-content {
    max-width: none !important;
}

.knowledge-topic-content > .bigger {
    display: none;
}

.legacy-child-pages {
    max-width: none !important;
}

.legacy-child-pages ul {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
    list-style: none;
    margin: 1.5rem 0 0;
    padding: 0;
}

.legacy-child-pages li {
    margin: 0;
}

.legacy-child-pages__card {
    background: var(--hh-white);
    border: 1px solid var(--hh-line);
    border-radius: 8px;
    box-shadow: 0 10px 28px rgba(31, 39, 34, 0.06);
    color: var(--hh-ink);
    display: grid;
    grid-template-rows: 180px 1fr;
    height: 100%;
    overflow: hidden;
    text-decoration: none;
    transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.legacy-child-pages__card:hover,
.legacy-child-pages__card:focus {
    border-color: color-mix(in srgb, var(--hh-gold) 60%, var(--hh-line));
    box-shadow: 0 18px 44px rgba(31, 39, 34, 0.12);
    transform: translateY(-2px);
}

.legacy-child-pages__media {
    background: color-mix(in srgb, var(--hh-green) 88%, var(--hh-ink));
    display: block;
    overflow: hidden;
}

.legacy-child-pages__image {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.legacy-child-pages__image--placeholder {
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0)),
        var(--hh-green);
}

.legacy-child-pages__body {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    padding: 1rem;
}

.legacy-child-pages__title {
    color: var(--hh-green);
    display: block;
    font-size: 1rem;
    line-height: 1.25;
}

.legacy-child-pages__excerpt {
    color: var(--hh-muted);
    display: block;
    font-family: var(--wp--preset--font-family--sans);
    font-size: 0.94rem;
    line-height: 1.5;
}

.legacy-child-pages__cta {
    align-items: center;
    color: var(--hh-green);
    display: inline-flex;
    font-size: 0.9rem;
    gap: 0.45rem;
    line-height: 1.2;
    margin-top: auto;
    padding-top: 0.25rem;
}

.legacy-child-pages__cta::after {
    color: var(--hh-gold);
    content: ">";
    font-size: 1rem;
    line-height: 1;
}

.knowledge-context {
    background: color-mix(in srgb, var(--hh-paper) 68%, var(--hh-white));
    border: 1px solid var(--hh-line);
    border-radius: 8px;
    box-shadow: 0 8px 26px rgba(31, 39, 34, 0.06);
    margin-bottom: 2rem;
    max-width: 100% !important;
    padding: clamp(1rem, 2.5vw, 1.5rem);
}

.knowledge-context__back {
    color: var(--hh-moss);
    font-family: var(--wp--preset--font-family--sans);
    font-size: 0.82rem;
    font-weight: 700;
    display: inline-block;
    margin-bottom: 0.85rem;
    text-transform: uppercase;
}

.knowledge-context h2 {
    color: var(--hh-green);
    font-size: 1.25rem;
    margin: 0.35rem 0 1rem;
}

.knowledge-context ul {
    display: grid;
    gap: 0.5rem;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr));
    list-style: none;
    margin: 0;
    padding: 0;
}

.knowledge-context a {
    color: var(--hh-green);
    text-decoration: none;
}

.knowledge-context li a {
    background: var(--hh-white);
    border: 1px solid var(--hh-line);
    border-radius: 6px;
    display: block;
    font-family: var(--wp--preset--font-family--sans);
    font-size: 0.92rem;
    line-height: 1.35;
    padding: 0.7rem 0.8rem;
}

.knowledge-context li.is-current a {
    background: var(--hh-green);
    border-color: var(--hh-green);
    color: var(--hh-white);
}

.hh-home {
    background: var(--hh-paper);
    margin-top:0;
    margin-block-start:0;
}

.hh-hero {
    color: var(--hh-white);
    display: grid;
    min-height: clamp(520px, 78vh, 760px);
    overflow: hidden;
    position: relative;
}

.hh-hero.wp-block-cover {
    align-items: center;
    box-sizing: border-box;
    display: grid;
    margin: 0 !important;
    max-width: none !important;
    padding: 0;
    width: 100%;
}

.hh-hero__image,
.hh-hero__shade,
.hh-hero__content {
    grid-area: 1 / 1;
}

.hh-hero__image {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.hh-hero__shade {
    background:
        linear-gradient(90deg, rgba(16, 31, 21, 0.9), rgba(16, 31, 21, 0.55) 48%, rgba(16, 31, 21, 0.14)),
        linear-gradient(0deg, rgba(16, 31, 21, 0.48), transparent 40%);
}

.hh-hero.wp-block-cover .wp-block-cover__background {
    background:
        linear-gradient(90deg, rgba(16, 31, 21, 0.9), rgba(16, 31, 21, 0.55) 48%, rgba(16, 31, 21, 0.14)),
        linear-gradient(0deg, rgba(16, 31, 21, 0.48), transparent 40%) !important;
    opacity: 1 !important;
}

.hh-hero__content {
    align-self: center;
    box-sizing: border-box;
    margin-inline: auto;
    max-width: min(1160px, calc(100% - 2 * var(--hh-gutter)));
    padding: clamp(2rem, 6vw, 5rem) 0;
    position: relative;
    width: 100%;
    z-index: 1;
}

.hh-hero.wp-block-cover .wp-block-cover__inner-container {
    box-sizing: border-box;
    margin-inline: auto;
    max-width: min(1160px, calc(100% - 2 * var(--hh-gutter)));
    padding: clamp(2rem, 6vw, 5rem) 0;
    width: 100%;
    z-index: 1;
}

.hh-kicker {
    color: var(--hh-moss);
    font-family: var(--wp--preset--font-family--sans);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0;
    margin: 0 0 1.05rem;
    text-transform: uppercase;
}

.hh-hero .hh-kicker,
.page-hero .hh-kicker,
.knowledge-hero .hh-kicker,
.site-footer .hh-kicker,
.has-moss-background-color .hh-kicker,
.has-ink-background-color .hh-kicker,
.has-brick-background-color .hh-kicker {
    color: var(--hh-white);
}

.hh-hero h1 {
    font-size: clamp(2.35rem, 5vw, 3.75rem);
    line-height: 1.02;
    margin: 0 !important;
    max-width: min(980px, 100%);
}

.hh-hero p:not(.hh-kicker) {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 1.15rem;
    line-height: 1.6;
    
}

.hh-hero .hh-kicker,
.hh-hero h1,
.hh-hero p:not(.hh-kicker),
.hh-hero .wp-block-buttons {
    margin-left: 0 !important;
    margin-right: auto !important;
    text-align: left;
}

.hh-hero .wp-block-buttons {
    justify-content: flex-start;
}

@media (min-width: 1024px) {
    .hh-hero__content > *,
    .hh-hero.wp-block-cover .wp-block-cover__inner-container > * {
        margin-left: 0 !important;
        margin-right: auto !important;
        max-width: 50%;
    }

    .hh-hero__content > .wp-block-buttons,
    .hh-hero.wp-block-cover .wp-block-cover__inner-container > .wp-block-buttons {
        width: fit-content;
    }
}

.hh-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

.hh-button,
.wp-block-button__link {
    align-items: center;
    background: var(--hh-moss);
    border: 1px solid var(--hh-moss);
    border-radius: 4px;
    color: var(--hh-white);
    display: inline-flex;
    font-family: var(--wp--preset--font-family--sans);
    font-weight: 700;
    min-height: 2.75rem;
    padding: 0 1rem;
    text-decoration: none;
}

.hh-button:hover,
.hh-button:focus,
.wp-block-button__link:hover,
.wp-block-button__link:focus {
    background: #435333;
    color: var(--hh-white);
}

.hh-button--ghost {
    background: transparent;
    border-color: rgba(255, 255, 255, 0.72);
}

.hh-button--light {
    background: var(--hh-white);
    border-color: var(--hh-white);
    color: var(--hh-ink);
}

.is-style-outline > .wp-block-button__link {
    background: transparent;
    border-color: currentColor;
    color: inherit;
}

.hh-hero .is-style-outline > .wp-block-button__link {
    border-color: rgba(255, 255, 255, 0.72);
    color: var(--hh-white);
}

.hh-section {
    box-sizing: border-box;
    margin-inline: auto;
    max-width: min(1160px, calc(100% - 2 * var(--hh-gutter)));
    padding: clamp(3rem, 7vw, 5rem) 0;
}

.hh-section__header {
    max-width: 100%;
}

.hh-section h2 {
    font-size: clamp(1.8rem, 3vw, 3rem);
    line-height: 1.12;
    margin: 0;
}

.hh-section__header > p:not(.hh-kicker),
.hh-feature p,
.hh-home-intro__copy p:not(.hh-kicker),
.hh-service-card p,
.hh-next-step p {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 1.05rem;
    line-height: 1.7;
}

.hh-pathways,
.hh-proof-grid {
    display: grid;
    gap: 1rem;
    margin-top: 2rem;
}

.hh-pathways {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.hh-pathways > *,
.hh-services > *,
.hh-trust-grid > *,
.hh-proof-grid > * {
    margin-block-start: 0 !important;
}

.hh-proof-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.hh-pathway,
.hh-proof-grid a {
    background: var(--hh-white);
    border: 1px solid var(--hh-line);
    border-radius: 8px;
    box-shadow: 0 10px 28px rgba(31, 39, 34, 0.06);
    color: var(--hh-ink);
    overflow: hidden;
    text-decoration: none;
    transition: transform 160ms ease, box-shadow 160ms ease;
}

.hh-pathway:hover,
.hh-pathway:focus,
.hh-proof-grid a:hover,
.hh-proof-grid a:focus {
    box-shadow: 0 18px 44px rgba(31, 39, 34, 0.12);
    transform: translateY(-2px);
}

.hh-pathway {
    display: grid;
    grid-template-rows: 170px auto auto 1fr;
}

.hh-pathway > *,
.hh-service-card > *,
.hh-proof-card > * {
    margin-block-start: 0 !important;
}

.hh-pathway > .wp-block-image:first-child,
.hh-pathway > .wp-block-image:first-child a,
.hh-service-card > .wp-block-image:first-child,
.hh-service-card > .wp-block-image:first-child a,
.hh-proof-card > .wp-block-image:first-child,
.hh-proof-card > .wp-block-image:first-child a {
    display: block;
    height: 100%;
    min-height: 0;
    overflow: hidden;
    width: 100%;
}

.hh-pathway img,
.hh-proof-grid img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.hh-pathway .wp-block-image,
.hh-service-card .wp-block-image,
.hh-proof-card .wp-block-image {
    margin: 0;
}

.hh-pathway .wp-block-image img,
.hh-service-card .wp-block-image img,
.hh-proof-card .wp-block-image img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.hh-pathway span,
.hh-pathway h3,
.hh-proof-grid span,
.hh-proof-card h3 {
    display: block;
    font-family: var(--wp--preset--font-family--sans);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.25;
    margin: 0;
    padding: 1rem 1rem 0.25rem;
}

.hh-pathway small,
.hh-pathway p {
    color: var(--hh-muted);
    display: block;
    font-family: var(--wp--preset--font-family--sans);
    line-height: 1.45;
    margin: 0;
    padding: 0 1rem 1rem;
}

.hh-pathway .wp-block-buttons {
    align-self: end;
    padding: 0 1rem 1rem;
}

.hh-pathway .wp-block-button__link,
.hh-service-card .wp-block-button__link {
    font-size: 0.88rem;
    min-height: 2.3rem;
    padding-inline: 0.8rem;
}

.hh-trust {
    background: var(--hh-white);
    max-width: none;
}

.hh-trust > * {
    margin-inline: auto;
    max-width: min(1160px, calc(100% - 2 * var(--hh-gutter)));
}

.hh-trust-grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 2rem;
}

.hh-trust-item {
    border-left: 4px solid var(--hh-gold);
    padding: 0.25rem 1rem;
}

.hh-trust-item strong {
    display: block;
    font-family: var(--wp--preset--font-family--sans);
    font-size: 1.05rem;
}

.hh-trust-item h3 {
    font-family: var(--wp--preset--font-family--sans);
    font-size: 1.05rem;
    line-height: 1.25;
    margin: 0;
}

.hh-trust-item p {
    margin-bottom: 0;
}

.hh-home-intro {
    align-items: center;
    display: grid;
    gap: clamp(2rem, 6vw, 5rem);
    grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.85fr);
}

.hh-profile {
    margin: 0;
}

.hh-profile img,
.hh-profile.wp-block-image img {
    aspect-ratio: 1;
    border-radius: 8px;
    box-shadow: var(--hh-shadow);
    display: block;
    object-fit: cover;
    width: 100%;
}

.hh-profile figcaption {
    color: var(--hh-muted);
    font-family: var(--wp--preset--font-family--sans);
    font-size: 0.92rem;
    line-height: 1.55;
    margin-top: 0.85rem;
}

.hh-services {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.hh-service-card {
    background: var(--hh-white);
    border: 1px solid var(--hh-line);
    border-radius: 8px;
    box-shadow: 0 12px 34px rgba(31, 39, 34, 0.08);
    display: grid;
    grid-template-rows: 210px auto;
    overflow: hidden;
}

.hh-service-card > .wp-block-image:first-child img,
.hh-service-card img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.hh-service-card > div,
.hh-service-card > .wp-block-group {
    padding: clamp(1.1rem, 2vw, 1.45rem);
}

.hh-service-card h2 {
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    line-height: 1.16;
}

.hh-service-card a,
.hh-proof-grid small {
    font-family: var(--wp--preset--font-family--sans);
}

.hh-service-card a {
    color: var(--hh-green);
    display: inline-block;
    font-weight: 700;
    margin-top: 0.25rem;
}

.hh-feature {
    align-items: center;
    display: grid;
    gap: clamp(2rem, 6vw, 5rem);
    grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.85fr);
}

.hh-feature img {
    border-radius: 8px;
    box-shadow: var(--hh-shadow);
    justify-self: center;
    max-width: min(420px, 100%);
    width: 100%;
}

.hh-proof {
    padding-top: 0;
}

.hh-proof-grid a,
.hh-proof-card {
    display: grid;
    grid-template-rows: 220px auto;
}

.hh-proof-grid span {
    padding-bottom: 1rem;
}

.hh-restoration .hh-proof-grid a,
.hh-restoration .hh-proof-card {
    grid-template-rows: 250px auto auto;
}

.hh-proof-grid small,
.hh-proof-card p {
    color: var(--hh-muted);
    display: block;
    font-family: var(--wp--preset--font-family--sans);
    line-height: 1.5;
    margin: 0;
    padding: 0 1rem 1rem;
}

.hh-next-step {
    align-items: center;
    background: var(--hh-green);
    border-radius: 8px;
    color: var(--hh-white);
    display: grid;
    gap: 1.5rem;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-bottom: clamp(3rem, 6vw, 5rem);
}

.hh-next-step h2,
.hh-next-step p {
    max-width: 100%;
}

.hh-next-step p {
    color: rgba(255, 255, 255, 0.82);
}

.hh-next-step .hh-button {
    justify-self: end;
}

.hh-legacy-content {
    background: var(--hh-white);
    border-top: 1px solid var(--hh-line);
    max-width: none;
}

.hh-legacy-content > * {
    margin-inline: auto;
    max-width: min(1160px, calc(100% - 2 * var(--hh-gutter)));
}

.legacy-portlet {
    background: color-mix(in srgb, var(--hh-paper) 62%, var(--hh-white));
    border: 1px solid var(--hh-line);
    border-left: 4px solid var(--hh-gold);
    border-radius: 8px;
    box-shadow: 0 8px 26px rgba(31, 39, 34, 0.06);
    box-sizing: border-box;
    margin-block: 1.5rem;
    padding: clamp(1rem, 2vw, 1.35rem);
}

.legacy-portlet__meta {
    color: var(--hh-muted);
    display: none;
    font-family: var(--wp--preset--font-family--sans);
    font-size: 0.72rem;
    font-weight: 700;
    margin: 0 0 0.75rem;
    text-transform: uppercase;
}

.legacy-portlet h3 {
    font-size: 1.25rem;
    margin-block: 0 0.75rem;
}

.legacy-portlet p,
.legacy-portlet li {
    font-size: 0.95rem;
    line-height: 1.58;
}

.legacy-portlet p {
    margin-block: 0.65rem;
}

.legacy-portlet p:empty {
    display: none;
}

.legacy-portlet ul,
.legacy-portlet ol {
    padding-left: 1.1rem;
}

.legacy-portlet iframe,
.legacy-portlet embed,
.legacy-portlet object {
    max-width: 100%;
}

.legacy-portlet .wp-block-image {
    margin-block: 1rem;
}

.legacy-portlet-menu {
    display: block;
}

.legacy-portlet-menu__title {
    border-bottom: 1px solid rgba(33, 63, 39, 0.16);
    color: var(--wp--preset--color--heritage-green);
    display: block;
    font-family: var(--wp--preset--font-family--serif);
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
}

.legacy-portlet-menu__list {
    display: grid;
    gap: 0.18rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.legacy-portlet-menu__list ul {
    border-left: 1px solid rgba(33, 63, 39, 0.14);
    margin: 0.2rem 0 0.35rem 0.55rem;
    padding-left: 0.65rem;
}

.legacy-portlet-menu__item {
    align-items: center;
    display: grid;
    gap: 0.25rem;
    grid-template-columns: minmax(0, 1fr) auto;
}

.legacy-portlet-menu__list a,
.legacy-portlet-menu__list span {
    border-radius: 6px;
    color: var(--wp--preset--color--heritage-green);
    display: block;
    line-height: 1.25;
    padding: 0.38rem 0.45rem;
    text-decoration: none;
}

.legacy-portlet-menu__list a:hover,
.legacy-portlet-menu__list a:focus-visible {
    background: rgba(33, 63, 39, 0.08);
    color: var(--wp--preset--color--heritage-green);
}

.legacy-portlet-menu__list .is-current > a,
.legacy-portlet-menu__list .is-current > .legacy-portlet-menu__item > a,
.legacy-portlet-menu__list .is-current-ancestor > a,
.legacy-portlet-menu__list .is-current-ancestor > .legacy-portlet-menu__item > a {
    background: rgba(33, 63, 39, 0.1);
    font-weight: 700;
}

.legacy-portlet-menu__list .is-current > a,
.legacy-portlet-menu__list .is-current > .legacy-portlet-menu__item > a {
    box-shadow: inset 3px 0 0 var(--wp--preset--color--heritage-gold);
}

.legacy-portlet-menu__toggle {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 999px;
    color: var(--wp--preset--color--heritage-green);
    cursor: pointer;
    display: inline-flex;
    height: 1.7rem;
    justify-content: center;
    padding: 0;
    width: 1.7rem;
}

.legacy-portlet-menu__toggle::before {
    border-bottom: 2px solid currentColor;
    border-right: 2px solid currentColor;
    content: "";
    display: block;
    height: 0.42rem;
    transform: rotate(45deg) translate(-1px, -1px);
    transition: transform 0.16s ease;
    width: 0.42rem;
}

.legacy-portlet-menu__toggle:hover,
.legacy-portlet-menu__toggle:focus-visible {
    background: rgba(33, 63, 39, 0.1);
    outline: none;
}

.heritage-category-menu--collapsible .has-children:not(.is-expanded) > .legacy-portlet-menu__list {
    display: none;
}

.heritage-category-menu--collapsible .has-children.is-expanded > .legacy-portlet-menu__item > .legacy-portlet-menu__toggle::before {
    transform: rotate(-135deg) translate(-1px, -1px);
}

.legacy-section {
    margin-block: clamp(1.75rem, 4vw, 3rem);
}

.legacy-section:first-child {
    margin-top: 0;
}

.legacy-section > * {
    margin-left: auto;
    margin-right: auto;
    max-width: 100%;
}

.legacy-section > .legacy-section-columns,
.legacy-section > .legacy-section-images,
.legacy-section > .wp-block-image,
.legacy-section > .wp-block-gallery,
.legacy-section > .wp-block-columns {
    max-width: 100%;
}

.legacy-section h2:first-child,
.legacy-section .legacy-section-column--text h2:first-child {
    margin-top: 0;
}

.legacy-section-columns {
    align-items: start !important;
    display: grid !important;
    gap: clamp(1.25rem, 3vw, 2rem);
}

.legacy-section-columns--vert-left {
    grid-template-columns: minmax(180px, 33.333%) minmax(0, 66.667%);
}

.legacy-section-columns--vert-right {
    grid-template-columns: minmax(0, 66.667%) minmax(180px, 33.333%);
}

.legacy-section--image-span-1 .legacy-section-columns--vert-left {
    grid-template-columns: minmax(120px, 8.333%) minmax(0, 91.667%);
}

.legacy-section--image-span-1 .legacy-section-columns--vert-right {
    grid-template-columns: minmax(0, 91.667%) minmax(120px, 8.333%);
}

.legacy-section--image-span-2 .legacy-section-columns--vert-left {
    grid-template-columns: minmax(150px, 16.667%) minmax(0, 83.333%);
}

.legacy-section--image-span-2 .legacy-section-columns--vert-right {
    grid-template-columns: minmax(0, 83.333%) minmax(150px, 16.667%);
}

.legacy-section--image-span-3 .legacy-section-columns--vert-left {
    grid-template-columns: minmax(170px, 25%) minmax(0, 75%);
}

.legacy-section--image-span-3 .legacy-section-columns--vert-right {
    grid-template-columns: minmax(0, 75%) minmax(170px, 25%);
}

.legacy-section--image-span-5 .legacy-section-columns--vert-left {
    grid-template-columns: minmax(220px, 41.667%) minmax(0, 58.333%);
}

.legacy-section--image-span-5 .legacy-section-columns--vert-right {
    grid-template-columns: minmax(0, 58.333%) minmax(220px, 41.667%);
}

.legacy-section--image-span-6 .legacy-section-columns--vert-left {
    grid-template-columns: minmax(240px, 50%) minmax(0, 50%);
}

.legacy-section--image-span-6 .legacy-section-columns--vert-right {
    grid-template-columns: minmax(0, 50%) minmax(240px, 50%);
}

.legacy-section--image-span-7 .legacy-section-columns--vert-left {
    grid-template-columns: minmax(220px, 58.333%) minmax(0, 41.667%);
}

.legacy-section--image-span-7 .legacy-section-columns--vert-right {
    grid-template-columns: minmax(0, 41.667%) minmax(220px, 58.333%);
}

.legacy-section--image-span-8 .legacy-section-columns--vert-left {
    grid-template-columns: minmax(240px, 66.667%) minmax(0, 33.333%);
}

.legacy-section--image-span-8 .legacy-section-columns--vert-right {
    grid-template-columns: minmax(0, 33.333%) minmax(240px, 66.667%);
}

.legacy-section--image-span-9 .legacy-section-columns--vert-left {
    grid-template-columns: minmax(260px, 75%) minmax(0, 25%);
}

.legacy-section--image-span-9 .legacy-section-columns--vert-right {
    grid-template-columns: minmax(0, 25%) minmax(260px, 75%);
}

.legacy-section--image-span-10 .legacy-section-columns--vert-left {
    grid-template-columns: minmax(280px, 83.333%) minmax(0, 16.667%);
}

.legacy-section--image-span-10 .legacy-section-columns--vert-right {
    grid-template-columns: minmax(0, 16.667%) minmax(280px, 83.333%);
}

.legacy-section--image-span-11 .legacy-section-columns--vert-left {
    grid-template-columns: minmax(300px, 91.667%) minmax(0, 8.333%);
}

.legacy-section--image-span-11 .legacy-section-columns--vert-right {
    grid-template-columns: minmax(0, 8.333%) minmax(300px, 91.667%);
}

.legacy-section-column {
    min-width: 0;
}

.legacy-section-column > * {
    margin-left: auto;
    margin-right: auto;
}

.legacy-section-column--text > * {
    max-width: 720px;
}

.legacy-section-images {
    background: color-mix(in srgb, var(--hh-paper) 58%, var(--hh-white));
    /*border: 1px solid var(--hh-line);
    border-radius: 8px;*/
    box-sizing: border-box;
    padding: clamp(0.65rem, 1.5vw, 0.9rem);
}

.legacy-section--horz-top > .legacy-section-images {
    margin-bottom: clamp(1rem, 2.5vw, 1.5rem);
}

.legacy-section--horz-bottom > .legacy-section-images {
    margin-top: clamp(1rem, 2.5vw, 1.5rem);
}

.legacy-page-layout {
    display: grid;
    gap: clamp(1.35rem, 3vw, 2rem);
}

.heritage-page-layout {
    display: grid;
    gap: 1.5rem 0;
    grid-template-areas:
        "top top top"
        "left main right"
        "lower lower lower";
    grid-template-columns: 0 minmax(0, 1fr) 0;
    width: 100%;
}

.heritage-page-layout:has(> .heritage-layout-area--left > *) {
    column-gap: 1.5rem;
    grid-template-columns: minmax(190px, 0.34fr) minmax(0, 1fr) 0;
}

.heritage-page-layout:has(> .heritage-layout-area--right > *) {
    column-gap: 1.5rem;
    grid-template-columns: 0 minmax(0, 1fr) minmax(220px, 0.34fr);
}

.heritage-page-layout:has(> .heritage-layout-area--left > *):has(> .heritage-layout-area--right > *) {
    grid-template-columns: minmax(170px, 0.22fr) minmax(0, 1fr) minmax(210px, 0.26fr);
}

.heritage-layout-area {
    min-width: 0;
}

.heritage-layout-area--top {
    grid-area: top;
}

.heritage-layout-area--left {
    grid-area: left;
}

.heritage-layout-area--main {
    grid-area: main;
}

.heritage-layout-area--right {
    grid-area: right;
}

.heritage-layout-area--lower {
    grid-area: lower;
}

.heritage-layout-area--lower:not(:empty) {
    border-top: 1px solid var(--hh-line);
    display: grid;
    gap: 1rem;
    margin-top: 0.75rem;
    padding-top: clamp(1.25rem, 3vw, 2rem);
}

.heritage-layout-area--left:empty,
.heritage-layout-area--right:empty,
.heritage-layout-area--top:empty,
.heritage-layout-area--lower:empty {
    display: none;
}

.heritage-layout-area > .legacy-portlet {
    margin-block: 0 1rem;
}

.legacy-page-grid {
    align-items: start;
    display: grid;
    gap: clamp(1.35rem, 3vw, 2rem);
    grid-template-columns: minmax(0, 1fr);
}

.legacy-page-layout--left-rail .legacy-page-grid {
    grid-template-columns: minmax(180px, 0.28fr) minmax(0, 1fr);
}

.legacy-page-layout--right-rail .legacy-page-grid {
    grid-template-columns: minmax(0, 1fr) minmax(220px, 0.32fr);
}

.legacy-page-layout--three-col .legacy-page-grid {
    grid-template-columns: minmax(170px, 0.22fr) minmax(0, 1fr) minmax(210px, 0.26fr);
}

.legacy-page-main {
    min-width: 0;
}

.legacy-page-main > * {
    margin-left: auto;
    margin-right: auto;
    max-width: 100%;
}

.legacy-page-main > .alignwide,
.legacy-page-main > .wp-block-gallery,
.legacy-page-main > .wp-block-columns,
.legacy-page-main > .wp-block-image,
.legacy-page-main > .legacy-child-pages,
.legacy-page-main > .knowledge-context,
.legacy-page-main > .legacy-section {
    max-width: 100%;
}

.legacy-portlet-rail {
    align-self: start;
    display: grid;
    gap: 1rem;
    position: sticky;
    top: 6.5rem;
}

.legacy-portlet-rail .legacy-portlet,
.legacy-portlet-band .legacy-portlet {
    margin-block: 0;
}

.legacy-portlet-rail .legacy-portlet {
    border-left-width: 0;
    border-top: 4px solid var(--hh-gold);
    box-shadow: 0 10px 25px rgba(31, 39, 34, 0.07);
    padding: 1rem 0.95rem;
}

.legacy-portlet-rail .legacy-portlet h3 {
    font-size: 1rem;
    line-height: 1.22;
}

.legacy-portlet-rail .legacy-portlet__meta {
    font-size: 0.66rem;
    margin-bottom: 0.55rem;
}

.legacy-portlet-rail .legacy-portlet p,
.legacy-portlet-rail .legacy-portlet li {
    font-size: 0.86rem;
    line-height: 1.48;
}

.legacy-portlet-rail .legacy-portlet p {
    margin-block: 0.55rem;
}

.legacy-portlet-rail .legacy-portlet--text {
    border-top-color: var(--hh-green);
}

.legacy-portlet-band {
    display: grid;
    gap: 1rem;
}

.legacy-portlet-band--top {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
}

.legacy-portlet-band--lower {
    border-top: 1px solid var(--hh-line);
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
    margin-top: 0.75rem;
    padding-top: clamp(1.25rem, 3vw, 2rem);
}

.heritage-layout-area--lower > .legacy-portlet--text,
.heritage-layout-area--lower > .legacy-portlet--html_block,
.legacy-portlet-band--lower .legacy-portlet--text,
.legacy-portlet-band--lower .legacy-portlet--html_block {
    background: color-mix(in srgb, var(--hh-paper) 76%, var(--hh-white));
    border-left-color: var(--hh-green);
    grid-column: 1 / -1;
    padding: clamp(1.15rem, 2.8vw, 1.75rem);
}

.heritage-layout-area--lower > .legacy-portlet--text h3,
.heritage-layout-area--lower > .legacy-portlet--html_block h3,
.legacy-portlet-band--lower .legacy-portlet--text h3,
.legacy-portlet-band--lower .legacy-portlet--html_block h3 {
    font-size: clamp(1.18rem, 2.2vw, 1.45rem);
}

.heritage-layout-area--lower > .legacy-portlet--text p,
.heritage-layout-area--lower > .legacy-portlet--html_block p,
.legacy-portlet-band--lower .legacy-portlet--text p,
.legacy-portlet-band--lower .legacy-portlet--html_block p {
    /*max-width: 78ch;*/
}

.legacy-image-columns {
    display: grid !important;
    gap: clamp(0.75rem, 2vw, 1.5em);
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr));
    margin-block: 1.25rem;
}

.legacy-image-columns .wp-block-column {
    flex-basis: auto !important;
    min-width: 0;
    width: auto;
}

.legacy-image-columns .wp-block-image {
    margin: 0;
}

.legacy-image-columns .wp-block-image img {
    aspect-ratio: 4 / 3;
    display: block;
    height: auto;
    object-fit: cover;
    width: 100%;
}

.legacy-portlet-rail .legacy-image-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 980px) {
    .site-brand__tagline {
        display: none;
    }

    .hh-pathways,
    .hh-trust-grid,
    .hh-proof-grid,
    .hh-feature,
    .hh-home-intro,
    .hh-services,
    .hh-next-step,
    .knowledge-feature-grid {
        grid-template-columns: 1fr;
    }

    .legacy-page-layout--left-rail .legacy-page-grid,
    .legacy-page-layout--right-rail .legacy-page-grid,
    .legacy-page-layout--three-col .legacy-page-grid,
    .heritage-page-layout,
    .heritage-page-layout:has(> .heritage-layout-area--left > *),
    .heritage-page-layout:has(> .heritage-layout-area--right > *),
    .heritage-page-layout:has(> .heritage-layout-area--left > *):has(> .heritage-layout-area--right > *) {
        gap: 1rem;
        grid-template-areas:
            "top"
            "main"
            "left"
            "right"
            "lower";
        grid-template-columns: 1fr;
    }

    .legacy-section-columns--vert-left,
    .legacy-section-columns--vert-right {
        grid-template-columns: 1fr;
    }

    .legacy-section-columns--vert-right .legacy-section-column--images {
        order: -1;
    }

    .legacy-page-main {
        order: 1;
    }

    .legacy-portlet-rail {
        position: static;
    }

    .legacy-portlet-rail--left {
        order: 2;
    }

    .legacy-portlet-rail--right {
        order: 3;
    }

    .hh-pathway,
    .hh-proof-grid a {
        grid-template-rows: 220px auto auto;
    }

    .hh-next-step .hh-button {
        justify-self: start;
    }

    .knowledge-feature {
        grid-template-rows: 220px auto auto;
    }

    .legacy-child-pages__card {
        grid-template-rows: 220px 1fr;
    }
}

@media (max-width: 640px) {
    .site-header__bar {
        min-height: 64px;
    }

    .hh-hero {
        min-height: 620px;
    }

    .hh-hero__shade {
        background: linear-gradient(0deg, rgba(16, 31, 21, 0.92), rgba(16, 31, 21, 0.5));
    }

    .hh-hero__content {
        align-self: end;
    }

    /* side space now comes from --hh-gutter on the containers themselves */

    .article-content {
        box-shadow: none;
        padding-inline: 1rem;
    }

    .knowledge-hero {
        min-height: 620px;
        padding-inline: 0;
    }

    .knowledge-search {
        display: grid;
    }

    .knowledge-search input,
    .knowledge-search button {
        border-radius: 4px;
    }

    .knowledge-search button {
        min-height: 3rem;
    }

    .knowledge-section {
        padding-inline: 0;
    }
}

/* Consistent section navigation across both migrated sites. */
.hh-section-layout { display:grid; grid-template-columns:minmax(210px,260px) minmax(0,1fr); gap:2rem; align-items:start; width:100%; max-width:var(--wp--style--global--wide-size,1200px); margin-inline:auto; }
.hh-section-content { min-width:0; }
.hh-section-content > :first-child { margin-top:0; }
.knowledge-base-landing > .wp-block-post-content > .hh-section-layout { padding:2rem 1.5rem; }
@media (max-width:780px) { .hh-section-layout { grid-template-columns:minmax(0,1fr); gap:1.25rem; } }

.hh-survey-gallery { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:1rem; }
.hh-survey-gallery figure { margin:0; }
.hh-survey-gallery img { width:100%; height:240px; object-fit:contain; }

/* Conversion: funnel calls to action, quote form, header quote button */
.hh-cta { margin:3rem 0 1rem; padding:1.75rem; background:var(--hh-green); color:var(--hh-white); border-radius:4px; }
.hh-cta--learning { background:var(--hh-white); color:var(--hh-ink); border:1px solid var(--hh-line); border-top:4px solid var(--hh-gold); }
.hh-cta__kicker { margin:0 0 .35rem; font-size:.78rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--hh-gold); }
.hh-cta__title { margin:0 0 .6rem; font-family:var(--wp--preset--font-family--serif); font-size:1.6rem; line-height:1.15; }
.hh-cta__text { margin:0 0 1.1rem; max-width:44rem; }
.hh-cta__actions { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem 1.25rem; margin:0; }
.hh-cta .hh-button { background:var(--hh-gold); border-color:var(--hh-gold); color:var(--hh-ink); }
.hh-cta .hh-button:hover, .hh-cta .hh-button:focus { background:#cbb06a; color:var(--hh-ink); }
.hh-cta__secondary { color:inherit; font-weight:600; }
.hh-cta--compact { margin:1.25rem 0 0; padding:1.1rem; }
.hh-cta--compact .hh-cta__title { font-size:1.2rem; }
.hh-cta--compact .hh-button { width:100%; justify-content:center; text-align:center; }

.hh-quote-form { max-width:46rem; }
.hh-quote-form fieldset { margin:0 0 1.5rem; padding:1.25rem 1.25rem .25rem; border:1px solid var(--hh-line); border-radius:4px; background:var(--hh-white); }
.hh-quote-form legend { padding:0 .4rem; font-weight:700; }
.hh-quote-form label { display:block; margin-bottom:.3rem; font-weight:600; font-size:.95rem; }
.hh-quote-form input, .hh-quote-form select, .hh-quote-form textarea { width:100%; box-sizing:border-box; padding:.65rem .75rem; border:1px solid #b9b3a5; border-radius:4px; background:#fff; font-size:1rem; }
.hh-quote-form__row { display:grid; grid-template-columns:repeat(auto-fit,minmax(12rem,1fr)); gap:0 1rem; }
.hh-quote-form__hp { position:absolute; left:-9999px; }
.hh-quote-form__error { padding:.75rem 1rem; background:#fbe9e7; border-left:4px solid #a0352a; }
.hh-quote-form__note { font-size:.9rem; color:var(--hh-muted); }
.hh-quote-form__done { padding:1.5rem; background:var(--hh-white); border-left:4px solid var(--hh-moss); }

.site-header__quote { margin:0; }
.site-header__quote a { display:inline-block; line-height:2.5rem; padding:0 1rem; background:var(--hh-gold); color:var(--hh-ink); border-radius:4px; font-weight:700; text-decoration:none; white-space:nowrap; }
.site-header__quote a:hover, .site-header__quote a:focus { background:#cbb06a; }

/* Section navigation (left sidebar on interior pages) */
.hh-section-sidebar { position:sticky; top:calc(var(--hh-sticky-top, 8.5rem) + 1rem); display:flex; flex-direction:column; gap:1rem; max-height:calc(100vh - var(--hh-sticky-top, 8.5rem) - 2rem); }
.hh-section-nav { display:flex; flex-direction:column; min-height:0; }
.hh-section-nav__panel { position:relative; overflow-y:auto; overscroll-behavior:contain; padding:1.25rem 0 .75rem; background:var(--hh-white); border:1px solid var(--hh-line); border-radius:4px; scrollbar-width:thin; }
.hh-section-nav__kicker, .hh-section-nav__toggle-kicker { display:block; margin:0 1.25rem .2rem; font-size:.72rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--hh-gold); }
.hh-section-nav__title { display:block; margin:0 0 .5rem; padding:0 1.25rem .85rem; border-bottom:1px solid var(--hh-line); font-family:var(--wp--preset--font-family--serif); font-size:1.35rem; font-weight:700; line-height:1.15; color:var(--hh-green); text-decoration:none; }
a.hh-section-nav__title:hover, a.hh-section-nav__title:focus-visible { text-decoration:underline; text-underline-offset:3px; }
.hh-section-nav__list { list-style:none; margin:0; padding:0; }
.hh-section-nav__list a { display:block; padding:.45rem 1.25rem .45rem calc(1.25rem - 3px); border-left:3px solid transparent; color:var(--hh-ink); font-size:.94rem; line-height:1.3; text-decoration:none; }
.hh-section-nav__list a:hover, .hh-section-nav__list a:focus-visible { background:var(--hh-paper); color:var(--hh-green); }
.hh-section-nav__list--2 a { padding-left:2.1rem; font-size:.88rem; color:var(--hh-muted); }
.hh-section-nav__list--3 a { padding-left:2.9rem; font-size:.86rem; color:var(--hh-muted); }
.hh-section-nav__list--4 a, .hh-section-nav__list--5 a, .hh-section-nav__list--6 a { padding-left:3.6rem; font-size:.84rem; color:var(--hh-muted); }
.hh-section-nav__list--2, .hh-section-nav__list--3, .hh-section-nav__list--4 { position:relative; margin-bottom:.35rem; }
.hh-section-nav__list--2::before, .hh-section-nav__list--3::before, .hh-section-nav__list--4::before { content:""; position:absolute; top:.2rem; bottom:.2rem; left:1.5rem; border-left:1px solid var(--hh-line); }
.hh-section-nav__list--3::before { left:2.3rem; }
.hh-section-nav__list--4::before { left:3.05rem; }
.hh-section-nav .is-open > a { color:var(--hh-green); font-weight:600; }
.hh-section-nav .is-current > a { border-left-color:var(--hh-gold); background:color-mix(in srgb, var(--hh-moss) 9%, transparent); color:var(--hh-green); font-weight:700; }
.hh-section-nav__toggle { display:none; }
.hh-section-sidebar .hh-cta--compact { flex:none; margin:0; }
@media (max-width:780px) {
  .hh-section-sidebar { position:static; max-height:none; }
  .hh-section-sidebar .hh-cta--compact { display:none; }
  .hh-section-nav__toggle { display:flex; flex-direction:column; align-items:flex-start; width:100%; padding:.8rem 3rem .8rem 1rem; position:relative; background:var(--hh-white); border:1px solid var(--hh-line); border-radius:4px; color:var(--hh-green); font:700 1.1rem/1.2 var(--wp--preset--font-family--serif); text-align:left; cursor:pointer; }
  .hh-section-nav__toggle-kicker { margin:0 0 .15rem; font-family:var(--wp--preset--font-family--sans); }
  .hh-section-nav__toggle::after { content:""; position:absolute; right:1.2rem; top:50%; width:.5rem; height:.5rem; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:translateY(-70%) rotate(45deg); transition:transform .15s; }
  .hh-section-nav.is-expanded .hh-section-nav__toggle::after { transform:translateY(-30%) rotate(-135deg); }
  .hh-section-nav__panel { display:none; margin-top:.5rem; }
  .hh-section-nav.is-expanded .hh-section-nav__panel { display:block; }
  .hh-section-nav__panel > .hh-section-nav__kicker { display:none; }
}
.hh-section-content--focused { max-width:46rem; margin-inline:auto; }

/* Callout: former sidebar widgets moved into the article flow */
.hh-callout { margin:2rem 0; padding:1.25rem 1.5rem; background:var(--hh-paper); border-left:4px solid var(--hh-gold); border-radius:0 4px 4px 0; }
.hh-callout > :first-child { margin-top:0; }
.hh-callout > :last-child { margin-bottom:0; }
.hh-callout h2, .hh-callout h3 { font-size:1.25rem; }
.hh-callout img { max-width:100%; height:auto; }

/* "Explore this pathway" hubs: cards on routing pages, "Continue reading" after articles */
.hh-pathway-cards, .hh-pathway-next { margin:0 0 2.5rem; }
.hh-section-content .hh-pathway-cards__title, .hh-section-content .hh-pathway-next__title, .hh-pathway-cards__title, .hh-pathway-next__title { margin:0 0 .9rem; line-height:1.3; font-family:var(--wp--preset--font-family--sans); font-size:.78rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--hh-gold); }
.hh-pathway-cards ul, .hh-pathway-next ul { list-style:none; margin:0; padding:0; display:grid; }
.hh-pathway-cards ul { grid-template-columns:repeat(auto-fill,minmax(15rem,1fr)); gap:.75rem; }
.hh-pathway-cards a { display:flex; flex-direction:column; justify-content:space-between; gap:.6rem; height:100%; box-sizing:border-box; min-height:5.5rem; padding:1rem 1.15rem; background:var(--hh-white); border:1px solid var(--hh-line); border-radius:4px; color:var(--hh-green); font-family:var(--wp--preset--font-family--serif); font-size:1.2rem; font-weight:700; line-height:1.2; text-decoration:none; transition:border-color .15s, box-shadow .15s; }
.hh-pathway-cards a::after { content:"→"; font-family:var(--wp--preset--font-family--sans); font-size:1rem; color:var(--hh-gold); }
.hh-pathway-cards a:hover, .hh-pathway-cards a:focus-visible { border-color:var(--hh-gold); box-shadow:var(--hh-shadow); }
.hh-pathway-next { margin-top:3rem; padding-top:1.5rem; border-top:1px solid var(--hh-line); }
.hh-pathway-next ul { grid-template-columns:repeat(auto-fill,minmax(16rem,1fr)); gap:0 2rem; }
.hh-pathway-next a { display:flex; align-items:center; gap:.5rem; padding:.6rem 0; border-bottom:1px solid var(--hh-line); color:var(--hh-green); font-weight:600; text-decoration:none; }
.hh-pathway-next a::after { content:"›"; margin-left:auto; color:var(--hh-gold); font-size:1.3rem; line-height:1; }
.hh-pathway-next a:hover .hh-pathway-label, .hh-pathway-next a:focus-visible .hh-pathway-label { text-decoration:underline; text-underline-offset:3px; }
.hh-pathway-badge { flex:none; align-self:flex-start; padding:.15rem .45rem; border-radius:3px; background:var(--hh-green); color:var(--hh-white); font-family:var(--wp--preset--font-family--sans); font-size:.68rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.hh-pathway-next .hh-pathway-badge { align-self:center; }

/* Learning Centre landing: full width, grouped topics */
.knowledge-base-landing .knowledge-hero { min-height:0; padding:clamp(3rem,6vw,5rem) 0; }
.hh-landing-content > .hh-cta, .hh-landing-content > .hh-pathway-next { box-sizing:border-box; max-width:min(1160px, calc(100% - 2 * var(--hh-gutter))); margin:0 auto 4rem; }
.hh-topic-groups { display:grid; gap:2.75rem; margin-top:2rem; }
.hh-topic-group__title { margin:0 0 1rem; padding-bottom:.6rem; border-bottom:2px solid var(--hh-gold); font-size:1.5rem; color:var(--hh-green); }
.hh-topic-group__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(13rem,1fr)); gap:1rem; }
.hh-topic-card { display:flex; flex-direction:column; padding:1.25rem 1.35rem; background:var(--hh-white); border:1px solid var(--hh-line); border-radius:4px; }
.hh-topic-card h3 { margin:0 0 .75rem; font-size:1.3rem; line-height:1.2; }
.hh-topic-card h3 a { color:var(--hh-green); text-decoration:none; }
.hh-topic-card h3 a:hover, .hh-topic-card h3 a:focus-visible { text-decoration:underline; text-underline-offset:3px; }
.hh-topic-card ul { list-style:none; margin:0 0 1rem; padding:0; }
.hh-topic-card li { margin:0; padding:.35rem 0; border-top:1px solid var(--hh-line); font-size:.92rem; line-height:1.35; }
.hh-topic-card li a { color:var(--hh-ink); text-decoration:none; }
.hh-topic-card li a:hover, .hh-topic-card li a:focus-visible { color:var(--hh-green); text-decoration:underline; }
.hh-topic-card__all { margin-top:auto; color:var(--hh-moss); font-size:.9rem; font-weight:700; text-decoration:none; }
.hh-topic-card__all:hover, .hh-topic-card__all:focus-visible { text-decoration:underline; }
.hh-topic-more { margin:0; padding-top:1rem; border-top:1px solid var(--hh-line); color:var(--hh-muted); }
.hh-topic-more a { color:var(--hh-green); }
.hh-topic-card { overflow:hidden; }
.hh-topic-card__media { display:block; margin:-1.25rem -1.35rem 1rem; aspect-ratio:3 / 2; overflow:hidden; background:var(--hh-paper); }
.hh-topic-card__image { display:block; width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.hh-topic-card:hover .hh-topic-card__image { transform:scale(1.03); }

/* Pathway cards with image and summary */
.hh-pathway-cards ul { grid-template-columns:repeat(auto-fill,minmax(14rem,1fr)); gap:1rem; }
.hh-pathway-cards a { justify-content:flex-start; gap:.45rem; padding:0 0 1rem; overflow:hidden; }
.hh-pathway-cards a > :not(.hh-pathway-media) { margin-inline:1.1rem; }
.hh-pathway-media { display:block; aspect-ratio:3 / 2; margin-bottom:.4rem; overflow:hidden; background:var(--hh-paper); }
.hh-pathway-media img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.hh-pathway-cards a:hover .hh-pathway-media img { transform:scale(1.03); }
.hh-pathway-cards .hh-pathway-badge { margin-top:.2rem; }
.hh-pathway-summary { color:var(--hh-muted); font-family:var(--wp--preset--font-family--sans); font-size:.9rem; font-weight:400; line-height:1.45; }
.hh-pathway-summary:empty { display:none; }
.hh-pathway-cards a::after { margin-top:auto; padding:0 1.1rem; }
.hh-pathway-media--empty { background:var(--hh-paper) url("../logo-top.svg") center / 60% auto no-repeat; }

/* Page headers: breadcrumb everywhere; light compact header on articles */
.page-hero__breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:.2rem .5rem; margin:0 0 1rem; font-family:var(--wp--preset--font-family--sans); font-size:.82rem; font-weight:600; }
.page-hero__breadcrumb a { color:inherit; opacity:.85; text-decoration:none; }
.page-hero__breadcrumb a:hover, .page-hero__breadcrumb a:focus-visible { opacity:1; text-decoration:underline; text-underline-offset:3px; }
.page-hero__breadcrumb span { opacity:.6; }

.hh-header-article .page-hero { position:relative; background:var(--hh-white); color:var(--hh-ink); border-bottom:1px solid var(--hh-line); }
.hh-header-article .page-hero::after { display:none; }
.hh-header-article .page-hero__inner { position:static; padding-block:clamp(2.75rem,5vw,4.5rem); }
.hh-header-article .page-hero__inner > * { position:relative; z-index:1; max-width:min(36rem,52%) !important; margin-left:0 !important; margin-right:0 !important; }
.hh-header-article .page-hero h1 { color:var(--hh-green); font-size:clamp(2.2rem,4vw,3.4rem); }
.hh-header-article .page-hero__breadcrumb { margin-bottom:1.25rem; color:var(--hh-moss); }
.hh-header-article .page-hero__excerpt { margin-top:1.1rem; color:var(--hh-ink); font-size:1.18rem; line-height:1.6; }
.page-hero__meta { margin:1.25rem 0 0; color:var(--hh-muted); font-family:var(--wp--preset--font-family--sans); font-size:.88rem; }
.page-hero__meta a { color:var(--hh-green); font-weight:600; }
/* Photo fills the right half and fades into the white towards the text. */
.hh-header-article .page-hero__media { position:absolute !important; z-index:0 !important; inset:0 0 0 auto; width:55%; max-width:none !important; margin:0 !important;
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, rgba(0,0,0,.55) 30%, #000 65%); mask-image:linear-gradient(90deg, transparent 0%, rgba(0,0,0,.55) 30%, #000 65%); }
.page-hero__media img { display:block; width:100%; height:100%; object-fit:cover; }
.hh-header-article .page-shell { padding-top:1.5rem; }

/* Hero pages: let the photo show on the right */

@media (max-width:780px) {
  .hh-header-article .page-hero__inner { padding-block:1.75rem; }
  .hh-header-article .page-hero__inner > * { max-width:none !important; }
  /* Phones: the photo becomes a full-width band above the title, so pages stay recognisable. */
  .hh-header-article .page-hero__inner { display:flex; flex-direction:column; padding-top:0; }
  .hh-header-article .page-hero__media { position:relative !important; inset:auto; order:-1; width:100vw; height:auto; aspect-ratio:16 / 9; max-height:15rem;
    margin:0 0 1.5rem calc(50% - 50vw) !important; -webkit-mask-image:none; mask-image:none; }
  .hh-header-article .page-hero__excerpt { font-size:1.05rem; }
}

/* Lightbox (assets/js/lightbox.js) */
.hh-lightbox-link { cursor:zoom-in; }
.hh-lightbox { width:100vw; height:100vh; max-width:none; max-height:none; margin:0; padding:0; border:0; background:transparent; color:#fff; overflow:hidden; }
.hh-lightbox::backdrop { background:rgba(15,20,17,.92); }
.hh-lightbox__figure { display:flex; flex-direction:column; align-items:center; justify-content:center; height:100%; margin:0; padding:3.5rem 4.5rem 3rem; box-sizing:border-box; pointer-events:none; }
.hh-lightbox__image { max-width:100%; max-height:calc(100% - 3rem); object-fit:contain; border-radius:2px; box-shadow:0 20px 60px rgba(0,0,0,.5); pointer-events:auto; }
.hh-lightbox__caption { max-width:48rem; margin-top:1rem; text-align:center; font-size:.95rem; line-height:1.5; color:rgba(255,255,255,.85); }
.hh-lightbox button { position:absolute; display:flex; align-items:center; justify-content:center; width:3rem; height:3rem; border:0; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; font-size:2rem; line-height:1; cursor:pointer; }
.hh-lightbox button:hover, .hh-lightbox button:focus-visible { background:rgba(255,255,255,.25); outline:none; }
.hh-lightbox__close { top:1rem; right:1rem; }
.hh-lightbox__prev { left:1rem; top:50%; transform:translateY(-50%); }
.hh-lightbox__next { right:1rem; top:50%; transform:translateY(-50%); }
.hh-lightbox.is-single .hh-lightbox__prev, .hh-lightbox.is-single .hh-lightbox__next { display:none; }
.hh-lightbox__count { position:absolute; top:1.6rem; left:50%; transform:translateX(-50%); margin:0; font-size:.85rem; color:rgba(255,255,255,.7); }
@media (max-width:640px) { .hh-lightbox__figure { padding:4rem .75rem 2rem; } .hh-lightbox__prev, .hh-lightbox__next { top:auto; bottom:1rem; transform:none; } }
/* Article header without a suitable photo: full-width text under a gold rule. */
.hh-header-no-photo .page-hero__inner > * { max-width:52rem !important; }
.hh-header-no-photo .page-hero h1::after { content:""; display:block; width:4rem; height:3px; margin-top:1.1rem; background:var(--hh-gold); }

/* Book panel with cover image */
.hh-cta.has-image { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,140px); gap:1.75rem; align-items:center; }
.hh-cta.has-image:not(.hh-cta--compact) .hh-cta__media { grid-column:2; grid-row:1; }
.hh-cta__media { display:block; aspect-ratio:2 / 3; overflow:hidden; }
.hh-cta__media img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.hh-cta__media:hover img { transform:translateY(-3px) rotate(-1deg); }
.hh-cta--compact.has-image { grid-template-columns:minmax(0,1fr); gap:.5rem; }
.hh-cta--compact .hh-cta__media { width:50%; margin:0 auto; }
@media (max-width:640px) { .hh-cta.has-image { grid-template-columns:minmax(0,1fr) minmax(0,100px); gap:1rem; } }

/* Homepage "What brings you here?" situation cards */
.hh-pathways--situations .hh-pathway h3 { font-family:var(--wp--preset--font-family--serif); font-size:1.3rem; line-height:1.2; color:var(--hh-green); padding:1.1rem 1.1rem .35rem; }
.hh-pathways--situations .hh-pathway p { font-size:.95rem; padding:0 1.1rem 1.1rem; }
.hh-pathways--situations .hh-pathway .wp-block-buttons { padding:0 1.1rem 1.2rem; }

/* Homepage bands: alternate sections sit on a full-width white band. */
.hh-band-white { position:relative; background:var(--hh-white); box-shadow:0 0 0 100vmax var(--hh-white); clip-path:inset(0 -100vmax); }

/* Homepage client quotes */
.hh-client-quotes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; margin-top:2rem; }
.hh-client-quote { display:flex; flex-direction:column; margin:0; padding:1.75rem 1.6rem 1.5rem; background:var(--hh-white); border:1px solid var(--hh-line); border-left:0; border-top:3px solid var(--hh-gold); border-radius:4px; box-shadow:0 10px 28px rgba(31,39,34,.06); }
.hh-client-quote::before { content:"\201C"; display:block; height:2.2rem; color:var(--hh-gold); font-family:var(--wp--preset--font-family--serif); font-size:4rem; line-height:1; }
.hh-client-quote p { margin:0 0 1.25rem; font-family:var(--wp--preset--font-family--serif); font-size:1.32rem; font-weight:500; line-height:1.4; color:var(--hh-ink); }
.hh-client-quote cite { margin-top:auto; font-style:normal; font-size:.88rem; line-height:1.4; color:var(--hh-muted); }
.hh-client-quote cite strong { color:var(--hh-green); font-size:.95rem; }
.hh-clients__more { margin:1.5rem 0 0; text-align:center; font-weight:600; }
.hh-clients__more a { color:var(--hh-green); }
@media (max-width:900px) { .hh-client-quotes { grid-template-columns:minmax(0,1fr); } }
.hh-proof.hh-band-white { padding-top:clamp(3rem,7vw,5rem); }

/* Homepage sections: the alternating bands separate sections, so less padding is needed. */
.hh-section { padding-block:clamp(2.25rem,4.5vw,3.5rem); }
.hh-proof.hh-band-white { padding-top:clamp(2.25rem,4.5vw,3.5rem); }
.hh-section__header + * { margin-top:1.5rem; }

/* Footer (generated by scripts/migration/build-footer.php) */
.site-footer { padding:0; }
.site-footer > * { margin-block:0 !important; }
.site-footer__grid { display:grid; grid-template-columns:minmax(0,1.35fr) repeat(3,minmax(0,1fr)); gap:2.5rem; margin-inline:auto !important; }
.site-footer__grid > * { margin:0 !important; }
.site-footer__logo { display:inline-block; margin-bottom:1rem; }
.site-footer__logo img { display:block; width:220px; height:auto; filter:brightness(0) invert(1); }
.site-footer__brand p { margin:0 0 .9rem; font-size:.95rem; }
.site-footer__promise { padding-left:.85rem; border-left:2px solid var(--hh-gold); color:var(--hh-white) !important; }
.site-footer__social { display:flex; gap:1rem; margin-top:1.25rem !important; }
.site-footer__social a { padding:.4rem .8rem; border:1px solid rgba(255,255,255,.35); border-radius:999px; font-size:.85rem; font-weight:600; text-decoration:none; }
.site-footer__social a:hover, .site-footer__social a:focus-visible { background:rgba(255,255,255,.12); }
.site-footer__heading { color:var(--hh-gold) !important; font-size:.78rem !important; letter-spacing:.09em !important; }
.site-footer__links { list-style:none; margin:0; padding:0; font-family:var(--wp--preset--font-family--sans); }
.site-footer__links li { margin:0 0 .55rem; }
.site-footer__links a, .site-footer__contact a, .site-footer__bottom a { color:color-mix(in srgb, var(--hh-white) 88%, transparent); text-decoration:none; }
.site-footer__links a:hover, .site-footer__links a:focus-visible, .site-footer__contact a:hover, .site-footer__bottom a:hover { color:var(--hh-white); text-decoration:underline; text-underline-offset:3px; }
.site-footer__phones { display:grid; gap:.55rem; margin:0 0 1rem; font-family:var(--wp--preset--font-family--sans); }
.site-footer__phones div { display:flex; justify-content:space-between; gap:1rem; }
.site-footer__phones dt { color:color-mix(in srgb, var(--hh-white) 70%, transparent); font-size:.85rem; }
.site-footer__phones dd { margin:0; font-weight:600; white-space:nowrap; }
.site-footer__email, .site-footer__address { margin:0 0 .5rem !important; font-size:.9rem; }
.site-footer__contact .wp-block-buttons { margin-top:1.1rem; }
.site-footer__cta .wp-block-button__link { background:var(--hh-gold); border-color:var(--hh-gold); color:var(--hh-ink) !important; }
.site-footer__cta .wp-block-button__link:hover { background:#cbb06a; }
.site-footer__bottom { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.5rem 1.5rem; max-width:min(1160px, calc(100% - 2 * var(--hh-gutter))); margin-inline:auto !important; padding:1.25rem 0 1.5rem; border-top:1px solid rgba(255,255,255,.15); }
.site-footer__bottom p { margin:0; font-size:.85rem; color:color-mix(in srgb, var(--hh-white) 65%, transparent); }
.site-footer__legal { display:flex; gap:1.25rem; }
@media (max-width:980px) { .site-footer__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px) { .site-footer__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem 1.25rem; } .site-footer__brand, .site-footer__contact { grid-column:1 / -1; } .site-footer__links { font-size:.92rem; } .site-footer__bottom { flex-direction:column; } }
.site-footer__phones dt { font-weight:400; }

/* Contact page (scripts/migration/rewrite-contact-page.php) */
.hh-focused--contact-us { max-width:none; } /* full content width, aligned with the header and hero */
.hh-contact-routes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; margin:0 0 3rem; }
.hh-contact-card { display:flex; flex-direction:column; margin:0 !important; padding:1.6rem 1.5rem 1.5rem; background:#fff; border:1px solid var(--hh-line); border-top:3px solid var(--hh-gold); border-radius:6px; box-shadow:0 10px 28px rgba(31,39,34,.06); }
.hh-contact-card h3 { margin:0 0 .6rem; font-size:1.45rem; color:var(--hh-green); }
.hh-contact-card p { margin:0 0 1rem; font-size:.97rem; line-height:1.55; }
.hh-contact-card .wp-block-buttons { margin-top:auto; }
.hh-contact-card__alt { font-size:.9rem !important; }
.hh-contact-card__alt a { font-weight:600; color:var(--hh-moss); }
.hh-contact-section { margin:0 0 3rem; }
.hh-contact-section > h2, .hh-contact-more__col > h2 { margin:0 0 .6rem; font-size:1.8rem; color:var(--hh-green); }
.hh-contact-section > p { max-width:44rem; color:var(--hh-muted); }
.hh-offices { display:grid; grid-template-columns:1.4fr repeat(3,minmax(0,1fr)); gap:1rem; margin-top:1.25rem; }
.hh-office { margin:0 !important; padding:1.25rem 1.25rem 1rem; background:#fff; border:1px solid var(--hh-line); border-radius:6px; }
.hh-office h3 { margin:0 0 .6rem; font-family:var(--wp--preset--font-family--sans); font-size:.78rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--hh-gold); }
.hh-office p { margin:0 0 .35rem; }
.hh-office__phone a { color:var(--hh-green); font-size:1.15rem; font-weight:700; text-decoration:none; }
.hh-office__phone a:hover { text-decoration:underline; text-decoration-color:var(--hh-gold); text-underline-offset:3px; }
.hh-office__address { margin-top:.6rem !important; font-size:.92rem; line-height:1.5; color:var(--hh-ink); }
.hh-office__w3w { font-size:.85rem; }
.hh-office__w3w a { color:var(--hh-moss); }
.hh-contact-more { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2.5rem; padding-top:2rem; border-top:1px solid var(--hh-line); }
.hh-contact-more__col { margin:0 !important; }
.hh-contact-email { margin:0 0 .75rem; font-size:1.2rem; font-weight:700; }
.hh-contact-email a { color:var(--hh-green); }
.hh-contact-list { margin:0; padding-left:1.1rem; }
.hh-contact-list li { margin-bottom:.6rem; }
@media (max-width:900px) { .hh-contact-routes { grid-template-columns:minmax(0,1fr); } .hh-offices { grid-template-columns:repeat(2,minmax(0,1fr)); } .hh-contact-more { grid-template-columns:minmax(0,1fr); gap:1.5rem; } }
@media (max-width:520px) { .hh-offices { grid-template-columns:minmax(0,1fr); } }
.hh-offices { grid-template-columns:repeat(2,minmax(0,1fr)); }
.hh-office__list { display:grid; gap:.5rem; margin:0 0 .75rem; }
.hh-office__list div { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; padding-bottom:.5rem; border-bottom:1px solid var(--hh-line); }
.hh-office__list dt { font-weight:600; color:var(--hh-ink); }
.hh-office__list dd { margin:0; }
.hh-office__list a { color:var(--hh-green); font-size:1.1rem; font-weight:700; text-decoration:none; }
.hh-office__note { font-size:.88rem; color:var(--hh-muted); }
@media (max-width:520px) { .hh-offices { grid-template-columns:minmax(0,1fr); } }

/* Survey pricing page elements */
.hh-draft-note { margin:0 0 2rem; padding:1rem 1.25rem; background:#fff7dc; border:1px dashed var(--hh-gold); border-radius:6px; font-size:.92rem; }
.hh-draft-note p { margin:0; }
.hh-price-table table, .hh-compare-table table { width:100%; border-collapse:collapse; background:#fff; font-size:.97rem; }
.hh-price-table th, .hh-price-table td, .hh-compare-table th, .hh-compare-table td { padding:.75rem 1rem; border:0; border-bottom:1px solid var(--hh-line); text-align:left; vertical-align:top; }
.hh-price-table thead th, .hh-compare-table thead th { font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--hh-moss); border-bottom:2px solid var(--hh-gold); }
.hh-price-table td:last-child { font-weight:700; color:var(--hh-green); white-space:nowrap; }
.hh-price-table figcaption { margin-top:.6rem; font-size:.88rem; color:var(--hh-muted); text-align:left; }
.hh-compare-table td:first-child { font-weight:600; width:22%; }
.hh-compare-table td:last-child, .hh-compare-table thead th:last-child { background:#f6f8f2; color:var(--hh-green); }
.hh-compare-table td:last-child { font-weight:600; }
.hh-included { list-style:none; padding:0; }
.hh-included li { position:relative; margin:0 0 .7rem; padding-left:1.8rem; }
.hh-included li::before { content:"✓"; position:absolute; left:0; top:0; color:var(--hh-gold); font-weight:700; }
.hh-pricing-cta { margin:2.5rem 0 0; padding:1.75rem; background:var(--hh-paper); border-left:4px solid var(--hh-gold); border-radius:0 6px 6px 0; }
.hh-pricing-cta h3 { margin:0 0 .5rem; color:var(--hh-green); }
@media (max-width:640px) { .hh-compare-table { overflow-x:auto; } .hh-compare-table table { min-width:34rem; } .hh-price-table td:last-child { white-space:normal; } }

/* Learning Centre landing hero: same white header with a photo fading in from the right. */
.knowledge-base-landing .knowledge-hero { position:relative; min-height:0; padding:clamp(2.75rem,5vw,4.5rem) 0; background:#fff; color:var(--hh-ink); border-bottom:1px solid var(--hh-line); overflow:hidden; }
.knowledge-base-landing .knowledge-hero::after { content:""; position:absolute; inset:0 0 0 auto; width:55%; background:url("/wp-content/uploads/2026/10/timber-frame-1.jpg") center / cover no-repeat;
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, rgba(0,0,0,.55) 30%, #000 65%); mask-image:linear-gradient(90deg, transparent 0%, rgba(0,0,0,.55) 30%, #000 65%); }
.knowledge-base-landing .knowledge-hero__content { position:relative; z-index:1; }
.knowledge-base-landing .knowledge-hero__content > * { max-width:min(36rem,52%) !important; }
.knowledge-base-landing .knowledge-hero h1 { color:var(--hh-green); font-size:clamp(2.2rem,4vw,3.2rem); line-height:1.08; }
.knowledge-base-landing .knowledge-hero p:not(.hh-kicker) { color:var(--hh-ink); font-size:1.15rem; line-height:1.6; }
.knowledge-base-landing .knowledge-hero .hh-kicker { color:var(--hh-gold); }
@media (max-width:780px) { .knowledge-base-landing .knowledge-hero::after { display:none; } .knowledge-base-landing .knowledge-hero__content > * { max-width:none !important; } }
.hh-section-nav__group { margin:.9rem 1.25rem .25rem; padding-top:.75rem; border-top:1px solid var(--hh-line); font-size:.7rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--hh-gold); }
.hh-section-nav__list--1 > .hh-section-nav__group:first-child { margin-top:.25rem; padding-top:0; border-top:0; }

/* Which survey do I need? / Surveys hub */
.hh-guide-intro { font-size:1.12rem; line-height:1.6; max-width:46rem; }
.hh-chooser { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; margin:1.75rem 0 2.5rem; }
.hh-choice { padding:1.5rem 1.5rem 1.25rem; background:#fff; border:1px solid var(--hh-line); border-top:4px solid var(--hh-gold); border-radius:6px; box-shadow:0 10px 28px rgba(31,39,34,.06); }
.hh-choice__step { margin:0 0 .2rem; font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--hh-gold); }
.hh-choice h2 { margin:0 0 .35rem; font-size:1.75rem; color:var(--hh-green); }
.hh-choice__lead { margin:0 0 .9rem; color:var(--hh-muted); font-size:.95rem; }
.hh-choice ul { list-style:none; margin:0; padding:0; }
.hh-choice li { margin:0 0 .5rem; }
.hh-choice li a { position:relative; display:block; padding:.75rem 2.25rem .75rem .9rem; background:var(--hh-paper); border:1px solid transparent; border-radius:6px; color:var(--hh-ink); text-decoration:none; transition:border-color .15s, background .15s; }
.hh-choice li a::after { content:"→"; position:absolute; right:.9rem; top:50%; transform:translateY(-50%); color:var(--hh-gold); font-weight:700; }
.hh-choice li a:hover, .hh-choice li a:focus-visible { background:#fff; border-color:var(--hh-gold); }
.hh-choice__situation { display:block; font-size:.9rem; color:var(--hh-muted); }
.hh-choice__survey { display:block; margin-top:.1rem; font-weight:700; color:var(--hh-green); }
.hh-choice__note { display:block; margin-top:.15rem; font-size:.82rem; color:var(--hh-moss); }
.hh-choice__aside { margin:.9rem 0 0; font-size:.88rem; color:var(--hh-muted); }
.hh-choice__aside a { font-weight:600; color:var(--hh-moss); }
.hh-advice { list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:1rem 0 2.5rem; padding:0; }
.hh-advice a { display:block; height:100%; box-sizing:border-box; padding:1.1rem 1.2rem; background:#fff; border:1px solid var(--hh-line); border-radius:6px; color:var(--hh-ink); text-decoration:none; }
.hh-advice a:hover, .hh-advice a:focus-visible { border-color:var(--hh-gold); }
.hh-advice strong { display:block; margin-bottom:.3rem; font-family:var(--wp--preset--font-family--serif); font-size:1.25rem; color:var(--hh-green); }
.hh-advice span { font-size:.92rem; color:var(--hh-muted); line-height:1.45; }
.hh-survey-table td:last-child { white-space:nowrap; }
.hh-survey-table td a { font-weight:600; color:var(--hh-green); }
.hh-guide-feature { display:block; margin:1.5rem 0 2rem; padding:1.4rem 1.6rem; background:var(--hh-green); border-radius:6px; color:#fff; text-decoration:none; }
.hh-guide-feature:hover, .hh-guide-feature:focus-visible { background:#1f3524; }
.hh-guide-feature__kicker { display:block; font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--hh-gold); }
.hh-guide-feature__title { display:block; margin:.2rem 0 .3rem; font-family:var(--wp--preset--font-family--serif); font-size:1.8rem; font-weight:700; }
.hh-guide-feature__title::after { content:" →"; color:var(--hh-gold); }
.hh-guide-feature__text { display:block; color:rgba(255,255,255,.85); }
@media (max-width:900px) { .hh-chooser, .hh-advice { grid-template-columns:minmax(0,1fr); } }

/* Section cards ("In this section"): larger headings, white cards lifted off the page,
   and a worded link in place of the lone arrow. */
.hh-pathway-cards ul { grid-template-columns:repeat(auto-fill,minmax(15.5rem,1fr)); gap:1.25rem; }
.hh-pathway-cards a { gap:.55rem; padding:0 0 1.25rem; background:#fff; border:1px solid var(--hh-line); border-radius:6px; box-shadow:0 1px 2px rgba(31,39,34,.06), 0 6px 18px -10px rgba(31,39,34,.18); transition:border-color .15s, box-shadow .2s, transform .2s; }
.hh-pathway-cards a:hover, .hh-pathway-cards a:focus-visible { border-color:rgba(31,39,34,.22); box-shadow:0 2px 4px rgba(31,39,34,.06), 0 14px 30px -14px rgba(31,39,34,.3); transform:translateY(-2px); }
.hh-pathway-cards a > :not(.hh-pathway-media) { margin-inline:1.3rem; }
.hh-pathway-media { margin-bottom:.65rem; }
.hh-pathway-cards .hh-pathway-label { font-family:var(--wp--preset--font-family--serif); font-size:clamp(1.4rem, 1.2rem + .5vw, 1.6rem); font-weight:700; line-height:1.12; color:var(--hh-green); text-wrap:balance; }
.hh-pathway-cards .hh-pathway-summary { font-size:.94rem; line-height:1.5; }
.hh-pathway-cards a::after { content:none; }
.hh-pathway-more { margin-top:auto; padding-top:.55rem; font-family:var(--wp--preset--font-family--sans); font-size:.84rem; font-weight:700; letter-spacing:.03em; color:var(--hh-moss); }
.hh-pathway-more span { display:inline-block; margin-left:.2rem; transition:transform .2s; }
.hh-pathway-cards a:hover .hh-pathway-more, .hh-pathway-cards a:focus-visible .hh-pathway-more { color:var(--hh-green); }
.hh-pathway-cards a:hover .hh-pathway-more span, .hh-pathway-cards a:focus-visible .hh-pathway-more span { transform:translateX(4px); }
@media (prefers-reduced-motion: reduce) { .hh-pathway-cards a, .hh-pathway-more span { transition:none; } .hh-pathway-cards a:hover { transform:none; } }

/* Homepage "What brings you here?": flex cards so the button sits at the bottom whether or
   not the card lists direct survey links. */
.hh-pathways--situations .hh-pathway { display:flex; flex-direction:column; }
.hh-pathways--situations .hh-pathway > .wp-block-image:first-child { flex:none; height:170px; }
.hh-pathways--situations .hh-pathway .wp-block-buttons { margin-top:auto !important; padding-top:.2rem; } /* beats .hh-pathway > * { margin-block-start:0 !important } */
.hh-pathway-quick { list-style:none; margin:-.35rem 0 0 !important; padding:0 1.1rem 1rem; font-family:var(--wp--preset--font-family--sans); font-size:.9rem; line-height:1.35; }
.hh-pathway-quick li { margin:0; padding:.32rem 0; border-top:1px solid var(--hh-line); }
.hh-pathway-quick li:last-child { border-bottom:1px solid var(--hh-line); }
.hh-pathway-quick a { display:flex; justify-content:space-between; gap:.5rem; color:var(--hh-green); font-weight:600; text-decoration:none; }
.hh-pathway-quick a::after { content:"›"; color:var(--hh-gold); font-weight:700; }
.hh-pathway-quick a:hover, .hh-pathway-quick a:focus-visible { text-decoration:underline; text-underline-offset:3px; }

/* ---------- Search ---------- */
.search-page { padding:0 !important; }
.hh-search-hero { background:var(--hh-white); border-bottom:1px solid var(--hh-line); padding:clamp(2rem,5vw,3.5rem) var(--hh-gutter) clamp(1.6rem,4vw,2.4rem); }
.hh-search-hero__inner { max-width:1160px; margin:0 auto; }
.hh-search-hero__kicker { margin:0 0 .6rem; font-size:.78rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--hh-gold); }
.hh-search-hero__title { margin:0 0 1.4rem; font-size:clamp(2rem,4.5vw,3.1rem); line-height:1.08; color:var(--hh-ink); }
.hh-search-hero__title span { color:var(--hh-green); }
.hh-search-hero__count { margin:.85rem 0 0; color:var(--hh-muted); font-size:.92rem; }
.hh-search-form { position:relative; display:flex; max-width:760px; background:var(--hh-white); border:1px solid rgba(31,39,34,.22); border-radius:8px; box-shadow:0 1px 2px rgba(31,39,34,.05), 0 10px 28px -16px rgba(31,39,34,.35); transition:border-color .15s, box-shadow .15s; }
.hh-search-form:focus-within { border-color:var(--hh-moss); box-shadow:0 0 0 3px rgba(86,107,66,.18), 0 10px 28px -16px rgba(31,39,34,.35); }
.hh-search-form__icon { position:absolute; left:1.05rem; top:50%; transform:translateY(-50%); color:var(--hh-moss); pointer-events:none; }
.hh-search-form input[type=search] { flex:1; min-width:0; height:3.6rem; padding:0 1rem 0 3.2rem; border:0; border-radius:8px 0 0 8px; background:transparent; color:var(--hh-ink); font-size:1.08rem; outline:none; -webkit-appearance:none; appearance:none; }
.hh-search-form input[type=search]::placeholder { color:color-mix(in srgb, var(--hh-ink) 45%, transparent); }
.hh-search-form button { flex:none; margin:.4rem; padding:0 1.5rem; border:0; border-radius:5px; background:var(--hh-green); color:var(--hh-white); font-size:.95rem; font-weight:700; cursor:pointer; transition:background .15s; }
.hh-search-form button:hover, .hh-search-form button:focus-visible { background:var(--hh-moss); }

.hh-search-layout { box-sizing:border-box; display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:clamp(2rem,4vw,3.5rem); align-items:start; max-width:calc(1160px + 2 * var(--hh-gutter)); margin:0 auto; padding:clamp(1.6rem,4vw,2.6rem) var(--hh-gutter) clamp(3rem,6vw,4.5rem); }
.hh-search-filters ul { display:flex; flex-wrap:wrap; gap:.5rem; list-style:none; margin:0 0 1.5rem; padding:0; }
.hh-search-filters a { display:inline-flex; align-items:center; gap:.45rem; padding:.45rem .85rem; border:1px solid var(--hh-line); border-radius:999px; background:var(--hh-white); color:var(--hh-ink); font-size:.88rem; font-weight:600; text-decoration:none; transition:border-color .15s, background .15s; }
.hh-search-filters a span { color:var(--hh-muted); font-size:.78rem; font-weight:700; }
.hh-search-filters a:hover { border-color:var(--hh-moss); }
.hh-search-filters a[aria-current] { background:var(--hh-green); border-color:var(--hh-green); color:var(--hh-white); }
.hh-search-filters a[aria-current] span { color:rgba(255,255,255,.75); }

.hh-search-results { display:grid; gap:.85rem; list-style:none; margin:0; padding:0; }
.hh-search-result { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 168px; gap:1.4rem; align-items:start; padding:1.3rem 1.4rem; background:var(--hh-white); border:1px solid var(--hh-line); border-radius:6px; transition:border-color .15s, box-shadow .2s; }
.hh-search-result--no-image { grid-template-columns:minmax(0,1fr); }
.hh-search-result:hover { border-color:rgba(31,39,34,.24); box-shadow:0 12px 28px -16px rgba(31,39,34,.3); }
.hh-search-result__crumb { display:flex; flex-wrap:wrap; align-items:center; gap:.35rem; margin:0 0 .45rem; color:var(--hh-moss); font-size:.74rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.hh-search-result__crumb-sep { color:var(--hh-gold); }
.hh-search-result__badge { margin-right:.3rem; padding:.12rem .45rem; border-radius:3px; background:var(--hh-green); color:var(--hh-white); font-size:.66rem; letter-spacing:.07em; }
.hh-search-result__title { margin:0 0 .5rem; font-size:clamp(1.3rem,1.15rem + .5vw,1.55rem); line-height:1.15; }
.hh-search-result__title a { color:var(--hh-green); text-decoration:none; }
.hh-search-result__title a::after { content:""; position:absolute; inset:0; border-radius:6px; } /* whole card is clickable */
.hh-search-result__title a:hover { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.hh-search-result__title a:focus-visible { outline:none; text-decoration:underline; }
.hh-search-result:has(.hh-search-result__title a:focus-visible) { outline:2px solid var(--hh-moss); outline-offset:2px; }
.hh-search-result__snippet { margin:0; color:var(--hh-muted); font-size:.95rem; line-height:1.55; }
.hh-search-result mark { padding:0 .12em; border-radius:2px; background:rgba(183,154,80,.28); color:inherit; }
.hh-search-result__title mark { padding:0; background:none; color:inherit; box-shadow:inset 0 -.32em 0 rgba(183,154,80,.32); }
.hh-search-result__media { display:block; aspect-ratio:3 / 2; overflow:hidden; border-radius:4px; background:var(--hh-paper); }
.hh-search-result__media img { display:block; width:100%; height:100%; object-fit:cover; }

.hh-search-pagination { margin-top:2.2rem; padding-top:1.4rem; border-top:1px solid var(--hh-line); }
.hh-search-pagination ul { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.35rem; list-style:none; margin:0; padding:0; border:0; background:none; }
.hh-search-pagination li { margin:0; }
.hh-search-pagination li:has(.prev) { margin-right:auto; }
.hh-search-pagination li:has(.next) { margin-left:auto; }
/* Keep the numbers centred on the first and last pages, where Previous or Next is missing. */
.hh-search-pagination li:first-child:not(:has(.prev)) { margin-left:auto; }
.hh-search-pagination li:last-child:not(:has(.next)) { margin-right:auto; }
.hh-search-pagination li > .page-numbers { display:inline-flex; align-items:center; justify-content:center; min-width:2.5rem; height:2.5rem; padding:0 .75rem; box-sizing:border-box; border:1px solid transparent; border-radius:5px; color:var(--hh-ink); font-size:.92rem; font-weight:600; text-decoration:none; }
.hh-search-pagination li > a.page-numbers:hover { border-color:var(--hh-line); background:var(--hh-white); color:var(--hh-green); }
.hh-search-pagination li > .current { background:var(--hh-green); color:var(--hh-white); }
.hh-search-pagination li > .dots { min-width:1.5rem; padding:0; color:var(--hh-muted); }
.hh-search-pagination li > .prev, .hh-search-pagination li > .next { border-color:var(--hh-line); background:var(--hh-white); color:var(--hh-green); padding:0 1rem; }
.hh-search-pagination li > .prev:hover, .hh-search-pagination li > .next:hover { border-color:var(--hh-moss); }
@media (max-width: 600px) {
    .hh-search-pagination li:not(:has(.prev, .next, .current)) { display:none; }
    .hh-search-pagination li > .current::after { content:attr(data-of); font-weight:500; opacity:.8; }
}

.hh-search-empty { padding:clamp(1.5rem,4vw,2.4rem); background:var(--hh-white); border:1px solid var(--hh-line); border-radius:6px; }
.hh-search-empty h2 { margin:0 0 .6rem; font-size:1.7rem; color:var(--hh-green); }
.hh-search-empty p { color:var(--hh-muted); }
.hh-search-empty__links { display:flex; flex-wrap:wrap; gap:.5rem; list-style:none; margin:1.2rem 0 1.4rem; padding:0; }
.hh-search-empty__links a { display:inline-block; padding:.55rem 1rem; border:1px solid var(--hh-line); border-radius:999px; color:var(--hh-green); font-weight:600; text-decoration:none; }
.hh-search-empty__links a:hover { border-color:var(--hh-moss); background:var(--hh-paper); }

.hh-search-aside { position:sticky; top:7.5rem; display:grid; gap:1.25rem; }
.hh-search-aside > * { margin:0 !important; }
.hh-search-shop { padding:1.2rem 1.3rem; background:var(--hh-white); border:1px solid var(--hh-line); border-radius:6px; }
.hh-search-shop h2 { margin:0 0 .8rem; font-family:var(--wp--preset--font-family--sans); font-size:.78rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--hh-gold); }
.hh-search-shop ul { display:grid; gap:.7rem; list-style:none; margin:0; padding:0; }
.hh-search-shop a { display:flex; align-items:center; gap:.8rem; color:var(--hh-ink); text-decoration:none; }
.hh-search-shop img { flex:none; width:64px; height:64px; object-fit:cover; border-radius:4px; background:var(--hh-paper); }
.hh-search-shop strong { display:block; color:var(--hh-green); font-family:var(--wp--preset--font-family--serif); font-size:1.08rem; line-height:1.2; }
.hh-search-shop em { display:block; margin-top:.15rem; color:var(--hh-muted); font-size:.85rem; font-style:normal; font-weight:600; }
.hh-search-shop a:hover strong { text-decoration:underline; text-underline-offset:3px; }

@media (max-width: 900px) {
    .hh-search-layout { grid-template-columns:minmax(0,1fr); }
    .hh-search-aside { position:static; }
}
@media (max-width: 600px) {
    .hh-search-result { grid-template-columns:minmax(0,1fr) 88px; gap:1rem; padding:1.05rem 1rem; }
    .hh-search-result__media { aspect-ratio:1; }
    .hh-search-result__snippet { font-size:.9rem; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:4; overflow:hidden; }
    .hh-search-result__crumb-item:not(:last-of-type), .hh-search-result__crumb-sep { display:none; }
    .hh-search-form input[type=search] { height:3.2rem; font-size:1rem; padding-left:2.8rem; }
    .hh-search-form__icon { left:.85rem; }
    .hh-search-form button { padding:0 1rem; }
    .hh-search-filters ul { flex-wrap:nowrap; overflow-x:auto; margin-inline:-1rem; padding:0 1rem .3rem; scrollbar-width:none; }
    .hh-search-filters li { flex:none; }
}

/* Homepage closing panel: a light card on the page background, clearly separate from the dark footer. */
.hh-next-step--card { display:block; box-sizing:content-box; max-width:1160px; margin:clamp(3rem,6vw,4.5rem) auto clamp(4rem,8vw,6rem) !important; padding:0 var(--hh-gutter) !important; background:none; border-radius:0; color:inherit; }
.hh-next-step__card { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:clamp(1.5rem,4vw,3.5rem); align-items:center; padding:clamp(1.6rem,4vw,3rem); background:var(--hh-white); border:1px solid var(--hh-line); border-top:4px solid var(--hh-gold); border-radius:8px; box-shadow:0 18px 44px -24px rgba(31,39,34,.28); }
.hh-next-step__card > * { margin:0 !important; }
.hh-next-step__message > * { margin-block:0; }
.hh-next-step--card .hh-kicker { margin-bottom:.7rem; color:var(--hh-gold); }
.hh-next-step--card h2 { margin:0 0 .9rem; color:var(--hh-green); font-size:clamp(1.9rem,3.4vw,2.6rem); line-height:1.08; }
.hh-next-step--card .hh-next-step__message p:not(.hh-kicker) { color:var(--hh-muted); }
.hh-next-step__options { display:grid; gap:.7rem; list-style:none; margin:0; padding:0; }
.hh-next-step__options li { margin:0; }
.hh-next-step__option { position:relative; display:block; padding:.95rem 3rem .95rem 1.15rem; border:1px solid var(--hh-line); border-radius:6px; background:var(--hh-white); color:var(--hh-ink); text-decoration:none; transition:border-color .15s, box-shadow .2s, transform .2s; }
.hh-next-step__option::after { content:"→"; position:absolute; right:1.1rem; top:50%; transform:translateY(-50%); color:var(--hh-gold); font-weight:700; transition:transform .2s; }
.hh-next-step__option strong { display:block; color:var(--hh-green); font-family:var(--wp--preset--font-family--serif); font-size:1.28rem; line-height:1.2; }
.hh-next-step__option span { display:block; margin-top:.2rem; color:var(--hh-muted); font-size:.9rem; line-height:1.45; }
.hh-next-step__option:hover, .hh-next-step__option:focus-visible { border-color:var(--hh-moss); box-shadow:0 10px 24px -14px rgba(31,39,34,.35); }
.hh-next-step__option:hover::after, .hh-next-step__option:focus-visible::after { transform:translate(4px,-50%); }
.hh-next-step__option--primary { background:var(--hh-green); border-color:var(--hh-green); }
.hh-next-step__option--primary strong { color:var(--hh-white); }
.hh-next-step__option--primary span { color:rgba(255,255,255,.78); }
.hh-next-step__option--primary:hover, .hh-next-step__option--primary:focus-visible { background:#2f4c35; border-color:#2f4c35; }
@media (max-width: 860px) {
    .hh-next-step__card { grid-template-columns:minmax(0,1fr); }
}
@media (prefers-reduced-motion: reduce) { .hh-next-step__option, .hh-next-step__option::after { transition:none; } }

/* Homepage hero route panel (inc/home-hero.php). The blur sits on a ::before layer so the
   text itself isn't composited through the backdrop filter, which made it look soft. */
.hh-hero-routes { position:relative; isolation:isolate; box-sizing:border-box; width:100%; max-width:560px; margin:1.75rem 0 0 !important; padding:1.35rem 1.5rem 1.1rem; border-top:2px solid var(--hh-gold); border-radius:3px; color:#fff; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
.hh-hero-routes::before { content:""; position:absolute; inset:0; z-index:-1; border-radius:inherit; background:rgba(12,23,16,.58); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); }
.hh-hero .hh-hero-routes__title { margin:0 0 .6rem !important; color:#e9d7a3; font-size:.76rem !important; font-weight:700; letter-spacing:.11em; line-height:1.3 !important; text-transform:uppercase; }
.hh-hero-routes ul { list-style:none; margin:0; padding:0; }
.hh-hero-routes li { margin:0; border-top:1px solid rgba(255,255,255,.16); }
.hh-hero-routes li:first-child { border-top:0; }
.hh-hero-routes li a { position:relative; display:block; margin-inline:-.6rem; padding:.85rem 2.4rem .85rem .6rem; border-radius:3px; color:#fff; text-decoration:none; transition:background .15s; }
.hh-hero-routes li a::after { content:"→"; position:absolute; right:.7rem; top:50%; transform:translateY(-50%); color:var(--hh-gold); font-size:1.05rem; font-weight:700; transition:transform .2s; }
.hh-hero-routes li a:hover, .hh-hero-routes li a:focus-visible { background:rgba(255,255,255,.08); }
.hh-hero-routes li a:hover::after, .hh-hero-routes li a:focus-visible::after { transform:translate(4px,-50%); }
.hh-hero-routes__label { display:block; font-family:var(--wp--preset--font-family--serif); font-size:1.42rem; font-weight:600; letter-spacing:.005em; line-height:1.15; }
.hh-hero-routes__note { display:block; margin-top:.25rem; color:rgba(255,255,255,.84); font-size:.9rem; line-height:1.4; }
.hh-hero .hh-hero-routes__more { margin:.4rem 0 0 !important; padding-top:.85rem; border-top:1px solid rgba(255,255,255,.16); color:rgba(255,255,255,.84); font-size:.88rem !important; line-height:1.5 !important; }
.hh-hero-routes__more a { color:#fff; font-weight:600; text-decoration:underline; text-decoration-color:var(--hh-gold); text-decoration-thickness:1px; text-underline-offset:3px; white-space:nowrap; }
@media (min-width: 1024px) {
    .hh-hero--routes.wp-block-cover { grid-template-columns:100%; } /* the cover centres an auto-width column; make it full width */
    .hh-hero--routes.wp-block-cover .wp-block-cover__inner-container { width:min(1160px, calc(100% - 2 * var(--hh-gutter))); display:grid; grid-template-columns:minmax(0,1fr) 380px; column-gap:clamp(2rem,5vw,4.5rem); align-items:center; }
    .hh-hero--routes.wp-block-cover .wp-block-cover__inner-container > :not(.hh-hero-routes) { grid-column:1; justify-self:start; max-width:580px; }
    .hh-hero--routes.wp-block-cover .wp-block-cover__inner-container > .hh-hero-routes { grid-column:2; grid-row:1 / span 6; align-self:center; justify-self:end; width:100%; max-width:none; margin:0 !important; }
}
@media (max-width: 640px) {
    /* On phones the routes replace the intro paragraph and the "Find the right advice" button, so they sit near the top. */
    .hh-hero--routes .wp-block-cover__inner-container > p:not(.hh-kicker), .hh-hero--routes .hh-actions .is-style-outline { display:none; }
    .hh-hero--routes .hh-hero-routes { margin-top:1.25rem !important; padding:1.1rem 1.1rem .9rem; }
    .hh-hero--routes .hh-hero-routes__label { font-size:1.28rem; }
    .hh-hero--routes .hh-hero-routes li a { padding-block:.7rem; }
}
@media (prefers-reduced-motion: reduce) { .hh-hero-routes li a::after { transition:none; } }

/* Homepage gateway into the Learning Centre (heritage/learning-gateway). */
.hh-lc-gateway { margin:0 !important; padding:clamp(3.5rem,7vw,5.5rem) 0; background:var(--hh-paper); border-block:1px solid var(--hh-line); }
.hh-lc-gateway__inner { box-sizing:border-box; display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(2rem,5vw,4.5rem); align-items:center; width:min(1160px, calc(100% - 2 * var(--hh-gutter))); margin:0 auto; }
.hh-lc-gateway .hh-kicker { margin:0 0 .8rem; color:var(--hh-gold); letter-spacing:.09em; }
.hh-lc-gateway h2 { margin:0 0 1rem; color:var(--hh-green); font-size:clamp(2.1rem,4vw,3rem); line-height:1.05; }
.hh-lc-gateway__lead { margin:0 0 1.6rem; color:var(--hh-muted); font-size:1.08rem; line-height:1.65; }
.hh-search-form--gateway { max-width:none; }
.hh-search-form--gateway input[type=search] { height:3.3rem; font-size:1rem; }
.hh-lc-gateway__popular { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin:1rem 0 1.6rem; }
.hh-lc-gateway__popular > span { color:var(--hh-muted); font-size:.84rem; font-weight:600; }
.hh-lc-gateway__popular ul { display:contents; list-style:none; margin:0; padding:0; }
.hh-lc-gateway__popular li { margin:0; }
.hh-lc-gateway__popular a { display:inline-block; padding:.32rem .75rem; border:1px solid var(--hh-line); border-radius:999px; background:var(--hh-white); color:var(--hh-green); font-size:.84rem; font-weight:600; text-decoration:none; transition:border-color .15s; }
.hh-lc-gateway__popular a:hover, .hh-lc-gateway__popular a:focus-visible { border-color:var(--hh-moss); }
.hh-lc-gateway__all { display:inline-flex; align-items:center; gap:.4rem; padding:.85rem 1.35rem; border-radius:5px; background:var(--hh-green); color:var(--hh-white); font-weight:700; text-decoration:none; transition:background .15s; }
.hh-lc-gateway__all:hover, .hh-lc-gateway__all:focus-visible { background:#2f4c35; color:var(--hh-white); }
.hh-lc-gateway__all span { transition:transform .2s; }
.hh-lc-gateway__all:hover span { transform:translateX(3px); }

.hh-lc-gateway__topics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.hh-lc-tile { display:flex; flex-direction:column; overflow:hidden; background:var(--hh-white); border:1px solid var(--hh-line); border-radius:6px; transition:box-shadow .2s; }
.hh-lc-tile:hover { box-shadow:0 14px 30px -18px rgba(31,39,34,.35); }
.hh-lc-tile__media { display:block; aspect-ratio:16 / 7; overflow:hidden; background:var(--hh-paper); }
.hh-lc-tile__media img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.hh-lc-tile:hover .hh-lc-tile__media img { transform:scale(1.03); }
.hh-lc-tile__body { padding:1rem 1.15rem 1.05rem; }
.hh-lc-tile h3 { margin:0 0 .55rem; color:var(--hh-green); font-size:1.3rem; line-height:1.15; }
.hh-lc-tile ul { list-style:none; margin:0; padding:0; }
.hh-lc-tile li { margin:0; border-top:1px solid var(--hh-line); }
.hh-lc-tile li a { display:flex; justify-content:space-between; gap:.5rem; padding:.36rem 0; color:var(--hh-ink); font-size:.9rem; line-height:1.35; text-decoration:none; }
.hh-lc-tile li a::after { content:"›"; color:var(--hh-gold); font-weight:700; }
.hh-lc-tile li a:hover, .hh-lc-tile li a:focus-visible { color:var(--hh-green); text-decoration:underline; text-underline-offset:3px; }

@media (max-width: 960px) {
    .hh-lc-gateway__inner { grid-template-columns:minmax(0,1fr); }
}
@media (max-width: 700px) {
    /* Phones: swipe sideways through the themes instead of stacking four tall tiles. */
    .hh-lc-gateway__topics { display:flex; gap:.75rem; overflow-x:auto; scroll-snap-type:x mandatory; margin-inline:calc(-1 * var(--hh-gutter)); padding:0 var(--hh-gutter) .5rem; scroll-padding-inline:var(--hh-gutter); scrollbar-width:none; }
    .hh-lc-gateway__topics::-webkit-scrollbar { display:none; }
    .hh-lc-tile { flex:0 0 78%; scroll-snap-align:start; }
    .hh-lc-tile__media { aspect-ratio:16 / 8; }
}
@media (prefers-reduced-motion: reduce) { .hh-lc-tile__media img, .hh-lc-gateway__all span { transition:none; } }

/* Homepage client quotes: a full-width dark band over a darkened restoration photo, with
   semi-transparent cards in the style of the hero route panel. */
.hh-clients { position:relative; isolation:isolate; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; column-gap:2rem; padding-block:clamp(3rem,6vw,4.5rem) !important; color:#fff; }
.hh-clients::before { content:""; position:absolute; z-index:-1; top:0; bottom:0; left:50%; width:100vw; transform:translateX(-50%);
    background:linear-gradient(180deg, rgba(14,26,18,.9), rgba(14,26,18,.8)), url("/wp-content/uploads/2026/10/a60a9461.jpg") center 40% / cover no-repeat, #1b2b1f; }
.hh-clients > .hh-section__header { grid-column:1; margin:0 !important; }
.hh-clients .hh-kicker { margin:0 0 .6rem; color:#e9d7a3; letter-spacing:.1em; }
.hh-clients h2 { margin:0; color:#fff; font-size:clamp(1.9rem,3.6vw,2.6rem); line-height:1.08; }
.hh-clients > .hh-clients__more { grid-column:2; grid-row:1; margin:0 0 .35rem !important; text-align:right; }
.hh-clients__more a { color:#fff; font-size:.95rem; text-decoration:underline; text-decoration-color:var(--hh-gold); text-decoration-thickness:1px; text-underline-offset:4px; }
.hh-clients__more a:hover { color:#e9d7a3; }
.hh-clients > .hh-client-quotes { grid-column:1 / -1; gap:1rem; margin-top:clamp(1.5rem,3vw,2rem) !important; }
.hh-clients .hh-client-quote { position:relative; isolation:isolate; padding:1.35rem 1.4rem 1.25rem; background:none; border:0; border-top:2px solid var(--hh-gold); border-radius:3px; box-shadow:none; color:#fff; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
.hh-clients .hh-client-quote::after { content:""; position:absolute; inset:0; z-index:-1; border-radius:inherit; background:rgba(255,255,255,.07); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
.hh-clients .hh-client-quote::before { height:1.6rem; font-size:3rem; color:var(--hh-gold); }
.hh-clients .hh-client-quote p { margin:0 0 1rem; color:#fff; font-size:1.18rem; font-weight:500; line-height:1.45; }
.hh-clients .hh-client-quote cite { padding-top:.85rem; border-top:1px solid rgba(255,255,255,.16); color:rgba(255,255,255,.78); font-size:.85rem; }
.hh-clients .hh-client-quote cite strong { color:#fff; font-size:.92rem; }
@media (max-width: 700px) {
    .hh-clients { grid-template-columns:minmax(0,1fr); }
    .hh-clients > .hh-clients__more { grid-column:1; grid-row:3; margin:1.25rem 0 0 !important; text-align:left; }
    /* Swipe through the quotes rather than stacking them. */
    .hh-clients > .hh-client-quotes { display:flex; gap:.75rem; overflow-x:auto; scroll-snap-type:x mandatory; margin-inline:calc(-1 * var(--hh-gutter)); padding:0 var(--hh-gutter) .25rem; scroll-padding-inline:var(--hh-gutter); scrollbar-width:none; }
    .hh-clients > .hh-client-quotes::-webkit-scrollbar { display:none; }
    .hh-clients .hh-client-quote { flex:0 0 82%; scroll-snap-align:start; }
}
.hh-home { overflow-x:clip; } /* full-bleed section backgrounds use 100vw, which includes the scrollbar */
/* The dark quotes band sits flush against its neighbours (no block gap or border between). */
.hh-home .hh-clients, .hh-home .hh-clients + * { margin-block-start:0 !important; }
.hh-home .hh-clients { margin-block-end:0 !important; }
.hh-lc-gateway:has(+ .hh-clients) { border-bottom:0; }

/* "What we do" photo: landscape shot of Pete on site; keep him in frame. */
.hh-home-intro .hh-profile img { aspect-ratio:4 / 3; object-position:22% 40%; border-radius:4px; }

/* "Need advice?" as a full-width white strip running straight into the footer; content stays in the 1160px column. */
.hh-next-step--card { position:relative; margin:0 auto !important; padding:clamp(3rem,6vw,4.5rem) 0 !important; background:var(--hh-white); box-shadow:0 0 0 100vmax var(--hh-white); clip-path:inset(0 -100vmax); }
.hh-next-step--card .hh-next-step__card { padding:0; background:none; border:0; border-radius:0; box-shadow:none; }
.hh-home .hh-next-step--card { margin-block-start:0 !important; }
.hh-home:has(.hh-next-step--card) + footer, .hh-home:has(.hh-next-step--card) + * .site-footer { margin-top:0 !important; }

/* Learning Centre gateway: no rule along the top. */
.hh-lc-gateway { border-top:0; }

/* Testimonials page (scripts/migration/restructure-testimonials.php): two groups of quote cards
   in a two-column wall that packs quotes of different lengths. */
.hh-testimonial-section { margin:2.5rem 0 0; }
.hh-testimonial-section + .hh-testimonial-section { margin-top:3.5rem; padding-top:2.5rem; border-top:1px solid var(--hh-line); }
.hh-testimonial-section .hh-kicker { margin:0 0 .5rem; color:var(--hh-gold); letter-spacing:.09em; }
.hh-testimonial-section h2 { margin:0 0 .5rem; }
.hh-testimonial-section__intro { margin:0; color:var(--hh-muted); }
.hh-testimonial-wall { columns:2 20rem; column-gap:1.1rem; margin-top:1.5rem !important; }
.hh-testimonial-wall > .hh-testimonial { break-inside:avoid; display:block; margin:0 0 1.1rem !important; padding:1.35rem 1.45rem 1.15rem; background:var(--hh-paper); border:0; border-top:2px solid var(--hh-gold); border-radius:3px; }
.hh-testimonial::before { content:"\201C"; display:block; height:1.5rem; color:var(--hh-gold); font-family:var(--wp--preset--font-family--serif); font-size:2.8rem; line-height:1; }
.hh-testimonial p { margin:0 0 .75rem !important; color:var(--hh-ink); font-family:var(--wp--preset--font-family--serif); font-size:1.12rem; line-height:1.5; }
.hh-testimonial cite { display:block; margin-top:1rem; padding-top:.8rem; border-top:1px solid var(--hh-line); color:var(--hh-muted); font-size:.85rem; font-style:normal; line-height:1.4; }
.hh-testimonial cite strong { display:block; color:var(--hh-green); font-size:.95rem; }
/* Testimonial text in the sans body font: the serif is too thin to read comfortably at paragraph size. */
.hh-testimonial p { font-family:var(--wp--preset--font-family--sans); font-size:1rem; line-height:1.65; color:var(--hh-ink); }
.hh-testimonial cite { color:color-mix(in srgb, var(--hh-ink) 72%, transparent); }

/* Long article pages: "On this page" list and key-facts strip (e.g. Listed building surveys). */
.hh-keyfacts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; margin:1.75rem 0 !important; padding:0; list-style:none; background:var(--hh-line); border:1px solid var(--hh-line); border-radius:4px; overflow:hidden; }
.hh-keyfacts li { margin:0; padding:1rem 1.1rem; background:var(--hh-paper); }
.hh-keyfacts strong { display:block; color:var(--hh-green); font-family:var(--wp--preset--font-family--serif); font-size:1.3rem; line-height:1.15; }
.hh-keyfacts span { display:block; margin-top:.25rem; color:var(--hh-muted); font-size:.86rem; line-height:1.4; }
.hh-toc { margin:1.75rem 0 2.5rem; padding:1.1rem 1.3rem; border:1px solid var(--hh-line); border-radius:4px; }
.hh-toc__title { margin:0 0 .6rem !important; color:var(--hh-gold); font-size:.76rem !important; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.hh-toc ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.15rem 1.5rem; margin:0; padding-left:1.2rem; }
.hh-toc li { margin:0; padding:.15rem 0; color:var(--hh-gold); font-size:.95rem; }
.hh-toc a { color:var(--hh-green); font-weight:600; text-decoration:none; }
.hh-toc a:hover, .hh-toc a:focus-visible { text-decoration:underline; text-underline-offset:3px; }
.article-content [id] { scroll-margin-top:10.5rem; } /* clear the sticky header when jumping to a section */
@media (max-width: 700px) {
    .hh-keyfacts { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .hh-toc ol { grid-template-columns:minmax(0,1fr); }
}
.article-content .hh-keyfacts { padding:0 !important; } /* article lists get left padding; not this strip */

/* Homepage "What brings you here?": standard site buttons; the second one black instead of outlined. */
.hh-more-buttons { gap:.75rem; margin-top:1.75rem !important; }
.hh-more-buttons .is-style-outline .wp-block-button__link { background:var(--hh-ink); border-color:var(--hh-ink); color:var(--hh-white); }
.hh-more-buttons .is-style-outline .wp-block-button__link:hover, .hh-more-buttons .is-style-outline .wp-block-button__link:focus-visible { background:#3a443d; border-color:#3a443d; color:var(--hh-white); }
/* Case history titles are plain links: undo the old ".hh-proof-grid a" whole-card styling. */
.hh-proof-grid .hh-proof-card h3 a { display:inline; padding:0; background:none; border:0; border-radius:0; box-shadow:none; overflow:visible; color:inherit; text-decoration:none; transform:none; transition:none; }
.hh-proof-grid .hh-proof-card h3 a:hover, .hh-proof-grid .hh-proof-card h3 a:focus-visible { box-shadow:none; transform:none; text-decoration:underline; text-underline-offset:3px; }

/* ---------- Homepage v2 (scripts/migration/restructure-homepage-v2.php) ---------- */
.hh-home .wp-block-post-content > * { margin-block-start:0 !important; } /* sections are separated by their own bands */

/* Key-facts strip under the hero */
.hh-trust { background:var(--hh-white); border-bottom:1px solid var(--hh-line); }
.hh-trust__list { box-sizing:border-box; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); width:min(1160px, calc(100% - 2 * var(--hh-gutter))); margin:0 auto; padding:0; list-style:none; }
.hh-trust__list li { margin:0; padding:1.05rem 1.1rem; border-left:1px solid var(--hh-line); }
.hh-trust__list li:first-child { padding-left:0; border-left:0; }
.hh-trust__list strong { display:block; color:var(--hh-green); font-family:var(--wp--preset--font-family--serif); font-size:1.2rem; line-height:1.15; }
.hh-trust__list span { display:block; margin-top:.15rem; color:var(--hh-muted); font-size:.84rem; line-height:1.35; }

/* Our surveys + How it works */
.hh-surveys { padding:clamp(3rem,6vw,4.5rem) 0; }
.hh-surveys__inner { width:min(1160px, calc(100% - 2 * var(--hh-gutter))); margin:0 auto; }
.hh-surveys__header { max-width:46rem; margin-bottom:1.75rem; }
.hh-surveys__header .hh-kicker { margin:0 0 .6rem; color:var(--hh-gold); letter-spacing:.09em; }
.hh-surveys__header h2 { margin:0 0 .75rem; font-size:clamp(1.9rem,3.6vw,2.6rem); line-height:1.08; }
.hh-surveys__header p { margin:0; color:var(--hh-muted); font-size:1.05rem; line-height:1.6; }
.hh-surveys__header a { color:var(--hh-green); font-weight:600; }
.hh-surveys__groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem 2rem; }
.hh-surveys__group h3 { margin:0 0 .7rem; color:var(--hh-moss); font-family:var(--wp--preset--font-family--sans); font-size:.78rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.hh-surveys__group ul { display:grid; gap:.6rem; margin:0; padding:0; list-style:none; }
.hh-surveys__group li { margin:0; }
.hh-survey-card { position:relative; display:flex; align-items:center; gap:1rem; padding:.6rem 2.6rem .6rem .6rem; background:var(--hh-white); border:1px solid var(--hh-line); border-radius:6px; color:var(--hh-ink); text-decoration:none; transition:border-color .15s, box-shadow .2s; }
.hh-survey-card::after { content:"→"; position:absolute; right:1rem; top:50%; transform:translateY(-50%); color:var(--hh-gold); font-weight:700; transition:transform .2s; }
.hh-survey-card:hover, .hh-survey-card:focus-visible { border-color:var(--hh-moss); box-shadow:0 10px 24px -14px rgba(31,39,34,.35); }
.hh-survey-card:hover::after, .hh-survey-card:focus-visible::after { transform:translate(4px,-50%); }
.hh-survey-card__media { flex:none; width:96px; aspect-ratio:4 / 3; overflow:hidden; border-radius:4px; background:var(--hh-paper); }
.hh-survey-card__media img { display:block; width:100%; height:100%; object-fit:cover; }
.hh-survey-card__body { min-width:0; }
.hh-survey-card strong { display:block; color:var(--hh-green); font-family:var(--wp--preset--font-family--serif); font-size:1.22rem; line-height:1.15; }
.hh-survey-card__body > span { display:block; margin-top:.15rem; color:var(--hh-muted); font-size:.88rem; line-height:1.4; }
.hh-survey-card em { display:inline-block; margin-top:.35rem; padding:.1rem .5rem; border-radius:3px; background:#f6efdc; color:#6b5418; font-size:.78rem; font-style:normal; font-weight:700; }
.hh-how { margin-top:2.25rem; padding-top:1.75rem; border-top:1px solid var(--hh-line); }
.hh-how__title { margin:0 0 1rem; color:var(--hh-moss); font-family:var(--wp--preset--font-family--sans); font-size:.78rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.hh-how ol { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.25rem; margin:0; padding:0; list-style:none; }
.hh-how li { margin:0; }
.hh-how__num { display:inline-flex; align-items:center; justify-content:center; width:2rem; height:2rem; margin-bottom:.6rem; border-radius:50%; background:var(--hh-green); color:var(--hh-white); font-size:.9rem; font-weight:700; }
.hh-how strong { display:block; color:var(--hh-ink); font-size:1rem; line-height:1.3; }
.hh-how li > span:last-child { display:block; margin-top:.2rem; color:var(--hh-muted); font-size:.9rem; line-height:1.45; }
.hh-surveys .hh-more-buttons { justify-content:flex-start; margin-top:2rem !important; }

/* Background sequence: surveys (cream) → quotes (dark) → case histories (white) → why us (cream) → Learning Centre (white) → book (cream) → next step (white) */
.hh-why { padding-block:clamp(3rem,6vw,4.5rem) !important; }
.hh-why .hh-included { margin:1.25rem 0 1.5rem; }
.hh-lc-gateway { background:var(--hh-white); border:0; }
.hh-lc-gateway .hh-lc-tile { border-color:var(--hh-line); }

@media (max-width: 900px) {
    /* One swipeable row of facts rather than a tall grid. */
    .hh-trust__list { display:flex; width:auto; overflow-x:auto; scroll-snap-type:x proximity; padding:0 var(--hh-gutter); scrollbar-width:none; }
    .hh-trust__list::-webkit-scrollbar { display:none; }
    .hh-trust__list li { flex:0 0 auto; max-width:12rem; padding:.85rem 1rem; scroll-snap-align:start; }
    .hh-trust__list li:first-child { padding-left:0; }
    .hh-surveys__groups { grid-template-columns:minmax(0,1fr); }
    .hh-how ol { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
    /* Phones: swipe through the case histories instead of stacking them. */
    .hh-restoration .hh-proof-grid { display:flex; gap:.75rem; overflow-x:auto; scroll-snap-type:x mandatory; margin-inline:calc(-1 * var(--hh-gutter)); padding:0 var(--hh-gutter) .5rem; scroll-padding-inline:var(--hh-gutter); scrollbar-width:none; }
    .hh-restoration .hh-proof-grid::-webkit-scrollbar { display:none; }
    .hh-restoration .hh-proof-card { flex:0 0 80%; scroll-snap-align:start; }
    .hh-survey-card__media { width:76px; }
}
@media (max-width: 480px) {
    .hh-how ol { grid-template-columns:minmax(0,1fr); gap:.9rem; }
    .hh-how li { display:grid; grid-template-columns:2rem 1fr; column-gap:.75rem; }
    .hh-how__num { grid-row:1 / 3; margin:0; }
}
@media (prefers-reduced-motion: reduce) { .hh-survey-card, .hh-survey-card::after { transition:none; } }

/* Side-by-side comparison (How our surveys compare with a RICS survey). Rows become cards on phones. */
.hh-vs { margin:1.5rem 0 2.5rem; border:1px solid var(--hh-line); border-radius:6px; overflow:hidden; background:var(--hh-white); }
.hh-vs__head, .hh-vs__row { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.1fr) minmax(0,1.3fr); }
.hh-vs__head > span { padding:.9rem 1.1rem; font-size:.76rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.hh-vs__head > span:nth-child(2) { color:var(--hh-muted); }
.hh-vs__head > span:nth-child(3) { background:var(--hh-green); color:var(--hh-white); }
.hh-vs__row { border-top:1px solid var(--hh-line); }
.hh-vs__row > span { padding:.95rem 1.1rem; font-size:.95rem; line-height:1.5; }
.hh-vs__feature { color:var(--hh-green); font-family:var(--wp--preset--font-family--serif); font-size:1.15rem !important; font-weight:700; line-height:1.25 !important; }
.hh-vs__rics { position:relative; padding-left:2.4rem !important; color:var(--hh-muted); }
.hh-vs__rics::before { content:"–"; position:absolute; left:1.1rem; top:.95rem; color:#a0a5a0; font-weight:700; }
.hh-vs__ours { position:relative; padding-left:2.5rem !important; background:#f3f6ee; color:var(--hh-ink); font-weight:500; }
.hh-vs__ours::before { content:"✓"; position:absolute; left:1.1rem; top:.95rem; color:var(--hh-moss); font-weight:700; }
.hh-vs__label { display:none; }
.hh-questions li { font-weight:500; }
.hh-client-quotes--two { grid-template-columns:repeat(2,minmax(0,1fr)); margin:1.25rem 0 2.5rem; }
.article-content .hh-client-quote { background:var(--hh-paper); box-shadow:none; }
@media (max-width: 760px) {
    .hh-vs { border:0; background:none; overflow:visible; }
    .hh-vs__head { display:none; }
    .hh-vs__row { display:block; margin-bottom:.9rem; border:1px solid var(--hh-line); border-radius:6px; overflow:hidden; background:var(--hh-white); }
    .hh-vs__row > span { display:block; }
    .hh-vs__feature { padding-bottom:.4rem !important; }
    .hh-vs__label { display:block; margin-bottom:.15rem; font-size:.72rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
    .hh-vs__rics .hh-vs__label { color:#8b8f8b; }
    .hh-vs__ours .hh-vs__label { color:var(--hh-moss); }
    .hh-client-quotes--two { grid-template-columns:minmax(0,1fr); }
}
/* Homepage surveys section: link to the RICS comparison. */
.hh-rics-teaser { position:relative; display:inline-block; margin-top:1.1rem; padding:.75rem 3rem .8rem 1.1rem; border-left:3px solid var(--hh-gold); border-radius:0 6px 6px 0; background:var(--hh-white); color:var(--hh-ink); text-decoration:none; box-shadow:0 1px 2px rgba(31,39,34,.06); transition:box-shadow .2s; }
.hh-rics-teaser::after { content:"→"; position:absolute; right:1.1rem; top:50%; transform:translateY(-50%); color:var(--hh-gold); font-weight:700; transition:transform .2s; }
.hh-rics-teaser:hover, .hh-rics-teaser:focus-visible { box-shadow:0 10px 24px -14px rgba(31,39,34,.35); }
.hh-rics-teaser:hover::after { transform:translate(4px,-50%); }
.hh-rics-teaser__kicker { display:block; color:var(--hh-moss); font-size:.74rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.hh-rics-teaser strong { display:block; margin-top:.1rem; color:var(--hh-green); font-family:var(--wp--preset--font-family--serif); font-size:1.3rem; line-height:1.2; }

/* Request a survey: full width, form left, reassurance right. */
.hh-focused--request-a-survey { max-width:none; }
.hh-quote-layout { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); gap:clamp(1.5rem,4vw,3rem); align-items:start; margin-top:1.5rem !important; }
.hh-quote-layout > * { margin:0 !important; }
.hh-quote-layout .hh-quote-form { max-width:none; }
.hh-quote-layout__aside { position:sticky; top:8rem; display:grid; gap:1.25rem; }
.hh-quote-layout__aside > * { margin:0 !important; }
.hh-quote-aside-card { padding:1.35rem 1.4rem; background:var(--hh-paper); border-top:3px solid var(--hh-gold); border-radius:3px; }
.hh-quote-aside-card h3 { margin:0 0 .75rem; font-size:1.35rem; }
.hh-quote-aside-card ol { margin:0 0 1rem; padding-left:1.2rem; }
.hh-quote-aside-card li { margin-bottom:.5rem; font-size:.95rem; line-height:1.5; }
.hh-quote-aside-card p { margin:0; font-size:.95rem; }
.hh-quote-aside-card a[href^="tel:"] { color:var(--hh-green); font-weight:700; white-space:nowrap; }
.hh-quote-aside-facts { margin:0; font-size:.95rem; }
.hh-quote-layout__aside .hh-client-quote { padding:1.25rem 1.3rem 1.1rem; background:var(--hh-paper); box-shadow:none; }
.hh-quote-layout__aside .hh-client-quote p { font-family:var(--wp--preset--font-family--sans); font-size:.98rem; line-height:1.6; }

/* Form details */
.hh-quote-form__choice { display:flex; flex-wrap:wrap; gap:.5rem; margin:0 0 1rem; }
.hh-quote-form__choice-label { flex-basis:100%; margin:0 0 .1rem !important; font-weight:600; font-size:.95rem; }
.hh-quote-form__choice label { margin:0; }
.hh-quote-form__choice input { position:absolute; opacity:0; width:1px; height:1px; }
.hh-quote-form__choice span { display:inline-block; padding:.55rem 1rem; border:1px solid #b9b3a5; border-radius:999px; background:#fff; font-size:.95rem; font-weight:600; cursor:pointer; transition:background .15s, border-color .15s, color .15s; }
.hh-quote-form__choice input:checked + span { background:var(--hh-green); border-color:var(--hh-green); color:var(--hh-white); }
.hh-quote-form__choice input:focus-visible + span { outline:2px solid var(--hh-moss); outline-offset:2px; }
.hh-quote-form__row--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.hh-quote-form__optional { color:var(--hh-muted); font-weight:400; }
.hh-quote-form__submit { width:100%; justify-content:center; min-height:3.4rem; font-size:1.05rem; }
@media (max-width: 900px) {
    .hh-quote-layout { grid-template-columns:minmax(0,1fr); }
    .hh-quote-layout__aside { position:static; }
}
@media (max-width: 560px) { .hh-quote-form__row--two { grid-template-columns:minmax(0,1fr); } }

/* Homepage "From our shop" row, continuing the cream Warm Dry Home section above it. */
.hh-home-shop { padding:0 0 clamp(3rem,6vw,4.5rem); }
.hh-home-shop__inner { width:min(1160px, calc(100% - 2 * var(--hh-gutter))); margin:0 auto; padding-top:clamp(1.75rem,4vw,2.5rem); border-top:1px solid var(--hh-line); }
.hh-home-shop__header { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:.75rem 2rem; margin-bottom:1.25rem; }
.hh-home-shop__header .hh-kicker { margin:0 0 .5rem; color:var(--hh-gold); letter-spacing:.09em; }
.hh-home-shop__header h2 { margin:0; font-size:clamp(1.6rem,3vw,2.1rem); line-height:1.1; }
.hh-home-shop__all { color:var(--hh-green); font-weight:700; text-decoration:none; white-space:nowrap; }
.hh-home-shop__all:hover { text-decoration:underline; text-underline-offset:3px; }
.hh-home-shop__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin:0; padding:0; list-style:none; }
.hh-home-shop__grid li { margin:0; }
.hh-shop-card { display:flex; flex-direction:column; height:100%; padding:.75rem .75rem 1rem; background:var(--hh-white); border:1px solid var(--hh-line); border-radius:6px; color:var(--hh-ink); text-decoration:none; transition:border-color .15s, box-shadow .2s; }
.hh-shop-card:hover, .hh-shop-card:focus-visible { border-color:var(--hh-moss); box-shadow:0 10px 24px -14px rgba(31,39,34,.35); }
.hh-shop-card__media { display:block; aspect-ratio:1; margin-bottom:.75rem; overflow:hidden; border-radius:4px; background:var(--hh-paper); }
.hh-shop-card__media img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.hh-shop-card:hover .hh-shop-card__media img { transform:scale(1.03); }
.hh-shop-card strong { display:block; padding:0 .15rem; color:var(--hh-green); font-family:var(--wp--preset--font-family--serif); font-size:1.15rem; line-height:1.2; }
.hh-shop-card__more { display:block; margin-top:auto; padding:.6rem .15rem 0; color:var(--hh-moss); font-size:.9rem; font-weight:700; }
.hh-shop-card:hover .hh-shop-card__more { color:var(--hh-green); }
.hh-home .hh-feature { padding-bottom:clamp(1.75rem,4vw,2.5rem) !important; }
@media (max-width: 900px) { .hh-home-shop__grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (prefers-reduced-motion: reduce) { .hh-shop-card, .hh-shop-card__media img { transition:none; } }
.hh-table-more { margin:-.5rem 0 2rem; } .hh-table-more a { color:var(--hh-green); font-weight:700; }

/* ---------- Videos page (inc/videos.php) ---------- */
.hh-video-library { margin-top:1.5rem; }
.hh-video-thumb { position:relative; display:block; width:100%; aspect-ratio:16 / 9; padding:0; overflow:hidden; border:0; border-radius:6px; background:#1b2b1f; cursor:pointer; }
.hh-video-thumb img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .3s ease, opacity .2s; }
.hh-video-thumb:hover img, .hh-video-thumb:focus-visible img { transform:scale(1.03); opacity:.92; }
.hh-video-thumb__play { position:absolute; left:50%; top:50%; width:60px; height:60px; transform:translate(-50%,-50%); border-radius:50%; background:rgba(16,31,21,.78); box-shadow:0 6px 20px rgba(0,0,0,.35); transition:background .15s, transform .2s; }
.hh-video-thumb__play::after { content:""; position:absolute; left:24px; top:19px; border-left:17px solid #fff; border-top:11px solid transparent; border-bottom:11px solid transparent; }
.hh-video-thumb:hover .hh-video-thumb__play, .hh-video-thumb:focus-visible .hh-video-thumb__play { background:var(--hh-gold); transform:translate(-50%,-50%) scale(1.06); }
.hh-video-thumb:focus-visible { outline:3px solid var(--hh-moss); outline-offset:3px; }

.hh-video-featured { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:clamp(1.25rem,3vw,2.25rem); align-items:center; margin:0 0 3rem; }
.hh-video-featured .hh-video-thumb__play { width:78px; height:78px; }
.hh-video-featured .hh-video-thumb__play::after { left:31px; top:24px; border-left-width:22px; border-top-width:15px; border-bottom-width:15px; }
.hh-video-featured__text .hh-kicker { margin:0 0 .5rem; color:var(--hh-gold); letter-spacing:.09em; }
.hh-video-featured__text h2 { margin:0 0 .5rem; font-size:clamp(1.6rem,2.8vw,2.1rem); line-height:1.12; }
.hh-video-featured__meta { margin:0 0 .9rem !important; color:var(--hh-muted); font-size:.88rem; font-weight:600; }
.hh-video-featured__text p:not(.hh-kicker):not(.hh-video-featured__meta) { color:var(--hh-muted); font-size:.98rem; line-height:1.6; }
.hh-video-featured__actions { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem 1.25rem; margin-top:1.1rem; }
.hh-video-subscribe { background:#b3261e !important; border-color:#b3261e !important; color:#fff !important; }
.hh-video-subscribe:hover, .hh-video-subscribe:focus-visible { background:#8f1d17 !important; border-color:#8f1d17 !important; }
.hh-video-link { color:var(--hh-green); font-weight:700; text-decoration:none; white-space:nowrap; }
.hh-video-link:hover { text-decoration:underline; text-underline-offset:3px; }

.hh-video-section { margin:0 0 3rem; }
.hh-video-section__head { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:.5rem 1.5rem; margin-bottom:1.1rem; padding-bottom:.75rem; border-bottom:1px solid var(--hh-line); }
.hh-video-section__head h2 { margin:0; font-size:clamp(1.4rem,2.4vw,1.75rem); }
.hh-video-section__head p { margin:.3rem 0 0; color:var(--hh-muted); font-size:.95rem; }
.hh-video-grid, .hh-video-row, .hh-video-archive ul { margin:0; padding:0; list-style:none; }
.hh-video-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.5rem 1rem; }
.hh-video-row { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(14rem,calc((100% - 3rem) / 4)); gap:1rem; overflow-x:auto; padding-bottom:.6rem; scroll-snap-type:x proximity; scrollbar-width:thin; }
.hh-video-row > li { scroll-snap-align:start; }
.hh-video-card { margin:0; }
.hh-video-card__title { margin:.6rem 0 .2rem; color:var(--hh-ink); font-family:var(--wp--preset--font-family--sans); font-size:.95rem; font-weight:700; line-height:1.35; }
.hh-video-card__meta { margin:0; color:var(--hh-muted); font-size:.82rem; }

.hh-video-archive ul { display:grid; gap:1.5rem; }
.hh-video-archive__item { display:grid; grid-template-columns:minmax(0,18rem) minmax(0,1fr); gap:1.25rem; align-items:start; margin:0; }
.hh-video-archive__item h3 { margin:0 0 .4rem; font-size:1.25rem; line-height:1.2; }
.hh-video-archive__item p { margin:0; color:var(--hh-ink); font-size:.97rem; line-height:1.6; }

.hh-video-dialog { width:min(1100px, 94vw); max-width:none; padding:0; border:0; background:#000; overflow:visible; }
.hh-video-dialog::backdrop { background:rgba(10,16,12,.85); }
.hh-video-dialog__frame { aspect-ratio:16 / 9; }
.hh-video-dialog__frame iframe { display:block; width:100%; height:100%; border:0; }
.hh-video-dialog__close { position:absolute; top:-44px; right:-4px; width:40px; height:40px; border:0; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; font-size:28px; line-height:1; cursor:pointer; }
.hh-video-dialog__close:hover, .hh-video-dialog__close:focus-visible { background:rgba(255,255,255,.25); }

@media (max-width: 960px) { .hh-video-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .hh-video-row { grid-auto-columns:minmax(13rem,45%); } }
@media (max-width: 700px) {
    .hh-video-featured { grid-template-columns:minmax(0,1fr); }
    .hh-video-archive__item { grid-template-columns:minmax(0,1fr); }
    .hh-video-row { grid-auto-columns:78%; }
}
@media (prefers-reduced-motion: reduce) { .hh-video-thumb img, .hh-video-thumb__play { transition:none; } }
/* Videos page: article heading and list styles shouldn't apply inside the gallery. */
.article-content .hh-video-grid, .article-content .hh-video-row, .article-content .hh-video-archive ul { padding:0; margin:0; }
.article-content .hh-video-card { margin:0; }
.article-content h3.hh-video-card__title { margin:.6rem 0 .2rem; font-family:var(--wp--preset--font-family--sans); font-size:.95rem; font-weight:700; line-height:1.35; letter-spacing:0; }
.article-content .hh-video-archive__item h3 { margin:0 0 .4rem; font-size:1.3rem; }
.article-content .hh-video-section__head h2 { margin:0; }

/* Homepage "Why Heritage House": Pete's latest video in place of the photo. */
.hh-why-video { margin:0; }
.hh-why-video .hh-video-thumb { border-radius:6px; box-shadow:var(--hh-shadow); }
.hh-why-video .hh-video-thumb__play { width:74px; height:74px; }
.hh-why-video .hh-video-thumb__play::after { left:29px; top:23px; border-left-width:21px; border-top-width:14px; border-bottom-width:14px; }
.hh-why-video figcaption { display:block; margin-top:.9rem; }
.hh-why-video__kicker { display:block; color:var(--hh-gold); font-size:.74rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.hh-why-video strong { display:block; margin:.2rem 0 .35rem; color:var(--hh-green); font-family:var(--wp--preset--font-family--serif); font-size:1.25rem; line-height:1.2; }
.hh-why-video a { color:var(--hh-green); font-size:.92rem; font-weight:700; text-decoration:none; }
.hh-why-video a:hover { text-decoration:underline; text-underline-offset:3px; }
.hh-proof-card img.wp-image-1048 { object-position:50% 12%; } /* tall photo: keep the gable roof in the crop */

.hh-restored-video { margin-block: 1.5rem; }
.hh-restored-video iframe { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; }
.wp-block-columns > .wp-block-column:only-child { flex-basis:100% !important; max-width:100% !important; } /* a text column whose photo moved to the header fills the row */
.wp-block-columns:has(> .wp-block-column:only-child) { grid-template-columns:minmax(0,1fr) !important; } /* legacy text+photo grids whose photo moved to the header */
.wp-block-columns > .wp-block-column:only-child > * { max-width:none !important; margin-left:0 !important; margin-right:0 !important; } /* line up with the paragraphs around it */

/* Captioned photo grids inside long articles: steady columns, readable captions. */
.article-content .hh-photo-grid { display:grid !important; gap:1.25rem 1rem; align-items:start; margin:1.75rem 0 2rem; padding:0; background:none; }
.article-content .hh-photo-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.article-content .hh-photo-grid--3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.article-content .hh-photo-grid > .wp-block-column { margin:0; min-width:0; }
.article-content .hh-photo-grid .wp-block-image { margin:0; }
.article-content .hh-photo-grid .wp-block-image img { display:block; width:100%; height:auto; aspect-ratio:4 / 3; object-fit:cover; border-radius:4px; }
.article-content .hh-photo-grid figcaption { margin-top:.6rem; font-size:.86rem; line-height:1.5; color:var(--hh-muted); }
@media (max-width: 900px) { .article-content .hh-photo-grid--3 { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 560px) { .article-content .hh-photo-grid--2, .article-content .hh-photo-grid--3 { grid-template-columns:minmax(0,1fr); } }

/* Long link lists run in two columns. */
.article-content ul.hh-link-columns { columns:2; column-gap:2rem; }
.article-content ul.hh-link-columns li { break-inside:avoid; }
@media (max-width: 640px) { .article-content ul.hh-link-columns { columns:1; } }

/* Mobile call / quote bar (inc/tracking.php). Phones only, where the header hides the number. */
.hh-mobile-cta { display:none; }
@media (max-width: 900px) {
    .hh-mobile-cta { position:fixed; z-index:90; left:0; right:0; bottom:0; display:grid; grid-template-columns:1fr 1fr; gap:.5rem; padding:.55rem var(--hh-gutter, 1rem) calc(.55rem + env(safe-area-inset-bottom)); background:rgba(255,255,255,.97); border-top:1px solid var(--hh-line); box-shadow:0 -6px 18px rgba(23,38,30,.08); }
    .hh-mobile-cta a { display:flex; align-items:center; justify-content:center; gap:.45rem; min-height:46px; padding:.5rem .75rem; border-radius:4px; font-family:var(--wp--preset--font-family--sans); font-size:.95rem; font-weight:700; line-height:1.2; text-align:center; text-decoration:none; }
    .hh-mobile-cta__call { color:var(--hh-green); border:1.5px solid var(--hh-green); background:#fff; }
    .hh-mobile-cta__quote { color:#fff; background:var(--hh-green); border:1.5px solid var(--hh-green); }
    .hh-mobile-cta a:focus-visible { outline:3px solid var(--hh-gold); outline-offset:2px; }
    body:has(.hh-mobile-cta) { padding-bottom:calc(66px + env(safe-area-inset-bottom)); }
}
@media print { .hh-mobile-cta { display:none !important; } }

/* Google reviews (inc/reviews.php) */
.hh-stars { position:relative; display:inline-block; width:5.6em; height:1em; font-size:1rem; line-height:1; vertical-align:-.12em; background-repeat:repeat-x; background-position:0 50%; background-size:1.12em 1em; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23d9d4c3' d='M12 2l2.9 6.6 7.1.6-5.4 4.7 1.6 7L12 17.2 5.8 20.9l1.6-7L2 9.2l7.1-.6z'/%3E%3C/svg%3E"); }
.hh-stars__fill { position:absolute; inset:0 auto 0 0; overflow:hidden; background-repeat:repeat-x; background-position:0 50%; background-size:1.12em 1em; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23e2a925' d='M12 2l2.9 6.6 7.1.6-5.4 4.7 1.6 7L12 17.2 5.8 20.9l1.6-7L2 9.2l7.1-.6z'/%3E%3C/svg%3E"); }
.hh-review-summary { display:flex; flex-wrap:wrap; align-items:center; gap:.35rem .6rem; margin:.9rem 0 0 !important; font-family:var(--wp--preset--font-family--sans); font-size:.95rem; line-height:1.3; color:var(--hh-ink); }
.hh-review-summary strong { font-size:1.1rem; color:var(--hh-green); }
.hh-review-summary span:not(.hh-stars):not(.hh-stars__fill) { color:var(--hh-muted); }
.hh-review-summary a { color:var(--hh-green); font-weight:600; text-underline-offset:3px; }
.hh-review-summary--large { font-size:1.05rem; }
.hh-review-summary--large .hh-stars { font-size:1.25rem; }
.hh-review-summary--large strong { font-size:1.45rem; }
.hh-review-summary--dark, .hh-review-summary--dark strong, .hh-review-summary--dark a { color:#fff; }
.hh-review-summary--dark span:not(.hh-stars):not(.hh-stars__fill) { color:rgba(255,255,255,.8); }
.hh-review-summary--dark .hh-google-mark { background:#fff; border-radius:50%; padding:2px; box-sizing:content-box; }
.hh-review .hh-stars { display:block; margin:0 0 .6rem; }
.hh-review.hh-testimonial::before, .hh-review.hh-client-quote::before { display:none; }
.hh-review__source { display:flex; align-items:center; gap:.35rem; margin-top:.45rem; font-size:.8rem; font-weight:600; }
.hh-review__source .hh-google-mark { width:14px; height:14px; }
.hh-google-reviews__more { margin:1.25rem 0 0 !important; }
.hh-clients .hh-review__source .hh-google-mark { background:#fff; border-radius:50%; padding:1px; box-sizing:content-box; }

/* Footer Google rating, under the social links (mu-plugins/heritage-network.php). */
.site-footer__reviews { margin:.9rem 0 0 !important; }
.site-footer__reviews a { display:inline-flex; flex-wrap:wrap; align-items:center; gap:.45rem; color:#fff; font-size:.88rem; text-decoration:none; }
.site-footer__reviews .hh-google-mark { flex:0 0 auto; padding:2px; background:#fff; border-radius:50%; box-sizing:content-box; }
.site-footer__reviews .hh-stars { font-size:.95rem; }
.site-footer__reviews span:not(.hh-stars):not(.hh-stars__fill) { color:rgba(255,255,255,.78); text-decoration:underline; text-decoration-color:rgba(255,255,255,.35); text-underline-offset:3px; }
.site-footer__reviews a:hover span:not(.hh-stars):not(.hh-stars__fill), .site-footer__reviews a:focus-visible span:not(.hh-stars):not(.hh-stars__fill) { color:#fff; text-decoration-color:#fff; }

/* Mid-page quote panel on service pages (same look as the pricing page panel). */
.hh-book-panel { margin:2rem 0 2.5rem; padding:1.75rem; background:var(--hh-paper); border-left:4px solid var(--hh-gold); border-radius:0 6px 6px 0; }
.hh-book-panel h3 { margin:0 0 .5rem; color:var(--hh-green); }
.hh-book-panel .wp-block-buttons { margin-top:1rem; }

/* Chooser and advice cards built from ordinary blocks (editable in place). */
.hh-choice > * { margin-block:0; }
.hh-choice > .hh-choice__step { margin:0 0 .2rem; }
.hh-choice > h2 { margin:0 0 .35rem; }
.hh-choice > .hh-choice__lead { margin:0 0 .9rem; }
.hh-choice > .hh-choice__aside { margin:.9rem 0 0; }
.hh-choice__list { display:grid; gap:.5rem; margin:0; }
.hh-choice-card { position:relative; margin:0; padding:.75rem 2.25rem .75rem .9rem; background:var(--hh-paper); border:1px solid transparent; border-radius:6px; transition:border-color .15s, background-color .15s; }
.hh-choice-card > * { margin:0 !important; }
.hh-choice-card::after { content:"→"; position:absolute; right:.9rem; top:50%; transform:translateY(-50%); color:var(--hh-gold); font-weight:700; }
.hh-choice-card:hover, .hh-choice-card:focus-within { background:#fff; border-color:var(--hh-gold); }
.hh-choice-card .hh-choice__survey { margin-top:.1rem !important; }
.hh-choice-card .hh-choice__note { margin-top:.15rem !important; }
.hh-choice__survey a, .hh-advice__title a { color:inherit; text-decoration:none; }
.hh-choice__survey a::before, .hh-advice__title a::before { content:""; position:absolute; inset:0; } /* whole card is the link */
.hh-advice-blocks { margin:1rem 0 2.5rem; }
.hh-advice-card { position:relative; margin:0; padding:1.1rem 1.2rem; background:#fff; border:1px solid var(--hh-line); border-radius:6px; }
.hh-advice-card:hover, .hh-advice-card:focus-within { border-color:var(--hh-gold); }
.hh-advice-card > * { margin:0 !important; }
.hh-advice__title { margin-bottom:.3rem !important; font-family:var(--wp--preset--font-family--serif); font-size:1.25rem; font-weight:700; color:var(--hh-green); }
.hh-advice__text { font-size:.92rem; color:var(--hh-muted); line-height:1.45; }
.hh-chooser > *, .hh-advice-blocks > * { margin:0 !important; }
.hh-advice-blocks .hh-advice__title a { display:inline; height:auto; padding:0; background:none; border:0; border-radius:0; }

/* ===== Panels rebuilt from ordinary blocks (scripts/migration/make-pages-editable.php) ===== */
/* Groups use flow layout, which adds gaps between children; these panels set their own spacing. */
.hh-keyfacts-blocks > *, .hh-keyfact > *, .hh-office__details > *, .hh-office__list-blocks > *,
.hh-next-step__options-blocks > *, .hh-next-step__choice > *, .hh-guide-feature-blocks > *,
.hh-video-archive__list > *, .hh-video-archive__item > *, .hh-video-archive__text > * { margin-block:0; }

/* Key facts strip */
.hh-keyfacts-blocks > .hh-keyfact { margin:0; padding:1rem 1.1rem; background:var(--hh-paper); }
.hh-keyfact__value { margin:0 !important; color:var(--hh-green); font-family:var(--wp--preset--font-family--serif); font-size:1.3rem; font-weight:700; line-height:1.15; }
.hh-keyfact__label { margin:.25rem 0 0 !important; color:var(--hh-muted); font-size:.86rem; line-height:1.4; }
.hh-keyfact__label a { color:var(--hh-moss); }

/* RICS comparison table */
.hh-vs-table { margin:1.5rem 0 2.5rem; }
.hh-vs-table thead { border-bottom:0; }
.hh-vs-table table { width:100%; border-collapse:collapse; border:1px solid var(--hh-line) !important; border-radius:6px; overflow:hidden; background:var(--hh-white); table-layout:fixed; }
.hh-vs-table th, .hh-vs-table td { padding:.95rem 1.1rem; border:0; border-top:1px solid var(--hh-line); vertical-align:top; text-align:left; font-size:.95rem; line-height:1.5; }
.hh-vs-table thead th { border-top:0; font-size:.76rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.hh-vs-table thead th:nth-child(1) { width:24%; }
.hh-vs-table thead th:nth-child(2) { width:33%; color:var(--hh-muted); }
.hh-vs-table thead th:nth-child(3) { background:var(--hh-green); color:var(--hh-white); }
.hh-vs-table td:nth-child(1) { color:var(--hh-green); font-family:var(--wp--preset--font-family--serif); font-size:1.15rem; font-weight:700; line-height:1.25; }
.hh-vs-table td:nth-child(2) { position:relative; padding-left:2.4rem; color:var(--hh-muted); }
.hh-vs-table td:nth-child(2)::before { content:"\2013"; position:absolute; left:1.1rem; top:.95rem; color:#a0a5a0; font-weight:700; }
.hh-vs-table td:nth-child(3) { position:relative; padding-left:2.5rem; background:#f3f6ee; color:var(--hh-ink); font-weight:500; }
.hh-vs-table td:nth-child(3)::before { content:"\2713"; position:absolute; left:1.1rem; top:.95rem; color:var(--hh-moss); font-weight:700; }
@media (max-width:700px) {
  .hh-vs-table table, .hh-vs-table tbody, .hh-vs-table tr, .hh-vs-table td { display:block; width:auto; }
  .hh-vs-table table { border:0; background:none; }
  .hh-vs-table thead { display:none; }
  .hh-vs-table tr { margin-bottom:.9rem; border:1px solid var(--hh-line); border-radius:6px; overflow:hidden; background:var(--hh-white); }
  .hh-vs-table td { border-top:0; }
  .hh-vs-table td:nth-child(1) { padding-bottom:.4rem; }
  .hh-vs-table td:nth-child(2), .hh-vs-table td:nth-child(3) { padding-left:1.1rem; }
  .hh-vs-table td:nth-child(2)::before, .hh-vs-table td:nth-child(3)::before { position:static; display:block; margin-bottom:.15rem; font-family:var(--wp--preset--font-family--sans); font-size:.72rem; letter-spacing:.07em; text-transform:uppercase; }
  .hh-vs-table td:nth-child(2)::before { content:"Typical RICS survey"; color:#8b8f8b; }
  .hh-vs-table td:nth-child(3)::before { content:"Heritage House"; color:var(--hh-moss); }
}

/* Contact page office details */
.hh-office__details > p { margin:0 0 .35rem; }
.hh-office__details > .hh-office__address { margin-top:.6rem; }
.hh-office__list-blocks { display:grid; gap:.5rem; margin:0 0 .75rem; }
.hh-office__row { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; margin:0 !important; padding-bottom:.5rem; border-bottom:1px solid var(--hh-line); }
.hh-office__row strong { font-weight:600; color:var(--hh-ink); }
.hh-office__row a { color:var(--hh-green); font-size:1.1rem; font-weight:700; text-decoration:none; }

/* Homepage next-step cards */
.hh-next-step__options-blocks { display:grid; gap:.7rem; }
.hh-next-step__choice { position:relative; margin:0; padding:.95rem 3rem .95rem 1.15rem; border:1px solid var(--hh-line); border-radius:6px; background:var(--hh-white); transition:border-color .15s, box-shadow .2s; }
.hh-next-step__choice::after { content:"\2192"; position:absolute; right:1.1rem; top:50%; transform:translateY(-50%); color:var(--hh-gold); font-weight:700; transition:transform .2s; }
.hh-next-step__choice:hover, .hh-next-step__choice:focus-within { border-color:var(--hh-moss); box-shadow:0 10px 24px -14px rgba(31,39,34,.35); }
.hh-next-step__choice:hover::after, .hh-next-step__choice:focus-within::after { transform:translate(4px,-50%); }
.hh-next-step .hh-next-step__title { margin:0 !important; color:var(--hh-green); font-family:var(--wp--preset--font-family--serif); font-size:1.28rem; font-weight:700; line-height:1.2; }
.hh-next-step .hh-next-step__title a { color:inherit; text-decoration:none; }
.hh-next-step__title a::before { content:""; position:absolute; inset:0; }
.hh-next-step .hh-next-step__text { margin:.2rem 0 0 !important; color:var(--hh-muted); font-size:.9rem; line-height:1.45; }
.hh-next-step__choice--primary { background:var(--hh-green); border-color:var(--hh-green); }
.hh-next-step .hh-next-step__choice--primary .hh-next-step__title { color:var(--hh-white); }
.hh-next-step .hh-next-step__choice--primary .hh-next-step__text { color:rgba(255,255,255,.78); }
.hh-next-step__choice--primary:hover, .hh-next-step__choice--primary:focus-within { background:#2f4c35; border-color:#2f4c35; }
@media (prefers-reduced-motion: reduce) { .hh-next-step__choice, .hh-next-step__choice::after { transition:none; } }

/* Surveys page "Which survey do I need?" box */
.hh-guide-feature-blocks { position:relative; }
.hh-guide-feature-blocks:hover, .hh-guide-feature-blocks:focus-within { background:#1f3524; }
.hh-guide-feature-blocks > .hh-guide-feature__kicker { margin:0; }
.hh-guide-feature-blocks > .hh-guide-feature__title { margin:.2rem 0 .3rem; color:#fff; }
.hh-guide-feature-blocks > .hh-guide-feature__title a { color:inherit; text-decoration:none; }
.hh-guide-feature-blocks > .hh-guide-feature__title a::before { content:""; position:absolute; inset:0; }
.hh-guide-feature-blocks > .hh-guide-feature__text { margin:0; }

/* Videos page archive */
.hh-video-archive-blocks .hh-video-archive__intro { margin:.25rem 0 0; color:var(--hh-muted); }
.hh-video-archive__list { display:grid; gap:1.5rem; margin-top:1.25rem; }
.hh-video-archive__thumb { position:relative; margin:0; }
.hh-video-archive__thumb a { position:relative; display:block; aspect-ratio:16 / 9; overflow:hidden; border-radius:6px; background:#1b2b1f; }
.hh-video-archive__thumb img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .3s ease, opacity .2s; }
.hh-video-archive__thumb a:hover img, .hh-video-archive__thumb a:focus-visible img { transform:scale(1.03); opacity:.92; }
.hh-video-archive__thumb a::before { content:""; position:absolute; z-index:1; left:50%; top:50%; width:60px; height:60px; transform:translate(-50%,-50%); border-radius:50%; background:rgba(16,31,21,.78); box-shadow:0 6px 20px rgba(0,0,0,.25); }
.hh-video-archive__thumb a::after { content:""; position:absolute; z-index:2; left:calc(50% - 6px); top:calc(50% - 11px); border-left:17px solid #fff; border-top:11px solid transparent; border-bottom:11px solid transparent; }
.hh-video-archive__thumb a:hover::before, .hh-video-archive__thumb a:focus-visible::before { background:var(--hh-gold); }
.hh-video-archive__text > h3 { margin:0 0 .4rem; font-size:1.3rem; line-height:1.2; }
.hh-video-archive__text > p { margin:0 0 .5rem; color:var(--hh-ink); font-size:.97rem; line-height:1.6; }

/* Tables converted from old pasted HTML */
.hh-data-table { margin:1.5rem 0; overflow-x:auto; }
.hh-data-table table { width:100%; border-collapse:collapse; font-size:.92rem; line-height:1.5; }
.hh-data-table th, .hh-data-table td { padding:.6rem .75rem; border:1px solid var(--hh-line); vertical-align:top; text-align:left; }
.hh-data-table thead th { background:var(--hh-paper); color:var(--hh-green); font-weight:700; }

/* YouTube embeds in articles */
.article-content .wp-block-embed { margin:1.5rem 0; }
.article-content .wp-block-embed iframe { border-radius:6px; }
.hh-office > .hh-office__details, .hh-office > .hh-office__list-blocks { margin-top:0; }

/* ===== Homepage sections as editable blocks (scripts/migration/make-home-editable.php) ===== */
.hh-trust-blocks > *, .hh-trust__item > *, .hh-surveys-blocks > *, .hh-surveys__inner > *, .hh-surveys__header > *,
.hh-surveys__group > *, .hh-surveys__list > *, .hh-survey-card-blocks > *, .hh-survey-card__body > *, .hh-how > *,
.hh-how__steps > *, .hh-how__step > *, .hh-rics-teaser-blocks > *, .hh-hero-routes-blocks > *, .hh-hero-routes__list > *,
.hh-hero-routes__item > * { margin-block:0; }

/* Trust strip */
.hh-trust-blocks { margin:0 !important; }
.hh-trust__list-blocks > .hh-trust__item { margin:0; padding:1.05rem 1.1rem; border-left:1px solid var(--hh-line); }
.hh-trust__list-blocks > .hh-trust__item:first-child { padding-left:0; border-left:0; }
.hh-trust__value { color:var(--hh-green); font-family:var(--wp--preset--font-family--serif); font-size:1.2rem; font-weight:700; line-height:1.15; }
.hh-trust__label { margin-top:.15rem !important; color:var(--hh-muted); font-size:.84rem; line-height:1.35; }
@media (max-width: 900px) {
    .hh-trust__list-blocks > .hh-trust__item { flex:0 0 auto; max-width:12rem; padding:.85rem 1rem; scroll-snap-align:start; }
    .hh-trust__list-blocks > .hh-trust__item:first-child { padding-left:0; }
}

/* Our surveys */
.hh-surveys-blocks { margin:0 !important; }
.hh-surveys-blocks .hh-surveys__header { margin-bottom:1.75rem; }
.hh-surveys-blocks .hh-surveys__header .hh-kicker { margin:0 0 .6rem; }
.hh-surveys-blocks .hh-surveys__header h2 { margin:0 0 .75rem; }
.hh-surveys__list { display:grid; gap:.6rem; }
.hh-survey-card-blocks:hover, .hh-survey-card-blocks:focus-within { border-color:var(--hh-moss); box-shadow:0 10px 24px -14px rgba(31,39,34,.35); }
.hh-survey-card-blocks:hover::after, .hh-survey-card-blocks:focus-within::after { transform:translate(4px,-50%); }
.hh-survey-card-blocks > .hh-survey-card__media { margin:0; }
.hh-surveys .hh-survey-card__title { color:var(--hh-green); font-family:var(--wp--preset--font-family--serif); font-size:1.22rem; font-weight:700; line-height:1.15; }
.hh-survey-card__title a { color:inherit; text-decoration:none; }
.hh-survey-card__title a::before { content:""; position:absolute; inset:0; } /* whole card is the link */
.hh-surveys .hh-survey-card__line { margin-top:.15rem !important; color:var(--hh-muted); font-size:.88rem; line-height:1.4; }
.hh-surveys .hh-survey-card__price { display:inline-block; margin-top:.35rem !important; padding:.1rem .5rem; border-radius:3px; background:#f6efdc; color:#6b5418; font-size:.78rem; font-weight:700; }
.hh-rics-teaser-blocks { position:relative; }
.hh-surveys .hh-rics-teaser-blocks .hh-rics-teaser__kicker { color:var(--hh-moss); font-size:.74rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; line-height:1.4; }
.hh-surveys .hh-rics-teaser-blocks .hh-rics-teaser__title { margin-top:.1rem !important; color:var(--hh-green); font-family:var(--wp--preset--font-family--serif); font-size:1.3rem; font-weight:700; line-height:1.2; }
.hh-rics-teaser__title a { color:inherit; text-decoration:none; }
.hh-rics-teaser__title a::before { content:""; position:absolute; inset:0; }
.hh-rics-teaser-blocks:hover::after, .hh-rics-teaser-blocks:focus-within::after { transform:translate(4px,-50%); }
.hh-how__steps { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.25rem; }
.hh-how__step { margin:0; }
.hh-how .hh-how__num { margin:0 0 .6rem !important; }
.hh-how__step-title { color:var(--hh-ink); font-size:1rem; font-weight:700; line-height:1.3; }
.hh-how__step-text { margin-top:.2rem !important; color:var(--hh-muted); font-size:.9rem; line-height:1.45; }
@media (max-width: 900px) { .hh-how__steps { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width: 480px) {
    .hh-how__steps { grid-template-columns:minmax(0,1fr); gap:.9rem; }
    .hh-how__step { display:grid; grid-template-columns:2rem 1fr; column-gap:.75rem; }
    .hh-how .hh-how__num { grid-row:1 / 3; margin:0 !important; }
}

/* Hero "What do you need help with?" */
.hh-hero-routes__list > .hh-hero-routes__item { position:relative; margin:0 -.6rem; padding:.85rem 2.4rem .85rem .6rem; border-top:1px solid rgba(255,255,255,.16); border-radius:3px; transition:background .15s; }
.hh-hero-routes__list > .hh-hero-routes__item:first-child { border-top:0; }
.hh-hero-routes__item::after { content:"\2192"; position:absolute; right:.7rem; top:50%; transform:translateY(-50%); color:var(--hh-gold); font-size:1.05rem; font-weight:700; transition:transform .2s; }
.hh-hero-routes__item:hover, .hh-hero-routes__item:focus-within { background:rgba(255,255,255,.08); }
.hh-hero-routes__item:hover::after, .hh-hero-routes__item:focus-within::after { transform:translate(4px,-50%); }
.hh-hero .hh-hero-routes .hh-hero-routes__label { margin:0 !important; font-family:var(--wp--preset--font-family--serif); font-size:1.42rem; font-weight:600; letter-spacing:.005em; line-height:1.15; }
.hh-hero .hh-hero-routes .hh-hero-routes__label a { color:#fff; text-decoration:none; }
.hh-hero .hh-hero-routes .hh-hero-routes__label a::before { content:""; position:absolute; inset:0; }
.hh-hero .hh-hero-routes .hh-hero-routes__note { margin:.25rem 0 0 !important; color:rgba(255,255,255,.84); font-size:.9rem; line-height:1.4; }
@media (max-width: 640px) {
    .hh-hero--routes .hh-hero-routes .hh-hero-routes__label { font-size:1.28rem; }
    .hh-hero--routes .hh-hero-routes__list > .hh-hero-routes__item { padding-block:.7rem; }
}
@media (prefers-reduced-motion: reduce) { .hh-hero-routes__item::after { transition:none; } }
.hh-surveys__groups > * { margin:0 !important; }
.hh-surveys-blocks .hh-surveys__header .hh-rics-teaser { margin-top:1.1rem; }
.hh-surveys-blocks .hh-how { margin-top:2.25rem; }
.hh-surveys-blocks .hh-surveys__group > h3 { margin:0 0 .7rem; }

/* Footer built from ordinary blocks (parts/footer.html) */
.site-footer__brand > *, .site-footer__contact > *, .site-footer__phones > * { margin-block:0; }
.site-footer figure.site-footer__logo { display:inline-block; margin:0 0 1rem; }
.site-footer__brand > p { margin:0 0 .75rem; }
.site-footer__contact > .site-footer__heading { margin-bottom:.9rem; }
.site-footer__phones > .site-footer__phone { display:flex; justify-content:space-between; align-items:baseline; gap:1rem; margin:0; color:color-mix(in srgb, var(--hh-white) 70%, transparent); font-size:.85rem; }
.site-footer__phone a { font-size:1rem; font-weight:600; white-space:nowrap; }
.site-footer__contact > .wp-block-buttons { margin-top:1rem; }
.site-footer__contact > .site-footer__phones { margin-bottom:1rem; }

/* Left column block (inc/left-column.php): extra content under the side menu. */
.hh-section-sidebar .hh-left-column { box-sizing:border-box; margin:0; padding:1rem 1.1rem; background:var(--hh-white); border:1px solid var(--hh-line); border-radius:4px; font-size:.92rem; line-height:1.55; }
.hh-section-sidebar .hh-left-column > * { margin-block:0 .75rem; }
.hh-section-sidebar .hh-left-column > :last-child { margin-bottom:0; }
.hh-section-sidebar .hh-left-column h2, .hh-section-sidebar .hh-left-column h3 { font-size:1.15rem; line-height:1.25; color:var(--hh-green); }
.hh-section-sidebar .hh-left-column img { display:block; max-width:100%; height:auto; border-radius:3px; }
.hh-section-sidebar .hh-left-column .wp-block-button__link { width:100%; justify-content:center; }
