/* Public homepage, built on the shared Hram24 tokens. No widget/cabinet rules. */
html:root body._v2:has(.h24-home) { background: var(--h24-color-bg); }
html:root body._v2 .h24-home {
  max-width: var(--h24-size-container);
  padding: var(--h24-space-xl) var(--h24-space-md) var(--h24-space-xxl);
  color: var(--h24-color-text);
  font-family: var(--h24-font-sans);
}
html:root .h24-home :is(h1, h2, h3) { text-wrap: balance; }
html:root .h24-home p { text-wrap: pretty; }
html:root .h24-home__hero {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: var(--h24-space-xxl);
  align-items: center;
  padding: var(--h24-space-lg) 0 var(--h24-space-xxl);
}
html:root body._v2:not(.body-admin):not(.h24-site) .h24-home h1 {
  max-width: 23ch;
  margin: 0 0 var(--h24-space-md);
  font-size: var(--h24-type-display-size);
  line-height: var(--h24-type-display-line);
}
html:root .h24-home__lead {
  max-width: 51ch;
  margin: 0 0 var(--h24-space-lg);
  color: var(--h24-color-text-muted);
  font-size: var(--h24-type-body-size);
  line-height: 1.7;
}
html:root .h24-home__actions { display: flex; flex-wrap: wrap; gap: var(--h24-space-sm); }
html:root .h24-home .btn {
  min-height: var(--h24-size-tap);
  padding: var(--h24-space-sm) var(--h24-space-lg);
  border-radius: var(--h24-radius-md);
  font-size: var(--h24-type-body-size);
  font-weight: 400;
  line-height: var(--h24-type-body-line);
  box-shadow: none;
}
html:root .h24-home__more {
  display: inline-flex;
  align-items: center;
  gap: var(--h24-space-xs);
  min-height: var(--h24-size-tap-min);
  margin-top: var(--h24-space-xs);
  font-size: var(--h24-type-label-size);
  text-decoration: underline;
  text-underline-offset: .2em;
}
html:root .h24-home__services {
  display: grid;
  gap: var(--h24-space-sm);
  margin: 0;
  padding: 0;
  list-style: none;
}
html:root .h24-home__services li {
  display: flex;
  align-items: flex-start;
  gap: var(--h24-space-md);
  padding: var(--h24-space-md);
  background: var(--h24-color-surface);
  border: 1px solid var(--h24-color-border);
  border-radius: var(--h24-radius-lg);
}
html:root .h24-home__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 var(--h24-size-tap-min);
  width: var(--h24-size-tap-min);
  height: var(--h24-size-tap-min);
  border-radius: var(--h24-radius-md);
  background: var(--h24-color-primary-container);
  color: var(--h24-color-on-primary-container);
  font-size: var(--h24-type-h4-size);
}
html:root .h24-home__services strong,
html:root .h24-home__steps strong { display: block; font-weight: 700; line-height: 1.5; }
html:root .h24-home__services p,
html:root .h24-home__steps p {
  margin: var(--h24-space-xxs) 0 0;
  color: var(--h24-color-text-muted);
  font-size: var(--h24-type-body-sm-size);
  line-height: 1.6;
}
html:root .h24-home__catalog { padding-top: var(--h24-space-lg); }
html:root .h24-home__catalog-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--h24-space-xs) var(--h24-space-md);
  margin-bottom: var(--h24-space-md);
}
html:root .h24-home h2 { margin: 0; font-size: var(--h24-type-h2-size); line-height: var(--h24-type-h2-line); }
html:root .h24-home__catalog-head p { margin: 0; color: var(--h24-color-text-muted); font-size: var(--h24-type-body-sm-size); }
html:root .h24-home__search { display: flex; gap: var(--h24-space-xs); }
html:root .h24-home__search-field { position: relative; flex: 1; min-width: 0; }
html:root .h24-home__search-field > span {
  position: absolute;
  inset-inline-start: var(--h24-space-md);
  top: 50%;
  transform: translateY(-50%);
  color: var(--h24-color-text-muted);
  pointer-events: none;
}
html:root .h24-home .h24-home__search input {
  height: var(--h24-size-tap);
  padding: var(--h24-space-sm) var(--h24-space-md) var(--h24-space-sm) var(--h24-space-xxl);
  border: 1px solid var(--h24-color-border-strong);
  border-radius: var(--h24-radius-md);
  background: var(--h24-color-surface);
  color: var(--h24-color-text);
  font: inherit;
  box-shadow: none;
}
html:root .h24-home__search input::placeholder { color: var(--h24-color-text-muted); opacity: 1; font-style: normal; }
html:root .h24-home__filters {
  display: flex;
  flex-wrap: wrap;
  gap: var(--h24-space-xs);
  margin: var(--h24-space-md) 0 var(--h24-space-lg);
}
html:root .h24-home__filters a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--h24-space-xs);
  min-height: var(--h24-size-tap-min);
  padding: var(--h24-space-xs) var(--h24-space-md);
  border: 1px solid var(--h24-color-border);
  border-radius: var(--h24-radius-pill);
  background: var(--h24-color-surface);
  color: var(--h24-color-text);
  font-size: var(--h24-type-body-sm-size);
  line-height: var(--h24-type-body-sm-line);
  text-decoration: none;
}
html:root .h24-home__filters a:hover { border-color: var(--h24-color-border-strong); }
html:root .h24-home__filters a[aria-current] {
  border-color: var(--h24-color-primary-container);
  background: var(--h24-color-primary-container);
  color: var(--h24-color-on-primary-container);
  font-weight: 400;
}
html:root .h24-home__filters .h24-home__reset { border-color: transparent; background: transparent; color: var(--h24-color-link); }
html:root .h24-home__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--h24-space-lg); }
html:root .h24-home-temple {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--h24-color-border);
  border-radius: var(--h24-radius-lg);
  background: var(--h24-color-surface);
  transition: border-color var(--h24-motion-fast) var(--h24-motion-easing);
}
html:root .h24-home-temple:is(:hover, :focus-within) { border-color: var(--h24-color-border-strong); }
html:root .h24-home-temple__photo { position: relative; display: block; flex-shrink: 0; overflow: hidden; aspect-ratio: 1; background: var(--h24-color-surface-sunken); }
html:root .h24-home-temple__photo img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
html:root .h24-home-temple__body { display: flex; flex-direction: column; flex: 1; padding: var(--h24-space-md); }
html:root .h24-home-temple h3 { margin: 0 0 var(--h24-space-xs); font-size: var(--h24-type-h4-size); line-height: var(--h24-type-h4-line); }
html:root .h24-home-temple h3 a { display: inline-flex; align-items: center; min-height: var(--h24-size-tap-min); color: var(--h24-color-text); text-decoration: none; }
html:root .h24-home-temple h3 a:hover { color: var(--h24-color-link); text-decoration: underline; }
html:root .h24-home-temple__city { margin: 0 0 var(--h24-space-md); color: var(--h24-color-text-muted); font-size: var(--h24-type-body-sm-size); }
/* Compact text links follow the supplied homepage reference. */
html:root .h24-home-temple__links {
  display: flex;
  flex-wrap: wrap;
  gap: var(--h24-space-xxs) var(--h24-space-sm);
  margin: auto 0 0;
  padding: var(--h24-space-sm) 0 0;
  border-top: 1px solid var(--h24-color-border);
  list-style: none;
}
html:root .h24-home-temple__links a { padding: calc(var(--h24-space-xxs) / 2) 0; font-size: var(--h24-type-caption-size); text-decoration: none; }
html:root .h24-home-temple__links a:hover { text-decoration: underline; }
html:root .h24-home__pagination { margin-top: var(--h24-space-lg); }
html:root .h24-home__pagination .pagination { flex-wrap: wrap; gap: var(--h24-space-xxs); margin: 0; }
html:root .h24-home__pagination .page-link { display: flex; align-items: center; justify-content: center; min-width: var(--h24-size-tap-min); min-height: var(--h24-size-tap-min); margin: 0; border-radius: var(--h24-radius-sm); font-size: var(--h24-type-body-sm-size); }
/* The old common-dark layer uses !important for pagination backgrounds. */
html:root .h24-home__pagination .page-link { border-color: var(--h24-color-border); background-color: var(--h24-color-surface) !important; color: var(--h24-color-link); }
html:root .h24-home__pagination a.page-link:hover { border-color: var(--h24-color-border-strong); background-color: var(--h24-color-primary-container) !important; color: var(--h24-color-on-primary-container); }
html:root .h24-home__pagination .page-item.active .page-link { border-color: var(--h24-color-primary); background-color: var(--h24-color-primary) !important; color: var(--h24-color-on-primary); }
html:root .h24-home__pagination .page-item.disabled .page-link { color: var(--h24-color-text-muted); }
html:root .h24-home__empty { padding: var(--h24-space-xxl) var(--h24-space-md); border: 1px solid var(--h24-color-border); border-radius: var(--h24-radius-lg); background: var(--h24-color-surface); text-align: center; }
html:root .h24-home__empty p { margin: var(--h24-space-md) auto var(--h24-space-lg); color: var(--h24-color-text-muted); }
html:root .h24-home__about {
  margin-top: calc(var(--h24-space-xl) * 2);
  padding: var(--h24-space-xl);
  border: 1px solid var(--h24-color-border);
  border-radius: var(--h24-radius-xl);
  background: var(--h24-color-surface);
}
html:root .h24-home__about h2 { margin: 0 0 var(--h24-space-lg); font-size: 1.5rem; }
html:root .h24-home__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--h24-space-lg); padding: 0; margin: 0; list-style: none; }
html:root .h24-home__step-number { display: inline-grid; place-items: center; width: var(--h24-space-xl); height: var(--h24-space-xl); margin-bottom: var(--h24-space-sm); border-radius: var(--h24-radius-pill); background: var(--h24-color-primary-container); color: var(--h24-color-on-primary-container); font-size: var(--h24-type-label-size); font-weight: 400; font-variant-numeric: tabular-nums; }
html:root .h24-home__steps strong { margin: 0 0 var(--h24-space-xxs); text-wrap: pretty; }
html:root .h24-home__steps p { margin: 0; font-size: var(--h24-type-label-size); line-height: 1.5; }
@media (max-width: 900px) {
  html:root .h24-home__about { margin-top: var(--h24-space-xxl); padding: var(--h24-space-lg); border-radius: var(--h24-radius-lg); }
  html:root .h24-home__about h2 { margin-bottom: var(--h24-space-md); font-size: var(--h24-type-h3-size); }
  html:root .h24-home__steps { gap: var(--h24-space-md); }
  html:root .h24-home__steps p { font-size: var(--h24-type-body-sm-size); }
  html:root .h24-home__steps li { position: relative; }
  html:root .h24-home__steps li:not(:last-child)::after { content: ""; position: absolute; left: calc(var(--h24-space-xl) + var(--h24-space-xs)); right: calc(-1 * var(--h24-space-md) - var(--h24-space-xxs) / 2); top: calc(var(--h24-space-xl) / 2 - 1px); height: calc(var(--h24-space-xxs) / 2); background: var(--h24-color-border); }
}
@media (max-width: 640px) {
  html:root .h24-home__about { margin-top: var(--h24-space-xl); padding: var(--h24-space-md); }
  html:root .h24-home__steps { grid-template-columns: 1fr; }
  html:root .h24-home__steps li { display: grid; grid-template-columns: var(--h24-space-xl) minmax(0, 1fr); column-gap: var(--h24-space-sm); align-items: start; }
  html:root .h24-home__step-number { grid-column: 1; grid-row: 1 / span 2; margin: 0; }
  html:root .h24-home__steps strong { grid-column: 2; margin: calc(var(--h24-space-xxs) + 1px) 0 calc(var(--h24-space-xxs) / 2); font-size: var(--h24-type-label-size); }
  html:root .h24-home__steps p { grid-column: 2; }
  html:root .h24-home__steps li:not(:last-child)::after { left: calc(var(--h24-space-xl) / 2 - 1px); top: calc(var(--h24-space-xl) + var(--h24-space-xs)); bottom: calc(-1 * var(--h24-space-md) + var(--h24-space-xxs)); right: auto; width: calc(var(--h24-space-xxs) / 2); height: auto; }
}
html:root .h24-home :is(a, button, input):focus-visible { outline: 3px solid var(--h24-color-focus); outline-offset: 3px; }
@media (max-width: 991px) {
  html:root .h24-home__hero { grid-template-columns: 1fr; gap: var(--h24-space-lg); }
  html:root body._v2:not(.body-admin):not(.h24-site) .h24-home h1 { max-width: 26ch; font-size: var(--h24-type-h1-size); line-height: var(--h24-type-h1-line); }
  html:root .h24-home__services { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  html:root .h24-home__services li { flex-direction: column; }
  html:root .h24-home__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--h24-space-md); }
}
@media (max-width: 767px) {
  html:root .h24-home__services { grid-template-columns: 1fr; }
  html:root .h24-home__services li { flex-direction: row; }
}
@media (max-width: 599px) {
  html:root body._v2 .h24-home { padding-top: var(--h24-space-md); }
  html:root .h24-home__hero { padding-top: var(--h24-space-xs); padding-bottom: var(--h24-space-xl); }
  html:root .h24-home__actions { flex-direction: column; align-items: stretch; }
  html:root .h24-home__grid { grid-template-columns: 1fr; }
  html:root .h24-home__search { flex-direction: column; }
  html:root .h24-home__filters { gap: var(--h24-space-xs) var(--h24-space-xxs); }
  html:root .h24-home__filters a { padding-inline: var(--h24-space-sm); }
}
@media (prefers-reduced-motion: reduce) {
  html:root .h24-home-temple { transition: none; }
}
