/*
 * Heatmaster widgets. One block per widget; in the plugin each block is loaded only on pages that use it.
 * Depends on the theme's tokens.css and base.css.
 */

/* ============ hm-hero ============ */
.hm-hero {
  position: relative; isolation: isolate; overflow: hidden;
  background:
    radial-gradient(60rem 34rem at 88% -10%, rgba(19, 99, 79, 0.75), transparent 62%),
    radial-gradient(40rem 26rem at -8% 108%, rgba(201, 162, 75, 0.14), transparent 60%),
    var(--hm-green-800);
  color: var(--hm-ivory);
}
.hm-hero::after { content: ""; position: absolute; inset: auto 0 0 0; height: 1px; background: linear-gradient(90deg, transparent, var(--hm-gold-500) 20%, var(--hm-gold-500) 80%, transparent); opacity: 0.6; }
.hm-hero__in { display: grid; gap: clamp(2rem, 1rem + 4vw, 4rem); align-items: center; padding-block: clamp(2.25rem, 1.4rem + 4vw, 5rem); }
@media (min-width: 62rem) { .hm-hero__in { grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr); } }
.hm-hero h1 { margin-bottom: 0.45em; color: var(--hm-ivory); }
.hm-hero h1 em { font-style: normal; color: var(--hm-gold-300); }
.hm-hero__lead { max-width: 36rem; font-size: var(--hm-fs-lead); color: rgba(250, 247, 240, 0.86); }
.hm-ticks { display: grid; gap: 0.55rem; margin: var(--hm-s-5) 0; padding: 0; list-style: none; }
.hm-ticks li { display: flex; align-items: flex-start; gap: 0.65rem; font-weight: 500; }
.hm-ticks svg { flex: none; width: 1.35rem; height: 1.35rem; margin-top: 0.14em; padding: 0.22rem; border-radius: 50%; background: var(--hm-c-tick-bg); color: var(--hm-c-tick); }
@media (min-width: 36rem) { .hm-ticks--2 { grid-template-columns: 1fr 1fr; column-gap: 1.5rem; } }
.hm-hero .hm-btn-row { margin-top: var(--hm-s-5); }
@media (max-width: 35.99rem) { .hm-hero .hm-btn-row .hm-btn { width: 100%; } }
.hm-hero__proof { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.5rem; margin-top: var(--hm-s-5); padding-top: var(--hm-s-5); border-top: 1px solid rgba(250, 247, 240, 0.16); font-size: var(--hm-fs-sm); color: rgba(250, 247, 240, 0.85); }
.hm-hero__proof > * { display: inline-flex; align-items: center; gap: 0.55rem; }
.hm-hero .hm-hero__proof img { height: 2.5rem; width: auto; }
.hm-hero__proof b { color: var(--hm-ivory); }
.hm-hero__proof a.hm-hero__reviews { color: inherit; text-decoration: none; }
.hm-hero__proof a.hm-hero__reviews:hover > span, .hm-hero__proof a.hm-hero__reviews:focus-visible > span { text-decoration: underline; text-underline-offset: 0.2em; }
.hm-stars { display: inline-flex; gap: 1px; color: var(--hm-star); }
.hm-stars svg { width: 1rem; height: 1rem; }
.hm-stars .is-off { opacity: 0.28; }

