/*
Theme Name: Northwoods Property Team
Theme URI: https://northwoodspropertyteam.com/
Author: Northwoods Property Team
Author URI: https://northwoodspropertyteam.com/
Description: A custom Northern New Hampshire real estate theme for Northwoods Property Team at eXp Realty, with seller, buyer, team, blog, recruiting, and local market content.
Version: 1.9.7
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: northwoods-property-team
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

:root {
  --navy: #0b2344;
  --navy-2: #112f58;
  --navy-3: #061325;
  --green: #75b943;
  --green-dark: #3d7020;
  --gold: #b7922e;
  --gold-light: #d8b85f;
  --gold-dark: #8a6718;
  --ice: #d8e8f5;
  --ink: #172334;
  --muted: #5e6c7d;
  --soft: #f3f5f4;
  --line: #d9e0e5;
  --white: #ffffff;
  --shadow: 0 20px 60px rgba(7, 23, 45, .14);
  --radius: 18px;
  --container: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--white); font-family: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.65; }
img { max-width: 100%; display: block; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.section { padding: 96px 0; }
.section-soft { padding: 96px 0; background: var(--soft); }
.skip-link { position: absolute; left: -9999px; top: auto; }
.skip-link:focus { left: 20px; top: 20px; z-index: 1000; background: #fff; padding: 10px 16px; border-radius: 8px; }

h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: "Merriweather", Georgia, serif; line-height: 1.12; letter-spacing: -.025em; }
h1 { font-size: clamp(2.85rem, 6vw, 5.8rem); max-width: 930px; }
h2 { font-size: clamp(2rem, 4vw, 3.55rem); }
h3 { line-height: 1.25; }
p { color: var(--muted); }
.eyebrow { display: inline-flex; align-items: center; gap: 10px; color: #d9e8f8; font-size: .78rem; font-weight: 800; text-transform: uppercase; letter-spacing: .16em; margin-bottom: 20px; }
.eyebrow::before { content: ""; width: 28px; height: 2px; background: var(--green); }
.eyebrow.dark { color: var(--navy); }

.site-header { position: fixed; inset: 0 0 auto; z-index: 100; color: white; background: rgba(6,19,37,.38); transition: background .25s ease, box-shadow .25s ease; }
.site-header.scrolled, body:not(.home) .site-header { background: rgba(6,19,37,.98); box-shadow: 0 8px 30px rgba(0,0,0,.16); backdrop-filter: blur(10px); }
.nav-wrap { min-height: 86px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; color: white; text-decoration: none; line-height: 0; }
.header-logo { width: min(300px, 42vw); height: auto; max-height: 72px; object-fit: contain; object-position: left center; }
.footer-tree-logo { width: 62px; height: auto; object-fit: contain; }
.site-nav { display: flex; align-items: center; gap: 22px; }
.site-nav a { color: white; text-decoration: none; font-size: .84rem; font-weight: 750; white-space: nowrap; }
.site-nav a:not(.nav-cta):hover { color: var(--green); }
.nav-cta { padding: 11px 16px; border: 1px solid rgba(255,255,255,.5); border-radius: 999px; }
.nav-cta:hover { background: white; color: var(--navy); }
.nav-toggle { display: none; border: 0; background: transparent; padding: 8px; cursor: pointer; }
.nav-toggle span { display: block; width: 26px; height: 2px; background: white; margin: 5px 0; }

.hero { position: relative; min-height: 880px; color: white; display: flex; align-items: center; background-size: cover; background-position: center; isolation: isolate; }
.hero-overlay { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(4,18,37,.94) 0%, rgba(4,18,37,.79) 52%, rgba(4,18,37,.36) 100%), linear-gradient(0deg, rgba(5,18,34,.35), transparent 50%); }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; align-items: end; gap: 70px; padding-top: 125px; padding-bottom: 100px; }
.hero-copy > p { color: #e4edf5; max-width: 790px; font-size: 1.18rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin: 34px 0 52px; }
.btn { display: inline-flex; justify-content: center; align-items: center; min-height: 52px; padding: 0 22px; border-radius: 999px; text-decoration: none; font-weight: 800; border: 1px solid transparent; cursor: pointer; transition: transform .18s ease, background .18s ease, color .18s ease; }
.btn:hover { transform: translateY(-2px); }
.btn-primary { background: var(--green); color: #0b1f15; }
.btn-primary:hover { background: #8dce58; }
.btn-ghost { border-color: rgba(255,255,255,.52); color: white; background: rgba(255,255,255,.06); }
.btn-ghost:hover { background: white; color: var(--navy); }
.btn-secondary { background: var(--navy); color: white; }
.btn-secondary:hover { background: var(--navy-2); }
.btn-white { background: white; color: var(--navy); }
.btn-outline-white { border-color: rgba(255,255,255,.55); color: white; }
.btn-outline-white:hover { background: white; color: var(--navy); }
.btn.full { width: 100%; }
.hero-proof { display: flex; flex-wrap: wrap; gap: 32px; }
.hero-proof div { display: flex; flex-direction: column; padding-right: 28px; border-right: 1px solid rgba(255,255,255,.24); }
.hero-proof div:last-child { border-right: 0; }
.hero-proof strong { font-size: 1.02rem; }
.hero-proof span { color: #bfcddd; font-size: .8rem; }
.hero-card { background: rgba(10,35,67,.88); border: 1px solid rgba(255,255,255,.17); backdrop-filter: blur(12px); border-radius: 22px; padding: 28px; box-shadow: var(--shadow); }
.initials { width: 70px; height: 70px; display: grid; place-items: center; border-radius: 50%; background: var(--green); color: var(--navy); font-family: "Merriweather", Georgia, serif; font-weight: 700; font-size: 1.45rem; margin-bottom: 20px; }
.card-kicker { color: #a9c2dd; font-size: .74rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 800; }
.hero-card h2 { font-size: 2rem; margin: 7px 0 10px; }
.hero-card p { color: #d9e4ef; font-size: .9rem; }
.hero-team-card { display: flex; flex-direction: column; align-items: flex-start; }
.hero-team-logo { width: 100%; max-width: 250px; height: auto; object-fit: contain; object-position: left center; margin-bottom: 26px; }
.hero-team-card .btn { margin-top: 10px; }
.contact-stack { display: grid; gap: 9px; margin-top: 22px; }
.contact-stack a { text-decoration: none; border: 1px solid rgba(255,255,255,.18); padding: 10px 13px; border-radius: 10px; font-weight: 700; font-size: .88rem; }
.contact-stack a:hover { background: white; color: var(--navy); }
.agent-contact-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.agent-contact-actions .btn { flex: 1 1 110px; min-width: 0; text-align: center; padding: 11px 14px; }
.agent-site-link { display: inline-flex; margin-top: 15px; }
.btn-agent-site { width: 100%; margin-top: 10px; min-height: 48px; border: 1px solid var(--navy); color: var(--navy); background: white; }
.btn-agent-site:hover { background: var(--navy); color: white; }
.photo-credit { position: absolute; right: 18px; bottom: 15px; color: rgba(255,255,255,.65); font-size: .65rem; text-decoration: none; }

.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: start; }
.lead-copy p { font-size: 1.08rem; }
.section-heading { max-width: 780px; margin-bottom: 48px; }
.section-heading.split { max-width: none; display: grid; grid-template-columns: 1.3fr .7fr; gap: 80px; align-items: end; }
.section-heading.split p { font-size: 1.05rem; margin-bottom: 8px; }
.card-grid.three { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.service-card { background: white; border: 1px solid var(--line); border-radius: var(--radius); padding: 34px; min-height: 300px; }
.service-card.featured { background: var(--navy); color: white; transform: translateY(-14px); box-shadow: var(--shadow); }
.service-card.featured p { color: #d4dfeb; }
.service-card .number { color: var(--green-dark); font-weight: 800; font-size: .77rem; letter-spacing: .15em; }
.service-card h3 { font-size: 1.42rem; margin: 52px 0 15px; }

.marketing { background: var(--navy); color: white; }
.marketing-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: center; }
.marketing-panel p { color: #c7d5e4; font-size: 1.06rem; }
.text-link { display: inline-flex; gap: 10px; text-decoration: none; font-weight: 800; color: var(--navy); }
.text-link.light { color: white; }
.text-link span { color: var(--green); }
.feature-list { border-top: 1px solid rgba(255,255,255,.2); }
.feature-list > div { display: grid; grid-template-columns: 48px 1fr; gap: 18px; padding: 22px 0; border-bottom: 1px solid rgba(255,255,255,.2); }
.feature-list span { color: var(--green); font-weight: 800; font-size: .82rem; }
.feature-list p { color: #d8e2ed; margin: 0; }
.feature-list strong { color: white; }

.buyer-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 80px; align-items: center; }
.buyer-panel { background: white; border: 1px solid var(--line); border-radius: 24px; padding: 38px; box-shadow: var(--shadow); }
.buyer-panel h3 { color: var(--navy); font-size: 1.45rem; }
.buyer-points { display: grid; gap: 18px; margin: 28px 0; }
.buyer-points div { display: grid; grid-template-columns: 34px 1fr; gap: 14px; }
.buyer-points span { width: 28px; height: 28px; display: grid; place-items: center; background: #eaf5e2; color: var(--green-dark); border-radius: 50%; font-weight: 900; }
.buyer-points p { margin: 0; }
.action-row { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-top: 28px; }

.agent-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.agent-card { display: grid; grid-template-columns: 220px 1fr; background: white; border: 1px solid var(--line); border-radius: 24px; overflow: hidden; box-shadow: 0 14px 36px rgba(7,23,45,.08); }
.agent-photo-wrap { background: var(--navy); min-height: 320px; display: grid; place-items: center; }
.agent-photo { width: 100%; height: 100%; min-height: 320px; object-fit: cover; object-position: center top; }
.agent-placeholder { font-family: "Merriweather", Georgia, serif; font-size: 4.6rem; color: var(--ice); }
.agent-copy { padding: 34px; display: flex; flex-direction: column; align-items: flex-start; }
.agent-copy h3 { color: var(--navy); font-family: "Merriweather", Georgia, serif; font-size: 2rem; margin: 4px 0 8px; }
.agent-role { color: var(--green-dark); text-transform: uppercase; letter-spacing: .1em; font-size: .72rem; font-weight: 800; }
.agent-copy p { flex: 1; }
.agent-link-pending { display: inline-flex; min-height: 48px; align-items: center; padding: 0 18px; background: #edf0f2; color: #6d7782; border-radius: 999px; font-weight: 800; font-size: .84rem; }
.agent-socials { width: 100%; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.agent-social-label { display: block; color: var(--green-dark); text-transform: uppercase; letter-spacing: .12em; font-size: .69rem; font-weight: 850; margin-bottom: 10px; }
.social-icon-row { display: flex; flex-wrap: wrap; gap: 9px; }
.social-icon-link { width: 42px; height: 42px; display: inline-grid; place-items: center; border-radius: 50%; color: white; background: var(--navy); text-decoration: none; box-shadow: 0 5px 14px rgba(7,23,45,.12); transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease; }
.social-icon-link svg { width: 20px; height: 20px; display: block; }
.social-icon-link:hover, .social-icon-link:focus-visible { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(7,23,45,.2); opacity: .9; }
.social-facebook { background: #1877f2; }
.social-instagram { background: #c13584; }
.social-linkedin { background: #0a66c2; }
.social-youtube { background: #ff0000; }
.social-google { background: white; color: #4285f4; border: 1px solid var(--line); box-shadow: none; flex: 0 0 auto; }
.team-google-row { margin-top: 28px; padding: 22px 26px; display: flex; justify-content: space-between; align-items: center; gap: 22px; border: 1px solid var(--line); border-radius: 18px; background: var(--soft); }
.team-google-row strong { display: block; color: var(--navy); font-size: 1.12rem; }
.team-google-row .agent-social-label { margin-bottom: 3px; }
.google-business-link { display: inline-flex; align-items: center; gap: 12px; min-height: 52px; padding: 5px 18px 5px 6px; border-radius: 999px; background: white; border: 1px solid var(--line); color: var(--navy); font-weight: 800; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease; }
.google-business-link:hover, .google-business-link:focus-visible { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(7,23,45,.12); }

.core-town-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.town-card { display: flex; flex-direction: column; min-height: 330px; border: 1px solid var(--line); border-radius: 20px; overflow: hidden; text-decoration: none; background: white; transition: transform .18s ease, box-shadow .18s ease; }
.town-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.town-card-image { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--navy); }
.town-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.town-card:hover .town-card-image img { transform: scale(1.035); }
.town-card-body { display: flex; flex-direction: column; flex: 1; padding: 24px; }
.town-card .town-label { color: var(--green-dark); font-size: .7rem; text-transform: uppercase; letter-spacing: .13em; font-weight: 800; }
.town-card h3 { color: var(--navy); font-family: "Merriweather", Georgia, serif; font-size: 1.42rem; margin: 16px 0 22px; }
.town-card strong { color: var(--navy); margin-top: auto; }
.town-photo-credits { margin-top: 18px; color: #7c8794; font-size: .7rem; }
.town-photo-credits summary { cursor: pointer; font-weight: 750; }
.town-photo-credits p { margin: 8px 0 0; font-size: .7rem; }
.town-photo-credits a { color: inherit; }
.secondary-areas { margin-top: 30px; color: var(--muted); }

.blog-card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.post-card { background: white; border: 1px solid var(--line); border-radius: 20px; overflow: hidden; display: flex; flex-direction: column; min-height: 360px; }
.post-card-image { aspect-ratio: 16 / 9; background: linear-gradient(135deg, var(--navy), var(--navy-2)); overflow: hidden; }
.post-card-image img { width: 100%; height: 100%; object-fit: cover; }
.post-card-body { padding: 26px; display: flex; flex-direction: column; flex: 1; }
.post-card-meta { color: var(--green-dark); text-transform: uppercase; letter-spacing: .1em; font-size: .7rem; font-weight: 800; }
.post-card h3 { color: var(--navy); font-family: "Merriweather", Georgia, serif; font-size: 1.35rem; margin: 12px 0; }
.post-card h3 a { text-decoration: none; }
.post-card p { font-size: .9rem; flex: 1; }
.empty-blog { grid-column: 1 / -1; border: 1px dashed #bcc7d1; border-radius: 20px; padding: 36px; background: white; }

.hiring { background: linear-gradient(120deg, var(--navy-3), var(--navy-2)); color: white; }
.hiring-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 70px; align-items: center; }
.hiring p { color: #cbd8e5; font-size: 1.05rem; }
.hiring-box { border: 1px solid rgba(255,255,255,.18); border-radius: 22px; padding: 34px; background: rgba(255,255,255,.05); }
.hiring-box ul { margin: 0; padding-left: 20px; color: #e3ecf4; }
.hiring-box li { margin: 12px 0; }

.value { background: var(--navy-3); color: white; }
.value-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; align-items: start; }
.value-copy p { color: #c7d4e2; font-size: 1.05rem; }
.check-list { list-style: none; padding: 0; margin: 32px 0 0; }
.check-list li { position: relative; padding-left: 30px; margin: 14px 0; color: #d9e5f0; }
.check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--green); font-weight: 900; }
.value-form { background: white; color: var(--ink); border-radius: 22px; padding: 34px; box-shadow: var(--shadow); }
.value-form label { display: grid; gap: 7px; font-size: .78rem; font-weight: 800; color: var(--navy); margin-bottom: 17px; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.value-form input, .value-form select, .value-form textarea { width: 100%; border: 1px solid #ccd6df; border-radius: 10px; padding: 12px 13px; color: var(--ink); background: white; }
.value-form textarea { resize: vertical; }
.value-form input:focus, .value-form select:focus, .value-form textarea:focus { outline: 3px solid rgba(117,185,67,.25); border-color: var(--green-dark); }
.form-note { font-size: .72rem; text-align: center; margin: 12px 0 0; color: #758292; }
.form-status { border-radius: 12px; padding: 14px 16px; margin-bottom: 18px; font-weight: 700; }
.form-status.success { background: #e9f7df; color: #24530d; border: 1px solid #b9dc9c; }
.form-status.error { background: #fff0ef; color: #7a1f1a; border: 1px solid #e4b2ae; }
.nwp-hp,
.hp-field { position: absolute !important; left: -9999px !important; top: auto !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; white-space: nowrap !important; }

.cta-strip { background: var(--green); padding: 70px 0; }
.cta-team-heading { display: grid; grid-template-columns: .8fr 1.2fr; gap: 50px; align-items: end; margin-bottom: 34px; }
.cta-strip .eyebrow { color: var(--navy); margin-bottom: 8px; }
.cta-strip .eyebrow::before { background: var(--navy); }
.cta-strip h2 { color: var(--navy); margin: 0; font-size: clamp(2rem, 4vw, 3.2rem); }
.cta-agent-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.cta-agent-card { display: grid; gap: 22px; background: rgba(255,255,255,.2); border: 1px solid rgba(11,35,68,.24); border-radius: 20px; padding: 26px; }
.cta-agent-card h3 { color: var(--navy); font-family: "Merriweather", Georgia, serif; font-size: 1.7rem; margin: 4px 0 0; }
.cta-agent-role { color: var(--navy); text-transform: uppercase; letter-spacing: .11em; font-size: .69rem; font-weight: 850; }
.cta-buttons { display: flex; justify-content: flex-start; gap: 10px; flex-wrap: wrap; }
.cta-agent-card .btn { flex: 1 1 120px; }
.cta-strip .btn-outline-white { border-color: rgba(11,35,68,.55); color: var(--navy); }
.cta-strip .btn-outline-white:hover { background: var(--navy); color: white; }

.site-footer { background: #041020; color: white; padding: 72px 0 24px; }
.footer-grid { display: grid; grid-template-columns: 1.3fr .8fr .9fr 1fr; gap: 48px; }
.footer-brand-lockup { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; text-decoration: none; }
.footer-brand-lockup strong { display: block; font-size: 1.2rem; }
.footer-brand-lockup small { display: block; color: #b8ccde; font-size: .62rem; letter-spacing: .2em; margin-top: 5px; }
.footer-grid p { color: #99a9ba; max-width: 370px; }
.footer-grid h3 { font-size: .75rem; text-transform: uppercase; letter-spacing: .16em; color: #b8c6d4; margin-bottom: 18px; }
.footer-grid > div:not(:first-child) { display: flex; flex-direction: column; gap: 8px; }
.footer-grid a, .footer-grid span { color: #d7e1eb; text-decoration: none; font-size: .84rem; }
.footer-grid a:hover { color: var(--green); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.1); margin-top: 55px; padding-top: 22px; display: flex; justify-content: space-between; gap: 24px; color: #8191a2; font-size: .72rem; }
.footer-bottom > div { display: flex; gap: 18px; }
.footer-bottom a { color: #aebaca; }

.page-shell { padding: 150px 0 100px; min-height: 70vh; }
.page-shell h1 { color: var(--navy); font-size: clamp(2.4rem, 6vw, 4.6rem); }
.page-content { max-width: 900px; }
.page-content.wide { max-width: 1100px; }
.page-content h2 { color: var(--navy); margin-top: 52px; }
.page-content h3 { color: var(--navy); margin-top: 26px; }
.page-content a { color: var(--green-dark); }
.nwp-page-lead { font-size: 1.25rem; color: #435268; max-width: 920px; }
.nwp-answer-box { margin: 38px 0; padding: 30px; border-left: 5px solid var(--green); background: var(--soft); border-radius: 0 16px 16px 0; }
.nwp-answer-box h2 { margin: 0 0 12px; font-family: "Manrope", sans-serif; font-size: 1.35rem; }
.nwp-answer-box p:last-child { margin-bottom: 0; }
.nwp-info-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin: 30px 0; }
.nwp-info-card { border: 1px solid var(--line); border-radius: 16px; padding: 26px; background: white; }
.nwp-info-card h3 { margin-top: 0; }
.nwp-faq-list { display: grid; gap: 18px; margin-top: 28px; }
.nwp-faq-item { border-top: 1px solid var(--line); padding-top: 22px; }
.nwp-faq-item h3 { margin: 0 0 8px; font-size: 1.1rem; }
.nwp-page-cta { margin-top: 52px; padding: 34px; border-radius: 20px; background: var(--navy); color: white; }
.nwp-page-cta h2 { color: white; margin-top: 0; }
.nwp-page-cta p { color: #d4dfeb; }
.nwp-page-cta .btn { margin-right: 10px; margin-top: 8px; }
.town-hero { background: linear-gradient(120deg, var(--navy-3), var(--navy-2)); color: white; padding: 150px 0 74px; }
.town-hero h1 { margin-bottom: 18px; }
.town-hero p { color: #d4e0ec; font-size: 1.15rem; max-width: 850px; }
.breadcrumbs { font-size: .78rem; color: #aebfd0; margin-bottom: 22px; }
.breadcrumbs a { color: white; }
.town-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 70px; align-items: start; }
.town-sidebar { position: sticky; top: 120px; border: 1px solid var(--line); border-radius: 18px; padding: 26px; background: var(--soft); }
.town-sidebar h2 { font-family: "Manrope", sans-serif; font-size: 1.1rem; margin-top: 0; }
.town-sidebar a { display: block; margin: 11px 0; font-weight: 750; text-decoration: none; }
.blog-hero { background: linear-gradient(120deg, var(--navy-3), var(--navy-2)); color: white; padding: 150px 0 72px; }
.blog-hero h1 { margin-bottom: 15px; }
.blog-hero p { color: #cfdae6; max-width: 760px; font-size: 1.1rem; }
.blog-archive { padding: 72px 0 100px; background: var(--soft); }
.pagination { margin-top: 45px; }
.single-article { max-width: 900px; }
.single-meta { color: var(--green-dark); text-transform: uppercase; letter-spacing: .1em; font-size: .74rem; font-weight: 800; }
.single-featured { margin: 32px 0; border-radius: 20px; overflow: hidden; }
.single-content { font-size: 1.05rem; }
.single-content h2, .single-content h3 { color: var(--navy); margin-top: 42px; }
.single-author { margin-top: 60px; padding: 30px; background: var(--soft); border-radius: 18px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
body.admin-bar .site-header { top: 32px; }
.hero-card-photo { width: 104px; height: 104px; object-fit: cover; object-position: center top; border-radius: 18px; margin-bottom: 20px; }

@media (max-width: 1080px) {
  .site-nav { gap: 15px; }
  .site-nav a { font-size: .78rem; }
  .header-logo { width: 260px; }
  .core-town-grid { grid-template-columns: repeat(2, 1fr); }
  .agent-card { grid-template-columns: 180px 1fr; }
}
@media (max-width: 980px) {
  .site-nav { position: fixed; inset: 86px 0 auto; display: none; flex-direction: column; align-items: stretch; gap: 0; background: var(--navy-3); padding: 20px; border-top: 1px solid rgba(255,255,255,.12); max-height: calc(100vh - 86px); overflow-y: auto; }
  .site-nav.open { display: flex; }
  .site-nav a { padding: 14px; border-bottom: 1px solid rgba(255,255,255,.1); font-size: .9rem; }
  .nav-toggle { display: block; }
  .hero { min-height: auto; }
  .hero-grid { grid-template-columns: 1fr; padding-top: 160px; gap: 45px; }
  .hero-card { max-width: 420px; }
  .two-col, .marketing-grid, .buyer-grid, .value-grid, .hiring-grid, .town-layout, .cta-team-heading { grid-template-columns: 1fr; gap: 50px; }
  .card-grid.three, .blog-card-grid { grid-template-columns: 1fr; }
  .service-card.featured { transform: none; }
  .section-heading.split { grid-template-columns: 1fr; gap: 20px; }
  .agent-grid { grid-template-columns: 1fr; }
  .cta-agent-grid { grid-template-columns: 1fr; }
  .cta-buttons { justify-content: flex-start; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .town-sidebar { position: static; }
}
@media (max-width: 782px) { body.admin-bar .site-header { top: 46px; } }
@media (max-width: 680px) {
  .container { width: min(calc(100% - 28px), var(--container)); }
  .section, .section-soft { padding: 72px 0; }
  .header-logo { width: 230px; max-height: 55px; }
  .hero-grid { padding-bottom: 78px; }
  .hero h1 { font-size: clamp(2.65rem, 13vw, 4.2rem); }
  .hero-copy > p { font-size: 1rem; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-proof { gap: 18px; }
  .hero-proof div { width: calc(50% - 9px); border-right: 0; padding-right: 0; }
  .hero-proof div:last-child { width: 100%; }
  .photo-credit { display: none; }
  .field-row, .nwp-info-grid, .core-town-grid { grid-template-columns: 1fr; }
  .value-form { padding: 24px; }
  .agent-card { grid-template-columns: 1fr; }
  .agent-photo-wrap, .agent-photo { min-height: 350px; }
  .footer-grid { grid-template-columns: 1fr; gap: 35px; }
  .footer-bottom { flex-direction: column; }
  .footer-bottom > div { flex-direction: column; gap: 6px; }
  .town-hero, .blog-hero { padding-top: 130px; }
}


@media (max-width: 620px) {
  .team-google-row { align-items: flex-start; flex-direction: column; }
  .google-business-link { width: 100%; justify-content: center; }
}

/* ==========================================================
   Northwoods Property Team 1.7 additions and refinements
   ========================================================== */

