/**
 * ===========================================================================
 * UNIVERSAL CSS + BOOTSTRAP SYSTEM (GOLDEN CIRCLE — PRIMARY DESIGN AUTHORITY)
 * ===========================================================================
 *
 * WHY (Purpose)
 * - style.css is the SINGLE source of primary UI intent (Desktop-first).
 * - media.css exists only to adapt the same intent for other devices.
 * - Prevent random scaling, guessing, or redesign during responsiveness.
 *
 * The goal is CONSISTENCY of intent, not pixel equality across devices.
 *
 *
 * HOW (Implementation & Governance)
 *
 * 1. DESIGN AUTHORITY
 *    - style.css represents the PRIMARY DESIGN reference.
 *    - Primary design is evaluated at:
 *      • 1440px (Large Desktop)
 *
 *    - All sizes defined here (font, spacing, components) represent:
 *      • visual hierarchy
 *      • brand emphasis
 *      • intended density
 *
 *
 * 2. RESPONSIVE EXTENSION (media.css ALIGNMENT)
 *    - media.css does NOT redesign.
 *    - media.css only ADAPTS values from style.css.
 *
 *    Allowed adaptations:
 *    - font-size reduction
 *    - vertical spacing reduction
 *    - visibility refinement (hide secondary elements)
 *
 *    Forbidden adaptations:
 *    - changing layout logic
 *    - redefining grid behavior
 *    - increasing sizes beyond style.css
 *
 *
 * 3. BOOTSTRAP CONTRACT
 *    - Bootstrap handles:
 *      • grid
 *      • breakpoints
 *      • base responsiveness
 *
 *    - Bootstrap classes are READ-ONLY.
 *    - Custom UI must NEVER override Bootstrap behavior.
 *
 *
 * 4. TOKEN & CLASS DISCIPLINE
 *    - Tokens (:root) define VALUES only.
 *    - Custom classes define USAGE of those values.
 *    - All custom classes MUST use "_" prefix.
 *
 *
 * WHAT (Structure & Screen Strategy)
 *
 * - Screen Presets (Industry Standard):
 *   • ≥1440px : Primary Design Reference
 *   • ≥1200px : Desktop
 *   • ≥992px  : Laptop
 *   • ≥768px  : Tablet
 *   • <768px  : Mobile
 *
 * - style.css:
 *   • Defines primary font sizes, spacing, components (desktop intent)
 *
 * - media.css:
 *   • Derives reduced values for tablet & mobile
 *   • Preserves hierarchy defined in style.css
 *
 *
 * ALLOWED
 * - _btn_primary, _card, _section, _section_inner, _text_muted
 * - rem units for spacing & typography
 *
 * FORBIDDEN
 * - Overriding Bootstrap classes
 * - Defining responsive logic in style.css
 * - Redesigning components inside media.css
 * - Color-named or device-named classes
 *
 *
 * GOLDEN RULE (DO NOT BREAK)
 * - style.css defines INTENT (1440px truth).
 * - media.css adapts INTENT, never redefines it.
 * - Bootstrap enforces structure.
 * - Custom classes express identity, not layout authority.
 * ===========================================================================
 */

/* -----------------------
   GLOBAL BASE
   ----------------------- */
@import 'font.css';
@import 'variables.css';

*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html,
body {
	width: 100%;
	overflow-x: clip;
}

body {
	font-family: var(--font_base);
	font-size: var(--text_font_size_base);
	font-weight: var(--text_font_weight_normal);
	line-height: var(--text_line_height_base);
	background-color: var(--ink_white);
	color: var(--theme_text_primary);
}

::-webkit-scrollbar-track {
	background-color: var(--theme_color_primary);
	border-left: 1px solid var(--theme_color_primary);
}

::-webkit-scrollbar {
	width: 7px;
	background-color: var(--theme_color_primary);
}

::-webkit-scrollbar-thumb {
	background: var(--theme_color_accent);
}

::selection {
	color: var(--theme_color_primary);
	background-color: var(--theme_color_accent);
	filter: invert(1);
}