/* ============ hm-trust-bar ============ */
.hm-trust { background: var(--hm-white); border-bottom: 1px solid var(--hm-line); }
.hm-trust__in { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 56rem) { .hm-trust__in { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.hm-trust__item > div { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 23.99rem) { .hm-trust__item { gap: 0.55rem; padding-inline: 0.5rem; } .hm-trust .hm-trust__item img, .hm-trust__item > svg { width: 2.25rem; height: 2.25rem; } }
.hm-trust__item { display: flex; align-items: center; gap: 0.8rem; padding: 1.1rem 0.75rem; border-left: 1px solid var(--hm-line); }
.hm-trust__item:nth-child(odd) { border-left: 0; padding-left: 0; }
@media (min-width: 56rem) { .hm-trust__item:nth-child(odd) { border-left: 1px solid var(--hm-line); padding-left: 0.75rem; } .hm-trust__item:first-child { border-left: 0; padding-left: 0; } }
@media (max-width: 55.99rem) { .hm-trust__item:nth-child(n + 3) { border-top: 1px solid var(--hm-line); } }
.hm-trust .hm-trust__item img { width: 2.75rem; height: 2.75rem; object-fit: contain; flex: none; }
.hm-trust__item > svg { width: 2.75rem; height: 2.75rem; padding: 0.6rem; flex: none; border-radius: 50%; background: var(--hm-gold-100); color: var(--hm-gold-700); }
.hm-trust__item b { display: block; font-size: var(--hm-fs-sm); line-height: 1.25; color: var(--hm-green-800); }
.hm-trust__item span { display: block; font-size: var(--hm-fs-xs); line-height: 1.3; color: var(--hm-ink-3); }

/* ============ hm-cards (features / services / steps) ============ */
.hm-cards { display: grid; gap: var(--hm-s-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
@media (min-width: 62rem) { .hm-cards--3 { grid-template-columns: repeat(3, 1fr); } }
.hm-card {
  position: relative; display: flex; flex-direction: column; gap: 0.5rem; padding: clamp(1.25rem, 1rem + 1vw, 1.75rem);
  background: var(--hm-white); border: 1px solid var(--hm-line); border-radius: var(--hm-r-lg);
  transition: border-color 0.2s, box-shadow 0.25s var(--hm-ease), transform 0.25s var(--hm-ease);
}
.hm-card h3 { margin: 0; font-size: 1.3125rem; }
.hm-card p { margin: 0; color: var(--hm-c-muted); font-size: var(--hm-fs-sm); }
.hm-card__icon { width: 3.25rem; height: 3.25rem; padding: 0.8rem; margin-bottom: 0.5rem; border-radius: var(--hm-r-md); background: var(--hm-green-100); color: var(--hm-green-700); }
@media (max-width: 35.99rem) {
  .hm-card:has(> .hm-card__icon) { display: grid; grid-template-columns: auto 1fr; column-gap: 0.85rem; align-items: center; }
  .hm-card:has(> .hm-card__icon) > .hm-card__icon { width: 2.75rem; height: 2.75rem; padding: 0.65rem; margin-bottom: 0; }
  .hm-card:has(> .hm-card__icon) > :is(p, .hm-link) { grid-column: 1 / -1; }
}
.hm-card--link:hover { border-color: var(--hm-gold-500); box-shadow: var(--hm-shadow-2); transform: translateY(-3px); }
.hm-card--link .hm-link { margin-top: auto; padding-top: 0.6rem; }
.hm-card--link .hm-link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.hm-card--feature { border-top: 3px solid var(--hm-gold-500); }
.hm-card--step { padding-top: 2.75rem; counter-increment: hm-step; }
.hm-card--step::before { content: counter(hm-step, decimal-leading-zero); position: absolute; top: 1.1rem; left: clamp(1.25rem, 1rem + 1vw, 1.75rem); font: 600 1.05rem/1 var(--hm-font-display); color: var(--hm-gold-700); letter-spacing: 0.06em; }
.hm-cards--steps { counter-reset: hm-step; }
/* On a green section cards turn translucent; their text colours follow through the surface context. */
.hm-section--green .hm-card { background: rgba(250, 247, 240, 0.06); border-color: rgba(250, 247, 240, 0.16); }

/* ---- hm-cards, "service tiles" style (home "What We Do"): the quote form's service picker, as links ---- */
.hm-svc-band .hm-head { margin-bottom: var(--hm-s-5); }
.hm-cards.hm-svc { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; margin: 0; padding: 0.6rem 0 0; list-style: none; }
@media (min-width: 48rem) { .hm-cards.hm-svc { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; } }
.hm-svc__tile {
  align-items: center; gap: 0.3rem; padding: 1.15rem 0.7rem 1.05rem; text-align: center;
  border: 1.5px solid var(--hm-line-2); border-radius: var(--hm-r-md); -webkit-tap-highlight-color: transparent;
  transition: border-color 0.2s, background-color 0.2s, box-shadow 0.25s var(--hm-ease), transform 0.25s var(--hm-ease);
}
.hm-svc__ic { display: block; margin-bottom: 0.35rem; }
.hm-svc__tile .hm-card__icon { display: block; width: 2.9rem; height: 2.9rem; padding: 0.65rem; margin: 0; transition: background-color 0.2s, color 0.2s, transform 0.25s var(--hm-ease); }
.hm-svc__tile .hm-card__title { font: 600 1rem/1.25 var(--hm-font-body); letter-spacing: 0; color: var(--hm-c-heading); }
.hm-svc__tile p { font-size: var(--hm-fs-xs); line-height: 1.35; }
.hm-svc__link { color: inherit; text-decoration: none; }
.hm-svc__link::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }   /* the whole tile opens the page */
.hm-svc__link:focus-visible { outline: none; }
@media (min-width: 48rem) {
  .hm-svc__tile { gap: 0.4rem; padding: 1.75rem 1rem 1.5rem; border-radius: var(--hm-r-lg); }
  .hm-svc__tile .hm-card__icon { width: 3.5rem; height: 3.5rem; padding: 0.85rem; border-radius: 14px; }
  .hm-svc__tile .hm-card__title { font-size: 1.0625rem; }
  .hm-svc__tile p { font-size: var(--hm-fs-sm); }
}
/* Hover, keyboard focus and press: the "chosen" look of the quote form's picker. */
.hm-svc__tile.is-link:is(:hover, :focus-within) { border-color: var(--hm-green-700); background: var(--hm-green-50); box-shadow: 0 0 0 1px var(--hm-green-700); }
.hm-svc__tile.is-link:is(:hover, :focus-within) .hm-card__icon { background: var(--hm-green-800); color: var(--hm-ivory); }
.hm-svc__tile.is-link:has(:focus-visible) { box-shadow: 0 0 0 1px var(--hm-green-700), var(--hm-ring); }
.hm-svc__tile.is-link:active { transform: scale(0.98); }
@media (hover: hover) {
  .hm-svc__tile.is-link:hover { transform: translateY(-3px); box-shadow: 0 0 0 1px var(--hm-green-700), var(--hm-shadow-2); }
  .hm-svc__tile.is-link:hover .hm-card__icon { transform: scale(1.06); }
}
.hm-svc__go { position: absolute; top: 0.9rem; right: 0.9rem; width: 1.1rem; height: 1.1rem; color: var(--hm-green-700); opacity: 0; transform: translateX(-4px); transition: opacity 0.2s, transform 0.25s var(--hm-ease); }
.hm-svc__tile.is-link:is(:hover, :focus-within) .hm-svc__go { opacity: 1; transform: none; }
@media (max-width: 47.99rem) { .hm-svc__go { display: none; } }
/* Badge sitting on the top edge ("Emergency"). */
.hm-svc__badge {
  position: absolute; top: 0; left: 50%; z-index: 2; transform: translate(-50%, -50%); pointer-events: none;
  padding: 0.22rem 0.65rem; border-radius: var(--hm-r-pill); background: var(--hm-orange-500); color: var(--hm-green-950);
  font-size: 0.6875rem; font-weight: 700; line-height: 1.2; letter-spacing: 0.05em; text-transform: uppercase; white-space: nowrap;
  box-shadow: 0 2px 6px rgba(6, 35, 29, 0.16);
}
/* The box under the tiles: not sure which service? quote or call. */
.hm-svc__help {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; margin-top: var(--hm-s-6);
  padding: clamp(1.25rem, 1rem + 1.5vw, 2rem); border-radius: var(--hm-r-lg); color: var(--hm-c-text);
  background: radial-gradient(32rem 16rem at 100% 0%, color-mix(in srgb, var(--hm-green-600) 75%, transparent), transparent 70%), var(--hm-green-800);
}
.hm-svc__help-text { flex: 1 1 22rem; }
.hm-svc__help p { margin: 0; color: var(--hm-c-muted); }
.hm-svc__help .hm-svc__help-title { margin-bottom: 0.3rem; font: 600 clamp(1.2rem, 1.1rem + 0.4vw, 1.4rem)/1.25 var(--hm-font-display); color: var(--hm-c-heading); }
@media (max-width: 35.99rem) { .hm-svc__help { margin-top: var(--hm-s-5); } .hm-svc__help .hm-btn-row { width: 100%; } .hm-svc__help .hm-btn { flex: 1 1 100%; } }

/* ============ hm-content-split ============ */
.hm-split { display: grid; gap: clamp(1.75rem, 1rem + 4vw, 4.5rem); align-items: center; }
@media (min-width: 56rem) { .hm-split { grid-template-columns: 1fr 1fr; } .hm-split--reverse .hm-split__media { order: 2; } .hm-split--wide-text { grid-template-columns: 1.15fr 0.85fr; } }
.hm-split__media { position: relative; }
.hm-frame { position: relative; border-radius: var(--hm-r-lg); overflow: hidden; background: var(--hm-green-100); box-shadow: var(--hm-shadow-2); }
div.hm-frame img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 5; }
div.hm-frame--land img { aspect-ratio: 4 / 3; }
.hm-frame::after { content: ""; position: absolute; inset: 0.6rem; border: 1px solid rgba(226, 204, 147, 0.75); border-radius: calc(var(--hm-r-lg) - 0.45rem); pointer-events: none; }
.hm-badge {
  position: absolute; right: -0.5rem; bottom: 1.25rem; display: grid; place-items: center; text-align: center;
  width: 7.5rem; height: 7.5rem; padding: 0.5rem; border-radius: 50%;
  background: var(--hm-green-800); color: var(--hm-ivory); border: 3px solid var(--hm-ivory); outline: 1px solid var(--hm-gold-500); outline-offset: -0.5rem;
  font-size: 0.6875rem; line-height: 1.2; letter-spacing: 0.06em; text-transform: uppercase; box-shadow: var(--hm-shadow-2);
}
.hm-badge b { display: block; font: 600 2rem/1 var(--hm-font-display); letter-spacing: 0; color: var(--hm-gold-300); text-transform: none; }
@media (max-width: 55.99rem) { .hm-badge { right: 0.75rem; } }
.hm-badge--text { width: 8.25rem; height: 8.25rem; padding: 0.9rem; font-size: 0.75rem; line-height: 1.25; letter-spacing: 0.03em; text-transform: none; font-weight: 600; }
.hm-badge--text svg { display: block; width: 1.6rem; height: 1.6rem; margin: 0 auto 0.35rem; color: var(--hm-gold-300); }

/* ============ hm-checklist ============ */
.hm-checklist { display: grid; gap: var(--hm-s-5); }
@media (min-width: 48rem) { .hm-checklist--3 { grid-template-columns: repeat(3, 1fr); } .hm-checklist--2 { grid-template-columns: repeat(2, 1fr); } }
.hm-checklist ul { margin: 0; padding: 0; list-style: none; }
.hm-checklist li { display: flex; gap: 0.7rem; padding: 0.7rem 0; border-bottom: 1px solid var(--hm-c-line); }
.hm-checklist li svg { flex: none; width: 1.25rem; height: 1.25rem; margin-top: 0.15rem; color: var(--hm-c-tick); }

/* ============ hm-accreditations ============ */
.hm-accred { display: grid; gap: var(--hm-s-3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 9.25rem), 1fr)); }
.hm-accred__item { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; padding: clamp(1rem, 0.7rem + 1.5vw, 1.5rem) 0.75rem; text-align: center; background: var(--hm-white); border: 1px solid var(--hm-line); border-radius: var(--hm-r-lg); }
.hm-accred .hm-accred__item img { height: clamp(3.25rem, 2.6rem + 3vw, 4.5rem); width: auto; max-width: 9rem; object-fit: contain; }
.hm-accred__item b { font-size: var(--hm-fs-sm); color: var(--hm-green-800); }
.hm-accred__item span { font-size: var(--hm-fs-xs); color: var(--hm-ink-3); line-height: 1.35; }
.hm-accred__no { display: inline-block; margin-top: 0.15rem; padding: 0.2rem 0.6rem; border-radius: var(--hm-r-pill); background: var(--hm-gold-100); color: var(--hm-gold-700); font: 650 var(--hm-fs-xs)/1.4 var(--hm-font-body); font-variant-numeric: tabular-nums; letter-spacing: 0.03em; }
.hm-accred-feature { display: grid; gap: var(--hm-s-5); align-items: center; }
@media (min-width: 48rem) { .hm-accred-feature { grid-template-columns: auto 1fr; gap: var(--hm-s-7); } }
.hm-accred-feature__seal { display: grid; place-items: center; gap: 0.75rem; width: min(100%, 15rem); padding: 1.5rem; border-radius: var(--hm-r-lg); background: var(--hm-white); text-align: center; }
.hm-accred-feature .hm-accred-feature__seal img { height: 6.5rem; width: auto; }

