/*
Theme Name:   Hoexr Child
Description:  Beyond 8+ — Real Estate Consultancy & Investments. Child theme of Hoexr with the Oak & Linen palette, projects, property search and bilingual (EN/AR) support.
Author:       ThemeMascot Team / Beyond 8+
Version:      6.0.1
License:      GNU General Public License v2 or later
Text Domain:  hoexr-child
Template:     hoexr
*/

/* ==========================================================================
   1. Palette A — Oak & Linen
   ========================================================================== */
:root,
html body {
	--b8-linen: #E8DFD2;
	--b8-linen-1: #DAD2C5;
	--b8-linen-2: #CCC4B9;
	--b8-linen-3: #BAB2A8;
	--b8-linen-4: #A29C93;
	--b8-oak: #8A6040;
	--b8-oak-80: #A07E64;
	--b8-oak-60: #B79D88;
	--b8-oak-40: #CDBBAC;
	--b8-oak-20: #E4DAD0;
	--b8-greige: #C9BFB2;
	--b8-greige-1: #BDB4A7;
	--b8-greige-2: #B1A89D;
	--b8-greige-3: #A1998E;
	--b8-greige-4: #8D867D;
	--b8-black: #1A1918;
	--b8-black-80: #474644;
	--b8-black-60: #747270;
	--b8-black-40: #A09F9C;
	--b8-black-20: #CDCBC8;

	/* surfaces for the dark layout (Matte Black lifted with Linen) */
	--b8-bg: var(--b8-black);
	--b8-surface: #211F1E;
	--b8-surface-2: #282624;
	--b8-line: rgba(232, 223, 210, .12);
	--b8-line-strong: rgba(232, 223, 210, .22);
	--b8-text: var(--b8-greige-1);
	--b8-heading: var(--b8-linen);
	--b8-font: "IBM Plex Sans", "IBM Plex Sans Arabic", system-ui, -apple-system, "Segoe UI", sans-serif;
	--b8-radius: 12px;

	/* theme (Hoexr) variables */
	--theme-color1: #8A6040;
	--theme-color1-rgb: 138, 96, 64;
	--theme-color1-lighter: #A07E64;
	--theme-color1-darker: #74503A;
	--theme-color2: #1A1918;
	--theme-color2-rgb: 26, 25, 24;
	--theme-color2-lighter: #474644;
	--theme-color2-darker: #121110;
	--theme-color3: #E8DFD2;
	--theme-color3-rgb: 232, 223, 210;
	--theme-color3-lighter: #F1EBE2;
	--theme-color3-darker: #DAD2C5;
	--theme-color4: #C9BFB2;
	--theme-color4-rgb: 201, 191, 178;
	--theme-color4-lighter: #DAD2C5;
	--theme-color4-darker: #BDB4A7;
	--text-color-bg-theme-color1: #E8DFD2;
	--text-color-bg-theme-color2: #E8DFD2;
	--text-color-bg-theme-color3: #1A1918;
	--text-color-bg-theme-color4: #1A1918;
	--theme-color-white: #211F1E;
	--theme-color-light: #282624;
	--theme-color-gray: #211F1E;
	--theme-light-background: #E8DFD2;
	--theme-light-background-text-color: #1A1918;
	--text-color: #BDB4A7;
	--headings-color: #E8DFD2;
	--link-color: #B79D88;
	--link-hover-color: #E8DFD2;
	--body-font-family: var(--b8-font);
	--heading-font-family: var(--b8-font);
}

html[lang^="ar"],
html[dir="rtl"] {
	--b8-font: "IBM Plex Sans Arabic", "IBM Plex Sans", system-ui, sans-serif;
}

/* Base */
html body,
body.tm-dark-layout,
body.tm-dark-layout #wrapper,
body.tm-dark-layout .main-content,
body.tm-dark-layout .main-content-area {
	background-color: var(--b8-bg);
	color: var(--b8-text);
}

body :is(h1, h2, h3, h4, h5, h6, p, a, span, li, dt, dd, div, label, input, select, button, textarea, blockquote, strong, em, small, td, th, figcaption, cite):not([class*="icon"]):not([class*="fa-"]):not([class*="flaticon"]):not([class*="lnr"]):not(.fa):not(.fas):not(.far):not(.fab) {
	font-family: var(--b8-font) !important;
}