p {
	line-height: var(--text_line_height_base);
	margin-bottom: 0px;
	font-size: var(--text_font_size_base);
	font-weight: var(--text_font_weight_normal);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0;
	font-weight: var(--text_font_weight_bold);
	line-height: var(--text_line_height_base);
	color: var(--theme_text_secondary);
}

img {
	max-width: 100%;
}

a {
	text-decoration: none;
}

a:hover {
	text-decoration: none;
	outline: 0;
}

a:focus {
	text-decoration: none;
	outline: 0;
}

._theme_color_primary {
	color: var(--theme_color_primary);
}

._theme_color_secondary {
	color: var(--_theme_color_secondary);
}

.equal-cols>* {
	flex: 1 1 0%;
}

._section {
	width: 100%;
}

.container,
.container-fluid,
.container-lg,
.container-md,
.container-sm,
.container-xl,
.container-xxl {
	padding-right: 0px;
	padding-left: 0px;
}

._section_inner {
	max-width: 1440px;
	margin: 0 auto;
}

._section_full {
	padding-left: 0;
	padding-right: 0;
}

._section_horizontal_padding {
	padding-left: var(--theme_horizontal_padding);
	padding-right: var(--theme_horizontal_padding);
}

._section_vertical_padding {
	padding-top: var(--theme_vertical_padding);
	padding-bottom: var(--theme_vertical_padding);
}

._section_vertical_bottom_only_padding {
	padding-bottom: var(--theme_vertical_padding);
}

._section_horizontal_no_padding {
	padding-left: 0;
	padding-right: 0;
}

._section_vertical_no_padding {
	padding-top: 0;
	padding-bottom: 0;
}

._section_bg_primary {
	background: var(--theme_bg_primary);
}

._section_bg_ink_white {
	background: var(--ink_white);
}

._text_muted {
	color: var(--theme_text_muted);
}

.brand_logo_img {
	max-width: 186px;
}

._primary_heading {
	font-size: var(--text_font_size_lg);
	font-weight: var(--text_font_weight_medium);
}

/* -----------------------
	color: var(--_theme_color_secondary);
	margin-bottom: 24px;
   HEADER MENU
   ----------------------- */
._header {
	background: var(--theme_bg_primary);
	padding: 48px 0;
	position: relative;
	z-index: var(--z_header);
}

._header_nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
}

._header_nav_left {
	display: flex;
	align-items: center;
	gap: 2rem;
	flex: 1;
}

._header_nav_center {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 1;
}

._header_nav_right {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex: 1;
}

._header_link {
	color: var(--_theme_color_secondary);
	font-family: var(--font_secondary);
	font-size: var(--text_font_size_sm);
	font-weight: var(--text_font_weight_bold);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	transition: opacity var(--theme_transition_fast);
}

._header_link:hover {
	opacity: 0.7;
}

._header_logo {
	color: var(--_theme_color_secondary);
}

._header_menu_toggle {
	background: transparent;
	border: none;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	align-items: center;
	justify-content: center;
	transition: opacity var(--theme_transition_fast);
}

._header_menu_toggle:hover {
	opacity: 0.7;
}

._header_menu_toggle span {
	display: block;
	width: 24px;
	height: 2px;
	background: var(--_theme_color_secondary);
	transition: all var(--theme_transition_fast);
}

/* -----------------------
   MENU OVERLAY
   ----------------------- */
._menu_overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: transparent;
	z-index: var(--z_modal);
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--theme_transition_fast), visibility var(--theme_transition_fast);
	overflow-y: auto;
}

._menu_overlay._menu_overlay_active {
	opacity: 1;
	visibility: visible;
}

._menu_modal {
	background: #b0988d;
	border: 1px solid var(--ink_white);
	max-width: 1440px;
	margin: 16px auto;
	padding: var(--theme_vertical_padding) var(--theme_horizontal_padding);
	position: relative;
}

._menu_modal_header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 3rem;
}

