/* Horizon: the few things Elementor's panel can't do. Colours/fonts live in Elementor Site Settings. */

/* Paragraph spacing inside text widgets */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-widget-text-editor p { margin-top: 0; }
.elementor-widget-heading .elementor-heading-title a { color: inherit; }

/* Gold horizon arc on navy sections (add CSS class "hz-arc" to any container) */
.hz-arc { position: relative; overflow: hidden; }
.hz-arc::after {
	content: ""; position: absolute; right: -40px; bottom: -30px; width: min(620px, 75%); height: 210px;
	background: url(../assets/arc.svg) no-repeat right bottom / contain; opacity: .5; pointer-events: none;
}
.hz-arc > * { position: relative; z-index: 1; }

/* Small pills and chips */
.hz-pill { align-self: flex-start; }
.hz-pill p { display: inline-block; background: #F3EBDD; color: #0A2B55; border-radius: 999px; padding: 3px 12px; font-size: 13px; font-weight: 600; }
.hz-chips p { display: flex; flex-wrap: wrap; gap: 8px; }
.hz-chip { display: inline-block; background: #F3EBDD; color: #0A2B55; border-radius: 999px; padding: 3px 12px; font-size: 14px; }
.hz-step-num p { display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: #C99A52; color: #0A2B55; }

/* Service link lists (home page) */
.hz-svc-links .elementor-icon-list-item > a { padding: 12px 0; align-items: flex-start; }
.hz-svc-links .elementor-icon-list-icon { order: 2; margin-left: auto; padding-top: 4px; }
.hz-svc-links .elementor-icon-list-text { font-family: Poppins, sans-serif; font-weight: 600; }
.hz-svc-links .hz-sub { display: block; font-family: "Source Sans 3", sans-serif; font-weight: 400; font-size: 15px; color: #4B5563; }
.hz-svc-links .elementor-icon-list-item > a:hover .elementor-icon-list-text { color: #8A5E2A; }

/* Cards lift a little on hover when they contain a link list */
.hz-card { transition: box-shadow .2s ease; }
.hz-card:has(.hz-svc-links):hover { box-shadow: 0 12px 32px rgba(10, 43, 85, .08); }

/* Home hero image + badge */
.hz-hero-media { position: relative; }
.hz-hero-badge { position: absolute !important; left: -18px; bottom: 36px; width: auto !important; max-width: 240px; box-shadow: 0 10px 30px rgba(10, 43, 85, .15); }
@media (max-width: 767px) { .hz-hero-badge { left: 12px; bottom: 16px; } }

/* Breadcrumbs on navy */
.hz-crumbs a { color: inherit; text-decoration: none; }
.hz-crumbs a:hover { text-decoration: underline; }

/* Brand block (mark + name) */
.hz-brand { text-decoration: none; flex: 0 0 auto !important; --width: auto !important; width: auto !important; }
.hz-brand .elementor-heading-title { white-space: nowrap; }

/* Header: logo | menu (takes the free space) | actions */
.hz-header .e-con-inner > .elementor-widget-image { flex: 0 0 auto; }
.hz-header .e-con-inner > .elementor-widget-nav-menu { flex: 1 1 auto; }
.hz-actions.e-con { --width: auto !important; width: auto !important; flex: 0 0 auto; flex-wrap: nowrap !important; }
.hz-nav .elementor-nav-menu--dropdown { box-shadow: 0 14px 34px rgba(10, 43, 85, .12); border: 1px solid #E5E1D8; }
.hz-nav .hz-menu-parent > a { cursor: default; }

/* Mobile menu popup */
.hz-mobile-menu .dialog-message { overflow-y: auto; }
.hz-mobile-menu .elementor-icon-list-item > a { padding: 6px 0; }

/* Domestic violence quick exit: always visible */
.hz-quick-exit { position: fixed !important; right: 16px; bottom: 16px; z-index: 10000; width: auto !important; }
.hz-quick-exit .elementor-button { background: #9B1C1C !important; color: #fff !important; box-shadow: 0 8px 24px rgba(0, 0, 0, .25); }
.hz-quick-exit .elementor-button:focus-visible { outline: 3px solid #D8B070; outline-offset: 2px; }

/* Visible keyboard focus everywhere */
a:focus-visible, button:focus-visible, .elementor-button:focus-visible { outline: 3px solid #C99A52; outline-offset: 2px; }

/* Brand stays on one row on phones too */
.hz-brand.e-con { flex-direction: row !important; }
.hz-svc-links strong { font-weight: 600; }

/* Laptop widths (1025–1280px): keep the menu on one line */
.hz-nav .elementor-nav-menu--main > .elementor-nav-menu { flex-wrap: nowrap; }
@media (max-width: 1280px) {
	.hz-actions .elementor-widget-heading { display: none; }
	.hz-nav .elementor-nav-menu--main .elementor-item { padding-left: 9px !important; padding-right: 9px !important; }
}

/* Articles */
.hz-article h2 { font-family: Poppins, sans-serif; font-weight: 600; color: #0A2B55; font-size: 26px; line-height: 1.25; margin: 36px 0 12px; }
.hz-article p, .hz-article li { font-size: 18px; line-height: 1.7; }
.hz-article ul { padding-left: 1.2em; margin: 0 0 1.2em; }
.hz-article li { margin-bottom: 6px; }
.hz-article a { color: #8A5E2A; text-decoration: underline; }
.hz-posts .elementor-post { padding: 26px; border: 1px solid #E5E1D8; border-radius: 12px; background: #fff; }
.hz-done p { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: #C99A52; color: #0A2B55 !important; }