body :is(h1, h2, h3, h4, h5, h6),
body .tm-sc-section-title .title,
body .elementor-heading-title {
	color: var(--b8-heading);
	letter-spacing: -.01em;
}
body :is(h1, h2) { font-weight: 300; }
body :is(h3, h4, h5, h6) { font-weight: 400; }

::selection { background: var(--b8-oak); color: var(--b8-linen); }

a { color: var(--b8-oak-60); }
a:hover, a:focus { color: var(--b8-linen); }

/* Accent: everything the theme painted gold is now Warm Oak */
body .text-theme-colored1,
body .sub-title,
body .tm-sc-section-title .subtitle,
body .tm-sc-section-title .sub-title { color: var(--b8-oak-60) !important; }

body .btn-theme-colored1,
body .bg-theme-colored1,
body .tm-sc-button .btn-theme-colored1 { background-color: var(--b8-oak) !important; border-color: var(--b8-oak) !important; color: var(--b8-linen) !important; }
body .btn-theme-colored1:hover { background-color: var(--b8-oak-80) !important; border-color: var(--b8-oak-80) !important; }

body .btn,
body .tm-sc-button a.btn,
body input[type="submit"],
body button[type="submit"] { border-radius: 8px; letter-spacing: .04em; }

/* Dark sections that the layout painted pure black become Matte Black tones */
.elementor-108155 .elementor-element.elementor-element-d24c1c8:not(.elementor-motion-effects-element-type-background),
.elementor-108155 .elementor-element.elementor-element-a8d26fb:not(.elementor-motion-effects-element-type-background) {
	background-color: var(--b8-surface) !important;
}

/* Counters (home) */
.elementor-108155 .elementor-element.elementor-element-512b048 .tm-sc-funfact { text-align: center; padding: 40px 0 50px; border: 1px solid var(--b8-line-strong); }
.elementor-108155 .elementor-element.elementor-element-512b048 .counter { color: var(--b8-linen); font-size: 128px; line-height: 1em; margin: 0 0 10px; font-weight: 300; }
.elementor-108155 .elementor-element.elementor-element-512b048 .title { color: var(--b8-linen); font-size: 20px; font-weight: 400; line-height: 24px; }

/* ==========================================================================
   2. Header
   ========================================================================== */
body.tm-dark-layout header img.logo-default,
body header .menuzord-brand img,
body .site-brand img { max-height: 58px; width: auto; }
body .header-nav-wrapper .menuzord-brand img { max-height: 54px; }

body.tm-dark-layout header .elementor-100291 a,
body.tm-dark-layout header .elementor-100291 span,
body.tm-dark-layout header .elementor-100291 li,
body.tm-dark-layout header .elementor-40084 .menuzord-menu > li > a,
body.tm-dark-layout header .elementor-40084 .menuzord-menu > li > a span { color: var(--b8-linen) !important; }
body.tm-dark-layout header .elementor-100291 i,
body.tm-dark-layout header .elementor-40084 i { color: var(--b8-oak-60) !important; }
body.tm-dark-layout header .elementor-100291 .tm-sc-list li,
body.tm-dark-layout header .elementor-100291 .tm-sc-list li span { color: var(--b8-greige-1) !important; }
body.tm-dark-layout header .menuzord-menu > li > a:hover,
body.tm-dark-layout header .menuzord-menu > li > a:hover span,
body.tm-dark-layout header .menuzord-menu > li.active > a,
body.tm-dark-layout header .menuzord-menu > li.active > a span { color: var(--b8-oak-60) !important; }
body.tm-dark-layout header .elementor-100291 svg,
body.tm-dark-layout header .elementor-40084 svg { fill: var(--b8-linen) !important; }
body.tm-dark-layout header .hamburger-inner,
body.tm-dark-layout header .hamburger-inner::before,
body.tm-dark-layout header .hamburger-inner::after { background-color: var(--b8-linen) !important; }
body.tm-dark-layout header .elementor-40084 > .e-con,
body.tm-dark-layout header .elementor-40084 > .elementor-element { background-color: var(--b8-black) !important; border-bottom: 1px solid var(--b8-line); }

