/*
 * Theme: default — «العصريّ الفاخر» (Luxe Modern)
 * Faithful to the design mockup: warm-charcoal dark surfaces, muted brass/gold accent,
 * ivory/paper neutrals, editorial spacing.
 *
 * COLOUR: the template's signature palette is delivered by setting the per-tenant brand tokens
 * (via «apply template»): --primary-color = charcoal, --secondary-color = warm charcoal, --accent-color
 * = brass. The neutral paper/ivory surfaces below are STATIC theme identity. We reference the tokens so
 * a firm can still re-tune, but they default to the brass/charcoal signature on apply.
 */

:root {
    --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem; --space-5:1.5rem; --space-6:2.5rem; --space-7:4rem;
    --fs-h1: clamp(2.5rem, 1.5rem + 3.6vw, 4.25rem);
    --fs-h1-page: clamp(2.125rem, 1.5rem + 2.6vw, 3.625rem);
    --fs-h2: clamp(1.7rem, 1.25rem + 2.3vw, 2.875rem);
    --fs-body: 1.0625rem; --fs-lead: 1.2rem; --lh-body: 1.85;
    --fw-medium:500; --fw-semibold:600; --fw-bold:700; --fw-black:900;
    --font-stack: var(--font-family), 'Tajawal', 'Cairo', 'Segoe UI', Tahoma, Arial, sans-serif;
    --font-heading: 'Cairo', var(--font-family), 'Segoe UI', Tahoma, sans-serif;

    /* Luxe neutral surfaces (static = theme identity) */
    --lx-paper:#fffdf9; --lx-ivory:#f4f0e8; --lx-ivory-2:#eae3d6;
    --lx-ink:#1c1b18; --lx-ink-2:#2c2a24; --lx-ink-3:#39352c; --lx-footer:#16150f;
    --lx-muted:#6f685c; --lx-line:#d9d1c2; --lx-dark-line:#3a362e; --lx-on-dark:#cfc8ba;

    --radius-sm:4px; --radius-md:6px; --radius-lg:10px;
    --shadow-sm:0 1px 3px rgba(28,27,24,.05); --shadow-md:0 14px 34px rgba(28,27,24,.12); --shadow-lg:0 24px 50px rgba(28,27,24,.28);
    --container-max:1240px;
    --focus-ring: var(--accent-color); --focus-ring-width:2px; --focus-ring-offset:3px;
}

/* ════════════ Base ════════════ */
body { background:var(--lx-paper); color:var(--lx-ink); line-height:var(--lh-body); font-family:var(--font-stack); font-size:var(--fs-body); }
.container { max-width:var(--container-max); }
h1,h2,h3,h4 { font-family:var(--font-heading); font-weight:var(--fw-bold); }
a { color:var(--accent-color); text-decoration:none; }
a:hover { color:var(--lx-ink); }
::selection { background:var(--accent-color); color:var(--on-accent); }