/* Brand refinement: gold decor, navy labels, controlled green actions */
.eyebrow,
.eyebrow.dark { color: var(--navy); }
.eyebrow::before,
.eyebrow.dark::before { background: var(--gold); }
.hero .eyebrow,
#marketing .eyebrow,
#hiring .eyebrow,
#value .eyebrow,
#contact .eyebrow,
.resource-hero .eyebrow,
.town-hero .eyebrow,
.blog-hero .eyebrow { color: var(--gold-light); }
.hero .eyebrow::before,
#marketing .eyebrow::before,
#hiring .eyebrow::before,
#value .eyebrow::before,
#contact .eyebrow::before,
.resource-hero .eyebrow::before,
.town-hero .eyebrow::before,
.blog-hero .eyebrow::before { background: var(--gold); }
.text-link span,
.town-arrow { color: var(--gold); }
#marketing .feature-list span { color: var(--gold-light); }
.services .card-grid.three .service-card .number { color: var(--navy); }
.services .card-grid.three .service-card:nth-child(2) .number { color: var(--gold-light); }
#areas .town-card .town-label,
.agent-role,
.agent-social-label { color: var(--navy); }

/* Shared focus and accessibility */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 3px solid rgba(216, 184, 95, .72);
  outline-offset: 3px;
}
[id] { scroll-margin-top: 115px; }

/* Homepage additions */
.panel-label {
  display: inline-block;
  margin-bottom: 12px;
  color: var(--navy);
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.buyer-panel > p { font-size: .96rem; }
.center-action { margin-top: 36px; text-align: center; }
.additional-coverage {
  margin-top: 30px;
  color: var(--muted);
  text-align: center;
}
.additional-coverage a { color: var(--navy); font-weight: 750; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.town-placeholder,
.post-placeholder {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--navy), var(--navy-2));
}
.town-placeholder img,
.post-placeholder img { width: 68px; height: auto; opacity: .9; }
.town-arrow { margin-top: auto; font-weight: 850; }
.market-home { background: #fff; }
.market-home-grid { align-items: center; }
.sample-market-card {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  padding: 30px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--gold);
  border-radius: 22px;
  background: var(--soft);
  box-shadow: var(--shadow);
}
.sample-market-card > img { position: absolute; right: 20px; top: 18px; width: 54px; opacity: .85; }
.sample-market-card > span { grid-column: 1 / -1; color: var(--navy); font-size: .72rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.sample-market-card > div { padding: 18px; border-radius: 14px; background: #fff; border: 1px solid var(--line); }
.sample-market-card strong,
.sample-market-card em { display: block; }
.sample-market-card strong { color: var(--navy); }
.sample-market-card em { margin-top: 4px; color: var(--muted); font-size: .78rem; font-style: normal; }
.sample-market-card small { grid-column: 1 / -1; color: var(--muted); }
.faq-preview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.faq-preview-grid a {
  display: flex;
  flex-direction: column;
  min-height: 150px;
  padding: 26px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease;
}
.faq-preview-grid a:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(7,23,45,.1); }
.faq-preview-grid strong { color: var(--navy); font-family: "Merriweather", Georgia, serif; font-size: 1.2rem; }
.faq-preview-grid span { margin-top: auto; padding-top: 24px; color: var(--gold-dark); font-weight: 800; }
.hiring-points { display: grid; gap: 14px; }
.hiring-points > div { padding: 24px; border: 1px solid rgba(255,255,255,.18); border-radius: 16px; background: rgba(255,255,255,.055); }
.hiring-points strong,
.hiring-points span { display: block; }
.hiring-points strong { color: #fff; font-size: 1.06rem; }
.hiring-points span { margin-top: 6px; color: #cbd8e5; }

/* Team contact section */
#contact.cta-strip {
  background: linear-gradient(135deg, var(--navy-3) 0%, var(--navy) 55%, var(--navy-2) 100%);
  color: var(--white);
}
#contact .cta-team-heading .eyebrow,
#contact .cta-team-heading .eyebrow.dark { color: var(--gold-light); }
#contact .cta-team-heading .eyebrow::before { background: var(--gold); }
#contact .cta-team-heading h2 { color: var(--white); }
#contact .cta-team-heading p { color: #d1deea; }
#contact .cta-agent-card {
  background: #f8f5ee;
  border: 1px solid rgba(183,146,46,.38);
  border-top: 5px solid var(--gold);
  box-shadow: 0 18px 40px rgba(0,0,0,.18);
}
#contact .cta-agent-card .eyebrow { color: var(--gold); }
#contact .cta-agent-card h3 { color: var(--navy); }
#contact .cta-agent-card a:first-of-type { background: var(--green); border-color: var(--green); color: var(--navy-3); }
#contact .cta-agent-card a:not(:first-of-type) { background: var(--white); border-color: var(--gold); color: var(--navy); }
#contact .cta-agent-card a { transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
#contact .cta-agent-card a:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(11,35,68,.16); }

/* Resource, agent, area, and town page heroes */
.resource-hero {
  padding: 152px 0 76px;
  color: #fff;
  background: linear-gradient(120deg, var(--navy-3), var(--navy-2));
}
.resource-hero h1 { margin-bottom: 14px; font-size: clamp(2.6rem, 6vw, 5rem); }
.resource-hero p { max-width: 850px; color: #cfdae6; font-size: 1.08rem; }
.resource-title-row,
.town-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) 130px; gap: 58px; align-items: center; }
.resource-tree,
.town-hero-tree { width: 110px; justify-self: end; filter: drop-shadow(0 12px 20px rgba(0,0,0,.18)); }
.town-main > h2,
.town-main > section > h2,
.resource-section .page-content > h2 { color: var(--navy); margin-top: 54px; }
.town-main > h3 { color: var(--navy); }
.sidebar-tree { width: 58px; margin-bottom: 18px; }
.town-sidebar hr { border: 0; border-top: 1px solid var(--line); margin: 24px 0; }
.town-sidebar .btn { margin-top: 16px; }