/* ============ hm-logo-strip ============ */
.hm-logos { display: grid; grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr)); gap: var(--hm-s-3); align-items: center; }
.hm-logos li { display: grid; place-items: center; height: 5rem; padding: 0.9rem 1rem; background: var(--hm-white); border: 1px solid var(--hm-line); border-radius: var(--hm-r-md); }
.hm-logos { margin: 0; padding: 0; list-style: none; }
.hm-logos li { min-width: 0; overflow: hidden; }
/* A fixed height: a percentage of an auto-sized grid row is ignored, so tall logos spilled out of their box. */
.hm-logos li img, .elementor .hm-logos li img { max-height: 3.2rem; height: auto; width: auto; max-width: 100%; object-fit: contain; filter: saturate(0.9); }

/* ============ hm-reviews ============ */
.hm-reviews__summary { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.25rem; margin-bottom: var(--hm-s-5); }
.hm-reviews__score { font: 600 3rem/1 var(--hm-font-display); color: var(--hm-c-heading); }
.hm-reviews__summary .hm-stars svg { width: 1.35rem; height: 1.35rem; }
.hm-reviews__summary p { margin: 0; color: var(--hm-c-muted); font-size: var(--hm-fs-sm); }
.hm-reviews__track { display: grid; grid-auto-flow: column; grid-auto-columns: min(86%, 23rem); gap: var(--hm-s-4); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--hm-gutter); padding: 0.25rem var(--hm-gutter) 1.25rem; margin-inline: calc(-1 * var(--hm-gutter)); scrollbar-width: thin; scrollbar-color: var(--hm-line-2) transparent; }
.hm-review { scroll-snap-align: start; display: flex; flex-direction: column; gap: 0.85rem; padding: 1.5rem; background: var(--hm-white); border: 1px solid var(--hm-line); border-radius: var(--hm-r-lg); }
.hm-review blockquote { margin: 0; color: var(--hm-ink); font-size: var(--hm-fs-sm); line-height: 1.6; }
.hm-review footer { display: flex; align-items: center; gap: 0.7rem; margin-top: auto; padding-top: 0.85rem; border-top: 1px solid var(--hm-line); }
.hm-review__avatar { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--hm-green-100); color: var(--hm-green-700); font: 600 1rem/1 var(--hm-font-display); }
.hm-review cite { font-style: normal; font-weight: 650; font-size: var(--hm-fs-sm); }
.hm-review time { display: block; font-size: var(--hm-fs-xs); color: var(--hm-ink-3); }
.hm-review__src { margin-left: auto; font-size: var(--hm-fs-xs); color: var(--hm-ink-3); }

/* ============ hm-faq ============ */
.hm-faq { display: grid; gap: 0.6rem; }
.hm-faq details { background: var(--hm-white); border: 1px solid var(--hm-line); border-radius: var(--hm-r-md); }
.hm-faq details[open] { border-color: var(--hm-gold-500); }
.hm-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 3.75rem; padding: 0.9rem 1.2rem; cursor: pointer; list-style: none; font: 600 1.0625rem/1.35 var(--hm-font-body); color: var(--hm-green-800); }
.hm-faq summary::-webkit-details-marker { display: none; }
.hm-faq summary svg { flex: none; width: 1.2rem; height: 1.2rem; color: var(--hm-gold-700); transition: transform 0.2s var(--hm-ease); }
.hm-faq details[open] summary svg { transform: rotate(45deg); }
.hm-faq__a { padding: 0 1.2rem 1.2rem; color: var(--hm-ink-2); }
.hm-faq__a > :last-child { margin-bottom: 0; }

