/* FindMyHouse child theme: base, header, footer, WooCommerce touch-ups. Brand tokens come from the plugin
   (fmh.css); the fallbacks here keep the header right if the plugin is off. */

html body{ margin: 0; background: #fff; color: var(--fmh-ink, #0b1a3d); font-family: var(--fmh-body, "Noto Sans", "Segoe UI", system-ui, sans-serif); }
h1, h2, h3, h4 { font-family: var(--fmh-display, Poppins, "Segoe UI", system-ui, sans-serif); color: var(--fmh-ink, #0b1a3d); }
a { color: var(--fmh-blue, #0b40ba); }
a:hover { color: var(--fmh-blue-700, #0a35a0); }
.skip-link:focus { position: fixed; left: 12px; top: 12px; z-index: 100000; width: auto; height: auto; clip: auto; padding: 10px 16px; background: #fff; border-radius: 8px; }

/* Header ------------------------------------------------------------------ */
html body .fmh-site-header{ position: sticky; top: 0; z-index: 9000; background: rgba(255, 255, 255, .96); border-bottom: 1px solid #e7eaf1; backdrop-filter: blur(10px); }
.admin-bar .fmh-site-header { top: 32px; }
html body .fmh-site-header__inner{ max-width: 1320px; margin: 0 auto; padding: 0 32px; height: 72px; display: flex; align-items: center; gap: 20px; }
html body .fmh-brand{ display: inline-flex; align-items: center; gap: 8px; text-decoration: none; flex: none; }
html body .fmh-brand img{ height: 42px; width: auto; }
html body .fmh-brand__mark{ display: inline-flex; color: var(--fmh-blue, #0b40ba); }
html body .fmh-brand__mark .fmh-ico{ stroke-width: 2.4; }
html body .fmh-brand__word{ font: 800 24px/1 var(--fmh-display, Poppins, sans-serif); letter-spacing: -.5px; color: var(--fmh-blue, #0b40ba); }
html body .fmh-brand__word--white{ color: #fff; }
html body .fmh-nav{ flex: 1; display: flex; justify-content: center; }
html body .fmh-nav__list{ list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 26px; }
html body .fmh-nav__list > li{ margin: 0; }
html body .fmh-nav__list a, html body .fmh-nav__list .fmh-nav__post{ position: relative; display: inline-flex; align-items: center; gap: 7px; padding: 8px 0; border: 0; background: none; font: 500 14.5px/20px var(--fmh-body, "Noto Sans", sans-serif); color: #4a5168; text-decoration: none; white-space: nowrap; cursor: pointer; }
html body .fmh-nav__ico{ display: inline-flex; color: #6b7287; transition: color .15s; }
html body .fmh-nav__ico .fmh-ico{ stroke-width: 1.7; }
html body .fmh-nav__list a:hover, html body .fmh-nav__list .fmh-nav__post:hover, html body .fmh-nav__list .fmh-nav__post:focus{ color: var(--fmh-ink, #0b1a3d); background: none; }
html body .fmh-nav__list a:hover .fmh-nav__ico, html body .fmh-nav__list .current-menu-item > a .fmh-nav__ico, html body .fmh-nav__list a[aria-current="page"] .fmh-nav__ico{ color: var(--fmh-nav-c, var(--fmh-blue, #0b40ba)); }
html body .fmh-nav__list .fmh-nav__post:hover .fmh-nav__ico{ color: var(--fmh-blue, #0b40ba); }
html body .fmh-nav__list .current-menu-item > a, html body .fmh-nav__list a[aria-current="page"]{ color: var(--fmh-ink, #0b1a3d); font-weight: 600; }
html body .fmh-nav__list .current-menu-item > a::after, html body .fmh-nav__list a[aria-current="page"]::after{ content: ""; position: absolute; left: 25px; right: 0; bottom: -2px; height: 3px; border-radius: 3px; background: var(--fmh-accent, #0b40ba); }
html body .fmh-nav__free{ padding: 1px 7px; border-radius: 6px; background: #e3f7e8; color: #1f7a3a; font: 600 11px/16px var(--fmh-body, sans-serif); }
html body .fmh-nav__mobile-extra{ display: none; }
html body .fmh-site-header__actions{ display: flex; align-items: center; gap: 10px; flex: none; }
html body .fmh-site-btn{ display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 42px; padding: 0 18px; border-radius: 12px; font: 600 14px/20px var(--fmh-body, "Noto Sans", sans-serif); text-decoration: none; }
html body .fmh-site-btn--primary{ background: var(--fmh-blue, #0b40ba); color: #fff; }
html body .fmh-site-btn--primary:hover{ background: var(--fmh-blue-700, #0a35a0); color: #fff; }
html body .fmh-site-btn--dark{ background: #262a33; color: #fff; box-shadow: 0 1px 0 rgba(255, 255, 255, .12) inset, 0 6px 14px -8px rgba(11, 26, 61, .6); }
html body .fmh-site-btn--dark:hover, html body .fmh-site-btn--dark:focus{ background: #0b1a3d; color: #fff; }
html body .fmh-site-btn .fmh-ico{ color: #8ee5a1; }
html body .fmh-site-btn__badge{ min-width: 22px; height: 22px; margin-right: -6px; padding: 0 6px; border-radius: 999px; background: var(--fmh-gold, #f8b800); color: #0b1a3d; font: 700 12px/22px var(--fmh-body, sans-serif); text-align: center; }
html body .fmh-site-icon{ position: relative; width: 42px; height: 42px; border-radius: 12px; border: 0; background: var(--fmh-blue-50, #eaf0ff); color: var(--fmh-blue, #0b40ba); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
html body .fmh-site-icon svg{ flex: none; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
html body .fmh-site-icon b{ position: absolute; right: -4px; top: -4px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px; background: var(--fmh-gold, #f8b800); color: #0b1a3d; font: 700 11px/20px var(--fmh-body, sans-serif); }
html body .fmh-site-icon:focus-visible, html body .fmh-site-btn:focus-visible, html body .fmh-nav__list a:focus-visible, html body .fmh-nav__post:focus-visible{ outline: 2px solid var(--fmh-blue, #0b40ba); outline-offset: 2px; }
html body .fmh-credit-pill{ display: inline-flex; align-items: center; min-height: 40px; padding: 0 12px; border-radius: 12px; background: #fff6d6; color: #0b1a3d; font: 600 13px/18px var(--fmh-body, sans-serif); text-decoration: none; }
html body .fmh-menu-toggle{ display: none; }

/* Ribbon above the footer --------------------------------------------------- */
html body .fmh-ribbon{ overflow: hidden; padding: 44px 0 56px; background: #fff; }
html body .fmh-ribbon__band{ width: 106%; margin-left: -3%; transform: rotate(-2deg); background: color-mix(in srgb, var(--fmh-accent, #0b40ba) 38%, #fff); box-shadow: 0 18px 40px -24px color-mix(in srgb, var(--fmh-accent, #0b40ba) 70%, transparent); overflow: hidden; }
html body .fmh-ribbon__track{ display: flex; width: max-content; animation: fmh-ribbon 48s linear infinite; }
html body .fmh-ribbon__band:hover .fmh-ribbon__track{ animation-play-state: paused; }
html body .fmh-ribbon__set{ display: flex; align-items: center; }
html body .fmh-ribbon__item{ display: inline-flex; align-items: center; gap: 10px; padding: 15px 0; font: 600 14px/20px var(--fmh-body, sans-serif); letter-spacing: .6px; text-transform: uppercase; color: #0b1a3d; white-space: nowrap; }
html body .fmh-ribbon__item b{ font-weight: 800; }
html body .fmh-ribbon__ico{ width: 28px; height: 28px; flex: none; border-radius: 50%; background: #0b1a3d; color: #fff; display: inline-flex; align-items: center; justify-content: center; }
html body .fmh-ribbon__sep{ padding: 0 30px; color: #0b1a3d; opacity: .55; font-size: 16px; }
@keyframes fmh-ribbon { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { html body .fmh-ribbon__track{ animation: none; } }

/* Footer ------------------------------------------------------------------ */
html body .fmh-site-footer{ background: var(--fmh-blue-800, #002890); color: #d9e3ff; padding: 64px 0 32px; font-family: var(--fmh-body, sans-serif); }
html body .fmh-site-footer a{ color: #d9e3ff; text-decoration: none; }
html body .fmh-site-footer a:hover{ color: #fff; text-decoration: underline; }
html body .fmh-site-footer__inner{ max-width: 1240px; margin: 0 auto; padding: 0 32px; display: grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 32px; }
html body .fmh-site-footer__brand{ display: flex; flex-direction: column; gap: 10px; }
html body .fmh-site-footer__brand p{ margin: 0; font-size: 14px; line-height: 22px; }
html body .fmh-site-footer__tag{ font-weight: 600; color: var(--fmh-gold, #f8b800); }
html body .fmh-site-footer h2{ margin: 0 0 12px; font: 700 15px/20px var(--fmh-body, sans-serif); color: #fff; }
html body .fmh-site-footer ul{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; font-size: 14px; }
html body .fmh-social{ display: flex; gap: 14px; font-size: 14px; }
html body .fmh-site-footer__bottom{ max-width: 1240px; margin: 40px auto 0; padding: 20px 32px 0; border-top: 1px solid rgba(255, 255, 255, .15); display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: 13px; }

/* Plain pages (no Elementor) get a readable column. */
.page:not(.elementor-page) .fmh-site-content > main,
html body .fmh-site-content > .site-main:not(.fmh){ max-width: 1240px; margin: 0 auto; padding: 32px; }

/* WooCommerce: brand buttons and a calm checkout for plans. */
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce #place_order { background: var(--fmh-blue, #0b40ba) !important; color: #fff !important; border-radius: 14px !important; min-height: 48px; padding: 0 24px !important; font-weight: 600 !important; display: inline-flex !important; align-items: center; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select { min-height: 48px; border-radius: 12px; border: 1px solid #8792ab; padding: 0 12px; }
.woocommerce-checkout #order_review, .woocommerce-checkout .col2-set { background: #fff; }

@media (max-width: 1360px) {
	html body .fmh-nav__list{ gap: 18px; }
	html body .fmh-nav__list a, html body .fmh-nav__list .fmh-nav__post{ font-size: 14px; }
	html body .fmh-site-header__inner{ padding: 0 20px; gap: 14px; }
}

@media (max-width: 1260px) {
	/* backdrop-filter would make the header the containing block of the fixed menu panel. */
	html body .fmh-site-header{ backdrop-filter: none; -webkit-backdrop-filter: none; background: #fff; }
	html body .fmh-site-header__inner{ height: 64px; }
	html body .fmh-site-header__actions{ margin-left: auto; gap: 8px; }
	html body .fmh-hide-mobile{ display: none; }
	html body .fmh-menu-toggle{ display: inline-flex; }
	html body .fmh-nav{ position: fixed; left: 0; right: 0; top: 64px; bottom: 0; z-index: 8999; background: #fff; display: none; flex-direction: column; justify-content: flex-start; padding: 12px 16px 24px; overflow: auto; }
	html body .fmh-nav.is-open{ display: flex; }
	html body .fmh-nav__list{ flex-direction: column; align-items: stretch; gap: 0; }
	html body .fmh-nav__list a, html body .fmh-nav__list .fmh-nav__post{ display: flex; width: 100%; padding: 14px 4px; gap: 12px; border-bottom: 1px solid #e7eaf1; border-radius: 0; font-size: 16px; text-align: left; }
	html body .fmh-nav__list .current-menu-item > a::after, html body .fmh-nav__list a[aria-current="page"]::after{ display: none; }
	html body .fmh-nav__list .current-menu-item > a, html body .fmh-nav__list a[aria-current="page"]{ color: var(--fmh-accent-text, #0b40ba); }
	html body .fmh-nav__mobile-extra{ display: flex; flex-direction: column; margin-top: 16px; }
	html body .fmh-site-btn--dark{ min-height: 48px; }
}

@media (max-width: 900px) {
	.admin-bar .fmh-site-header { top: 0; }
	html body .fmh-ribbon{ padding: 26px 0 34px; }
	html body .fmh-ribbon__item{ padding: 11px 0; font-size: 12px; gap: 8px; }
	html body .fmh-ribbon__ico{ width: 24px; height: 24px; }
	html body .fmh-ribbon__sep{ padding: 0 18px; }
	html body .fmh-nav{ top: 60px; }
	html body .fmh-site-header__inner{ height: 60px; padding: 0 12px; gap: 8px; }
	html body .fmh-brand__word{ font-size: 20px; }
	html body .fmh-brand__mark .fmh-ico{ width: 22px; height: 22px; }
	html body .fmh-brand img{ height: 34px; }
	html body .fmh-credit-pill{ min-height: 32px; padding: 0 10px; font-size: 12px; border-radius: 999px; }
	html body .fmh-site-footer{ padding: 36px 0 24px; }
	html body .fmh-site-footer__inner{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; padding: 0 12px; }
	html body .fmh-site-footer__brand{ grid-column: 1 / -1; }
	html body .fmh-site-footer__bottom{ padding: 16px 12px 0; margin-top: 24px; }
	html body.fmh-menu-open{ overflow: hidden; }
}

/* Keep header button colours on hover and focus (Hello Elementor restyles every button state). */
html body .fmh-site-icon:is(:hover, :focus) { background: var(--fmh-blue-50, #eaf0ff); color: var(--fmh-blue, #0b40ba); }