._menu_modal_title {
	color: var(--ink_white);
	font-size: 22px;
	font-weight: var(--text_font_weight_normal);
	text-transform: uppercase;
	margin: 0;
}

._menu_modal_close {
	background: transparent;
	border: none;
	color: var(--ink_white);
	font-size: 2rem;
	cursor: pointer;
	line-height: 1;
	padding: 0;
	width: 2rem;
	height: 2rem;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: opacity var(--theme_transition_fast);
}

._menu_modal_close:hover {
	opacity: 0.7;
}

._menu_modal_content {
	color: var(--ink_white);
}

._menu_modal_columns {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 3rem;
	margin-bottom: 3rem;
}

._menu_column_title {
	color: var(--ink_white);
	font-family: var(--font_secondary);
	font-size: 22px;
	font-weight: var(--text_font_weight_normal);
	text-transform: uppercase;
	letter-spacing: 2px;
	margin-bottom: 1.5rem;
}

._menu_list {
	list-style: none;
	padding: 0;
	margin: 0;
}

._menu_list li {
	margin-bottom: 0.75rem;
}

._menu_link {
	color: var(--ink_white);
	font-size: var(--text_font_size_base);
	font-weight: var(--text_font_weight_normal);
	transition: opacity var(--theme_transition_fast);
}

._menu_link:hover {
	opacity: 0.7;
}

._menu_link_primary {
	font-weight: var(--text_font_weight_semibold);
}

._menu_modal_social {
	text-align: center;
	margin-top: 3rem;
}

._menu_social_title {
	color: var(--ink_white);
	font-size: var(--text_font_size_base);
	margin-bottom: 1rem;
}

._menu_social_icons {
	display: flex;
	justify-content: center;
	gap: 1.5rem;
}

._menu_social_icon {
	color: var(--ink_white);
	font-size: var(--text_font_size_lg);
	text-decoration: none;
	transition: opacity var(--theme_transition_fast);
}

._menu_social_icon:hover {
	opacity: 0.7;
}

._hero_banner_image_wrap {
	position: relative;
	width: 100%;
	height: 100%;
}

._hero_banner_image {
	position: relative;
	width: 100%;
	height: 100%;
	max-height: 688px;
	object-fit: cover;
	object-position: center;
}

._hero_banner_content {
	position: absolute;
	bottom: 60px;
	width: 100%;
}

._hero_banner_content h2 {
	color: var(--ink_white);
	font-size: var(--text_font_size_lg);
	font-weight: var(--text_font_weight_medium);
	letter-spacing: 2px;
	line-height: var(--text_line_height_base);
}

._hero_banner_carousel .owl-dots {
	position: absolute;
	bottom: 0px;
	margin: 20px 0px;
	left: 50%;
	transform: translateX(-50%);
}

._hero_banner_carousel .owl-dots button.owl-dot {
	background: #F6F2EE;
	height: 8.2px;
	width: 8.5px;
	border-radius: 50%;
	margin: 0 5px;
	transition: all 0.3s ease;
}

._hero_banner_carousel .owl-dots button.owl-dot.active {
	background: var(--_theme_color_secondary);
}

._hero_down_arrow_wrap {
	padding: 50px 0px
}

.__about_image_wrap {
	position: relative;
	width: 100%;
}

._about_image {
	position: relative;
	width: 100%;
	max-width: 632px;
	height: 100%;
	max-height: 435px;
	object-fit: cover;
	object-position: center;
}

._btn_primary {
	position: relative;
	font-size: var(--text_font_size_base);
	color: var(--ink_white);
	background-color: var(--theme_color_primary);
	font-weight: var(--text_font_weight_bold);
	line-height: 100%;
	letter-spacing: 4%;
	padding: 30px 30px;
	border-radius: 0px;
	cursor: pointer;
	outline: none;
	border: none;
	font-family: var(--font_secondary);
}

._theme_divider {
	width: 100%;
	height: 2px;
	background-color: var(--theme_border_color);
}

