/**
 * Realest — theme additions.
 *
 * Small, targeted rules that layer on top of the reference template CSS.
 * Loaded last so these always win without editing the vendor stylesheet.
 */

/* ---------------------------------------------------------------
   Inner-page hero banner
   --------------------------------------------------------------- */
.page-title .title-outer .text {
	max-width: 620px;
	margin: 0 auto 22px;
}

.page-title .title-outer .page-breadcrumb {
	margin-top: 4px;
}

/* ---------------------------------------------------------------
   Services details (archive + single)
   --------------------------------------------------------------- */
.services-details {
	padding: 110px 0;
}

.services-details__content .services-intro-image img {
	display: block;
	width: 100%;
	border-radius: 10px;
}

.services-details__content .services-grid {
	margin-top: 45px;
}

.services-details__content .content.sub-heading {
	margin-top: 45px;
}

.services-details__content .content.sub-heading .text .h3 {
	margin-bottom: 14px;
}

.services-details__content .blockquote-one {
	margin: 28px 0;
	padding: 26px 30px;
	border-left: 4px solid var(--theme-color1);
	background-color: #f6f4ec;
	border-radius: 10px;
}

.services-faq {
	margin-top: 55px;
}

.services-faq .acc-btn {
	font-size: 18px;
}

/* Service sidebar: keep long service names clear of the arrow tile. */
.sidebar-service-list li a {
	padding-right: 85px;
}

.service-sidebar {
	max-width: 100%;
}

/* ---------------------------------------------------------------
   Contact page
   --------------------------------------------------------------- */
.contact-page-section {
	padding: 110px 0;
}

.contact-info-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	margin-bottom: 60px;
}

.contact-info-card {
	background-color: #f6f4ec;
	border-radius: 15px;
	padding: 34px 30px;
	height: 100%;
}

.contact-info-card .icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 62px;
	height: 62px;
	border-radius: 50%;
	background-color: #ffffff;
	color: var(--theme-color2);
	font-size: 22px;
	margin-bottom: 18px;
}

.contact-info-card .title {
	font-size: 20px;
	margin-bottom: 8px;
	color: var(--headings-color);
}

.contact-info-card p,
.contact-info-card a {
	font-size: 16px;
	line-height: 26px;
	color: #687469;
	margin-bottom: 0;
}

.contact-info-card a:hover {
	color: var(--theme-color2);
}

.contact-form-wrap {
	background-color: #f6f4ec;
	border-radius: 15px;
	padding: 45px 45px 40px;
}

.contact-form-wrap .form-clt {
	margin-bottom: 22px;
}

.contact-form-wrap .form-clt input,
.contact-form-wrap .form-clt textarea {
	width: 100%;
	background-color: #ffffff;
	border: 1px solid #ffffff;
	border-radius: 10px;
	padding: 16px 22px;
	font-size: 16px;
	color: var(--headings-color);
	transition: border-color 0.3s ease;
}

.contact-form-wrap .form-clt textarea {
	min-height: 150px;
	resize: vertical;
}

.contact-form-wrap .form-clt input:focus,
.contact-form-wrap .form-clt textarea:focus {
	border-color: var(--theme-color1);
	outline: none;
}

.contact-form-wrap .form-result {
	margin-top: 16px;
	font-size: 15px;
}

.contact-form-wrap .form-result .success {
	color: #1a7f37;
}

.contact-form-wrap .form-result .error {
	color: #c0392b;
}

.contact-page-body {
	margin-top: 55px;
}

.search-about-intro .image-box img {
	display: block;
	width: 100%;
	border-radius: 12px;
}

.archive-intro .title {
	max-width: 680px;
}

.project-archive-note {
	border-top: 1px solid #e2e5df;
	padding-top: 30px;
}

.project-archive-note strong {
	display: block;
	font-size: 19px;
	margin-bottom: 8px;
}

.project-archive-note p,
.results-heading span {
	color: #687469;
}

.results-heading {
	border-bottom: 1px solid #e2e5df;
	padding-bottom: 16px;
}

.results-heading span {
	font-size: 14px;
}

.property-summary {
	color: #687469;
	font-size: 14px;
	line-height: 22px;
	margin: 12px 0 0;
}

.contact-map-wrap {
	margin: 0 0 55px;
	border-radius: 12px;
	overflow: hidden;
}

.contact-map-wrap iframe {
	display: block;
	width: 100%;
	height: 320px;
	border: 0;
}

/* ---------------------------------------------------------------
   About page
   --------------------------------------------------------------- */
.about-page-section {
	padding: 0;
	background: #fff;
}

.about-page-section .auto-container {
	max-width: 1180px;
}

