:root {
	--clickngo-ink: #202830;
	--clickngo-paper: #ffffff;
	--clickngo-link: #174c73;
	--clickngo-rule: #c6ced5;
}

* { box-sizing: border-box; }
body { margin: 0; color: var(--clickngo-ink); background: var(--clickngo-paper); font-family: system-ui, sans-serif; font-size: 1rem; line-height: 1.65; }
a { color: var(--clickngo-link); text-decoration-thickness: .1em; text-underline-offset: .15em; }
a:hover { text-decoration-thickness: .16em; }
:focus-visible { outline: 3px solid var(--clickngo-link); outline-offset: 4px; }
.site-header, .site-main, .site-footer { width: min(100% - 2rem, 68rem); margin-inline: auto; }
.site-header { display: flex; flex-wrap: wrap; gap: 1rem 2rem; align-items: center; padding-block: 1.5rem; border-bottom: 1px solid var(--clickngo-rule); }
.site-name { font-size: 1.25rem; font-weight: 700; }
.site-header ul { display: flex; flex-wrap: wrap; list-style: none; padding: 0; margin: 0; gap: .5rem 1rem; }
.site-header li { position: relative; }
.site-header .sub-menu { display: block; margin-block-start: .5rem; padding-inline-start: 1rem; border-inline-start: 1px solid var(--clickngo-rule); }
.site-header a { display: inline-block; padding-block: .35rem; }
.site-header [aria-current="page"] { font-weight: 700; }
.site-main { min-height: 55vh; padding-block: 2rem 3rem; }
.site-main > h1:not(.cng-catalogue__title), article:not(.property-card) { max-width: 48rem; margin-inline: auto; }
article:not(.property-card) + article:not(.property-card) { padding-block-start: 2rem; margin-block-start: 2rem; border-top: 1px solid var(--clickngo-rule); }
h1, h2, h3, h4 { line-height: 1.2; overflow-wrap: anywhere; }
h1 { font-size: clamp(1.8rem, 5vw, 2.5rem); }
.entry-content { overflow-wrap: anywhere; }
.entry-content > .alignwide { width: min(68rem, calc(100vw - 2rem)); max-width: none; margin-inline-start: calc((48rem - min(68rem, 100vw - 2rem)) / 2); }
img, video, iframe { max-width: 100%; }
img, video { height: auto; }
figure { margin-inline: 0; }
pre { overflow-x: auto; padding: 1rem; background: #f1f4f6; }
table { border-collapse: collapse; max-width: 100%; }
th, td { padding: .5rem; border: 1px solid var(--clickngo-rule); }
input, select, textarea, button { max-width: 100%; font: inherit; }
button, input[type="submit"] { cursor: pointer; }
.site-footer { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; padding-block: 1.25rem; border-top: 1px solid var(--clickngo-rule); }
.site-footer p { margin: 0; }
.skip-link { position: absolute; inset-inline-start: 1rem; top: 0; transform: translateY(-150%); padding: .75rem 1rem; color: var(--clickngo-paper); background: var(--clickngo-link); z-index: 100; }
.skip-link:focus { transform: none; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
[hidden] { display: none !important; }
@media (max-width: 50rem) { .entry-content > .alignwide { width: 100%; margin-inline-start: 0; } }

/* Native enquiry forms; keep labels and failure feedback readable at narrow widths. */
.cng-enquiry { margin-block-start: 2.5rem; padding-block-start: 2rem; border-top: 1px solid var(--clickngo-rule); overflow-wrap: anywhere; }
.cng-enquiry label { display: block; font-weight: 600; }
.cng-enquiry .wpcf7-form-control-wrap { display: block; margin-block-start: .35rem; }
.cng-enquiry input:not([type="hidden"]):not([type="submit"]):not([type="checkbox"]), .cng-enquiry textarea { width: 100%; padding: .6rem .75rem; border: 1px solid var(--clickngo-rule); border-radius: 0; color: var(--clickngo-ink); background: var(--clickngo-paper); }
.cng-enquiry textarea { min-height: 9rem; resize: vertical; }
.cng-enquiry input[type="submit"] { padding: .65rem 1.25rem; color: var(--clickngo-paper); background: var(--clickngo-link); border: 1px solid var(--clickngo-link); }
.cng-enquiry .wpcf7-response-output, .cng-enquiry__context-status, .cng-enquiry__unavailable { padding: .8rem 1rem; margin-inline: 0; border: 1px solid var(--clickngo-rule); }
.cng-enquiry .wpcf7-not-valid-tip, .cng-enquiry__context-status { color: #8b2424; }
.cng-enquiry [aria-hidden="true"]:has(input[name="cng-website"]) { display: none; }
.cng-enquiry__reload { display: inline-block; padding-block: .5rem; }

/* Navigation & Header */
.site-header .language-unavailable { display: inline-block; padding-block: .35rem; color: #8c96a0; cursor: default; }
.catalogue-nav-menu { display: flex; flex-wrap: wrap; list-style: none; padding: 0; margin: 0; gap: .5rem 1rem; }

/* Property Catalogue */
.cng-catalogue__title { max-width: 100%; margin-inline: 0; margin-block: 0 1.5rem; }
.cng-filter-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1rem; padding: 1.25rem; background: #f7f9fa; border: 1px solid var(--clickngo-rule); margin-block-end: 1.5rem; }
.cng-filter-form__field { display: flex; flex-direction: column; gap: 0.35rem; flex: 1 1 11rem; min-width: 0; }
.cng-filter-form__field label { font-weight: 600; font-size: 0.875rem; }
.cng-filter-form__field select { padding: 0.5rem 0.75rem; border: 1px solid var(--clickngo-rule); background: var(--clickngo-paper); color: var(--clickngo-ink); width: 100%; border-radius: 0; }
.cng-filter-form__actions { display: flex; align-items: center; gap: 0.75rem; flex: 0 0 auto; }
.cng-filter-form__submit { padding: 0.55rem 1.25rem; background: var(--clickngo-link); color: var(--clickngo-paper); border: 1px solid var(--clickngo-link); font-weight: 600; }
.cng-filter-form__submit:hover { opacity: 0.9; }
.cng-filter-form__reset { display: inline-block; padding: 0.55rem 0.75rem; color: var(--clickngo-ink); text-decoration: underline; font-size: 0.9rem; }
.cng-filter-form__reset:hover { color: var(--clickngo-link); }

.cng-catalogue__count { font-size: 0.95rem; color: #55606d; margin-block: 0 1.5rem; }
.cng-catalogue__message { padding: 1.25rem; border: 1px solid var(--clickngo-rule); background: #f7f9fa; margin-block: 1.5rem; }
.cng-catalogue__message--invalid { border-color: #d9534f; color: #a94442; background: #fdf7f7; }

/* Property Card Listing Rows */
.cng-catalogue__list { display: flex; flex-direction: column; }
article.property-card { max-width: 100%; margin-inline: 0; display: grid; grid-template-columns: minmax(12rem, 18rem) 1fr; gap: 1.5rem 2rem; align-items: start; padding-block: 2rem; margin-block: 0; border-top: 1px solid var(--clickngo-rule); }
article.property-card:last-child { border-bottom: 1px solid var(--clickngo-rule); }
.property-card__cover { width: 100%; }
.property-card__cover a { display: block; text-decoration: none; }
.property-card__cover img { display: block; width: 100%; height: auto; }
.property-card__cover p { margin: 0; padding: 2rem 1rem; background: #f7f9fa; border: 1px solid var(--clickngo-rule); text-align: center; font-size: 0.9rem; color: #55606d; }
.property-card__body { display: flex; flex-direction: column; gap: 0.5rem; }
.property-card__title { font-size: 1.35rem; margin: 0; }
.property-card__title a { color: var(--clickngo-ink); text-decoration: none; }
.property-card__title a:hover { color: var(--clickngo-link); text-decoration: underline; }
.property-card__price { font-size: 1.25rem; font-weight: 700; color: var(--clickngo-link); margin: 0; }
.property-card__terms { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; font-size: 0.95rem; margin: 0; }
.property-card__term-label { font-weight: 600; }
.property-card__facts { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; padding: 0; margin: 0; list-style: none; font-size: 0.95rem; }
.property-card__fact-label { color: #55606d; }
.property-card__fact-value { font-weight: 600; }
.property-card--unavailable { padding: 1.5rem; }

/* Pagination */
.navigation.pagination { margin-block-start: 2.5rem; }
.navigation.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; padding: 0; margin: 0; list-style: none; }
.navigation.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 2.25rem; height: 2.25rem; padding-inline: 0.5rem; border: 1px solid var(--clickngo-rule); text-decoration: none; color: var(--clickngo-ink); }
.navigation.pagination .page-numbers:hover { border-color: var(--clickngo-link); color: var(--clickngo-link); }
.navigation.pagination .page-numbers.current { font-weight: 700; background: var(--clickngo-link); color: var(--clickngo-paper); border-color: var(--clickngo-link); }
.navigation.pagination .page-numbers.dots { border: none; }

/* Single Property Detail */
.cng-property-detail__back { max-width: 48rem; margin-inline: auto; margin-block-end: 1.5rem; }
.cng-property-detail__header { margin-block-end: 2rem; }
.cng-property-detail__title { margin-block: 0 0.5rem; }
.cng-property-detail__price { font-size: 1.5rem; font-weight: 700; color: var(--clickngo-link); margin-block: 0.5rem 1rem; }
.cng-property-detail__terms { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; font-size: 1rem; }
.cng-property-detail__term-label { font-weight: 600; }
.cng-property-detail__section { margin-block-start: 2.5rem; padding-block-start: 2rem; border-top: 1px solid var(--clickngo-rule); }
.cng-property-facts-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: 1rem 1.5rem; padding: 0; margin: 0; }
.cng-property-facts-list__item { display: flex; flex-direction: column; gap: 0.25rem; padding: 0.75rem 1rem; background: #f7f9fa; border: 1px solid var(--clickngo-rule); }
.cng-property-facts-list__label { font-size: 0.85rem; color: #55606d; }
.cng-property-facts-list__value { margin: 0; font-size: 1.1rem; font-weight: 600; }
.cng-property-gallery-grid .cng-property-gallery { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
.cng-property-gallery-grid figure { margin: 0; }
.cng-property-gallery-grid img { width: 100%; height: auto; display: block; }
.cng-property-gallery-grid > p { grid-column: 1 / -1; }

@media (max-width: 48rem) {
	article.property-card { grid-template-columns: 1fr; gap: 1rem; }
	.cng-filter-form { flex-direction: column; align-items: stretch; }
	.cng-filter-form__field { flex: 1 1 100%; }
	.cng-filter-form__actions { width: 100%; justify-content: flex-start; }
	.cng-property-gallery-grid .cng-property-gallery { grid-template-columns: 1fr; gap: 1rem; }
}

/* Direct Contact Component */
.clickngo-contact { margin-block-start: 2.5rem; padding-block-start: 2rem; border-top: 1px solid var(--clickngo-rule); }
.clickngo-contact__list { display: grid; grid-template-columns: max-content 1fr; gap: 0.75rem 1.5rem; margin: 0; padding: 0; }
.clickngo-contact__term { font-weight: 600; color: #55606d; }
.clickngo-contact__desc { margin: 0; }
.clickngo-contact--unavailable, .clickngo-map--unavailable { padding: 1rem 1.25rem; border: 1px solid var(--clickngo-rule); background: #f7f9fa; margin-block: 1.5rem; }
.clickngo-contact__notice, .clickngo-map__notice { margin: 0; color: #55606d; }

/* Interactive Map Component */
.clickngo-map { margin-block-start: 2rem; padding: 1.5rem; border: 1px solid var(--clickngo-rule); background: #f7f9fa; }
.clickngo-map__placeholder { margin-block-end: 1.25rem; }
.clickngo-map__title { font-size: 1.25rem; font-weight: 700; margin: 0 0 0.5rem; }
.clickngo-map__address { margin: 0; color: var(--clickngo-ink); }
.clickngo-map__controls { display: flex; flex-direction: column; gap: 1rem; }
.clickngo-map__disclosure { padding: 1rem; border: 1px solid var(--clickngo-rule); background: var(--clickngo-paper); }
.clickngo-map__disclosure-text { margin: 0 0 1rem; font-size: 0.95rem; line-height: 1.5; }
.clickngo-map__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.clickngo-map__btn-info,
.clickngo-map__btn-cancel,
.clickngo-map__btn-remove { padding: 0.55rem 1.25rem; background: var(--clickngo-paper); color: var(--clickngo-ink); border: 1px solid var(--clickngo-rule); font-weight: 600; }
.clickngo-map__btn-info:hover,
.clickngo-map__btn-cancel:hover,
.clickngo-map__btn-remove:hover { border-color: var(--clickngo-link); color: var(--clickngo-link); }
.clickngo-map__btn-load { padding: 0.55rem 1.25rem; background: var(--clickngo-link); color: var(--clickngo-paper); border: 1px solid var(--clickngo-link); font-weight: 600; }
.clickngo-map__btn-load:hover { opacity: 0.9; }
.clickngo-map__frame-wrap { display: flex; flex-direction: column; gap: 0.75rem; width: 100%; }
.clickngo-map__frame-wrap iframe { width: 100%; aspect-ratio: 16 / 9; min-height: 24rem; border: 0; display: block; }
.clickngo-map__noscript { margin-block-start: 1rem; font-size: 0.9rem; color: #55606d; }

@media (max-width: 42rem) {
	.clickngo-contact__list { grid-template-columns: 1fr; gap: 0.25rem; }
	.clickngo-contact__desc { margin-block-end: 0.75rem; }
	.clickngo-map { padding: 1rem; }
	.clickngo-map__frame-wrap iframe { min-height: 18rem; }
}
