/* YRE Real Estate — base styles for plugin widgets & templates.
   Page layout, text and colours are set in Elementor; this file styles dynamic widgets only. */
:root {
	--yre-green: #112b29;
	--yre-green-dark: #0a2220;
	--yre-ivory: #f8f6f1;
	--yre-gold: #ae8246;
	--yre-ink: #18211f;
	--yre-text: #6b6f6c;
	--yre-line: #e1ded9;
	--yre-serif: "Cormorant Garamond", "Times New Roman", serif;
	--yre-sans: "Jost", "Helvetica Neue", Arial, sans-serif;
}

body.yre-site {
	margin: 0;
	background: #fff;
	color: var(--yre-text);
	font-family: var(--yre-sans);
	-webkit-font-smoothing: antialiased;
}
body.yre-site a { text-decoration: none; }
body.yre-site *, body.yre-site *::before, body.yre-site *::after { box-sizing: border-box; }
.yre-site .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* Eyebrow label with leading rule (Heading widget + CSS class "yre-eyebrow") */
.yre-eyebrow .elementor-heading-title { display: inline-flex; align-items: center; gap: 14px; }
.yre-eyebrow .elementor-heading-title::before { content: ""; width: 26px; height: 1px; background: currentColor; opacity: .8; flex: none; }
.yre-gold { color: var(--yre-gold); }

/* Text-link buttons (Button widget + class "yre-link") */
.yre-link .elementor-button { padding: 0 0 6px !important; background: transparent !important; border-radius: 0 !important; }