.about-story { padding: 120px max(24px, calc((100% - 1110px) / 2)); background: #2b8076; color: #fff; }
.about-page-section [data-reveal] { opacity: 0; transition: opacity 900ms ease, transform 900ms cubic-bezier(.2,.7,.2,1); }
.about-page-section [data-reveal="up"] { transform: translateY(42px); }
.about-page-section [data-reveal="left"] { transform: translateX(-42px); }
.about-page-section [data-reveal="right"] { transform: translateX(42px); }
.about-page-section [data-reveal].revealed { opacity: 1; transform: translate(0); }
.about-eyebrow { margin-bottom: 28px; color: #7c8b84; font-size: 14px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.about-story .about-eyebrow, .about-values .about-eyebrow { color: rgba(255,255,255,.75); }
.about-story h2 { max-width: 920px; margin: 0 0 34px; color: #fff; font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 300; line-height: 1.15; }
.about-story p { max-width: 900px; margin: 0 0 22px; color: rgba(255,255,255,.9); font-size: 17px; line-height: 1.75; }
.about-stats { display: flex; gap: 12%; margin-top: 68px; }
.about-stats span { display: flex; flex-direction: column; gap: 10px; color: rgba(255,255,255,.75); font-size: 14px; text-transform: uppercase; letter-spacing: .08em; }
.about-stats strong { color: #fff; font-size: clamp(2.2rem, 5vw, 4rem); font-weight: 300; line-height: 1; }
.about-split, .about-message-grid { display: grid; grid-template-columns: 1fr 1fr; min-height: 560px; }
.about-split-image { background-position: center; background-size: cover; }
.about-split-copy { align-self: center; max-width: 475px; padding: 70px 10%; }
.about-split-copy p, .about-infrastructure p, .about-message-block p { color: #3c403e; font-size: 17px; line-height: 1.75; }
.about-infrastructure { display: grid; grid-template-columns: 1fr 1fr; gap: 10%; padding: 130px max(24px, calc((100% - 1110px) / 2)); }
.about-infrastructure p { margin: 0; }
.about-values { position: relative; isolation: isolate; display: block; min-height: 515px; padding: 90px max(24px, calc((100% - 1110px) / 2)); color: #fff; background: #2b8076; overflow: hidden; }
.about-values::before { position: absolute; z-index: -2; inset: -7%; content: ''; background: linear-gradient(rgba(43,128,118,.9), rgba(43,128,118,.9)), url('../images/resource/project1-1.jpg') center/cover; transition: transform 1.4s cubic-bezier(.2,.7,.2,1); }
.about-values.revealed::before { transform: scale(1.06); }
.about-values::after { position: absolute; z-index: -1; inset: 0; content: ''; background: linear-gradient(90deg, rgba(15,63,58,.2), transparent 65%); pointer-events: none; }
.about-values-list { position: absolute; inset: 90px max(24px, calc((100% - 1110px) / 2)); pointer-events: none; }
.about-values-list button { position: absolute; bottom: 0; display: flex; align-items: center; gap: 10px; height: 350px; padding: 0 20px; border: 0; border-left: 1px solid rgba(255,255,255,.55); background: transparent; color: #fff; cursor: pointer; font-size: 17px; font-weight: 700; letter-spacing: .04em; writing-mode: vertical-rl; transform: rotate(180deg); transition: opacity 450ms ease, color 300ms ease, background-color 300ms ease; pointer-events: auto; }
.about-values-list button span { font-size: 13px; writing-mode: horizontal-tb; }
.about-values-list button::after { position: absolute; top: 0; bottom: 0; left: -1px; width: 1px; content: ''; background: #fff; transform: scaleY(0); transform-origin: bottom; transition: transform 500ms cubic-bezier(.2,.7,.2,1); }
.about-values-list button:hover { background: rgba(255,255,255,.1); }
.about-values-list button.is-active { opacity: 0; pointer-events: none; }
.about-values-list button.is-active::after { transform: scaleY(1); }
.about-values-list button:nth-child(1) { left: 0; }
.about-values-list button:nth-child(2) { left: 6%; }
.about-values-list button:nth-child(3) { left: 12%; }
.about-values-list button:nth-child(4) { right: 0; }
.about-values-copy { position: relative; z-index: 1; max-width: 850px; margin: 0 auto; padding: 5px 0 0; }
.about-values-number { display: inline-block; margin-right: 24px; color: #fff; font-size: 18px; font-weight: 700; vertical-align: middle; }
.about-values-copy h3 { display: inline-block; margin: 0 0 50px; color: #fff; font-size: clamp(1.7rem, 3vw, 2.7rem); text-transform: uppercase; vertical-align: middle; }
.about-values-copy p { max-width: 800px; margin: 0; color: rgba(255,255,255,.95); font-size: 18px; line-height: 1.55; white-space: pre-line; }
.about-values-copy.is-changing h3, .about-values-copy.is-changing p { animation: about-values-copy-in 550ms cubic-bezier(.2,.7,.2,1) both; }
@keyframes about-values-copy-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
.about-mission-vision { display: grid; grid-template-columns: repeat(2, 1fr); gap: 60px; padding: 90px 0; background: #2b8076; }
.about-mission-block, .about-vision-block { padding: 0 10px; color: #fff; }
.about-mission-vision h3 { margin: 0 0 28px; color: #fff; font-size: clamp(1.7rem, 3vw, 2.7rem); text-transform: uppercase; }
.about-mission-vision p { margin: 0; color: rgba(255,255,255,.95); font-size: 18px; line-height: 1.55; }
.about-message-grid { background: #f6f6f4; }
.about-message-block { align-self: center; max-width: 510px; padding: 70px max(24px, calc((100vw - 1110px) / 2)) 70px 0; }
.about-message-block h3 { margin: 0 0 25px; color: #252927; font-size: clamp(1.8rem, 3vw, 2.8rem); line-height: 1.1; text-transform: uppercase; }
.about-message-image { margin: 80px 0; background-position: center; background-size: cover; }
.about-signature { display: flex; flex-direction: column; gap: 6px; margin-top: 30px; text-transform: uppercase; }
.about-signature strong { color: #252927; font-size: 1.2rem; }
.about-signature span { color: #7c8b84; font-size: 13px; letter-spacing: .08em; }
.about-board { padding: 110px 0 125px; }
.about-board > .about-eyebrow, .about-board > h2, .about-board-grid { max-width: 1110px; margin-left: auto; margin-right: auto; }
.about-board h2 { margin-top: 0; margin-bottom: 36px; color: #252927; font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 300; }
.about-board-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.about-board-grid div { position: relative; overflow: hidden; background: #222; }
.about-board-grid img { display: block; width: 100%; height: 360px; object-fit: cover; transition: transform 700ms cubic-bezier(.2,.7,.2,1), filter 700ms ease; }
.about-board-grid div::after { position: absolute; inset: 0; content: ''; background: linear-gradient(transparent 45%, rgba(0,0,0,.82)); pointer-events: none; }
.about-board-grid div:hover img { transform: scale(1.06); filter: saturate(1.12); }
.about-board-grid strong, .about-board-grid span { position: absolute; left: 0; right: 0; padding: 0 28px; color: #fff; text-transform: uppercase; }
.about-board-grid strong { bottom: 52px; font-size: 18px; }
.about-board-grid span { bottom: 27px; font-size: 12px; letter-spacing: .08em; }

@media (max-width: 991.98px) {
	.services-details,
	.contact-page-section,
	.about-page-section {
		padding: 70px 0;
	}
	.about-page-section { padding: 0; }

	.contact-form-wrap {
		padding: 30px 22px 26px;
	}
}

@media (max-width: 575.98px) {
	.contact-form-wrap .form-clt input,
	.contact-form-wrap .form-clt textarea {
		padding: 14px 16px;
	}

	.about-stats { flex-wrap: wrap; gap: 30px; margin-top: 45px; }
	.about-split, .about-message-grid, .about-infrastructure, .about-values { grid-template-columns: 1fr; }
	.about-split-image { min-height: 300px; }
	.about-split-copy, .about-message-block { max-width: none; padding: 55px 24px; }
	.about-values { min-height: 560px; padding-top: 65px; padding-bottom: 65px; }
	.about-values-list { inset: auto 24px 65px; height: 210px; }
	.about-values-list button { height: 210px; padding: 0 10px; font-size: 11px; }
	.about-values-list button:nth-child(1) { left: 0; }
	.about-values-list button:nth-child(2) { left: 13%; }
	.about-values-list button:nth-child(3) { left: 26%; }
	.about-values-list button:nth-child(4) { right: 0; }
	.about-values-copy { padding-left: 0; }
	.about-values-copy h3 { margin-bottom: 28px; }
	.about-values-copy p { font-size: 16px; }
	.about-mission-vision { grid-template-columns: 1fr; gap: 45px; padding: 65px 24px; }
	.about-mission-vision p { font-size: 16px; }
	.about-message-image { min-height: 320px; margin: 0 24px 55px; }
	.about-board { padding: 75px 24px; }
	.about-board > .about-eyebrow, .about-board > h2, .about-board-grid { max-width: none; }
	.about-board-grid { grid-template-columns: 1fr; gap: 20px; }
	.about-board-grid img { height: 390px; }
}

@media (prefers-reduced-motion: reduce) {
	.about-page-section [data-reveal] { opacity: 1; transform: none; transition: none; }
	.about-values-list button, .about-board-grid img, .about-values::before { transition: none; }
	.about-values-copy.is-changing h3, .about-values-copy.is-changing p { animation: none; }
}
.contact-hours {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 16px;
	color: #687469;
}

.contact-hours i {
	color: var(--theme-color2);
}

/* Visually hidden form labels (theme keeps them readable to screen readers). */
.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

/* Service detail: keep the heading icon aligned with its text. */
.services-details__content .h3 > i {
	font-size: 22px;
	margin-right: 10px;
	color: var(--theme-color2);
}