/* Drop-down menus */
body .menuzord-menu ul.dropdown,
body .menuzord-menu ul.dropdown li ul.dropdown { background: var(--b8-surface) !important; border: 1px solid var(--b8-line); border-radius: 10px; }
body .menuzord-menu ul.dropdown li a { color: var(--b8-greige-1) !important; }
body .menuzord-menu ul.dropdown li:hover > a { color: var(--b8-linen) !important; background: rgba(138, 96, 64, .18) !important; }

/* Side panel */
body .side-panel-wrap,
body .side-panel-container { background: var(--b8-surface) !important; color: var(--b8-text); }

/* ==========================================================================
   3. Shared components
   ========================================================================== */
.b8-ico { width: 1.15em; height: 1.15em; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; flex: none; vertical-align: -.2em; }

.b8-btn,
a.b8-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .55em;
	min-height: 50px; padding: 0 1.6em; border-radius: 8px;
	background: var(--b8-oak); color: var(--b8-linen) !important; border: 1px solid var(--b8-oak);
	font-size: 15px; font-weight: 500; letter-spacing: .02em; text-decoration: none; line-height: 1;
	transition: background .2s, color .2s, border-color .2s;
}
.b8-btn:hover { background: var(--b8-oak-80); border-color: var(--b8-oak-80); color: var(--b8-linen) !important; }
.b8-btn--outline { background: transparent; border-color: var(--b8-oak-60); color: var(--b8-linen) !important; }
.b8-btn--outline:hover { background: var(--b8-oak); border-color: var(--b8-oak); }
.b8-btn--ghost { background: transparent; border-color: var(--b8-line-strong); color: var(--b8-greige-1) !important; }
.b8-btn--ghost:hover { border-color: var(--b8-linen); background: transparent; color: var(--b8-linen) !important; }
.b8-center { text-align: center; margin-top: 40px; }

.b8-tag {
	display: inline-flex; align-items: center; height: 28px; padding: 0 12px; border-radius: 999px;
	background: rgba(26, 25, 24, .72); color: var(--b8-linen); font-size: 12px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase;
	backdrop-filter: blur(6px);
}
.b8-tag--solid { background: var(--b8-oak); }

.b8-eyebrow { color: var(--b8-oak-60); font-size: 13px; letter-spacing: .28em; text-transform: uppercase; margin: 0 0 12px; }
.b8-head { text-align: center; margin: 0 auto 48px; max-width: 720px; }
.b8-head__title { font-size: clamp(30px, 4vw, 46px); margin: 0; }

.b8-price { color: var(--b8-linen); }
.b8-price__prefix { display: block; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--b8-greige-3); margin-bottom: 4px; }
.b8-price__amount { font-size: 20px; font-weight: 500; white-space: nowrap; }
.b8-price__cur { font-size: .7em; color: var(--b8-oak-60); letter-spacing: .06em; }
.b8-price__suffix { font-size: 13px; color: var(--b8-greige-3); }

/* Select wrapper */
.b8-select { position: relative; }
.b8-select select { appearance: none; -webkit-appearance: none; width: 100%; padding-inline-end: 42px !important; cursor: pointer; }
.b8-select .b8-ico { position: absolute; inset-inline-end: 16px; top: 50%; transform: translateY(-50%); pointer-events: none; width: 18px; height: 18px; stroke-width: 2; }

/* ==========================================================================
   4. Property search (hero + archive)
   ========================================================================== */
