:root {
	--eh-blue: #0866e9;
	--eh-blue-dark: #0754c5;
	--eh-sky: #dbe9ff;
	--eh-sky-soft: #eef5ff;
	--eh-ink: #111827;
	--eh-muted: #64748b;
	--eh-paper: #f8fafc;
	--eh-white: #ffffff;
	--eh-line: #dbe4f0;
	--eh-success: #0f766e;
	--eh-error: #b42318;
	--eh-shadow: 0 24px 70px rgba(17, 24, 39, .10);
	--eh-shell: min(1320px, calc(100% - 48px));
	--eh-serif: Georgia, 'Times New Roman', serif;
	--eh-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--eh-ink); background: var(--eh-paper); font: 400 16px/1.6 var(--eh-sans); -webkit-font-smoothing: antialiased; }
body.nav-open { overflow: hidden; }
img { max-width: 100%; height: auto; }
a { color: inherit; }
.site-shell { width: var(--eh-shell); margin-inline: auto; }
.screen-reader-text, .skip-link:not(:focus), .form-trap, .contact-form__trap { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link:focus { position: fixed; z-index: 9999; top: 12px; left: 12px; padding: 10px 14px; color: #fff; background: var(--eh-blue); }

.site-header { position: sticky; z-index: 50; top: 0; color: var(--eh-ink); background: rgba(255,255,255,.94); border-bottom: 1px solid rgba(219,228,240,.7); backdrop-filter: blur(18px); }
.site-header__inner { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.brand { display: inline-flex; align-items: baseline; gap: 8px; color: var(--eh-ink); text-decoration: none; }
.brand__main { font-size: 26px; font-weight: 720; line-height: 1; letter-spacing: -.055em; }
.brand__main::after { content: ''; display: inline-block; width: 10px; height: 10px; margin: 0 1px 0 2px; border: 3px solid #a4c51d; border-radius: 50%; }
.brand__sub { color: var(--eh-muted); font-size: 14px; font-weight: 540; letter-spacing: -.02em; }
.brand .custom-logo-link { display: block; line-height: 0; }
.brand .custom-logo { width: auto; max-height: 48px; }
.site-nav { display: flex; align-items: center; gap: 28px; }
.site-nav__list, .site-nav .menu { display: flex; align-items: center; gap: 28px; margin: 0; padding: 0; list-style: none; }
.site-nav a { color: inherit; font-size: 14px; font-weight: 650; text-decoration: none; }
.site-nav__list a:hover, .site-nav .menu a:hover { color: var(--eh-blue); }
.nav-toggle { display: none; width: 46px; height: 46px; padding: 10px; border: 1px solid var(--eh-line); border-radius: 12px; background: #fff; }
.nav-toggle > span:not(.screen-reader-text) { display: block; height: 2px; margin: 5px 0; background: var(--eh-ink); }

.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 12px; padding: 0 22px; border: 1px solid transparent; border-radius: 999px; font: 700 14px/1 var(--eh-sans); text-decoration: none; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); }
.button--primary { color: #fff; background: var(--eh-blue); box-shadow: 0 12px 28px rgba(8,102,233,.22); }
.button--primary:hover { background: var(--eh-blue-dark); }
.button--outline { min-height: 43px; color: var(--eh-blue); border-color: var(--eh-blue); background: #fff; }
.button--light { color: var(--eh-blue); background: #fff; }
.button--ink { color: #fff; background: var(--eh-ink); }
.text-arrow { color: var(--eh-blue); font-size: 14px; font-weight: 750; text-decoration: none; }
.text-arrow:hover { text-decoration: underline; text-underline-offset: 5px; }
.eyebrow { margin: 0 0 18px; color: var(--eh-blue); font-size: 11px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow--blue, .eyebrow--dark { color: var(--eh-blue); }

.home-hero { padding: 20px 0 0; background: var(--eh-paper); }
.home-hero__grid { min-height: 610px; display: grid; grid-template-columns: .92fr 1.08fr; overflow: hidden; border-radius: 28px; background: var(--eh-sky); }
.home-hero__content { display: flex; flex-direction: column; justify-content: center; padding: clamp(44px, 6vw, 82px); }
.home-hero h1 { max-width: 650px; margin: 0; font: 400 clamp(46px, 5vw, 74px)/1.03 var(--eh-serif); letter-spacing: -.045em; text-wrap: balance; }
.home-hero__lead { max-width: 570px; margin: 26px 0 0; color: #52647e; font-size: 17px; }
.home-hero__actions { display: flex; align-items: center; gap: 26px; margin-top: 34px; }
.brand-line { margin: 34px 0 0; color: var(--eh-blue); font: 400 24px/1.2 var(--eh-serif); }
.home-hero__visual { min-height: 500px; margin: 26px; border-radius: 24px; background-image: linear-gradient(90deg, rgba(219,233,255,.08), transparent 30%), var(--hero-image); background-position: 63% center; background-size: cover; box-shadow: inset 0 0 0 1px rgba(255,255,255,.32); }

.section { padding: 105px 0; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 64px; margin-bottom: 48px; }
.section-heading--stacked { display: block; max-width: 850px; }
.section-heading h2, .professional-panel h2, .catalogue-placeholder h3 { margin: 0; font: 400 clamp(38px, 4.2vw, 62px)/1.06 var(--eh-serif); letter-spacing: -.035em; }
.section-heading p { max-width: 730px; margin: 14px 0 0; color: var(--eh-muted); font-size: 17px; }
.section-heading__actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.section-heading__actions .text-arrow { margin-left: 8px; }
.carousel-arrow { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--eh-line); border-radius: 50%; color: var(--eh-ink); background: #fff; font: 700 18px/1 var(--eh-sans); cursor: pointer; transition: color .18s ease, border-color .18s ease, transform .18s ease; }
.carousel-arrow:hover { color: var(--eh-blue); border-color: var(--eh-blue); transform: translateY(-1px); }

.search-section { background: #fff; }
.search-plan { overflow: hidden; color: #fff; border-radius: 26px; background: var(--eh-ink); box-shadow: var(--eh-shadow); }
.search-plan__intro { padding: 42px 44px 30px; border-bottom: 1px solid rgba(255,255,255,.12); }
.search-plan__intro .eyebrow { color: #93bfff; }
.search-plan__intro h3 { max-width: 850px; margin: 0; font: 400 clamp(27px, 3vw, 42px)/1.16 var(--eh-serif); }
.search-plan fieldset { margin: 0; padding: 34px 44px; border: 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.search-plan legend { width: 100%; margin-bottom: 22px; color: #fff; font-weight: 760; }
.search-plan legend span { display: inline-flex; width: 34px; height: 34px; align-items: center; justify-content: center; margin-right: 10px; color: #9ac3ff; border: 1px solid rgba(154,195,255,.4); border-radius: 50%; font-size: 11px; }
.search-plan label, .contact-form label { display: grid; gap: 7px; color: #a8b4c8; font-size: 11px; font-weight: 760; letter-spacing: .075em; text-transform: uppercase; }
.search-plan__step > label + label { margin-top: 18px; }
.search-plan input, .search-plan select, .search-plan textarea, .contact-form input, .contact-form textarea { width: 100%; min-height: 47px; padding: 11px 13px; color: #fff; border: 1px solid #39455a; border-radius: 10px; background: #222c3d; font: 500 15px/1.4 var(--eh-sans); outline: none; }
.search-plan textarea { resize: vertical; }
.search-plan input::placeholder, .search-plan textarea::placeholder { color: #8390a6; }
.search-plan input:focus, .search-plan select:focus, .search-plan textarea:focus { border-color: #70a8ff; box-shadow: 0 0 0 3px rgba(8,102,233,.18); }
.form-grid { display: grid; gap: 16px; }
.form-grid--3 { grid-template-columns: repeat(3, 1fr); }
.form-grid + .form-grid { margin-top: 16px; }
.search-plan__contact { background: #182131; }
.check-label { grid-template-columns: 20px 1fr !important; align-items: start; margin-top: 22px; letter-spacing: 0 !important; line-height: 1.5; text-transform: none !important; }
.check-label input { width: 17px; min-height: 17px; margin: 2px 0 0; padding: 0; accent-color: var(--eh-blue); }
.check-label a { color: #fff; }
.search-plan__submit { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 28px; }
.search-plan__submit p { max-width: 600px; margin: 0; color: #8e9bb0; font-size: 13px; }
.form-notice { margin: 0 0 20px; padding: 15px 18px; border-radius: 12px; font-weight: 650; }
.form-notice--success { color: #075e54; background: #d9f7f1; }
.form-notice--error { color: #8b1d16; background: #fee9e7; }

.catalogue-section { background: var(--eh-paper); }
.catalogue-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.catalogue-carousel, .territory-carousel { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(330px, calc((100% - 44px) / 3)); gap: 22px; overflow-x: auto; padding: 3px 2px 24px; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: #c5d4e8 transparent; }
.catalogue-carousel > *, .territory-carousel > * { scroll-snap-align: start; }
.catalogue-carousel > .catalogue-placeholder { width: min(1320px, calc(100vw - 48px)); }
.property-card { overflow: hidden; border: 1px solid var(--eh-line); border-radius: 20px; background: #fff; transition: transform .22s ease, box-shadow .22s ease; }
.property-card:hover { transform: translateY(-5px); box-shadow: var(--eh-shadow); }
.property-card__image { height: 270px; display: block; overflow: hidden; background: var(--eh-sky); }
.property-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; }
.property-card:hover .property-card__image img { transform: scale(1.035); }
.property-card__body { padding: 26px; }
.property-card__body .eyebrow { margin-bottom: 10px; }
.property-card h2, .property-card h3 { margin: 0 0 12px; font: 400 29px/1.14 var(--eh-serif); }
.property-card h2 a, .property-card h3 a { text-decoration: none; }
.property-card__body > p:not(.eyebrow) { margin: 0 0 20px; color: var(--eh-muted); }
.property-card__facts { display: flex; justify-content: space-between; gap: 14px; margin: 18px 0 22px; padding-top: 16px; color: var(--eh-muted); border-top: 1px solid var(--eh-line); }
.property-card__facts strong { color: var(--eh-ink); }
.catalogue-placeholder { grid-column: 1 / -1; min-height: 390px; display: grid; align-items: end; padding: 42px; overflow: hidden; border-radius: 22px; background: linear-gradient(90deg, rgba(219,233,255,.98), rgba(219,233,255,.75)), url('../images/hero-ecoality-blue.webp') center/cover; }
.catalogue-placeholder > div { max-width: 700px; }
.catalogue-placeholder h3 { font-size: clamp(35px, 4vw, 54px); }
.catalogue-placeholder p { color: #52647e; }
.catalogue-empty { grid-column: 1 / -1; padding: 48px; border: 1px solid var(--eh-line); border-radius: 20px; background: #fff; }
.catalogue-empty h2 { margin: 0 0 14px; font: 400 38px/1.1 var(--eh-serif); }

.professional-section { padding-top: 55px; background: var(--eh-paper); }
.professional-panel { display: grid; grid-template-columns: 1.3fr .7fr; gap: 70px; padding: 56px; border-radius: 24px; background: var(--eh-sky-soft); }
.professional-panel__copy > p:not(.eyebrow) { max-width: 670px; color: var(--eh-muted); font-size: 17px; }
.professional-panel__actions { display: flex; align-items: center; gap: 26px; margin-top: 28px; }
.territories { align-self: center; padding-left: 45px; border-left: 1px solid #c8d9f2; }
.territories p:last-child { margin: 0; font-size: 17px; font-weight: 680; line-height: 1.8; }
.territory-carousel { grid-auto-columns: minmax(260px, calc((100% - 66px) / 4)); }
.territory-card { min-height: 190px; display: flex; flex-direction: column; justify-content: flex-end; padding: 28px; border: 1px solid var(--eh-line); border-radius: 20px; background: linear-gradient(145deg, #fff, var(--eh-sky-soft)); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.territory-card:hover { transform: translateY(-3px); border-color: #b9d0f4; box-shadow: 0 18px 45px rgba(17,24,39,.08); }
.territory-card span { margin-bottom: 6px; color: var(--eh-blue); font-size: 10px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.territory-card strong { font: 400 34px/1.1 var(--eh-serif); }
.territory-card small { margin-top: 20px; color: var(--eh-muted); font-weight: 700; }
.territories-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.territory-card--page { min-height: 300px; }
.territory-card--page p { color: var(--eh-muted); }
.territory-card--page .text-arrow { margin-top: auto; }

.insights-section { background: #fff; }
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.blog-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--eh-line); border-radius: 18px; background: #fff; }
.blog-card__image { height: 230px; overflow: hidden; }
.blog-card__image img { width: 100%; height: 100%; object-fit: cover; }
.blog-card__body { flex: 1; display: flex; flex-direction: column; padding: 26px; }
.blog-card h2, .blog-card h3 { margin: 0 0 12px; font: 400 27px/1.18 var(--eh-serif); }
.blog-card h2 a, .blog-card h3 a { text-decoration: none; }
.blog-card p:not(.eyebrow) { color: var(--eh-muted); }
.blog-card .text-arrow { margin-top: auto; }
.closing-section { padding: 68px 0; color: #fff; background: var(--eh-ink); }
.closing-section__inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.closing-section p { margin: 0; font: 400 clamp(38px, 4vw, 58px)/1 var(--eh-serif); }
.closing-section__inner > div { display: flex; gap: 26px; }
.closing-section a { color: #bfdbfe; font-weight: 700; text-decoration: none; }

.page-hero, .catalogue-hero, .property-detail__hero { padding: 105px 0 70px; color: var(--eh-ink); background: var(--eh-sky); }
.page-hero h1, .catalogue-hero h1, .property-detail__hero h1 { max-width: 920px; margin: 0; font: 400 clamp(46px, 6vw, 78px)/1.03 var(--eh-serif); letter-spacing: -.04em; }
.catalogue-hero > div > p:last-child { max-width: 680px; color: #52647e; font-size: 18px; }
.content-area { min-height: 65vh; padding-bottom: 100px; background: #fff; }
.content-area--plain { padding-top: 100px; }
.content-shell { max-width: 900px; }
.page-body { padding-top: 62px; }
.page-featured-image { width: 100%; max-height: 560px; margin-bottom: 42px; border-radius: 18px; object-fit: cover; }
.entry-content h1, .entry-card h1 { margin: 0 0 26px; font: 400 clamp(40px, 5vw, 66px)/1.08 var(--eh-serif); }
.entry-content h2, .entry-content h3 { margin-top: 1.7em; font-family: var(--eh-serif); font-weight: 400; line-height: 1.18; }
.entry-content h2 { font-size: clamp(30px, 4vw, 44px); }
.entry-content h3 { font-size: 25px; }
.entry-content .lead, .entry-content > p:first-child { color: #41536d; font-size: 20px; }
.entry-content li { margin-bottom: 10px; }
.entry-content .button { margin: 18px 12px 8px 0; color: #fff; }
.entry-card { margin-bottom: 48px; padding-bottom: 42px; border-bottom: 1px solid var(--eh-line); }
.entry-card a { text-decoration: none; }

.property-detail__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 50px; }
.property-detail__price { min-width: 235px; padding: 20px; border: 1px solid #b8cdea; border-radius: 14px; background: rgba(255,255,255,.45); }
.property-detail__price span { display: block; color: var(--eh-muted); font-size: 12px; }
.property-detail__price strong { font: 400 28px/1.2 var(--eh-serif); }
.property-detail__media { margin-top: 38px; }
.property-detail__media img { width: 100%; max-height: 720px; border-radius: 22px; object-fit: cover; }
.property-gallery { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin-top: 18px; }
.property-gallery figure { height: 350px; margin: 0; overflow: hidden; border-radius: 18px; background: var(--eh-sky); }
.property-gallery img { width: 100%; height: 100%; object-fit: cover; }
.property-detail__grid { display: grid; grid-template-columns: 1.3fr .65fr; gap: 80px; }
.property-summary { align-self: start; padding: 28px; border: 1px solid var(--eh-line); border-radius: 18px; background: #fff; box-shadow: 0 14px 40px rgba(17,24,39,.06); }
.property-summary h2 { margin: 0 0 20px; font: 400 27px/1.2 var(--eh-serif); }
.property-summary p { display: flex; justify-content: space-between; gap: 20px; padding-bottom: 13px; border-bottom: 1px solid var(--eh-line); }
.property-summary p span { color: var(--eh-muted); }
.property-summary .button { width: 100%; margin-top: 18px; color: #fff; }
.property-summary small { display: block; margin-top: 13px; color: var(--eh-muted); }
.nav-links { display: flex; justify-content: center; gap: 8px; margin-top: 38px; }
.page-numbers { min-width: 40px; padding: 8px 12px; border: 1px solid var(--eh-line); border-radius: 999px; text-align: center; text-decoration: none; }
.page-numbers.current { color: #fff; border-color: var(--eh-blue); background: var(--eh-blue); }

.contact-section { padding: 95px 0; color: #fff; background: var(--eh-ink); }
.contact-section__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 80px; }
.contact-section h2 { margin: 0; font: 400 clamp(38px, 4vw, 58px)/1.08 var(--eh-serif); }
.contact-section p { color: #a8b4c8; }
.contact-form { display: grid; gap: 18px; padding: 32px; color: var(--eh-ink); border-radius: 18px; background: #fff; }
.contact-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.contact-form label { color: #52647e; }
.contact-form input, .contact-form textarea { color: var(--eh-ink); border-color: var(--eh-line); background: #f8fafc; }
.contact-form__privacy { display: flex !important; gap: 9px; letter-spacing: 0 !important; text-transform: none !important; }
.contact-form__privacy input { width: 17px; min-height: 17px; margin-top: 3px; padding: 0; }

.site-footer { padding: 65px 0 24px; color: #8997ad; background: #0c111b; }
.site-footer__grid { display: grid; grid-template-columns: 1.25fr .75fr .85fr .8fr; gap: 38px; }
.footer-signature { margin: 0 0 12px !important; color: #fff; font: 400 34px/1.15 var(--eh-serif); }
.site-footer h2 { margin: 0 0 15px; color: #fff; font-size: 14px; }
.site-footer p { margin: 0; font-size: 14px; }
.site-footer .footer-social { margin-top: 15px; }
.site-footer a { color: inherit; text-decoration-color: rgba(255,255,255,.22); }
.footer-links, .footer-nav { margin: 0; padding: 0; list-style: none; }
.footer-links li { margin-bottom: 7px; }
.site-footer__bottom { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 55px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.10); font-size: 12px; }
.footer-nav { display: flex; gap: 20px; }

@media (max-width: 1100px) {
	.site-nav { gap: 18px; }
	.site-nav__list, .site-nav .menu { gap: 18px; }
	.home-hero__grid { grid-template-columns: 1fr 1fr; }
	.home-hero__content { padding: 48px; }
	.home-hero h1 { font-size: 54px; }
	.site-footer__grid { grid-template-columns: 1.2fr repeat(2, 1fr); }
	.site-footer__grid > div:nth-child(n+4) { margin-top: 12px; }
}

@media (max-width: 820px) {
	:root { --eh-shell: min(100% - 30px, 720px); }
	.site-header__inner { min-height: 70px; }
	.nav-toggle { display: block; }
	.site-nav { position: fixed; inset: 70px 0 0; display: none; align-items: stretch; flex-direction: column; padding: 28px 22px; color: #fff; background: var(--eh-ink); }
	.site-nav.is-open { display: flex; }
	.site-nav__list, .site-nav .menu { align-items: stretch; flex-direction: column; gap: 0; }
	.site-nav__list a, .site-nav .menu a { display: block; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,.12); font-size: 18px; }
	.home-hero__grid { grid-template-columns: 1fr; }
	.home-hero__content { padding: 50px 38px 32px; }
	.home-hero__visual { min-height: 420px; margin-top: 0; }
	.section { padding: 78px 0; }
	.section-heading { align-items: flex-start; flex-direction: column; gap: 22px; }
	.form-grid--3 { grid-template-columns: 1fr; }
	.search-plan fieldset, .search-plan__intro { padding-inline: 30px; }
	.search-plan__submit { align-items: flex-start; flex-direction: column; }
	.catalogue-grid, .blog-grid, .territories-grid { grid-template-columns: 1fr 1fr; }
	.catalogue-carousel { grid-auto-columns: minmax(300px, calc((100% - 22px) / 2)); }
	.territory-carousel { grid-auto-columns: minmax(250px, calc((100% - 22px) / 2)); }
	.professional-panel, .contact-section__grid, .property-detail__grid { grid-template-columns: 1fr; gap: 40px; }
	.territories { padding: 30px 0 0; border-top: 1px solid #c8d9f2; border-left: 0; }
	.site-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
	.home-hero { padding-top: 10px; }
	.home-hero__grid { border-radius: 20px; }
	.home-hero__content { padding: 38px 25px 24px; }
	.home-hero h1 { font-size: 43px; }
	.home-hero__lead { font-size: 15px; }
	.home-hero__actions, .professional-panel__actions, .closing-section__inner, .closing-section__inner > div { align-items: flex-start; flex-direction: column; }
	.home-hero__visual { min-height: 310px; margin: 14px; border-radius: 16px; }
	.section { padding: 64px 0; }
	.section-heading h2, .professional-panel h2 { font-size: 39px; }
	.search-plan fieldset, .search-plan__intro { padding: 28px 20px; }
	.catalogue-grid, .blog-grid, .territories-grid { grid-template-columns: 1fr; }
	.catalogue-carousel, .territory-carousel { grid-auto-columns: minmax(84vw, 1fr); }
	.section-heading__actions { width: 100%; flex-wrap: wrap; }
	.property-card__image { height: 235px; }
	.professional-panel { padding: 34px 24px; }
	.property-detail__head { align-items: flex-start; flex-direction: column; }
	.property-gallery { grid-template-columns: 1fr; }
	.property-gallery figure { height: 250px; }
	.contact-form__row { grid-template-columns: 1fr; }
	.site-footer__grid { grid-template-columns: 1fr; }
	.site-footer__bottom { align-items: flex-start; flex-direction: column; }
}