._about_content_col_wrap h2 {
	font-size: var(--text_font_size_base);
	font-weight: var(--text_font_weight_bold);
	color: var(--_theme_color_secondary);
	margin-bottom: var(--text_font_size_base);
	font-family: var(--font_secondary);
	line-height: 139%;
}

._about_content_col_wrap p {
	padding: 1.5px 0px;
	font-size: var(--text_font_size_base);
	font-weight: var(--text_font_weight_normal);
	color: var(--_theme_color_secondary);
	letter-spacing: 0.1px;
}

._gap_64 {
	gap: 4rem;
}

._full_page_mid_banner_wrap {
	position: relative;
	width: 100%;
	height: 100%;
	max-height: 192px;
}

._full_page_mid_banner_image {
	position: relative;
	width: 100%;
	height: 100%;
	max-height: 192px;
	object-fit: cover;
	object-position: center;
}

._full_page_mid_banner_button_wrap {
	display: flex;
	gap: 4rem;
	justify-content: center;
	align-items: center;
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

._full_page_mid_banner_button_wrap button {
	min-width: 231px;
}

._property_cards_wrap {
	display: grid;
	grid-template-columns: 1fr;
	grid-template-columns: repeat(3, 1fr);
	gap: 4rem;
}

._property_cards_wrap ._property_card {
	position: relative;
	width: 100%;
	height: 100%;
}

._property_cards_wrap ._property_card ._property_card_image_wrap {
	position: relative;
}

._property_cards_wrap ._property_card ._property_card_image {
	position: relative;
	width: 100%;
	max-width: 395px;
	height: 100%;
	max-height: 283px;
	object-fit: cover;
	object-position: center;
}

._property_card ._property_card_title {
	margin-top: 20px;
	font-size: var(--text_font_size_base);
	font-weight: var(--text_font_weight_normal);
	color: var(--ink_black);
	margin-bottom: 0px;
	font-family: var(--font_secondary);
	line-height: var(--text_line_height_base);
}

._property_card ._property_card_price {
	font-size: var(--text_font_size_sm);
	font-weight: var(--text_font_weight_normal);
	color: var(--ink_black);
	margin-bottom: 0px;
	font-family: var(--font_secondary);
	line-height: var(--text_line_height_base);
}

._property_card_image_badge {
	position: absolute;
	bottom: 0;
	left: 0;
	font-family: var(--font_secondary);
	background-color: var(--theme_color_primary);
	font-size: var(--text_font_size_base);
	font-weight: var(--text_font_weight_nold);
	color: var(--ink_white);
	padding: 6px 14px;
	border-radius: 0px;
}

._section_title {
	margin-bottom: 64px;
}

._client_review ._client_review_text {
	font-size: var(--text_font_size_base);
	font-weight: var(--text_font_weight_medium);
	color: var(--ink_black);
	margin-bottom: 0px;
	line-height: var(--text_line_height_base);
	text-align: center;
	letter-spacing: 0;
}

._client_review ._client_review_author {
	font-size: 14px;
	font-weight: var(--text_font_weight_medium);
	color: var(--ink_black);
	margin-top: 28px;
	margin-bottom: 0px;
	line-height: var(--text_line_height_base);
	text-align: center;
	letter-spacing: 0.04em;
}

._review_more_button {
	min-width: 285px;
}

footer._section {
	background-color: var(--theme_color_primary);
}

._footer_brand_wrap {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

._footer_brand_item ._footer_brand_image {
	max-height: 48px;
	width: auto;
}
._footer_copyright_wrap
{
	display: flex;
	justify-content: space-between;
	align-items: center;
}
._footer_copyright_text
{
	font-size: var(--text_font_size_sm);
	font-weight: var(--text_font_weight_normal);
	color: var(--ink_white);
	margin-bottom: 0px;
	line-height: var(--text_line_height_xs);
	text-align: left;
	letter-spacing: 0.005em;
	max-width: 700px;
}
._footer_site_by_wrap p
{
	font-size: var(--text_font_size_base);
	font-weight: var(--text_font_weight_normal);
	color: var(--ink_white);
	line-height: var(--text_line_height_xs);
	text-align: right;
}