.b8-search { position: relative; z-index: 3; width: 100%; color: var(--b8-black); }
.b8-search__tabs { display: flex; justify-content: center; gap: 10px; }
.b8-search__tab { margin: 0 !important; cursor: pointer; }
.b8-search__tab input { position: absolute; opacity: 0; pointer-events: none; }
.b8-search__tab span {
	display: inline-flex; align-items: center; justify-content: center; min-width: 168px; height: 58px; padding: 0 28px;
	border-radius: 12px 12px 0 0; background: var(--b8-linen-4); color: var(--b8-linen);
	font-size: 19px; font-weight: 500; transition: background .2s, color .2s;
}
.b8-search__tab input:checked + span { background: var(--b8-linen); color: var(--b8-black); }
.b8-search__tab input:focus-visible + span { outline: 2px solid var(--b8-oak); outline-offset: 2px; }
.b8-search__panel { background: var(--b8-linen); border-radius: 18px; padding: 28px 32px; box-shadow: 0 24px 60px rgba(0, 0, 0, .35); }
.b8-search__row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) auto; gap: 22px; align-items: end; }
.b8-search__row--adv { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--b8-linen-2); }
.b8-search__row--adv[hidden] { display: none; }
.b8-search__field { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.b8-search__field > label { margin: 0 !important; color: var(--b8-black) !important; font-size: 17px; font-weight: 600; line-height: 1.2; }
.b8-search input[type="text"],
.b8-search input[type="number"],
.b8-search select {
	width: 100% !important; height: 58px !important; margin: 0 !important; padding: 0 20px !important;
	border: 1px solid var(--b8-linen-2) !important; border-radius: 10px !important;
	background: rgba(255, 255, 255, .55) !important; color: var(--b8-black) !important;
	font-size: 17px !important; line-height: 58px !important; box-shadow: none !important;
}
.b8-search input::placeholder { color: var(--b8-black-60) !important; opacity: 1; }
.b8-search input:focus,
.b8-search select:focus { outline: none; border-color: var(--b8-oak) !important; background: #fff !important; }
.b8-search .b8-select .b8-ico { color: var(--b8-black); }
.b8-search__actions { display: flex; gap: 14px; }
.b8-search__toggle,
.b8-search__submit { height: 58px; border-radius: 10px !important; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 12px; margin: 0 !important; transition: background .2s, color .2s; }
.b8-search__toggle { width: 58px; padding: 0 !important; background: transparent !important; border: 2px solid var(--b8-black) !important; color: var(--b8-black) !important; }
.b8-search__toggle[aria-expanded="true"],
.b8-search__toggle:hover { background: var(--b8-black) !important; color: var(--b8-linen) !important; }
.b8-search__toggle .b8-ico { width: 26px; height: 26px; stroke-width: 2; }
.b8-search__submit { min-width: 150px; padding: 0 28px !important; background: var(--b8-black) !important; border: 0 !important; color: var(--b8-linen) !important; font-size: 18px !important; font-weight: 600 !important; }
.b8-search__submit:hover { background: var(--b8-oak) !important; }
.b8-search__submit .b8-ico { width: 21px; height: 21px; stroke-width: 2.4; }

/* Archive version sits on the dark hero */
.b8-search--archive { margin-top: 36px; }

/* Home hero: the search replaces the booking bar */
.elementor-108155 .elementor-widget-shortcode .b8-search { margin-top: 10px; }

@media (max-width: 1100px) {
	.b8-search__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.b8-search__actions { grid-column: 1 / -1; }
	.b8-search__submit { flex: 1; }
	.b8-search__row--adv { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.b8-search__panel { padding: 20px 18px; border-radius: 14px; }
	.b8-search__row,
	.b8-search__row--adv { grid-template-columns: 1fr; gap: 16px; }
	.b8-search__tab span { min-width: 0; height: 50px; padding: 0 22px; font-size: 16px; }
	.b8-search__field > label { font-size: 15px; }
}

/* ==========================================================================
   5. Project cards & grids
   ========================================================================== */
.b8-grid { display: grid; gap: 30px; }
.b8-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.b8-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.b8-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1024px) { .b8-grid--3, .b8-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .b8-grid--2, .b8-grid--3, .b8-grid--4 { grid-template-columns: 1fr; } }

.b8-card { display: flex; flex-direction: column; background: var(--b8-surface); border: 1px solid var(--b8-line); border-radius: var(--b8-radius); overflow: hidden; transition: transform .25s, border-color .25s; }
.b8-card:hover { transform: translateY(-4px); border-color: rgba(138, 96, 64, .6); }
.b8-card__media { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--b8-surface-2); }
.b8-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.b8-card:hover .b8-card__media img { transform: scale(1.04); }
.b8-card__tags { position: absolute; top: 16px; inset-inline-start: 16px; display: flex; flex-wrap: wrap; gap: 8px; }
.b8-card__body { display: flex; flex-direction: column; flex: 1; padding: 22px 24px 24px; }
.b8-card__loc { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; color: var(--b8-oak-60); font-size: 13px; letter-spacing: .04em; }
.b8-card__title { margin: 0 0 16px; font-size: 22px; line-height: 1.3; font-weight: 400; }
.b8-card__title a { color: var(--b8-linen); text-decoration: none; }
.b8-card__title a:hover { color: var(--b8-oak-60); }
.b8-card__meta { display: flex; flex-wrap: wrap; gap: 8px 18px; list-style: none; margin: 0 0 20px; padding: 0; color: var(--b8-greige-2); font-size: 14px; }
.b8-card__meta li { display: inline-flex; align-items: center; gap: 7px; margin: 0; }
.b8-card__foot { margin-top: auto; padding-top: 18px; border-top: 1px solid var(--b8-line); display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; }
.b8-card__more { display: inline-flex; align-items: center; gap: 6px; color: var(--b8-linen) !important; font-size: 14px; font-weight: 500; text-decoration: none; white-space: nowrap; }
.b8-card__more:hover { color: var(--b8-oak-60) !important; }
html[dir="rtl"] .b8-ico--arrow { transform: scaleX(-1); }

/* ==========================================================================
   6. Templates (single project / archive)
   ========================================================================== */
body.b8-template .page-title-wrapper,
body.b8-template section.page-title,
body.b8-template .tm-page-title { display: none !important; }

.b8-page { background: var(--b8-bg); }
.b8-section { padding: 90px 0; }
.b8-section--alt { background: var(--b8-surface); border-top: 1px solid var(--b8-line); }

.b8-hero {
	position: relative; padding: 170px 0 70px; color: var(--b8-linen);
	background: linear-gradient(180deg, rgba(26, 25, 24, .55) 0%, rgba(26, 25, 24, .82) 70%, var(--b8-bg) 100%), var(--b8-hero, none) center / cover no-repeat, var(--b8-surface);
}
.b8-hero--archive { padding-bottom: 60px; background: radial-gradient(1200px 400px at 50% 0%, rgba(138, 96, 64, .22), transparent 70%), var(--b8-bg); }
.b8-crumbs { display: flex; flex-wrap: wrap; gap: 10px; font-size: 13px; letter-spacing: .06em; color: var(--b8-greige-3); margin-bottom: 26px; }
.b8-crumbs a { color: var(--b8-greige-1); text-decoration: none; }
.b8-crumbs a:hover { color: var(--b8-oak-60); }
.b8-hero__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.b8-hero__title { font-size: clamp(36px, 5.2vw, 68px); line-height: 1.08; margin: 0 0 16px; color: var(--b8-linen); font-weight: 300; }
.b8-hero__desc { max-width: 680px; color: var(--b8-greige-1); font-size: 17px; margin: 0; }
.b8-hero--archive .b8-hero__title,
.b8-hero--archive .b8-hero__desc,
.b8-hero--archive .b8-crumbs { text-align: center; justify-content: center; margin-inline: auto; }
.b8-hero__loc { display: flex; align-items: center; gap: 8px; color: var(--b8-greige-1); margin: 0 0 22px; font-size: 16px; }
.b8-hero__price .b8-price__amount { font-size: 30px; font-weight: 400; }

.b8-layout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 48px; align-items: start; }
.b8-layout__side { position: sticky; top: 120px; display: flex; flex-direction: column; gap: 24px; }
@media (max-width: 1024px) { .b8-layout { grid-template-columns: 1fr; } .b8-layout__side { position: static; } }

