/*
Theme Name: Real Estate Niche Finder
Theme URI: https://realestatenichefinder.com
Description: Child theme of Twenty Twenty-Five for realestatenichefinder.com. White background, navy and orange, serif headlines, the niche finder tool first.
Author: Real Estate Niche Finder
Template: twentytwentyfive
Version: 1.0.0
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: niche-finder
*/

/* ---- Base ---- */
body { -webkit-font-smoothing: antialiased; }
a { color: var(--wp--preset--color--orange); }
a:hover { color: var(--wp--preset--color--orange-dark); }
.wp-site-blocks { padding-top: 0 !important; }

/* Section label: small blue caps */
.nf-label { font-size: 12px !important; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--wp--preset--color--blue); margin: 0; }
.nf-label.is-amber { color: #9A3412; }
.nf-label.is-peach { color: #FDBA74; }
.nf-muted { color: var(--wp--preset--color--muted); }
.nf-ink { color: var(--wp--preset--color--ink-soft); }
.nf-serif { font-family: var(--wp--preset--font-family--newsreader); font-weight: 700; }

/* Section header row with a right-hand link */
.nf-sechead { border-bottom: 1px solid var(--wp--preset--color--line); padding-bottom: 16px; }
.nf-sechead h2 { margin: 0; }
.nf-sechead .nf-more { font-weight: 600; text-decoration: none; white-space: nowrap; }

/* ---- Header ---- */
.nf-header { padding: 22px 24px 0; }
.nf-logo { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; color: var(--wp--preset--color--navy); text-decoration: none; text-align: center; white-space: nowrap; line-height: 1; }
.nf-logo .nf-logo-top { font-family: var(--wp--preset--font-family--inter); font-size: 11px; font-weight: 600; letter-spacing: 0.32em; text-transform: uppercase; }
.nf-logo .nf-logo-main { font-family: var(--wp--preset--font-family--newsreader); font-weight: 700; font-size: 44px; letter-spacing: -0.02em; }
.nf-logo .nf-logo-main .nf-dot { color: var(--wp--preset--color--orange); }
.nf-logo.is-small .nf-logo-top { font-size: 10px; letter-spacing: 0.3em; }
.nf-logo.is-small .nf-logo-main { font-size: 26px; }
.nf-header-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.nf-header-row > * { flex: 1; }
.nf-header-row > .nf-logo-wrap { flex: 0 0 auto; text-align: center; }
.nf-header-actions { display: flex; justify-content: flex-end; align-items: center; gap: 12px; }
.nf-header-actions .nf-login { color: var(--wp--preset--color--navy); font-weight: 600; font-size: 15px; text-decoration: none; padding: 10px 4px; }
.nf-rule { height: 1px; background: var(--wp--preset--color--line); margin-top: 18px; }
.nf-nav { border-bottom: 1px solid var(--wp--preset--color--line); padding: 12px 0; }
.nf-nav .wp-block-navigation { justify-content: center; font-size: 13px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; }
.nf-nav .wp-block-navigation a { color: var(--wp--preset--color--navy); text-decoration: none; }
.nf-nav .wp-block-navigation__container { gap: 34px; }
@media (max-width: 599px) { .nf-nav .wp-block-navigation__responsive-container-open { color: var(--wp--preset--color--navy); border: 1px solid #C5D0DD; border-radius: 8px; width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; } }
.nf-nav .wp-block-navigation__responsive-container.is-menu-open { background: #fff; }
.nf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 18px; }

/* ---- Buttons ---- */
.nf-btn, .wp-block-button__link { font-weight: 600; text-decoration: none; }
.wp-block-button__link { border-radius: 8px; min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: 0 22px; font-size: 16px; }
.wp-block-button.is-style-outline .wp-block-button__link, .wp-block-button.is-style-outline > .wp-block-button__link { border: 2px solid currentColor; }
.nf-btn-orange .wp-block-button__link { background: var(--wp--preset--color--orange); color: #fff; }
.nf-btn-navy .wp-block-button__link { background: var(--wp--preset--color--navy); color: #fff; }
.nf-btn-ghost .wp-block-button__link { background: transparent; border: 2px solid var(--wp--preset--color--navy); color: var(--wp--preset--color--navy); }
.nf-btn-white .wp-block-button__link { background: transparent; border: 2px solid #fff; color: #fff; }
.wp-block-button.is-full .wp-block-button__link, .nf-btn-full .wp-block-button__link { width: 100%; }

/* ---- Tool section (plugin renders the app; theme shows the frame) ---- */
.nf-tool { padding: 48px 24px 64px; }
.nf-tool-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr)); gap: 40px; align-items: start; }
.nf-tool h1 { font-size: clamp(38px, 5vw, 54px); line-height: 1.04; letter-spacing: -0.015em; margin: 0; }
.nf-search-label { font-weight: 600; font-size: 15px; color: var(--wp--preset--color--navy); display: block; margin-bottom: 8px; }
.nf-search { display: flex; gap: 8px; background: #fff; border: 1px solid #C5D0DD; border-radius: 10px; padding: 6px; box-shadow: 0 6px 20px rgba(11,31,51,0.08); }
.nf-search .nf-search-field { flex: 1; display: flex; align-items: center; gap: 10px; padding: 0 10px; min-height: 48px; }
.nf-search input { flex: 1; border: 0; outline: none; font: inherit; font-size: 17px; color: var(--wp--preset--color--ink); background: transparent; min-width: 0; }
.nf-search button { min-height: 50px; padding: 0 24px; border: 0; border-radius: 7px; background: var(--wp--preset--color--orange); color: #fff; font: inherit; font-weight: 600; font-size: 17px; cursor: pointer; }
.nf-chips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 14px; }
.nf-chips a { border: 1px solid #C5D0DD; border-radius: 999px; padding: 8px 14px; color: var(--wp--preset--color--navy); text-decoration: none; background: #fff; }
.nf-newhere { font-size: 14px; color: var(--wp--preset--color--muted); border-top: 1px solid var(--wp--preset--color--line); padding-top: 14px; margin: 0; }
.nf-newhere a { font-weight: 600; text-decoration: none; }
.nf-card { background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 12px; box-shadow: 0 10px 30px rgba(11,31,51,0.08); padding: 16px; }
.nf-map-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.nf-map-head label { font-size: 12px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--wp--preset--color--muted); display: block; margin-bottom: 4px; }
.nf-map-head select { min-height: 44px; border: 1px solid #C5D0DD; border-radius: 6px; padding: 0 10px; font: inherit; font-size: 15px; color: var(--wp--preset--color--navy); background: #fff; width: 100%; }
.nf-map-box { height: 380px; background: var(--wp--preset--color--soft); border: 1px solid var(--wp--preset--color--line); display: flex; align-items: center; justify-content: center; color: var(--wp--preset--color--muted); font-size: 15px; text-align: center; padding: 20px; }
.nf-legend { display: flex; gap: 14px; flex-wrap: wrap; font-size: 13px; color: var(--wp--preset--color--ink-soft); align-items: center; margin-top: 12px; }
.nf-legend i { display: inline-block; width: 14px; height: 14px; vertical-align: -2px; margin-right: 6px; }
@media (max-width: 600px) { .nf-search { flex-direction: column; } .nf-search button { width: 100%; } }

/* ---- Stats strip ---- */
.nf-stats { border-top: 1px solid var(--wp--preset--color--line); border-bottom: 1px solid var(--wp--preset--color--line); display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.nf-stats > div { padding: 20px; text-align: center; border-right: 1px solid var(--wp--preset--color--line); }
.nf-stats > div:last-child { border-right: 0; }
.nf-stats strong { display: block; font-family: var(--wp--preset--font-family--newsreader); font-weight: 700; font-size: 30px; color: var(--wp--preset--color--navy); line-height: 1.2; }
.nf-stats span { font-size: 14px; color: var(--wp--preset--color--muted); }

/* ---- Sections ---- */
.nf-sec { padding: 72px 24px; }
.nf-sec.is-soft { background: var(--wp--preset--color--soft-blue); }
.nf-inner { max-width: 1200px; margin: 0 auto; }
@media (max-width: 600px) { .nf-sec { padding: 48px 24px; } }

/* How to use it */
.nf-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 0; }
.nf-steps > div { padding: 8px 28px; border-left: 1px solid var(--wp--preset--color--line); }
.nf-steps > div:first-child { padding-left: 0; border-left: 0; }
.nf-steps > div:last-child { padding-right: 0; }
.nf-stepnum { font-family: var(--wp--preset--font-family--newsreader); font-weight: 700; font-size: 44px; line-height: 1; color: var(--wp--preset--color--orange); display: block; margin-bottom: 10px; }
.nf-steps h3 { margin: 0 0 10px; font-size: 20px; font-family: var(--wp--preset--font-family--inter); font-weight: 600; }
.nf-steps p { margin: 0; color: var(--wp--preset--color--ink-soft); }
@media (max-width: 700px) { .nf-steps > div { padding: 16px 0; border-left: 0; border-top: 1px solid var(--wp--preset--color--line); } .nf-steps > div:first-child { border-top: 0; } }

/* Sample report */
.nf-report { max-width: 520px; width: 100%; box-sizing: border-box; padding: 26px; display: flex; flex-direction: column; gap: 18px; }
.nf-report-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.nf-report-head .nf-rtitle { font-family: var(--wp--preset--font-family--newsreader); font-weight: 700; font-size: 26px; color: var(--wp--preset--color--navy); display: block; }
.nf-report-head .nf-rsub { font-size: 15px; color: var(--wp--preset--color--ink-soft); }
.nf-gradebox { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 74px; height: 74px; background: var(--wp--preset--color--teal); color: #fff; flex-shrink: 0; }
.nf-gradebox b { font-family: var(--wp--preset--font-family--newsreader); font-weight: 700; font-size: 38px; line-height: 1; }
.nf-gradebox span { font-size: 13px; font-weight: 600; }
.nf-bars { display: flex; flex-direction: column; gap: 13px; }
.nf-bar { display: flex; flex-direction: column; gap: 6px; }
.nf-bar > div:first-child { display: flex; justify-content: space-between; font-size: 14px; gap: 10px; }
.nf-bar b { font-weight: 600; color: var(--wp--preset--color--navy); }
.nf-bar span { color: var(--wp--preset--color--muted); text-align: right; }
.nf-bar i { display: block; height: 6px; background: var(--wp--preset--color--soft); }
.nf-bar i em { display: block; height: 6px; background: var(--wp--preset--color--teal); }
.nf-fineprint { font-size: 12.5px; color: var(--wp--preset--color--muted); border-top: 1px solid var(--wp--preset--color--line); padding-top: 12px; margin: 0; }
.nf-dl dt { font-weight: 600; color: var(--wp--preset--color--navy); }
.nf-dl dd { margin: 0 0 14px; color: var(--wp--preset--color--ink-soft); }

/* Spotlight list */
.nf-top { margin: 0; padding: 0; list-style: none; }
.nf-top li { display: flex; align-items: center; gap: 18px; padding: 14px 0; border-bottom: 1px solid var(--wp--preset--color--line); }
.nf-top .nf-rank { font-family: var(--wp--preset--font-family--newsreader); font-weight: 700; font-size: 28px; color: var(--wp--preset--color--orange); width: 32px; flex-shrink: 0; }
.nf-top .nf-tname { font-weight: 600; color: var(--wp--preset--color--navy); font-size: 17px; }
.nf-top .nf-tsub { font-size: 14px; color: var(--wp--preset--color--muted); }
.nf-top .nf-tgrade { margin-left: auto; font-family: var(--wp--preset--font-family--newsreader); font-weight: 700; font-size: 22px; color: var(--wp--preset--color--teal); white-space: nowrap; }
.nf-top .nf-tgrade.is-b { color: #2F8C7F; }
.nf-top .nf-tgrade.is-c { color: #B7791F; }
.nf-top .nf-tgrade.is-d { color: var(--wp--preset--color--muted); }

/* Learn cards (query loop) */
.nf-learn .wp-block-post-template { gap: 28px; }
.nf-learn .wp-block-post-featured-image { height: 180px; background: var(--wp--preset--color--soft); overflow: hidden; margin-bottom: 12px; }
.nf-learn .wp-block-post-featured-image img { width: 100%; height: 180px; object-fit: cover; }
.nf-learn .wp-block-post-title { font-family: var(--wp--preset--font-family--newsreader); font-weight: 700; font-size: 23px; line-height: 1.2; margin: 6px 0 10px; }
.nf-learn .wp-block-post-title a { color: var(--wp--preset--color--navy); text-decoration: none; }
.nf-learn .wp-block-post-terms, .nf-learn .wp-block-post-terms a { font-size: 12px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--wp--preset--color--blue); text-decoration: none; }
.nf-learn .wp-block-read-more { color: var(--wp--preset--color--orange); font-weight: 600; font-size: 15px; text-decoration: none; }
.nf-learn .wp-block-query-no-results p { color: var(--wp--preset--color--muted); }

/* Services */
.nf-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 24px; }
.nf-plan { background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 12px; padding: 28px; display: flex; flex-direction: column; gap: 12px; }
.nf-plan.is-featured { border: 2px solid var(--wp--preset--color--navy); }
.nf-plan h3 { margin: 0; font-size: 20px; font-family: var(--wp--preset--font-family--inter); font-weight: 600; }
.nf-price { font-family: var(--wp--preset--font-family--newsreader); font-weight: 700; font-size: 32px; color: var(--wp--preset--color--navy); }
.nf-price small { font-family: var(--wp--preset--font-family--inter); font-size: 15px; font-weight: 500; color: var(--wp--preset--color--muted); }
.nf-plan p { margin: 0; color: var(--wp--preset--color--ink-soft); flex-grow: 1; }
.nf-plan .wp-block-buttons, .nf-plan .wp-block-button { width: 100%; }

/* Promotion band (plugin fills it; hidden when blank) */
.nf-promo { border-top: 1px solid var(--wp--preset--color--line); border-bottom: 1px solid var(--wp--preset--color--line); padding: 22px 4px; display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; }
.nf-promo .nf-promo-title { font-family: var(--wp--preset--font-family--newsreader); font-size: 24px; font-weight: 700; color: var(--wp--preset--color--navy); display: block; }
.nf-promo a.nf-btn { display: inline-flex; align-items: center; min-height: 48px; padding: 0 22px; border-radius: 8px; background: var(--wp--preset--color--orange); color: #fff; }

/* Kit band */
.nf-kit { background: var(--wp--preset--color--navy); color: #fff; border-radius: 12px; padding: 48px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 40px; align-items: center; box-sizing: border-box; }
.nf-kit h2, .nf-kit p { color: #fff; }
.nf-kit p.nf-lead { font-size: 18px; color: #D3D9E0; }
.nf-kit ul { margin: 0; padding: 0; list-style: none; }
.nf-kit li { display: flex; gap: 12px; border-bottom: 1px solid rgba(255,255,255,0.16); padding: 0 0 14px; margin-bottom: 14px; }
.nf-kit li:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.nf-kit li::before { content: ""; flex-shrink: 0; width: 20px; height: 20px; margin-top: 2px; background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FDBA74' stroke-width='2.5'><path d='M5 12l5 5L20 7'/></svg>") no-repeat center / contain; }
@media (max-width: 600px) { .nf-kit { padding: 28px; } }

/* Contact */
.nf-contact-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 48px; align-items: start; }
.nf-book { display: flex; flex-direction: column; gap: 12px; max-width: 360px; }
.nf-book a { display: flex; align-items: center; gap: 12px; min-height: 50px; padding: 0 20px; border-radius: 8px; font-weight: 600; text-decoration: none; }
.nf-book a.is-navy { background: var(--wp--preset--color--navy); color: #fff; }
.nf-book a.is-ghost { border: 2px solid var(--wp--preset--color--navy); color: var(--wp--preset--color--navy); }
.nf-form { background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 12px; padding: 26px; display: flex; flex-direction: column; gap: 16px; }
.nf-form .nf-2col { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 16px; }
.nf-form label { font-weight: 600; font-size: 14px; color: var(--wp--preset--color--navy); display: block; margin-bottom: 6px; }
.nf-form input, .nf-form textarea { width: 100%; box-sizing: border-box; min-height: 46px; border: 1px solid #C5D0DD; border-radius: 6px; padding: 10px 14px; font: inherit; }
.nf-form textarea { resize: vertical; }
.nf-form button { min-height: 50px; border: 0; border-radius: 8px; background: var(--wp--preset--color--navy); color: #fff; font: inherit; font-weight: 600; font-size: 16px; cursor: pointer; }
.nf-form .nf-note { font-size: 13px; color: var(--wp--preset--color--muted); margin: 0; }

/* ---- Footer ---- */
.nf-footer { border-top: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--soft-blue); padding: 48px 24px 32px; font-size: 15px; }
.nf-footer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); gap: 32px; }
.nf-footer-col { display: flex; flex-direction: column; gap: 10px; }
.nf-footer-col strong { color: var(--wp--preset--color--navy); font-weight: 600; }
.nf-footer-col a { color: var(--wp--preset--color--ink-soft); text-decoration: none; }
.nf-footer-col p { margin: 0; }
.nf-footer-bottom { border-top: 1px solid var(--wp--preset--color--line); padding-top: 20px; margin-top: 36px; font-size: 13px; color: var(--wp--preset--color--muted); }
.nf-footer-bottom p { margin: 0 0 8px; }
.nf-footer-bottom a { color: var(--wp--preset--color--muted); }

/* ---- Posts and pages inherit the parent, with our type ---- */
.wp-block-post-content a { font-weight: 500; }
h1, h2, h3, .wp-block-post-title { color: var(--wp--preset--color--navy); }

/* ---- Header on small screens ---- */
.nf-header-actions .nf-login { white-space: nowrap; }
@media (max-width: 900px) { .nf-logo .nf-logo-main { font-size: 32px; } .nf-header-row > span:first-child { display: none; } .nf-header-row > .nf-logo-wrap { flex: 1; text-align: left; } .nf-header-actions { flex: 0 0 auto; } }
@media (max-width: 600px) { .nf-logo .nf-logo-main { font-size: 26px; } .nf-logo .nf-logo-top { font-size: 9px; } .nf-start { display: none !important; } .nf-header { padding-top: 14px; } .nf-rule { margin-top: 12px; } }
.nf-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 16px; color: var(--wp--preset--color--navy); padding: 6px 0; }