/* ============ hm-cta-band (quote / emergency / notice) ============ */
.hm-cta { display: grid; gap: var(--hm-s-5); align-items: center; padding: clamp(1.5rem, 1rem + 3vw, 3rem); border-radius: var(--hm-r-lg); background: var(--hm-green-800); color: var(--hm-ivory); position: relative; overflow: hidden; }
.hm-cta::before { content: ""; position: absolute; inset: 0.6rem; border: 1px solid rgba(201, 162, 75, 0.4); border-radius: calc(var(--hm-r-lg) - 0.45rem); pointer-events: none; }
.hm-cta > * { position: relative; }
.hm-cta h2 { margin: 0 0 0.3rem; color: var(--hm-ivory); font-size: clamp(1.5rem, 1.25rem + 1.2vw, 2.125rem); }
.hm-cta p { margin: 0; color: rgba(250, 247, 240, 0.84); }
@media (min-width: 56rem) { .hm-cta { grid-template-columns: 1fr auto; } }
.hm-cta--emergency { background: var(--hm-green-950); }
@media (max-width: 35.99rem) { .hm-cta .hm-btn-row .hm-btn { width: 100%; } }
.hm-cta__tel { font: 600 clamp(1.75rem, 1.4rem + 1.8vw, 2.5rem)/1.1 var(--hm-font-display); color: var(--hm-gold-300); text-decoration: none; font-variant-numeric: tabular-nums; white-space: nowrap; }
.hm-cta__tel:hover { color: var(--hm-ivory); }
.hm-notice { display: grid; gap: var(--hm-s-4); padding: clamp(1.25rem, 1rem + 2vw, 2rem); border: 1px solid var(--hm-gold-300); border-left: 4px solid var(--hm-gold-500); border-radius: var(--hm-r-lg); background: var(--hm-gold-100); }
.hm-notice h3 { margin: 0 0 0.3rem; }
.hm-notice p { margin: 0; color: var(--hm-ink-2); }
.hm-notice__amount { font: 600 clamp(2.25rem, 1.8rem + 2vw, 3.25rem)/1 var(--hm-font-display); color: var(--hm-green-800); }
@media (min-width: 48rem) { .hm-notice { grid-template-columns: auto 1fr auto; align-items: center; gap: var(--hm-s-6); } }

/* ============ hm-gallery ============ */
.hm-gallery { display: grid; grid-auto-flow: column; grid-auto-columns: min(72%, 19rem); gap: var(--hm-s-3); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--hm-gutter); padding: 0.25rem var(--hm-gutter) 1rem; margin-inline: calc(-1 * var(--hm-gutter)); scrollbar-width: thin; scrollbar-color: var(--hm-line-2) transparent; }
.hm-gallery figure { margin: 0; scroll-snap-align: start; border-radius: var(--hm-r-lg); overflow: hidden; background: var(--hm-green-100); }
.hm-gallery figure img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.hm-gallery figcaption { padding: 0.6rem 0.85rem; background: var(--hm-white); font-size: var(--hm-fs-xs); color: var(--hm-ink-2); border-top: 1px solid var(--hm-line); }

/* ============ hm-grid (posts / products) ============ */
.hm-tiles { display: grid; gap: var(--hm-s-5); grid-template-columns: repeat(auto-fill, minmax(min(100%, 17.5rem), 1fr)); }
.hm-tile { position: relative; display: flex; flex-direction: column; background: var(--hm-white); border: 1px solid var(--hm-line); border-radius: var(--hm-r-lg); overflow: hidden; transition: box-shadow 0.25s var(--hm-ease), transform 0.25s var(--hm-ease), border-color 0.2s; }
.hm-tile:hover { border-color: var(--hm-gold-500); box-shadow: var(--hm-shadow-2); transform: translateY(-3px); }
.hm-tile img.hm-tile__img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; background: var(--hm-green-100); }
.hm-tile--product img.hm-tile__img { aspect-ratio: 1; object-fit: contain; padding: 1rem; background: var(--hm-white); border-bottom: 1px solid var(--hm-line); }
.hm-tile__body { display: flex; flex-direction: column; gap: 0.45rem; flex: 1; padding: 1.15rem 1.25rem 1.35rem; }
.hm-tile__meta { font-size: var(--hm-fs-xs); color: var(--hm-ink-3); letter-spacing: 0.04em; text-transform: uppercase; }
.hm-tile h3 { margin: 0; font-size: 1.1875rem; line-height: 1.25; }
.hm-tile h3 a { color: inherit; text-decoration: none; }
.hm-tile h3 a::after { content: ""; position: absolute; inset: 0; }
.hm-tile p { margin: 0; font-size: var(--hm-fs-sm); color: var(--hm-ink-2); }
.hm-tile p.hm-tile__excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; line-height: 1.55; }

/* Folded list of every other post under the tiles. */
.hm-more { margin-top: var(--hm-s-5); border-top: 1px solid var(--hm-c-line); }
.hm-more summary { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 3rem; padding: 0.5rem 0; cursor: pointer; list-style: none; font: 650 1rem/1.3 var(--hm-font-body); color: var(--hm-c-link); }
.hm-more summary::-webkit-details-marker { display: none; }
.hm-more summary svg { width: 1.15rem; height: 1.15rem; transition: transform 0.2s var(--hm-ease); }
.hm-more[open] summary svg { transform: rotate(180deg); }
.hm-more__list { margin: 0.25rem 0 0; padding: 0; list-style: none; columns: 19rem; column-gap: var(--hm-s-6); }
.hm-more__list li { break-inside: avoid; border-bottom: 1px solid var(--hm-c-line); }
.hm-more__list a { display: block; padding: 0.8rem 0; color: var(--hm-c-text); text-decoration: none; font-size: var(--hm-fs-sm); line-height: 1.4; }
.hm-more__list a:hover, .hm-more__list a:focus-visible { color: var(--hm-c-link); text-decoration: underline; text-underline-offset: 0.2em; }
.hm-tile__price { margin-top: auto; padding-top: 0.6rem; font-weight: 650; color: var(--hm-green-800); }
.hm-tile__price small { font-weight: 400; color: var(--hm-ink-3); }