.b8-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0 0 40px; padding: 0; list-style: none; background: var(--b8-line); border: 1px solid var(--b8-line); border-radius: var(--b8-radius); overflow: hidden; }
.b8-facts li { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 22px 24px; background: var(--b8-surface); }
.b8-facts .b8-ico { width: 24px; height: 24px; color: var(--b8-oak-60); margin-bottom: 4px; }
.b8-facts__label { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--b8-greige-3); }
.b8-facts strong { color: var(--b8-linen); font-size: 18px; font-weight: 500; }
@media (max-width: 640px) { .b8-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.b8-gallery { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-auto-rows: 170px; gap: 10px; margin: 0 0 48px; }
.b8-gallery__item { display: block; overflow: hidden; border-radius: 10px; background: var(--b8-surface-2); }
.b8-gallery__item.is-main { grid-row: span 2; }
.b8-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.b8-gallery__item:hover img { transform: scale(1.05); }
@media (max-width: 640px) { .b8-gallery { grid-template-columns: 1fr 1fr; grid-auto-rows: 120px; } .b8-gallery__item.is-main { grid-column: span 2; } }

.b8-block { margin: 0 0 46px; }
.b8-block__title { font-size: 28px; margin: 0 0 20px; padding-bottom: 14px; border-bottom: 1px solid var(--b8-line); }
.b8-prose { color: var(--b8-text); font-size: 17px; line-height: 1.85; }
.b8-prose p { margin: 0 0 1em; }
.b8-features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 30px; list-style: none; margin: 0; padding: 0; }
.b8-features li { display: flex; gap: 10px; align-items: flex-start; margin: 0; color: var(--b8-greige-1); }
.b8-features .b8-ico { color: var(--b8-oak-60); margin-top: .25em; }
@media (max-width: 640px) { .b8-features { grid-template-columns: 1fr; } }
.b8-plan { margin: 0; padding: 20px 24px; border-inline-start: 3px solid var(--b8-oak); background: var(--b8-surface); border-radius: 0 10px 10px 0; color: var(--b8-linen); font-size: 18px; }
html[dir="rtl"] .b8-plan { border-radius: 10px 0 0 10px; }
.b8-embed { position: relative; aspect-ratio: 16 / 9; border-radius: var(--b8-radius); overflow: hidden; background: var(--b8-surface); }
.b8-embed--map { aspect-ratio: 16 / 8; }
.b8-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.b8-embed--map iframe { filter: grayscale(.4) contrast(1.05); }