.btn { font-weight:var(--fw-semibold); border-radius:var(--radius-sm); padding:.85rem 2rem; transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease; }
.btn-primary { background:var(--accent-color); border-color:var(--accent-color); color:var(--on-accent); }
.btn-primary:hover { background:var(--accent-color); border-color:var(--accent-color); color:var(--on-accent); transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn-outline-primary { color:var(--lx-ink); border-color:var(--lx-line); background:transparent; }
.btn-outline-primary:hover { background:var(--lx-ink); border-color:var(--lx-ink); color:var(--lx-paper); }

/* ════════════ Header ════════════ */
.tenant-header { background:rgba(255,253,249,.86); -webkit-backdrop-filter:saturate(140%) blur(12px); backdrop-filter:saturate(140%) blur(12px); border-bottom:1px solid var(--lx-line); position:sticky; top:0; z-index:100; }
.tenant-brand-title { font-family:var(--font-heading); font-size:1.5rem; font-weight:var(--fw-bold); color:var(--lx-ink); letter-spacing:.3px; }
.tenant-nav .nav { gap:var(--space-1); align-items:center; }
.tenant-nav .nav-link { position:relative; color:#44403a; padding:var(--space-2) var(--space-4); font-weight:var(--fw-medium); }
.tenant-nav .nav-link::after { content:""; position:absolute; inset-inline:var(--space-4) auto; bottom:6px; height:1px; width:0; background:var(--accent-color); transition:width .35s ease; }
.tenant-nav .nav-link:hover { color:var(--lx-ink); }
.tenant-nav .nav-link:hover::after { width:calc(100% - 2*var(--space-4)); }
.tenant-nav .nav-link.active { color:var(--accent-color); font-weight:var(--fw-bold); }
.tenant-nav .dropdown-menu { border:1px solid var(--lx-line); border-radius:var(--radius-md); box-shadow:var(--shadow-md); }
.tenant-cta .btn { padding:.7rem 1.6rem; background:var(--lx-ink); border-color:var(--lx-ink); color:var(--lx-paper); }
.tenant-cta .btn:hover { background:var(--accent-color); border-color:var(--accent-color); color:var(--on-accent); }

/* ════════════ Hero (rich, block-driven) ════════════ */
.tenant-hero { position:relative; overflow:hidden; background:linear-gradient(160deg, var(--primary-color) 0%, var(--secondary-color) 58%, var(--lx-ink-3) 100%); color:#fffdf9; }
.tenant-hero::before { content:"\f24e"; font-family:"Font Awesome 6 Free"; font-weight:900; position:absolute; inset-inline-start:-5%; top:50%; transform:translateY(-50%); font-size:clamp(20rem,42vw,40rem); line-height:1; color:#fff; opacity:.14; pointer-events:none; }
.tenant-hero::after { content:""; position:absolute; inset:0; background:radial-gradient(120% 80% at 85% 12%, rgba(255,255,255,.12), transparent 55%); pointer-events:none; }
.tenant-hero > .container { position:relative; z-index:1; }
.tenant-hero-grid { display:grid; grid-template-columns:1.12fr .88fr; gap:3.75rem; align-items:center; padding-block:7.5rem; }
.tenant-hero-content { max-width:640px; }
.tenant-hero-eyebrow { display:inline-block; font-size:.78rem; letter-spacing:5px; color:var(--accent-color); font-weight:var(--fw-semibold); margin-bottom:var(--space-5); }
.tenant-hero-title { font-family:var(--font-heading); font-weight:var(--fw-black); font-size:var(--fs-h1); line-height:1.12; color:#fff; margin-bottom:var(--space-5); letter-spacing:-.5px; }
.tenant-hero-title-accent { color:var(--accent-color); }
.tenant-hero-text { color:#e4ddcf; font-size:var(--fs-lead); margin-bottom:var(--space-6); max-width:560px; }
.tenant-hero-cta { display:flex; gap:var(--space-3); flex-wrap:wrap; }
.tenant-hero .btn-primary { background:var(--accent-color); border-color:var(--accent-color); color:var(--on-accent); }
.tenant-hero .btn-outline-primary { color:#fff; border-color:rgba(255,255,255,.4); }
.tenant-hero .btn-outline-primary:hover { background:rgba(255,255,255,.12); border-color:#fff; color:#fff; }
.tenant-hero-visual { position:relative; display:grid; place-items:center; }
.tenant-hero-figure { width:100%; max-width:360px; aspect-ratio:4/5; display:grid; place-items:center; border:1px solid rgba(255,255,255,.16); border-radius:var(--radius-lg); background-size:cover; background-position:center; color:var(--accent-color); font-size:5.5rem; }
.tenant-hero-figure--placeholder { background:repeating-linear-gradient(135deg, rgba(255,255,255,.04) 0 12px, transparent 12px 24px), linear-gradient(180deg, rgba(255,255,255,.07), rgba(0,0,0,.12)); }
.tenant-hero-badge { position:absolute; inset-block-end:-22px; inset-inline-start:-18px; background:var(--lx-paper); color:var(--lx-ink); padding:var(--space-4) var(--space-5); border-radius:var(--radius-md); box-shadow:var(--shadow-lg); max-width:230px; }
.tenant-hero-badge-title { font-family:var(--font-heading); font-weight:var(--fw-bold); font-size:1rem; margin-bottom:4px; }
.tenant-hero-badge-text { font-size:.85rem; color:var(--lx-muted); line-height:1.6; }

/* ── Hero variants (P3.4): centered (single column, no side visual) + fullImage (full-bleed bg + overlay) ── */
.tenant-hero--centered .tenant-hero-grid { display:block; max-width:760px; margin-inline:auto; text-align:center; }
.tenant-hero--centered .tenant-hero-content { max-width:none; }
.tenant-hero--centered .tenant-hero-text { margin-inline:auto; }
.tenant-hero--centered .tenant-hero-cta { justify-content:center; }
.tenant-hero--fullimage { background-size:cover; background-position:center; }
.tenant-hero--fullimage .tenant-hero-grid { display:block; max-width:760px; margin-inline:auto; text-align:center; padding-block:clamp(5.5rem,10vw,8.5rem); }
.tenant-hero--fullimage .tenant-hero-content { max-width:none; }
.tenant-hero--fullimage .tenant-hero-text { margin-inline:auto; }
.tenant-hero--fullimage .tenant-hero-cta { justify-content:center; }
.tenant-hero-overlay { position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(28,27,24,.72), rgba(28,27,24,.82)); pointer-events:none; }
.tenant-hero-overlay + .container { position:relative; z-index:2; }

/* ════════════ Section heading helper ════════════ */
.tenant-block { padding-block:var(--space-2); }
.tenant-block-heading { font-family:var(--font-heading); font-weight:var(--fw-bold); font-size:var(--fs-h2); color:var(--lx-ink); position:relative; padding-bottom:var(--space-3); }
.tenant-block-heading.text-center::after { content:""; position:absolute; inset-inline:0; bottom:0; margin-inline:auto; width:56px; height:3px; border-radius:2px; background:var(--accent-color); }

/* ════════════ Stats ════════════ */
.tenant-block-stats { background:var(--lx-ivory); border-block:1px solid var(--lx-line); }
.tenant-stat-value { font-family:var(--font-heading); font-weight:var(--fw-black); font-size:clamp(2.3rem,1.6rem+2vw,3rem); color:var(--lx-ink); line-height:1; }
.tenant-stat-label { color:var(--lx-muted)!important; margin-top:var(--space-2); font-size:.95rem; letter-spacing:.3px; }
.tenant-block-stats .row > [class*="col"] { border-inline-start:1px solid var(--lx-line); }
.tenant-block-stats .row > [class*="col"]:first-child { border-inline-start:0; }

/* ════════════ Why-choose ════════════ */
.tenant-block-why { background:var(--lx-paper); }
.tenant-why-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:4.375rem; align-items:center; padding-block:6.25rem; }
.tenant-why-visual { position:relative; }
.tenant-why-figure { aspect-ratio:1/1; border-radius:var(--radius-lg); border:1px solid var(--lx-line); background:linear-gradient(140deg, var(--lx-ink-2), var(--lx-ink-3)); background-size:cover; background-position:center; display:grid; place-items:center; color:var(--accent-color); font-size:5rem; }
.tenant-why-badge { position:absolute; inset-block-end:-26px; inset-inline-start:24px; background:var(--lx-ink); color:var(--lx-paper); padding:var(--space-4) var(--space-5); border-radius:var(--radius-md); box-shadow:var(--shadow-md); }
.tenant-why-badge-value { font-family:var(--font-heading); font-weight:var(--fw-black); font-size:2rem; color:var(--accent-color); line-height:1; }
.tenant-why-badge-label { font-size:.85rem; color:var(--lx-on-dark); margin-top:4px; }
.tenant-why-eyebrow { display:inline-block; font-size:.78rem; letter-spacing:5px; color:var(--accent-color); font-weight:var(--fw-semibold); }
.tenant-why-heading { font-family:var(--font-heading); font-weight:var(--fw-bold); font-size:var(--fs-h2); line-height:1.2; margin:var(--space-4) 0 var(--space-4); color:var(--lx-ink); }
.tenant-why-intro { color:var(--lx-muted); font-size:1.1rem; margin-bottom:var(--space-5); }
.tenant-why-list { display:grid; gap:2px; }
.tenant-why-item { display:flex; gap:var(--space-5); align-items:flex-start; padding:var(--space-5) 0; border-bottom:1px solid var(--lx-line); }
.tenant-why-no { font-family:var(--font-heading); font-weight:var(--fw-bold); color:var(--accent-color); font-size:1rem; min-width:34px; }
.tenant-why-item-title { font-weight:var(--fw-bold); font-size:1.05rem; margin-bottom:4px; color:var(--lx-ink); }
.tenant-why-item-text { color:var(--lx-muted); font-size:.95rem; }

/* ── WhyChoose variant (P3.4): imageRight mirrors the default imageLeft column order ── */
.tenant-why--image-right .tenant-why-grid { grid-template-columns:1.1fr .9fr; }
.tenant-why--image-right .tenant-why-visual { order:2; }
.tenant-why--image-right .tenant-why-content { order:1; }

/* ════════════ Services (dark editorial band) ════════════ */
.tenant-block-services { background:var(--lx-ink); color:#efe9dc; position:relative; }
.tenant-block-services .tenant-block-heading { color:#fff; }
.tenant-block-services .row { counter-reset:svc; }
.tenant-service-card { position:relative; border:1px solid var(--lx-dark-line); border-radius:var(--radius-md); background:linear-gradient(180deg, rgba(255,255,255,.03), transparent); transition:transform .35s ease, border-color .35s ease; text-align:start!important; }
.tenant-service-card:hover { transform:translateY(-4px); border-color:var(--accent-color); }
.tenant-service-card::before { counter-increment:svc; content:counter(svc, decimal-leading-zero); position:absolute; inset-block-start:var(--space-4); inset-inline-end:var(--space-4); font-family:var(--font-heading); font-weight:var(--fw-bold); font-size:1.4rem; color:#4a463c; transition:color .35s ease; }
.tenant-service-card:hover::before { color:var(--accent-color); }
.tenant-service-card .fa-2x, .tenant-service-card > i { width:54px; height:54px; display:grid; place-items:center; border-radius:50%; background:rgba(154,123,79,.16); color:var(--accent-color); font-size:1.3rem!important; }
.tenant-service-card h3 { color:#fff; font-family:var(--font-heading); margin-top:var(--space-3); }
.tenant-service-card p { color:#bcb5a6!important; }

/* ── ServicesGrid variant (P3.4): numberedList — vertical list w/ large numbers, same items data ── */
.tenant-services-list { display:grid; gap:2px; max-width:880px; margin-inline:auto; }
.tenant-services-list-item { display:flex; gap:var(--space-5); align-items:flex-start; padding:var(--space-5) 0; border-bottom:1px solid var(--lx-dark-line); }
.tenant-services-list-no { font-family:var(--font-heading); font-weight:var(--fw-black); color:var(--accent-color); font-size:1.6rem; min-width:52px; line-height:1; }
.tenant-services-list-title { color:#fff; display:flex; align-items:center; gap:var(--space-3); margin-bottom:4px; }
.tenant-services-list-title i { color:var(--accent-color); font-size:1rem; }
.tenant-services-list-item p { color:#bcb5a6!important; }

/* ════════════ Testimonials ════════════ */
.tenant-block-testimonials { background:var(--lx-ivory); }
.tenant-testimonial { position:relative; background:var(--lx-paper); border:1px solid var(--lx-line); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); margin:0; }
.tenant-testimonial-stars { color:var(--accent-color); letter-spacing:3px; font-size:.9rem; margin-bottom:var(--space-3); }
.tenant-testimonial-quote { color:#403b32; font-size:1rem; margin-bottom:var(--space-4); }
.tenant-testimonial-author { display:flex; align-items:center; gap:12px; border-top:1px solid var(--lx-line); padding-top:var(--space-3); }
.tenant-testimonial-avatar { width:42px; height:42px; flex:none; border-radius:50%; background:var(--lx-ivory-2); display:grid; place-items:center; font-weight:var(--fw-bold); color:var(--accent-color); }
.tenant-testimonial-meta { display:flex; flex-direction:column; }
.tenant-testimonial-name { font-weight:var(--fw-bold); font-size:.95rem; color:var(--lx-ink); }
.tenant-testimonial-role { font-size:.8rem; color:var(--lx-muted); }

/* ════════════ FAQ ════════════ */
.tenant-faq-list { max-width:880px; }
.tenant-faq-item { border:1px solid var(--lx-line); border-radius:var(--radius-md); background:var(--lx-paper); padding:0 var(--space-5); }
.tenant-faq-q { cursor:pointer; list-style:none; padding:var(--space-4) 0; font-weight:var(--fw-bold); font-size:1.05rem; display:flex; justify-content:space-between; align-items:center; gap:var(--space-4); }
.tenant-faq-q::-webkit-details-marker { display:none; }
.tenant-faq-q::after { content:"+"; color:var(--accent-color); font-size:1.5rem; font-weight:400; line-height:1; }
.tenant-faq-item[open] .tenant-faq-q::after { content:"\2212"; }
.tenant-faq-a { color:var(--lx-muted); padding-bottom:var(--space-4); }

/* ════════════ CTA (brass band) ════════════ */
.tenant-block-cta { background:linear-gradient(135deg, var(--accent-color), #7d6340); color:#fff; border-block:1px solid rgba(0,0,0,.06); }
.tenant-cta-title { font-family:var(--font-heading); font-weight:var(--fw-bold); font-size:var(--fs-h2); color:#fff; }
.tenant-cta-text { color:#fff; font-size:var(--fs-lead); }
.tenant-block-cta .btn-primary { background:var(--lx-paper); border-color:var(--lx-paper); color:var(--lx-ink); }
.tenant-block-cta .btn-primary:hover { background:#fff; border-color:#fff; color:var(--lx-ink); transform:translateY(-2px); }

/* ════════════ Team ════════════ */
.tenant-block-team { background:var(--lx-ivory); }
.tenant-team-card { background:var(--lx-paper); border:1px solid var(--lx-line); border-radius:var(--radius-md); padding:var(--space-5) var(--space-4); transition:transform .35s ease, box-shadow .35s ease; }
.tenant-team-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.tenant-team-photo { width:96px; height:96px; object-fit:cover; border:2px solid var(--accent-color); }
.tenant-team-card h3 { font-family:var(--font-heading); }
.tenant-team-card .text-muted { color:var(--accent-color)!important; font-weight:var(--fw-semibold); }

/* ════════════ Map ════════════ */
.tenant-map-embed { border:1px solid var(--lx-line); border-radius:var(--radius-md); overflow:hidden; }

/* ════════════ Image + text (P3.1) ════════════ */
.tenant-block-imagetext { background:var(--lx-paper); }
.tenant-imagetext-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:var(--space-7); align-items:center; padding-block:var(--space-6); }
.tenant-imagetext--reversed .tenant-imagetext-grid { grid-template-columns:1.1fr .9fr; }
.tenant-imagetext--reversed .tenant-imagetext-visual { order:2; }
.tenant-imagetext--reversed .tenant-imagetext-content { order:1; }
.tenant-imagetext-visual { position:relative; }
.tenant-imagetext-figure { aspect-ratio:4/3; border-radius:var(--radius-lg); border:1px solid var(--lx-line); background:linear-gradient(140deg, var(--lx-ink-2), var(--lx-ink-3)); background-size:cover; background-position:center; display:grid; place-items:center; color:var(--accent-color); font-size:4.5rem; }
.tenant-imagetext-figure--placeholder { background:repeating-linear-gradient(135deg, rgba(0,0,0,.03) 0 12px, transparent 12px 24px), linear-gradient(180deg, var(--lx-ivory), var(--lx-ivory-2)); }
.tenant-imagetext-eyebrow { display:inline-block; font-size:.78rem; letter-spacing:5px; color:var(--accent-color); font-weight:var(--fw-semibold); margin-bottom:var(--space-4); }
.tenant-imagetext-heading { font-family:var(--font-heading); font-weight:var(--fw-bold); font-size:var(--fs-h2); line-height:1.2; margin-bottom:var(--space-4); color:var(--lx-ink); }
.tenant-imagetext-text { color:var(--lx-muted); font-size:1.05rem; margin-bottom:var(--space-5); }

/* ════════════ Process steps (P3.1) ════════════ */
.tenant-block-processsteps { background:var(--lx-ivory); }
.tenant-processsteps-header { max-width:760px; margin-inline:auto; }
.tenant-processsteps-eyebrow { display:block; text-align:center; font-size:.78rem; letter-spacing:5px; color:var(--accent-color); font-weight:var(--fw-semibold); margin-bottom:var(--space-3); }
.tenant-processsteps-intro { color:var(--lx-muted); margin-bottom:var(--space-6); }
.tenant-processsteps-list { display:grid; gap:2px; max-width:880px; margin-inline:auto; }
.tenant-processstep { display:flex; gap:var(--space-5); align-items:flex-start; padding:var(--space-5) 0; border-bottom:1px solid var(--lx-line); }
.tenant-processstep-no { font-family:var(--font-heading); font-weight:var(--fw-black); color:var(--accent-color); font-size:1.6rem; min-width:52px; line-height:1; }
.tenant-processstep-title { font-weight:var(--fw-bold); font-size:1.1rem; margin-bottom:4px; color:var(--lx-ink); }
.tenant-processstep-text { color:var(--lx-muted); font-size:.95rem; }

/* ════════════ Gallery (P3.1) ════════════ */
.tenant-block-gallery { background:var(--lx-paper); }
.tenant-gallery-item { margin:0; border-radius:var(--radius-md); overflow:hidden; border:1px solid var(--lx-line); }
.tenant-gallery-image { width:100%; height:220px; object-fit:cover; display:block; }
.tenant-gallery-caption { padding:var(--space-3) var(--space-4); color:var(--lx-muted); font-size:.9rem; background:var(--lx-ivory); }

/* ════════════ Video embed (P3.1) ════════════ */
.tenant-block-videoembed { background:var(--lx-ivory); }
.tenant-video-embed { border:1px solid var(--lx-line); border-radius:var(--radius-md); overflow:hidden; max-width:960px; margin-inline:auto; }

/* ════════════ Logos strip (P3.1) ════════════ */
.tenant-block-logosstrip { background:var(--lx-paper); }
.tenant-logosstrip-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:var(--space-6); }
.tenant-logosstrip-item { display:grid; place-items:center; }
.tenant-logosstrip-image { max-height:56px; width:auto; max-width:160px; object-fit:contain; filter:grayscale(1); opacity:.75; transition:filter .3s ease, opacity .3s ease; }
.tenant-logosstrip-image:hover { filter:none; opacity:1; }

/* ════════════ Values (P3.1) ════════════ */
.tenant-block-values { background:var(--lx-ivory); }
.tenant-value-card { border:1px solid var(--lx-line); border-radius:var(--radius-md); background:var(--lx-paper); transition:transform .35s ease, box-shadow .35s ease; }
.tenant-value-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.tenant-value-card .fa-2x { width:54px; height:54px; display:grid; place-items:center; border-radius:50%; margin-inline:auto; background:rgba(154,123,79,.16); color:var(--accent-color); font-size:1.3rem!important; }
.tenant-value-card h3 { font-family:var(--font-heading); margin-top:var(--space-3); color:var(--lx-ink); }

/* ════════════ Contact cards (P3.1) ════════════ */
.tenant-block-contactcards { background:var(--lx-paper); }
.tenant-contactcard { border:1px solid var(--lx-line); border-radius:var(--radius-md); background:var(--lx-ivory); transition:transform .35s ease, box-shadow .35s ease; }
.tenant-contactcard:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); }
.tenant-contactcard .fa-2x { color:var(--accent-color); }
.tenant-contactcard h3 { font-family:var(--font-heading); color:var(--lx-ink); }
.tenant-contactcard-value { color:var(--lx-muted); word-break:break-word; }
a.tenant-contactcard-value:hover { color:var(--accent-color); }
.tenant-contactcard-hours { color:var(--lx-muted); font-size:.9rem; }
.tenant-contactcard-hours li { margin-bottom:2px; }

/* ════════════ Page header / rich content ════════════ */
.tenant-page-title { font-family:var(--font-heading); color:var(--lx-ink); font-weight:var(--fw-black); font-size:var(--fs-h1-page); }
.tenant-page-content h1,.tenant-page-content h2,.tenant-page-content h3 { color:var(--lx-ink); margin-top:var(--space-5); font-family:var(--font-heading); }
.tenant-page-content img { max-width:100%; height:auto; border-radius:var(--radius-md); }
.tenant-page-content table { width:100%; border-collapse:collapse; margin:var(--space-4) 0; }
.tenant-page-content th,.tenant-page-content td { border:1px solid var(--lx-line); padding:var(--space-3) var(--space-4); }
.tenant-page-content blockquote { border-inline-start:3px solid var(--accent-color); background:var(--lx-ivory); padding:var(--space-4) var(--space-5); margin:var(--space-5) 0; border-radius:0 var(--radius-md) var(--radius-md) 0; }
.tenant-page-content ul li { margin-bottom:var(--space-2); }

/* ════════════ Contact form ════════════ */
.tenant-contact-form .form-label { font-weight:var(--fw-semibold); font-size:.95rem; }
.tenant-contact-form .form-control { border:1px solid var(--lx-line); border-radius:var(--radius-sm); background:var(--lx-paper); padding:.75rem 1rem; }
.tenant-contact-form .form-control:focus { border-color:var(--accent-color); box-shadow:0 0 0 .2rem rgba(154,123,79,.18); }
.tenant-contact-form .btn-primary { background:var(--lx-ink); border-color:var(--lx-ink); color:var(--lx-paper); }
.tenant-contact-form .btn-primary:hover { background:var(--accent-color); border-color:var(--accent-color); color:var(--on-accent); }

/* ════════════ Footer ════════════ */
.tenant-footer { background:var(--lx-footer); color:var(--lx-on-dark); border-top:3px solid var(--accent-color); margin-top:0!important; }
.tenant-footer .footer-title { color:#fff; font-family:var(--font-heading); font-weight:var(--fw-bold); }
.tenant-footer .footer-subtitle { color:#fff; font-weight:var(--fw-semibold); }
.tenant-footer .footer-text { color:var(--lx-on-dark); }
.tenant-footer a { color:var(--lx-on-dark); }
.tenant-footer a:hover { color:var(--accent-color); }
.footer-socials { display:flex; flex-wrap:wrap; gap:var(--space-2); padding:0; list-style:none; }
.footer-socials a { width:42px; height:42px; display:grid; place-items:center; border:1px solid #34302a; border-radius:50%; color:var(--lx-on-dark); }
.footer-socials a:hover { border-color:var(--accent-color); color:var(--accent-color); }
.tenant-footer hr { border-color:#2a2620; opacity:1; }
.footer-bottom, .footer-bottom a, .tenant-powered-by a { color:#8a8474; }

/* ════════════ Block style object (P3.2) ════════════ */
/* Every rendered block is wrapped by _TenantBlocks.cshtml in <div class="tenant-style-wrap
   tenant-style-bg-X tenant-style-spacing-X tenant-style-width-X tenant-style-align-X
   tenant-style-divider-X">, immediately around the block's own <section class="tenant-block
   tenant-block-Y">. Values are a LOCKED enum coerced server-side (TenantPageContentWriter.Clean +
   BlockStyleOptions) — never arbitrary CSS reaches here. */

/* — background — */
.tenant-style-bg-tint > .tenant-block { background:var(--lx-ivory)!important; }
.tenant-style-bg-brand > .tenant-block { background:var(--accent-color)!important; color:var(--on-accent)!important; }
.tenant-style-bg-brand > .tenant-block .tenant-block-heading,
.tenant-style-bg-brand > .tenant-block h1, .tenant-style-bg-brand > .tenant-block h2, .tenant-style-bg-brand > .tenant-block h3 { color:var(--on-accent)!important; }
.tenant-style-bg-brand > .tenant-block .tenant-block-heading.text-center::after { background:var(--on-accent); }
.tenant-style-bg-dark > .tenant-block { background:var(--lx-ink)!important; color:#efe9dc!important; }
.tenant-style-bg-dark > .tenant-block .tenant-block-heading,
.tenant-style-bg-dark > .tenant-block h1, .tenant-style-bg-dark > .tenant-block h2, .tenant-style-bg-dark > .tenant-block h3 { color:#fff!important; }
/* "image" — CSS hook ready; a block that owns an image field (Hero's backgroundImage, ImageText's
   image…) already paints it inline via style="background-image:…" on its own figure element. This
   axis currently has no dedicated "section background image" field in any block schema (spec's own
   fallback: a lighter no-op class until one exists), so it only marks the wrapper for a future rule. */
.tenant-style-bg-image > .tenant-block { background-size:cover; background-position:center; }

/* — spacing — */
.tenant-style-spacing-compact > .tenant-block { padding-block:var(--space-4); }
.tenant-style-spacing-normal > .tenant-block { padding-block:var(--space-6); }
.tenant-style-spacing-spacious > .tenant-block { padding-block:var(--space-7); }
/* The hero/why/imagetext/processsteps inner grids already carry their own generous padding-block —
   the wrapper's padding-block stacks with it, so cut the block's own inner padding when a spacing
   override is present to avoid doubling the gap. */
.tenant-style-spacing-compact > .tenant-block .tenant-hero-grid,
.tenant-style-spacing-compact > .tenant-block .tenant-why-grid,
.tenant-style-spacing-compact > .tenant-block .tenant-imagetext-grid,
.tenant-style-spacing-spacious > .tenant-block .tenant-hero-grid,
.tenant-style-spacing-spacious > .tenant-block .tenant-why-grid,
.tenant-style-spacing-spacious > .tenant-block .tenant-imagetext-grid { padding-block:0; }

/* — width — */
.tenant-style-width-narrow > .tenant-block > .container { max-width:760px; }
.tenant-style-width-full > .tenant-block > .container { max-width:none; padding-inline:var(--space-5); }

/* — align — */
/* "center" reads naturally on single-column text blocks (Cta/Faq heading/RichText/LegalDisclaimer);
   it is intentionally NOT forced on two-column grid blocks (Hero/WhyChoose/ImageText/ProcessSteps
   header) where a strict left/right layout has no meaningful "centered" reading — see the P3.2
   report for the documented per-block limited-effect list. */
.tenant-style-align-center > .tenant-block .tenant-block-heading,
.tenant-style-align-center > .tenant-block .tenant-imagetext-eyebrow,
.tenant-style-align-center > .tenant-block .tenant-processsteps-eyebrow { text-align:center; }
.tenant-style-align-center > .tenant-block .tenant-block-heading::after { margin-inline:auto; }

/* — divider — */
.tenant-style-divider-line > .tenant-block { border-top:1px solid var(--lx-line); }
.tenant-style-divider-ornament { position:relative; }
.tenant-style-divider-ornament::before {
    content:"";
    display:block; margin-inline:auto; width:56px; height:3px; border-radius:2px;
    background:var(--accent-color);
}

/* ════════════ a11y ════════════ */
.tenant-skip-link { position:absolute; inset-inline-start:var(--space-3); top:-120%; z-index:1000; background:var(--lx-ink); color:var(--lx-paper); padding:var(--space-2) var(--space-4); border-radius:var(--radius-sm); text-decoration:none; font-weight:var(--fw-semibold); transition:top .15s ease-out; }
.tenant-skip-link:focus { top:var(--space-2); color:var(--lx-paper); }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,.nav-link:focus-visible,.btn:focus-visible,.tenant-nav-toggle:focus-visible { outline:var(--focus-ring-width) solid var(--focus-ring); outline-offset:var(--focus-ring-offset); border-radius:var(--radius-sm); }
.tenant-hero a:focus-visible,.tenant-hero .btn:focus-visible,.tenant-block-services a:focus-visible,.tenant-footer a:focus-visible,.tenant-block-cta a:focus-visible { outline-color:#fff; }
.tenant-nav-toggle { display:none; width:44px; height:44px; padding:0; border:1px solid var(--lx-line); border-radius:var(--radius-sm); background:var(--lx-paper); cursor:pointer; align-items:center; justify-content:center; flex-direction:column; gap:5px; }
.tenant-nav-toggle-bar { display:block; width:22px; height:2px; background:var(--lx-ink); border-radius:2px; }

/* ════════════ Responsive ════════════ */
@media (max-width:991.98px){
    .tenant-hero-grid, .tenant-why-grid { grid-template-columns:1fr; gap:var(--space-6); }
    .tenant-hero-visual, .tenant-why-visual { display:none; }
    .tenant-hero-grid { padding-block:var(--space-6); }
    .tenant-imagetext-grid, .tenant-imagetext--reversed .tenant-imagetext-grid { grid-template-columns:1fr; }
    .tenant-imagetext--reversed .tenant-imagetext-visual, .tenant-imagetext--reversed .tenant-imagetext-content { order:initial; }
    .tenant-why--image-right .tenant-why-visual, .tenant-why--image-right .tenant-why-content { order:initial; }
}
@media (max-width:767.98px){
    .tenant-hero::before { font-size:16rem; }
    .tenant-nav-toggle { display:inline-flex; }
    .tenant-header .container { flex-wrap:wrap; }
    .tenant-nav { flex-basis:100%; order:3; display:none; }
    .tenant-nav.is-open { display:block; }
    .tenant-nav .nav { flex-direction:column; width:100%; margin-top:var(--space-3); }
    .tenant-nav .nav-link { display:flex; align-items:center; min-height:44px; }
    .tenant-nav .nav-link::after { display:none; }
    .tenant-nav .dropdown-menu { position:static!important; transform:none!important; border:0; box-shadow:none; padding-inline-start:var(--space-4); }
    .tenant-block-stats .row > [class*="col"] { border-inline-start:0; }
}
@media (prefers-reduced-motion: reduce){
    .tenant-skip-link,.btn,.tenant-service-card,.tenant-team-card,.tenant-nav .nav-link::after { transition:none; }
    .tenant-service-card:hover,.tenant-team-card:hover,.btn:hover { transform:none; }
    .tenant-header { -webkit-backdrop-filter:none; backdrop-filter:none; }
}