/* ============ hm-contact-info / hm-map ============ */
.hm-contact-cards { display: grid; gap: var(--hm-s-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.hm-contact-card { display: flex; flex-direction: column; gap: 0.35rem; padding: 1.5rem; background: var(--hm-white); border: 1px solid var(--hm-line); border-radius: var(--hm-r-lg); }
.hm-contact-card svg { width: 2.75rem; height: 2.75rem; padding: 0.65rem; margin-bottom: 0.4rem; border-radius: 50%; background: var(--hm-green-100); color: var(--hm-green-700); }
.hm-contact-card h3 { margin: 0; font-size: 1.1875rem; }
.hm-contact-card a { font-weight: 650; font-size: 1.125rem; text-decoration: none; overflow-wrap: anywhere; }
.hm-contact-card p { margin: 0; color: var(--hm-ink-2); font-size: var(--hm-fs-sm); }
.hm-map { position: relative; display: grid; place-items: center; min-height: 18rem; border-radius: var(--hm-r-lg); border: 1px solid var(--hm-line); overflow: hidden; text-align: center; padding: 1.5rem;
  background: linear-gradient(rgba(250, 247, 240, 0.86), rgba(250, 247, 240, 0.86)), repeating-linear-gradient(0deg, var(--hm-green-100) 0 1px, transparent 1px 2.5rem), repeating-linear-gradient(90deg, var(--hm-green-100) 0 1px, transparent 1px 2.5rem), var(--hm-cream); }
.hm-map p { max-width: 24rem; color: var(--hm-ink-2); font-size: var(--hm-fs-sm); }
.hm-panel { padding: clamp(1.25rem, 1rem + 2vw, 2.25rem); background: var(--hm-white); border: 1px solid var(--hm-line); border-radius: var(--hm-r-lg); box-shadow: var(--hm-shadow-1); }
.hm-form { display: grid; gap: var(--hm-s-4); }
@media (min-width: 36rem) { .hm-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--hm-s-4); } }

/* ============ additions for the real widgets ============ */
.hm-hero__in--single { grid-template-columns: minmax(0, 1fr) !important; max-width: 52rem; }
.hm-card__title { margin: 0; font-size: 1.3125rem; }
@media (min-width: 62rem) { .hm-cards--2 { grid-template-columns: repeat(2, 1fr); } .hm-cards--4 { grid-template-columns: repeat(4, 1fr); } }
.hm-split--noimg { grid-template-columns: minmax(0, 46rem) !important; justify-content: center; }
.hm-prose--center { margin-inline: auto; }
.hm-split .hm-prose { max-width: none; }
.hm-checklist h3 { font-size: 1.125rem; margin-bottom: 0.25rem; }
.hm-notice__title { margin: 0 0 0.3rem; font-size: var(--hm-fs-h3); }
.hm-contact-card__title { margin: 0; font-size: 1.1875rem; }
.hm-nextsteps { margin: 0; padding: 0; list-style: none; counter-reset: hm-next; display: grid; gap: 1rem; }
.hm-nextsteps li { counter-increment: hm-next; display: grid; grid-template-columns: auto 1fr; column-gap: 0.9rem; }
.hm-nextsteps li::before { content: counter(hm-next, decimal-leading-zero); grid-row: span 2; font: 600 1.05rem/1.5 var(--hm-font-display); color: var(--hm-gold-700); }
.hm-nextsteps b { font: 600 1.0625rem/1.3 var(--hm-font-display); color: var(--hm-green-800); }
.hm-nextsteps span { grid-column: 2; font-size: var(--hm-fs-sm); color: var(--hm-ink-2); }
.hm-video { position: relative; aspect-ratio: 16 / 9; border-radius: var(--hm-r-lg); overflow: hidden; background: var(--hm-green-800); box-shadow: var(--hm-shadow-2); }
div.hm-video img, div.hm-video iframe, div.hm-video video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; }
.hm-video__play { position: absolute; inset: 0; margin: auto; width: 4.5rem; height: 4.5rem; border: 0; border-radius: 50%; background: var(--hm-orange-500); color: var(--hm-green-950); cursor: pointer; box-shadow: 0 6px 24px rgba(6, 35, 29, 0.35); display: grid; place-items: center; }
.hm-video__play svg { width: 2rem; height: 2rem; margin-left: 0.2rem; }
.hm-video-solo { max-width: 56rem; margin-inline: auto; }
@media (min-width: 56rem) { .hm-split--video { align-items: center; } }
.hm-video__text > p:first-child, .hm-video__text > .hm-clamp > p:first-child { font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem); line-height: 1.65; color: var(--hm-c-text); }
.hm-map iframe { display: block; }
/* Elementor wraps every widget; our bands must touch each other and the screen edges. */
.elementor-widget[class*="elementor-widget-hm-"] { width: 100%; margin: 0 !important; }

/* Long text beside a picture: the picture stays in view while the text scrolls. */
@media (min-width: 56rem) { .hm-split--long { align-items: start; } .hm-split--long .hm-split__media { position: sticky; top: calc(var(--hm-header-h) + 1.5rem); } }

/* ============ picture viewer (zoom.js) ============ */
a[data-hm-zoom] { display: block; cursor: zoom-in; }
html.hm-zoom-open { overflow: hidden; }
dialog.hm-zoom { position: fixed; inset: 0; width: 100vw; height: 100vh; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; overflow: hidden; background: rgba(6, 35, 29, 0.96); color: #fff; }
dialog.hm-zoom::backdrop { background: rgba(6, 35, 29, 0.96); }
.hm-zoom figure { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.75rem; width: 100%; height: 100%; margin: 0; padding: 4.25rem 1rem max(1.25rem, env(safe-area-inset-bottom)); box-sizing: border-box; }
.hm-zoom figure img { display: block; width: auto; height: auto; max-width: 100%; max-height: calc(100vh - 9rem); max-height: calc(100dvh - 9rem); object-fit: contain; border-radius: var(--hm-r-md); background: var(--hm-green-900); }
.hm-zoom figcaption { max-width: 44rem; font-size: var(--hm-fs-sm); line-height: 1.4; text-align: center; color: rgba(255, 255, 255, 0.86); }
.hm-zoom__btn { position: absolute; z-index: 1; display: grid; place-items: center; width: 3rem; height: 3rem; padding: 0; border: 1px solid rgba(255, 255, 255, 0.4); border-radius: 50%; background: rgba(6, 35, 29, 0.72); color: #fff; cursor: pointer; transition: background-color 0.2s, color 0.2s, border-color 0.2s; }
.hm-zoom__btn:hover, .hm-zoom__btn:focus-visible { background: var(--hm-gold-500); border-color: var(--hm-gold-500); color: var(--hm-green-950); }
.hm-zoom__btn:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.hm-zoom__close { top: max(0.75rem, env(safe-area-inset-top)); right: 0.75rem; }
.hm-zoom__prev, .hm-zoom__next { top: 50%; transform: translateY(-50%); }
.hm-zoom__prev { left: 0.75rem; }
.hm-zoom__next { right: 0.75rem; }
.hm-zoom--single .hm-zoom__prev, .hm-zoom--single .hm-zoom__next { display: none; }
@media (max-width: 35.99rem) {
  .hm-zoom__prev, .hm-zoom__next { top: auto; bottom: max(0.75rem, env(safe-area-inset-bottom)); transform: none; }
  .hm-zoom figure { padding-bottom: 4.5rem; }
  .hm-zoom figure img { max-height: calc(100vh - 12rem); max-height: calc(100dvh - 12rem); }
}

/* ============ hm-topic: a long text in easy pieces ============ */
.hm-topic__top { display: grid; gap: var(--hm-s-5); }
.hm-topic__head > :last-child { margin-bottom: 0; }
.hm-topic__title { margin: 0 0 0.6em; max-width: 22ch; }
.hm-topic__top--split .hm-topic__title { margin-bottom: 0; }
.hm-topic__intro { max-width: 40rem; color: var(--hm-c-muted); }
.hm-topic__intro > p:first-child { font-size: clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem); line-height: 1.65; color: var(--hm-c-text); }
@media (min-width: 62rem) {
  .hm-topic__top--split { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--hm-s-8); align-items: start; }
  .hm-topic__top--aside { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--hm-s-8); align-items: center; }
}