.b8-panel { background: var(--b8-surface); border: 1px solid var(--b8-line); border-radius: 16px; padding: 30px; }
.b8-panel__eyebrow { margin: 0 0 6px; color: var(--b8-oak-60); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; }
.b8-panel__price .b8-price__amount { font-size: 28px; font-weight: 400; }
.b8-panel__list { margin: 22px 0; padding: 0; }
.b8-panel__list > div { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px dashed var(--b8-line); }
.b8-panel__list dt { color: var(--b8-greige-3); font-weight: 400; font-size: 14px; }
.b8-panel__list dd { margin: 0; color: var(--b8-linen); text-align: end; font-size: 14px; }
.b8-panel__actions { display: flex; flex-direction: column; gap: 10px; }
.b8-panel__actions .b8-btn { width: 100%; }
.b8-panel__title { margin: 0 0 8px; font-size: 22px; }
.b8-panel__text { margin: 0 0 18px; color: var(--b8-greige-2); font-size: 14px; }
.b8-panel .wpcf7 input:not([type="submit"]):not([type="checkbox"]),
.b8-panel .wpcf7 textarea { width: 100%; background: var(--b8-bg) !important; border: 1px solid var(--b8-line-strong) !important; border-radius: 8px !important; color: var(--b8-linen) !important; padding: 12px 14px !important; margin-bottom: 4px; }
.b8-panel .wpcf7 textarea { height: 110px; }
.b8-panel .wpcf7 input[type="submit"] { width: 100%; height: 50px; background: var(--b8-oak) !important; border: 0 !important; color: var(--b8-linen) !important; border-radius: 8px !important; cursor: pointer; }
.b8-panel .wpcf7 input[type="submit"]:hover { background: var(--b8-oak-80) !important; }
.b8-panel .wpcf7 p { margin: 0 0 12px; }

.b8-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 30px; }
.b8-toolbar__count { margin: 0; color: var(--b8-greige-2); }
.b8-toolbar__count strong { color: var(--b8-linen); }
.b8-toolbar__sort { display: flex; align-items: center; gap: 12px; margin: 0; }
.b8-toolbar__sort label { margin: 0; color: var(--b8-greige-3); font-size: 14px; }
.b8-toolbar__sort select { height: 46px; min-width: 210px; padding: 0 16px; background: var(--b8-surface) !important; color: var(--b8-linen) !important; border: 1px solid var(--b8-line-strong) !important; border-radius: 8px; }
.b8-pagination { display: flex; justify-content: center; gap: 8px; margin-top: 50px; }
.b8-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 12px; border: 1px solid var(--b8-line-strong); border-radius: 8px; color: var(--b8-greige-1); text-decoration: none; }
.b8-pagination .page-numbers.current,
.b8-pagination .page-numbers:hover { background: var(--b8-oak); border-color: var(--b8-oak); color: var(--b8-linen); }
.b8-empty { text-align: center; padding: 70px 20px; border: 1px dashed var(--b8-line-strong); border-radius: 16px; }
.b8-empty h2 { font-size: 28px; }

/* ==========================================================================
   7. Theme widgets restyled for the palette
   ========================================================================== */