/* Header */
.yre-header-wrap { position: relative; z-index: 50; }
.yre-nav { position: relative; }
.yre-nav__list { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; flex-wrap: wrap; }
.yre-nav__list li { margin: 0; }
.yre-nav__list a { display: inline-block; position: relative; padding: 8px 0; font-family: var(--yre-sans); font-size: 13px; color: var(--yre-ink); transition: color .2s; }
.yre-nav__list .current-menu-item > a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 1px; background: var(--yre-gold); }
.yre-nav__toggle { display: none; width: 44px; height: 44px; border: 1px solid var(--yre-line); background: #fff; padding: 12px 11px; cursor: pointer; flex-direction: column; justify-content: space-between; border-radius: 0; }
.yre-nav__toggle span { display: block; height: 1.5px; background: var(--yre-green); transition: transform .25s, opacity .25s; }
.yre-nav.is-open .yre-nav__toggle span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.yre-nav.is-open .yre-nav__toggle span:nth-child(2) { opacity: 0; }
.yre-nav.is-open .yre-nav__toggle span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
@media (max-width: 1024px) {
	.yre-nav { display: flex; justify-content: flex-end; }
	.yre-nav__toggle { display: flex; }
	.yre-nav__list { display: none; position: fixed; left: 0; right: 0; top: var(--yre-header-h, 72px); background: #fff; flex-direction: column; align-items: stretch !important; gap: 0 !important; padding: 8px 24px 24px; border-top: 1px solid var(--yre-line); box-shadow: 0 18px 30px rgba(17, 43, 41, .08); }
	.yre-nav.is-open .yre-nav__list { display: flex; }
	.yre-nav__list a { display: block; padding: 14px 0; border-bottom: 1px solid var(--yre-line); font-size: 15px; }
	.yre-nav__list .current-menu-item > a::after { display: none; }
}

/* Hero search bar */
.yre-search { display: flex; align-items: center; background: #fff; padding: 14px 14px 14px 10px; box-shadow: 0 10px 30px rgba(17, 43, 41, .07); max-width: 630px; }
.yre-search__field { flex: 1 1 0; min-width: 0; border-right: 1px solid var(--yre-line); }
.yre-search__field:nth-of-type(3) { border-right: 0; }
.yre-search input, .yre-search select { width: 100%; height: 40px; border: 0; background: transparent; padding: 0 18px; font: 400 12.5px/1 var(--yre-sans); color: var(--yre-text); outline: none; border-radius: 0; }
.yre-search select { appearance: none; -webkit-appearance: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%2318211f' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 12px center; padding-right: 30px; }
.yre-search button { flex: none; height: 48px; padding: 0 22px; border: 0; border-radius: 0; background: var(--yre-green); color: #fff; font: 600 13px/1 var(--yre-sans); cursor: pointer; }
.yre-search button:hover { opacity: .9; }
@media (max-width: 767px) {
	.yre-search { flex-direction: column; align-items: stretch; padding: 10px; }
	.yre-search__field { border-right: 0; border-bottom: 1px solid var(--yre-line); }
	.yre-search__field:nth-of-type(3) { border-bottom: 0; }
	.yre-search input, .yre-search select { height: 48px; padding: 0 10px; }
	.yre-search button { margin-top: 8px; }
}

/* Listings layout */
.yre-listings--sidebar { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 39px; align-items: start; }
.yre-filters { background: var(--yre-ivory); border: 1px solid var(--yre-line); padding: 26px 28px 28px; position: sticky; top: 24px; }
.yre-filters__title { margin: 0 0 18px; font: 400 26px/1.2 var(--yre-serif); letter-spacing: -.5px; color: var(--yre-ink); }
.yre-filters label { display: block; margin-bottom: 22px; }
.yre-filters label span { display: block; margin-bottom: 12px; font: 700 10.5px/1 var(--yre-sans); letter-spacing: .4px; text-transform: uppercase; color: var(--yre-ink); }
.yre-filters input, .yre-filters select, .yre-sort select { width: 100%; height: 43px; border: 1px solid var(--yre-line); background: #fff; padding: 0 14px; font: 400 13px/1 var(--yre-sans); color: var(--yre-text); border-radius: 0; }
.yre-filters button { width: 100%; height: 52px; border: 0; border-radius: 0; background: var(--yre-green); color: #fff; font: 600 13px/1 var(--yre-sans); cursor: pointer; margin-top: 4px; }
.yre-filters__reset { display: block; margin-top: 14px; font: 400 12px/1 var(--yre-sans); color: var(--yre-gold); text-align: center; }
.yre-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin: 0 0 22px; font: 400 12px/1.4 var(--yre-sans); color: var(--yre-text); }
.yre-sort label { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.yre-sort select { width: auto; height: auto; border: 0; padding: 2px 4px; background: transparent; font-size: 12px; color: var(--yre-text); cursor: pointer; }
.yre-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 29px; }
.yre-empty { padding: 40px; background: var(--yre-ivory); text-align: center; color: var(--yre-text); font-family: var(--yre-sans); }
.yre-pagination { display: flex; gap: 8px; margin-top: 36px; }
.yre-pagination a, .yre-pagination .page-numbers { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border: 1px solid var(--yre-line); color: var(--yre-ink); font: 400 13px/1 var(--yre-sans); }
.yre-pagination a.is-current, .yre-pagination .current { background: var(--yre-green); border-color: var(--yre-green); color: #fff; }
@media (max-width: 1024px) {
	.yre-listings--sidebar { grid-template-columns: 1fr; }
	.yre-filters { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 18px; }
	.yre-filters__title, .yre-filters button, .yre-filters__reset { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
	.yre-filters { grid-template-columns: 1fr; }
	.yre-toolbar { flex-direction: column; align-items: flex-start; }
}

/* Property card */
.yre-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #e6e3dd; }
.yre-card__media { position: relative; display: block; height: 236px; overflow: hidden; background: var(--yre-ivory); }
.yre-card__media img, .yre-card__img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; transition: transform .6s ease; }
.yre-card:hover .yre-card__media img { transform: scale(1.03); }
.yre-card__badge { position: absolute; top: 16px; left: 16px; background: #fff; padding: 9px 11px; font: 700 10px/1 var(--yre-sans); letter-spacing: 1.4px; text-transform: uppercase; color: var(--yre-ink); }
.yre-card__body { padding: 24px 23px 26px; display: flex; flex-direction: column; flex: 1; }
.yre-card__loc { font: 400 12.5px/1.4 var(--yre-sans); color: var(--yre-text); margin-bottom: 9px; }
.yre-card__title { margin: 0 0 8px; font: 400 22px/1.25 var(--yre-serif); letter-spacing: -.4px; color: var(--yre-ink); }
.yre-card__title a { color: inherit; }
.yre-card__price { font: 400 26px/1.2 var(--yre-serif); letter-spacing: -.3px; color: var(--yre-ink); padding-bottom: 20px; border-bottom: 1px solid var(--yre-line); }
.yre-card__specs { list-style: none; margin: 18px 0 22px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; font: 400 11px/1.4 var(--yre-sans); color: #7a7d7a; }
.yre-card__specs li { display: inline-flex; align-items: center; gap: 6px; margin: 0; }
.yre-spec-ico { width: 12px; height: 12px; color: #8c8f8b; }
.yre-card__link { align-self: flex-start; margin-top: auto; padding-bottom: 6px; border-bottom: 1px solid currentColor; font: 600 12px/1.2 var(--yre-sans); color: var(--yre-gold); }
.yre-card__link:hover { opacity: .8; }

/* Single property gallery */
.yre-gallery { --yre-gap: 17px; }
.yre-gallery__main { position: relative; height: 545px; overflow: hidden; background: var(--yre-ivory); }
.yre-gallery__slide { position: absolute; inset: 0; opacity: 0; transition: opacity .45s ease; cursor: zoom-in; }
.yre-gallery__slide.is-active { opacity: 1; z-index: 1; }
.yre-gallery__slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.yre-gallery__nav { position: absolute; top: 50%; z-index: 2; width: 46px; height: 46px; margin-top: -23px; border: 0; border-radius: 0; background: rgba(255, 255, 255, .92); color: var(--yre-ink); font: 400 26px/1 var(--yre-serif); cursor: pointer; opacity: 0; transition: opacity .25s; }
.yre-gallery__main:hover .yre-gallery__nav, .yre-gallery__nav:focus-visible { opacity: 1; }
.yre-gallery__nav--prev { left: 18px; }
.yre-gallery__nav--next { right: 18px; }
.yre-gallery__count { position: absolute; right: 18px; bottom: 18px; z-index: 2; background: rgba(17, 43, 41, .85); color: #fff; padding: 7px 11px; font: 600 11px/1 var(--yre-sans); letter-spacing: 1px; }
.yre-gallery__thumbs { display: grid; grid-template-columns: repeat(var(--yre-thumbs, 4), minmax(0, 1fr)); gap: var(--yre-gap); margin-top: var(--yre-gap); }
.yre-gallery__thumb { height: 132px; padding: 0; border: 0; border-radius: 0; background: none; cursor: pointer; overflow: hidden; outline-offset: 2px; }
.yre-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: opacity .2s; }
.yre-gallery__thumb:hover img { opacity: .85; }
.yre-gallery__thumb.is-active { outline: 1px solid var(--yre-gold); }
@media (max-width: 767px) { .yre-gallery__nav { opacity: 1; width: 38px; height: 38px; margin-top: -19px; } }

.yre-lightbox { position: fixed; inset: 0; z-index: 99999; background: rgba(10, 34, 32, .94); display: flex; align-items: center; justify-content: center; padding: 60px 70px; }
.yre-lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; box-shadow: 0 20px 60px rgba(0, 0, 0, .35); }
.yre-lightbox button { position: absolute; border: 0; background: transparent; color: #fff; cursor: pointer; font: 300 40px/1 var(--yre-serif); padding: 10px 16px; }
.yre-lightbox__close { top: 14px; right: 18px; }
.yre-lightbox__prev { left: 12px; top: 50%; transform: translateY(-50%); }
.yre-lightbox__next { right: 12px; top: 50%; transform: translateY(-50%); }
@media (max-width: 767px) { .yre-lightbox { padding: 60px 16px; } }

/* Single property details */
.yre-field--breadcrumb { font: 400 11.5px/1.4 var(--yre-sans); color: var(--yre-text); }
.yre-field--breadcrumb a { color: inherit; }
.yre-field--breadcrumb a:hover { color: var(--yre-gold); }
.yre-sep { margin: 0 10px; opacity: .7; }
.yre-specs { list-style: none; margin: 0; padding: 30px 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--yre-line); border-bottom: 1px solid var(--yre-line); }
.yre-specs li { display: flex; flex-direction: column; align-items: center; gap: 10px; margin: 0; border-right: 1px solid var(--yre-line); padding: 4px 8px; }
.yre-specs li:last-child { border-right: 0; }
.yre-specs__value { font: 400 34px/1 var(--yre-serif); color: var(--yre-ink); }
.yre-specs__label { font: 400 11px/1 var(--yre-sans); color: #7a7d7a; }
.yre-prop-content { font: 400 15.5px/1.95 var(--yre-sans); color: var(--yre-text); }
.yre-prop-content p { margin: 0 0 1em; }
.yre-prop-content p:last-child { margin-bottom: 0; }
.yre-highlights { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 40px; }
.yre-highlights li { position: relative; padding-left: 23px; margin: 0; font: 400 13px/1.4 var(--yre-sans); color: #4e5350; }
.yre-highlights li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--yre-gold); }
@media (max-width: 767px) {
	.yre-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 24px; }
	.yre-specs li:nth-child(2) { border-right: 0; }
	.yre-specs__value { font-size: 28px; }
	.yre-highlights { grid-template-columns: 1fr; }
}

/* Forms */
.yre-form { background: #fff; border: 1px solid var(--yre-line); padding: 40px 40px 34px; scroll-margin-top: 30px; }
.yre-form__title { margin: 0 0 22px; font: 400 26px/1.2 var(--yre-serif); letter-spacing: -.4px; color: var(--yre-ink); }
.yre-form__intro { margin: -12px 0 20px; font: 400 12.5px/1.6 var(--yre-sans); color: var(--yre-text); }
.yre-form input, .yre-form select, .yre-form textarea { display: block; width: 100%; margin: 0 0 12px; border: 1px solid #d9d6d0; background: #fff; padding: 0 16px; height: 46px; font: 400 13px/1.4 var(--yre-sans); color: var(--yre-ink); border-radius: 0; box-shadow: none; }
.yre-form textarea { height: 120px; padding: 14px 16px; resize: vertical; }
.yre-form input::placeholder, .yre-form textarea::placeholder { color: #7a7d7a; }
.yre-form input:focus, .yre-form select:focus, .yre-form textarea:focus { outline: none; border-color: var(--yre-gold); }
.yre-form button { width: 100%; height: 48px; margin-top: 4px; border: 0; border-radius: 0; background: var(--yre-green); color: #fff; font: 600 13px/1 var(--yre-sans); cursor: pointer; }
.yre-form button:hover { opacity: .92; }
.yre-form__note { margin: 16px 0 0; font: 400 11px/1.5 var(--yre-sans); color: #8c8f8b; }
.yre-form__msg { margin: 0 0 16px; padding: 12px 14px; font: 400 13px/1.5 var(--yre-sans); }
.yre-form__msg--ok { background: #eef3ef; color: var(--yre-green); border-left: 2px solid var(--yre-green); }
.yre-form__msg--err { background: #fbf1ec; color: #8a3b1c; border-left: 2px solid #c0643a; }
.yre-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 767px) { .yre-form { padding: 28px 22px 24px; } }

/* Articles */
.yre-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 56px 29px; }
.yre-post { display: flex; flex-direction: column; }
.yre-post__media { display: block; height: 225px; overflow: hidden; margin-bottom: 26px; background: var(--yre-ivory); }
.yre-post__media img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; transition: transform .6s ease; }
.yre-post:hover .yre-post__media img { transform: scale(1.03); }
.yre-post__cat { font: 700 10px/1 var(--yre-sans); letter-spacing: 2px; text-transform: uppercase; color: var(--yre-gold); margin-bottom: 12px; }
.yre-post__title { margin: 0 0 12px; font: 400 23px/1.15 var(--yre-serif); letter-spacing: -.5px; color: var(--yre-ink); }
.yre-post__title a { color: inherit; }
.yre-post__excerpt { margin: 0 0 16px; font: 400 12px/1.6 var(--yre-sans); color: #7a7d7a; }
.yre-post__date { margin: 0 0 14px; font: 400 11px/1 var(--yre-sans); color: #8c8f8b; }

/* Article + archive templates */
.yre-wrap { width: 100%; max-width: 1220px; margin: 0 auto; padding: 0 20px; }
.yre-wrap--narrow { max-width: 820px; }
.yre-article__hero { background: var(--yre-ivory); padding: 110px 0 80px; }
.yre-eyebrow-link { display: inline-flex; align-items: center; gap: 14px; font: 700 11px/1 var(--yre-sans); letter-spacing: 3px; text-transform: uppercase; color: var(--yre-gold); }
.yre-eyebrow-link::before { content: ""; width: 26px; height: 1px; background: currentColor; }
.yre-article__title { margin: 24px 0 18px; font: 400 56px/1.1 var(--yre-serif); letter-spacing: -1.8px; color: var(--yre-ink); }
.yre-article__lead { font: 400 17px/1.8 var(--yre-sans); color: var(--yre-text); margin: 0 0 14px; }
.yre-article__meta { font: 400 12px/1 var(--yre-sans); color: #8c8f8b; margin: 0; }
.yre-article__media { margin-top: -40px; }
.yre-article__media img { width: 100%; height: 520px; object-fit: cover; display: block; }
.yre-article__content { padding-top: 60px; padding-bottom: 30px; font: 400 16.5px/1.95 var(--yre-sans); color: #4e5350; }
.yre-article__content h2, .yre-article__content h3 { font-family: var(--yre-serif); font-weight: 400; color: var(--yre-ink); letter-spacing: -.6px; line-height: 1.2; margin: 1.6em 0 .6em; }
.yre-article__content h2 { font-size: 32px; }
.yre-article__content a { color: var(--yre-gold); text-decoration: underline; }
.yre-article__back { padding-bottom: 110px; }
.yre-archive .yre-posts { padding-top: 90px; padding-bottom: 50px; }
.yre-archive .yre-pagination { padding-bottom: 100px; }
@media (max-width: 1024px) { .yre-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
	.yre-posts { grid-template-columns: 1fr; gap: 44px; }
	.yre-article__hero { padding: 70px 0 60px; }
	.yre-article__title { font-size: 38px; letter-spacing: -1px; }
	.yre-article__media img { height: 260px; }
}

/* Elementor text widgets inside the real estate pages */
.yre-site .elementor-widget-text-editor p { margin: 0 0 1em; }
.yre-site .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.yre-site .elementor-widget-text-editor a { color: inherit; }
.yre-site .elementor-widget-text-editor a:hover { color: var(--yre-gold); }
.yre-site .elementor-heading-title a { color: inherit; }
.yre-site .elementor-icon-list-item a { transition: color .2s; }
.yre-site .elementor-button { transition: background-color .25s, color .25s, border-color .25s; }
.yre-site .elementor-widget-image img { display: block; }

/* Editorial typography refinements (Cormorant Garamond + Jost) */
.yre-card__title { font-weight: 500; font-size: 26px; letter-spacing: 0; line-height: 1.15; }
.yre-card__price { font-weight: 500; font-size: 29px; letter-spacing: 0; }
.yre-card__loc { letter-spacing: .4px; }
.yre-filters__title, .yre-form__title { font-weight: 500; font-size: 29px; letter-spacing: 0; }
.yre-specs__value { font-weight: 500; font-size: 40px; }
.yre-post__title { font-weight: 500; font-size: 27px; letter-spacing: 0; line-height: 1.12; }
.yre-article__title { font-weight: 500; font-size: 62px; letter-spacing: -.4px; }
.yre-article__content h2, .yre-article__content h3 { font-weight: 500; letter-spacing: 0; }
.yre-card__badge, .yre-card__link, .yre-search button, .yre-filters button, .yre-form button, .yre-post__cat { font-weight: 500; font-size: 11px; letter-spacing: 1.8px; text-transform: uppercase; }
.yre-card__link { padding-bottom: 7px; }
.yre-filters label span { font-weight: 500; letter-spacing: 1.4px; }
.yre-highlights li, .yre-card__specs { letter-spacing: .2px; }
@media (max-width: 767px) { .yre-article__title { font-size: 40px; } }