/* Picture and summary box beside the introduction. */
.hm-topic__summary { overflow: hidden; background: var(--hm-white); border: 1px solid var(--hm-line); border-radius: var(--hm-r-lg); box-shadow: var(--hm-shadow-2); }
.hm-topic__media a, .hm-topic__media img { display: block; }
.hm-topic .hm-topic__media img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.hm-topic__summary-body { padding: 1.35rem 1.4rem 1.5rem; border-top: 3px solid var(--hm-gold-500); }
.hm-topic__summary-title { display: flex; align-items: center; gap: 0.6rem; margin: 0 0 0.9rem; font-size: 1.25rem; line-height: 1.25; }
.hm-topic__summary-title svg { flex: none; width: 1.75rem; height: 1.75rem; padding: 0.35rem; border-radius: 50%; background: var(--hm-c-tick-bg); color: var(--hm-c-tick); }
.hm-topic__summary .hm-prose { font-size: var(--hm-fs-sm); }
.hm-topic__summary .hm-prose ul > li { margin-bottom: 0.6em; }

/* One card per part. */
.hm-topic__cards { display: grid; gap: var(--hm-s-4); margin-top: clamp(1.75rem, 1.3rem + 2vw, 3rem); }
@media (min-width: 48rem) { .hm-topic__cards--2, .hm-topic__cards--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--hm-s-5); } }
@media (min-width: 64rem) { .hm-topic__cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.hm-topic-card { position: relative; display: flex; flex-direction: column; gap: 0.7rem; min-width: 0; padding: clamp(1.25rem, 1rem + 1vw, 1.75rem); background: var(--hm-white); border: 1px solid var(--hm-line); border-radius: var(--hm-r-lg); box-shadow: var(--hm-shadow-1); }
.hm-topic-card::before { content: ""; position: absolute; inset: -1px -1px auto; height: 3px; border-radius: var(--hm-r-lg) var(--hm-r-lg) 0 0; background: linear-gradient(90deg, var(--hm-gold-700), var(--hm-gold-500) 55%, var(--hm-gold-300)); }
.hm-topic-card__top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.hm-topic-card__icon { flex: none; width: 3rem; height: 3rem; padding: 0.72rem; border-radius: var(--hm-r-md); background: var(--hm-green-100); color: var(--hm-green-700); }
.hm-topic-card__figure { margin: 0; font: 600 clamp(1.75rem, 1.45rem + 1vw, 2.25rem)/1 var(--hm-font-display); letter-spacing: -0.01em; color: var(--hm-gold-700); }
.hm-topic-card__title { margin: 0.2rem 0 0; font-size: clamp(1.1875rem, 1.1rem + 0.3vw, 1.3125rem); line-height: 1.3; }
.hm-topic-card__text { max-width: none; font-size: 0.96875rem; line-height: 1.65; color: var(--hm-c-muted); }
.hm-topic-card__text > * + * { margin-top: 0.85em; }
.hm-topic-card__text strong, .hm-topic-card__text b { color: var(--hm-c-text); }
.hm-topic-card .hm-prose ul > li { margin-bottom: 0.4em; }
/* A quote inside a card reads as a small testimonial. */
.hm-topic-card .hm-prose blockquote { position: relative; margin: 0.35rem 0 0; padding: 0.95rem 1rem 0.95rem 2.75rem; border: 0; border-radius: var(--hm-r-md); background: var(--hm-green-50); font: italic 400 1rem/1.55 var(--hm-font-display); color: var(--hm-green-800); }
.hm-topic-card .hm-prose blockquote::before { content: "\201C"; position: absolute; left: 0.75rem; top: 0.35rem; font: 600 2.5rem/1 var(--hm-font-display); color: var(--hm-gold-500); }
.hm-topic-card .hm-prose blockquote p { margin: 0; }
/* A small table fits the card instead of scrolling sideways. */
.hm-topic-card .hm-table-wrap { margin-top: 0.35rem; overflow: hidden; }
.hm-topic-card .hm-prose table { min-width: 0; font-size: 0.875rem; }
.hm-topic-card .hm-prose th, .hm-topic-card .hm-prose td { padding: 0.55rem 0.8rem; }

/* Closing words and the button. */
.hm-topic__outro { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; margin-top: clamp(1.5rem, 1.2rem + 1.5vw, 2.5rem); padding: 1.25rem 1.5rem; border: 1px solid var(--hm-c-line); border-left: 3px solid var(--hm-gold-500); border-radius: var(--hm-r-md); }
.hm-topic__outro .hm-prose { flex: 1 1 26rem; max-width: 52rem; font-weight: 500; color: var(--hm-c-heading); }
.hm-topic__outro .hm-prose > * { margin-bottom: 0; }
.hm-topic__outro--button { padding: 0; border: 0; }
/* Closing words without a button: a centred statement under a short gold rule. */
.hm-topic__outro--text { flex-direction: column; justify-content: center; gap: 1rem; padding: 0; border: 0; text-align: center; }
.hm-topic__outro--text::before { content: ""; width: 3rem; height: 2px; border-radius: 2px; background: var(--hm-gold-500); }
.hm-topic__outro--text .hm-prose { flex: none; max-width: 42rem; font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.1875rem); line-height: 1.6; }
.hm-topic__btn { margin: 0; }
@media (max-width: 35.99rem) { .hm-topic__btn, .hm-topic__btn .hm-btn { width: 100%; } .hm-topic__btn .hm-btn { justify-content: center; } }