body .tm-sc-section-title .title { font-weight: 300; }
body .tm-sc-blog article,
body .blog-item,
body .tm-sc-service-block .service-item,
body .tm-sc-pricing-block { border-color: var(--b8-line) !important; }
body .footer,
body footer#footer { background-color: var(--b8-black) !important; border-top: 1px solid var(--b8-line); }
body footer#footer,
body footer#footer p,
body footer#footer li,
body footer#footer a { color: var(--b8-greige-1); }
body footer#footer a:hover { color: var(--b8-oak-60); }
body .scrollToTop,
body #scrollToTop { background: var(--b8-oak) !important; }
body .preloader-bg,
body #preloader { background: var(--b8-black) !important; }

/* Language switcher (TranslatePress) */
.trp-language-switcher-container a,
.menu-item-object-language_switcher a { color: var(--b8-linen) !important; }
.trp-ls-shortcode-current-language,
.trp-ls-shortcode-language { background: var(--b8-surface) !important; border-color: var(--b8-line-strong) !important; }

/* ==========================================================================
   8. RTL (Arabic)
   ========================================================================== */
html[dir="rtl"] body { text-align: right; }
html[dir="rtl"] .b8-card__more .b8-ico,
html[dir="rtl"] .b8-btn .b8-ico--arrow { transform: scaleX(-1); }
html[dir="rtl"] .b8-search__field > label,
html[dir="rtl"] .b8-search input,
html[dir="rtl"] .b8-search select { text-align: right; }
html[dir="rtl"] .b8-price__amount,
html[dir="rtl"] [dir="ltr"] { unicode-bidi: isolate; }

/* ==========================================================================
   9. Fixes: theme "nice-select" dropdowns, forms, homepage details
   ========================================================================== */