/* Reusable answer, content, process, capability, and FAQ components */
.answer-label {
  display: block;
  margin-bottom: 8px;
  color: var(--navy);
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.nwp-info-grid.three-up { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nwp-info-card { position: relative; }
.card-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  margin-bottom: 18px;
  border-radius: 50%;
  background: var(--navy);
  color: var(--gold-light);
  font-weight: 900;
}
.property-type-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 22px;
  margin: 24px 0 36px;
  padding: 0;
  list-style: none;
}
.property-type-list li { position: relative; padding: 14px 16px 14px 42px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); color: var(--navy); font-weight: 700; }
.property-type-list li::before { content: ""; position: absolute; left: 16px; top: 20px; width: 10px; height: 10px; border-radius: 50%; background: var(--green); }
.process-grid,
.marketing-capability-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 28px 0 46px; }
.process-card,
.capability-card {
  position: relative;
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
}
.process-card > span,
.capability-card > span { color: var(--gold-dark); font-weight: 900; letter-spacing: .12em; }
.process-card h3,
.capability-card h3 { margin: 28px 0 10px; color: var(--navy); }
.document-link {
  display: inline-flex;
  padding: 15px 18px;
  border: 1px solid rgba(183,146,46,.45);
  border-radius: 12px;
  background: #fbf8ef;
  color: var(--navy) !important;
  font-weight: 800;
  text-decoration: none;
}
.document-link:hover { background: #f4ecd6; }
.nwp-faq-item { padding: 0; border: 1px solid var(--line); border-radius: 14px; background: #fff; overflow: hidden; }
.nwp-faq-item summary { position: relative; padding: 20px 54px 20px 22px; color: var(--navy); font-weight: 800; cursor: pointer; list-style: none; }
.nwp-faq-item summary::-webkit-details-marker { display: none; }
.nwp-faq-item summary::after { content: "+"; position: absolute; right: 22px; top: 16px; color: var(--gold-dark); font-size: 1.5rem; line-height: 1; }
.nwp-faq-item[open] summary::after { content: "–"; }
.nwp-faq-item > div { padding: 0 22px 22px; }
.nwp-faq-item > div p:last-child { margin-bottom: 0; }
.faq-hub-nav { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0 50px; }
.faq-hub-nav a { padding: 12px 17px; border: 1px solid var(--line); border-radius: 999px; color: var(--navy) !important; font-weight: 800; text-decoration: none; }
.faq-hub-nav a:hover { background: var(--navy); color: #fff !important; }
.reflection-panel,
.methodology-note,
.regional-note {
  margin: 48px 0;
  padding: 34px;
  border-left: 5px solid var(--gold);
  border-radius: 0 18px 18px 0;
  background: var(--soft);
}
.reflection-panel h2,
.methodology-note h2,
.regional-note h2 { margin-top: 0; color: var(--navy); }
.resource-links,
.related-area-link { margin-top: 30px; }
.resource-links a,
.related-area-link a { color: var(--navy); font-weight: 800; }
.nwp-page-cta { position: relative; overflow: hidden; display: grid; grid-template-columns: 76px 1fr; gap: 26px; align-items: start; }
.cta-tree { width: 66px; filter: drop-shadow(0 7px 12px rgba(0,0,0,.2)); }

/* Agent profile page */
.agent-profile-list { display: grid; gap: 34px; }
.agent-profile {
  display: grid;
  grid-template-columns: minmax(260px, 35%) 1fr;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 16px 42px rgba(7,23,45,.1);
}
.agent-profile-photo { min-height: 540px; background: var(--soft); }
.agent-profile-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.agent-profile-copy { padding: 44px; }
.agent-profile-copy h2 { margin: 8px 0 12px; color: var(--navy); }
.agent-profile-copy .agent-markets { color: var(--navy); }
.agent-socials { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--line); }
.agent-socials a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 8px 13px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--navy);
  background: #fff;
  font-size: .78rem;
  font-weight: 800;
  text-decoration: none;
}
.agent-socials a:hover { border-color: var(--gold); box-shadow: 0 8px 18px rgba(7,23,45,.09); }
.agent-socials svg { width: 18px; height: 18px; }