/* ============ "Read more" for long text (forms.js) ============ */
.hm-clamp > * + * { margin-top: 1em; }
.hm-clamp > :first-child { margin-top: 0; }
.hm-js .hm-clamp:not(.is-open) { max-height: calc(var(--hm-clamp-lines, 12) * 1.65em); overflow: hidden; }
.hm-clamp.is-clamped:not(.is-open) { -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 3.5em), transparent); mask-image: linear-gradient(to bottom, #000 calc(100% - 3.5em), transparent); }
.hm-readmore { display: inline-flex; align-items: center; gap: 0.35rem; min-height: 2.75rem; margin: 0.35rem 0 0; padding: 0.35rem 0; border: 0; background: none; font: 650 0.9375rem/1.2 var(--hm-font-body); color: var(--hm-c-link); cursor: pointer; }
.hm-readmore:hover { color: var(--hm-c-link-hover); text-decoration: underline; text-underline-offset: 0.2em; }
.hm-readmore:focus-visible { outline: 2px solid var(--hm-gold-500); outline-offset: 3px; border-radius: 4px; }
.hm-readmore svg { width: 1.1rem; height: 1.1rem; transition: transform 0.2s var(--hm-ease); }
.hm-readmore[aria-expanded="true"] svg { transform: rotate(180deg); }
.hm-prose--center .hm-readmore { margin-inline: auto; }
@media print { .hm-js .hm-clamp:not(.is-open) { max-height: none; overflow: visible; -webkit-mask-image: none; mask-image: none; } .hm-readmore { display: none; } }

/* Topic: a picture as the first tile, card title links, longer closing text. */
.hm-topic-card--media { display: block; position: relative; min-height: 15rem; padding: 0; overflow: hidden; margin: 0; }
.hm-topic-card--media::before { display: none; }
.hm-topic-card--media a { position: absolute; inset: 0; display: block; }
.hm-topic .hm-topic-card--media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hm-topic-card__title a { color: inherit; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size 0.25s var(--hm-ease); }
.hm-topic-card__title a:hover, .hm-topic-card__title a:focus-visible { background-size: 100% 1px; }
.hm-topic__outro--prose { display: block; padding: 0; border: 0; }
.hm-topic__outro--prose .hm-prose { max-width: 46rem; font-weight: 400; color: var(--hm-c-text); }
.hm-topic__outro--prose .hm-topic__btn { margin-top: var(--hm-s-4); }

/* Topic: a certification logo with its number on a card; a band that continues the one above. */
/* Higher specificity than Elementor's ".elementor img { height: auto }", which would show the logos at full size. */
.hm-topic .hm-topic-card__top img.hm-topic-card__badge { display: block; width: auto; height: 3.25rem; max-width: 8rem; object-fit: contain; }
.hm-topic-card__top:has(.hm-topic-card__badge) { min-height: 3.25rem; flex-wrap: wrap; }
.hm-topic-card__no { padding: 0.3rem 0.7rem; border-radius: var(--hm-r-pill); background: var(--hm-gold-100, #f3ead3); color: var(--hm-gold-700); font: 650 0.8125rem/1.2 var(--hm-font-body); letter-spacing: 0.02em; }
.hm-section--join { padding-top: 0; }
.hm-section--join .hm-topic__cards:first-child { margin-top: 0; }
.hm-section--join .hm-topic__top { margin-bottom: var(--hm-s-4); }

/* Columns chosen in Elementor (Style → Cards → Columns). Computer, tablet and phone are set separately, so a
   four-column choice for computers never squeezes phones. Breakpoints are Elementor's: tablet ≤ 1024 px, phone ≤ 767 px. */
@media (min-width: 1025px) {
  .hm-cols-1 :is(.hm-cards, .hm-tiles, .hm-topic__cards, .hm-trust__in, .hm-accred, .hm-logos, .hm-checklist, .hm-contact-cards, .hm-faq) { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .hm-cols-2 :is(.hm-cards, .hm-tiles, .hm-topic__cards, .hm-trust__in, .hm-accred, .hm-logos, .hm-checklist, .hm-contact-cards, .hm-faq) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hm-cols-3 :is(.hm-cards, .hm-tiles, .hm-topic__cards, .hm-trust__in, .hm-accred, .hm-logos, .hm-checklist, .hm-contact-cards, .hm-faq) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hm-cols-4 :is(.hm-cards, .hm-tiles, .hm-topic__cards, .hm-trust__in, .hm-accred, .hm-logos, .hm-checklist, .hm-contact-cards, .hm-faq) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .hm-cols-5 :is(.hm-cards, .hm-tiles, .hm-topic__cards, .hm-trust__in, .hm-accred, .hm-logos, .hm-checklist, .hm-contact-cards, .hm-faq) { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .hm-cols-6 :is(.hm-cards, .hm-tiles, .hm-topic__cards, .hm-trust__in, .hm-accred, .hm-logos, .hm-checklist, .hm-contact-cards, .hm-faq) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .hm-cols-tablet-1 :is(.hm-cards, .hm-tiles, .hm-topic__cards, .hm-trust__in, .hm-accred, .hm-logos, .hm-checklist, .hm-contact-cards, .hm-faq) { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .hm-cols-tablet-2 :is(.hm-cards, .hm-tiles, .hm-topic__cards, .hm-trust__in, .hm-accred, .hm-logos, .hm-checklist, .hm-contact-cards, .hm-faq) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hm-cols-tablet-3 :is(.hm-cards, .hm-tiles, .hm-topic__cards, .hm-trust__in, .hm-accred, .hm-logos, .hm-checklist, .hm-contact-cards, .hm-faq) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hm-cols-tablet-4 :is(.hm-cards, .hm-tiles, .hm-topic__cards, .hm-trust__in, .hm-accred, .hm-logos, .hm-checklist, .hm-contact-cards, .hm-faq) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .hm-cols-tablet-5 :is(.hm-cards, .hm-tiles, .hm-topic__cards, .hm-trust__in, .hm-accred, .hm-logos, .hm-checklist, .hm-contact-cards, .hm-faq) { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .hm-cols-tablet-6 :is(.hm-cards, .hm-tiles, .hm-topic__cards, .hm-trust__in, .hm-accred, .hm-logos, .hm-checklist, .hm-contact-cards, .hm-faq) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .hm-cols-mobile-1 :is(.hm-cards, .hm-tiles, .hm-topic__cards, .hm-trust__in, .hm-accred, .hm-logos, .hm-checklist, .hm-contact-cards, .hm-faq) { grid-template-columns: repeat(1, minmax(0, 1fr)); }
  .hm-cols-mobile-2 :is(.hm-cards, .hm-tiles, .hm-topic__cards, .hm-trust__in, .hm-accred, .hm-logos, .hm-checklist, .hm-contact-cards, .hm-faq) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hm-cols-mobile-3 :is(.hm-cards, .hm-tiles, .hm-topic__cards, .hm-trust__in, .hm-accred, .hm-logos, .hm-checklist, .hm-contact-cards, .hm-faq) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hm-cols-mobile-4 :is(.hm-cards, .hm-tiles, .hm-topic__cards, .hm-trust__in, .hm-accred, .hm-logos, .hm-checklist, .hm-contact-cards, .hm-faq) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .hm-cols-mobile-5 :is(.hm-cards, .hm-tiles, .hm-topic__cards, .hm-trust__in, .hm-accred, .hm-logos, .hm-checklist, .hm-contact-cards, .hm-faq) { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .hm-cols-mobile-6 :is(.hm-cards, .hm-tiles, .hm-topic__cards, .hm-trust__in, .hm-accred, .hm-logos, .hm-checklist, .hm-contact-cards, .hm-faq) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

/* Key facts: the short answer beside a list of facts (who, where, when, price, guarantee). */
.hm-facts { display: grid; gap: var(--hm-s-6); align-items: start; }
@media (min-width: 62rem) { .hm-facts { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: var(--hm-s-7); } }
.hm-facts__answer .hm-head { margin-bottom: var(--hm-s-4); }
.hm-facts__summary { margin: 0; font-size: var(--hm-fs-lead); line-height: 1.6; color: var(--hm-c-text); }
.hm-facts__updated { margin: var(--hm-s-4) 0 var(--hm-s-5); font-size: var(--hm-fs-xs); color: var(--hm-c-faint); }
.hm-facts__list {
  --hm-c-text: var(--hm-ink); color: var(--hm-ink);
  display: grid; margin: 0; overflow: hidden;
  background: var(--hm-white); border: 1px solid var(--hm-line); border-top: 3px solid var(--hm-gold-500); border-radius: var(--hm-r-lg);
  box-shadow: 0 10px 30px rgba(6, 35, 29, 0.06);
}
.hm-facts__row { display: grid; grid-template-columns: 1.5rem minmax(7rem, 9.5rem) minmax(0, 1fr); gap: 0.4rem 0.9rem; align-items: start; padding: 0.85rem 1.15rem; border-top: 1px solid var(--hm-line); }
.hm-facts__row:first-child { border-top: 0; }
.hm-facts__row svg { width: 1.25rem; height: 1.25rem; margin-top: 0.1rem; color: var(--hm-green-600); }
.hm-facts__row dt { color: var(--hm-ink-3); font-size: var(--hm-fs-sm); font-weight: 600; line-height: 1.45; }
.hm-facts__row dd { margin: 0; color: var(--hm-ink); font-weight: 600; line-height: 1.45; }
@media (max-width: 35.99rem) {
  .hm-facts__row { grid-template-columns: 1.5rem minmax(0, 1fr); }
  .hm-facts__row dd { grid-column: 2; font-weight: 500; }
}
/* A section heading inside text (questions and answers) keeps the heading spacing, not the article spacing. */
.hm-prose > .hm-head :is(h1, h2, h3, h4) { margin-top: 0; }

/* Two sections in a row with the same background read as one: one gap between them, not two. */
.elementor-widget:has(> .elementor-widget-container > .hm-section--white) + .elementor-widget > .elementor-widget-container > .hm-section--white,
.elementor-widget:has(> .elementor-widget-container > .hm-section--cream) + .elementor-widget > .elementor-widget-container > .hm-section--cream,
.elementor-widget:has(> .elementor-widget-container > .hm-section--green) + .elementor-widget > .elementor-widget-container > .hm-section--green,
.elementor-widget:has(> .elementor-widget-container > .hm-section:not(.hm-section--white, .hm-section--cream, .hm-section--green)) + .elementor-widget > .elementor-widget-container > .hm-section:not(.hm-section--white, .hm-section--cream, .hm-section--green) { padding-top: 0; }

/* Key facts: a real photo under the short answer. */
.hm-facts .hm-facts__media { margin: var(--hm-s-5) 0 0; }
.hm-facts .hm-facts__media img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--hm-r-lg); box-shadow: 0 10px 30px rgba(6, 35, 29, 0.1); }
/* A real photo that replaced a stock picture inside old text. */
.hm-band img.hm-inline-img { display: block; width: min(100%, 22rem); height: auto; margin: var(--hm-s-4) 0; border-radius: var(--hm-r-md); }

/* Topics to open: sticky side (heading, photo, buttons) beside a numbered list of topics. */
.hm-acc { display: grid; gap: var(--hm-s-6); align-items: start; }
@media (min-width: 62rem) {
  .hm-acc { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: var(--hm-s-7); }
  .hm-acc__side { position: sticky; top: calc(var(--hm-header-h, 5rem) + 1.5rem); }
}
.hm-acc__side .hm-head { margin-bottom: var(--hm-s-5); }
.hm-acc .hm-acc__media { margin: 0 0 var(--hm-s-5); }
.hm-acc .hm-acc__media img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--hm-r-lg); box-shadow: 0 10px 30px rgba(6, 35, 29, 0.1); }
@media (max-width: 61.99rem) { .hm-acc .hm-acc__media { display: none; } }
.hm-acc__list { display: grid; gap: 0.75rem; }
.hm-acc__item { --hm-c-text: var(--hm-ink); background: var(--hm-white); border: 1px solid var(--hm-line); border-radius: var(--hm-r-lg); transition: border-color 0.2s, box-shadow 0.2s; }
.hm-acc__item[open] { border-color: var(--hm-gold-500); box-shadow: 0 12px 32px rgba(6, 35, 29, 0.08); }
.hm-acc__item summary { display: flex; align-items: center; gap: 1rem; min-height: 4rem; padding: 1rem 1.25rem; cursor: pointer; list-style: none; }
.hm-acc__item summary::-webkit-details-marker { display: none; }
.hm-acc__item summary:focus-visible { outline: 3px solid var(--hm-gold-500); outline-offset: 2px; border-radius: var(--hm-r-lg); }
.hm-acc__no { flex: none; font: 600 0.95rem/1 var(--hm-font-display); color: var(--hm-gold-700); font-variant-numeric: tabular-nums; }
.hm-acc .hm-acc__title { flex: 1; margin: 0; font-family: var(--hm-font-body); font-size: 1.0625rem; font-weight: 650; line-height: 1.35; color: var(--hm-green-800); }
.hm-acc__item summary svg { flex: none; width: 1.25rem; height: 1.25rem; color: var(--hm-gold-700); transition: transform 0.2s var(--hm-ease); }
.hm-acc__item[open] summary svg { transform: rotate(45deg); }
.hm-acc__body { padding: 0 1.25rem 1.25rem 3.15rem; color: var(--hm-ink-2); }
.hm-acc__body > :first-child { margin-top: 0; }
@media (max-width: 35.99rem) { .hm-acc__body { padding-left: 1.25rem; } }

/* Checklist as compact chips (areas covered). */
.hm-checklist--chips ul { display: flex; flex-wrap: wrap; gap: 0.45rem; margin: 0; padding: 0; list-style: none; }
.hm-checklist--chips li { display: inline-flex; padding: 0.4rem 0.8rem; border: 1px solid var(--hm-c-line); border-radius: var(--hm-r-pill); font-size: var(--hm-fs-sm); line-height: 1.3; }
.hm-checklist--chips h3 { margin-bottom: 0.75rem; font-size: 1rem; }
/* Old headings inside a topic read as small sub-headings, not page headings. */
.hm-acc .hm-acc__body :is(h1, h2, h3, h4, h5) { margin: 1.1em 0 0.4em; font-family: var(--hm-font-body); font-size: 1rem; font-weight: 650; line-height: 1.4; color: var(--hm-green-800); }
.hm-acc .hm-acc__body > :is(h1, h2, h3, h4, h5):first-child { margin-top: 0; }
.hm-acc .hm-acc__body p:empty, .hm-acc .hm-acc__body p:has(> br:only-child) { display: none; }
.hm-acc .hm-acc__side .hm-btn-row { margin-top: var(--hm-s-5); }
.hm-acc .hm-acc__side .hm-head + .hm-btn-row { margin-top: 0; }
