/* InvestHub V7 — shared foundation */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ih7-paper-2); }
body {
    margin: 0;
    background: var(--ih7-paper-2);
    color: var(--ih7-body);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    font-size: 15px;
    line-height: 1.68;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
html[lang="ar"] body,
html[lang="ar"] button,
html[lang="ar"] input,
html[lang="ar"] select,
html[lang="ar"] textarea { font-family: "Segoe UI", Tahoma, Arial, system-ui, sans-serif; }
body :is(h1,h2,h3,h4,h5,h6) {
    margin: 0;
    color: var(--ih7-text);
    font-weight: 690;
    line-height: 1.08;
    letter-spacing: -.04em;
}
html[lang="ar"] body :is(h1,h2,h3,h4,h5,h6) { letter-spacing: 0; line-height: 1.28; }
p { margin-block: 0 1rem; }
a { color: inherit; text-decoration: none; }
a:hover { color: inherit; }
img { display: block; max-width: 100%; }
button,input,select,textarea { font: inherit; }
.container { width: min(calc(100% - 48px), var(--ih7-max)); max-width: none; margin-inline: auto; padding-inline: 0; }
::selection { background: var(--ih7-gold-soft); color: var(--ih7-ink); }
:focus-visible { outline: 3px solid rgba(15,122,102,.22); outline-offset: 3px; }
.skip-link { position: fixed; inset-block-start: 12px; inset-inline-start: 12px; z-index: 9999; transform: translateY(-160%); padding: .65rem 1rem; border-radius: 10px; background: var(--ih7-ink); color: #fff; }
.skip-link:focus { transform: none; }

.btn {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    padding: .72rem 1.25rem;
    border-radius: 8px;
    font-size: .84rem;
    font-weight: 780;
    box-shadow: none !important;
    transition: transform .2s var(--ih7-ease), background .2s ease, border-color .2s ease, color .2s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn-lg { min-height: 56px; padding-inline: 1.65rem; font-size: .92rem; }
.btn-sm { min-height: 36px; padding: .4rem .8rem; font-size: .75rem; border-radius: 7px; }
.btn-primary {
    --bs-btn-bg: var(--ih7-green-700); --bs-btn-border-color: var(--ih7-green-700);
    --bs-btn-hover-bg: var(--ih7-green-800); --bs-btn-hover-border-color: var(--ih7-green-800);
    --bs-btn-active-bg: var(--ih7-green-900); --bs-btn-active-border-color: var(--ih7-green-900);
    --bs-btn-disabled-bg: #97bab0; --bs-btn-disabled-border-color: #97bab0;
}
.btn-dark { --bs-btn-bg: var(--ih7-ink); --bs-btn-border-color: var(--ih7-ink); }
.btn-light { --bs-btn-color: var(--ih7-ink); --bs-btn-bg: #fff; --bs-btn-border-color: #fff; }
.btn-outline-primary {
    --bs-btn-color: var(--ih7-green-800); --bs-btn-border-color: #afc2ba;
    --bs-btn-hover-bg: var(--ih7-green-900); --bs-btn-hover-border-color: var(--ih7-green-900); --bs-btn-hover-color: #fff;
}
.btn-outline-danger { --bs-btn-color: var(--ih7-danger); --bs-btn-border-color: #e6b9bc; --bs-btn-hover-bg: var(--ih7-danger); --bs-btn-hover-border-color: var(--ih7-danger); }
.btn-quiet { min-height: 40px; padding: .45rem .7rem; border-color: transparent; background: transparent; color: var(--ih7-text); }
.btn-quiet:hover { background: rgba(11,31,27,.05); border-color: transparent; }

.form-control,.form-select {
    min-height: 51px;
    border: 1px solid var(--ih7-line-strong);
    border-radius: 8px;
    background-color: #fff;
    color: var(--ih7-text);
    box-shadow: none;
    font-size: .86rem;
}
.form-control::placeholder { color: #98a39e; }
.form-control:focus,.form-select:focus { border-color: var(--ih7-green-600); box-shadow: 0 0 0 4px rgba(15,122,102,.08); }
textarea.form-control { min-height: 132px; resize: vertical; }
.form-label { margin-bottom: .45rem; color: var(--ih7-text); font-size: .75rem; font-weight: 780; }
.form-text { color: var(--ih7-muted); font-size: .73rem; }

/* Brand system */
.ih-brand { display: inline-flex; align-items: center; gap: .82rem; min-width: max-content; }
.ih-brand__mark { position: relative; width: 48px; height: 48px; display: grid; grid-template-columns: repeat(3,1fr); align-items: end; gap: 3px; padding: 10px 9px; border: 1px solid rgba(255,255,255,.24); border-radius: 4px 16px 4px 4px; background: rgba(255,255,255,.08); overflow: hidden; }
.ih-brand__mark span { display: block; width: 100%; border-radius: 1px; background: currentColor; color: #fff; }
.ih-brand__mark span:nth-child(1) { height: 45%; opacity: .72; }
.ih-brand__mark span:nth-child(2) { height: 72%; }
.ih-brand__mark span:nth-child(3) { height: 100%; background: var(--ih7-gold); }
.ih-brand__copy { display: flex; flex-direction: column; line-height: 1.15; }
.ih-brand__copy strong { color: inherit; font-size: 1.03rem; font-weight: 830; letter-spacing: -.025em; }
.ih-brand__copy small { margin-top: .22rem; color: inherit; opacity: .64; font-size: .57rem; font-weight: 650; }
html[lang="ar"] .ih-brand__copy strong { letter-spacing: 0; }

.ih-eyebrow {
    display: inline-flex; align-items: center; gap: .68rem; color: var(--ih7-green-700);
    font-size: .68rem; font-weight: 840; letter-spacing: .12em; text-transform: uppercase;
}
html[lang="ar"] .ih-eyebrow { letter-spacing: 0; }
.ih-eyebrow > span { width: 30px; height: 2px; background: currentColor; }
.ih-eyebrow--light { color: #d9e9e3; }
.ih-text-action { display: inline-flex; align-items: center; gap: .55rem; color: var(--ih7-green-800); font-size: .84rem; font-weight: 800; }
.ih-text-action i { transition: transform .2s ease; }
.ih-text-action:hover i { transform: translate(3px,-3px); }
[dir="rtl"] .ih-text-action:hover i { transform: translate(-3px,-3px); }
.ih-text-action--light { color: #fff; }
.ih-icon-button { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid var(--ih7-line); border-radius: 9px; background: transparent; color: inherit; }
.ih-pill { display: inline-flex; align-items: center; gap: .35rem; min-height: 29px; padding: .3rem .64rem; border: 1px solid var(--ih7-line); border-radius: 999px; background: #fff; color: var(--ih7-text); font-size: .66rem; font-weight: 790; white-space: nowrap; }
.ih-pill--reviewed { border-color: #acd3c6; background: #eff8f4; color: var(--ih7-success); }
.ih-pill--match { border-color: #d8bf95; background: #fbf5e9; color: #7b5729; }
.ih-muted { color: var(--ih7-muted); }

.ih-empty { min-height: 240px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .8rem; padding: 2rem; border: 1px dashed var(--ih7-line-strong); border-radius: 18px; background: #fff; text-align: center; }
.ih-empty > i { font-size: 1.7rem; color: var(--ih7-green-700); }
.ih-empty h3 { max-width: 38rem; font-size: 1.3rem; }
.ih-empty p { max-width: 42rem; margin: 0; color: var(--ih7-muted); }
.ih-empty--inline { min-height: 116px; padding: 1.25rem; }

.ih-property-fallback { width: 100%; height: 100%; min-height: 220px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .8rem; background: radial-gradient(circle at 18% 16%, rgba(198,161,91,.28), transparent 28%), linear-gradient(140deg, #07352f 0%, #0a584a 68%, #0e7a66 100%); color: rgba(255,255,255,.94); }
.ih-property-fallback i { font-size: 2.2rem; }
.ih-property-fallback small,.ih-property-fallback span { font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
html[lang="ar"] .ih-property-fallback small,html[lang="ar"] .ih-property-fallback span { letter-spacing: 0; }

.ih-toast { display: flex; align-items: center; gap: .7rem; margin-bottom: 1rem; padding: .9rem 1rem; border: 1px solid #bbdbd0; border-radius: 10px; background: #eff8f4; color: #245e4e; font-size: .76rem; }
.ih-toast--danger { border-color: #ecc3c6; background: #fff3f3; color: #91363d; }
.alert { border-radius: 10px; }
.badge { font-weight: 760; }
.pagination { gap: .25rem; }
.page-link { min-width: 38px; min-height: 38px; display: grid; place-items: center; border-radius: 7px !important; color: var(--ih7-green-800); }
.active > .page-link { background: var(--ih7-green-800); border-color: var(--ih7-green-800); }

/* V7.2 shared micro-components used across public/auth/app layouts. */
.language-dropdown { position: relative; }
.language-dropdown__toggle { display: inline-flex; align-items: center; gap: .45rem; white-space: nowrap; }
.language-dropdown__menu {
    min-width: 11rem;
    padding: .4rem;
    border: 1px solid var(--ih7-line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 18px 54px rgba(0,42,64,.14);
}
.language-dropdown__item {
    min-height: 38px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    padding: .52rem .65rem;
    border-radius: 8px;
    color: var(--ih7-body);
    font-size: .75rem;
    font-weight: 680;
}
.language-dropdown__item:hover,
.language-dropdown__item:focus { background: var(--ih7-cyan-wash); color: var(--ih7-green-900); }
.language-dropdown__item.active,
.language-dropdown__item:active { background: var(--ih7-green-950); color: #fff; }

.section-heading { max-width: 52rem; }
.section-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    color: var(--ih7-green-700);
    font-size: .68rem;
    font-weight: 840;
    letter-spacing: .1em;
    text-transform: uppercase;
}
html[lang="ar"] .section-eyebrow { letter-spacing: 0; }
.section-eyebrow::before { width: 28px; height: 2px; background: currentColor; content: ""; }
.section-title { margin: .7rem 0 0; font-size: clamp(1.8rem,3.5vw,3rem); line-height: 1.15; }
.section-description { margin: .7rem 0 0; color: var(--ih7-body); font-size: .86rem; line-height: 1.75; }
