/* Siddhi Olympia Core – section styles (used by the Siddhi Olympia theme, Elementor widgets and the plain-page fallback). */
:root {
	--so-gold: #b8894a;
	--so-gold-2: #d6b47c;
	--so-gold-dark: #8f6a35;
	--so-ink: #1f1b16;
	--so-text: #4d473f;
	--so-muted: #7a7266;
	--so-cream: #f8f3ea;
	--so-cream-2: #efe5d3;
	--so-dark: #16130f;
	--so-navy: #0f2038;
	--so-line: rgba(31, 27, 22, .1);
	--so-white: #fff;
	--so-radius: 14px;
	--so-shadow: 0 18px 40px -22px rgba(31, 27, 22, .35);
	--so-head: "Cormorant Garamond", "Playfair Display", Georgia, serif;
	--so-body: "Jost", "Helvetica Neue", Arial, sans-serif;
	--so-wrap: 1200px;
}

/* ---------- Page scaffolding ---------- */
[class^="so-"], [class*=" so-"], .so-form *, .so-sticky *, .so-inline-cta *, .so-table-wrap * { box-sizing: border-box; }
body.so-page { overflow-x: clip; }
body.so-hide-theme-title .breadcrumb__area,
body.so-hide-theme-title .breadcrumb-area,
body.so-hide-theme-title .breadcrumb__section,
body.so-hide-theme-title .tg-breadcrumb,
body.so-hide-theme-title .page-title-area,
body.so-hide-theme-title .page-header,
body.so-hide-theme-title .entry-header,
body.so-hide-theme-title main .wp-block-post-title,
body.so-hide-theme-title .wp-block-post-featured-image { display: none !important; }
body.so-page .entry-content, body.so-page .page-content, body.so-page .post-content { margin-top: 0; }
body.so-page main.wp-block-group { margin-top: 0 !important; padding-top: 0 !important; }
body.so-page .wp-site-blocks > main { margin-block-start: 0 !important; }