.b8-select .nice-select ~ .b8-ico { display: none; }
.b8-search .nice-select {
	float: none; display: flex; align-items: center; width: 100%; height: 58px; line-height: 58px; margin: 0;
	padding: 0 44px 0 20px; border: 1px solid var(--b8-linen-2); border-radius: 10px;
	background: rgba(255, 255, 255, .55); color: var(--b8-black); font-size: 17px;
}
html[dir="rtl"] .b8-search .nice-select { padding: 0 20px 0 44px; text-align: right; }
.b8-search .nice-select .current { color: var(--b8-black); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.b8-search .nice-select::after { border-color: var(--b8-black); width: 8px; height: 8px; right: 20px; margin-top: -6px; }
html[dir="rtl"] .b8-search .nice-select::after { right: auto; left: 20px; }
.b8-search .nice-select.open,
.b8-search .nice-select:focus { border-color: var(--b8-oak); background: #fff; }
.b8-search .nice-select .list,
.b8-toolbar .nice-select .list { width: 100%; max-height: 290px; overflow-y: auto; margin-top: 6px; border-radius: 10px; background: #fff; box-shadow: 0 16px 40px rgba(0, 0, 0, .25); z-index: 20; }
.b8-search .nice-select .option { color: var(--b8-black); font-size: 16px; min-height: 42px; line-height: 42px; }
.b8-search .nice-select .option:hover,
.b8-search .nice-select .option.focus,
.b8-search .nice-select .option.selected.focus { background: var(--b8-linen); color: var(--b8-black); }
.b8-toolbar .nice-select { float: none; display: flex; align-items: center; height: 46px; line-height: 46px; min-width: 210px; padding: 0 40px 0 16px; background: var(--b8-surface); border: 1px solid var(--b8-line-strong); border-radius: 8px; color: var(--b8-linen); }
.b8-toolbar .nice-select::after { border-color: var(--b8-linen); }
.b8-toolbar .nice-select .option { color: var(--b8-black); }

/* Contact form 7 on dark sections */
.b8-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
@media (max-width: 640px) { .b8-form-grid { grid-template-columns: 1fr; } }
body .wpcf7 input[type="text"],
body .wpcf7 input[type="email"],
body .wpcf7 input[type="tel"],
body .wpcf7 select,
body .wpcf7 textarea,
body .wpcf7 .nice-select { background: var(--b8-surface) !important; border: 1px solid var(--b8-line-strong) !important; color: var(--b8-linen) !important; border-radius: 8px !important; }
body .wpcf7 input::placeholder,
body .wpcf7 textarea::placeholder { color: var(--b8-greige-3) !important; }
body .wpcf7 input[type="submit"] { background: var(--b8-oak) !important; border-color: var(--b8-oak) !important; color: var(--b8-linen) !important; border-radius: 8px !important; }
body .wpcf7 input[type="submit"]:hover { background: var(--b8-oak-80) !important; }

/* Home: overlay on the bright towers band, counters and funfact */
.elementor-108155 .elementor-element.elementor-element-8c0e371 { box-shadow: inset 0 0 0 4000px rgba(26, 25, 24, .58); }
.elementor-108155 .elementor-element.elementor-element-512b048 .tm-sc-funfact,
.elementor-108155 .elementor-element.elementor-element-512b048 .tm-sc-funfact * { color: var(--b8-linen) !important; }
.elementor-108155 .elementor-element.elementor-element-512b048 .tm-sc-funfact { background: rgba(26, 25, 24, .55); backdrop-filter: blur(4px); }
body .tm-sc-counter-block .counter,
body .tm-sc-counter-block .counter * { color: rgba(232, 223, 210, .14) !important; }
body .tm-sc-counter-block .title { color: var(--b8-linen) !important; }

/* Testimonial avatars now use the brand mark */
body .tm-sc-testimonial .testimonial-image img,
body .tm-sc-testimonial img[src*="beyond-site-icon"] { background: var(--b8-black); border: 1px solid var(--b8-line-strong); }

/* ==========================================================================
   10. Round 2 fixes
   ========================================================================== */
/* Services cards (home): tall portrait images like the original theme */
.elementor-108155 .elementor-element.elementor-element-45b8469 img { width: 100% !important; height: auto !important; aspect-ratio: 3 / 4; object-fit: cover; }
/* About block: same portrait ratio as the demo, hide the white dotted shape */
.elementor-element-e016bd9 img[src*="img-item-ser-h7"] { width: 459px; max-width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; }
body.tm-dark-layout img[src*="shape-1.png"],
body.tm-dark-layout img[src*="dots"] { display: none !important; }

/* Forms on a dark card */
.e-con:has(> .elementor-widget-shortcode .wpcf7),
.e-con:has(> .elementor-widget-contact-form-7),
.e-con:has(> .elementor-widget-tm-ele-contact-form-7) { background-color: var(--b8-surface) !important; border: 1px solid var(--b8-line); }
.b8-form-grid > p,
.wpcf7 form > p { min-width: 0; margin: 0 0 16px !important; }
.wpcf7 .wpcf7-form-control-wrap { display: block; width: 100%; }
body .wpcf7 input[type="text"],
body .wpcf7 input[type="email"],
body .wpcf7 input[type="tel"],
body .wpcf7 textarea,
body .wpcf7 .nice-select { width: 100% !important; max-width: 100% !important; box-sizing: border-box; height: auto; min-height: 54px; padding: 14px 16px !important; font-size: 16px; line-height: 1.4; margin: 0 !important; }
body .wpcf7 textarea { min-height: 150px; height: 150px; resize: vertical; }
body .wpcf7 .nice-select { display: flex; align-items: center; float: none; line-height: 1.4; }
body .wpcf7 .nice-select .current { color: var(--b8-linen); }
body .wpcf7 .nice-select .list { width: 100%; background: var(--b8-surface-2); border: 1px solid var(--b8-line-strong); }
body .wpcf7 .nice-select .option { color: var(--b8-greige-1); }
body .wpcf7 .nice-select .option:hover,
body .wpcf7 .nice-select .option.selected { background: rgba(138, 96, 64, .25); color: var(--b8-linen); }
body .wpcf7 input[type="submit"] { min-height: 54px; padding: 0 32px !important; border: 0 !important; box-shadow: none !important; font-weight: 600; cursor: pointer; }

/* No shop on this site: hide every cart / mini-cart */
.top-nav-mini-cart-icon-container,
.elementor-widget-tm-ele-header-cart,
.mini-cart-icon,
.woocommerce-mini-cart,
a.cart-contents { display: none !important; }
body .wpcf7 .nice-select .current,
body .wpcf7 .nice-select span.current { color: var(--b8-linen) !important; }
body .wpcf7 .nice-select::after { border-color: var(--b8-greige-1) !important; }
.elementor-3484 .elementor-element.elementor-element-9c1553a { box-shadow: inset 0 0 0 4000px rgba(26, 25, 24, .62); }