/* Area directory */
.area-directory-grid { display: grid; gap: 20px; }
.featured-directory { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.service-directory { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.area-directory-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-height: 100%;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  color: inherit;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease;
}
.area-directory-card:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(7,23,45,.11); }
.area-image { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--navy); }
.area-image img { width: 100%; height: 100%; object-fit: cover; }
.area-directory-card > span:last-child { display: flex; flex-direction: column; flex: 1; padding: 24px; }
.area-directory-card small { color: var(--gold-dark); font-size: .68rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.area-directory-card strong { margin: 10px 0; color: var(--navy); font-family: "Merriweather", Georgia, serif; font-size: 1.25rem; }
.area-directory-card em { color: var(--muted); font-size: .86rem; font-style: normal; }
.area-directory-card.text-only { min-height: 230px; border-top: 4px solid var(--gold); }
.service-area-heading { margin-top: 80px; }

/* Market data */
.market-directory { margin-top: 70px; }
.market-directory-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.market-directory-grid a { display: flex; flex-direction: column; padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: #fff; text-decoration: none; }
.market-directory-grid strong { color: var(--navy); }
.market-directory-grid span { margin-top: 4px; color: var(--muted); font-size: .78rem; }
.metric-definition-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 28px 0 50px; }
.metric-definition { padding: 24px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.metric-definition h3 { margin-top: 0; color: var(--navy); }
.town-market { margin-top: 70px; padding-top: 70px; border-top: 1px solid var(--line); }
.town-market-empty { padding: 34px; border: 1px dashed #b5c1cc; border-radius: 18px; background: var(--soft); }
.town-market-empty .section-heading { margin-bottom: 24px; }
.market-share-card { padding: 34px; border: 1px solid var(--line); border-top: 6px solid var(--gold); border-radius: 22px; background: #fff; box-shadow: var(--shadow); }
.market-heading-row { display: grid; grid-template-columns: minmax(0, 1fr) 70px; gap: 20px; align-items: start; }
.market-heading-row h2 { margin: 4px 0 8px; color: var(--navy); }
.market-period { margin: 0; }
.market-tree { width: 58px; justify-self: end; }
.market-stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 28px; }
.market-stat { display: flex; flex-direction: column; min-height: 140px; padding: 20px; border-radius: 14px; background: var(--soft); }
.market-stat > span { color: var(--navy); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.market-stat strong { margin-top: auto; padding-top: 18px; color: var(--navy); font-family: "Merriweather", Georgia, serif; font-size: clamp(1.45rem, 4vw, 2rem); }
.market-stat small { margin-top: 5px; font-weight: 800; }
.market-stat small.up { color: #2f6f18; }
.market-stat small.down { color: #9d342d; }
.market-stat small.neutral { color: var(--muted); }
.market-source { margin: 22px 0 0; font-size: .78rem; }
.market-context-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 24px; }
.market-context-grid section { padding: 24px; border: 1px solid var(--line); border-radius: 16px; background: var(--soft); }
.market-context-grid h3 { margin-top: 0; color: var(--navy); }
.seller-meaning { margin-top: 24px; padding: 28px; border-left: 5px solid var(--green); border-radius: 0 16px 16px 0; background: #eef6e9; }
.seller-meaning h3 { margin-top: 0; color: var(--navy); }
.market-embed { position: relative; overflow: hidden; margin-top: 28px; padding-top: 62%; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.market-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.market-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin-top: 28px; }
.market-disclaimer { margin-top: 22px; font-size: .78rem; }

/* Article refinements */
.post-card.compact { min-height: 0; }
.related-articles { margin-top: 70px; padding-top: 50px; border-top: 1px solid var(--line); }
.single-author { display: grid; grid-template-columns: 60px 1fr; gap: 22px; }
.single-author > img { width: 52px; }
.not-found-tree { width: 72px; margin-bottom: 24px; }

/* Responsive 1.7 */
#areas .core-town-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1100px) {
  .featured-directory { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service-directory { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
  .resource-title-row,
  .town-hero-grid { grid-template-columns: 1fr 90px; gap: 30px; }
  .nwp-info-grid.three-up,
  .market-stat-grid,
  .market-context-grid,
  .market-directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .agent-profile { grid-template-columns: 230px 1fr; }
  .agent-profile-photo { min-height: 470px; }
  .service-directory { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #areas .core-town-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .resource-title-row,
  .town-hero-grid { grid-template-columns: 1fr; }
  .resource-tree,
  .town-hero-tree { display: none; }
  .agent-profile { grid-template-columns: 1fr; }
  .agent-profile-photo { min-height: 420px; max-height: 560px; }
  .agent-profile-copy { padding: 30px; }
  .nwp-info-grid.three-up,
  .process-grid,
  .marketing-capability-grid,
  .metric-definition-grid,
  .market-context-grid,
  .market-stat-grid,
  .market-directory-grid,
  .faq-preview-grid,
  .featured-directory,
  .service-directory { grid-template-columns: 1fr; }
  .property-type-list { grid-template-columns: 1fr; }
  .nwp-page-cta { grid-template-columns: 1fr; }
  .cta-tree { width: 54px; }
  .sample-market-card { grid-template-columns: 1fr; }
  .sample-market-card > span,
  .sample-market-card small { grid-column: auto; }
}
@media (max-width: 620px) {
  #areas .core-town-grid { grid-template-columns: 1fr; }
  .resource-hero { padding-top: 128px; }
  .market-share-card { padding: 24px; }
  .market-heading-row { grid-template-columns: 1fr; }
  .market-tree { display: none; }
}

/* Homepage agent card compatibility for the 1.7 markup */
.agent-card-body { padding: 34px; display: flex; flex-direction: column; align-items: flex-start; }
.agent-card-body h3 { color: var(--navy); font-family: "Merriweather", Georgia, serif; font-size: 2rem; margin: 4px 0 8px; }
.agent-card-body > p { flex: 1; }
.agent-card-body .agent-socials { width: 100%; }


/* ==========================================================
   Northwoods Property Team 1.7.1 homepage refinements
   ========================================================== */
.hero-proof-item { display: flex; flex-direction: column; gap: 2px; padding-right: 28px; border-right: 1px solid rgba(255,255,255,.24); text-decoration: none; }
.hero-proof-item:last-child { border-right: 0; }
.hero-proof-item:hover strong { color: var(--gold-light); }
.hero-proof-item:hover span { color: #fff; }
.hero-proof-item strong { font-size: 1.02rem; }
.hero-proof-item span { color: #bfcddd; font-size: .8rem; }
.hero-proof div { padding-right: 0; border-right: 0; }
.buyer-side { display: grid; gap: 22px; }
.buyer-search-links { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 16px; }
.buyer-panel-alt { background: #fbfcfd; }
.buyer-panel .buyer-points strong { color: var(--navy); }
.town-photo-credits { margin-top: 18px; color: #7c8794; font-size: .7rem; }
.town-photo-credits summary { cursor: pointer; font-weight: 750; }
.town-photo-credits p { margin: 8px 0 0; font-size: .7rem; }
.town-photo-credits a { color: inherit; }
.home .eyebrow::after { content: ""; width: 13px; height: 18px; display: inline-block; background: url('assets/images/northwoods-tree.png') center/contain no-repeat; }
.hero .eyebrow::after, #marketing .eyebrow::after, #hiring .eyebrow::after, #value .eyebrow::after, #contact .eyebrow::after { background-image: url('assets/images/northwoods-tree.png'); }
#contact .cta-agent-card a:first-of-type { background: var(--white); border-color: var(--gold); color: var(--navy); }
#contact .cta-agent-card a:not(:first-of-type) { background: var(--white); border-color: var(--gold); color: var(--navy); }
#contact .cta-agent-card a:hover { background: #fffdf7; }
@media (max-width: 680px) {
  .hero-proof-item { width: calc(50% - 9px); border-right: 0; padding-right: 0; }
  .hero-proof-item:last-child { width: 100%; }
}

/* ==========================================================
   Northwoods Property Team 1.7.2 refinements
   ========================================================== */

/* Give the linked hero proof points clear visual separation. */
.hero-proof { align-items: flex-start; row-gap: 22px; }
.hero-proof-item {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start;
  gap: 7px !important;
  min-width: 180px;
  line-height: 1.25;
}
.hero-proof-item strong,
.hero-proof-item span { display: block; }
.hero-proof-item span { line-height: 1.35; }

/* Compact reusable page CTA. This replaces the narrow, overly tall blocks. */
.nwp-page-cta,
.page-content .nwp-page-cta {
  display: block !important;
  width: 100%;
  min-height: 0;
  margin-top: 46px;
  padding: 28px;
  border-radius: 20px;
  background: linear-gradient(135deg, var(--navy), var(--navy-2));
  color: #fff;
  overflow: hidden;
}
.nwp-page-cta::before {
  content: "";
  position: absolute;
  right: 24px;
  top: 20px;
  width: 62px;
  height: 76px;
  background: url('assets/images/northwoods-tree.png') center/contain no-repeat;
  opacity: .12;
  pointer-events: none;
}
.nwp-page-cta-compact { position: relative; }
.nwp-compact-cta-copy {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  max-width: 900px;
}
.compact-tree-mark {
  width: 46px;
  height: 54px;
  background: url('assets/images/northwoods-tree.png') center/contain no-repeat;
}
.nwp-compact-cta-copy h2 {
  margin: 0 0 8px !important;
  color: #fff !important;
  font-size: clamp(1.55rem, 3vw, 2.35rem);
  line-height: 1.18;
}
.nwp-compact-cta-copy p {
  max-width: 760px;
  margin-bottom: 16px;
  color: #d4dfeb;
}
.nwp-compact-cta-copy .btn { margin: 0; }
.nwp-mini-agent-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 22px;
}
.nwp-mini-agent {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  padding: 14px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 16px;
  background: rgba(255,255,255,.07);
}
.nwp-mini-agent > img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  object-position: center 20%;
  border-radius: 14px;
  background: #fff;
}
.nwp-mini-agent-copy { min-width: 0; }
.nwp-mini-agent-copy > strong { display: block; color: #fff; font-size: 1rem; }
.nwp-mini-agent-copy > span { display: block; margin-top: 2px; color: #bdd0e2; font-size: .7rem; }
.nwp-mini-agent-actions { display: flex; flex-wrap: wrap; gap: 7px 12px; margin-top: 9px; }
.nwp-mini-agent-actions a {
  color: #fff !important;
  font-size: .76rem;
  font-weight: 800;
  text-decoration: none;
  border-bottom: 1px solid rgba(216,184,95,.65);
}
.nwp-mini-agent-actions a:hover { color: var(--gold-light) !important; }
.nwp-page-cta-simple .action-row { margin-top: 16px; }

/* Agent profile page: shorter cards and less aggressive portrait cropping. */
.agent-profile {
  grid-template-columns: minmax(260px, 320px) minmax(0, 1fr);
  align-items: stretch;
}
.agent-profile-photo {
  min-height: 0 !important;
  height: 410px;
  padding: 16px;
  background: #edf1f4;
}
.agent-profile-photo img {
  width: 100%;
  height: 100%;
  object-fit: contain !important;
  object-position: center !important;
  border-radius: 16px;
}
.agent-profile-copy { padding: 34px 38px; }
.agent-profile-copy .agent-markets { margin-bottom: 16px; }

/* Neutral, two-agent placement on town guides. */
.sidebar-agent-list { display: grid; gap: 12px; margin: 16px 0 20px; }
.sidebar-agent-row {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 11px;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: #fff;
}
.sidebar-agent-row img {
  width: 52px;
  height: 52px;
  object-fit: cover;
  object-position: center 20%;
  border-radius: 11px;
}
.sidebar-agent-row strong { display: block; color: var(--navy); font-size: .86rem; }
.sidebar-agent-row span { display: block; margin-top: 3px; color: var(--muted); font-size: .7rem; line-height: 1.4; }
.sidebar-agent-row a { display: inline; margin: 0; color: var(--navy); font-weight: 800; }

/* Coös County homepage and market-page snapshot. */
.county-market-heading { margin-bottom: 32px; }
.county-market-heading .btn { margin-top: 10px; }
.county-market-snapshot { margin-top: 28px; }
.county-market-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 14px;
  color: var(--muted);
  font-size: .76rem;
  font-weight: 750;
}
.county-market-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}
.county-market-card {
  padding: 28px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--gold);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(7,23,45,.08);
}
.county-market-card-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 20px;
}
.county-market-card-heading span {
  color: var(--gold-dark);
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.county-market-card-heading h3 {
  margin: 5px 0 0;
  color: var(--navy);
  font-family: "Merriweather", Georgia, serif;
  font-size: 1.55rem;
}
.county-market-card-heading img { width: 44px; height: 54px; object-fit: contain; }
.county-stat-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.county-stat-grid > div {
  display: flex;
  flex-direction: column;
  min-height: 92px;
  padding: 14px;
  border-radius: 12px;
  background: var(--soft);
}
.county-stat-grid span {
  color: var(--muted);
  font-size: .67rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.county-stat-grid strong {
  margin-top: auto;
  padding-top: 9px;
  color: var(--navy);
  font-family: "Merriweather", Georgia, serif;
  font-size: 1.25rem;
}
.county-market-card > p { margin: 18px 0 0; font-size: .9rem; }
.county-market-secondary { color: var(--navy) !important; font-weight: 750; }
.county-market-source { margin: 14px 0 0; color: var(--muted); font-size: .72rem; }
.county-market-compact .county-market-card > p { display: none; }

/* Additional CSS from the old Customizer must not turn Call buttons green. */
#contact .cta-agent-card .cta-buttons a.btn,
#contact .cta-agent-card a:first-of-type,
#contact .cta-agent-card a:not(:first-of-type) {
  background: var(--white) !important;
  border-color: var(--gold) !important;
  color: var(--navy) !important;
}

@media (max-width: 980px) {
  .agent-profile { grid-template-columns: 260px minmax(0, 1fr); }
  .agent-profile-photo { height: 360px; }
  .county-market-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .nwp-mini-agent-grid { grid-template-columns: 1fr; }
  .nwp-compact-cta-copy { grid-template-columns: 38px minmax(0, 1fr); }
  .compact-tree-mark { width: 36px; height: 44px; }
  .agent-profile { grid-template-columns: 1fr; }
  .agent-profile-photo { height: 340px; padding: 14px; }
  .county-stat-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 520px) {
  .hero-proof-item { width: 100% !important; min-width: 0; }
  .nwp-page-cta, .page-content .nwp-page-cta { padding: 22px; }
  .nwp-compact-cta-copy { grid-template-columns: 1fr; }
  .compact-tree-mark { width: 32px; height: 38px; }
  .nwp-mini-agent { grid-template-columns: 58px minmax(0, 1fr); }
  .nwp-mini-agent > img { width: 58px; height: 58px; }
  .county-stat-grid { grid-template-columns: 1fr; }
}


/* ==========================================================
   Northwoods Property Team 1.7.3 refinements
   ========================================================== */

/* Always use the actual Northwoods Property Team tree mark. */
.home .eyebrow::after,
.hero .eyebrow::after,
#marketing .eyebrow::after,
#hiring .eyebrow::after,
#value .eyebrow::after,
#contact .eyebrow::after,
.compact-tree-mark,
.nwp-page-cta::before {
  background-image: url('assets/images/northwoods-tree.png') !important;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.hero .eyebrow::after,
#marketing .eyebrow::after,
#hiring .eyebrow::after,
#value .eyebrow::after,
#contact .eyebrow::after { opacity: .85; }

/* Compact, horizontal page CTAs. Prevent the giant navy slabs and 2-word lines. */
.nwp-page-cta,
.page-content .nwp-page-cta {
  position: relative;
  display: grid !important;
  grid-template-columns: minmax(0, .88fr) minmax(420px, 1.12fr);
  gap: 26px;
  align-items: center;
  width: min(100%, 980px);
  min-height: 0 !important;
  margin: 44px auto 0;
  padding: 24px 26px;
  border-radius: 18px;
}
.nwp-page-cta::before {
  right: 20px;
  top: 16px;
  width: 44px;
  height: 58px;
  opacity: .08;
}
.nwp-compact-cta-copy {
  display: grid !important;
  grid-template-columns: 42px minmax(0, 1fr) !important;
  gap: 15px;
  align-items: start;
  width: 100%;
  max-width: none !important;
  min-width: 0;
}
.nwp-compact-cta-copy > div { min-width: 0; }
.compact-tree-mark { width: 40px; height: 48px; }
.nwp-compact-cta-copy h2 {
  max-width: none !important;
  margin: 0 0 7px !important;
  font-size: clamp(1.35rem, 2vw, 1.9rem) !important;
  line-height: 1.18;
}
.nwp-compact-cta-copy p {
  max-width: 560px !important;
  margin: 0 0 13px;
  font-size: .9rem;
  line-height: 1.6;
}
.nwp-mini-agent-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 0;
}
.nwp-mini-agent {
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 10px;
  padding: 10px;
  border-radius: 13px;
}
.nwp-mini-agent > img {
  width: 56px;
  height: 56px;
  object-fit: contain !important;
  object-position: center !important;
  padding: 2px;
  background: #f2f4f6;
  border-radius: 10px;
}
.nwp-mini-agent-actions { gap: 5px 9px; margin-top: 7px; }
.nwp-mini-agent-actions a { font-size: .71rem; }
.nwp-page-cta-simple {
  grid-template-columns: 1fr !important;
  width: min(100%, 760px);
}

/* Property question CTA: conventional button with a plain-language caption. */
.property-contact-action {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 7px;
  margin-top: 12px;
}
.property-contact-action .btn {
  min-width: 150px;
  border-radius: 999px !important;
  padding: 12px 22px !important;
  text-align: center;
}
.property-contact-action span {
  color: #cbd8e4;
  font-size: .76rem;
}

/* Homepage agent portraits: show the people, not an extreme crop. */
.agent-photo-wrap {
  min-height: 0 !important;
  height: 360px;
  padding: 12px;
  background: #eef2f5;
}
.agent-photo {
  width: 100%;
  height: 100%;
  min-height: 0 !important;
  object-fit: contain !important;
  object-position: center !important;
  border-radius: 14px;
}

/* Full agent page portraits stay fully visible too. */
.agent-profile-photo {
  height: 380px !important;
  min-height: 0 !important;
  padding: 14px !important;
}
.agent-profile-photo img {
  object-fit: contain !important;
  object-position: center !important;
}

/* Blog archive: nine newest cards per page with obvious archive navigation. */
.blog-archive-intro {
  display: grid;
  grid-template-columns: 1fr minmax(280px, .75fr);
  gap: 40px;
  align-items: end;
  margin-bottom: 34px;
}
.blog-archive-intro h2 { margin: 6px 0 0; color: var(--navy); }
.blog-archive-intro p { margin: 0; color: var(--muted); }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  min-height: 42px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--navy);
  font-weight: 800;
  text-decoration: none;
}
.pagination .page-numbers.current,
.pagination .page-numbers:hover { background: var(--navy); color: #fff; }

/* Local services directory. */
.services-hero { background: linear-gradient(120deg, var(--navy-3), var(--navy-2)); color: #fff; padding: 150px 0 72px; }
.services-hero p { max-width: 820px; color: #d4e0ec; }
.services-directory-section { background: var(--soft); }
.services-disclaimer {
  margin: 0 0 30px;
  padding: 20px 22px;
  border-left: 4px solid var(--gold);
  border-radius: 0 14px 14px 0;
  background: #fff;
  color: var(--muted);
  font-size: .86rem;
}
.service-jump-nav { display: flex; flex-wrap: wrap; gap: 9px; margin: 0 0 38px; }
.service-jump-nav a {
  padding: 9px 13px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--navy);
  font-size: .78rem;
  font-weight: 800;
  text-decoration: none;
}
.service-jump-nav a:hover { background: var(--navy); color: #fff; }
.service-trade-group { margin: 0 0 46px; scroll-margin-top: 125px; }
.service-trade-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.service-trade-heading img { width: 24px; height: 30px; object-fit: contain; }
.service-trade-heading h2 { margin: 0; color: var(--navy); }
.service-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.local-service-card {
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(7,23,45,.06);
}
.local-service-card h3 { margin: 0 0 8px; color: var(--navy); font-size: 1.05rem; }
.local-service-card p { margin: 5px 0; color: var(--muted); font-size: .82rem; }
.local-service-card a { color: var(--navy); font-weight: 800; text-decoration: none; }
.local-service-card a:hover { color: var(--green-dark); }
.service-empty { padding: 28px; border: 1px dashed var(--line); border-radius: 16px; background: #fff; }

@media (max-width: 980px) {
  .nwp-page-cta, .page-content .nwp-page-cta { grid-template-columns: 1fr; width: 100%; }
  .nwp-mini-agent-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .service-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .agent-photo-wrap { height: 330px; }
}
@media (max-width: 760px) {
  .nwp-mini-agent-grid { grid-template-columns: 1fr; }
  .nwp-compact-cta-copy { grid-template-columns: 34px minmax(0, 1fr) !important; }
  .compact-tree-mark { width: 32px; height: 40px; }
  .blog-archive-intro { grid-template-columns: 1fr; gap: 12px; }
  .service-card-grid { grid-template-columns: 1fr; }
  .agent-photo-wrap { height: 390px; }
}
@media (max-width: 520px) {
  .nwp-page-cta, .page-content .nwp-page-cta { padding: 20px; }
  .nwp-compact-cta-copy { grid-template-columns: 1fr !important; }
  .compact-tree-mark { width: 30px; height: 36px; }
  .nwp-mini-agent { grid-template-columns: 52px minmax(0, 1fr); }
  .nwp-mini-agent > img { width: 52px; height: 52px; }
}


/* ==========================================================
   Northwoods Property Team 1.7.4 refinements
   ========================================================== */

/* Add Local Services without crowding the desktop navigation. */
@media (min-width: 981px) {
  .site-nav { gap: 17px; }
  .site-nav a { font-size: .81rem; }
}

/* Reusable page CTA: full-width copy first, larger agent cards below.
   This intentionally overrides every older CTA grid definition. */
.nwp-page-cta,
.page-content .nwp-page-cta,
.nwp-page-cta.nwp-page-cta-compact,
.page-content .nwp-page-cta.nwp-page-cta-compact {
  display: block !important;
  width: min(100%, 1040px) !important;
  min-height: 0 !important;
  margin: 44px auto 0 !important;
  padding: 28px 30px !important;
  border-radius: 20px !important;
}
.nwp-compact-cta-copy,
.page-content .nwp-compact-cta-copy {
  display: grid !important;
  grid-template-columns: 46px minmax(0, 1fr) !important;
  gap: 16px !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  align-items: start !important;
}
.nwp-compact-cta-copy > div { min-width: 0 !important; width: 100% !important; }
.nwp-compact-cta-copy h2 {
  max-width: none !important;
  margin: 0 0 8px !important;
  font-size: clamp(1.55rem, 2.6vw, 2.25rem) !important;
  line-height: 1.16 !important;
}
.nwp-compact-cta-copy p {
  display: block !important;
  width: 100% !important;
  max-width: 880px !important;
  margin: 0 0 12px !important;
  font-family: "Manrope", system-ui, sans-serif !important;
  font-size: .96rem !important;
  line-height: 1.65 !important;
  white-space: normal !important;
}
.compact-tree-mark { width: 40px !important; height: 50px !important; }
.nwp-mini-agent-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px !important;
  width: 100% !important;
  margin-top: 24px !important;
}
.nwp-mini-agent {
  display: grid !important;
  grid-template-columns: 82px minmax(0, 1fr) !important;
  gap: 16px !important;
  align-items: center !important;
  padding: 18px !important;
  border-radius: 16px !important;
  min-width: 0 !important;
}
.nwp-mini-agent > img {
  width: 82px !important;
  height: 82px !important;
  padding: 3px !important;
  object-fit: contain !important;
  object-position: center !important;
  border-radius: 13px !important;
}
.nwp-mini-agent-copy > strong { font-size: 1.05rem !important; }
.nwp-mini-agent-copy > span { font-size: .76rem !important; line-height: 1.45 !important; }
.nwp-mini-agent-actions { gap: 8px 14px !important; margin-top: 10px !important; }
.nwp-mini-agent-actions a { font-size: .78rem !important; }
.property-contact-action { margin-top: 15px !important; }
.property-contact-action span { font-size: .8rem !important; }

/* Simple recruiting/FAQ CTA keeps the same readable top-copy treatment. */
.nwp-page-cta-simple,
.page-content .nwp-page-cta-simple {
  width: min(100%, 860px) !important;
}

/* Homepage agent cards: show the complete bios and align actions across cards. */
.agent-grid { align-items: stretch !important; }
.agent-card { height: 100% !important; }
.agent-card-body {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  height: 100% !important;
}
.agent-card-body > p { flex: 0 0 auto !important; }
.agent-card-body .agent-card-bio { flex: 1 1 auto !important; }
.agent-card-body .agent-contact-actions {
  width: 100% !important;
  margin-top: auto !important;
  padding-top: 18px !important;
}
.agent-card-body .btn-agent-site { width: 100% !important; margin-top: 10px !important; }
.agent-card-body .agent-socials { margin-top: 18px !important; }

/* Small portrait in the homepage bottom contact cards. */
.cta-agent-top { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.cta-agent-photo {
  width: 72px;
  height: 72px;
  object-fit: contain;
  object-position: center;
  border-radius: 14px;
  padding: 3px;
  background: #eef2f5;
  border: 1px solid rgba(11,35,68,.14);
}

/* Local services link and service cards remain easy to scan. */
.local-service-card p strong { color: var(--navy); }

@media (max-width: 760px) {
  .nwp-page-cta,
  .page-content .nwp-page-cta { padding: 24px !important; }
  .nwp-mini-agent-grid { grid-template-columns: 1fr !important; }
  .nwp-mini-agent { grid-template-columns: 72px minmax(0, 1fr) !important; }
  .nwp-mini-agent > img { width: 72px !important; height: 72px !important; }
}
@media (max-width: 520px) {
  .nwp-compact-cta-copy { grid-template-columns: 1fr !important; }
  .compact-tree-mark { width: 34px !important; height: 42px !important; }
  .nwp-mini-agent { grid-template-columns: 64px minmax(0, 1fr) !important; }
  .nwp-mini-agent > img { width: 64px !important; height: 64px !important; }
  .cta-agent-top { align-items: flex-start; }
  .cta-agent-photo { width: 62px; height: 62px; }
}


/* ==========================================================
   Northwoods Property Team 1.7.5 hard-reset refinements
   ========================================================== */

/*
 * The reusable team panels intentionally use brand-new selectors so legacy
 * Customizer CSS from the pre-staging build cannot collapse the text column.
 * There is no grid column around the paragraph: copy flows at normal width.
 */
.nwp-team-panel-v175 {
  position: relative;
  width: min(100%, 1040px);
  margin: 46px auto 0;
  padding: 30px;
  border-radius: 20px;
  background: linear-gradient(135deg, var(--navy), var(--navy-2));
  color: #fff;
  overflow: hidden;
}
.nwp-team-panel-v175::after {
  content: "";
  position: absolute;
  top: 18px;
  right: 22px;
  width: 48px;
  height: 60px;
  background: url('assets/images/northwoods-tree.png') center/contain no-repeat;
  opacity: .09;
  pointer-events: none;
}
.nwp-team-panel-heading-v175 {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  width: 100%;
  min-width: 0;
}
.nwp-team-panel-tree-v175 {
  flex: 0 0 42px;
  width: 42px;
  height: 52px;
  object-fit: contain;
}
.nwp-team-panel-copy-v175 {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  max-width: none;
}
.nwp-team-panel-copy-v175 h2 {
  width: 100%;
  max-width: none;
  margin: 0 0 8px;
  color: #fff;
  font-size: clamp(1.65rem, 2.8vw, 2.35rem);
  line-height: 1.16;
  white-space: normal;
  word-break: normal;
  overflow-wrap: normal;
}
.nwp-team-panel-copy-v175 p {
  display: block;
  width: 100%;
  max-width: 880px;
  margin: 0;
  color: #d6e1ec;
  font-size: 1rem;
  line-height: 1.65;
  white-space: normal;
  word-break: normal;
  overflow-wrap: normal;
}
.nwp-team-property-action-v175 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin-top: 16px;
}
.nwp-team-property-action-v175 .btn { margin: 0; }
.nwp-team-property-action-v175 span { color: #c8d6e4; font-size: .82rem; }
.nwp-team-agent-grid-v175 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  width: 100%;
  margin-top: 24px;
}
.nwp-team-agent-card-v175 {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  min-width: 0;
  padding: 18px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 16px;
  background: rgba(255,255,255,.075);
}
.nwp-team-agent-card-v175 > img {
  width: 92px;
  height: 92px;
  padding: 3px;
  border-radius: 14px;
  background: #eef2f5;
  object-fit: contain;
  object-position: center;
}
.nwp-team-agent-copy-v175 { min-width: 0; }
.nwp-team-agent-copy-v175 > strong { display: block; color: #fff; font-size: 1.08rem; }
.nwp-team-agent-copy-v175 > span { display: block; margin-top: 2px; color: #bfd0e0; font-size: .76rem; line-height: 1.4; }
.nwp-team-agent-actions-v175 { display: flex; flex-wrap: wrap; gap: 7px 14px; margin-top: 10px; }
.nwp-team-agent-actions-v175 a { color: #fff; font-size: .79rem; font-weight: 800; text-decoration: none; border-bottom: 1px solid rgba(216,184,95,.7); }
.nwp-team-agent-actions-v175 a:hover { color: var(--gold-light); }

.nwp-simple-panel-v175 {
  width: min(100%, 860px);
  margin: 46px auto 0;
  padding: 28px 30px;
  border-radius: 20px;
  background: linear-gradient(135deg, var(--navy), var(--navy-2));
  color: #fff;
}
.nwp-simple-panel-heading-v175 { display: flex; align-items: flex-start; gap: 18px; }
.nwp-simple-panel-heading-v175 > img { width: 42px; height: 52px; object-fit: contain; flex: 0 0 42px; }
.nwp-simple-panel-heading-v175 > div { flex: 1 1 auto; min-width: 0; }
.nwp-simple-panel-heading-v175 h2 { margin: 0 0 8px; color: #fff; }
.nwp-simple-panel-heading-v175 p { margin: 0; color: #d6e1ec; max-width: 760px; }

/* Homepage agent cards: make both cards share one row height and pin action rows to the same baseline. */
.agent-grid { grid-auto-rows: 1fr !important; align-items: stretch !important; }
.agent-card { height: 100% !important; align-items: stretch !important; }
.agent-card-body {
  display: grid !important;
  grid-template-rows: auto auto auto minmax(0, 1fr) auto auto auto !important;
  align-content: stretch !important;
  height: 100% !important;
}
.agent-card-body .agent-card-bio { min-height: 0 !important; overflow: visible !important; }
.agent-card-body .agent-contact-actions { align-self: end !important; margin-top: 18px !important; padding-top: 0 !important; }
.agent-card-body .btn-agent-site { align-self: end !important; }
.agent-card-body .agent-socials { align-self: end !important; }

@media (max-width: 760px) {
  .nwp-team-panel-v175 { padding: 24px; }
  .nwp-team-panel-agent-grid-v175,
  .nwp-team-agent-grid-v175 { grid-template-columns: 1fr; }
  .nwp-team-agent-card-v175 { grid-template-columns: 78px minmax(0, 1fr); }
  .nwp-team-agent-card-v175 > img { width: 78px; height: 78px; }
}
@media (max-width: 520px) {
  .nwp-team-panel-heading-v175,
  .nwp-simple-panel-heading-v175 { flex-direction: column; gap: 10px; }
  .nwp-team-panel-tree-v175,
  .nwp-simple-panel-heading-v175 > img { width: 34px; height: 42px; flex-basis: auto; }
  .nwp-team-agent-card-v175 { grid-template-columns: 68px minmax(0, 1fr); }
  .nwp-team-agent-card-v175 > img { width: 68px; height: 68px; }
}


/* ==========================================================
   Northwoods Property Team 1.7.6 recruiting + alignment pass
   ========================================================== */

/* Homepage agent cards: keep both action stacks on the same horizontal baseline. */
.agent-grid { align-items: stretch !important; grid-auto-rows: 1fr !important; }
.agent-card { height: 100% !important; }
.agent-card-body {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  height: 100% !important;
}
.agent-card-body > p,
.agent-card-body .agent-card-bio { flex: 0 0 auto !important; }
.agent-card-body .agent-card-bio { margin-bottom: 0 !important; }
.agent-card-footer {
  width: 100% !important;
  margin-top: auto !important;
  padding-top: 22px !important;
}
.agent-card-footer .agent-contact-actions { margin-top: 0 !important; padding-top: 0 !important; }
.agent-card-footer .btn-agent-site { width: 100% !important; margin-top: 10px !important; }
.agent-card-footer .agent-socials { min-height: 88px !important; margin-top: 18px !important; }
.agent-section-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; }
.btn-outline-navy { background: #fff; color: var(--navy); border: 1px solid var(--navy); }
.btn-outline-navy:hover { background: var(--navy); color: #fff; }
.agent-opportunity-link { margin: 38px 0 32px; }

/* Recruiting page: two clear paths instead of a generic recruiting pitch. */
.recruiting-path,
.recruiting-fit {
  margin: 42px 0;
  padding: clamp(24px, 4vw, 42px);
  border: 1px solid var(--line);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(7,23,45,.06);
}
.recruiting-path-featured { background: #f8faf9; border-top: 4px solid var(--green); }
.recruiting-path h2,
.recruiting-fit h2 { margin-top: 8px; }
.recruiting-path-intro { max-width: 900px; font-size: 1.06rem; }
.recruiting-stack { display: grid; gap: 18px; margin-top: 28px; }
.stack-layer { padding: 28px; border-radius: 20px; }
.stack-layer-northwoods { background: var(--navy); color: #fff; }
.stack-layer-exp { background: #eef3f7; color: var(--ink); border: 1px solid #d7e0e7; }
.stack-layer h3 { margin: 5px 0 18px; }
.stack-layer-northwoods h3 { color: #fff; }
.stack-label { display: block; color: var(--gold-light); text-transform: uppercase; letter-spacing: .12em; font-size: .72rem; font-weight: 850; }
.stack-layer-exp .stack-label { color: var(--green-dark); }
.stack-points { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.stack-points > div { padding: 18px; border-radius: 15px; }
.stack-layer-northwoods .stack-points > div { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); }
.stack-layer-exp .stack-points > div { background: #fff; border: 1px solid var(--line); }
.stack-points strong { display: block; margin-bottom: 6px; }
.stack-points span { display: block; line-height: 1.55; }
.stack-layer-northwoods .stack-points span { color: #d6e1ec; }
.recruiting-question { margin-top: 20px; padding: 18px 20px; border-left: 4px solid var(--gold); background: #fffaf0; border-radius: 0 14px 14px 0; }
.exp-direct-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin-top: 26px; }
.exp-direct-card { padding: 24px; border: 1px solid var(--line); border-radius: 18px; background: var(--soft); }
.exp-direct-card h3 { margin-top: 0; }
.recruiting-fit-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin-top: 24px; }
.recruiting-fit-grid > div { padding: 24px; border-radius: 18px; background: var(--soft); }
.recruiting-fit-grid strong { color: var(--navy); }
.recruiting-fit-grid ul { margin-bottom: 0; padding-left: 20px; }
.recruiting-fit-grid li + li { margin-top: 8px; }
.recruiting-final-cta { width: 100%; max-width: none; }
.recruiting-final-cta small { display: block; margin-top: 16px; color: #bfcddd; line-height: 1.5; }

@media (max-width: 820px) {
  .stack-points,
  .exp-direct-grid,
  .recruiting-fit-grid { grid-template-columns: 1fr; }
  .agent-card-footer .agent-socials { min-height: 0 !important; }
}


/* ==========================================================
   Northwoods Property Team 1.8.1 compliance + co-branding
   ========================================================== */
.header-cobrand {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 13px;
  min-width: 0;
}
.header-cobrand .brand { flex: 0 0 auto; }
.header-cobrand .header-logo {
  width: 244px;
  max-width: 32vw;
  max-height: 68px;
}
.header-brand-divider {
  width: 1px;
  height: 48px;
  flex: 0 0 1px;
  background: rgba(255,255,255,.34);
}
.header-exp-brand {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  text-decoration: none;
}
.header-exp-logo {
  width: 80px;
  height: auto;
  max-height: 64px;
  object-fit: contain;
}
.header-exp-brand:focus-visible,
.brand:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 5px;
  border-radius: 5px;
}

.agent-license {
  display: block;
  margin: -2px 0 12px;
  color: var(--green-dark);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .025em;
}
#contact .agent-license { margin: 2px 0 0; color: #6b624e; }
.sidebar-agent-row small {
  display: block;
  margin: 2px 0 4px;
  color: var(--muted);
  font-size: .68rem;
}

.footer-exp-affiliation {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 20px 78px;
}
.footer-exp-affiliation a { display: inline-flex; }
.footer-exp-affiliation img { width: 105px; height: auto; }
.footer-exp-affiliation span {
  color: #879aab;
  font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: .1em;
}
.footer-compliance strong { color: #fff; font-weight: 750; }
.equal-housing-link {
  margin-top: 5px;
  padding-top: 9px;
  border-top: 1px solid rgba(255,255,255,.1);
}
.footer-legal-notice {
  margin-top: 46px;
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.1);
}
.footer-legal-notice p {
  max-width: 1060px;
  margin: 0 0 7px;
  color: #93a4b5;
  font-size: .72rem;
  line-height: 1.55;
}
.footer-bottom { margin-top: 18px; }
.footer-legal-links { display: flex; flex-wrap: wrap; gap: 12px 18px; }
.footer-legal-links a { text-underline-offset: 3px; }

.legal-page { background: #fff; }
.legal-layout {
  display: grid;
  grid-template-columns: 310px minmax(0, 1fr);
  gap: 58px;
  align-items: start;
}
.legal-brokerage-card {
  position: sticky;
  top: 118px;
  padding: 28px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--gold);
  border-radius: 20px;
  background: var(--soft);
  box-shadow: 0 16px 36px rgba(7,23,45,.07);
}
.legal-brokerage-card h2 { margin: 18px 0 14px; color: var(--navy); font-size: 1.35rem; }
.legal-brokerage-card p { margin-bottom: 15px; font-size: .9rem; line-height: 1.55; }
.legal-brokerage-card a { word-break: break-word; }
.legal-exp-logo { width: 150px; height: auto; }
.legal-copy { max-width: 820px; }
.legal-copy section {
  padding: 0 0 34px;
  margin: 0 0 34px;
  border-bottom: 1px solid var(--line);
  scroll-margin-top: 125px;
}
.legal-copy section:last-child { border-bottom: 0; }
.legal-copy h2 { color: var(--navy); font-size: clamp(1.65rem, 3vw, 2.35rem); }
.legal-copy p { font-size: 1rem; }
.legal-link-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.legal-final-note {
  padding: 28px !important;
  border: 0 !important;
  border-radius: 18px;
  background: var(--soft);
}

@media (max-width: 1080px) {
  .header-cobrand .header-logo { width: 220px; }
  .header-exp-logo { width: 76px; }
}
@media (max-width: 980px) {
  .header-cobrand .header-logo { max-width: none; }
}
@media (max-width: 760px) {
  .legal-layout { grid-template-columns: 1fr; gap: 34px; }
  .legal-brokerage-card { position: static; }
  .footer-exp-affiliation { margin-left: 0; }
}
@media (max-width: 680px) {
  .nav-wrap { gap: 12px; }
  .header-cobrand { gap: 10px; }
  .header-cobrand .header-logo { width: 180px; max-height: 52px; }
  .header-brand-divider { height: 38px; }
  .header-exp-logo { width: 70px; max-height: 42px; }
}
@media (max-width: 420px) {
  .header-cobrand { gap: 8px; }
  .header-cobrand .header-logo { width: 150px; }
  .header-exp-logo { width: 64px; }
  .header-brand-divider { height: 34px; }
}
@media (max-width: 360px) {
  .header-cobrand .header-logo { width: 132px; }
  .header-exp-logo { width: 60px; }
  .nav-toggle { padding-inline: 5px; }
}


/* 1.8.1 fair-housing consumer resource page */
.fair-housing-page { background: #fff; }
.eho-intro {
  padding: 26px 28px;
  border-left: 5px solid var(--green);
  border-radius: 0 18px 18px 0;
  background: #f5f9f1;
  margin-bottom: 36px;
}
.eho-intro strong { color: var(--navy); }
.protected-class-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 22px;
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}
.protected-class-grid li {
  position: relative;
  padding: 10px 12px 10px 28px;
  border: 1px solid var(--line);
  border-radius: 12px;
  color: var(--ink);
  background: var(--soft);
}
.protected-class-grid li::before {
  content: "✓";
  position: absolute;
  left: 10px;
  color: var(--green-dark);
  font-weight: 900;
}
.consumer-resource-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 24px;
}
.consumer-resource-card {
  display: flex;
  flex-direction: column;
  min-height: 210px;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(7,23,45,.06);
}
.consumer-resource-card h3 { margin: 0 0 10px; color: var(--navy); }
.consumer-resource-card p { flex: 1; margin-bottom: 18px; }
.consumer-resource-card a { align-self: flex-start; }
.eho-phone { color: var(--navy); font-weight: 800; }
.brokerage-state-link { font-weight: 800; color: var(--navy); text-decoration-thickness: 1px; text-underline-offset: 3px; }
@media (max-width: 680px) {
  .protected-class-grid,
  .consumer-resource-grid { grid-template-columns: 1fr; }
}

/* ==========================================================
   Northwoods Property Team 1.9.0
   Authority + recruiting + performance/accessibility pass
   ========================================================== */

/* Homepage image is now a responsive <img>, allowing WordPress srcset and fetch priority. */
.hero { overflow: hidden; background: var(--navy-3); }
.hero-bg {
  position: absolute;
  inset: 0;
  z-index: -3;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.hero-overlay { z-index: -2; }

/* Compliance co-branding: preserve the approved eXp lockup proportions, but reduce its visual height modestly. */
.header-exp-logo { width: 66px; height: auto; max-height: 35px; aspect-ratio: 400 / 208; object-fit: contain; }
@media (max-width: 1080px) { .header-exp-logo { width: 62px; max-height: 33px; } }
@media (max-width: 680px) { .header-exp-logo { width: 56px; max-height: 30px; } }
@media (max-width: 420px) { .header-exp-logo { width: 52px; max-height: 28px; } }
@media (max-width: 360px) { .header-exp-logo { width: 48px; max-height: 26px; } }

/* Lighthouse contrast fixes. */
.agent-license { color: #3d7020; }
.town-arrow { color: var(--gold-dark); }

.agent-profile-deep-links { width: 100%; display: grid; gap: 10px; margin-top: 12px; }
.agent-profile-deep-links .btn { width: 100%; }

/* ---------- Dedicated agent authority pages ---------- */
.agent-authority-page { background: #fff; }
.agent-authority-hero {
  padding: 150px 0 78px;
  background: linear-gradient(125deg, var(--navy-3), var(--navy));
  color: #fff;
}
.agent-authority-hero .breadcrumbs,
.agent-authority-hero .breadcrumbs a { color: #cbd8e5; }
.agent-authority-hero-grid {
  display: grid;
  grid-template-columns: minmax(260px, 390px) minmax(0, 1fr);
  gap: 68px;
  align-items: center;
  margin-top: 28px;
}
.agent-authority-photo-wrap {
  border-radius: 28px;
  padding: 12px;
  background: rgba(255,255,255,.09);
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: var(--shadow);
}
.agent-authority-photo {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center top;
  border-radius: 20px;
}
.agent-authority-intro h1 { margin: 0 0 10px; }
.agent-authority-role { color: #dce8f3; font-size: 1rem; font-weight: 800; margin-bottom: 4px; }
.agent-authority-intro .agent-license { color: #cce8b8; margin: 0 0 24px; }
.agent-authority-headline { max-width: 770px; color: #d9e5f0; font-size: 1.16rem; }
.agent-authority-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.agent-search-link { display: inline-block; margin-top: 20px; color: #fff; font-weight: 800; text-underline-offset: 4px; }
.authority-two-col { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; align-items: start; }
.authority-lead-copy p { font-size: 1.08rem; }
.authority-fact-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.authority-fact-card { padding: 30px; border: 1px solid var(--line); border-radius: 20px; background: #fff; }
.authority-fact-card > span { color: var(--green-dark); font-size: .7rem; font-weight: 850; text-transform: uppercase; letter-spacing: .12em; }
.authority-fact-card h2 { margin: 8px 0 18px; color: var(--navy); font-size: 1.5rem; }
.authority-fact-card ul { margin: 0; padding-left: 20px; color: var(--muted); }
.authority-fact-card li + li { margin-top: 8px; }
.authority-situation-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
.authority-situation-card { padding: 30px; border: 1px solid var(--line); border-radius: 20px; background: #fff; box-shadow: 0 10px 28px rgba(7,23,45,.05); }
.authority-situation-card > span { color: var(--green-dark); font-size: .72rem; font-weight: 900; letter-spacing: .12em; }
.authority-situation-card h3 { margin: 26px 0 12px; color: var(--navy); font-size: 1.35rem; }
.authority-approach { background: var(--navy); color: #fff; }
.authority-approach p { color: #dbe6f0; }
.authority-process-list { display: grid; gap: 14px; }
.authority-process-list > div { display: grid; grid-template-columns: 46px 1fr; gap: 16px; padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.16); }
.authority-process-list > div > span { color: var(--green); font-weight: 900; }
.authority-process-list p { margin: 0; }
.authority-process-list strong { display: block; color: #fff; }
.authority-local-panel { max-width: 960px; }
.authority-local-panel p { font-size: 1.12rem; }
.authority-proof-grid,
.authority-case-grid,
.authority-article-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.authority-proof-card,
.authority-case-card,
.authority-article-grid article { margin: 0; padding: 28px; border: 1px solid var(--line); border-radius: 20px; background: #fff; }
.authority-proof-card p { color: var(--ink); font-size: 1.03rem; }
.authority-proof-card footer { color: var(--navy); font-weight: 850; }
.authority-proof-card footer span { display: block; margin-top: 5px; color: var(--muted); font-size: .75rem; font-weight: 600; }
.authority-case-card > span,
.authority-article-grid article > span { color: var(--green-dark); font-size: .7rem; font-weight: 850; text-transform: uppercase; letter-spacing: .1em; }
.authority-case-card h3,
.authority-article-grid h3 { color: var(--navy); margin: 12px 0; font-size: 1.3rem; }
.authority-case-card h3 a,
.authority-article-grid h3 a { text-decoration: none; }
.agent-authority-contact-panel { display: grid; grid-template-columns: 190px 1fr; gap: 34px; align-items: center; padding: 38px; border-radius: 26px; background: linear-gradient(120deg,var(--navy-3),var(--navy)); color: #fff; }
.agent-authority-contact-panel > img { width: 190px; height: 190px; object-fit: cover; object-position: center top; border-radius: 18px; }
.agent-authority-contact-panel p { color: #d4e0eb; }

/* ---------- Recruiting landing page ---------- */
.recruiting-hero {
  padding: 150px 0 86px;
  background: linear-gradient(120deg, var(--navy-3), var(--navy-2));
  color: #fff;
}
.recruiting-hero .breadcrumbs,
.recruiting-hero .breadcrumbs a { color: #cbd8e5; }
.recruiting-hero-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(300px,.85fr); gap: 62px; align-items: center; margin-top: 28px; }
.recruiting-hero-copy h1 { max-width: 900px; }
.recruiting-hero-copy > p { max-width: 770px; color: #d6e2ed; font-size: 1.08rem; }
.recruiting-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.recruiting-hero-note { margin-top: 18px !important; color: #b9cada !important; font-size: .85rem !important; }
.recruiting-hero-people { display: grid; gap: 16px; }
.recruiting-hero-people article { display: grid; grid-template-columns: 92px 1fr; gap: 16px; align-items: center; padding: 14px; border: 1px solid rgba(255,255,255,.16); border-radius: 18px; background: rgba(255,255,255,.07); }
.recruiting-hero-people img { width: 92px; height: 102px; object-fit: cover; object-position: center top; border-radius: 12px; }
.recruiting-hero-people strong { display: block; font-size: 1.05rem; }
.recruiting-hero-people span { display: block; margin-top: 3px; color: #bfd0df; font-size: .76rem; }
.recruiting-content-section { padding-top: 72px; }
.recruiting-proof-strip { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin: 0 0 42px; }
.recruiting-proof-strip > div { padding: 24px; border-radius: 18px; background: var(--soft); border: 1px solid var(--line); }
.recruiting-proof-strip strong { display: block; color: var(--navy); font-family: "Merriweather", Georgia, serif; font-size: 2rem; }
.recruiting-proof-strip span { display: block; margin-top: 6px; color: var(--muted); font-size: .82rem; }
.recruiting-who,
.recruiting-people,
.recruiting-new-agent,
.recruiting-faq { margin: 0 0 44px; padding: 34px; border: 1px solid var(--line); border-radius: 22px; background: #fff; }
.recruiting-who-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin-top: 24px; }
.recruiting-who-grid article { padding: 24px; border-radius: 18px; background: var(--soft); }
.recruiting-who-grid h3 { color: var(--navy); margin-top: 0; }
.recruiting-not-fit { margin: 22px 0 0; padding: 16px 18px; border-left: 4px solid var(--gold); background: #fffaf0; border-radius: 0 12px 12px 0; }
.recruiting-people-grid { display: grid; grid-template-columns: 1fr; gap: 22px; }
.recruiting-person { display: grid; grid-template-columns: 190px minmax(0,1fr); gap: 28px; align-items: start; overflow: hidden; border: 1px solid var(--line); border-radius: 20px; background: var(--soft); padding: 22px; }
.recruiting-person > img { width: 190px; height: 220px; object-fit: cover; object-position: center top; border-radius: 14px; }
.recruiting-person > div > span { color: var(--green-dark); font-size: .68rem; font-weight: 850; text-transform: uppercase; letter-spacing: .08em; }
.recruiting-person h3 { margin: 6px 0 10px; color: var(--navy); }
.recruiting-person p { max-width: 780px; font-size: .94rem; line-height: 1.65; }
.recruiting-step-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin-top: 26px; }
.recruiting-step-grid article { padding: 24px; border-radius: 18px; background: var(--soft); }
.recruiting-step-grid article > span { color: var(--green-dark); font-weight: 900; }
.recruiting-step-grid h3 { color: var(--navy); margin: 26px 0 10px; }
.recruiting-exp-info a { color: #fff; font-weight: 800; }
.recruiting-contact-section { scroll-margin-top: 100px; }
.recruiting-contact-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 70px; align-items: start; }
.recruiting-contact-grid > div > p { font-size: 1.05rem; }
.recruiting-direct-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 24px; }
.recruiting-form { background: #fff; border: 1px solid var(--line); border-radius: 22px; padding: 32px; box-shadow: var(--shadow); }
.recruiting-form label { display: grid; gap: 7px; margin-bottom: 16px; color: var(--navy); font-size: .78rem; font-weight: 800; }
.recruiting-form label > span { color: var(--muted); font-weight: 600; }
.recruiting-form input,
.recruiting-form select,
.recruiting-form textarea { width: 100%; padding: 12px 13px; border: 1px solid #ccd6df; border-radius: 10px; background: #fff; color: var(--ink); }
.recruiting-form textarea { resize: vertical; }
.recruiting-form input:focus,
.recruiting-form select:focus,
.recruiting-form textarea:focus { outline: 3px solid rgba(117,185,67,.25); border-color: var(--green-dark); }

/* ---------- Case study pages ---------- */
.case-study-layout { display: grid; grid-template-columns: minmax(0,1fr) 290px; gap: 48px; align-items: start; }
.case-study-featured { margin-bottom: 30px; border-radius: 22px; overflow: hidden; }
.case-study-featured img { width: 100%; height: auto; }
.case-study-proof-grid { display: grid; gap: 18px; margin-bottom: 32px; }
.case-study-proof-grid section { padding: 28px; border: 1px solid var(--line); border-radius: 18px; background: var(--soft); }
.case-study-proof-grid section > span { color: var(--green-dark); font-size: .7rem; font-weight: 850; text-transform: uppercase; letter-spacing: .1em; }
.case-study-proof-grid h2 { margin: 8px 0 12px; color: var(--navy); font-size: 1.55rem; }
.case-study-agent { position: sticky; top: 118px; padding: 24px; border: 1px solid var(--line); border-radius: 20px; background: #fff; text-align: center; }
.case-study-agent img { width: 150px; height: 150px; object-fit: cover; object-position: center top; border-radius: 50%; margin: 0 auto 16px; }
.case-study-agent > span { color: var(--green-dark); font-size: .7rem; font-weight: 850; text-transform: uppercase; letter-spacing: .1em; }
.case-study-agent h2 { margin: 6px 0; color: var(--navy); font-size: 1.5rem; }

/* ---------- Local services logos ---------- */
.local-service-card.has-logo { display: flex; flex-direction: column; align-items: flex-start; }
.local-service-logo { width: auto; max-width: 100%; height: 58px; object-fit: contain; object-position: left center; margin-bottom: 18px; }

@media (max-width: 980px) {
  .agent-authority-hero-grid,
  .authority-two-col,
  .recruiting-hero-grid,
  .recruiting-contact-grid,
  .case-study-layout { grid-template-columns: 1fr; }
  .agent-authority-photo-wrap { max-width: 390px; }
  .authority-fact-grid,
  .authority-proof-grid,
  .authority-case-grid,
  .authority-article-grid,
  .recruiting-proof-strip,
  .recruiting-who-grid,
  .recruiting-step-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .case-study-agent { position: static; max-width: 420px; }
}

@media (max-width: 760px) {
  .agent-authority-hero,
  .recruiting-hero { padding-top: 122px; }
  .authority-situation-grid,
  .recruiting-people-grid { grid-template-columns: 1fr; }
  .agent-authority-contact-panel { grid-template-columns: 1fr; }
  .agent-authority-contact-panel > img { width: 140px; height: 140px; }
  .recruiting-person { grid-template-columns: 130px minmax(0,1fr); }
  .recruiting-person > img { width: 130px; height: 170px; }
}

@media (max-width: 560px) {
  .authority-fact-grid,
  .authority-proof-grid,
  .authority-case-grid,
  .authority-article-grid,
  .recruiting-proof-strip,
  .recruiting-who-grid,
  .recruiting-step-grid { grid-template-columns: 1fr; }
  .recruiting-who,
  .recruiting-people,
  .recruiting-new-agent,
  .recruiting-faq { padding: 24px; }
  .recruiting-person { grid-template-columns: 1fr; }
  .recruiting-person > img { width: 100%; height: 300px; }
  .field-row { grid-template-columns: 1fr; }
}

.recruiting-systems { margin: 0 0 44px; padding: 34px; border: 1px solid var(--line); border-radius: 22px; background: var(--soft); }
.recruiting-system-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.recruiting-system-grid a { display: flex; flex-direction: column; min-height: 150px; padding: 24px; border: 1px solid var(--line); border-radius: 18px; background: #fff; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease; }
.recruiting-system-grid a:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(7,23,45,.09); }
.recruiting-system-grid strong { color: var(--navy); font-size: 1.1rem; }
.recruiting-system-grid span { margin-top: auto; padding-top: 20px; color: var(--muted); font-size: .84rem; }
@media (max-width: 560px) { .recruiting-systems { padding: 24px; } .recruiting-system-grid { grid-template-columns: 1fr; } }


/* ==========================================================
   Northwoods Property Team 1.9.1
   Staging-review fixes: authority contrast, recruiting clarity,
   market YoY context, portrait consistency, and layout stability.
   ========================================================== */

/* Keep brand images from shifting the header/hero as they decode. */
.header-cobrand .header-logo,
.hero-team-logo { aspect-ratio: 800 / 211; }
.footer-exp-affiliation img,
.legal-exp-logo { aspect-ratio: 400 / 208; }
.footer-tree-logo,
.resource-tree,
.town-hero-tree,
.sidebar-tree,
.market-tree,
.service-trade-heading > img,
.county-market-card-heading img,
.not-found-tree,
.single-author > img,
.nwp-team-panel-tree-v175,
.nwp-simple-panel-heading-v175 > img { aspect-ratio: 326 / 512; }
.agent-photo,
.cta-agent-photo,
.sidebar-agent-row > img,
.recruiting-hero-people img,
.recruiting-person > img,
.agent-authority-photo,
.agent-authority-contact-panel > img,
.case-study-agent img { aspect-ratio: 1 / 1; }

/* The authority/recruiting hero eyebrow must remain readable on navy. */
.agent-authority-hero .eyebrow,
.recruiting-hero .eyebrow { color: #f0d889; }
.agent-authority-hero .eyebrow::before,
.recruiting-hero .eyebrow::before { background: var(--gold-light); }

/* Stronger team-business explanation on recruiting page. */
.recruiting-business-builder {
  margin: 22px 0;
  padding: 28px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 18px;
  background: rgba(255,255,255,.055);
}
.recruiting-business-builder > span {
  display: block;
  margin-bottom: 8px;
  color: var(--gold-light);
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.recruiting-business-builder h3 { margin: 0 0 12px; color: #fff; font-size: 1.65rem; }
.recruiting-business-builder > p { color: #d6e1ec; }
.recruiting-business-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-top: 20px; }
.recruiting-business-grid > div { padding: 18px; border-radius: 14px; background: rgba(255,255,255,.08); }
.recruiting-business-grid strong { display: block; margin-bottom: 6px; color: #fff; }
.recruiting-business-grid span { display: block; color: #d6e1ec; line-height: 1.55; }

/* Same-date year-over-year context for the county snapshot. */
.county-yoy {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 8px;
  margin-top: 14px;
}
.county-yoy > div { padding: 11px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.county-yoy span { display: block; color: var(--muted); font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .045em; }
.county-yoy strong { display: block; margin-top: 4px; color: var(--navy); font-size: .9rem; }
.county-yoy-note { margin: 12px 0 0; color: var(--muted); font-size: .74rem; }
.county-market-compact .county-yoy-note { display: none; }

@media (max-width: 820px) {
  .recruiting-business-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .county-yoy { grid-template-columns: 1fr; }
}


/* ==========================================================
   Northwoods Property Team 1.9.2 base
   FAQ depth, recruiting/eXp completeness, search choice,
   consistent actions, contrast, agent-card width, and tree ratio.
   ========================================================== */

/* Header search selector: one clear entry point, two agent choices. */
.nav-search-menu { position: relative; }
.nav-search-menu > summary { list-style: none; cursor: pointer; user-select: none; }
.nav-search-menu > summary::-webkit-details-marker { display: none; }
.nav-search-menu > summary::after { content: "⌄"; margin-left: 7px; font-size: .85em; }
.nav-search-menu[open] > summary::after { content: "⌃"; }
.nav-search-options {
  position: absolute;
  z-index: 50;
  top: calc(100% + 12px);
  right: 0;
  width: min(340px, 82vw);
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(4,19,39,.22);
}
.site-nav .nav-search-options a {
  display: block;
  padding: 14px 16px;
  border-radius: 11px;
  color: var(--navy) !important;
  text-decoration: none;
}
.site-nav .nav-search-options a:hover,
.site-nav .nav-search-options a:focus-visible { background: var(--soft); }
.site-nav .nav-search-options strong { display: block; color: var(--navy); font-size: .92rem; }
.site-nav .nav-search-options span { display: block; margin-top: 3px; color: var(--muted); font-size: .72rem; font-weight: 650; }

/* Consistent action hierarchy. Green = primary, navy = secondary, outline = tertiary. */
.btn.btn-primary,
button.btn.btn-primary { background: var(--green) !important; border-color: var(--green) !important; color: var(--navy-3) !important; }
.btn.btn-primary:hover,
button.btn.btn-primary:hover { background: var(--green-dark) !important; border-color: var(--green-dark) !important; color: #fff !important; }
.btn.btn-secondary { background: var(--navy) !important; border-color: var(--navy) !important; color: #fff !important; }
.btn.btn-secondary:hover { background: var(--navy-2) !important; border-color: var(--navy-2) !important; color: #fff !important; }
.btn.btn-white { background: #fff !important; border-color: #fff !important; color: var(--navy) !important; }
.btn.btn-white:hover { background: var(--green) !important; border-color: var(--green) !important; color: var(--navy-3) !important; }
.btn.btn-outline-navy { background: transparent !important; border-color: var(--navy) !important; color: var(--navy) !important; }
.btn.btn-outline-navy:hover { background: var(--navy) !important; border-color: var(--navy) !important; color: #fff !important; }
.btn.btn-ghost,
.btn.btn-outline-white { background: transparent !important; border-color: rgba(255,255,255,.52) !important; color: #fff !important; }
.btn.btn-ghost:hover,
.btn.btn-outline-white:hover { background: #fff !important; border-color: #fff !important; color: var(--navy) !important; }

/* Prevent historical blue-on-blue Customizer rules from winning on dark sections. */
.agent-authority-hero .eyebrow,
.recruiting-hero .eyebrow,
.recruiting-final-cta .eyebrow,
.nwp-simple-panel-v175 .eyebrow,
.agent-authority-contact-panel .eyebrow,
.resource-hero .eyebrow,
.town-hero .eyebrow,
.blog-hero .eyebrow,
#marketing .eyebrow,
#hiring .eyebrow,
#value .eyebrow,
#contact .eyebrow,
#marketing .eyebrow.dark,
#hiring .eyebrow.dark,
#value .eyebrow.dark,
#contact .eyebrow.dark { color: #f0d889 !important; }
.agent-authority-hero .eyebrow::before,
.recruiting-hero .eyebrow::before,
.recruiting-final-cta .eyebrow::before,
.nwp-simple-panel-v175 .eyebrow::before,
.agent-authority-contact-panel .eyebrow::before,
.resource-hero .eyebrow::before,
.town-hero .eyebrow::before,
.blog-hero .eyebrow::before,
#marketing .eyebrow::before,
#hiring .eyebrow::before,
#value .eyebrow::before,
#contact .eyebrow::before { background: var(--gold-light) !important; }

/* Decorative tree art must preserve the original 326x512 proportions. */
.resource-tree,
.town-hero-tree,
.sidebar-tree,
.market-tree,
.not-found-tree,
.nwp-team-panel-tree-v175,
.nwp-simple-panel-heading-v175 > img,
.footer-tree-logo,
.service-trade-heading > img,
.county-market-card-heading img,
.single-author > img {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center !important;
  flex-shrink: 0;
}
.resource-tree,
.town-hero-tree { width: 110px !important; max-width: 110px !important; }
.sidebar-tree,
.market-tree { width: 58px !important; max-width: 58px !important; }
.not-found-tree { width: 72px !important; max-width: 72px !important; }
.nwp-team-panel-tree-v175,
.nwp-simple-panel-heading-v175 > img { width: 48px !important; max-width: 48px !important; }

/* Recruiting profiles use the available horizontal space instead of tall narrow cards. */
.recruiting-people-grid { grid-template-columns: 1fr !important; }
.recruiting-person {
  width: 100% !important;
  max-width: none !important;
  grid-template-columns: minmax(180px,220px) minmax(0,1fr) !important;
  gap: 30px !important;
  align-items: start !important;
}
.recruiting-person > img {
  width: 100% !important;
  max-width: 220px !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  object-position: center top !important;
}
.recruiting-person > div { min-width: 0 !important; width: 100% !important; }
.recruiting-person p { max-width: 820px !important; width: auto !important; }

/* eXp benefit layer gets enough horizontal room to stay readable. */
.stack-layer-exp .stack-points { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
.recruiting-exp-resource-links { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 20px; }
.recruiting-exp-resource-links .text-link { color: var(--navy); }

@media (max-width: 980px) {
  .nav-search-menu { width: 100%; }
  .nav-search-menu > summary { display: block; width: 100%; text-align: center; }
  .nav-search-options { position: static; width: 100%; margin-top: 8px; box-shadow: none; }
  .recruiting-person { grid-template-columns: minmax(150px,190px) minmax(0,1fr) !important; }
}
@media (max-width: 680px) {
  .recruiting-person { grid-template-columns: 1fr !important; }
  .recruiting-person > img { width: min(220px,100%) !important; }
  .stack-layer-exp .stack-points { grid-template-columns: 1fr !important; }
}

/* ---------- Theme 1.9.3 estate authority + QA fixes ---------- */
/* Local Services hero uses the same high-contrast eyebrow treatment as other navy heroes. */
.services-hero .eyebrow,
.services-hero .eyebrow.dark,
.estate-resource-hero .eyebrow,
.estate-resource-hero .eyebrow.dark { color: #f0d889 !important; }
.services-hero .eyebrow::before,
.services-hero .eyebrow.dark::before,
.estate-resource-hero .eyebrow::before,
.estate-resource-hero .eyebrow.dark::before { background: var(--gold-light) !important; }

/* Join Us biographies: force a wide desktop reading measure instead of tall, narrow text stacks. */
.recruiting-people-grid { display: block !important; width: 100% !important; }
.recruiting-person {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  gap: 30px !important;
  margin: 0 0 22px !important;
}
.recruiting-person:last-child { margin-bottom: 0 !important; }
.recruiting-person > img {
  flex: 0 0 210px !important;
  width: 210px !important;
  max-width: 210px !important;
  height: 230px !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  object-position: center top !important;
}
.recruiting-person > div {
  flex: 1 1 auto !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
}
.recruiting-person p {
  width: 100% !important;
  max-width: none !important;
  margin-right: 0 !important;
  font-size: .96rem;
  line-height: 1.65;
}

/* Estate resource center. */
.estate-disclaimer-wrap { padding: 24px 0 0; background: #fff; }
.estate-disclaimer {
  border: 1px solid #ead9aa;
  border-left: 5px solid var(--gold);
  border-radius: 14px;
  background: #fffaf0;
  color: #4b5360;
  padding: 18px 20px;
  font-size: .92rem;
  line-height: 1.6;
}
.estate-disclaimer strong { color: var(--navy); }
.estate-resource-content { padding-top: 48px; }
.estate-resource-content > .container > .nwp-page-lead { max-width: 900px; }
.estate-answer-box { margin-bottom: 42px; }
.estate-section { margin: 52px 0; }
.estate-section:first-child { margin-top: 0; }
.estate-path-grid,
.estate-topic-grid,
.estate-check-grid,
.estate-warning-grid,
.estate-fact-grid,
.estate-download-grid,
.estate-resource-grid { display: grid; gap: 20px; }
.estate-path-grid { grid-template-columns: repeat(2,minmax(0,1fr)); margin: 34px 0 50px; }
.estate-path-card {
  display: block;
  min-height: 100%;
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--soft);
  color: inherit;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.estate-path-card:hover { transform: translateY(-2px); border-color: rgba(117,185,67,.6); box-shadow: 0 12px 28px rgba(7,23,45,.08); }
.estate-path-card > span { display: block; margin-bottom: 8px; color: var(--green-dark); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.estate-path-card h3 { margin: 0 0 10px; color: var(--navy); font-size: 1.35rem; }
.estate-path-card p { margin: 0; color: var(--muted); }
.estate-topic-grid,
.estate-check-grid,
.estate-warning-grid,
.estate-fact-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.estate-topic-grid > article,
.estate-check-grid > div,
.estate-warning-grid > div,
.estate-fact-grid > div {
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--soft);
}
.estate-topic-grid h3 { margin: 0 0 9px; color: var(--navy); }
.estate-check-grid strong,
.estate-warning-grid strong,
.estate-fact-grid strong { display: block; color: var(--navy); margin-bottom: 7px; }
.estate-check-grid span,
.estate-warning-grid span,
.estate-fact-grid span { display: block; color: var(--muted); line-height: 1.55; }
.estate-warning-grid > div { border-left: 4px solid var(--gold); background: #fffaf0; }
.estate-process-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.estate-download-grid { grid-template-columns: repeat(2,minmax(0,1fr)); margin: 22px 0; }
.estate-download-grid > article {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 10px 26px rgba(7,23,45,.05);
}
.estate-download-label { color: var(--green-dark); font-size: .7rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.estate-download-grid h3 { color: var(--navy); margin: 8px 0 10px; }
.estate-download-grid p { flex: 1; color: var(--muted); }
.estate-resource-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.estate-resource-card { padding: 24px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.estate-resource-card h3 { margin: 0 0 10px; color: var(--navy); font-size: 1.12rem; }
.estate-resource-card p { color: var(--muted); }
.estate-northwoods-approach {
  margin: 54px 0;
  padding: 34px;
  border-radius: 24px;
  background: linear-gradient(120deg,var(--navy-3),var(--navy));
  color: #fff;
}
.estate-northwoods-approach .eyebrow,
.estate-northwoods-approach .eyebrow.dark { color: #f0d889 !important; }
.estate-northwoods-approach .eyebrow::before { background: var(--gold-light) !important; }
.estate-northwoods-approach h2 { color: #fff; }
.estate-northwoods-approach p { color: #dbe6f0; }
.estate-approach-grid { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 28px; align-items: center; }
.estate-back-link { margin-top: 50px; font-weight: 800; }
.estate-review-stamp { margin-top: 56px; padding-top: 16px; border-top: 1px solid var(--line); color: var(--muted); font-size: .78rem; line-height: 1.55; }

/* Estate pillar links elsewhere on the site. */
.seller-estate-bridge,
.faq-estate-bridge {
  margin: 48px 0;
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: var(--soft);
}
.seller-estate-bridge h2,
.faq-estate-bridge h2 { color: var(--navy); }
.estate-home-panel {
  display: grid;
  grid-template-columns: minmax(0,1.12fr) minmax(320px,.88fr);
  gap: 48px;
  padding: 44px;
  border: 1px solid var(--line);
  border-radius: 26px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(7,23,45,.06);
}
.estate-home-copy h2 { color: var(--navy); }
.estate-home-copy p { color: var(--muted); }
.estate-home-paths { display: grid; gap: 14px; }
.estate-home-paths a { display: block; padding: 20px; border-radius: 16px; background: var(--navy); text-decoration: none; }
.estate-home-paths strong { display: block; color: #fff; }
.estate-home-paths span { display: block; margin-top: 5px; color: #ccdae7; font-size: .86rem; }

/* Community directory is one alphabetical list in 1.9.3. */
.alphabetical-directory { margin-top: 28px; }

@media (max-width: 980px) {
  .estate-path-grid,
  .estate-topic-grid,
  .estate-check-grid,
  .estate-warning-grid,
  .estate-fact-grid,
  .estate-download-grid,
  .estate-resource-grid,
  .estate-process-grid,
  .estate-home-panel { grid-template-columns: 1fr; }
  .estate-approach-grid { grid-template-columns: 1fr; }
  .recruiting-person > img { flex-basis: 180px !important; width: 180px !important; max-width: 180px !important; height: 200px !important; }
}
@media (max-width: 680px) {
  .recruiting-person { flex-direction: column !important; }
  .recruiting-person > img { flex: 0 0 auto !important; width: min(220px,100%) !important; max-width: 220px !important; height: auto !important; aspect-ratio: 1 / 1 !important; }
  .estate-northwoods-approach,
  .estate-home-panel { padding: 26px; }
}

/* ---------- Theme 1.9.4 completed estate/property authority center ---------- */
.estate-path-grid > a {
  display: block;
  min-height: 100%;
  padding: 28px;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--soft);
  color: inherit;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.estate-path-grid > a:hover { transform: translateY(-2px); border-color: rgba(117,185,67,.6); box-shadow: 0 12px 28px rgba(7,23,45,.08); }
.estate-path-grid > a > span { display:block; margin-bottom:8px; color:var(--green-dark); font-size:.72rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.estate-path-grid > a > strong { display:block; margin:0 0 10px; color:var(--navy); font-family:"Merriweather",serif; font-size:1.25rem; line-height:1.35; }
.estate-path-grid > a > p { margin:0; color:var(--muted); }

.estate-jump-nav {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin:28px 0 52px;
}
.estate-jump-nav a {
  display:block;
  padding:20px;
  border:1px solid #d9e1e8;
  border-radius:16px;
  background:#fff;
  text-decoration:none;
  box-shadow:0 8px 22px rgba(7,23,45,.04);
}
.estate-jump-nav strong { display:block; color:var(--navy); margin-bottom:5px; }
.estate-jump-nav span { display:block; color:var(--muted); font-size:.86rem; line-height:1.5; }

.estate-authority-flow {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
  margin:24px 0;
}
.estate-authority-flow article {
  position:relative;
  padding:26px 22px 22px;
  border:1px solid var(--line);
  border-top:4px solid var(--green);
  border-radius:18px;
  background:#fff;
}
.estate-authority-flow article > span {
  display:inline-grid;
  place-items:center;
  width:36px;
  height:36px;
  margin-bottom:12px;
  border-radius:50%;
  background:var(--navy);
  color:#fff;
  font-size:.72rem;
  font-weight:850;
}
.estate-authority-flow h3 { margin:0 0 8px; color:var(--navy); font-size:1.08rem; }
.estate-authority-flow p { margin:0; color:var(--muted); font-size:.9rem; line-height:1.55; }

.estate-compare-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  margin:24px 0;
}
.estate-compare-grid.two-up { grid-template-columns:repeat(2,minmax(0,1fr)); }
.estate-compare-grid article {
  padding:24px;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--soft);
}
.estate-compare-grid h3 { margin:0 0 8px; color:var(--navy); }
.estate-compare-grid p { margin:0; color:var(--muted); }

.estate-compare-table {
  display:grid;
  gap:1px;
  margin:26px 0 44px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:18px;
  background:var(--line);
}
.estate-compare-row {
  display:grid;
  grid-template-columns:minmax(150px,.8fr) repeat(3,minmax(0,1fr));
  background:#fff;
}
.estate-compare-row > * { padding:16px 18px; border-right:1px solid var(--line); }
.estate-compare-row > *:last-child { border-right:0; }
.estate-compare-row strong { color:var(--navy); }
.estate-compare-row span { color:var(--muted); font-size:.88rem; line-height:1.5; }
.estate-compare-head { background:var(--navy); }
.estate-compare-head span { color:#fff; font-weight:800; }

.estate-warning-panel {
  margin:44px 0;
  padding:28px 30px;
  border:1px solid #ead9aa;
  border-left:5px solid var(--gold);
  border-radius:18px;
  background:#fffaf0;
}
.estate-warning-panel h2 { margin-top:0; color:var(--navy); }
.estate-warning-panel p:last-child { margin-bottom:0; }

.estate-resource-content .text-link { overflow-wrap:anywhere; }
.estate-resource-content .btn + .btn { margin-left:8px; margin-top:8px; }
.estate-approach-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.estate-approach-grid > div { padding:18px; border:1px solid rgba(255,255,255,.14); border-radius:14px; background:rgba(255,255,255,.04); }
.estate-approach-grid strong { display:block; color:#fff; margin-bottom:5px; }
.estate-approach-grid span { display:block; color:#dbe6f0; font-size:.9rem; line-height:1.55; }

@media (max-width: 980px) {
  .estate-jump-nav,
  .estate-authority-flow,
  .estate-compare-grid,
  .estate-compare-grid.two-up { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .estate-compare-row { grid-template-columns:1fr; }
  .estate-compare-row > * { border-right:0; border-bottom:1px solid var(--line); }
  .estate-compare-row > *:last-child { border-bottom:0; }
  .estate-compare-head { display:none; }
}
@media (max-width: 680px) {
  .estate-jump-nav,
  .estate-authority-flow,
  .estate-compare-grid,
  .estate-compare-grid.two-up,
  .estate-approach-grid { grid-template-columns:1fr; }
  .estate-warning-panel { padding:24px; }
}

/* ==========================================================
   Northwoods Property Team 1.9.6
   Resource navigation, compact community directory,
   estate orientation, and trail-access real-estate pillar.
   ========================================================== */

/* Primary Resources menu. */
.nav-resources-menu { position: relative; }
.nav-resources-menu > summary {
  list-style: none;
  cursor: pointer;
  user-select: none;
  color: #fff;
  font-size: .84rem;
  font-weight: 750;
  white-space: nowrap;
}
.nav-resources-menu > summary::-webkit-details-marker { display: none; }
.nav-resources-menu > summary::after { content: "⌄"; margin-left: 7px; font-size: .85em; }
.nav-resources-menu[open] > summary::after { content: "⌃"; }
.nav-resource-options {
  position: absolute;
  z-index: 60;
  top: calc(100% + 14px);
  right: 0;
  width: min(390px, 88vw);
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(4,19,39,.24);
}
.site-nav .nav-resource-options a {
  display: block;
  padding: 13px 15px;
  border-radius: 11px;
  color: var(--navy) !important;
  text-decoration: none;
  white-space: normal;
}
.site-nav .nav-resource-options a:hover,
.site-nav .nav-resource-options a:focus-visible { background: var(--soft); }
.site-nav .nav-resource-options strong { display: block; color: var(--navy); font-size: .9rem; }
.site-nav .nav-resource-options span { display: block; margin-top: 3px; color: var(--muted); font-size: .72rem; line-height: 1.35; font-weight: 650; }

/* Compact square community-guide directory. */
.alphabetical-directory {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.alphabetical-directory .area-directory-card {
  aspect-ratio: 1 / 1;
  min-height: 0;
  border-radius: 16px;
}
.alphabetical-directory .area-image { flex: 0 0 42%; aspect-ratio: auto; }
.alphabetical-directory .area-directory-card > span:last-child { min-height: 0; padding: 17px 18px 18px; }
.alphabetical-directory .area-directory-card small { font-size: .6rem; line-height: 1.25; }
.alphabetical-directory .area-directory-card strong { margin: 7px 0; font-size: 1.02rem; line-height: 1.25; }
.alphabetical-directory .area-directory-card em {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  font-size: .76rem;
  line-height: 1.42;
}
.alphabetical-directory .area-directory-card.text-only {
  min-height: 0;
  aspect-ratio: 1 / 1;
  border-top: 4px solid var(--gold);
}
.alphabetical-directory .area-directory-card.text-only > span:last-child { justify-content: center; }

/* Persistent estate-topic orientation. */
.estate-topic-nav-wrap { padding: 22px 0 0; background: #fff; }
.estate-topic-nav {
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--soft);
}
.estate-topic-nav-heading { display: flex; flex-wrap: wrap; gap: 7px 18px; align-items: baseline; margin-bottom: 14px; }
.estate-topic-nav-heading strong { color: var(--navy); }
.estate-topic-nav-heading span { color: var(--muted); font-size: .82rem; }
.estate-topic-nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.estate-topic-nav-links a {
  padding: 9px 12px;
  border: 1px solid #cbd5de;
  border-radius: 999px;
  background: #fff;
  color: var(--navy);
  font-size: .72rem;
  font-weight: 800;
  text-decoration: none;
}
.estate-topic-nav-links a:hover { border-color: var(--green); }
.estate-topic-nav-links a.active { background: var(--navy); border-color: var(--navy); color: #fff; }

/* Homepage recreation-property bridge. */
.home-trail-pillar { padding-top: 48px; padding-bottom: 48px; background: #fff; }
.home-trail-panel {
  display: grid;
  grid-template-columns: minmax(0,1.5fr) minmax(260px,.7fr);
  gap: 34px;
  align-items: center;
  padding: 34px;
  border: 1px solid var(--line);
  border-top: 5px solid var(--green);
  border-radius: 22px;
  background: var(--soft);
}
.home-trail-panel h2 { margin: 7px 0 12px; color: var(--navy); }
.home-trail-panel p { margin: 0; color: var(--muted); }
.home-trail-actions { display: flex; flex-direction: column; gap: 12px; }
.home-trail-actions span { color: var(--muted); font-size: .76rem; line-height: 1.45; }

/* Trail-access real-estate resource. */
.trail-answer-box { border-left: 5px solid var(--green); }
.trail-section { margin: 52px 0; }
.trail-access-levels,
.trail-resource-grid,
.trail-region-grid,
.trail-check-grid { display: grid; gap: 18px; }
.trail-access-levels { grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: 24px; }
.trail-access-levels article,
.trail-resource-grid article,
.trail-check-grid article {
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
}
.trail-access-levels article > span,
.trail-region-label { color: var(--green-dark); font-size: .66rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.trail-access-levels h3,
.trail-resource-grid h3,
.trail-check-grid h3 { margin: 8px 0; color: var(--navy); }
.trail-access-levels p,
.trail-resource-grid p,
.trail-check-grid p { margin-bottom: 0; color: var(--muted); }
.trail-live-panel {
  display: grid;
  grid-template-columns: minmax(250px,.7fr) minmax(0,1.5fr);
  gap: 30px;
  margin: 54px 0;
  padding: 34px;
  border-radius: 22px;
  background: var(--navy);
  color: #fff;
}
.trail-live-panel .eyebrow,
.trail-live-panel .eyebrow.dark { color: #f0d889 !important; }
.trail-live-panel h2 { color: #fff; }
.trail-live-panel > div:first-child p { color: #dbe6f0; }
.trail-resource-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.trail-resource-grid article { background: #fff; }
.trail-region-grid { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 24px; }
.trail-region-card {
  padding: 26px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--soft);
}
.trail-region-card h3 { margin: 7px 0 10px; color: var(--navy); }
.trail-region-card > p { color: var(--muted); }
.trail-region-towns { padding-bottom: 14px; border-bottom: 1px solid var(--line); font-size: .82rem; }
.trail-club-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.trail-club-columns > div > strong { display: block; margin-bottom: 8px; color: var(--navy); font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; }
.trail-club-columns a { display: block; margin-bottom: 9px; color: var(--navy); font-size: .82rem; font-weight: 800; text-decoration: none; }
.trail-club-columns a span { display: block; margin-top: 2px; color: var(--muted); font-size: .7rem; line-height: 1.4; font-weight: 550; }
.trail-facebook-note { margin: 18px 0 0; padding: 14px 16px; border-left: 4px solid var(--green); background: #f4f8f1; color: var(--muted); font-size: .8rem; line-height: 1.5; }
.trail-club-item { padding: 11px 0 12px; border-bottom: 1px solid rgba(11,35,68,.10); }
.trail-club-item:last-child { border-bottom: 0; }
.trail-club-name { display: block; color: var(--navy); font-size: .83rem; line-height: 1.35; }
.trail-club-copy { display: block; margin-top: 3px; color: var(--muted); font-size: .7rem; line-height: 1.42; font-weight: 550; }
.trail-club-links { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 8px; }
.trail-club-columns .trail-club-links a { display: inline-flex; align-items: center; margin: 0; padding: 6px 9px; border: 1px solid #c8d1d9; border-radius: 999px; background: #fff; color: var(--navy); font-size: .65rem; line-height: 1.2; font-weight: 850; }
.trail-club-columns .trail-club-links a:hover { border-color: var(--green); }
.trail-club-columns .trail-club-links a.trail-club-social { border-color: rgba(42,107,184,.35); background: #f5f8fc; }
.trail-landowner-panel { margin: 58px 0; padding: 34px; border: 1px solid var(--line); border-top: 5px solid var(--gold); border-radius: 22px; background: #fffaf0; }
.trail-landowner-intro { max-width: 850px; }
.trail-landowner-intro h2 { margin: 7px 0 12px; color: var(--navy); }
.trail-landowner-intro p { color: var(--muted); }
.trail-landowner-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin-top: 24px; }
.trail-landowner-grid article { padding: 20px; border: 1px solid rgba(183,146,46,.32); border-radius: 15px; background: #fff; }
.trail-landowner-grid h3 { margin: 0 0 8px; color: var(--navy); font-size: 1rem; line-height: 1.3; }
.trail-landowner-grid p { margin: 0; color: var(--muted); font-size: .8rem; line-height: 1.55; }
.trail-law-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.trail-law-links a { padding: 8px 11px; border: 1px solid #c8d1d9; border-radius: 999px; background: #fff; color: var(--navy); font-size: .68rem; font-weight: 800; text-decoration: none; }
.trail-law-links a:hover { border-color: var(--gold); }
.trail-owner-review { display: grid; grid-template-columns: minmax(0,1.5fr) auto; gap: 20px; align-items: center; margin-top: 24px; padding: 20px; border-radius: 16px; background: var(--navy); color: #fff; }
.trail-owner-review strong { display: block; color: #fff; font-size: 1rem; }
.trail-owner-review span { display: block; margin-top: 5px; color: #dbe6f0; font-size: .78rem; line-height: 1.5; }
.trail-legal-note { margin: 16px 0 0; color: var(--muted); font-size: .72rem; line-height: 1.5; }
.trail-check-grid { grid-template-columns: repeat(3,minmax(0,1fr)); margin-top: 22px; }
.trail-cta-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.trail-seller-panel {
  display: grid;
  grid-template-columns: minmax(0,1.2fr) minmax(280px,.8fr);
  gap: 30px;
  margin: 58px 0;
  padding: 36px;
  border-radius: 22px;
  background: var(--navy);
  color: #fff;
}
.trail-seller-panel .eyebrow { color: #f0d889 !important; }
.trail-seller-panel h2 { color: #fff; }
.trail-seller-panel p { color: #dbe6f0; }
.trail-seller-points { display: grid; gap: 10px; }
.trail-seller-points > div { padding: 15px; border: 1px solid rgba(255,255,255,.14); border-radius: 12px; background: rgba(255,255,255,.06); }
.trail-seller-points strong { display: block; color: #fff; }
.trail-seller-points span { display: block; margin-top: 4px; color: #dbe6f0; font-size: .78rem; line-height: 1.45; }
.trail-lead-section {
  display: grid;
  grid-template-columns: minmax(230px,.65fr) minmax(0,1.35fr);
  gap: 32px;
  margin: 58px 0 28px;
  padding: 34px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: var(--soft);
}
.trail-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.trail-form-grid label { display: flex; flex-direction: column; gap: 6px; color: var(--navy); font-size: .76rem; font-weight: 800; }
.trail-form-grid label > span { display: block; }
.trail-form-grid input,
.trail-form-grid select,
.trail-form-grid textarea { width: 100%; padding: 12px 13px; border: 1px solid #b9c5cf; border-radius: 10px; background: #fff; color: var(--navy); font: inherit; font-weight: 500; }
.trail-form-grid textarea { resize: vertical; }
.trail-form-notes { grid-column: 1 / -1; }
.form-privacy-note { color: var(--muted); font-size: .72rem; line-height: 1.45; }
.form-notice { display: flex; flex-direction: column; gap: 3px; margin-bottom: 14px; padding: 13px 15px; border-radius: 10px; }
.form-notice.success { background: #edf8e9; border: 1px solid #a9d993; color: #234d18; }
.form-notice.error { background: #fff0ef; border: 1px solid #e2aaa6; color: #772820; }
.trail-scope-note { padding: 16px 18px; border-left: 4px solid var(--gold); background: #fffaf0; color: var(--muted); font-size: .8rem; line-height: 1.55; }
.trail-final-links { display: flex; flex-wrap: wrap; gap: 20px; }
.town-trail-bridge { margin: 46px 0; padding: 26px; border: 1px solid var(--line); border-left: 5px solid var(--green); border-radius: 16px; background: var(--soft); }
.town-trail-bridge h2 { margin: 6px 0 10px; color: var(--navy); }
.town-trail-bridge p { color: var(--muted); }

@media (max-width: 1120px) {
  .alphabetical-directory { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .trail-access-levels { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 980px) {
  .nav-resources-menu { width: 100%; }
  .nav-resources-menu > summary { display: block; width: 100%; padding: 14px; border-bottom: 1px solid rgba(255,255,255,.1); text-align: center; font-size: .9rem; }
  .nav-resource-options { position: static; width: 100%; margin-top: 8px; box-shadow: none; }
  .home-trail-panel,
  .trail-live-panel,
  .trail-seller-panel,
  .trail-lead-section { grid-template-columns: 1fr; }
  .trail-check-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .trail-landowner-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .trail-owner-review { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .alphabetical-directory { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .alphabetical-directory .area-directory-card > span:last-child { padding: 13px; }
  .alphabetical-directory .area-directory-card strong { font-size: .9rem; }
  .alphabetical-directory .area-directory-card em { -webkit-line-clamp: 2; font-size: .68rem; }
  .trail-region-grid,
  .trail-resource-grid,
  .trail-check-grid,
  .trail-club-columns,
  .trail-form-grid,
  .trail-landowner-grid { grid-template-columns: 1fr; }
  .trail-form-notes { grid-column: auto; }
  .estate-topic-nav-links { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
  .estate-topic-nav-links a { flex: 0 0 auto; }
}
@media (max-width: 440px) {
  .alphabetical-directory { grid-template-columns: 1fr 1fr; }
  .alphabetical-directory .area-directory-card { border-radius: 13px; }
  .alphabetical-directory .area-image { flex-basis: 40%; }
  .alphabetical-directory .area-directory-card small { font-size: .52rem; }
  .alphabetical-directory .area-directory-card strong { font-size: .78rem; margin: 5px 0; }
  .alphabetical-directory .area-directory-card em { font-size: .62rem; line-height: 1.3; }
}


/* ---------- Theme 1.9.7 staging QA fixes ---------- */
/* Keep the anti-spam honeypot completely out of the visible form layout. */
.trail-lead-form .hp-field,
.trail-lead-form .nwp-hp {
  position: absolute !important;
  left: -9999px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  pointer-events: none !important;
}

/* Estate hub cards: use conventional card markup so WordPress content filters
   cannot collapse the eyebrow/title/description into one long underlined link. */
.estate-path-grid {
  align-items: start;
  grid-auto-rows: auto;
}
.estate-path-grid > .estate-guide-card {
  min-height: 0;
  height: auto;
  padding: 24px 26px;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.estate-guide-card > span {
  display: block !important;
  margin: 0 0 8px !important;
  color: var(--green-dark) !important;
  font-size: .72rem !important;
  font-weight: 850 !important;
  letter-spacing: .08em !important;
  line-height: 1.35 !important;
  text-transform: uppercase !important;
}
.estate-guide-card h3 {
  margin: 0 0 10px !important;
  font-size: 1.25rem !important;
  line-height: 1.35 !important;
}
.estate-guide-card h3 a {
  color: var(--navy) !important;
  text-decoration: none !important;
}
.estate-guide-card h3 a:hover { color: var(--green-dark) !important; }
.estate-guide-card > p {
  margin: 0 0 16px !important;
  color: var(--muted) !important;
  line-height: 1.6 !important;
}
.estate-guide-card > .text-link {
  margin-top: auto;
  align-self: flex-start;
  text-decoration: none !important;
}
@media (max-width: 880px) {
  .estate-path-grid { grid-template-columns: 1fr !important; gap: 14px !important; }
  .estate-path-grid > .estate-guide-card { padding: 20px 22px; }
}