.so-full {
	width: 100vw;
	max-width: 100vw !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	position: relative;
	box-sizing: border-box;
}
.so-wrap { max-width: var(--so-wrap); margin: 0 auto !important; padding: 0 24px; box-sizing: border-box; width: 100%; }
.so-wrap > * { max-width: none !important; }
.so-section, .so-hero, .so-page-hero, .so-band, .so-cta, .so-form, .so-sticky, .so-legal-bar {
	font-family: var(--so-body);
	color: var(--so-text);
	font-size: 17px;
	line-height: 1.7;
}
.so-section { padding: 96px 0; background: var(--so-white); }
.so-section *, .so-hero *, .so-page-hero *, .so-band *, .so-cta * { box-sizing: border-box; }
.so-section--tight { padding: 56px 0; }
.so-section--flush { padding: 0; background: transparent; }
.so-section .so-wrap > .wp-block-group, .so-section p:last-child { margin-bottom: 0; }
.so-bg-cream { background: var(--so-cream); }
.so-bg-dark { background: var(--so-dark); color: #d8d0c3; }
.so-bg-navy { background: var(--so-navy); color: #c9d3e2; }
.so-bg-pattern { background: linear-gradient(rgba(248, 243, 234, .8), rgba(248, 243, 234, .8)), url("../images/gold-wave-pattern-background.webp") center/cover; background-color: var(--so-cream); }
.so-bg-dark h2, .so-bg-dark h3, .so-bg-navy h2, .so-bg-navy h3 { color: #fff; }

.so-section h1, .so-section h2, .so-section h3, .so-section h4,
.so-hero h1, .so-page-hero h1, .so-band h2, .so-cta h2 { font-family: var(--so-head); color: var(--so-ink); letter-spacing: 0; font-weight: 600; }
.so-section h2.wp-block-heading { font-size: clamp(28px, 3.2vw, 38px); margin: 1.6em 0 .5em; line-height: 1.2; }
.so-section h3.wp-block-heading { font-size: 24px; margin: 1.3em 0 .4em; }
.so-section a:not(.so-button):not(.wp-block-button__link) { color: var(--so-gold-dark); }

/* ---------- Typography helpers ---------- */
.so-head { max-width: 760px; margin: 0 0 44px; }
.so-head.so-center { margin-left: auto; margin-right: auto; text-align: center; }
.so-eyebrow {
	display: inline-block; font-family: var(--so-body); font-size: 13px; font-weight: 600; letter-spacing: .18em;
	text-transform: uppercase; color: var(--so-gold); margin-bottom: 12px;
}
.so-eyebrow::before { content: ""; display: inline-block; width: 28px; height: 1px; background: currentColor; vertical-align: middle; margin-right: 10px; }
.so-center .so-eyebrow::after { content: ""; display: inline-block; width: 28px; height: 1px; background: currentColor; vertical-align: middle; margin-left: 10px; }
.so-title { font-family: var(--so-head) !important; font-size: clamp(32px, 4vw, 50px) !important; line-height: 1.12 !important; margin: 0 0 16px !important; font-weight: 600 !important; color: var(--so-ink); }
.so-bg-dark .so-title, .so-bg-navy .so-title, .so-band--dark .so-title, .so-cta .so-title { color: #fff; }
.so-lead { font-size: 19px; color: var(--so-muted); margin: 0; }
.so-bg-dark .so-lead, .so-bg-navy .so-lead { color: #bdb4a6; }
.so-subtitle { font-family: var(--so-head); font-size: 26px; margin: 32px 0 12px; color: var(--so-ink); }
.so-note { font-size: 14px; color: var(--so-muted); margin-top: 18px; }
.so-center { text-align: center; }

/* ---------- Buttons ---------- */
.so-button, .so-section .so-btn .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 15px 30px; border-radius: 999px; background: var(--so-gold); color: #fff !important;
	font-family: var(--so-body); font-weight: 500; font-size: 15px; letter-spacing: .04em; text-decoration: none !important;
	border: 1px solid var(--so-gold); transition: background .2s, color .2s, transform .2s; cursor: pointer; line-height: 1.2;
}
.so-button:hover { background: var(--so-gold-dark); border-color: var(--so-gold-dark); transform: translateY(-1px); }
.so-button--ghost { background: transparent; border-color: rgba(255, 255, 255, .7); }
.so-button--ghost:hover { background: #fff; color: var(--so-ink) !important; border-color: #fff; }
.so-button--outline { background: transparent; color: var(--so-gold-dark) !important; border-color: var(--so-gold); }
.so-button--outline:hover { background: var(--so-gold); color: #fff !important; }
.so-button--full { width: 100%; }
.so-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }
.so-center .so-actions { justify-content: center; }
.so-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--so-gold-dark) !important; text-decoration: none !important; font-size: 15px; }
.so-link:hover .so-ico { transform: translateX(3px); }
.so-link .so-ico { transition: transform .2s; }

/* ---------- Hero slider ---------- */
.so-hero { position: relative; height: min(88vh, 820px); min-height: 560px; overflow: hidden; background: var(--so-dark); }
.so-hero__slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1s ease; pointer-events: none; }
.so-hero__slide.is-active { opacity: 1; pointer-events: auto; }
.so-hero__img, .so-page-hero__img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; }
.so-hero__slide.is-active .so-hero__img { animation: so-kenburns 9s ease-out both; }
@keyframes so-kenburns { from { transform: scale(1.08); } to { transform: scale(1); } }
.so-hero__shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14, 11, 8, .82) 0%, rgba(14, 11, 8, .55) 45%, rgba(14, 11, 8, .1) 100%), linear-gradient(0deg, rgba(14, 11, 8, .5), transparent 40%); }
.so-hero__content { position: relative; height: 100%; display: flex; flex-direction: column; justify-content: center; color: #efe7da; padding-top: 40px; padding-bottom: 80px; }
.so-hero__content > * { max-width: 680px !important; }
.so-hero .so-eyebrow { color: var(--so-gold-2); }
.so-hero__title { font-family: var(--so-head) !important; font-size: clamp(40px, 5.6vw, 76px) !important; line-height: 1.04 !important; color: #fff !important; margin: 0 0 20px !important; font-weight: 600 !important; }
.so-hero__text { font-size: 19px; margin: 0 0 32px; color: #e4dccd; }
.so-hero__btns { display: flex; flex-wrap: wrap; gap: 14px; }
.so-hero__badges { list-style: none; display: flex; flex-wrap: wrap; gap: 10px 22px; padding: 0; margin: 30px 0 0; font-size: 14px; letter-spacing: .03em; }
.so-hero__badges li { display: flex; align-items: center; gap: 6px; color: #f0e6d5; margin: 0; }
.so-hero__badges .so-ico { color: var(--so-gold-2); }
.so-hero__dots { position: absolute; left: 0; right: 0; bottom: 96px; display: flex; gap: 10px; max-width: var(--so-wrap); margin: 0 auto; padding: 0 24px; }
.so-hero__dots button { width: 34px; height: 4px; border: 0; padding: 0; border-radius: 2px; background: rgba(255, 255, 255, .35); cursor: pointer; }
.so-hero__dots button.is-active { background: var(--so-gold-2); width: 56px; }

/* Quick enquiry bar overlapping the hero */
.so-quickform { position: relative; z-index: 5; margin-top: -64px !important; }
.so-quickform .so-form--inline { background: #fff; border-radius: var(--so-radius); box-shadow: 0 24px 50px -20px rgba(0, 0, 0, .35); padding: 22px 26px; display: grid; grid-template-columns: 1fr auto; gap: 8px 18px; align-items: end; }
.so-form--inline .so-form__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.so-form--inline .so-consent { grid-column: 1 / -1; order: 3; margin: 2px 0 0; }
.so-form--inline .so-button { height: 52px; white-space: nowrap; }

/* ---------- Inner page hero ---------- */
.so-page-hero { position: relative; min-height: 460px; display: flex; align-items: flex-end; overflow: hidden; background: var(--so-dark); }
.so-page-hero .so-hero__shade { background: linear-gradient(0deg, rgba(14, 11, 8, .88) 0%, rgba(14, 11, 8, .45) 55%, rgba(14, 11, 8, .25) 100%); }
.so-page-hero__content { position: relative; padding-top: 140px; padding-bottom: 64px; color: #eee5d6; }
.so-page-hero__title { font-family: var(--so-head) !important; font-size: clamp(36px, 5vw, 64px) !important; line-height: 1.06 !important; color: #fff !important; margin: 10px 0 14px !important; max-width: 900px !important; font-weight: 600 !important; }
.so-page-hero__sub { font-size: 19px; max-width: 720px !important; margin: 0; color: #e0d7c7; }
.so-page-hero .so-hero__btns { margin-top: 28px; }
.so-crumbs { font-size: 14px; letter-spacing: .04em; color: #cfc4b1; }
.so-crumbs a { color: var(--so-gold-2) !important; text-decoration: none; }
.so-crumbs span { margin: 0 6px; opacity: .6; }

/* ---------- Grids & cards ---------- */
.so-grid { display: grid; gap: 30px; }
.so-grid--1 { grid-template-columns: 1fr; }
.so-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; }
.so-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.so-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.so-grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; }
.so-card { background: #fff; border-radius: var(--so-radius); overflow: hidden; box-shadow: var(--so-shadow); border: 1px solid var(--so-line); }
.so-card--pad { padding: 28px; }
.so-card__body { padding: 26px 28px 30px; }
.so-card h3 { font-size: 24px; margin: 0 0 8px; }

.so-project { display: flex; flex-direction: column; transition: transform .3s, box-shadow .3s; }
.so-project:hover { transform: translateY(-6px); box-shadow: 0 30px 50px -24px rgba(31, 27, 22, .45); }
.so-project__media { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.so-project__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; display: block; }
.so-project:hover .so-project__media img { transform: scale(1.06); }
.so-tag { position: absolute; top: 16px; left: 16px; background: rgba(22, 19, 15, .8); color: #f3e9d8; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; padding: 7px 12px; border-radius: 999px; backdrop-filter: blur(4px); }
.so-project .so-card__body { display: flex; flex-direction: column; flex: 1; }
.so-project__title { font-size: 26px !important; line-height: 1.2; }
.so-project__title a { color: var(--so-ink) !important; text-decoration: none !important; }
.so-project__loc { display: flex; align-items: center; gap: 6px; font-size: 14px; color: var(--so-gold-dark); margin: 0 0 10px; }
.so-project__facts { list-style: none; padding: 16px 0; margin: 14px 0 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; border-top: 1px solid var(--so-line); border-bottom: 1px solid var(--so-line); font-size: 14px; }
.so-project__facts li { display: flex; align-items: center; gap: 8px; margin: 0; }
.so-project__facts .so-ico { color: var(--so-gold); flex: none; }
.so-project .so-link { margin-top: auto; }

/* Features */
.so-feature { display: flex; gap: 18px; align-items: flex-start; }
.so-feature__ico { flex: none; width: 58px; height: 58px; border-radius: 50%; display: grid; place-items: center; background: var(--so-cream); color: var(--so-gold-dark); border: 1px solid rgba(184, 137, 74, .3); }
.so-feature__title { font-size: 22px !important; margin: 4px 0 6px !important; line-height: 1.25; }
.so-feature p { margin: 0; font-size: 16px; }
.so-features--compact { margin: 28px 0 0; gap: 18px; }
.so-features--compact .so-feature { flex-direction: column; gap: 10px; }
.so-features--compact .so-feature__ico { width: 48px; height: 48px; }
.so-features--compact .so-feature__title { font-size: 19px !important; margin: 0 !important; }
.so-features--compact p { font-size: 14px; }
.so-features--cards .so-feature, .so-features--tiles .so-feature { flex-direction: column; background: #fff; border-radius: var(--so-radius); padding: 32px 28px; border: 1px solid var(--so-line); box-shadow: var(--so-shadow); height: 100%; }
.so-bg-cream .so-features--cards .so-feature { background: #fff; }
.so-features--tiles .so-feature { align-items: center; text-align: center; padding: 30px 18px; gap: 12px; transition: transform .25s, border-color .25s; }
.so-features--tiles .so-feature:hover { transform: translateY(-4px); border-color: var(--so-gold); }
.so-features--tiles .so-feature__title { font-size: 20px !important; margin: 0 !important; }
.so-features--navy .so-feature { background: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .12); box-shadow: none; }
.so-features--navy .so-feature__title { color: #fff !important; font-size: 18px !important; font-family: var(--so-body) !important; font-weight: 500 !important; }
.so-features--navy .so-feature__ico { background: rgba(214, 180, 124, .12); color: var(--so-gold-2); border-color: rgba(214, 180, 124, .35); }
.so-features--spec .so-feature { background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .1); border-radius: var(--so-radius); padding: 26px; }
.so-features--spec .so-feature__title { color: #fff !important; }
.so-features--spec .so-feature__ico { background: transparent; color: var(--so-gold-2); border-color: rgba(214, 180, 124, .4); }
.so-features--list { gap: 22px; margin: 8px 0 0; }
.so-features--list .so-feature__title { font-size: 20px !important; }

/* Chips */
.so-chips { list-style: none; padding: 0; margin: 24px 0 0; display: flex; flex-wrap: wrap; gap: 10px; }
.so-chips li { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 10px 16px; background: var(--so-cream); border: 1px solid rgba(184, 137, 74, .25); border-radius: 999px; font-size: 15px; color: var(--so-ink); }
.so-chips .so-ico { color: var(--so-gold-dark); }
.so-section > .so-wrap > .wp-block-html > .so-chips, .so-center .so-chips { justify-content: center; }

/* Counters */
.so-counters { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 24px; text-align: center; }
.so-counter { padding: 10px 12px; border-left: 1px solid rgba(255, 255, 255, .12); }
.so-counter:first-child { border-left: 0; }
.so-counter__num { display: block; font-family: var(--so-head); font-size: clamp(40px, 4.4vw, 58px); color: var(--so-gold-2); line-height: 1.05; font-weight: 600; }
.so-counter__label { display: block; font-size: 14px; letter-spacing: .06em; color: #cfc6b8; margin-top: 8px; }

/* Split */
.so-split { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
.so-split--rev .so-split__media { order: 2; }
.so-split__media { position: relative; }
.so-split__media > img { width: 100%; border-radius: var(--so-radius); display: block; box-shadow: var(--so-shadow); aspect-ratio: 4 / 3.4; object-fit: cover; height: auto; }
.so-split__media--duo { padding: 0 0 70px 0; }
.so-split__media--duo > img:first-child { width: 86%; }
.so-split__inset { position: absolute; right: 0; bottom: 0; width: 46% !important; aspect-ratio: 3 / 4 !important; border: 8px solid #fff; border-radius: var(--so-radius) !important; object-fit: cover; }
.so-split--rev .so-split__media--duo > img:first-child { margin-left: auto; }
.so-split--rev .so-split__inset { right: auto; left: 0; object-fit: contain; background: #fff; }
.so-split__text p { margin: 0 0 16px; }

/* Facts */
.so-facts { background: var(--so-cream); border-radius: var(--so-radius); padding: 30px 32px; margin-top: 34px; border: 1px solid rgba(184, 137, 74, .2); }
.so-facts__title { font-size: 26px !important; margin: 0 0 14px !important; }
.so-facts dl { margin: 0; }
.so-facts dl > div { display: grid; grid-template-columns: 170px 1fr; gap: 16px; padding: 12px 0; border-bottom: 1px dashed rgba(31, 27, 22, .15); }
.so-facts dl > div:last-child { border-bottom: 0; }
.so-facts dt { font-weight: 600; color: var(--so-ink); font-size: 15px; }
.so-facts dd { margin: 0; font-size: 15px; }

/* With form (content + sticky form) */
.so-with-form { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 56px; align-items: start; }
.so-with-form__aside { position: sticky; top: 110px; scroll-margin-top: 110px; }

/* Plot cards */
.so-plots { align-items: stretch; }
.so-plot { position: relative; background: #fff; border-radius: 18px; padding: 40px 32px 32px; border: 1px solid rgba(184, 137, 74, .3); box-shadow: var(--so-shadow); display: flex; flex-direction: column; }
.so-plot--featured { background: var(--so-dark); color: #d8d0c3; border-color: var(--so-gold); transform: translateY(-10px); }
.so-plot--featured .so-plot__name { color: #fff !important; }
.so-plot__flag { position: absolute; top: -13px; left: 50%; transform: translateX(-50%); background: var(--so-gold); color: #fff; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; padding: 6px 14px; border-radius: 999px; white-space: nowrap; }
.so-plot__size { font-family: var(--so-head); font-size: 64px; line-height: 1; color: var(--so-gold); font-weight: 600; }
.so-plot__size small { font-family: var(--so-body); font-size: 16px; color: var(--so-muted); margin-left: 6px; font-weight: 400; }
.so-plot--featured .so-plot__size small { color: #bdb4a6; }
.so-plot__name { font-size: 24px !important; margin: 14px 0 6px !important; line-height: 1.2; }
.so-plot__for { font-size: 15px; margin: 0 0 18px; }
.so-plot ul { list-style: none; padding: 18px 0 0; margin: 0 0 26px; border-top: 1px solid var(--so-line); flex: 1; }
.so-plot--featured ul { border-color: rgba(255, 255, 255, .12); }
.so-plot li { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; margin: 0 0 10px; }
.so-plot li .so-ico { color: var(--so-gold); flex: none; margin-top: 3px; }

/* Timeline */
.so-timeline { list-style: none; padding: 0; margin: 0 auto; max-width: 900px; position: relative; }
.so-timeline::before { content: ""; position: absolute; left: 118px; top: 8px; bottom: 8px; width: 1px; background: rgba(184, 137, 74, .5); }
.so-timeline li { display: grid; grid-template-columns: 100px 1fr; gap: 40px; padding: 0 0 30px; margin: 0; position: relative; }
.so-timeline li::before { content: ""; position: absolute; left: 112px; top: 8px; width: 13px; height: 13px; border-radius: 50%; background: var(--so-gold); box-shadow: 0 0 0 5px var(--so-cream); }
.so-timeline__year { font-family: var(--so-head); font-size: 26px; font-weight: 600; color: var(--so-gold-dark); text-align: right; line-height: 1.2; }
.so-timeline h3 { font-size: 23px !important; margin: 0 0 4px !important; }
.so-timeline p { margin: 0; font-size: 16px; }

/* Distances */
.so-distances { list-style: none; padding: 0; margin: 20px 0 0; display: grid; gap: 0; }
.so-distances li { display: grid; grid-template-columns: 30px 1fr auto; gap: 14px; align-items: center; padding: 14px 0; margin: 0; border-bottom: 1px solid var(--so-line); }
.so-distances .so-ico { color: var(--so-gold); }
.so-distances__place { color: var(--so-ink); font-weight: 500; }
.so-distances__time { font-family: var(--so-head); font-size: 22px; font-weight: 600; color: var(--so-gold-dark); white-space: nowrap; }
.so-distances--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; max-width: 980px; margin: 0 auto !important; }
.so-location { align-items: center; }

/* Map */
.so-map { border-radius: var(--so-radius); overflow: hidden; box-shadow: var(--so-shadow); line-height: 0; }
.so-map iframe { width: 100%; border: 0; display: block; }

/* Band */
.so-band { position: relative; padding: 130px 0; overflow: hidden; color: #e8dfd0; font-family: var(--so-body); }
.so-band__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.so-band--dark::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(15, 32, 56, .92), rgba(15, 32, 56, .55)); }
.so-band__inner { position: relative; z-index: 1; }
.so-band__text { max-width: 640px; }
.so-band__text p { font-size: 18px; }
.so-band .so-eyebrow { color: var(--so-gold-2); }

/* Tables */
.so-table-wrap { overflow-x: auto; border-radius: var(--so-radius); border: 1px solid var(--so-line); background: #fff; margin: 0 0 24px; }
.so-table { width: 100%; border-collapse: collapse; font-size: 16px; margin: 0; }
.so-table th, .so-table td { padding: 16px 20px; text-align: left; border-bottom: 1px solid var(--so-line); vertical-align: top; }
.so-table thead th { background: var(--so-dark); color: #f3e9d8; font-weight: 500; letter-spacing: .04em; font-size: 14px; text-transform: uppercase; }
.so-table tbody th { color: var(--so-ink); font-weight: 600; }
.so-table tbody tr:last-child > * { border-bottom: 0; }

/* Checklist, reasons */
.so-checklist { list-style: none; padding: 0; margin: 18px 0 24px; }
.so-checklist li { display: flex; gap: 12px; align-items: flex-start; margin: 0 0 12px; }
.so-checklist .so-ico { flex: none; color: #fff; background: var(--so-gold); border-radius: 50%; padding: 3px; margin-top: 3px; }
.so-reasons { list-style: none; counter-reset: so; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 22px; }
.so-reasons--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.so-reasons li { counter-increment: so; background: #fff; border-radius: var(--so-radius); padding: 28px 24px; border: 1px solid var(--so-line); margin: 0; position: relative; }
.so-reasons li::before { content: "0" counter(so); font-family: var(--so-head); font-size: 42px; color: var(--so-gold); font-weight: 600; display: block; line-height: 1; margin-bottom: 12px; }
.so-reasons h3 { font-size: 21px !important; margin: 0 0 6px !important; line-height: 1.25 !important; }
.so-reasons p { margin: 0; font-size: 15px; }

/* Tabs / floor plans */
.so-tabs__nav { display: flex; justify-content: center; gap: 10px; margin-bottom: 30px; }
.so-tabs__nav button { border: 1px solid var(--so-gold); background: transparent; color: var(--so-gold-dark); padding: 11px 26px; border-radius: 999px; font-family: var(--so-body); font-size: 15px; cursor: pointer; }
.so-tabs__nav button.is-active { background: var(--so-gold); color: #fff; }
.so-tabs__panel { display: none; }
.so-tabs__panel.is-active { display: block; animation: so-fade .4s; }
@keyframes so-fade { from { opacity: 0; } to { opacity: 1; } }
.so-plan { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 48px; align-items: center; background: var(--so-cream); border-radius: 18px; padding: 36px; }
.so-plan img { width: 100%; max-height: 620px; object-fit: contain; background: #fff; border-radius: 10px; }

/* Amenity cards */
.so-amenity__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.so-amenity__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.so-amenity__placeholder { width: 100%; height: 100%; display: grid; place-items: center; background: var(--so-cream) url("../images/gold-wave-pattern-background.webp") center/cover; color: var(--so-gold); }
.so-amenity__ico { position: absolute; right: 18px; bottom: -24px; width: 52px; height: 52px; border-radius: 50%; background: var(--so-gold); color: #fff; display: grid; place-items: center; box-shadow: 0 8px 20px -6px rgba(0, 0, 0, .4); }
.so-amenity .so-card__body { padding-top: 30px; }
.so-amenity p { margin: 0; font-size: 16px; }

/* Media pair */
.so-media-pair figure { margin: 0; }
.so-media-pair img { width: 100%; border-radius: var(--so-radius); aspect-ratio: 16 / 10; object-fit: cover; display: block; box-shadow: var(--so-shadow); }
.so-media-pair figcaption, .so-gallery figcaption { font-size: 13px; color: var(--so-muted); margin-top: 8px; text-align: center; }

/* Gallery */
.so-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0 0 34px; }
.so-filters button { border: 1px solid var(--so-line); background: #fff; padding: 10px 22px; border-radius: 999px; font-family: var(--so-body); font-size: 15px; cursor: pointer; color: var(--so-ink); }
.so-filters button.is-active { background: var(--so-gold); border-color: var(--so-gold); color: #fff; }
.so-gallery { columns: 3 300px; column-gap: 18px; }
.so-gallery__item { break-inside: avoid; margin: 0 0 18px; }
.so-gallery__item.is-hidden { display: none; }
.so-gallery__item a { display: block; overflow: hidden; border-radius: 12px; }
.so-gallery__item img { width: 100%; height: auto; display: block; transition: transform .5s; }
.so-gallery__item a:hover img { transform: scale(1.05); }
.so-lightbox { position: fixed; inset: 0; background: rgba(10, 8, 6, .92); z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 24px; }
.so-lightbox img { max-width: 100%; max-height: 90vh; border-radius: 8px; }
.so-lightbox button { position: absolute; top: 18px; right: 22px; background: none; border: 0; color: #fff; font-size: 40px; cursor: pointer; line-height: 1; }

/* FAQ (core Details block) */
.so-faq .so-wrap { max-width: 900px; }
.so-faq-item { background: #fff; border: 1px solid var(--so-line); border-radius: 12px; margin: 0 0 12px !important; padding: 0 !important; }
.so-bg-cream .so-faq-item { background: #fff; }
.so-faq-item summary { cursor: pointer; list-style: none; padding: 20px 56px 20px 24px; font-family: var(--so-head); font-size: 21px; font-weight: 600; color: var(--so-ink); position: relative; }
.so-faq-item summary::-webkit-details-marker { display: none; }
.so-faq-item summary::after { content: "+"; position: absolute; right: 22px; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; border-radius: 50%; background: var(--so-cream); color: var(--so-gold-dark); display: grid; place-items: center; font-family: var(--so-body); font-size: 20px; }
.so-faq-item[open] summary::after { content: "–"; background: var(--so-gold); color: #fff; }
.so-faq-item > p { padding: 0 24px 20px; margin: 0; }

/* CTA band */
.so-cta { position: relative; padding: 100px 0; overflow: hidden; background: var(--so-dark); }
.so-cta__bg { position: absolute; inset: 0; background-size: cover; background-position: center 60%; opacity: .35; }
.so-cta::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(22, 19, 15, .95), rgba(22, 19, 15, .6)); }
.so-cta__inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1.4fr 1fr; gap: 40px; align-items: center; color: #d9d0c1; }
.so-cta__inner p { font-size: 18px; margin: 0; }
.so-cta .so-eyebrow { color: var(--so-gold-2); }
.so-cta__actions { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }

/* Forms */
.so-form { background: #fff; border-radius: 18px; padding: 32px; box-shadow: 0 26px 50px -26px rgba(31, 27, 22, .45); border: 1px solid var(--so-line); }
.so-form__title { font-family: var(--so-head) !important; font-size: 30px !important; margin: 0 0 6px !important; color: var(--so-ink); font-weight: 600 !important; }
.so-form__sub { font-size: 15px; color: var(--so-muted); margin: 0 0 20px; }
.so-form__grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
.so-field { display: block; margin: 0; }
.so-field > span { display: block; font-size: 13px; font-weight: 500; letter-spacing: .04em; color: var(--so-ink); margin-bottom: 6px; }
.so-field input, .so-field select, .so-field textarea {
	width: 100%; border: 1px solid #ddd3c3; background: #fdfbf7; border-radius: 10px; padding: 13px 14px; font-family: var(--so-body);
	font-size: 16px; color: var(--so-ink); box-shadow: none; height: auto; line-height: 1.4; margin: 0;
}
.so-field select { appearance: auto; }
.so-field input:focus, .so-field select:focus, .so-field textarea:focus { outline: 2px solid rgba(184, 137, 74, .5); border-color: var(--so-gold); background: #fff; }
.so-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: var(--so-muted); margin: 16px 0 18px; line-height: 1.5; }
.so-consent input { margin-top: 3px; accent-color: var(--so-gold); }
.so-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.so-form-msg { padding: 12px 16px; border-radius: 10px; margin: 0 0 16px; font-size: 15px; background: #fdecea; color: #8a1f11; }
.so-rera { font-size: 14px; }

/* Contact */
.so-contact-card { text-align: left; }
.so-contact-card h3 { font-size: 21px !important; margin: 14px 0 6px !important; }
.so-contact-card p { font-size: 15px; margin: 0; word-break: break-word; }
.so-contact { align-items: start; }
.so-thanks { max-width: 720px; margin: 40px auto; }
.so-thanks > .so-ico { color: #fff; background: var(--so-gold); border-radius: 50%; padding: 12px; margin-bottom: 18px; }

/* Latest posts block */
.so-latest.wp-block-latest-posts { margin: 0 !important; padding: 0; display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.so-latest.wp-block-latest-posts li { width: auto !important; margin: 0 !important; background: #fff; border-radius: var(--so-radius); overflow: hidden; border: 1px solid var(--so-line); box-shadow: var(--so-shadow); padding: 0 0 24px; }
.so-latest .wp-block-latest-posts__featured-image { margin: 0 0 18px !important; }
.so-latest .wp-block-latest-posts__featured-image img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; }
.so-latest .wp-block-latest-posts__post-title { display: block; padding: 0 24px; font-family: var(--so-head); font-size: 23px; line-height: 1.25; font-weight: 600; color: var(--so-ink) !important; text-decoration: none !important; }
.so-latest .wp-block-latest-posts__post-date { display: block; padding: 6px 24px 0; font-size: 13px; color: var(--so-gold-dark); }
.so-latest .wp-block-latest-posts__post-excerpt { padding: 8px 24px 0; font-size: 15px; margin: 0; }

/* Inline CTA inside blog posts */
.so-inline-cta { display: flex; align-items: center; justify-content: space-between; gap: 20px; background: var(--so-cream); border-left: 4px solid var(--so-gold); border-radius: 12px; padding: 22px 26px; margin: 32px 0; font-family: var(--so-body); }
.so-inline-cta p { margin: 0 !important; font-weight: 500; color: var(--so-ink); }

/* Legal pages */
.so-legal .so-wrap { max-width: 860px; }

/* Footer widgets */
.so-footer-logo img { max-width: 170px; height: auto; }
.so-footer-links { list-style: none; padding: 0; margin: 0; }
.so-footer-links li { margin: 0 0 10px; }
.so-footer-contact { list-style: none; padding: 0; margin: 0; }
.so-footer-contact li { display: flex; gap: 10px; margin: 0 0 12px; align-items: flex-start; }
.so-footer-contact .so-ico { flex: none; color: var(--so-gold); margin-top: 3px; }
.so-legal-bar { background: #0e0c0a; color: #9d9486; font-size: 12.5px; line-height: 1.6; padding: 14px 0; text-align: center; }
.so-legal-bar a { color: var(--so-gold-2); }
.so-legal-bar .so-rera { font-size: 12.5px; }

/* Sticky contact bar (mobile) + WhatsApp float (desktop) */
.so-sticky { display: none; }
.so-wa-float { position: fixed; right: 22px; bottom: 22px; z-index: 9999; width: 58px; height: 58px; border-radius: 50%; background: #25d366; color: #fff !important; display: grid; place-items: center; box-shadow: 0 10px 24px -6px rgba(0, 0, 0, .4); transition: transform .2s; }
.so-wa-float:hover { transform: scale(1.08); }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.so-grid--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.so-reasons { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.so-with-form { grid-template-columns: minmax(0, 1fr) 360px; gap: 40px; }
}
@media (max-width: 960px) {
	.so-section { padding: 72px 0; }
	.so-grid--3, .so-grid--4, .so-latest.wp-block-latest-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.so-grid--2, .so-split, .so-with-form, .so-cta__inner, .so-plan { grid-template-columns: 1fr; gap: 40px; }
	.so-split--rev .so-split__media { order: 0; }
	.so-with-form__aside { position: static; }
	.so-plots { grid-template-columns: 1fr; max-width: 520px; margin: 0 auto; }
	.so-plot--featured { transform: none; }
	.so-quickform .so-form--inline { grid-template-columns: 1fr; }
	.so-band__bg { background-attachment: scroll; }
	.so-distances--2 { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
	.so-section, .so-hero, .so-page-hero, .so-band, .so-cta { font-size: 16px; }
	.so-section { padding: 60px 0; }
	.so-wrap { padding: 0 16px; }
	.so-hero { height: auto; min-height: 740px; }
	.so-hero__title { font-size: 36px !important; }
	.so-hero .so-eyebrow { font-size: 11px; letter-spacing: .14em; }
	.so-page-hero__title { font-size: 34px !important; }
	.so-hero__content { padding-top: 110px; padding-bottom: 110px; justify-content: flex-end; }
	.so-hero__shade { background: linear-gradient(0deg, rgba(14, 11, 8, .92) 0%, rgba(14, 11, 8, .55) 60%, rgba(14, 11, 8, .35) 100%); }
	.so-hero__text, .so-page-hero__sub, .so-lead { font-size: 16px; }
	.so-hero__dots { bottom: 84px; padding: 0 16px; }
	.so-hero__btns .so-button { flex: 1 1 100%; }
	.so-page-hero { min-height: 380px; }
	.so-page-hero__content { padding-top: 110px; padding-bottom: 44px; }
	.so-grid--3, .so-grid--4, .so-grid--5, .so-reasons, .so-reasons--3, .so-latest.wp-block-latest-posts { grid-template-columns: 1fr; }
	.so-features--tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
	.so-features--tiles .so-feature { padding: 22px 12px; }
	.so-features--tiles .so-feature__title { font-size: 17px !important; }
	.so-form--inline .so-form__grid { grid-template-columns: 1fr; }
	.so-quickform { margin-top: -48px !important; }
	.so-quickform .so-form--inline { padding: 20px; }
	.so-form { padding: 24px 20px; }
	.so-facts { padding: 22px 20px; }
	.so-facts dl > div { grid-template-columns: 1fr; gap: 2px; }
	.so-timeline::before { left: 7px; }
	.so-timeline li { grid-template-columns: 1fr; gap: 4px; padding-left: 34px; }
	.so-timeline li::before { left: 1px; }
	.so-timeline__year { text-align: left; font-size: 22px; }
	.so-counter { border-left: 0; }
	.so-counters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.so-split__media--duo { padding-bottom: 50px; }
	.so-plan { padding: 18px; }
	.so-distances li { grid-template-columns: 24px 1fr auto; gap: 10px; }
	.so-distances__time { font-size: 19px; }
	.so-inline-cta { flex-direction: column; align-items: flex-start; }
	.so-band { padding: 90px 0; }
	.so-project__facts { grid-template-columns: 1fr 1fr; }

	/* Sticky bottom bar replaces the floating WhatsApp button on phones */
	body.so-has-sticky { padding-bottom: 64px; }
	.so-wa-float { display: none; }
	.so-sticky { display: grid; grid-template-columns: 1fr 1fr 1.3fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999; background: #16130f; box-shadow: 0 -6px 20px rgba(0, 0, 0, .25); }
	.so-sticky__btn { display: flex; align-items: center; justify-content: center; gap: 8px; height: 60px; color: #f3e9d8 !important; text-decoration: none !important; font-family: var(--so-body); font-size: 15px; font-weight: 500; border-right: 1px solid rgba(255, 255, 255, .08); }
	.so-sticky__wa .so-ico { color: #25d366; }
	.so-sticky__cta { background: var(--so-gold); color: #fff !important; border: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.so-hero__slide.is-active .so-hero__img { animation: none; }
	.so-project, .so-project__media img, .so-gallery__item img { transition: none; }
}

/* Let the page banner sit directly under the theme header and the CTA band meet the footer,
   whatever padding the theme puts around page content. */
body.so-page :has(> .so-hero:first-child), body.so-page :has(> .so-page-hero:first-child),
body.so-page :has(> :first-child > .so-page-hero:first-child) { padding-top: 0 !important; margin-top: 0 !important; }
body.so-page :has(.so-hero), body.so-page :has(.so-page-hero) { padding-top: 0 !important; }
body.so-page :has(> .so-cta:last-child), body.so-page :has(.so-cta) { padding-bottom: 0 !important; margin-bottom: 0 !important; }

/*SO-HEADER-CSS*/

/* Emblem accents */
.so-emblem-mark { display: block; width: 64px; height: 64px; margin: 0 0 14px; }
.so-form__head { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; }
.so-form__head .so-form__title { margin: 0 !important; }
.so-form__emblem { width: 44px; height: 44px; flex: none; }
.so-cta__emblem { position: absolute; z-index: 1; right: 2%; top: 50%; transform: translateY(-50%); width: 360px; height: 360px; max-width: 45%; object-fit: contain; opacity: .1; pointer-events: none; }
.so-thanks__logo { display: block; width: 220px; max-width: 70%; height: auto; margin: 0 auto 24px; }

/* Sticky form column sits below the fixed header */

/* ---------- Extra mobile polish ---------- */
@media (max-width: 1199px) {
}
@media (max-width: 680px) {
	.so-form__title { font-size: 24px !important; line-height: 1.2 !important; }
	.so-form__emblem { width: 36px; height: 36px; }
	.so-cta__emblem { width: 200px; height: 200px; max-width: 55%; right: 0; top: 20px; transform: none; }
	.so-cta__actions { width: 100%; }
	.so-cta__actions .so-button { width: 100%; }
	.so-title { font-size: 30px !important; }
	.so-head { margin-bottom: 30px; }
	.so-actions .so-button { flex: 1 1 auto; }
	.so-quickform .so-form--inline .so-button { width: 100%; }
	.so-split { gap: 32px; }
	.so-split__media--duo > img:first-child { width: 88%; }
	.so-tabs__nav { flex-wrap: wrap; }
	.so-tabs__nav button { flex: 1 1 auto; padding: 10px 14px; }
	.so-table th, .so-table td { padding: 12px 14px; font-size: 14px; }
	.so-filters button { padding: 8px 14px; font-size: 14px; }
	.so-gallery { columns: 2 140px; column-gap: 10px; }
	.so-gallery__item { margin-bottom: 10px; }
	.so-contact-card { padding: 20px; }
	.so-band__text p, .so-cta__inner p { font-size: 16px; }
	.so-plot { padding: 34px 22px 24px; }
	.so-plot__size { font-size: 54px; }
	.so-faq-item summary { font-size: 18px; padding: 16px 52px 16px 18px; }
	.so-faq-item > p { padding: 0 18px 16px; }
	.so-legal-bar { font-size: 11.5px; padding: 12px 0 14px; }
	.so-page-hero__content { padding-top: 60px; }
	.so-map iframe { height: 320px; }
	.so-inline-cta .so-button { width: 100%; }
	.so-latest .wp-block-latest-posts__post-title { font-size: 21px; }
}
@media (max-width: 380px) {
	.so-hero__title { font-size: 31px !important; }
	.so-page-hero__title { font-size: 29px !important; }
	.so-features--tiles .so-feature__title { font-size: 15px !important; }
	.so-features--tiles .so-feature { padding: 18px 8px; }
	.so-counters { grid-template-columns: 1fr 1fr; gap: 14px; }
	.so-counter__num { font-size: 36px; }
	.so-sticky__btn { font-size: 13px; gap: 5px; }
	.so-project__facts { grid-template-columns: 1fr; }
}
@media (min-width: 681px) and (max-width: 960px) {
	.so-hero { min-height: 620px; }
	.so-features--tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.so-reasons { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.so-grid--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.so-counters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.so-counter { border-left: 0; }
}

/* Hide the bottom contact bar while a theme's mobile menu is open */
body.mobile-menu-visible .so-sticky, body.offcanvas-open .so-sticky, body.menu-open .so-sticky, body.mobile-menu-visible .so-wa-float { display: none !important; }


/* ---------- Section layout: Elementor sections and plain-page fallback ---------- */
.so-w:not(:last-child) { margin-bottom: 28px; }
.so-el-full .so-w, .so-el-full .elementor-widget { margin: 0 !important; }
.so-w .so-head, .elementor-widget-so-heading .so-head { margin-bottom: 16px; }
.so-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 72px; align-items: center; }
.so-with-form-sec .so-cols { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 56px; align-items: start; }
.so-with-form-sec .so-col:last-child { position: sticky; top: calc(var(--so-header-h, 90px) + 24px); }
.so-chips--center { justify-content: center; }
.so-actions--center { justify-content: center; }
.so-split__media--plan .so-split__inset { object-fit: contain !important; background: #fff; }
.so-text p { margin: 0 0 16px; }
.so-text p:last-child { margin-bottom: 0; }

/* Elementor */
.elementor-section.so-el-section > .elementor-container { max-width: 1200px; align-items: center; }
.elementor-section.so-el-section.so-with-form-sec > .elementor-container { align-items: flex-start; }
.elementor-section.so-with-form-sec > .elementor-container > .elementor-column:last-child { position: sticky; top: calc(var(--so-header-h, 90px) + 24px); }
.elementor-section.so-el-section .elementor-widget:not(:last-child) { margin-bottom: 28px; }
.elementor-section.so-el-full > .elementor-container { max-width: none; }
.elementor-section.so-el-full > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 0 !important; }
.elementor-section.so-el-section > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 0 20px; }
.elementor-section.so-el-section:not(.so-with-form-sec) > .elementor-container > .elementor-column + .elementor-column > .elementor-widget-wrap { padding-left: 36px; }
.elementor-section.so-el-section:not(.so-with-form-sec) > .elementor-container > .elementor-column:first-child:not(:last-child) > .elementor-widget-wrap { padding-right: 36px; }
.elementor-widget-container > .so-full { max-width: 100vw; }

/* Blog cards (Latest posts widget) */
.so-post-card { display: flex; flex-direction: column; }
.so-post-card__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--so-cream); }
.so-post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; display: block; }
.so-post-card:hover .so-post-card__media img { transform: scale(1.05); }
.so-post-card .so-card__body { flex: 1; display: flex; flex-direction: column; }
.so-post-card__date { font-size: 13px; color: var(--so-gold-dark); letter-spacing: .04em; }
.so-post-card h3 { font-size: 23px !important; line-height: 1.25; margin: 6px 0 10px !important; }
.so-post-card h3 a { color: var(--so-ink) !important; text-decoration: none !important; }
.so-post-card p { font-size: 15px; margin: 0 0 16px; }
.so-post-card .so-link { margin-top: auto; }

@media (max-width: 960px) {
	.so-cols, .so-with-form-sec .so-cols { grid-template-columns: 1fr; gap: 40px; }
	.so-with-form-sec .so-col:last-child, .elementor-section.so-with-form-sec > .elementor-container > .elementor-column:last-child { position: static; }
	.so-grid--3.so-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.elementor-section.so-el-section > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 0 16px !important; }
	.elementor-section.so-el-section > .elementor-container > .elementor-column + .elementor-column { margin-top: 36px; }
}
@media (max-width: 680px) {
	.so-grid--3.so-posts { grid-template-columns: 1fr; }
}
